» »

Автоматическое переключение на резервный интернет-канал на шлюзе небольшого офиса. Дополнительные инструменты и настройки программы

25.05.2020

В последнее время наблюдается тенденция, согласно которой программа для смены IP адреса скоро будет установлена на каждом компьютере, смартфоне, планшете и вообще на всех устройствах, где это только возможно.

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

Мы собрали 10 наиболее удобных, популярных и просто лучших программ, которые помогают сменить IP адрес. Они используют VPN, прокси и другие технологии для выполнения своей функции. Некоторые из них работают на Андроид, а не только на компьютерах.

1.

Наверное, это самая раскрученная и, соответственно, популярная программа из нашего сегодняшнего ТОПа. И она действительно хороша.

SafeIP позволяет выбирать IP адрес, а также защищать компьютер от следующих угроз:

  • вредоносные и рекламные ресурсы (юзер увидит предупреждение);
  • угрозы, которые проходят через куки;
  • угрозы, которые проходят через Wi-Fi;
  • угрозы, которые проходят через DNS.

Также SafeIP защищает ID браузера и источник. Пользоваться программой очень просто – нужно просто выбрать пункт «IP защита» слева и нажать на желаемый адрес справа.

2.TOR

На втором месте нашего списка расположился более чем известный браузер под названием TOR.

В нем делать ничего не нужно, кроме как установить его на компьютер и запустить. Соединение шифруется автоматически. В общем, очень даже удобно. И при этом никто не получит доступ к истории браузера и другим пользовательским данным.

3.

Это тоже очень простой инструмент. В нем нет абсолютно никаких дополнительных функций – только смена IP адреса. Это тоже браузер, но в данном случае нужно выбрать IP адрес, а не просто запустить его.

Использовать Chameleon очень легко. Нужно просто нажать на кнопку «Добавить VPN соединение», выбрать страну, из-под которой будете подключаться. Она появится в списке, после чего останется нажать кнопку «Соединить».

Стабильная работа гарантируется. Что немаловажно, программа полностью на русском языке. Кроме стандартной версии на Windows, есть также версии для Mac OS, Linux, iOS и Android.

4.

Главное преимущество Proxy Switcher состоит в просто огромной базе прокси-серверов. Пользователь может подключиться к абсолютно любому из них.

Также в программе есть огромное количество настроек. Для профессионалов этот инструмент – то, что нужно. Впрочем, и любителям он тоже понравится.

5.

А это устанавливаемая программа от одного из самых известных сайтов для скрытия IP адреса.

Работает она предельно просто – Вы запускаете ее, выбираете сервер, то есть просто страну, из которой якобы будете заходить в интернет и нажимаете кнопку «Подключиться».

Под полем выбора страны есть поле для выбора непосредственно адреса выбранного государства. Все предельно просто. HideMe.ru VPN хорошо подходит для Google Chrome и других браузеров.

6.

Это, опять же, целая система, целый инструментарий для защиты от хакеров и всевозможных атак, которые совершаются через интернет. А вместе с этим есть и инструмент для смены IP адреса.

Стоит сказать, что он также очень удобен – можно выбрать страну. Эта возможность есть в бесплатной версии. В платной же можно выбирать и непосредственно адрес, и еще великое множество других параметров.

Как бы там ни было, IP сменить с помощью Free Hide IP получается очень даже успешно. Интересно, что программа также позволяет поставить динамическую смену адреса и даже выбрать время, когда он будет меняться.

7.

Интерфейс Surf Anonymous чем-то похож на внешний вид Free Hide IP, только здесь все несколько проще.

Речь идет о том, что вверху отображается реальный и фальшивый IP адреса. Чтобы выбрать желаемый фэйковый адрес, нужно нажать на кнопку «Select Fake Location» и выбрать государство в открывшемся окне.

Чтобы прекратить работу программы, просто нажмите «Stop Hide». Никаких больше кнопок и настроек здесь попросту нет, так что не запутаетесь.

