CentOS 7 两个接口上的静态 IP 默认路由

CentOS 7 两个接口上的静态 IP 默认路由

我有一台带有两个接口(em1 和 em2)的服务器。当网络启动时,它会将默认路由设置为 em2:

# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         gateway         0.0.0.0         UG    0      0        0 em2
192.168.2.0       0.0.0.0         255.255.255.0   U     0      0        0 em1
link-local      0.0.0.0         255.255.0.0     U     1002   0        0 em1
link-local      0.0.0.0         255.255.0.0     U     1003   0        0 em2
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 em2

# cat ifcfg-em1
TYPE=Ethernet
NAME=em1
DEVICE=em1
ONBOOT=yes
BOOTPROTO=none
UUID=1*********************
IPV6INIT=no
MTU=15000
IPADDR=192.168.2.2
NETMASK=255.255.255.0
GATEWAY=192.168.2.1
NM_CONTROLLED="no"

# cat ifcfg-em2
TYPE=Ethernet
NAME=em2
DEVICE=em2
ONBOOT=yes
BOOTPROTO=none
UUID=2*********************
IPV6INIT=no
MTU=15000
IPADDR=192.168.1.2
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
NM_CONTROLLED="no"

我怎样才能将默认路由设置在 em1 而不是 em2 上?

答案1

只需在您想要作为默认网关的接口上设置DEFROUTE指令即可。所以:yes

DEFROUTE=yes

答案2

好的,所以接口被网络路由取代了。要在 CentOS 7 中正常更改默认设置,请无论其顺序如何,都路由出选定的接口。

验证/编辑以下文件:/etc/sysconfig/network GATEWAY=192.168.2.1 GATEWAYDEV=em1 NETWORKING=YES

当然还有其他方法可以做到这一点以及向此文件中添加其他条目,但这实际上会让您获得期望的结果。

答案3

在我的 CentOS 7 最低版本上,我必须设置以下内容/etc/sysconfig/network-scripts/ifcfg-eth0以使我的主接口eth0具有默认路由:

DEFROUTE=yes

对于其他(次要)接口,则明确eth1地采用/etc/sysconfig/network-scripts/ifcfg-eth1相反的方式:

DEFROUTE=no

这样,就可以设置ONBOOT=yes在启动后立即启用两个接口并正确配置:)

相关内容