CentOS 双网卡配置优先级
作者:Bright Xu
启用网卡
根据业务需要,有时候服务器需要两张网卡,一张用于访问外网,另一种用于连接内网。
如果在安装系统是就对两张网卡进行配置了的话,就比较方便,这里不再讨论。
下面是后期添加的一张网卡
ens37
,其中ens33
用于连接内网,ens37
用于连接外网。
查看网卡IP
ip addr
可以看到网卡ens37
没有启用,使用命令ifup
开启网卡。注意网卡的名称:
ifup ens37
如果遇到错误:未知的连接 "/etc/sysconfig/network-scripts/ifcfg-ens37"
则需要编辑网卡对应的文件
vim /etc/sysconfig/network-scripts/ifcfg-ens37
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens37"
DEVICE="ens37"
ONBOOT="yes"
然后执行命令:
source /etc/sysconfig/network-scripts/ifcfg-ens37
ifup ens37
然后再查看网卡ip信息
此时网卡已启用。但是可能会由于网卡路由优先级的问题,还不能访问外网。
查看路由信息:ip route show
可以看到两张网卡的metric
(跃点数),ens33
的跃点数默认值是100
,比ens37
的值小,所以会通过ens33
连接外网(但是业务需求是ens33
连接的是内网而不是外网),因此不能访问外网。
出现网卡路由优先级问题主要是Metric的参数配置
Metric:为路由指定所需跃点数的整数值(范围是 1 ~ 9999),它用来在路由表里的多个路由中选择与转发包中的目标地址最为匹配的路由。所选的路由具有最少的跃点数。跃点数能够反映跃点的数量、路径的速度、路径可靠性、路径吞吐量以及管理属性。Metric的值越小,优先级越高,如果两块网卡的Metric的值相同,就会出现抢占优先级继而网卡冲突,将会有一块网卡无法连接。
修改网卡路由优先级
所以我们需要通过修改metric
(跃点数),来修改网卡ens37
的优先级
这里为了让ens37
的路由优先级高于ens33
,需要将ens37
的跃点数改成小于ens33
的跃点数(默认100
)。我们这里将ens37
的跃点数改成90
。
编辑网卡ens37
对应的文件:
vim /etc/sysconfig/network-scripts/ifcfg-ens37
TYPE="Ethernet"
PROXY_METHOD="none"
BROWSER_ONLY="no"
BOOTPROTO="dhcp"
DEFROUTE="yes"
IPV4_FAILURE_FATAL="no"
IPV4_ROUTE_METRIC=90
IPV6INIT="yes"
IPV6_AUTOCONF="yes"
IPV6_DEFROUTE="yes"
IPV6_FAILURE_FATAL="no"
IPV6_ADDR_GEN_MODE="stable-privacy"
NAME="ens37"
DEVICE="ens37"
ONBOOT="yes"
这里我们添加了一个参数IPV4_ROUTE_METRIC=90
。
然后执行命令:
source /etc/sysconfig/network-scripts/ifcfg-ens37
ifup ens37
查看路由信息:ip route show
可以看到网卡ens37
的跃点数已经改成90
了。
这时就可以通过ens37
来访问外网了。
注意:网卡配置文件信息的名称以及配置文件里的相关参数要跟网卡信息一致。我这里使用的网卡名称是ens37
,所以在配置文件里很多地方都出现了ens37
。请根据业务需求自行更改。