8.

А вот Auto Hide IP представляет собой, фактически, клон Free Hide IP, если говорить о внешнем виде, только принцип работы у них несколько разный.

Пользователь тоже может выбрать страну и адрес, из-под которого будет заходить во всемирную сеть с помощью кнопки «Choose IP Country» и запустить работу программы кнопкой «Hide IP». Также есть кнопка настроек.

Преимущество Auto Hide IP состоит в том, что здесь есть автоматическая настройка для разных браузеров, но она заставляет соединение работать немного медленнее, чем при использовании Free Hide IP.

9.

Это очень знакомый многим VPN клиент, который имеет версии для самых разных платформ. Проблема лишь в том, что далеко не всегда эта программа работает хорошо в бесплатной версии.

Конечно, если купить Elite Hotspot Shield, все будет работать прекрасно. В любом случае, функционал программы достаточно широкий, а интерфейс простой – Вам нужно только переставить переключатель в положение «Connected» и выбрать страну немного ниже.

Есть еще проблема, связанная с медленным соединением при работе с помощью Hotspot Shield, но она актуальна для всех VPN клиентов.

10.Hide My IP

Наконец, закрывает наш рейтинг расширение для браузеров, которое по праву можно назвать самым популярным среди тех, которые предназначены для скрытия IP адреса. Оно использует прокси-соединение и позволяет выбрать страну, из-под которой Вы будете подключаться.

После установки расширения в браузер станет доступной иконка такового, нажав на которую можно увидеть список доступных стран. Все также предельно просто.

Рис. №10. Hide My IP в браузере

Ниже можно видеть обзор одной из программ, представленных выше.


В данной статье рассказывается о создании системы автоматического резервирования интернет–канала на базе устройств NetPing 2/PWR-220 v3 c прошивкой Logic (далее по тексту - система). Данная система позволяет автоматически, в случае недоступности основного канала, переключаться на резервный канал. Переключение происходит «прозрачно» для конечного пользователя. Триггером к переключению является неработоспособность основного канала (пропадание пинга через основной канал). Для возврата системы в первоначальное состояние нужно нажать на кнопку.

Принцип работы

Для реализации системы использованы два маршрутизатора, подключенные к основному (Base) и резервному (Reserv) каналам Internet. Выходы маршрутизаторов объединены на коммутаторе (Swich) , к которому подключены рабочие станции. К этому же коммутатору подключено устройство . Питание маршрутизаторы получают от управляемых розеток устройства. При первоначальной подаче питания на компоненты системы включается розетка PWR1 устройства , и соответственно маршрутизатор Base Internet канала получает питание. После его загрузки пользователи начинают получать Internet трафик через этот маршрутизатор. При этом устройство постоянно контролирует работоспособность как самого маршрутизатора, так и Base канала, путем пингования удалённого хоста.

В случае пропадания ответа на пинг с удаленного хоста, что может быть следствием как неработоспособности основного (Base ) канала, так и выходом маршрутизатора из строя, логика устройства формирует две команды. Первую команду - на отключение розетки PWR1 (и как следствие этого – обесточивание маршрутизатора основного канала), и вторую команду – на включение розетки PWR2 , и, соответственно, включение в работу маршрутизатора резервного Internet канала. После загрузки маршрутизатора резервного канала трафик продолжает поступать на компьютеры пользователей через него. Это состояние является устойчивым. Обратного переключения не произойдет, даже при восстановлении работоспособности основного Internet канала. Триггером возврата в исходное состояние служит кнопка. При нажатии на кнопку, подключенную к линии IO1 или IO2 устройства , устройство возвращается в первоначальное состояние – розетка PWR1 включена, а розетка PWR2 выключена. Следует отметить, что кнопка работает «безусловно», то есть возврат в исходное состояние произойдет, даже если основной Internet канал продолжает быть недоступным. Правда, в данном случае система через некоторое время вновь переключит питание на розетку PWR2 .

