我试图创build两条路线 –
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-策略路由/
是否可以创build基于协议的路由规则?
这完全没有经过testing,但也许是这样的? 此方法使用防火墙标记。
# 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不要忘记禁用反向path过滤。