对于PC来说,一台电脑一般最多就两张网卡(有线+无线)。只要能上网,哪管是走的哪张网卡。然鹅,对于服务器来说,N多张网卡(N > 2)是正常不过的事情,如何在多网卡多网关下正常、合理地工作,这就就需要各种交换机以及本文的策略路由来配合了。
路由策略。(Route-Policy) 路由策略是通过修改路由表的路由条目来控制数据流量的可达性。即对接受和发布的路由进过滤。这种方式称为路由策略。
策略路由。(Traffic-Policy) 策略路由是通过用户制定的策略进行转发,且该策略优于路由表的转发。这种方式称为策略路由。 由此可知,路由策略是基于路由表进行流量的转发,而策略路由是基于策略进行流量的转发。两者都为了控制网络流量的可达性或调整网络流量的路径。
服务器有两个网口,eth0和eth1
eth0 : 地址10.16.0.5 ,网关 10.16.0.1 ,掩码 255.255.255.0,对应公网IP 1.2.3.4
eth1 : 地址10.16.254.5,网关10.16.254.1,掩码255.255.255.0,对应公网IP 5.6.7.8
252 e0
251 e1
解释:这里我们自定义了两个策略路由表,假设e0对应eth0,e1对应eth1,以便操作
2.编辑启动脚本 /etc/rc.local,增加下面内容
ip route flush table e0
ip route add default via 10.16.0.1 dev eth0 src 10.16.0.5 table e0
ip rule add from 10.16.0.1 table e0
ip route flush table e1
ip route add default via 10.16.254.1 dev eth1 src 10.16.254.5 table e1
ip rule add from 10.16.254.5 table e1
OK,理论上重启后服务器就能被不同的IP访问到并正常收发数据
然鹅too young,第2中rc.local这种N多年的老掉牙的东东,一点也不好用,时灵时不灵的,而且一点也不优雅(rc.local万金油时代已经过去了_(:з」∠)_
3.现代化的网络管理,当然是得用network或者NetworkManager啦,无视第二步,我们继续来
(1)新增 /etc/sysconfig/network-scripts/rule-eth0 文件,增加以下内容
from 10.16.0.5 table e0
(2)新增 /etc/sysconfig/network-scripts/rule-eth1 文件,增加以下内容
from 10.16.254.5 table e1
(3)编辑或新增 /etc/sysconfig/network-scripts/route-eth0 文件,增加以下内容
10.16.0.0/24 dev eth0 src 10.16.0.5 table e0
default via 10.16.0.1 table e0
(4)编辑或新增 /etc/sysconfig/network-scripts/route-eth1 文件,增加以下内容
10.16.254.0/24 dev eth1 src 10.16.254.5 table e1
default via 10.16.254.1 table e1
至此大功告成,service network restart 重启网络体验一下
At last,你说不知道服务器访问外网默认走哪个网关?骚年,给你的网卡加个Metric,爱往哪走往哪走~
参考资料:《CentOS双线双IP配置》
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。