我有一台带有两个接口(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
在启动后立即启用两个接口并正确配置:)