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

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

我正在尝试创建两条路线——

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 不要忘记禁用反向路径过滤。

相关内容