Linux-Networking
CentOS 路由表有兩個預設網關條目
我無法 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
關於 10.30.0.1 via eno2 的條目沒有意義,因為 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
從 eno2 的配置中刪除。如果您不使用 DHCP 來獲取 DNS 和預設網關,您
PEERDNS=yes
也不需要。PEERROUTES=yes
參考
來自https://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-networkscripts-interfaces.html:
DEFROUTE: yes — 將此介面設置為預設路由。no — 不將此介面設置為預設路由。
來自https://docs.oracle.com/cd/E37670_01/E41138/html/ol_about_netconf.html
PEERDNS:用於DNS解析的/etc/resolv.conf文件是否包含從DHCP伺服器獲取的資訊。
PEERROUTES:定義介面預設網關的路由表條目的資訊是否從 DHCP 伺服器獲得。
您應該只在其中一個介面文件中使用“DEFROUTE=yes”,預設情況下您希望網際網路流量通過該文件。