Trebuie să creez conexiuni VXLAN între două computere A (pe Debian cu IP 192.168.30.1) și B (pe archlinux cu IP 192.168.30.3)
Pentru asta am facut:
sudo ip link add vxlan1 tip vxlan id 1 nolearning remote 192.168.30.3 dstport 33333 dev ens4
sudo ip link setează vxlan1
sudo ip addr add 10.0.0.106/24 dev vxlan1
sudo ip link add vxlan2 tip vxlan id 1 nolearning remote 111.111.111.111 dstport 33333 dev ens3
sudo ip link setează vxlan2
sudo ip addr add 10.0.0.107/24 dev vxlan2
Mai mult, pe PC B creez o regulă 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
Apoi am facut:
- Pe PC A:
ping 10.0.0.107
. Acest lucru funcționează conform așteptărilor cu ping răspunsuri.
- Pe PC B:
ping 10.0.0.106
. Acest lucru funcționează conform așteptărilor cu ping răspunsuri.
- Pe PC A:
nc -u -lp 12345
. Pe PC B: nc -u 10.0.0.106 12345
. Mă așteptam să citesc date din aplicația netcat de pe PC-ul A când trimit date cu comanda netcat de la PC-ul B. Cu toate acestea, nu am citit nimic.
Problema mea este atunci la ultimul punct. De ce ascultătorul meu netcat nu primește nimic.
Folosind wireshark pe PC-ul A obțin:
[
Câteva informații suplimentare
PC-ul A rulează cu „Linux debian 4.19.0-16-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 GNU/Linux” (acesta este rezultatul uname -a
comanda)
IP-ul PC pe ens4 este 192.168.30.1/24
PC-ul B rulează cu „Linux archlinux 5.13.9-arch1-1 #1 SMP PREEMPT Sun, 08 Aug 2021 11:25:35 +0000 x86_64 GNU/Linux” (acesta este rezultatul uname -a
comanda)
IP-ul PC B pe ens3 este 192.168.30.3/24
cele două mașini sunt Qemu VM-uri pornite cu GNS3
tabelele nat și filtru ale netfilter pe PC A sunt goale:
seb@debian:~$ sudo iptables -t nat -L ; sudo iptables -t filter -L
PRERUUTARE în lanț (politica ACCEPTĂ)
target prot opt sursă destinație
INTRARE în lanț (politica ACCEPTĂ)
target prot opt sursă destinație
POSTOUTING în lanț (politica ACCEPT)
target prot opt sursă destinație
Ieșire în lanț (politica ACCEPT)
target prot opt sursă destinație
INTRARE în lanț (politica ACCEPTĂ)
target prot opt sursă destinație
Lanț FORWARD (politica ACCEPT)
target prot opt sursă destinație
Ieșire în lanț (politica ACCEPT)
target prot opt sursă destinație
- Pe PC-ul B am doar regula DNAT și o regulă pentru a arunca pachetul ICMP de tip „port inaccesibil” (Aceasta este o regulă pe care am adăugat-o în alt scop):
[seb@archlinux vxlan]$ sudo iptables -t nat -L -n ; sudo iptables -t filtru -L -n
PRERUUTARE în lanț (politica ACCEPTĂ)
target prot opt sursă destinație
INTRARE în lanț (politica ACCEPTĂ)
target prot opt sursă destinație
Ieșire în lanț (politica ACCEPT)
target prot opt sursă destinație
DNAT udp -- 192.168.30.3 111.111.111.111 udp dpt:33333 la:192.168.30.1:33333
POSTOUTING în lanț (politica ACCEPT)
target prot opt sursă destinație
INTRARE în lanț (politica ACCEPTĂ)
target prot opt sursă destinație
Lanț FORWARD (politica ACCEPT)
target prot opt sursă destinație
Ieșire în lanț (politica ACCEPT)
target prot opt sursă destinație
DROP icmp -- 0.0.0.0/0 0.0.0.0/0 icmptype 3