欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Linux多网卡配置高级策略路由---"原路来原路回!"

程序员文章站 2024-02-14 16:43:34
...

场景:多运营商线路,或者多出口等

实际案例:一台香港linux服务器上面有三条专线,分别去往深圳、上海、北京,需要实现大陆客户从不同地点访问香港linux服务器,数据回程时分别会走对应专线返回。

Linux服务器信息:CentOS6.9,有三个专线网卡分别去往深圳,上海,北京

网卡名称 IP 网关 备注
eth3 172.16.2.254 172.16.2.1 上海专线
eth2 172.16.1.254 172.16.1.1 深圳专线
eth4 172.16.3.254 172.16.3.1 北京专线


下面我们来看如何实现这样的需求(网卡IP配置这边就不讲): 

注:在 Linux 下一台多网卡服务器不能同时配置两个及以上的默认网关,因为默认网关(Default Gateway)只能配置一个。

1. 先增加三个路由表 

echo "200 sh" >> /etc/iproute2/rt_tables
echo "201 sz" >> /etc/iproute2/rt_tables
echo "202 bj" >> /etc/iproute2/rt_tables

2. 给每个路由表添加默认路由和直连路由

ip route add default via 172.16.2.1 dev eth3 table sh
ip route add 172.16.2.0/24 dev eth3 src 172.16.2.254 table sh
ip route add default via 172.16.1.1 dev eth2 table sz
ip route add 172.16.1.0/24 dev eth2 src 172.16.1.254 table sz
ip route add default via 172.16.3.1 dev eth4 table bj
ip route add 172.16.3.0/24 dev eth4 src 172.16.3.254 table bj

3. 配置策略路由,使数据原路返回

ip rule add from 172.16.1.254 table sh
ip rule add from 172.16.2.254 table sz
ip rule add from 172.16.3.254 table bj

这样,linux服务器即使不需要默认路由也能正常提供服务。