无法在KVM macvtap设备上获得ARP答复

我在Hetzner有一台物理服务器,其中有两个分配的不同/ 27范围内的公共IP。一种用于服务器本身,另一种用于服务器内部的一个VM。主机正在运行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连接到它,并将VM连接到它,但是我看到了同样的arp回复消息。

谁能帮我吗?

评论