# 1.前期准备
1)两个网卡都需要正确设置,包括各自默认网关(注意,两个网卡都需要设定网关)
网卡配置文件在 /etc/sysconfig/network-scripts/目录下,需要正确设置两个网卡的配置文件,然后重新启用新配置。
2)两个网卡都已正确接入到两路线路,并且两路网络的服务供应商都已正常提供服务
# 2.双网关设置步骤
请严格按照下述步骤执行,需要root权限,并且把下述的网卡名称和ip、网关ip换成实际环境中的数值
假设
网卡1
名称:enp0s3
ip:10.10.10.132
网关:10.10.10.254
网卡2
名称:enp0s8
ip:192.168.11.132
网关:192.168.0.1
ip route flush table Route101 #清空路由表1
ip route flush table Route102 #清空路由表2
echo "101 Route101" >> /etc/iproute2/rt_tables #增加路由表1
echo "102 Route102" >> /etc/iproute2/rt_tables #增加路由表2
ip route add default via 10.10.10.254 dev enp0s3 table Route101 #在路由表1中添加默认路由
ip route add 10.10.0.0/20 dev enp0s3 src 10.10.10.132 table Route101 #在路由表1中添加默认路由
ip route add default via 192.168.0.1 dev enp0s8 table Route102 #在路由表2中添加默认路由
ip route add 192.168.0.0/20 dev enp0s8 src 192.168.11.132 table Route102 #在路由表2中添加默认路由
ip rule delete from 10.10.10.132 table Route101 #删除路由规则(如果上次增加过)
ip rule delete from 10.10.10.254 table Route101 #删除路由规则(如果上次增加过)
ip rule delete from 192.168.11.132 table Route102 #删除路由规则(如果上次增加过)
ip rule delete from 192.168.0.1 table Route102 #删除路由规则(如果上次增加过)
ip rule add from 10.10.10.132 table Route101 #增加路由规则,根据来源端IP来决定数据包参考哪个路由表发送出去
ip rule add from 10.10.10.254 table Route101 #增加路由规则,根据来源端IP来决定数据包参考哪个路由表发送出去
ip rule add from 192.168.11.132 table Route102 #增加路由规则,根据来源端IP来决定数据包参考哪个路由表发送出去
ip rule add from 192.168.0.1 table Route102 #增加路由规则,根据来源端IP来决定数据包参考哪个路由表发送出去
ip route flush cache #清除路由cache
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore #arp_ignore:控制系统在收到外部的arp请求时,是否要返回arp响应。1:只响应目的IP地址为接收网卡上的本地地址的arp请求。
ip neigh flush dev enp0s3 #清除本地ARP缓存
ip neigh flush dev enp0s8 #清除本地ARP缓存
# 3.状态确认
一般情况下按照上述操作设置之后,就已实现双网关设置。两路网络互不干扰,可以各自发送和接收流量。
在RRS中,只要选择相应网卡即可实现通过该路网络收发流。
下面是验证网络设置是否正确。
方法一:同时使用2路网络开启RRS流之后,运行下述两个命令观察流量是否从正确的网络走,如果结果的第一列中出现了另外一个网卡的ip,那说明设置有问题,反之,则设置正确。
iftop -i enp0s3 -n
iftop -i enp0s8 -n
方法二:验证从 10.10.10.132 以及 192.168.11.132 的包的路由选择
ip route get 8.8.8.8 from 10.10.10.132
ip route get 8.8.8.8 from 192.168.11.132
结果应该类似于下面:
8.8.8.8 from 10.10.10.100 via 10.10.10.254 dev enp0s3
8.8.8.8 from 192.168.11.132 via 192.168.0.1 dev enp0s8
方法三:
ping 8.8.8.8 -I 10.10.10.132
ping 8.8.8.8 -I 192.168.11.132
# 4.故障调查
如果设置不正确,请使用以下命令检查设置状态
1)检查 /etc/iproute2/rt_tables 文件内容,正确的设置应该大致如下所示(应当包含101 102路由表定义):
255 local
254 main
253 default
0 unspec
#
# local
#
#1 inr.ruhep
101 Route101
102 Route102
2)检查路由表和路由规则
命令:
ip route show table Route101
ip route show table Route102
结果中应当包含类似于以下内容:
default via 10.10.10.254 dev enp0s3
default via 192.168.0.1 dev enp0s8
命令:ip rule
结果中应当包含类似于以下内容:
32763: from 192.168.0.1 lookup Route102
32764: from 192.168.11.132 lookup Route102
32765: from 10.10.10.132 lookup Route101
32765: from 10.10.10.254 lookup Route101
3)检查2个网卡设置四否正确,内网ping其他机器是否都ok.
# 5.以上的路由设置会在系统或网络重启后被清理。因此需要将它保存下来
开机脚本制作
(在以上各步骤都验证ok之后,再进行下述步骤。因为部分设置开机不会丢失,所以开机脚本只需要运行会丢失的部分)
chmod +x /etc/rc.d/rc.local
编辑/etc/rc.d/rc.local,加入以下命令:(具体网卡的ip和网关需要修改为实际的你的ip)
ip route flush table Route101
ip route flush table Route102
if grep -q "101 Route101" /etc/iproute2/rt_tables; then
echo ""
else
echo "101 Route101" >> /etc/iproute2/rt_tables
fi
if grep -q "102 Route102" /etc/iproute2/rt_tables; then
echo ""
else
echo "102 Route102" >> /etc/iproute2/rt_tables
fi
ip route add default via 10.10.10.254 dev enp0s3 table Route101
ip route add 10.10.0.0/20 dev enp0s3 src 10.10.10.132 table Route101
ip route add default via 192.168.0.1 dev enp0s8 table Route102
ip route add 192.168.0.0/20 dev enp0s8 src 192.168.11.132 table Route102
ip rule del from 10.10.10.132 table Route101
ip rule del from 10.10.10.254 table Route101
ip rule del from 192.168.11.132 table Route102
ip rule del from 192.168.0.1 table Route102
ip rule add from 10.10.10.132 table Route101
ip rule add from 10.10.10.254 table Route101
ip rule add from 192.168.11.132 table Route102
ip rule add from 192.168.0.1 table Route102
ip route flush cache
echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore
ip neigh flush dev enp0s8
ip neigh flush dev enp0s3
# 最后,特别需要注意的地方
1)网上很多文章介绍双网卡设置的文章提示说一台电脑拥有两个默认网关是不行的,
需要禁用其中一个网卡的网关设置,和我们这个双网关的情况不同,那种情况是指同时可以访问内网
和外网。我们这里要做的是同时可以访问两个外网线路,两个网卡都需要设置各自的网关,
通过增加路由表来控制网络流量。系统默认只有1个主路由表,一个路由表只有一个默认网关。
而我们这种情况下会有多个路由表,所以可以有多个默认网关。
2) arp_ignore标志必须设置为1,否则会出现一个网卡的流量有时会串入另一个网卡。
这点非常重要,否则表面上看2个网卡都正常工作,其实用iftop查看网卡流量会发现有时流量
会在两个网卡之间互相串,并不能真正的做到流量分离。
标签:网关,ip,配置,192.168,网卡,10.10,table,双网卡,路由表 From: https://blog.51cto.com/u_16474495/8984082