如何在 RHEL 7 中同时拥有两个活动的以太网接口?

如何在 RHEL 7 中同时拥有两个活动的以太网接口?

我向 vmware VM 添加了第二个网络接口。第二个网络接口位于不同的网络上。我使用 nmtui 定义新接口,然后重新启动机器。两个接口都启动了,并且在预期网络上具有 IP 地址。为了回答这个问题,我将这些网络接口称为 nic1 和 nic2。

当 nic1 和 nic2 都处于活动状态时,我只能 ping nic2。nic1 超时。当我停用 nic2 时,我可以 ping nic1。

这是怎么回事?我怎样才能让两个网络接口同时工作?

更新:

根据请求,以下是 ip route show 的输出:

default via x.y.a.1 dev nic1  proto static  metric 100
default via x.y.b.1 dev nic2  proto static  metric 101
x.y.a.0/24 dev nic1  proto kernel  scope link  src x.y.a.185  metric 100
x.y.c.233 via x.y.b.1 dev nic2  proto dhcp  metric 100
x.y.b.0/24 dev nic2  proto kernel  scope link  src x.y.b.152  metric 100
x.z.d.239 via x.y.a.1 dev nic1  proto dhcp  metric 100

我用字母掩盖了前三个八位字节,以免无意中造成安全风险。但就本次对话而言,我的两个网络的 IP 地址是:

xya185 和 xyb152

执行 ping 操作的设备(使用上述掩码)将是 xvw70。我认为这不是路由问题,因为我可以 ping 任一网卡,但当两个网卡都处于活动状态时,无法同时 ping 两个网卡。

答案1

这是路由问题。在任何地方设置路由表时,请务必记住返回流量。如果流量通过不同的路径(不同的路由器)返回,则设计可能存在问题。有时,需要权衡才能证明这种设计是合理的(称为非对称路由),但这种情况非常罕见。

具体来说,Linux 默认具有rp_filter 1(返回路径过滤模式 1)。在您的例子中,当您的 Linux 注意到从 xvw70 到 xyb152 的 ping 数据包时,它会在接口 xyb152 上忽略它。它会检查路由在反向路径中的运行方式,并认为,嗯,既然我向 xya1 发送了返回 xvw70 的数据包,那么它们根本不应该来自 xyb1。因为rp_filter 1让您非常更安全地抵御欺骗攻击,一般不建议将其更改为0或2。

当你关闭一个NIC时,路由表变得更简单,并且相同的数据包会被正确处理。

相关内容