Добро пожаловать на неофициальный городской портал г. Мытищи! Наш портал создан для того, чтобы Мытищинцы могли общаться со своими земляками ! Еще он создан для людей, интересующихся г. Мытищи! Вы можете зайти и обсудить любые темы на нашем форуме! А также купить/продать что либо на нашей доске объявлений! Узнать историю, последние новости г. Мытищи Посмотреть фотографии нашего прекрасного города! И, конечно же, оставить отзывы в нашей гостевой книге! Мы очень рады видеть Вас в любое время на нашем сайте!

-
 
 
 
 
:
 
 

Автоматическое переключение между основным и резервным интернет каналом

У нас в конторе наконец то появился резервный интернет-канал. Но со всей очевидностью встала задача автоматического выбора канала интернет. Схема подключения такая: стоит сервер на винде, работающий, как шлюз (недавно переезжали с фрибсд, по никем не понятой причине — приказ гендира). В него входит один сетевой кабель из внутренней сети и уходит на свич, в который, в т. ч., воткнуто оборудование провайдера. Теперь там появилась еще одна железка, которая также находится в инете и раздает его (в простанародье — маршрутизатор).

Спустя какое то время я родил скрипт (batch-файл — он же.bat), который просто поместил в автозагрузку и запустил. Несомненно, это временное решение, но если надо сейчас или даже прямо сейчас, а работы другой непочатый край, то подойдет. Ниже исходники:

## Author: Kostuchenko Vasiliy.

@echooff

:first_ping
Ping -n 4 -l 1 8.8.8.8>Nul
If "%ERRORLEVEL%"=="1" goto reserv
if "%ERRORLEVEL%"=="0" Echo First IPOK.
set Timer=60
ping -n %Timer% 127.0.0.1>nul
goto first_ping

:second_ping
Ping -n 4 -l 1 192.168.0.50>Nul
If "%ERRORLEVEL%"=="1" echo First IP is not response.
if "%ERRORLEVEL%"=="0" gotofirst
set Timer=60
ping -n %Timer% 127.0.0.1>nul
goto second_ping

:rezerv
net send Началось переключение сервера на резервный канал интернет.
echo Reserv IP configuring. Plesewait.
echo ==================================
netsh interface ip set address inet static 192.168.0.57 255.255.255.0 192.168.0.50 1 >nul # inet - имя сетевого подключения. Адреса: 1 - IP, 2 - маска, 3 - шлюз.
echo IP ReconfiguringOK
netsh interface ip set dns inet static 192.168.0.17 >nul # замена первичногоDNS.
echo Reserv IP configure starting. Plesewait.
echo First DNSOK
netsh interface ip add dns inet 192.168.0.9 >nul # добавление вторичногоDNS
echo Second DNSOK
echo Reserv IP configured.
echo Testing...
Ping -n 4 -l 1 8.8.8.8>Nul
If "%ERRORLEVEL%"=="1" net send Оба провайдера недоступны.
if "%ERRORLEVEL%"=="0" goto second_ping

:first
echo First IP configuring. Plesewait.
echo =================================
netsh interface ip set address inet static 192.168.0.58 255.255.255.0 192.168.0.51 1 >nul # inet - имя сетевого подключения. Адреса: 1 - IP, 2 - маска, 3 - шлюз.
echo IP ReconfiguringOK
netsh interface ip set dns inet static 192.168.0.9 >nul # замена первичногоDNS.
echo Reserv IP configure starting. Plesewait.
echo First DNSOK
netsh interface ip add dns inet 192.168.0.17 >nul # добавление вторичногоDNS
echo Second DNSOK
echo Reserv IP configured.
echo Testing...
Ping -n 4 -l 1 192.168.0.51>Nul
If "%ERRORLEVEL%"=="1" goto rezerv
if "%ERRORLEVEL%"=="0" goto first_ping


Хочу заметить, что проверка доступности происходит раз в 60 секунд. Вы можете это изменить на любое время, необходимое вам, изменив соответствующий параметр. Но слишком большое время сделает смену адреса не актуальной, а слишком маленькая задержка даст небольшую, но неприятную (возможно, при очень плохих или загруженных сетях) задержку. Смешно про байт конечно говорить, но все же.

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


Защитный код
Обновить