почему перенаправление портов и DNAT не работают с vxlan

почему перенаправление портов и DNAT не работают с vxlan

Мне нужно создать VXLAN-соединения между двумя компьютерами A (на Debian с IP 192.168.30.1) и B (на Archlinux с IP 192.168.30.3). Для этого я сделал:

  • На:
  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
  • На Б:
  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

Кроме того, на ПК BI создайте правило 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

Затем я сделал:

  • На ПК А: ping 10.0.0.107.Это работает, как и ожидалось, с pingответы.
  • На ПК Б: ping 10.0.0.106.Это работает, как и ожидалось, с pingответы.
  • На ПК A: nc -u -lp 12345. На ПК B: nc -u 10.0.0.106 12345.Я ожидал прочитать данные в приложении netcat на ПК A при отправке данных с помощью команды netcat с ПК B. Однако я ничего не прочитал..

Моя проблема в последнем пункте. Почему мой netcat listener ничего не получает. Используя wireshark на ПК AI получаю:

[дамп wireshark на ПК A1

Дополнительная информация

  • ПК A работает под управлением «Linux Debian 4.19.0-16-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 GNU/Linux» (это результат команды uname -a)

  • IP-адрес ПК A на ens4 — 192.168.30.1/24

  • ПК B работает под управлением «Linux archlinux 5.13.9-arch1-1 #1 SMP PREEMPT Вс, 08 авг 2021 11:25:35 +0000 x86_64 GNU/Linux» (это результат команды uname -a)

  • IP-адрес ПК B на ens3 — 192.168.30.3/24

  • две машины — это виртуальные машины Qemu, запущенные с GNS3

  • Таблицы nat и filter netfilter на ПК A пусты:

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    
  • На ПК BI есть только правило DNAT и правило для отбрасывания ICMP-пакетов типа «порт недоступен» (это правило я добавил для другой цели):
[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

Связанный контент