Как реализовать?

Для создания действующего макета системы автоматического резервирования Internet канала (в дальнейшем по тексту – «система») было использовано следующее оборудование:

Наименование оборудования

Прошивка

Примечание

1

Устройство и два переходника PRW-220

Logic

Для получения прошивки см. «Полезные ссылки»

2


устройство корпоративного уровня
ZyxelZyWALL 70

Микропрограмма версии 4.00

3


Устройство SOHOуровня
Asus WL500Gp V2

Альтернативная (так называемая «чешская») прошивка для работы с CDMA модемами. 1.71

Скачать стабильную версию можно с сайта разработчиков. Внимание! Перед установкой прошивки читать FAQ!
{+} http://koppel.cz/cdmawifi/download+

4

CDMA модем AnyDATA ADU-500A (EVDO rev0 )

Дефолтная прошивка от производителя

5

Коммутатор3Com 5 ports Gigabit swich

Доступ в интернет осуществлялся посредством двух провайдеров:

  • Работоспособность основного канала обеспечивал провайдер 1 (подключение по стандартному UTP кабелю, с выделением статического publicIP);
  • Работоспособность резервного канала обеспечивал провайдер 2 (беспроводная CDMA сеть оператора ОАО «Московская сотовая связь» с торговым названием «СкайЛинк»).

Внешний вид системы:



  • (1) Устройство ;
  • (2) Коммутатор 3Com 5 ports Gigabit swich;
  • (3) Маршрутизатор основного интернет-канала: ZyxelZyWALL 70;
  • (4) Маршрутизатор резервного интернет-канала: AsusWL500GpV2;
  • (5) CDMA модем AnyDATA ADU-500A.

Компоненты системы

Устройство NetPing 2/PWR-220 v3 с двумя переходниками PRW220



Устройство управляет питанием маршрутизаторов основного и резервного Internet каналов, которые подключены к управляемым компьютерным розеткам 220В устройства. Переходники PWR-220 позволяют подключить к управляемым розеткам устройства два маршрутизатора.
Кнопка возврата. Представляет из себя нефиксируемую в нажатом состоянии кнопку с нормально разомкнутыми контактами. Кнопка проводом необходимой длины подключается к клеммной колодке устройства .

Маршрутизатор основного Internet канала: ZyxelZyWALL 70

В порт WAN-1 маршрутизатора подключен кабель от основного провайдера.

Маршрутизатор резервного Internet канала: AsusWL500GpV2





В USB порт резервного маршрутизатора включен беспроводной CDMA модем AnyDATA ADU-500A , обеспечивающий доступ этой связки в сеть «СкайЛинк».
Порт LAN маршрутизатора соединен с коммутатором.

Настройка и подключение

Ниже приведена структурная схема системы:


В структурной схеме имеются следующие отличия от реальной модели, сделанные с целью разгрузить рисунок от второстепенных элементов:

  • Не показан адаптер питания 220VAC/5VDC Маршрутизатор резервного Internet канала: AsusWL500GpV2;
  • Не показан адаптер питания 220VAC/12VDCкоммутатора 3Com.

Таблица настроек сетевых интерфейсов

Устройство

WAN порт

LAN порт

DHCP сервер

DHCP клиент

Маршрутизатор основного интернет-канала:

Статический адрес
IP: 77.50.XXX.XXX
Mask: 255.255.XXX.XXX Gateway: 77.50.XXX.XXX
DNS1: 77.50.XXX.XXX DNS2: 77.50.XXX.XXX

IP: 192.168.1.1

Да
192.168.1.2-255

Маршрутизатор резервного интернет-канала:

Динамический IP от провайдера

IP: 192.168.1.1

Да
192.168.1.2-255

Устройство

IP: 192.168.1.100
Шлюз 192.168.1.1

Статический IP

Клиентский компьютер

Получает настройки от DHCP

