CentOS路由表的默认网关有两个条目

我无法ping通谷歌,所以我看看我的路由表:

# ip r default via 10.30.0.1 dev eno2 proto static metric 100 default via 10.30.0.1 dev eno1 proto static metric 101 10.30.0.0/24 dev eno1 proto kernel scope link src 10.30.0.21 metric 100 10.30.0.1 dev eno2 proto static scope link metric 100 192.168.30.0/24 dev eno2 proto kernel scope link src 192.168.30.3 metric 100 

通过eno2关于10.30.0.1的条目是没有意义的,因为eno2的IP /掩码为192.168.30.3/24,实际上,如果我删除这两个一切顺利:

 # ip route delete default via 10.30.0.1 dev eno2 # ip route delete 10.30.0.1 dev eno2 # ping www.google.gr PING www.google.gr (216.58.210.3) 56(84) bytes of data. 64 bytes from fra16s07-in-f3.1e100.net (216.58.210.3): icmp_seq=1 ttl=54 time=132 ms ... 

我的设置中没有看到任何明显的错误:

cat /etc/sysconfig/network-scripts/ifcfg-eno1

 NAME=eno1 DEVICE=eno1 TYPE=Ethernet BOOTPROTO=static IPADDR=10.30.0.21 NETMASK=255.255.255.0 DEFROUTE=yes PEERDNS=yes PEERROUTES=yes ONBOOT=yes UUID=... IPV6... ... 

cat /etc/sysconfig/network-scripts/ifcfg-eno2

 NAME=eno2 DEVICE=eno2 TYPE=Ethernet BOOTPROTO=static IPADDR=192.168.30.3 NETMASK=255.255.255.0 DEFROUTE=yes PEERDNS=yes PEERROUTES=yes ONBOOT=yes UUID=... IPV6... ... 

只有在其中一个接口文件中,您应该有“DEFROUTE = yes”,默认情况下,您希望Internetstream量通过这个接口文件。

罪魁祸首是DEFROUTE=yes 。 你也不需要PEERDNS=yesPEERROUTES=yes如果你没有从DHCP获得DNS和Def.GW

https://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-networkscripts-interfaces.html

DEFROUTE: yes – 将此接口设置为默认路由。 – 不要将此接口设置为默认路由。

https://docs.oracle.com/cd/E37670_01/E41138/html/ol_about_netconf.html

PEERDNS:用于DNSparsing的/etc/resolv.conf文件是否包含从DHCP服务器获取的信息。

PEERROUTES:是否从DHCP服务器获取定义接口默认网关的路由表条目的信息。