CentOS 7 双bond双网关配置-添加静态路由及优先级

Red Hat(Centos) 下 route 静态路由 设置
三种方式:
eth0.route redhat 新推的格式 比较傻瓜一些
--------------------------------------------‘
route-eth0 redhat 的老的格式 对专业人士很好,该功能与ip rule show\\\ip route show 类功能实现永久静态化,可实现策略路由及与iptables防火墙联动进行流量标记。
--------------------------------------------’
static-routes
--------------------------------------------’
1

/etc/sysconfig/network-scripts/eth0.route
ADDRESS0=192.168.0.0
NETMASK0=255.255.0.0
GATEWAY0=10.1.1.254
ADDRESS1=172.16.0.0
NETMASK1=255.240.0.0
GATEWAY1=10.1.1.254

2

/etc/sysconfig/network-scripts/route-eth0(网卡接口)
192.168.0.0/16   via      10.1.1.254    dev   eth0
172.16.0.0/12    via      10.1.1.254    dev   eth0
#目标网络        固定字段     下一跳         出网接口(可选)

3

/etc/sysconfig/static-routes
eth0 net 192.168.0.0 netmask 255.255.0.0 gw 10.1.1.254

=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>
新发现,通用最优解方案
策略路由:/etc/iproute2/rt_tables
=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>

事件问题说明:
CentOS7 从网卡进行配置,默认双网关只有一个网关会生效。

bond0配置
ipaddr=172.20.127.253
netmask=255.255.255.128
gateway=172.20.127.129
对应物理网卡
enp130s0f0
enp129s0f0

bond从属网卡配置所需字段参考

TYPE="Ethernet
DEVICE="enp130s0f0"
USERCTL="no"
MASTER="bond0"
SLAVE="yes"
ONBOOT="yes"
NM_CONTROLLED="no"

bond1配置

ipaddr=172.19.78.25
netmask=255.255.255.0
gateway=172.19.78.1

对应物理网卡
enp130s0f1
enp129s0f1

故障现象会如下图的 routing table,另一个bond0的网关 172.19.78.1,不生效。

centos双网卡双IP默认网关 centos7配置双网卡双网关_配置文件

生效双网关方案

vi /etc/sysconfig/network-scripts/route-bond1
172.20.127.0/24 via 172.20.127.129 dev bond1
#目的网络     固定字段  下一跳       出网接口(可选字段)

注释ifcfg-bond1配置文件中的网关:
#gateway=172.20.127.129
此举是为了将第二网关,采用路由配置文件的方式生效。如果写入网卡配置文件,就会不生效。

systemctl restart network

验证路由表

centos双网卡双IP默认网关 centos7配置双网卡双网关_静态路由_02

字段名 	说明
Destination 	目的网段,最长匹配192.168.161.0 > 192.168.0.0 > 0.0.0.0,0可匹配任意数值
Gateway 	所走网关,0.0.0.0表示无网关,即与本机IP同一网段,不需要经过网关(同一个局域网内2台主机通信不需要经过网关)
Genmask 	掩码
Flags 	标志,
U - Up表示有效
G - Gateway表示连接路由,若无这个字段表示直连目的地址
H - Host表示目标是具体主机,而不是网段
Metric 度量值,越小路由损耗越小,优先级越高。

采用route-interface(修改成对应网卡名),第二网关在路由表中生效。

Red Hat 下 route 静态路由 设置 eth0.route & route-eth0 & static-routes
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。
https://windtear.net/archives/2005/01/13/000554.html

请参考新的文章
Redhat 改默认网关、改静态路由的超详细步骤
http://windtear.net/2008/03/redhat_network_route_gateway.html

这些比在 rc.local 里面 route add 或者(ip route add)要好
/sbin/route add -net 192.168.0.0/16 gw 10.1.1.254
重起网络(service network restart)或
者重起网卡(ifdown eth0;ifup eth0)都可以正常工作

=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=>=分割线

下图示例:为双网卡配置、同一个段、不同IP

centos双网卡双IP默认网关 centos7配置双网卡双网关_字段_03

此情况不能采用如上的三种方法,

参考他人实验结论:

此为linux内核机制问题。

网卡开启各自ARP响应(默认内核只采用一个MAC地址做所有回应)

vi /etc/sysctl.conf
#net.ipv4.ip_forward = 1 #开启网卡转发
net.ipv4.conf.all.arp_ignore=1
#net.ipv4.conf.lo.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
#net.ipv4.conf.lo.arp_announce=2
net.ipv4.conf.all.rp_filter=2
#net.ipv4.conf.lo.rp_filter=2
:wq
sysctl -p  ###立即生效

写入如上参数重启永久生效,各网卡响应自身IP MAC地址
https://www.jianshu.com/p/16d5c130670b rp_filter释义(非arp_filter)

解决方法采用 策略路由:/etc/iproute2/rt_tables
参考文档

https://www.jianshu.com/p/19444d8f9b61