Алгоритм управления питанием маршрутизаторов.

  • Маршрутизатор 1 подключен к основному Internet каналу (Base ) и розетке PWR1;
  • Маршрутизатор 2 подключен к Internet каналу (Reserv ) и розетке PWR2;
  • Пока пинг уходит через интернет канал Base , розетка PWR1 остается под напряжением. Розетка PWR2 при этом обесточена;
  • Как только пинг теряется через Internet канал Base , Logic выключает PWR1 и включает PWR2 . Соответственно, стартует Маршрутизатор 2 и интернет канал Reserv;
  • При нажатии кнопки с нормально разомкнутыми (NO) контактами, подключенной к IO1 в режиме входа, текущий уровень IO1 меняется с 1 на 0.

Это служит триггером к возврату в первоначальное состояние (PWR1 on, PWR2 off).

Разметите компоненты системы на ровной горизонтальной поверхности. Поочередно включая компоненты системы, настройте их сетевые интерфейсы в соответствии с таблицей. Для первоначальной настройки устройства рекомендуется использовать бесплатную утилиту NPCONF . Подключите кабель от основного провайдера и модем CDMA к WAN портам соответствующих маршрутизаторов. Подключите LANпорты двух маршрутизаторов устройства к коммутатору в соответствии со структурной схемой системы. Подключите кнопку возврата к линии IO1, сконфигурированной на «ВХОД». Распиновку клеммой колодки можно посмотреть в «Руководстве пользователя » на сайте компании. Запитайте компоненты системы от внешнего источника питания 220В. На данном этапе настройки подключать маршрутизаторы к управляемым розеткам не следует.
Важно! Одновременная работа в сети двух маршрутизаторов недопустима, так как их LAN порты имеют одинаковые IP адреса. Это приведет к конфликту IP адресов в системе и неработоспособности сети.
Убедитесь в том, что рабочая станция получила корректные сетевые настройки от DHCP сервера маршрутизатора (ПУСК-ВЫПОЛНИТЬ-CMD- ipconfig /all). С рабочей станции зайдите в web-интерфейс маршрутизатора (192.168.1.1) и устройства (192.168.1.100), чтобы убедиться в их работоспособности. Убедитесь в наличии доступа в интернет с обоих маршрутизаторов, поочередно включая их в сеть 220В. Все хорошо? Можно переходить к конфигурации модуля логики в устройстве . IP адрес устройства может быть любой, разумеется, из диапазона 192.168.1.2-255, шлюз 192.168.1.1 Зайдите в web-интерфейс устройства. Логин и пароль по умолчанию - visor - ping. Теперь зайдите на вкладку «УПРАВЛЕНИЕ 220В» и установите для обоих каналов значение «ЛОГИКА».


Для сохранения настроек нажмите кнопку «Применить изменения».
Зайдите на вкладку «ЛОГИКА» и выполните настройки модуля в соответствии со скриншотом.


После установки значений нажмите кнопки «Применить изменения» для модуля настроек логики и пингера. Система готова к работе. Отключите все компоненты от электросети, подключите питание маршрутизаторов к управляемым розеткам устройства . Включите все компоненты в сеть. На устройстве должен загореться зеленый светодиод возле розетки PWR1 , показывающий наличие питания. Убедитесь в наличии доступа в Internet на рабочей станции.
Теперь отключите кабель от WAN порта маршрутизатора основного Internet канала. Через несколько секунд система переключит питание на резервный маршрутизатор, обесточив основной. После загрузки резервного маршрутизатора доступ в Internet восстановится. При нажатии на кнопку система перейдет в исходное состояние.

Заключение

