Прописать статический перманентный маршрут в Windows/Redhat/Debian/Ubuntu/MacOS

Windows:

Пуск > CMD > запуск от имени администратора

route add -p 172.1.0.0 mask 255.255.252.0 172.0.0.1 /p

-p – этот ключ нужен, что бы сохранить маршрут. Если его не использовать, то после перезагрузки таблица маршрутов очистится.


RedHat:

route add -net 172.1.0.0 netmask 255.255.252.0 gw 172.0.0.1 dev eth0

, где 172.1.0.0 - адрес подсети, куда должен вести маршрут, 172.0.0.1 - используемый шлюз255.255.252.0 - маска целевой подсети

 

Чтобы маршрут работал после перезагрузки:

правим

 nano /etc/sysconfig/network-scripts/route-eth0   (для интерфейса eth0)

вписываем туда:

172.1.0.0/22 via 172.0.0.1 dev eth0

перезапускаем службу

 service networking restart


 

Debian:

route add -net 172.1.0.0 netmask 255.255.252.0 gw 172.0.0.1 dev eth0

, где 172.1.0.0 - адрес подсети, куда должен вести маршрут, 172.0.0.1 - используемый шлюз, 255.255.252.0 - маска целевой подсети

Чтобы маршрут работал после перезагрузки:
правим
nano  /etc/network/interfaces
вписываем туда:
### static routing ###
post-up route add -net 172.1.0.0 netmask 255.255.252.0 gw 172.0.0.1
pre-down route del -net 172.1.0.0 netmask 255.255.252.0 gw 172.0.0.1

перезапускаем службу

 service networking restart


 

Ubuntu:

 sudo route add -net 172.1.0.0 172.0.0.1 255.255.252.0
Чтобы маршрут работал после перезагрузки:
правим

nano /etc/network/interfaces

вписываем туда:
up route add -net 172.1.0.0/22 gw 172.0.0.1 dev eth0
перезапускаем службу

service networking restart


 

Mac Os:

Маршрут пропадет с перезагрузкой:
sudo route -nv add -net 172.1.0.0/22 172.0.0.1
netstat -rn вывести список маршрутов

 

В примере будет использована маршрутизация сети 172.1.0.0/22 на маршрутизатор 172.0.0.200.

1. Создаем Launch Daemon.

Launch Daemon загружается при загрузке ОС, Launch Agent при загрузке профиля. В целях безопасности OS X блокирует попытку запуска Launch Agent под root, а необходимая нам команда route add требует его привилегий. Конечно можно было бы поправить конфиг sudo, но в этом случае обновление системы может сломать реализуемую функциональность, так что было принято решение использовать именно Launch Daemon.

info: Все последующие операции выполняются в консоли.

Создадим и заполним конфиг нового Launch Daemon:

 

Как видно из конфига, мы будем запускать скрипт /usr/local/scripts/AddRoute.sh. Он будет исполняться от root.

2. Пишем скрипт.

sudo mkdir /usr/local/scripts/
sudo nano /usr/local/scripts/AddRoute.sh

 

Дадим скрипту доступ на исполнение:

sudo chmod +x /usr/local/scripts/AddRoute.sh

Рассмотрим конструкцию:

CheckForNetwork
while [ "${NETWORKUP}" != "-YES-" ]
do
sleep 5
NETWORKUP=
CheckForNetwork
done

Без нее скрипт может не работать, так как на момент его запуска сеть может еще не подняться. Apple рекомендует использовать отдельные инструменты для контроля сети, что усложнило бы реализацию, но в файле /etc/rc.common была найдена подходящая для таких случаев функция.

В итоге после запуска скрипта выполняется проверка доступности сети и, если она недоступна, повторение попытки через 5 секунд. Как только сеть появится, цикл завершится и выполнится команда:

Теперь достаточно перезагрузить машину и убедиться, что все работает как надо.
Проверить можно выполнив команду:

Вывод должен быть аналогичным:

172.1/22 172.0.0.200 UGSc 1 0 en0

 

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.