两个接口连接到同一个子网,如何确定其中一个接口的优先级?

两个接口连接到同一个子网,如何确定其中一个接口的优先级?

在以下系统上,我遇到了网络问题,但我并不是网络专家。

CentOS release 5.4 (Final) Linux localhost.localdomain
2.6.18-164.6.1.el5 #1 SMP Tue Nov 3 16:12:36 EST 2009 x86_64 x86_64 x86_64 GNU/Linux

两个以太网接口都配置为连接到同一个子网,这对我来说似乎并不理想,我认为这是以前为解决故障而采取的解决方法。效果是 ifconfig 如下所示:

eth0      Link encap:Ethernet  HWaddr 00:03:2D:10:76:B0
          inet addr:192.168.168.3  Bcast:192.168.168.255  Mask:255.255.255.0
          inet6 addr: fe80::203:2dff:fe10:76b0/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3084 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3108 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:1422781 (1.3 MiB)  TX bytes:1695768 (1.6 MiB)
          Memory:fdfc0000-fdfe0000

eth1      Link encap:Ethernet  HWaddr 00:03:2D:10:76:B1
          inet addr:192.168.168.122  Bcast:192.168.168.255  Mask:255.255.255.0
          inet6 addr: fe80::203:2dff:fe10:76b1/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:35 errors:0 dropped:0 overruns:0 frame:0
          TX packets:53 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:4236 (4.1 KiB)  TX bytes:12980 (12.6 KiB)
          Memory:fdec0000-fdee0000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:252097 errors:0 dropped:0 overruns:0 frame:0
          TX packets:252097 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:85617560 (81.6 MiB)  TX bytes:85617560 (81.6 MiB)

以及路线列表:

192.168.168.0/24 dev eth0  proto kernel  scope link  src 192.168.168.3
192.168.168.0/24 dev eth1  proto kernel  scope link  src 192.168.168.122
169.254.0.0/16 dev eth1  scope link 
default via 192.168.168.1 dev eth0 
default via 192.168.168.1 dev eth1

通过 eth0 向 192.168.168.x 发送流量不起作用,但这条路由优先于通过 eth1 的路由,而 eth1 可以。我找到了纠正这种情况的方法,方法是运行

/sbin/ip route del 192.168.168.0/24 dev eth0

但是,当服务器重新启动时,此配置会被删除(以及其他时候……?)。

我知道我可能会收到很多评论和答案,大意是我应该解决底层的连接问题,例如接口不连接到同一个子网,或者只使用一个子网,我同意!但是,这台机器位于世界非常偏远的地方,实际上改变物理网络及其与网络其余部分的连接非常困难,因为当地 IT 人员无法提供帮助,这种情况的存在是因为网络中其他地方的故障超出了我的控制范围。

谢谢!

答案1

如果您通过删除 eth0 的默认路由获得可行的解决方案,我建议您将其从静态配置中删除。

最有可能的是在这个文件中配置的/etc/sysconfig/网络脚本/ifcfg-eth0. 使用编辑器打开它并注释掉或删除包含以下内容的行网关=192.168.168.1

要应用配置,我建议您关闭接口然后再打开,这是为了避免重新加载所有网络设备。以下是执行该操作的命令。

ip link set dev eth0 down
ip link set dev eth0 up

关于 ifcfg 文件的更多文档可以在这里找到这里

相关内容