Linux 默认网关错误?

Linux 默认网关错误?

我部署了一个 VMware vCloud 设备,部署前系统要求我输入该设备应使用的 IP 地址和默认网关。该设备默认有 2 个 IP 地址和网卡,它们应该位于同一子网中。

所以我输入的信息是:eth0 为 10.248.2.10/24 eth1 为 10.248.2.20/24 默认网关为 10.248.2.254

现在我遇到了一个奇怪的问题。当我从同一子网中的计算机 ping 两个 IP 地址时,一切都正常。当我从不同子网中的计算机 ping 时,我只收到来自 10.248.2.20 地址 (eth1) 的回复。当我登录到设备时,我可以 ping 同一子网中的计算机以及不同子网中的计算机。

网络人员向我保证没有防火墙阻止此流量。

不确定哪里出了问题。我在想可能是路由表不正确?难道不应该只有一个“默认”目的地吗?但话又说回来,我希望从 eth0 或 eth1 进入的流量也从它到达的同一接口离开,或者这不是一个正确的假设?

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         10.248.2.254    0.0.0.0         UG    0      0        0 eth1
default         10.248.2.254    0.0.0.0         UG    0      0        0 eth0
10.248.2.0      *               255.255.255.0   U     0      0        0 eth1
10.248.2.0      *               255.255.255.0   U     0      0        0 eth0

有什么线索可寻找吗?

答案1

在同一个子网中,两个 IP 均可访问,无需路由。

从不同的子网,您需要有效的路由才能正常工作。在您的例子中,默认路由通过 eth1。

如果您只想让路由优先考虑 eth0,则可以使用路由表来实现这一点,或者只是为所需接口提供较低的度量。在这两种情况下,您都会获得朝向所需接口的路由。

您还可以添加规则来确定哪个表用于什么用途:

  • 创建两个路由表,每个 NIC 一个
  • 将每个接口的路由添加到相应的表中
  • 添加规则以确定使用哪个表

这应该可以防止流量在内部穿过 NIC,从而允许您保留冗余或将每个 NIC 用于不同的功能。

相关内容