服务器配置两个默认网关必须配置路由优先级

背景

        对于具备多网口的服务器来说,启用多个网口很正常,正常情况下应该只有一个默认网关,其他网口配置明细路由,如果将服务器做为软路由,并且有两个外网网络,1主1备,则会需要配置网关默认网关,但必须要配置路由优先级,否则可能会导致网络问题。

测试拓扑如下:

图片

1. 测试环境介绍

操作系统:CentOS7.6

网卡数量:2;网卡名称分为ens32和ens34

ens32配置:IP 192.168.211.101/24,网关192.168.211.2;

ens34配置:IP 192.168.0.101/24,网关192.168.0.254;

测试分两种情况:

(1)使用NetworkManager管理网络

(2)network管理网络

因为CentOS7及以上版本都是使用NetworkManager,但也有使用network的,所以两种情况都进行测试,默认情况下network工具未安装。

2. 安装网络工具

因为CentOS7默认没有network服务,先将network进行安装,然后测试:

yum install net-tools -y

net-tools软件包提供network服务以及ifconfig、route等命令。

3. 使用NetworkManger管理网络

先停用network服务,启用NetworkManager服务:

systemctl stop networksystemctl start NetworkManager

3.1 配置IP地址

这里我直接使用nmcli命令配置IP地址等信息。

配置网卡ens32的IP地址:

nmcli conneciton add con-name ens32 ifname ens32 type ethernetnmcli connection modify ens32 ipv4.addresses 192.168.211.101/24 ipv4.gateway 192.168.211.2 ipv4.method manual connection.autoconnect yesnmcli connection up ens32

配置网卡ens34的IP地址:

nmcli conneciton add con-name ens34 ifname ens34 type ethernetnmcli connection modify ens34 ipv4.addresses 192.168.0.101/24 ipv4.gateway 192.168.0.254 ipv4.method manual connection.autoconnect yesnmcli connection up ens34

图片

注意,此时只是将网卡配置IP地址和网关信息,路由优先级接下来配置。

3.2 查看路由

route -nip route show

图片

当使用NetworkManager管理网络时,会自动设置优先级。因为是自动生成的优先级,可能不符合需求,此时可以手动设置优先级,假设需要将ens34的优先级修改为80。

配置IP地址时可以执行命令:

nmcli connection modify ens34 ipv4.addresses 192.168.0.101/24 ipv4.gateway 192.168.0.254 ipv4.method manual connection.autoconnect yes ipv4.route-metric 80

在原来配置上进行修改:

nmcli connection modify ens34 ipv4.route-metric 80

重启网卡

nmcli connection down ens34 && nmcli connection up ens34

再次查看路由表,优先级已经生效:

图片

4. 使用network管理网络

先启用network服务,停用NetworkManager服务:

systemctl start networksystemctl stop NetworkManager

4.1 查看路由信息

当使用network服务管理网络时,只能看到一条默认路由:

图片

系统自动把另外一条默认路由屏蔽了,ens34网卡上设置的路由优先级在这里也不显示了。

查看ens32网卡配置:

cat /etc/sysconfig/network-scripts/ifcfg-ens32

图片

使用nmcli命令配置的IP信息可以在网卡配置信息中看到;

查看ens34网卡配置:

cat /etc/sysconfig/network-scripts/ifcfg-ens34

图片

配置的路由优先级在网卡配置文件中也可以查看到。

4.2 配置优先级

这里我直接跟大家说配置方法:

第一步:在网卡配置文件中将所有默认网关取消;

第二步:使用命令配置路由;

4.2.1 取消网关

这里我将原配置文件中网关配置注释掉:

图片

重启网络服务:

systemctl restart network

图片

重启网络服务后,没有默认路由了。

4.2.2 临时配置

在增加路由时设置优先级即可:

ip route add 0.0.0.0/0 via 192.168.211.2 dev ens32 metric 100ip route add 0.0.0.0/0 via 192.168.0.254 dev ens34 metric 80

图片

4.2.3 永久性配置

很多人说将命令写入到/etc/rc.d/rc.local文件中,这样服务器重启服务器自动设置路由优先级,这个方法确实是可以,前提条件是你不能再手动重启network服务,否则路由会消失,测试情况如下:

修改/etc/rc.d/rc.local,末尾增加行:

ip route add 0.0.0.0/0 via 192.168.211.2 dev ens32 metric 100ip route add 0.0.0.0/0 via 192.168.0.254 dev ens34 metric 80

将文件增加可执行权限:

chmod +x /etc/rc.d/rc.local

重启服务器测试,当重启服务器后,路由也配置成功了,一旦重启network服务,路由条目则会消失:

图片

所以这个方法不是最优配置。

下面我教大家一个比较好的方法。

注:先将上一步在/etc/rc.d/rc.local文件的配置取消。

将路由配置命令写入到/etc/init.d/network文件中:

vi /etc/init.d/network

#在倒数第1行(exit $rc)的前1行增加

ip route add 0.0.0.0/0 via 192.168.211.2 dev ens32 metric 100ip route add 0.0.0.0/0 via 192.168.0.254 dev ens34 metric 80

图片

刷新配置文件:

systemctl daemon-reload

重启网络:

systemctl restart network

图片

可以看到,重启network网络服务后,路由表立即生效;

当然,重启服务器配置也会生效。

5. 总结

通常情况下,一般只将第一张网卡配置默认网关,而第二张网卡配置明细路由,特殊情况需要配置两个默认网关的,可以将配置命令写在/etc/init.d/network文件中。

  • 21
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

架构师之路魂

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值