Существует следующая задача: имеется комп, на который приходит интернет от 2 провайдеров. 1 провайдер дает постоянный ip, а второй - динамику. Необходимо, чтобы извне комп был доступен по адресам обоих провайдеров. Исходящий трафик по дефолту будет уходить через провайдера №1. В случае, если он ложится, то меняем дефолт на провайдера №2. Ip от провайдера №2 может обновиться в любое время. Он заставляет запрашивать его каждые полминуты. Понятно, что нужно использовать iproute2. Решил использовать так.
#!/bin/sh
ip route add $P1_NET dev $IF1 src $IP1 table ER
ip route add default via $P1 table ER
ip route add $P2_NET dev $IF2 src $IP2 table VT
ip route add default via $P2 table VT
ip route add $P1_NET dev $IF1 src $IP1
ip route add $P2_NET dev $IF2 src $IP2
ip route add default via $P1
ip rule add from $IP1 table VT
ip rule add from $IP2 table VT
ip route add $P0_NET dev $IF0 table ER
ip route add $P2_NET dev $IF2 table ER
ip route add 127.0.0.0/8 dev lo table ER
ip route add $P0_NET dev $IF0 table VT
ip route add $P1_NET dev $IF1 table VT
ip route add 127.0.0.0/8 dev lo table VT