背景描述:服务器上原有一块网卡eth0,后来添加了一块新的网卡eth1。
添加完毕后,在配置了路由信息后,当我尝试通过跳板机ssh连接eth0时发现网络不通,于是登录服务器进行排查。
1、以下是当前服务器的路由信息,使用命令route -n查看路由表:

2、网卡路由优先级的问题主要涉及Metric参数的配置
Metric是一个整数值(范围在1~9999之间),它用来在路由表里的多个路由中选择与转发包中的目标地址最为匹配的路由。所选的路由具有最少的跃点数。跃点数能够反映跃点的数量、路径的速度、路径可靠性、路径吞吐量以及管理属性。
如果两个网卡的Metric值相同,则会出现抢夺优先级的情况,从而导致网卡冲突,其中一块网卡将无法连接。
3、修改Metric值
修改网卡的配置文件,如果文件中没有,就添加IPV4_ROUTE_METRIC参数
我这里配置的是eth0的优先级高
# cat /etc/sysconfig/network-script/ifcfg-eth0 NAME=“eth0” TYPE=“Ethernet” BOOTPROTO=“none” DEVICE=“eth0” ONBOOT=“yes” IPADDR=**** NETMASK=255.255.255.224 GATEWAY=**** IPV4_ROUTE_METRIC=0
# cat /etc/sysconfig/network-script/ifcfg-eth1 NAME=“eth1” TYPE=“Ethernet” BOOTPROTO=“none” DEVICE=“eth1” ONBOOT=“yes” IPADDR=**** NETMASK=255.255.255.224 GATEWAY=**** IPV4_ROUTE_METRIC=100
修改完配置文件后,需要重启网络服务才能使更改生效
重启网络服务后,之前配置的临时路由信息将失效
systemctl restart network
4、验证参数是否生效
执行route -n命令查看路由情况,可以看到修改后的Metric值已发生变化

注:我的路由配置已添加到重启自启动中,因此在重启网络服务时无需重新配置路由。
再分享一下添加路由的命令:
route add -net 10.3.97.0 netmask 255.255.255.0 gw 172.97.244.32 10.3.97.0 是目标地址段 255.255.255.0 是子网掩码 172.97.244.31 是网关