Am un bloc IP public 51.x.x.16/28 pe care încerc să îl folosesc cu mașinile virtuale libvirt/qemu. În interiorul VM (ip 51.x.x.18) încerc să creez o conexiune tcp de ieșire (http).
Folosind tcpdump pe gazdă, pot vedea că SYN și SYN-ACK sunt trimise și primite. Cu toate acestea, în interiorul VM, SYN-ACK nu este primit niciodată (nicio urmă pe tcpdump și conectarea blocată).
Am conectivitate de la VM la bridge (brtest) și interfață gazdă (eno1). De la gazdă mă pot conecta și la VM. Ce poate fi cauza asta? Am atașat mai jos configurația bridge-ului, tcpdump, iptables (reguli create de libvirt) și ifconfig.
brtest.xml
<network>
<name>test</name>
<bridge name="brtest"/>
<forward mode="route" dev="eno1" />
<ip address="51.x.x.30" netmask="255.255.255.240">
<dhcp>
<host mac="02:xx:xx:xx:xx:49" ip="51.x.x.18"/>
</dhcp>
</ip>
</network>
tcpdump -n -i eno1
02:07:11.125655 IP 51.x.x.18.51236 > 76.x.x.173.80: steaguri [S], seq 2472740296, win 64240, opțiuni [mss 1460, sackOK, TS val 83035797, val 83035797, TS val 830pscale
02:07:11.135352 IP 76.x.x.173.80 > 51.x.x.18.51236: steaguri [S.], seq 1083725147, ack 2472740297, win 65160, opțiuni, opțiuni, 45160, OK, 5837251972, TSm38389778, 2472740297 lungime 0
iptables -n -v -L
INTRARE în lanț (politica ACCEPTĂ 401 pachete, 43908 octeți)
pkts bytes target prot opt in out source destination
516 53705 LIBVIRT_INP toate -- * * 0.0.0.0/0 0.0.0.0/0
Lanț FORWARD (politica DROP 0 pachete, 0 octeți)
pkts bytes target prot opt in out source destination
31 1876 LIBVIRT_FWX toate -- * * 0.0.0.0/0 0.0.0.0/0
31 1876 LIBVIRT_FWI toate -- * * 0.0.0.0/0 0.0.0.0/0
31 1876 LIBVIRT_FWO toate -- * * 0.0.0.0/0 0.0.0.0/0
IEȘIRE în lanț (politica ACCEPTĂ 453 pachete, 193K octeți)
pkts bytes target prot opt in out source destination
546 209K LIBVIRT_OUT toate -- * * 0.0.0.0/0 0.0.0.0/0
Lanț LIBVIRT_FWI (1 referințe)
pkts bytes target prot opt in out source destination
0 0 ACCEPT toate -- eno1 brtest 0.0.0.0/0 51.x.x.16/28
0 0 REJECT all -- * brtest 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
0 0 ACCEPT toate -- * virbr0 0.0.0.0/0 192.168.122.0/24 ctstate RELATED,STABLISHED
0 0 REJECT all -- * virbr0 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
Lanț LIBVIRT_FWO (1 referințe)
pkts bytes target prot opt in out source destination
31 1876 ACCEPT toate -- brtest eno1 51.x.x.16/28 0.0.0.0/0
0 0 REJECT all -- brtest * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
0 0 ACCEPT toate -- virbr0 * 192.168.122.0/24 0.0.0.0/0
0 0 REJECT all -- virbr0 * 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
Lanț LIBVIRT_FWX (1 referințe)
pkts bytes target prot opt in out source destination
0 0 ACCEPT toate -- brtest brtest 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT toate -- virbr0 virbr0 0.0.0.0/0 0.0.0.0/0
Lanț LIBVIRT_INP (1 referințe)
pkts bytes target prot opt in out source destination
11 781 ACCEPT udp -- brtest * 0.0.0.0/0 0.0.0.0/0 udp dpt:53
0 0 ACCEPT tcp -- brtest * 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
5 1585 ACCEPT udp -- brtest * 0.0.0.0/0 0.0.0.0/0 udp dpt:67
0 0 ACCEPT tcp -- brtest * 0.0.0.0/0 0.0.0.0/0 tcp dpt:67
0 0 ACCEPT udp -- virbr0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:53
0 0 ACCEPT tcp -- virbr0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
0 0 ACCEPT udp -- virbr0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:67
0 0 ACCEPT tcp -- virbr0 * 0.0.0.0/0 0.0.0.0/0 tcp dpt:67
Lanț LIBVIRT_OUT (1 referințe)
pkts bytes target prot opt in out source destination
0 0 ACCEPT udp -- * brtest 0.0.0.0/0 0.0.0.0/0 udp dpt:53
0 0 ACCEPT tcp -- * brtest 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
4 1312 ACCEPT udp -- * brtest 0.0.0.0/0 0.0.0.0/0 udp dpt:68
0 0 ACCEPT tcp -- * brtest 0.0.0.0/0 0.0.0.0/0 tcp dpt:68
0 0 ACCEPT udp -- * virbr0 0.0.0.0/0 0.0.0.0/0 udp dpt:53
0 0 ACCEPT tcp -- * virbr0 0.0.0.0/0 0.0.0.0/0 tcp dpt:53
0 0 ACCEPT udp -- * virbr0 0.0.0.0/0 0.0.0.0/0 udp dpt:68
0 0 ACCEPT tcp -- * virbr0 0.0.0.0/0 0.0.0.0/0 tcp dpt:68
ifconfig
brtest: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 51.x.x.30 netmask 255.255.255.240 difuzare 51.x.x.31
ether 52:xx:xx:xx:xx:fe txqueuelen 1000 (Ethernet)
Pachete RX 134 octeți 10118 (10,1 KB)
Erori RX 0 a scăzut 0 depășiri 0 cadru 0
Pachete TX 49 octeți 8781 (8,7 KB)
Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 146.x.x.42 netmask 255.255.255.0 difuzare 146.x.x.255
inet6 fe80::xxxx:xxxx:xxxx:xxxx prefixlen 64 scopeid 0x20<link>
inet6 2001:xxxx:xxx:xxxx:: prefixlen 57 scopeid 0x0<global>
eter d0:xx:xx:xx:xx:14 txqueuelen 1000 (Ethernet)
Pachete RX 11073 octeți 1099048 (1,0 MB)
Erori RX 0 a scăzut 0 depășiri 0 cadru 0
Pachete TX 5843 octeți 923130 (923,1 KB)
Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<gazdă>
loop txqueuelen 1000 (Loopback local)
Pachete RX 0 octeți 0 (0,0 B)
Erori RX 0 a scăzut 0 depășiri 0 cadru 0
Pachete TX 0 octeți 0 (0,0 B)
Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0
vethe57ac9e: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::249a:c8ff:fe26:f4c1 prefixlen 64 scopeid 0x20<link>
eter 26:xx:xx:xx:xx:c1 txqueuelen 0 (Ethernet)
Pachete RX 0 octeți 0 (0,0 B)
Erori RX 0 a scăzut 0 depășiri 0 cadru 0
Pachete TX 15 octeți 1226 (1,2 KB)
Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 difuzare 192.168.122.255
eter 52:xx:xx:xx:xx:d2 txqueuelen 1000 (Ethernet)
Pachete RX 0 octeți 0 (0,0 B)
Erori RX 0 a scăzut 0 depășiri 0 cadru 0
Pachete TX 0 octeți 0 (0,0 B)
Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0
vnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::xxxx:xx:xxxx:xxxx prefixlen 64 scopeid 0x20<link>
ether fe:xx:xx:xx:xx:49 txqueuelen 1000 (Ethernet)
Pachete RX 138 octeți 12591 (12,5 KB)
Erori RX 0 a scăzut 0 depășiri 0 cadru 0
Pachete TX 472 octeți 31107 (31,1 KB)
Erori TX 0 a scăzut 0 depășiri 0 purtător 0 coliziuni 0