查看一下我的路由,
# /sbin/ip route ls
218.28.172.0/24 dev eth0 proto kernel scope link src 218.28.172.x
202.196.x.0/24 dev eth1 proto kernel scope link src 202.196.x.x
169.254.0.0/16 dev eth1 scope link
default via 202.196.x.1 dev eth0
这说明我的默认路由是教育网的202.196.x.1,现在我把它改成想要的电信的,
#ip route replace default via 218.28.172.1 dev eth1 table main
# /sbin/ip route ls
218.28.172.0/24 dev eth0 proto kernel scope link src 218.28.172.x
202.196.x.0/24 dev eth1 proto kernel scope link src 202.196.x.x
169.254.0.0/16 dev eth1 scope link
default via 218.28.172.1 dev eth1
这样就行了,默认路由改成电信的了.
然后建立特殊路由表:
#vi /etc/iproute2/rt_table
#
# reserved values
#
255 local
254 main
253 default
#0 unspec
200 edu
#
# local
#
#1 inr.ruhep
看到没,
200 edu
这一行就是我新加的,自定义编号为200,名字为edu.
下面向edu路由中添加它自己的默认路由
#/sbin/ip route add default via 202.196.x.1 table edu
注意,这个table edu一定不要忘了写,否则写到了主路由表中.
先看看机器当前的ip rule
#/sbin/ip rule ls
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
可以看到,规则中走了3个路由表,local、main、default
我们平常用route看到的,实际是路由表main
这些规则是按序号大小顺序走的,一个不同,则走下一个,知道通路或走完为止
开始添加我们自己的路由edu到路由表中
#/sbin/ip rule add to 59.76.0.0/16 pref 10000 table edu
这个意思是说,去向IP地址范围为59.76.0.0/16的访问,则启用edu的路由表中的路由规则
而edu的路由规则是什么呢?上面已经设置了,走的是202.196.x.1的路由.
现在再来看一下当前的ip rule
#/sbin/ip rule ls
0: from all lookup local
10000: from all to 59.76.0.0/16 lookup edu
32766: from all lookup main
32767: from all lookup default
转载于:https://blog.51cto.com/4467001/1128055