Linux的路由表 Linux的路由策略
ip route 只是基于目的地址的路由选择
ip rule 路由策略,控制路由选择,可根据源地址,源IP等进行路由选择
路由策略由选择符合操作组成
ip rule add 添加策略
ip rule delete 删除策略
ip rule show 显示策略
使用路由策略可以更好的控制路由走向,类似于cisco下的 route map
下面一个例子显示了使用路由策略的优点:
假设有一台双线服务器
有两张网卡,有电信IP和网通IP地址,实现电信IP访问服务器时,服务器响应使用电信网关,网通IP访问服务器时,服务器响应使用网通网关。
假设电信IP为
222.73.121.100/24 网关 222.73.121..1
网通IP
112.80.1.100/24 网关 112.80.1.1
方法1(静态路由方法):
A. 使用电信网关做默认路由,并添加网通的路由条目,并将条目写到/etc/rc.local或者/etc/sysconfig/network里面,以开机时可以加载
在network里面添加GATEWAY=222.73.121.1
添加路由条目如下
route add –net 58.16.0.0/13 gw 112.80.1.1
…..
B. 每网卡路由:假设eth0为222.73.121.100/24,eth1为112..80.1.100/24,新建以下文件
/etc/sysconfig/network-scripts/route-eth1
按如下格式添加路由条目
58.16.0.0/13 via 112.80.1.100
缺点是需要添加很多条目的路由条目,并且需要更新,如果有一个网通网段未添加,这个网段的IP就不能访问服务器的。
方法2(根据用户访问的路径设置静态路由):
1. 先在/etc/sysconfig/network里面添加默认路由GATEWAY=222.73.121.1
2. 设置ip rule 策略
vi /etc/iproute2/rt_tables #添加路由表
[root@lamp iproute2]# cat rt_tables
#
# reserved values
#
255 local
254 main
253 default
0 unspec
252 dianxin #电信路由表
251 wangtong #网通路由表
#
# local
#
#1 inr.ruhep
3. 添加原路返回路由
ip route flush table dianxin
ip route add default via 222.73.121.1 dev eth0 src 222.73.121.100 table dianxin
ip rule add from 222.73.121.100 table dianxin
ip route flush table wangtong
ip route add default via 112.80.1.1 dev eth1 src 112.80.1.100 table wangtong
ip rule add from 112.80.1.100 table wangtong
即让从电信IP过来的请求按照电信路由返回,从网通IP过来的请求从网通路由返回
将上述命令添加至/etc/rc.local中,以便重启可以生效
[root@lamp ~]# ip rule show
0: from all lookup 255
32764: from 112.80.1.100 lookup wangtong
32765: from 222.73.121.100 lookup dianxin
32766: from all lookup main
32767: from all lookup default
重启网络服务可以看到路由策略生效,当然,client的访问到达server之前是需要智能DNS解析的功能来选择不同的到达路径的。