Я пытаюсь создать два маршрута -
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/
Можно ли создать на основе протокола правила маршрутизации?
Это совершенно не проверено, но может быть что-то вроде этого? Этот метод использует маркировку межсетевого экрана.
# 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 не забудьте отключить обратный путь фильтрация.