1. 程式人生 > >OpenWrt 策略路由(簡)

OpenWrt 策略路由(簡)

platform bcm2708
system   chaos calmer 15.05.1(韌體用的官網)
ipk      ip-full

目的:指定ip走不同的vpn線路。

l2tp撥號,啟動本地pptp伺服器

[email protected]:~# ifup green
[email protected]:~# /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表,即:

[email protected]:~# ip rule list
0:      from all lookup 128
1:      from all lookup local
32766:  from all lookup main
32767:  from all lookup default
[email protected]:~#
[email protected]:~# 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表?)

最終效果:

[email protected]:~# ip route list table 252
default via 10.1.0.1 dev l2tp-green
12.12.12.2 dev ppp1  scope link
[email protected]:~#
[email protected]:~# 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(優先順序): 數值低,條目更靠前,更早進行匹配查詢,反之亦然

鳴謝:

運維生存時間@上海-天火