В заключении хотелось бы описать ряд сложностей и нюансов, с которыми столкнулся автор статьи при практической реализации вышеописанной системы.
В качестве хоста для пингования предлагается использовать общедоступный Google DNS 8.8.8.8 или 8.8.4.4. Разумеется, в качестве хоста для пингования можно указать любой другой стабильно работающий публичный IP адрес. При выходе в сеть через беспроводной модем, как в данном случае, сотового оператора Скайлинк, казалось бы, логично пинговать сайт и DNS провайдера, поскольку сетевой трафик к этим узлам не тарифицируется. Однако, как показала практика, провайдеры не очень приветствуют такой подходит из-за постоянной бесплатной загрузки их ПО пользователями. Результатом может быть запрет ответа на пинг с конкретного IP. Это, в свою очередь, повлечет «ложную» недоступность удаленного хоста.
В данной статье автор рекомендует на рабочих станциях настраивать сетевой адаптер на получение настроек от DHCP сервера маршрутизатора. На приведенном в пример оборудовании это хорошо работало. Однако, мы не исключаем возможности, что при повторе этой схемы на другом оборудовании при переключении с одного на другой маршрутизатор интернет так и не заработает без дополнительных действий (самое простое - перезагрузка рабочей станции или отключение с последующим включением сетевого интерфейса). Как вариант, можно попробовать прописать статические настройки сети на рабочей станции:
IP любой из диапазона 192.168.1.0/24, исключая, 192.168.1.1 (маршрутизатор) и 192.168.1.100 (устройство )
Маска 255.255.255.0
Шлюз 192.168.1.1
DNS 8.8.8.8 и 8.8.4.4
Модуль Logic несет в себе гораздо более широкие возможности, описание которых выходит за рамки данной статьи. Но даже в пределах данной системы можно добиваться другой необходимой реакции на внешние события, меняя и комбинируя логические правила.

Полезные ссылки

Прошивку можно загрузить с сайта компании АлентисЭлектроникс -
Для смены прошивки следует использовать бесплатную утилиту NPCONF -
Руководство пользователя

Please enable JavaScript to view the

Модернизированный скрипт для переключения каналов интернет FreeBSD, с небольшими доработками или возможно даже без них должен работать и на Linux.

Эпопея с каналами интернет продолжается. До сих пор в операционных системах нет простого и удобного штатного способа переключения шлюза по-умолчанию интернет.

Есть масса различных программ роутеров, которые зачастую могут вносить свои проблемы в работу системы, требуют сложной настройки или просто банально стоят денег, которых обычно как всегда не хватает.

Один из простых вариантов — скрипт для переключения каналов интернет путем переключения шлюза по-умолчанию операционной системы сервера роутера.

Пример.
Есть 2 канала в интернет, допустим основной и резервный. Есть два роутера для этих каналов и один роутер, который прописан на компьютерах пользователей, так же задан в настройках DHCP (серверы могут быть даже не физическими, а виртуальными).

Этот роутер для пользователей направляет пользователей через основной канал или в случаях его поломки через резервный. На роутере должен быть механизм анализа через какого провайдера ему направлять людей. Этим как раз и занимается наш несложный, однако модернизированный скрипт.

Консольный скрипт переключения провайдеров интернет (работает в FreeBSD)

