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,不生效。
生效双网关方案
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
验证路由表
字段名 说明
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
此情况不能采用如上的三种方法,
参考他人实验结论:
此为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