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地址没有配置网关
[[email protected] 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用户控制该设备
[[email protected] 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
(2)增加路由表
[[email protected] ~]# vim /etc/iproute2/rt_tables
251 cnc //增加一个路由表 cnc,优先级为251
252 tel //增加一个路由表tel,优先级为252
(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)查看路由表