查看/etc/iproute2/rt_tables 会发现有main default local几组路由表的定义。
我们可以使用ip route list tablename来显示当前table中的规则。
1. 首先我们查看路由表,并查看ip route,发现他们是相互对应的,即使用route命令添加路由时,会对应添加ip route.
- # route
- Kernel IP routing table
- Destination Gateway Genmask Flags Metric Ref Use Iface
- 10.10.10.1 * 255.255.255.255 UH 0 0 0 ppp0
- 35.35.35.1 * 255.255.255.255 UH 0 0 0 ppp1
- 192.168.182.0 * 255.255.255.0 U 0 0 0 tun0
- 192.168.1.0 * 255.255.255.0 U 0 0 0 br0
- default * 0.0.0.0 U 0 0 0 ppp0
- default * 0.0.0.0 U 0 0 0 ppp1
- #
- # ip route
- 10.10.10.1 dev ppp0 proto kernel scope link src 10.10.10.26
- 35.35.35.1 dev ppp1 proto kernel scope link src 35.35.35.4
- 192.168.182.0/24 dev tun0 proto kernel scope link src 192.168.182.1
- 192.168.1.0/24 dev br0 proto kernel scope link src 192.168.1.1
- default dev ppp0 scope link
- default dev ppp1 scope link
其中ppp0(10.10.10.26) ppp1(35.35.35.4)为两个外网的L3接口,
br0(192.168.1.1/255.255.255.0) tun0(192.168.182.1/255.255.255.0)为两个内网的L3接口
内网的 br0 和 tun0 起来时会自动添加规则
route add -net 192.168.182.0 netmask 255.255.255.0 dev tun0
route add -net 192.168.1.0 netmask 255.255.255.0 dev br0
外网的ppp1 和ppp0 会自动添加
route add -net 10.10.10.1 netmask 255.255.255.255 dev ppp0
route add -net 35.35.35.1 netmask 255.255.255.255 dev ppp1
route add default dev ppp1
route add default dev ppp0
注意在这里设定ppp0为默认路由,所以在路由表的显示default路由中,ppp0要始终在最上面。
- default * 0.0.0.0 U 0 0 0 ppp0
- default * 0.0.0.0 U 0 0 0 ppp1
要实现双线,
首先编辑/etc/iproute2/rt_tables,其中要有两张路由表
其次增加路由规则
ip route flush table main
ip route add default via 10.10.10.1 dev ppp0 src 10.10.10.26 table main
ip rule add from 192.168.1.0/24 table main
此处是设置main的网关,并可实现让192.168.1.0/24的资源访问只从ppp0网卡出去
ip route flush table second
ip route add default via 35.35.35.1 dev ppp0 src 35.35.35.6 table second
ip rule add from 192.168.182.0/24 table second
此处是设置second的网关,并可实现让192.168.182.0/24的资源访问只从ppp1网卡出去
关键是
1. 默认路由
2. ip rule 指定内网来的数据 对应到哪一个table中去。
阅读(6605) | 评论(0) | 转发(0) |