У меня есть публичный IP-блок 51.x.x.16/28, который я пытаюсь использовать с виртуальными машинами libvirt/qemu. Внутри виртуальной машины (ip 51.x.x.18) я пытаюсь создать исходящее TCP-соединение (http).
Используя tcpdump на хосте, я вижу, что SYN и SYN-ACK отправляются и принимаются. Однако внутри виртуальной машины SYN-ACK никогда не принимается (отсутствует трассировка tcpdump и зависание соединения).
У меня есть возможность подключения виртуальной машины к мосту (brtest) и хост-интерфейсу (eno1). С хоста я также могу подключиться к виртуальной машине. Что может быть причиной этого? Я приложил конфигурацию моста, tcpdump, iptables (правила, созданные libvirt) и 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: флаги [S], seq 2472740296, win 64240, параметры [mss 1460,sackOK,TS val 3379788359 ecr 0,nop,wscale 7], длина 0
02:07:11.135352 IP 76.x.x.173.80 > 51.x.x.18.51236: Флаги [S.], seq 1083725147, ack 2472740297, win 65160, параметры [mss 1460, sackOK, TS val 224337,nopwscale], 7 33799 ecr 8 33799 длина 0
iptables -n -v -L
Цепочка INPUT (политика ACCEPT 401 пакет, 43908 байт)
pkts bytes target prot opt in out source target
516 53705 LIBVIRT_INP все -- * * 0.0.0.0/0 0.0.0.0/0
Цепочка FORWARD (политика DROP 0 пакетов, 0 байт)
pkts bytes target prot opt in out source target
31 1876 LIBVIRT_FWX все -- * * 0.0.0.0/0 0.0.0.0/0
31 1876 LIBVIRT_FWI все -- * * 0.0.0.0/0 0.0.0.0/0
31 1876 LIBVIRT_FWO все -- * * 0.0.0.0/0 0.0.0.0/0
Цепочка OUTPUT (политика ACCEPT 453 пакета, 193К байт)
pkts bytes target prot opt in out source target
546 209K LIBVIRT_OUT все -- * * 0.0.0.0/0 0.0.0.0/0
Сеть LIBVIRT_FWI (1 ссылка)
pkts bytes target prot opt in out source target
0 0 ПРИНЯТЬ все -- 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 ПРИНЯТЬ все -- * virbr0 0.0.0.0/0 192.168.122.0/24 ctstate СВЯЗАННО,УСТАНОВЛЕНО
0 0 REJECT all -- * virbr0 0.0.0.0/0 0.0.0.0/0 reject-with icmp-port-unreachable
Цепочка LIBVIRT_FWO (1 ссылка)
pkts bytes target prot opt in out source target
31 1876 ПРИНЯТЬ все -- 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 ПРИНЯТЬ все -- 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
Цепочка LIBVIRT_FWX (1 ссылка)
pkts bytes target prot opt in out source target
0 0 ПРИНЯТЬ все -- brtest brtest 0.0.0.0/0 0.0.0.0/0
0 0 ПРИНЯТЬ все -- virbr0 virbr0 0.0.0.0/0 0.0.0.0/0
Сеть LIBVIRT_INP (1 ссылка)
pkts bytes target prot opt in out source target
11 781 ПРИНЯТЬ udp -- brtest * 0.0.0.0/0 0.0.0.0/0 udp dpt:53
0 0 ПРИНЯТЬ TCP -- brtest * 0.0.0.0/0 0.0.0.0/0 TCP dpt:53
5 1585 ПРИНЯТЬ udp -- brtest * 0.0.0.0/0 0.0.0.0/0 udp dpt:67
0 0 ПРИНЯТЬ tcp -- brtest * 0.0.0.0/0 0.0.0.0/0 tcp dpt:67
0 0 ПРИНЯТЬ udp -- virbr0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:53
0 0 ПРИНЯТЬ TCP -- virbr0 * 0.0.0.0/0 0.0.0.0/0 TCP dpt:53
0 0 ПРИНЯТЬ udp -- virbr0 * 0.0.0.0/0 0.0.0.0/0 udp dpt:67
0 0 ПРИНЯТЬ TCP -- virbr0 * 0.0.0.0/0 0.0.0.0/0 TCP dpt:67
Цепочка LIBVIRT_OUT (1 ссылка)
pkts bytes target prot opt in out source target
0 0 ПРИНЯТЬ udp -- * brtest 0.0.0.0/0 0.0.0.0/0 udp dpt:53
0 0 ПРИНЯТЬ TCP -- * brtest 0.0.0.0/0 0.0.0.0/0 TCP dpt:53
4 1312 ПРИНЯТЬ udp -- * brtest 0.0.0.0/0 0.0.0.0/0 udp dpt:68
0 0 ПРИНЯТЬ TCP -- * brtest 0.0.0.0/0 0.0.0.0/0 TCP dpt:68
0 0 ПРИНЯТЬ udp -- * virbr0 0.0.0.0/0 0.0.0.0/0 udp dpt:53
0 0 ПРИНЯТЬ TCP -- * virbr0 0.0.0.0/0 0.0.0.0/0 TCP dpt:53
0 0 ПРИНЯТЬ udp -- * virbr0 0.0.0.0/0 0.0.0.0/0 udp dpt:68
0 0 ПРИНЯТЬ 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
инет 51.x.x.30 сетевая маска 255.255.255.240 широковещательная рассылка 51.x.x.31
эфир 52:xx:xx:xx:xx:fe txqueuelen 1000 (Ethernet)
RX-пакеты 134 байта 10 118 (10,1 КБ)
Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
Пакеты TX 49 байт 8781 (8,7 КБ)
Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0
eno1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
инет 146.x.x.42 сетевая маска 255.255.255.0 широковещательная рассылка 146.x.x.255
inet6 fe80::xxxx:xxxx:xxxx:xxxx prefixlen 64 scopeid 0x20<ссылка>
inet6 2001:xxxx:xxx:xxxx:: prefixlen 57 scopeid 0x0<глобальный>
эфир d0:xx:xx:xx:xx:14 txqueuelen 1000 (Ethernet)
Пакеты RX 11073 байт 1099048 (1,0 МБ)
Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
Пакеты TX 5843 байт 923130 (923,1 КБ)
Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
инет 127.0.0.1 сетевая маска 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<хост>
loop txqueuelen 1000 (локальная петля)
Пакеты RX 0 байт 0 (0,0 Б)
Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
Пакеты TX 0 байт 0 (0,0 Б)
Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0
vethe57ac9e: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::249a:c8ff:fe26:f4c1 prefixlen 64 scopeid 0x20<ссылка>
эфир 26:xx:xx:xx:xx:c1 txqueuelen 0 (Ethernet)
Пакеты RX 0 байт 0 (0,0 Б)
Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
Пакеты TX 15 байт 1226 (1,2 КБ)
Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0
virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
инет 192.168.122.1 сетевая маска 255.255.255.0 широковещательная рассылка 192.168.122.255
эфир 52:xx:xx:xx:xx:d2 txqueuelen 1000 (Ethernet)
Пакеты RX 0 байт 0 (0,0 Б)
Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
Пакеты TX 0 байт 0 (0,0 Б)
Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0
vnet0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::xxxx:xx:xxxx:xxxx prefixlen 64 scopeid 0x20<ссылка>
эфир fe:xx:xx:xx:xx:49 txqueuelen 1000 (Ethernet)
RX-пакеты 138 байт 12591 (12,5 КБ)
Ошибки RX 0 отброшено 0 переполнение 0 кадр 0
Пакеты TX 472 байта 31107 (31,1 КБ)
Ошибки передачи 0 отброшено 0 превышение пропускной способности 0 несущей 0 коллизий 0