Проекты‎ > ‎

Автоматическое переключение маршрутов в Windows 2003/XP/2000

Отправлено 4 июл. 2012 г., 10:41 пользователем Anton Derbenev   [ обновлено 22 авг. 2013 г., 11:45 ]
Изначально я этот пост написал для «блога» на сайте моей работы, но потратил на него больше двух часов (на комментарии к пакетному файлу в основном), поэтому жалко, если он останется только там (всё равно тот блог никто не читает).
Выкладываю его сюда.

Если у Вас шлюз на Windows 2003 (или XP, или 2000), и используется больше 1 канала связи (основной и один или несколько резервных), наверняка Вы испытывали сильную головную боль, пытаясь заставить Windows переключать каналы при наличии проблем у провайдера. На многих форумах либо сразу пишут, что это невозможно, либо предлагают просто добавить 2 маршрута до 0.0.0.0/0 с разной метрикой. Только забывают сообщить, что из двух маршрутов тот, который с большей метрикой, станет работать только если выключится интерфейс основного маршрута (что это предполагает выдёргивание кабеля или выключение устройства на другой стороне).

Чтобы всё таки не приходилось переключать маршруты руками, когда пакеты ходят до провайдера, а дальше – не ходят, можно добавить в планировщик (у меня проверяет 2 шлюза каждые 3 минуты) пакетный файл со следующим содержимым: http://pastebin.com/BzqwDDRP

Кроме самого этого файла понадобится рядом лежащий файл gateways.list, в который надо прописать IP адреса шлюзов. Например:

1.1.1.1
2.2.2.2
3.3.3.3

Скрипт будет проверять доступность цели (target опеределяется в начале скрипта) через каждый из шлюзов по очереди, и будет добавлять менять маршрут на первый, через который цель окажется доступна.

Creative Commons License
Route Switching Script by @LogicDaemon is licensed under a Creative Commons Attribution 3.0 Unported License.
ċ
check_and_reroute_default.cmd.txt
(8k)
Anton Derbenev,
22 авг. 2013 г., 11:44
Comments