关键字: 仅主机网络、NAT网络、路由优先级、nmcli
环境:
RockyLinux8.8最小版本安装,网卡配置如下所示:
ens160: 连仅主机(用于本地SSH登陆) 10.0.0.0/24
ens224: 连NAT(有于上外网)、10.0.2.0/24(网关:10.0.2.2)
A: 解决思路
[root@qzm999 ~]# ip route get 8.8.8.8
8.8.8.8 via 10.0.0.1 dev ens160 src 10.0.0.70 uid 0 #表示,当前访问8.8.8.8,走的是10.0.0.70网卡,通过10.0.0.1网关走外网,但是10.0.0.0是一个仅主机网络,不能访问外网,所以导致ping 8.8.8.8失败。
问题找到了,我再按下面步骤尝试解决:
1. 查看当前所有路由
[root@qzm999 ~]# ip route list
default via 10.0.0.1 dev ens160 proto static metric 100 #优先级比101高
default via 10.0.2.2 dev ens224 proto dhcp src 10.0.2.128 metric 101 #优先级比100低
10.0.0.0/24 dev ens160 proto kernel scope link src 10.0.0.70 metric 100
10.0.2.0/24 dev ens224 proto kernel scope link src 10.0.2.128 metric 101
从上面路由列表反映的信息知道问题所在了(对吧?!),下面我只要把连接NAT网络的ens224网卡的优先级提高到高于ens160(连仅主机网络)就解决了。
2. 可以改ifcfg-ensXXX文件或者用命令nmcli connection modify ens160 ipv4.route-metricXXX修改路由优先级
2.1改ifcfg-ensXXX文件(2.1和2.2二选一)
vim /etc/sysconfig/network-scripts/ifcfg-ensXXX
nmcli con reload #reload all connection files from disk.(ifcfg-ensXXX.....)
nmcli con down ens160 #需要关然后重开网卡才会生效
nmcli con up ens160 #需要关然后重开网卡才会生效
2.2 nmcli命令(2.1和2.2二选一)
nmcli connection modify ens160 ipv4.route-metric 199 #199是优先级值,优先级越高,值越小
注意:nmcli修改网卡配置后,并不需要调用“nmcli con reload” 命令
nmcli con down ens160 #需要关然后重开网卡才会生效
nmcli con up ens160 #需要关然后重开网卡才会生效
3.查看服务器(VM/ECS)路由配置
[root@qzm999 ~]# nmcli
ens224: connected to ens224
"VMware VMXNET3"
ethernet (vmxnet3), 00:0C:29:97:38:A1, hw, mtu 1500
ip4 default
inet4 10.0.2.128/24
route4 10.0.2.0/24 metric 101 #生效了
route4 default via 10.0.2.2 metric 101
inet6 fe80::ccf4:b622:3eb8:4d0b/64
route6 fe80::/64 metric 1024
ens160: connected to ens160
"VMware VMXNET3"
ethernet (vmxnet3), 00:0C:29:97:38:97, hw, mtu 1500
inet4 10.0.0.70/24
route4 10.0.0.0/24 metric 200 #生效了
route4 default via 10.0.0.1 metric 200
inet6 fe80::20c:29ff:fe97:3897/64
route6 fe80::/64 metric 1024
从当前网卡的配置可知,现在ens224的路由优先级比ens160高(metric的数值越小优先级越高)
4. 在VM中再次ping互联网的8.8.8.8 DNS服务器
[root@qzm999 ~]# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=128 time=69.5 ms 问题解决