Может ' нет ответа ARP на устройстве macvtap

У меня есть физический сервер в Hetzner с двумя назначенными общедоступными IP-адресами в разных / 27 диапазонах . Один предназначен для самого сервера, а другой - для одной виртуальной машины внутри него. На хосте работают CentOS 8 и libvirt.

Я создал виртуальную машину с интерфейсом macvtap, привязанным к моему физическому адаптеру, и изменил конфигурацию гостевой сети, чтобы использовать второй общедоступный IP-адрес.В результате мой гость никогда не сможет подключиться к внешнему миру.

С tcpdump я наблюдал, что, хотя гостевые запросы ARP достигают шлюза, ответ гостю не доставляется.

На физическом уровне интерфейс я вижу это:

[root@server ~]# tcpdump -i enp8s0 arp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on enp8s0, link-type EN10MB (Ethernet), capture size 262144 bytes
14:03:48.207364 ARP, Request who-has static.88-198-19-129.clients.your-server.de tell static.88.198.19.139.clients.your-server.de, length 28
14:03:48.207868 ARP, Reply static.88-198-19-129.clients.your-server.de is-at 4c:16:fc:c8:e1:24 (oui Unknown), length 46
14:03:49.301192 ARP, Request who-has static.88-198-19-129.clients.your-server.de tell static.88.198.19.139.clients.your-server.de, length 28
14:03:49.301689 ARP, Reply static.88-198-19-129.clients.your-server.de is-at 4c:16:fc:c8:e1:24 (oui Unknown), length 46

Но в интерфейсе macvtap я вижу следующее:

[root@server ~]# tcpdump -i macvtap0 arp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on macvtap0, link-type EN10MB (Ethernet), capture size 262144 bytes
14:05:32.598221 ARP, Request who-has static.88-198-19-129.clients.your-server.de tell static.88.198.19.139.clients.your-server.de, length 28
14:05:33.207406 ARP, Request who-has static.88-198-19-129.clients.your-server.de tell static.88.198.19.139.clients.your-server.de, length 28

Я пытался изменить эти настройки, по отдельности или все вместе, но не смог заставить их работать:

sysctl net.bridge.bridge-nf-call-iptables=0
sysctl net.ipv4.conf.all.proxy_arp=1
sysctl net.ipv6.conf.all.forwarding=1
sysctl net.ipv4.conf.all.arp_filter=1
iptables -P FORWARD ACCEPT
iptables -I FORWARD -m physdev --physdev-is-bridged -j ACCEPT

Я также пытался настроить мост для основного подключения, подключив к нему enp8s0 и подключив к нему виртуальную машину, но я вижу то же падение ответа arp.

Кто-нибудь может мне помочь, пожалуйста?

0
задан 11 May 2020 в 16:26
1 ответ

После разговора со службой поддержки Hetzner они указали мне правильное направление. Моя конфигурация была в порядке, но у них был фильтр ARP для каждого общедоступного IP-адреса. Как только я настроил собственный MAC-адрес на интерфейсе виртуальной машины, все заработало.

0
ответ дан 12 May 2020 в 07:31

Теги

Похожие вопросы