cat inet_change.sh #!/bin/sh LANG =ru_RU.KOI8-R; export LANG MM_CHARSET =KOI8-R; export MM_CHARSET # Основной оптика GW1 =10.0.0.2 # Резервный Радио GW2 =10.0.0.3 # Устанавливаем в переменную время и дату в нужном нам формате DT =` date +"%T %d.%m.%Y" ` # Для проверки каналов интернет на работоспособность используем пинг на сервисы Yandex, разные IP для разных каналов # вы можете использовать свои эталонные адреса для проверки # Проверяем добавлены ли маршруты на эталонные IP для проверки, если нет, то добавляем check_node =` netstat -rn | grep "77.88.8.1" | awk "{print $1}" ` if [ "$check_node " ! = "77.88.8.1" ] ; then # добавляем маршрут для Яндекса через оптику для проверки / sbin/ route add 77.88.8.8 $GW1 # через Радио / sbin/ route add 77.88.8.1 $GW2 else fi # Проверяем, если включен основной интернет и файл состояния установлен на резервный канал, то стираем файл состояния # Такая ситуация может возникнуть, например, если сервер был на резервном и потом его резко выключили, # А после включения опять включился основной канал (маршрут по-умолчанию) check_gw =` netstat -rn | grep default | awk "{print $2}" ` if [ "$check_gw " = "10.0.0.2" ] ; then if [ -f / tmp/ .inet_reserv_work ] ; then / bin/ rm / tmp/ .inet_reserv_work / bin/ echo Стираем файл.inet_reserv_work $DT , так как шлюз $GW1 , а не резервный $GW2 ! >> / data/ scripts/ inet_change.log else fi else fi # Проверяем работает ли основной канал is =`/ sbin/ ping -c 7 77.88.8.8 | grep -c "64 bytes" ` if (/ bin/ test $is -gt "4" ) then # Если основной канал работает и файл состояния резервного канала существует, то стираем файл состояния и переключаемся # на основной канал, пишем запись в лог и отправляем письмо администратору о переключении if [ -f / tmp/ .inet_reserv_work ] ; then / sbin/ route change default $GW1 / bin/ rm / tmp/ .inet_reserv_work / bin/ echo Основной канал [ Оптика] включен $DT >>$DT Переключились на Оптику" | mail -s "Интернет переключился" admin@ admin.com -f root@ admin.com else exit fi else # Если основной не работает, то проверяем резервный и переключаемся на него is2 =`/ sbin/ ping -c 7 77.88.8.1 | grep -c "64 bytes" ` if (/ bin/ test $is -gt "4" || / bin/ test $is2 -gt "4" ) then if ! [ -f / tmp/ .inet_reserv_work ] ; then / sbin/ route change default $GW2 / usr/ bin/ touch / tmp/ .inet_reserv_work / bin/ echo Резервный канал [ Радио] включен $DT >> / data/ scripts/ inet_change.log echo "$DT Переключились на Радио" | mail -s "Интернет переключился" admin@ admin.com -f root@ admin.com fi fi

cat inet_change.sh #!/bin/sh LANG=ru_RU.KOI8-R; export LANG MM_CHARSET=KOI8-R; export MM_CHARSET # Основной оптика GW1=10.0.0.2 # Резервный Радио GW2=10.0.0.3 # Устанавливаем в переменную время и дату в нужном нам формате DT=`date +"%T %d.%m.%Y"` # Для проверки каналов интернет на работоспособность используем пинг на сервисы Yandex, разные IP для разных каналов # вы можете использовать свои эталонные адреса для проверки # Проверяем добавлены ли маршруты на эталонные IP для проверки, если нет, то добавляем check_node=`netstat -rn | grep "77.88.8.1" | awk "{print $1}"` if [ "$check_node" != "77.88.8.1" ]; then # добавляем маршрут для Яндекса через оптику для проверки /sbin/route add 77.88.8.8 $GW1 # через Радио /sbin/route add 77.88.8.1 $GW2 else fi # Проверяем, если включен основной интернет и файл состояния установлен на резервный канал, то стираем файл состояния # Такая ситуация может возникнуть, например, если сервер был на резервном и потом его резко выключили, # А после включения опять включился основной канал (маршрут по-умолчанию) check_gw=`netstat -rn | grep default | awk "{print $2}"` if [ "$check_gw" = "10.0.0.2" ]; then if [ -f /tmp/.inet_reserv_work ]; then /bin/rm /tmp/.inet_reserv_work /bin/echo Стираем файл.inet_reserv_work $DT, так как шлюз $GW1, а не резервный $GW2! >> /data/scripts/inet_change.log else fi else fi # Проверяем работает ли основной канал is=`/sbin/ping -c 7 77.88.8.8 | grep -c "64 bytes"` if (/bin/test $is -gt "4") then # Если основной канал работает и файл состояния резервного канала существует, то стираем файл состояния и переключаемся # на основной канал, пишем запись в лог и отправляем письмо администратору о переключении if [ -f /tmp/.inet_reserv_work ]; then /sbin/route change default $GW1 /bin/rm /tmp/.inet_reserv_work /bin/echo Основной канал [Оптика] включен $DT >> /data/scripts/inet_change.log echo "$DT Переключились на Оптику" | mail -s "Интернет переключился" [email protected] -f [email protected] else exit fi else # Если основной не работает, то проверяем резервный и переключаемся на него is2=`/sbin/ping -c 7 77.88.8.1 | grep -c "64 bytes"` if (/bin/test $is -gt "4" || /bin/test $is2 -gt "4") then if ! [ -f /tmp/.inet_reserv_work ]; then /sbin/route change default $GW2 /usr/bin/touch /tmp/.inet_reserv_work /bin/echo Резервный канал [Радио] включен $DT >> /data/scripts/inet_change.log echo "$DT Переключились на Радио" | mail -s "Интернет переключился" [email protected] -f [email protected] fi fi

