【发布时间】:2016-12-22 09:53:48
【问题描述】:
我正在设置我的 openwrt (Netgear R3800) 以通过以下 shell 脚本支持具有多个出站接口的策略路由。我将不同传出接口的 ip 列表放在文本文件中,并使用 ip rule 设置不同的 ip 表。
例如
ip route add default via $VPN1 dev $VPNDEV1 table 100
ip route add default via $VPN2 dev $VPNDEV2 table 200
for IPTO in `cat /root/routes/policy_ips1` ; do
ip rule add to $IPTO table 100
done
for IPTO in `cat /root/routes/policy_ips2` ; do
ip rule add to $IPTO table 200
done
脚本大部分时间都可以工作,但有时不稳定。
由于 ip 列表(文件 policy_ips1、policy_ips2)相当大。就像 10-20 千行一样,每行都是一个子网,例如“1.0.1.0/24”。我想知道这是否是一种有效的方法,因为会有数万条规则,路由器将为每个数据包查询路由策略数据库 RPDB。
另一个问题是,由于 RPDB 的优先级范围从 0 到 32767(参考:http://man7.org/linux/man-pages/man8/ip-rule.8.html),这是否意味着我不能添加超过 32765 条规则?使用ip规则有能力限制吗?路由器的计算能力(比如路由器的cpu、ram)有没有限制?
【问题讨论】: