![CentOS 路由表有默认网关的双重条目](https://linux22.com/image/709752/CentOS%20%E8%B7%AF%E7%94%B1%E8%A1%A8%E6%9C%89%E9%BB%98%E8%AE%A4%E7%BD%91%E5%85%B3%E7%9A%84%E5%8F%8C%E9%87%8D%E6%9D%A1%E7%9B%AE.png)
我无法 ping 通 Google,因此我查看了我的路由表:
# 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...
...
答案1
您应该只在其中一个接口文件中使用“DEFROUTE=yes”,默认情况下,您希望互联网流量通过该文件流动。
答案2
您应该DEFROUTE=yes
从 eno2 的配置中删除。
如果您不使用 DHCP 来获取 DNS 和默认网关,那么您也不需要PEERDNS=yes
and 。PEERROUTES=yes
参考
从https://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-networkscripts-interfaces.html:
德弗劳特: 是的— 将此接口设置为默认路由。不— 不要将此接口设置为默认路由。
从https://docs.oracle.com/cd/E37670_01/E41138/html/ol_about_netconf.html
PEERDNS:用于DNS解析的/etc/resolv.conf文件是否包含从DHCP服务器获取的信息。
PEERROUTES:定义接口的默认网关的路由表条目的信息是否从 DHCP 服务器获取。