不同子网中的双网卡

不同子网中的双网卡

我的 CentOS 7 机器有两个网卡:eth0eth1

NIC 位于不同的子网中。每个子网都有不同的 DHCP,因此,每个 NIC 都会获得不同的 IP 地址和不同的网关设置。

我的问题是:

当我使用命令激活两个 NIC 时 nmtui,每个网络一次只能访问一个 NIC。

例如:

192.168.0.1可以 ping 通192.168.0.2eth0CentOS 的第一个网卡),

192.168.10.1无法 ping 通 192.168.10.2eth1CentOS 的第二个网卡)

当我禁用时eth0,我可以 ping192.168.10.1192.168.10.2eth1CentOS 的第二个网卡)

这是路线问题还是我错过了另一点?

答案1

这可能既是路由问题,又是 rp_filter 问题(与其结合)。

标准路由相当愚蠢。它不关心通过哪个接口打开连接,而是为每个 IP 地址定义(通常仅)一个下一跳,通常是默认网关。

检查这些设置:sysctl -a | grep -F .rp_filter如果相应接口的值大于零,则数据包甚至在到达防火墙之前就会被丢弃。

如果将其设置为零,则您的系统可能会正确应答,但由于系统和目标之间的防火墙,应答可能会被丢弃,因为它来自错误的方向。

一个好的解决方案需要单独标记每个接口的传入连接(iptables使用模块markconnmark),并使用带有这些标记的策略路由 ( ip rule)。

相关内容