platform bcm2708
system chaos calmer 15.05.1(固件用的官网)
ipk ip-full
目的:指定ip走不同的vpn线路。
l2tp拨号,启动本地pptp服务器
root@RAS:~# ifup green
root@RAS:~# /etc/init.d/pptpd start
打通防火墙,vpn client正常访问外网:
iptables -t nat -A POSTROUTING -s 12.12.12.0/24 -j MASQUERADE
iptables -A forwarding_rule -s 12.12.12.0/24 -j ACCEPT
此时出口走main表,即:
root@RAS:~# ip rule list
0: from all lookup 128
1: from all lookup local
32766: from all lookup main
32767: from all lookup default
root@RAS:~#
root@RAS:~# ip route list table main
default via 100.74.0.1 dev pppoe-ChinaUnic
192.168.1.0/24 dev wlan0 ...
...
现在,开始让地址为12.12.12.2的机器走l2tp-green出口:
opkg install ip-full
# 需要ip-full软件包
echo "252 green" >> /etc/iproute2/rt_tables
# 新增一路由表, id:252(1-252可用), name:green
cat /etc/iproute2/rt_tables
#
# reserved values
#
128 prelocal
255 local
254 main
253 default
# local
252 green
# 添加至rt_tables后,即可使用别称green来替代编号252,如下:
ip route flush table 252
# 上述指令可改写为ip route flush table green
# 清空此表
ip route add default dev l2tp-green table 252
# 在252表中添加默认路由(定出口)
ip route add 12.12.12.2 dev ppp1 table 252
# 在252表中添加路由匹配项(谁能用)
ip rule add from 12.12.12.2 to all table 252 prio 3
# 新增策略规则,优先级:3(3-32765)(哪些匹配的地址走green表?)
最终效果:
root@RAS:~# ip route list table 252
default via 10.1.0.1 dev l2tp-green
12.12.12.2 dev ppp1 scope link
root@RAS:~#
root@RAS:~# ip rule list
0: from all lookup 128
1: from all lookup local
3: from 12.12.12.2 lookup green /*已生效*/
32766: from all lookup main
32767: from all lookup default
注释:
ip rule { add | del } SELECTOR ACTION prio
SELECTOR: from 源地址 to 目的地址
prio(优先级): 数值低,条目更靠前,更早进行匹配查找,反之亦然
获取更多有价值信息-> 搭建网关系列 —— 路由篇
鸣谢:
运维生存时间@上海-天火
搭建网关系列 —— 路由篇
Which is a good paper learn policy router well.
Routing Tables
Wiki about routing tables.
Advanced IP Routing
ip rule 命令
man page