我正在尝试创建两条路线——
Send all packets with IP protocol version 100 to 1.1.1.1 (via device eth1)
Send all other IP packets to 2.2.2.2 (via device eth2)
查看 ip-route 和 ip-rules 的手册页,似乎我应该能够做到这一点,但我还无法找出正确的语法。
本文有一个如何设置基于策略的路由的示例,但它基于源 IP 地址, 不是协议编号:http://blog.scottlowe.org/2013/05/29/a-quick-introduction-to-linux-policy-routing/
是否可以创建基于协议路由规则?
答案1
这完全没有经过测试,但也许是这样的?此方法使用防火墙标记。
# part ip packets with a value of 100 as a protocol
iptables -A PREROUTING -i eth0 -t mangle --proto 100 -j MARK --set-mark 1
# packets with that mark use tabpe 'p100'
ip rule add fwmark 1 table p100
# a route on table 'p100' to a gateway for that network
/sbin/ip route add default via 192.0.2.1 dev eth2 table p100
看:http://lartc.org/howto/lartc.netfilter.html
PS 不要忘记禁用反向路径过滤。