CentOS 网络接口优先级

CentOS 网络接口优先级

我有一台带有2个网络接口的CentOS服务器,其配置如下:

eth0:

DEVICE=eth0
BOOTPROTO=none
BROADCAST=10.0.0.255
HWADDR=xx:
IPADDR=10.0.0.2
NETMASK=255.255.255.0
NETWORK=10.0.0.0
ONBOOT=yes
TYPE=Ethernet
GATEWAY=10.0.0.1
USERCTL=no
IPV6INIT=no
PEERDNS=yes

eth1:

DEVICE=eth1
BOOTPROTO=none
BROADCAST=192.168.0.255
HWADDR=yy
IPADDR=192.168.0.2
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes
TYPE=Ethernet
USERCTL=no
IPV6INIT=no
PEERDNS=yes
GATEWAY=192.168.0.1

192 网络可以访问互联网,而 10 网络则不能。目前,我无法连接到互联网,但我需要我的服务器可以访问互联网。我认为我需要将以太网接口的优先级设置为 eth1 和 eth0。我该怎么做?感谢您的回答。

答案1

如果您不需要 10.0.0.0/24 网络上的流量传到子网外:从 10.0.0.0/24 接口中删除 GATEWAY=。


如果您确实需要流量穿越 10net 之外,则您需要查看更复杂的路由表。从两个接口中删除 GATEWAY=。

在:/etc/sysconfig/network-scripts/ifcfg-eth1添加:

DEVICE=eth1
BROADCAST=192.168.0.255
IPADDR=192.168.0.2
NETMASK=255.255.255.0
ONBOOT=yes
IPV6INIT=no

在:/etc/sysconfig/network-scripts/route-eth1添加:

192.168.0.0/24 dev eth1
default via 192.168.0.1

在:/etc/sysconfig/network-scripts/ifcfg-eth0添加:

DEVICE=eth0
BROADCAST=10.0.0.255
IPADDR=10.0.0.2
NETMASK=255.255.255.0
ONBOOT=yes
IPV6INIT=no

现在这是最愚蠢的部分。假设您的 10.0.0.1 网关将流量路由到 10.0.2.0/24 和 192.168.67.0/24...我们需要定义一条静态路由,以便通过适当的网关到达这些网络:

添加/etc/sysconfig/network-scripts/route-eth0

10.0.0.0/24 dev eth0
10.0.2.0/24 via 10.0.0.1
192.168.67.0/24 via 10.0.0.1

我非常怀疑您实际上是在 10 网关上路由 10net 之外的路由。但上述配置是该用例的解决方案。如果您只想通过 eth0 本地访问 10.0.0.0/24 子网,请执行上述所有操作,但替换/etc/sysconfig/network-scripts/route-eth0

10.0.0.0/24 dev eth0

简短的版本是从 eth0 中删除 GATEWAY 行。/etc/init.d/network restart在进行任何这些更改后运行。注意:如果您不离开子网,则不需要网关。

答案2

我认为你可以指定

DEFROUTE=yes

在 eth1 配置中使其成为默认路由。

答案3

eth0 根本无法访问互联网吗?还是它只是使用 eth1 作为默认设置?

使用命令检查您的路由表route并查看default行。

如果断开或禁用 eth1,您还能连接到互联网吗?

如果是,并且您只是希望它主要通过该接口,那么您可以添加DEFROUTE=yes到 eth0 配置。

如果没有,请尝试使用该界面进行测试。

  • 对该网络上的网关 (10.0.0.1) 执行 ping 操作
  • 运行traceroute www.google.com(或网络外的另一台主机)并在输出中进行分析。

还有一种可能是10.0.0.1网关有问题。

route如果您仍然遇到问题,请发布和命令的输出traceroute

相关内容