我们有一个可从外部访问的子网,所有台式机和一些服务器都位于该子网中。由于缺少 IP,我们将服务器(不需要从外部访问)放在私有子网上,如果私有子网上的机器需要访问互联网,我们的防火墙只需在两个子网和 NAT 之间路由即可。(这不是一个理想的设置,但最容易实现,没有太多的混乱)
其中一台服务器(VM 主机)目前已在私有子网上配置,一切运行正常。我们需要让服务器可从外部访问,因此我尝试向 VM 添加一个接口,以便服务器在私有子网上有一个接口,在主外部子网上有另一个接口。
启动第二个接口后,机器停止响应来自主子网的第一个接口上的 ping。这种情况发生在服务器 (CentOS) 上,我也尝试过测试 Ubuntu VM。
是否有任何内核设置可能会导致这种情况?如果一台机器在 10.0.0.1/8 上有一个接口,在 123.123.123.1/24 上有一个接口,当 ping 到达 10.0.0.1 接口时,它会拒绝响应来自 123.123.123.2 的 ping 吗?我已经检查过了,它正在接收 ping,但两个接口都没有响应。
答案1
啊,我设法回答了我自己的问题。
正如所怀疑的那样,这是内核设置。设置 net.ipv4.conf.eth0.rp_filter=0 使服务器能够响应到达 eth0 的流量,而它认为这些流量应该通过 eth1 进入。
sysctl net.ipv4.conf.eth0.rp_filter=0