Скрипт запускается по крону каждую минуту, выполняет описанные процедуры и останавливается до следующей минуты.

Добавляем выполнение в крон.

*/ 1 * * * * root / data/ scripts/ inet_change.sh > / dev/ null 2 >& 1

*/1 * * * * root /data/scripts/inet_change.sh > /dev/null 2>&1

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

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

2. Очень давно как-то на одном из провайдеров была такая ситуация — пинг есть, а интернет зафильтрован. В таком случае скрипт тоже не переключит канал. Получается нужно переделывать скрипт на проверку не пингом, а сканировать порт, например 80-й

3. Небольшая задержка до переключения каналов (в пределах 1 минуты).

4. Я не вынес все изменяемые параметры в переменные, это сделаю при очередной доработке, чтобы сразу все оттестировать.

5. Возможно нужно добавить режим принудительного переключения, например, проверку по еще одному файлу состояния и сделать механизм управления из локального вебсервера.

6. В данной версии возможность переключаться только между 2 каналами интернет.

Плюсы такого метода.
1. Простота.
2. Не нужно никакого стороннего программного обеспечения.
3. Отправка на почту уведомлений о переключении (для статистики).
4. Скрипт при проверке (пинге) считает количество успешно пройденных «пингов» и если количество больше 4-х из 7, то считается что интернет работает. Необходимое количество «успешных» пингов можно менять.

В любом случае такой скрипт переключения первый шаг к автоматизации переключения и он доступен каждому. Конечно же ему иногда может понадобится ручной контроль, но в нормальных случаях он работает.


( 2012-01-08 )

Очень часто в различных организациях возникает необходимость резервирования интернет-канала на случай каких-либо сбоев. Крупные организации могут позволить себе купить блок IP-адресов и и затем уже покупая каналы у нескольких интернет-провайдеров настроить BGP .

Для небольших компаний такая схема это непозволительная роскошь и обычно небольшие компании просто покупают интернет-каналы у нескольких провайдеров. И имея на каждом из каналов свои независимые адреса и прочие настройки каким-то образом (временами даже в ручную!) настраивают переключение каналов. Далее будет показан один из возможных способов организации автоматического переключения на резервный канал в случае сбоя основного и возврат обратно после восстановления связи.

Внесём немного ясности:

  • Шлюз работает под управлением Debian или Ubuntu Linux;
  • Основной интернет-канал на интерфейсе eth0 с адресом 1.1.1.2/24 и шлюзом 1.1.1.1 (у автора этих строк это ADSL от Таттелекома);
  • Резервный интернет-канал на интерфейсе ppp999 с адресом 2.2.2.2 (у автора этих строк это DOCSIS от ТВТ)

Для начала уточним (на всякий случай) как именно привязать ppp-соединение к ppp-интерфейсу с конкретным номером. Для этого нужно в соответствующий файле в "/etc/ppp/peers&quto; добавить строку:

