场景:
- 公司有两条线路,一条是鹏博士的,一条是电信的。
- 鹏博士是100兆共享线路,电信是10兆独享线路。
- 鹏博士对端的地址是1.1.1.1,本地服务器地址是1.1.1.2
- 电信对端的地址是2.2.2.2,本地服务器是2.2.2.3
所以导致有两个网关,大部分公司同事用得是100兆的共享,10兆的被客服独用,但是使用率很低。那能否两边都用呢?
答案是可以的,用策略路由就可以。
策略路由需要用到iproute2,没有的话先安装一下。
定义策略路由表
1cd /etc/iproute2/
2echo "101 pengboshi" >> rt_tables
3echo "102 dianxin" >> rt_tables
定义策略路由
1ip route add default via 1.1.1.1 table 101
2ip route add default via 2.2.2.2 table 102
ok,流量分为两个方向,进来的和出去的,先定义简单的,进来的:
1ip rule add from 1.1.1.1 table 101
2ip rule add from 2.2.2.2 table 102
出就比较麻烦了,100兆和10兆按权重来分,8:2吧
1ip route replace default scope global \
2nexthop via 1.1.1.1 dev eth0 weight 8 \
3nexthop via 2.2.2.2 dev eth0:1 weight 2
注意,因为我们是用了一台路由器来连接上面两个网关的,服务器实际是一个网卡上连到交换机,然后再上连路由器的,如下图:
我们把这一切固定下来,编辑/etc/rc.d/rc.local即可
1# cat /etc/rc.local
2#!/bin/sh
3touch /var/lock/subsys/local
4/sbin/ip route replace default scope global nexthop via 1.1.1.1 dev eth0 weight 8 nexthop via 2.2.2.2 dev eth0:1 weight 2