我们正在使用带有 libvirtd 的 KVM 和路由网络(主机系统为虚拟机路由额外的子网)运行多个虚拟机。主机和客户机操作系统是 Gentoo(主机在 amd64 上,客户机在 x86 上)。虚拟机是多宿主的,具有内部和外部网络。
几周前,我开始注意到我们的邮件服务器出现了 sprodic 连接问题:连接超时。几分钟后,连接又恢复了。在中断期间,内部网络正常,但没有流量通过外部网络(既没有进也没有出)。
跟踪路径显示主机的最后一跳。在此之后,只显示星号,直到最大跳数(再次进出)。
但是,如果我mtr
从外部主机运行或类似程序,连接总是成功(但仅限于从该主机)。因此,我怀疑存在 arp 问题或类似问题。我尝试更改网桥上的老化时间,但没有成功。
另一件有趣的事情:从虚拟机 ping 互联网上的另一台主机有时会显示带有 ISP 网关 IP 的 icmp 重定向警告。
到目前为止,我只在这台虚拟机上看到了这个问题,但设置与其他设置并没有太大区别。有什么想法吗?
编辑: 网络布局如下:
答案1
好的,我解决了这个问题:问题是由主机系统发送的 ICMP 重定向数据包触发的。我怀疑虚拟机和远程服务器发送的数据包的路由路径不同导致了这个问题。
设置后sysctl -w net.ipv4.conf.all.send_redirects=0
,主机停止发送ICMP报文,所有连接成功。