Ipparam tbt

Кроме того этот интерфейс не должен при подъёме трогать маршрут по умолчанию. Это достигается примерно вот так:

# Следующие строки закомментированы чтобы не трогать маршрут по умолчанию #defaultroute #replacedefaultroute

Это нам пригодиться чуть позже. Сейчас нам нужно описать две дополнительные таблицы роутинга (по одной для каждого провайдера). Для этого в файл "/etc/iproute2/rt_tables" добавим следующие строки:

190 net_tbt 195 net_tattelecom

Теперь нам надо явно указать с какого интерфейса через какую таблицу роутинга искать маршруты. Для этого нужно выполнить вот такие команды (и заодно добавить в "/etc/rc.local" чтобы выполнялись при загрузке):

/sbin/ip rule add from 1.1.1.2 lookup net_tattelecom pref 20000 /sbin/ip rule add from 2.2.2.2 lookup net_tbt pref 20000

Разумеется надо чтобы в нужных таблицах были и нужные маршруты (как минимум маршрут по умолчанию). Для резервного канала это достигается созданием скрипта "/etc/ppp/ip-up.d/tbt" примерно такого содержания:

#!/bin/sh # Если это подключение к ТВТ (вот тут пригождается ipparam!) if [ ${PPP_IPPARAM} = "tbt" ]; then # Заворачиваем трафик через этот интерфейс для соответствующей таблицы /sbin/ip route add default dev ${PPP_IFACE} table net_tbt fi

Для eth0 всё ещё проще: открываем файл "/etc/network/interfaces" и приводим конфигурацию eth0 к такому виду:

Auto eth0 iface eth0 inet static address 1.1.1.2 netmask 255.255.255.0 gateway 1.1.1.1 dns-nameservers 127.0.0.1 metric 100 post-up /sbin/ip route add default via 1.1.1.1 table net_tattelecom

Теперь нужно перезагрузить сервер и после этого сервер будет по умолчанию идти в интернет через eth0, но при этом снаружи будет доступен по обоим каналам. Теперь создадим скрипт "/usr/local/scripts/check_internet.sh" следующего содержания:

#!/bin/sh # Доступность этого хоста будет означать корректную работу оснвного канала # 8.8.8.8 это DNS от Google. За его доступность можно не беспокоиться # А значит вероятность ложного срабатывания минимальна HOST="8.8.8.8" # Файл-флаг. Появляется при переключении на резервный канал LOCKFILE="/tmp/check_internet.lock" # Файл журнала LOGFILE="/var/log/check_internet.log" # Пингуем проверочный хост через основной канал ping -I 1.1.1.2 -c 3 -n -q ${HOST} > /dev/null # Если возникла ошибка (хост не доступен) if [ $? -ne "0" ]; then # Если нет файла-флага if [ ! -f ${LOCKFILE} ]; then # Меняем маршрут по умолчанию в основной таблице роутинга ip route del default ip route add default dev ppp999 metric 100 # Создаём файл флаг touch ${LOCKFILE} # Делаем запись в файл журнала echo `date +"%Y/%m/%d %H:%M:%S"` Internet connection changet to TBT >> ${LOGFILE} fi # Если же всё хорошо else # Если есть файл-флаг if [ -f ${LOCKFILE} ]; then # Меняем маршрут по умолчанию в основой таблице роутинга ip route del default ip route add default via 1.1.1.1 metric 100 # Удаляем файл-флаг rm -f ${LOCKFILE} # Записываем событие в файл журнала echo `date +"%Y/%m/%d %H:%M:%S"` Internet connetction changed to TatTeleCom >> ${LOGFILE} fi fi

Этот скрипт нужно запускать каждую минуту. Для этого в "/etc/crontab" нужно добавить строку:

* * * * * root /usr/local/scripts/check_internet.sh

На этом всё. Приятной работы!