1.前言

       公司的服务器为了避免单点故障采用了双ISP接入。即联通和电信都接入。联通的线路为100M,作为首选,电信的线路为30M,当联通线路出现故障的时候,先切换到电信线路救急。

       但是因为电信的线路闲着就是浪费,结合业务的需求下,在一台主服务器中同时配置了电信的公网ip和一个私网ip,这个私网ip映射的是联通的公网ip。

        那么问题就出现了,路由怎么配置,当有数据需要传输的时候,他会选择哪个线路出去,如果你配上两个网关的话会出现问题吗?很显然linux没有那么智能。这个时候策略路由就闪耀登场了。

2.操作

(1)配置ip

bond0:192.168.0.36    映射的联通的ip,网关为192.168.0.1(此处做的链路聚合,不在赘述)

eth1:1.202.XXX.XX     

网卡按如上配置,映射的网卡文件中有网关选项,直接配置的公网ip地址没有配置网关

[root@bjzhonggc network-scripts]# vim ifcfg-bond0

DEVICE=bond0                                     //做的链路聚合,不在赘述
IPADDR=192.168.0.3                             //ip地址
NETMASK=255.255.255.0                     //子网掩码
GATEWAY=192.168.0.1                         //网关
BROADCAST=192.168.0.255                 //广播地址
NM_CONTROLLED=yes                        //允许NetworkManager管理(图形化界面)
ONBOOT=yes                                       //开机自启
BOOTPROTO=none                              //静态ip
TYPE=Ethernet                                      //类型以太网
IPV6INIT=no                                         //ipv6不允许
USERCTL=no                                         //不允许非root用户控制该设备

linux 策略路由实例解析_第1张图片

[root@bjzhonggc network-scripts]# vim ifcfg-eth1
DEVICE=eth1
HWADDR=78:2B:CB:69:39:77
NM_CONTROLLED=yes
ONBOOT=yes
IPADDR=1.202.197.87
BOOTPROTO=none
NETMASK=255.255.255.240
TYPE=Ethernet
DNS1=202.106.0.20
IPV6INIT=no
USERCTL=no

linux 策略路由实例解析_第2张图片

(2)增加路由表

[root@bjzhonggc ~]# vim /etc/iproute2/rt_tables
251 cnc                            //增加一个路由表 cnc,优先级为251
252 tel                              //增加一个路由表tel,优先级为252

wKiom1dx5iTjVbaVAAADgWL8tTc229.png

(3) 配置路由

ip route add default via 192.168.0.1 dev bond0 table cnc     //在cnc表中增加路由条目
ip route add default via 1.202.XXX.XX dev eth1 table tel       //在tel表中增加路由条目
ip rule add from 192.168.0.0/24 table cnc                             //192.168.0.0/24使用cnc路由表
ip rule add from 1.202.XXX.XX/28 table tel                            //1.202.XXX.XX/28使用tel路由表

(4)查看路由表

linux 策略路由实例解析_第3张图片