
Necesito crear conexiones VXLAN entre dos computadoras A (en Debian con IP 192.168.30.1) y B (en archlinux con IP 192.168.30.3) Para eso, hice:
- En un:
sudo ip link add vxlan1 type vxlan id 1 nolearning remote 192.168.30.3 dstport 33333 dev ens4
sudo ip link set vxlan1 up
sudo ip addr add 10.0.0.106/24 dev vxlan1
- En B:
sudo ip link add vxlan2 type vxlan id 1 nolearning remote 111.111.111.111 dstport 33333 dev ens3
sudo ip link set vxlan2 up
sudo ip addr add 10.0.0.107/24 dev vxlan2
Además, en PC BI cree una regla DNAT:
sudo iptables -w -t nat -A OUTPUT -s 192.168.30.3 -d 111.111.111.111 -p udp --dport 33333 -j DNAT --to-destination 192.168.30.1:33333
Entonces hice:
- En la PC A:
ping 10.0.0.107
.Esto funciona como se esperaba con pingresponde. - En la computadora B:
ping 10.0.0.106
.Esto funciona como se esperaba con pingresponde. - En la PC A:
nc -u -lp 12345
. En la computadora B:nc -u 10.0.0.106 12345
.Esperaba leer datos en la aplicación netcat en la PC A al enviar datos con el comando netcat desde la PC B. Sin embargo, no leí nada..
Mi problema entonces está en el último punto. Por qué mi oyente netcat no recibe nada. Al usar Wireshark en PC AI, obtienes:
[
Alguna información adicional
La PC A se ejecuta con 'Linux debian 4.19.0-16-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 GNU/Linux' (este es el resultado del
uname -a
comando)La IP de la PC en ens4 es 192.168.30.1/24
La PC B se ejecuta con 'Linux archlinux 5.13.9-arch1-1 #1 SMP PREEMPT domingo, 8 de agosto de 2021 11:25:35 +0000 x86_64 GNU/Linux' (este es el resultado del
uname -a
comando)La IP de la PC B en ens3 es 192.168.30.3/24
las dos máquinas son máquinas virtuales Qemu iniciadas con GNS3
Las tablas nat y filter de netfilter en la PC A están vacías:
seb@debian:~$ sudo iptables -t nat -L ; sudo iptables -t filter -L
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
- En PC BI solo tiene la regla DNAT y una regla para descartar paquetes ICMP de tipo "puerto inalcanzable" (esta es una regla que agregué para otro propósito):
[seb@archlinux vxlan]$ sudo iptables -t nat -L -n ; sudo iptables -t filter -L -n
Chain PREROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
DNAT udp -- 192.168.30.3 111.111.111.111 udp dpt:33333 to:192.168.30.1:33333
Chain POSTROUTING (policy ACCEPT)
target prot opt source destination
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
DROP icmp -- 0.0.0.0/0 0.0.0.0/0 icmptype 3