Мне нужно создать соединения 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 вверх
sudo IP-адрес добавить 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-адрес добавить 10.0.0.107/24 dev vxlan2
Более того, на ПК Б я создаю правило DNAT:
sudo iptables -w -t nat -A OUTPUT -s 192.168.30.3 -d 111.111.111.111 -p udp --dport 33333 -j DNAT --назначение 192.168.30.1:33333
Затем я сделал:
- На ПК А:
пинг 10.0.0.107
. Это работает, как и ожидалось, с ping ответы.
- На ПК Б:
пинг 10.0.0.106
. Это работает, как и ожидалось, с ping ответы.
- На ПК А:
нк -у -лп 12345
. На ПК Б: нк -у 10.0.0.106 12345
. Я ожидал прочитать данные в приложении netcat на ПК A при отправке данных с помощью команды netcat с ПК B. Однако я ничего не прочитал.
Моя проблема тогда в последнем пункте. Почему мой прослушиватель netcat ничего не получает.
Используя wireshark на ПК A, я получаю:
[
Некоторая дополнительная информация
ПК A работает с «Linux debian 4.19.0-16-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 GNU/Linux» (это результат uname -а
команда)
ПК IP-адрес на ens4 — 192.168.30.1/24.
ПК B работает с «Linux archlinux 5.13.9-arch1-1 #1 SMP PREEMPT Sun, 08 августа 2021 г., 11:25:35 +0000 x86_64 GNU/Linux» (это результат uname -а
команда)
IP-адрес ПК B на ens3: 192.168.30.3/24.
две машины - это виртуальные машины Qemu, запущенные с GNS3
nat и filter таблицы netfilter на ПК A пусты:
seb@debian:~$ sudo iptables -t nat -L ; sudo iptables -t фильтр -L
Цепь PREROUTING (политика ПРИНЯТЬ)
целевая защита выбор источника назначения
Сеть INPUT (политика ACCEPT)
целевая защита выбор источника назначения
Сеть POSTROUTING (правило ACCEPT)
целевая защита выбор источника назначения
Цепочка OUTPUT (политика ACCEPT)
целевая защита выбор источника назначения
Сеть INPUT (политика ACCEPT)
целевая защита выбор источника назначения
Сеть FORWARD (политика ACCEPT)
целевая защита выбор источника назначения
Цепочка OUTPUT (политика ACCEPT)
целевая защита выбор источника назначения
- На ПК B у меня есть только правило DNAT и правило отбрасывания ICMP-пакета типа «порт недоступен» (это правило я добавил для другой цели):
[seb@archlinux vxlan]$ sudo iptables -t nat -L -n ; sudo iptables -t фильтр -L -n
Цепь PREROUTING (политика ПРИНЯТЬ)
целевая защита выбор источника назначения
Сеть INPUT (политика ACCEPT)
целевая защита выбор источника назначения
Цепочка OUTPUT (политика ACCEPT)
целевая защита выбор источника назначения
DNAT udp -- 192.168.30.3 111.111.111.111 udp dpt:33333 to:192.168.30.1:33333
Сеть POSTROUTING (правило ACCEPT)
целевая защита выбор источника назначения
Сеть INPUT (политика ACCEPT)
целевая защита выбор источника назначения
Сеть FORWARD (политика ACCEPT)
целевая защита выбор источника назначения
Цепочка OUTPUT (политика ACCEPT)
целевая защита выбор источника назначения
DROP icmp -- 0.0.0.0/0 0.0.0.0/0 icmptype 3