如何使用iproute2创build基于协议的默认路由

我试图创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过滤。