Таблица маршрутизации сделает ваш маршрут постоянным (, чтобы избежать его повторного/ручного добавления после аварийного переключения коммутатора ); Сначала создайте именованную таблицу маршрутизации. В качестве примера мы могли бы использовать «mgmt».
echo '200 mgmt' >> /etc/iproute2/rt_tables
Просто для более подробного ознакомления с приведенным выше решением: ядро поддерживает множество таблиц маршрутизации и ссылается на них уникальными целыми числами с номерами 0 -255. Для таблицы также определено имя mgmt. Ниже следует взгляд на /etc/iproute2/rt_tables
по умолчанию, показывающий, что некоторые номера зарезервированы. Выбор в этом ответе 200 произволен; можно использовать любое число, которое еще не используется, 1 -252.
# reserved values
255 local
0 unspec
Во-вторых, отредактируйте post-up
правило (в /etc/network/interfaces )следующим образом
post-up ip route add 10.1.0.0/24 dev eth0.101 table mgmt
post-up ip route add default via 10.1.2.1 dev eth0.101 table mgmt
post-up ip rule add from 10.1.0.0/24 table mgmt
post-up ip rule add to 10.1.0.0/24 table mgmt
В качестве альтернативы другим решением может быть фоновый bash-скрипт, проверяющий существование маршрута и добавляющий его обратно, если он отсутствует, скрипт может проверять результат ip route add 10.1.0.0/24 via 10.1.2.1 dev eth0.101
скрипт может быть настроен в цикле или cron
ip route add 10.1.0.0/24 via 10.1.2.1 dev eth0.101
if [ $? -eq 0 ]; then
echo "Route added again"
sleep 10;
command-to-call-the-script-again
else
echo "Route exists"
sleep 10;
command-to-call-the-script-again
fi