por qué la redirección de puertos y DNAT no funcionan con vxlan

por qué la redirección de puertos y DNAT no funcionan con vxlan

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:

[volcado de Wirehark en la PC A1

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 -acomando)

  • 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 -acomando)

  • 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

información relacionada