Почему [kill -s SIGUSR1] не работает внутри скрипта, но работает в командной строке? (относительно :неверная спецификация сигнала)

Таблица маршрутизации сделает ваш маршрут постоянным (, чтобы избежать его повторного/ручного добавления после аварийного переключения коммутатора ); Сначала создайте именованную таблицу маршрутизации. В качестве примера мы могли бы использовать «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

Источник:Как лучше всего добавить постоянный маршрут?

0
21.01.2021, 19:14
0 ответов

Теги

Похожие вопросы