Настройка резервного канала на роутере

Время на прочтение
9 мин

Количество просмотров 29K

Неприятно, если у провайдера авария и у вас дома пропал доступ в интернет. Вдвойне неприятно, если в этот момент вы находитесь далеко от дома и вам нужно залезть на домашний компьютер или NAS. В моем случае застраховаться от падения канала мне помогла компания МГТС, заменив устаревшую медь на оптику, с которой я получил ещё один канал интернет, и чтение различных мануалов по dd-wrt. Если с оптикой я помочь не смогу, то готовым решением по dd-wrt я с удовольствием поделюсь.

Решение не универсальное, но, как мне кажется, очень простое и на его основе неискушенные пользователи смогут, если не создать свое, то просто расширить свой кругозор и понимание этой популярной прошивки.

Я использую роутер asus rt-n16 и прошивку от тов. Kong 22000++. Интернет от основного провайдера приходит ко мне по кабелю, все настройки получаются роутером по dhcp. В интерфейса dd-wrt это выглядит как-то так:

Фактически, все по умолчанию. Адрес роутера во внутренней сети сменен на 192.168.199.1.

Переключение каналов интернета будет выполняться скриптом, который мы создадим во внутренней памяти роутера JFFS2, соответственно, нужно эту внутреннюю память включить. Для этого в разделе Administration-Mangement интерфейса dd-wrt включим соответствующую опцию:

После включения JFFS2 память нужно очистить. Для этого выберем «Clean JFFS2» и нажмем применить. Возможно, нужно будет перезагрузить роутер. Наша задача — добиться того, чтобы появилось свободное место в этой памяти.

Теперь зайдем на роутер при помощи telnet. Я использую для этого putty:

putty -telnet 192.168.199.1

Имя пользователя root, даже если для логина в вебинтерфейс dd-wrt вы используете другое имя. Пароль — тот, который вы используете для логина в вебинтерфейс.

Лирическое отступление

Первая команда, которую мы введем и её результат у меня

root@DD-WRT:~# nvram show >/dev/null
size: 29978 bytes (2790 left)

Как видите, свободных байт в nvram немного и именно поэтому мы там не станет хранить наши скрипты. Если эта память исчерпается, то роутер перезагрузиться и восстановит все конфиги dd-wrt по умолчанию. Поэтому же, не стоит, например, загружать сертификаты openvpn в вебинтерфейсе, потому как сохраненные через вебинтерфейс сертификаты будут храниться в переменных nvram. Сертификаты openvpn можно хранить в памяти jffs2 и подключать их в переменной «additional config» настроек openvpn таким образом:

Следующий шаг. Мы подключаем резервный кабель в порт LAN1 роутера. В моем случае резервный кабель идет от оборудования GPON, которое поставил МГТС. Это оборудование раздает интернет в своей локальной сети 192.168.100.0/255.255.255.0. Нам нужно будет «оторвать» необходимый порт нашего роутера от остальных портов и назначить ему адрес из сети оборудования GPON, например, 192.168.100.200.

Теперь информация специфичная для конкретной железки, а именно asus rt-n16. Наберем в терминале следующие команды и посмотрим ответ:

root@DD-WRT:~# nvram show | grep vlan.*port
vlan2ports=0 8
vlan0ports=1 2 3 4 5*
vlan1ports=4 3 2 1 8*
size: 29978 bytes (2790 left)
root@DD-WRT:~# nvram show | grep vlan.*hw
vlan2hwname=et0
vlan1hwname=et0
vlan0hwname=et0
size: 29978 bytes (2790 left)

Группы портов объединенны в вэланы. Порт 0 — это WAN порт роутера, порты 1234 — это порты роутера, которые соответствуют (внимание!) портам LAN4,LAN3,LAN2,LAN1 роутера, то есть порт 4 подписан на корпусе роутера LAN1. Порт 8 и порт 8* — это порты процессора, через них мы будем видеть интерфейсы в роутере. Я не хочу вдаваться в подробности, принципиально то, что любой вэлан должен замыкаться на процессор роутера. Давайте «оторвем» 4-ый порт:

root@DD-WRT:~# nvram set vlan0ports="1 2 3 5*"
root@DD-WRT:~# nvram set vlan1ports="3 2 1 8*"

а теперь назначим 4 порт в 3-ий вэлан

root@DD-WRT:~# nvram set vlan3ports="4 8"

для того, чтобы новый вэлан был виден, нужно ввести команду

root@DD-WRT:~# nvram set vlan3hwname=et0

сохраним изменения

root@DD-WRT:~# nvram commit

По аналогии, можно сделать для других роутеров с прошивкой dd-wrt.

Теперь нелирическое отступление. В вебинтерфейсе ddwrt есть настройки вэланов. Но если попробовать с ними поиграть, то мало того, что ничего не получится, но может случиться, что дальше поможет только сброс роутера.

А теперь лирическое отступление

Наверное каждый, кто читал про установку dd-wrt на роутер, сталкивался с магическим ритуалом «30 30 30». Это полный сброс роутера. Его настоятельно рекомендуют делать, иначе потом возможны проблемы. Теперь я вам объясню почему. Сброс настроек в вебинтерфейсе затрагивает не все переменные nvram, в частности, те изменения вэланов, которые мы наделали могут остаться. Поэтому ритуал действительно нужен. Но его можно заменить другой командой из терминала (при условии, что вы еще можете зайти на роутер):

root@DD-WRT:~# erase nvram
root@DD-WRT:~# reboot

Если вы «поиграли» с вэланами и все перестало работать, то вышеприведенные полный сброс «30 30 30» может помочь.

Адрес нашему новому интерфейсу, который связан с 4-ым портом, мы будем назначать из скрипта при старте. Поэтому, давайте начнём этот скрипт писать. Но прежде, где он будет храниться. Как учит нас

Боконон

dd-wrt wiki, всякий скрипт в папке /jffs/etc/config/ с расширением .startup выполняется при запуске системы до того, как файрвол будет сконфигурирован. Назовём наш скрипт vlan3.startup и напишем следующие строки:

#!/bin/sh
WAN2_IFNAME=vlan3
WAN2_IPADDR=192.168.100.200
WAN2_GATEWAY=192.168.100.1
WAN2_NETMASK=255.255.255.0
if [ "$(nvram get wan2_ipaddr)" != "$WAN2_IPADDR" ]; then
   nvram set wan2_ifname=$WAN2_IFNAME
   nvram set wan2_ipaddr=$WAN2_IPADDR
   nvram set wan2_gateway=$WAN2_GATEWAY
   nvram set wan2_netmask=$WAN2_NETMASK
   nvram commit
fi
ifconfig $(nvram get wan2_ifname) up $(nvram get wan2_ipaddr) netmask $(nvram get wan2_netmask)

В этих строках всё просто. Мы завели в nvram 4-ре новые переменные и занесли в них название интерфейса, адрес, маску и шлюз для нашего резервного порта интернет. Каждый раз при старте мы проверяем, что адрес именно тот, который задан в переменной скрипта, это на случай, если потребуется поменять настройки резервного интернета. Далее кофигурируем порт заданными значениями. С текущими переменными это выглядело бы так:
ifconfig vlan3 up 192.168.100.200 netmask 255.255.255.0

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

INTERVAL=30

while sleep $INTERVAL
do
        WAN1ALIVE=0
        WAN2USING=0
        WAN1GW=`nvram get wan_gateway`

        echo "check"

        if [ "$WAN1GW" != "0.0.0.0" ]; then
                if [ "1" = `ping -c 1 $WAN1GW 2>/dev/null | awk    '/packets received/ {print $4}'` ]; then
                        WAN1ALIVE=1
                        echo "wan1alive"
                fi
        fi

        TARGET=`ip -4 route list 0/0  | awk -v gate="via "$WAN2_GATEWAY '$0 ~ gate {print $3}'`
        if [ ! -z "$TARGET" ]; then
                WAN2USING=1
                echo "wan2using"
        fi

        if [ "$WAN1ALIVE" = "1" ] && [ "$WAN2USING" = "1" ]; then
                /jffs/etc/config/wan1.up
                echo "Changed active WAN port to 1!"
        fi

        if [ "$WAN1ALIVE" = "0" ] && [ "$WAN2USING" = "0" ]; then
                if [ "1" = `ping -c 1 $WAN2_GATEWAY 2>/dev/null | awk '/packets received/ {print $4}'` ]; then
                        /jffs/etc/config/wan2.up
                        echo "Changed active WAN port to 2!"
                fi
        fi

done;

Словами этот длинный кусок кода можно описать так. Каждые n-цать секунд мы проверяем:

  1. Текущий адрес шлюза основного канала. Он хранится в переменной wan_gateway в nvram и назначается автоматически, когда основной шлюз получает параметры по dhcp от основного провайдера. Если этот адрес не равен «0.0.0.0», а «0.0.0.0» он равен тогда, когда адрес не может быть получен, то есть провайдер лежит, мы его пингуем и в случае ответа устанавливаем флаг WAN1ALIVE в единицу, то есть основной канал предполагается рабочим.
  2. Присутствует ли адрес резервного шлюза в таблице роутинга. Если присутствует, то устанавливаем флаг WAN2USING=1, то есть в данный момент используется резервный интернет канал.
  3. Если основной канал работает и используется резервный канал, то переключаемся на основной канал интернет.
  4. Если основной канал не работает и не используется резервный канал, то тестируем доступность шлюза резервного канала и переключаемся на рабочий резерв.

Скрипт включения основного канала wan1.up:

#!/bin/sh
# WAN1
DEV=vlan2
GATEWAY=`nvram get wan_gateway`
DNS1=8.8.8.8
DNS2=8.8.4.4

nvram set wan_dns="$DNS1 $DNS2"
while ip route del default; do :; done
ip route add default via $GATEWAY dev $DEV
echo "nameserver $DNS1" >/tmp/resolv.dnsmasq
echo "nameserver $DNS2" >>/tmp/resolv.dnsmasq
pr="$(ps|awk '/dnsmasq/ {print $1}')"
kill -9 $pr
dnsmasq --conf-file=/tmp/dnsmasq.conf

Здесь все просто. Удалили все шлюзы по умолчанию. Да-да, их может быть несколько: если после перезагрузки роутера был недоступен основной канал, то включается резервный интернет и мы имеем один шлюз по умолчанию. Если затем начинает работать основной канал, dd-wrt добавляет ещё один шлюз по умолчанию. Тут уж ничего не поделать. Не хотелось долго думать и появился «грязный хак»: while ip route del default; do :; done, а именно удалять все шлюзы по умолчанию, пока не случится ошибка из-за того, что шлюзов больше нет. Некрасиво, придумайте, как лучше.

После того, как удалили все шлюзы по умолчанию, добавим новый шлюз, который записан в переменную wan_gateway nvram (его туда записала логика dd-wrt при получения параметров от основного провайдера). Заменим dns на dns гугл, убьем процесс dnsmasq и запустим этот процесс вновь.

Скрипт для включения резервного канала wan2.up устроен таким-же образом, но адрес шлюза берётся из пременной wan2_gateway nvram и используется интерфейс связанный с 4-ым портом роутера.

#!/bin/sh
# WAN2
DEV=vlan3
GATEWAY=`nvram get wan2_gateway`
DNS1=8.8.8.8
DNS2=8.8.4.4

nvram set wan_dns="$DNS1 $DNS2"
while ip route del default; do :; done
ip route add default via $GATEWAY dev $DEV
echo "nameserver $DNS1" >/tmp/resolv.dnsmasq
echo "nameserver $DNS2" >>/tmp/resolv.dnsmasq
pr="$(ps|awk '/dnsmasq/ {print $1}')"
kill -9 $pr
dnsmasq --conf-file=/tmp/dnsmasq.conf

Остался маленький скриптик vlan3.wanup, который выполняется после поднятия WAN, сразу после того, как включится файрволл:

#!/bin/sh
iptables -t nat -A POSTROUTING -o $(nvram get wan2_ifname) -j SNAT --to $(nvram get wan2_ipaddr)

Назначение скриптика — добавить правило для ната через резервный интерфейс.

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

Обобщенный скрипт

Вставляем в окно telnet\ssh следующую простыню и нажимаем «Enter»:

nvram set vlan0ports="1 2 3 5*"
nvram set vlan1ports="3 2 1 8*"
nvram set vlan3ports="4 8"
nvram set vlan3hwname=et0
nvram commit
mkdir -p /jffs/etc/config
cat << 'EOF' > /jffs/etc/config/vlan3.startup
#!/bin/sh
WAN2_IFNAME=vlan3
WAN2_IPADDR=192.168.100.200
WAN2_GATEWAY=192.168.100.1
WAN2_NETMASK=255.255.255.0
if [ "$(nvram get wan2_ipaddr)" != "$WAN2_IPADDR" ]; then
   nvram set wan2_ifname=$WAN2_IFNAME
   nvram set wan2_ipaddr=$WAN2_IPADDR
   nvram set wan2_gateway=$WAN2_GATEWAY
   nvram set wan2_netmask=$WAN2_NETMASK
   nvram commit
fi
ifconfig $(nvram get wan2_ifname) up $(nvram get wan2_ipaddr) netmask $(nvram get wan2_netmask)

INTERVAL=30

while sleep $INTERVAL
do
        WAN1ALIVE=0
        WAN2USING=0
        WAN1GW=`nvram get wan_gateway`

        echo "check"

        if [ "$WAN1GW" != "0.0.0.0" ]; then
                if [ "1" = `ping -c 1 $WAN1GW 2>/dev/null | awk    '/packets received/ {print $4}'` ]; then
                        WAN1ALIVE=1
                        echo "wan1alive"
                fi
        fi

        TARGET=`ip -4 route list 0/0  | awk -v gate="via "$WAN2_GATEWAY '$0 ~ gate {print $3}'`
        if [ ! -z "$TARGET" ]; then
                WAN2USING=1
                echo "wan2using"
        fi

        if [ "$WAN1ALIVE" = "1" ] && [ "$WAN2USING" = "1" ]; then
                /jffs/etc/config/wan1.up
                echo "Changed active WAN port to 1!"
        fi

        if [ "$WAN1ALIVE" = "0" ] && [ "$WAN2USING" = "0" ]; then
                if [ "1" = `ping -c 1 $WAN2_GATEWAY 2>/dev/null | awk '/packets received/ {print $4}'` ]; then
                        /jffs/etc/config/wan2.up
                        echo "Changed active WAN port to 2!"
                fi
        fi

done;
EOF
chmod +x /jffs/etc/config/vlan3.startup
cat << 'EOF' > /jffs/etc/config/vlan3.wanup
#!/bin/sh
iptables -t nat -A POSTROUTING -o $(nvram get wan2_ifname) -j SNAT --to $(nvram get wan2_ipaddr)
EOF
chmod +x /jffs/etc/config/vlan3.wanup
cat << 'EOF' > /jffs/etc/config/wan1.up
#!/bin/sh
# WAN1
DEV=vlan2
GATEWAY=`nvram get wan_gateway`
DNS1=8.8.8.8
DNS2=8.8.4.4

nvram set wan_dns="$DNS1 $DNS2"
#`ip -4 route list 0/0  | awk '/default via/ {print "ip route delete default"}'` | sh
# ip route delete default
while ip route del default; do :; done
ip route add default via $GATEWAY dev $DEV
echo "nameserver $DNS1" >/tmp/resolv.dnsmasq
echo "nameserver $DNS2" >>/tmp/resolv.dnsmasq
pr="$(ps|awk '/dnsmasq/ {print $1}')"
kill -9 $pr
dnsmasq --conf-file=/tmp/dnsmasq.conf
EOF
chmod +x vi /jffs/etc/config/wan1.up
cat << 'EOF' > /jffs/etc/config/wan2.up
#!/bin/sh
# WAN2
DEV=vlan3
GATEWAY=`nvram get wan2_gateway`
DNS1=8.8.8.8
DNS2=8.8.4.4

nvram set wan_dns="$DNS1 $DNS2"
#`ip -4 route list 0/0  | awk '/default via/ {print "ip route delete default"}'`|sh
# ip route delete default
while ip route del default; do :; done
ip route add default via $GATEWAY dev $DEV
echo "nameserver $DNS1" >/tmp/resolv.dnsmasq
echo "nameserver $DNS2" >>/tmp/resolv.dnsmasq
pr="$(ps|awk '/dnsmasq/ {print $1}')"
kill -9 $pr
dnsmasq --conf-file=/tmp/dnsmasq.conf
EOF
chmod +x /jffs/etc/config/wan2.up

Безусловно, можно и нужно многое поправить\добавить, но моя цель, а именно быстро прикрутить дома резервный канал — выполнена. Главная неприятность — это файрволл и проброс портов при работе с резервным каналом, мне они были не нужны, поэтому я не настраивал. Для тех, кому надо — дополняйте скрипт vlan3.wanup. Желаю удачи в ваших продолжениях!

Идеи статьи были почерпнуты из dd-wrt wiki.

Эта статья подходит для: 

TL-ER6120 , TL-ER6020 , TL-ER5120 , TL-R480T+ , TL-R470T+ , TL-ER604W

С помощью функции Link Backup (резервирование канала) маршрутизатор сможет переключать все сессии с разорванного соединения на другой канал, обеспечивая постоянно работающую сеть. Вы можете настроить функцию Link Backup (резервирование канала) при фактической необходимости уменьшить загруженность определённого порта WAN и улучшить производительность сети.

Шаг 1 Выберите Load Balance (Балансировка нагрузки) в меню Advanced (Дополнительные настройки) и выберите Link Backup (Резервирование канала):

Шаг 2 Наведите курсор на иконку WAN, и перед вами появится две кнопки: +позволит сделать данный порт основным портом WAN (primary WAN). +B позволит сделать данный порт резервным портом WAN (backup WAN). Вам просто требуется назначить соответствующему порту соответствующее значение, и после чего они будут отображены в графе WAN Config (Настройка WAN):

Шаг 3 Вы можете выбрать режим резервирования канала: Timing (Выбор времени) или Failover (Переключение при сбое). Выбрав режим timing вы сможете настроить фактическое время резервирования канала, в режиме failover вы сможете обеспечить резервирование канала, когда с основным портом WANпроисходит сбой: 

Шаг 4 После завершения настроек нажмите Add (Добавить), чтобы сохранить правило резервирования канала. По завершении оно будет отображено в таблице: 

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

Примечание:

1. После создания правила резервирования канала в режиме timing (выбора времени) резервное WAN-соединение будет отключено вне данного промежутка времени. В режиме failover (переключение при сбое) резервное WAN-соединение будет отключено, когда состояние основного WAN-соединения определяется как нормальное.

2. Функция Link Backup (резервирование канала) должна использоваться с функцией Online Detection. При использовании Online Detection в автоматическом режиме будут использоваться инструменты PING (отправка эхо-запроса) и DNSlookup (DNS-поиск) для определения маршрута к шлюзу WAN-порта. Если Вы хотите проверить работу определённого маршрута, рекомендуется использовать режим Manual mode (Ручной режим).

Был ли этот FAQ полезен?

Ваш отзыв поможет нам улучшить работу сайта.

Что вам не понравилось в этой статье?

  • Недоволен продуктом
  • Слишком сложно
  • Неверный заголовок
  • Не относится к моей проблеме
  • Слишком туманное объяснение
  • Другое

Как мы можем это улучшить?

Спасибо

Спасибо за обращение
Нажмите здесь, чтобы связаться с технической поддержкой TP-Link.

Обновлено и опубликовано Опубликовано:

В данной инструкции мы рассмотрим пример настройки двух Интернет-каналов одновременно на роутере Mikrotik с целью отказоустойчивости — при разрыве соединения основной канал будет меняться на резервный. В нашем случае будет задействован один WAN Ethernet, второй — LTE. Итого, два провайдера и две сети.

Есть два способа настройки отказоустойчивости:

  1. Настройка балансировки между шлюзами (разные приоритеты для интерфейсов). Данный метод можно использовать, если у нас оба провайдера предоставляют настройки со статическим адресом шлюза. Настройка выполняется без скриптов через конфигурирование нескольких шлюзов с разным весом.
  2. Проверка доступности основного Интернет-канала и переключение на резервный при наличии проблем. Это универсальный метод настройки отказоустойчивости. Для настройки используется утилита Netwatch, которая выполняет скрипт проверки и, при необходимости, смены основного шлюза для доступа к сети Интернет.

Мы рассмотрим оба варианта. Настройки выполним в программе winbox. Настройка в веб-интерфейсе аналогична.

Настройка разных приоритетов для маршрутов
Использование скрипта проверки каналов и Netwatch
Как проверить переключение на второй канал
Читайте также

Перед началом, убедитесь, что по отдельности микротик раздает Интернет от обоих провайдеров.

Маршруты с разным приоритетом

Раскрываем в меню IP

Открываем IP в меню

… и переходим в Routes:

Переходим к настройке Routes

Добавляем 2 маршрута. Первый через одного Интернет провайдера со следующими настройками:

Настройка маршрута для первого провайдера

* мы указываем шлюз от нашего провайдера (в данном примере 1.1.1.1), задаем настройку проверки шлюза (Check Gateway) с помощью утилиты ping, задаем приоритет (Distance 10).

Для второго провайдера мы задаем, практически, аналогичные настройки:

Настройка маршрута для второго провайдера

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

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

Использование сценария, запускаемого в Netwatch

Данный метод поможет настроить резервирование канала, если один из провайдеров выдает динамические адреса в разных подсетях, например, подключение через 4G-модем.

1. Задаем описания

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

Раскрываем в меню IP

Открываем IP в меню

… и переходим в Routes:

Переходим к настройке Routes

Открываем на редактирование оба маршрута через наших провайдеров и добавляем комментарий в разделе Comment:

Задаем комментарий для маршрута первого провайдера

* провайдер 1.

Задаем комментарий для маршрута второго провайдера

* провайдер 2.

2. Настраиваем узел для проверки канала

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

И так, переходим к настройке маршрутов:

Открываем IP в меню

Переходим к настройке Routes

Добавляем новый маршрут к проверочному узлу, например 77.88.8.2 (DNS Яндекса):

Создаем маршрут для пинга проверочного узла

* в данной настройке мы задали маршрут к проверочному узлу через шлюз 1.1.1.1 (в нашем примере это шлюз от провайдера 1).

Переходим в IPFirewall:

Переходим к настройке брандмауэра

Создаем новое правило для запрета пинга проверочного узла через провайдера номер 2:

Создаем правило для запрета пинга проверочного узла

… в качестве действия выбираем drop:

Блокирующее действие в настройке правила Mikrotik

3. Настройка задания в Netwatch

Переходим в Tools — Netwatch:

Переходим к настройке Netwatch

Создаем новое правило. На вкладке Host прописываем следующее:

Настройка Host в Netwatch

* в данном примере мы будем проверять узел 77.88.8.2 раз в минуту.

На вкладке Up пропишем:

/ip route set [find comment=»ISP_1″] disabled=no
/ip route set [find comment=»ISP_2″] disabled=yes

Настройка Up в Netwatch

… а на вкладке Down следующее:

/ip route set [find comment=»ISP_1″] disabled=yes
/ip route set [find comment=»ISP_2″] disabled=no

Настройка Down в Netwatch

Нажимае OK.

Проверка

Для проверки отказоустойчивости лучше всего отключить кабель основного провайдера (вытащить провод из WAN-разъема) — через небольшой промежуток времени Mikrotik должен начать раздавать Интернет второго провайдера. Проверить, что внешний канал изменился можно с помощью различных сайтов, например, 2ip.ru.

Читайте также

Данная информация также может быть полезной:

Базовая настройка MikroTik

Перенаправление запросов (проброс портов) на Mikrotik

Настройка OpenVPN сервера на Mikrotik

Дмитрий Моск — частный мастер

Была ли полезна вам эта инструкция?

Да            Нет

Отсутствие интернета в компании даже на 10 минут может повлечь серьезные убытки для бизнеса. Именно поэтому подавляющее большинство наших клиентов используют технологию резервирования интернет-канала.

В данной инструкции мы опишем пример базовой настройки резервирования интернет-канала на базе оборудования Mikrotik RB951G. Вариантов реализации данного решения в сети довольно много. Мы же опишем свою версию реализации используя утилиту Netwatch.

Состав тестового стенда:

  • Mikrotik RB951G. Версия OS 6.45.1
  • LTE-модем Yota

Этап 1. Подготовительные работы:

Предлагаем не углубляться в этап начальной настройки устройства. Подразумеваем, что базовая настройка устройства уже проведена, адреса получены, LTE-модем убран из вкладки Bridge.

вкладка Address List

Во вкладке Address List имеем:

  • Lte1 – получен адрес по DHCP (D – Dinamic) 10.0.0.10
  • WAN1 — получен адрес по DHCP (D – Dinamic) 172.17.0.51
  • Bridge1 ( наша локальная сеть) — 192.168.1.1 – адрес маршрутизатора.

создаём 2 правила

В данном окне создаём 2 правила. Как создать правила и базовую настройку смотрим в статье.

Примечание:

Мы сделали отдельной правило, разрешающее интернет для каждого интерфейса, но можно использовать Interface list и создать только одно правило (см. рисунок ниже).

можно создать только одно правило

Этап 2. Настройка маршрутов

Кратко опишем процесс работы по проверке работы канала и алгоритма переключения на резервный канал и обратно.

Выбираем IP-адрес в интернете с высокой степенью доступности. В качестве примера используем IP 8.8.8.8.

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

Создаем дополнительный маршрут основного канала

Обозначения на рисунке:

  1. Маршрут по умолчанию для основного провайдера с комментарием EFSOL.
  2. Маршрут по умолчанию для резервного провайдера с комментарием YOTA.
  3. Новый маршрут вне основной таблицы маршрутизации. Для него мы и делаем отдельное правило (см. рисунок ниже).

Примечание:

Новому правилу необходимо присвоить Routing mark. В нашем случаем мы назвали его — enternal.

маршрут по умолчанию для основного провайдера

В качестве примера откроем маршрут по умолчанию для основного провайдера.

Внимание

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

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

Создаем правило

Создаем правило, которое говорит нам о том, что весь трафик, идущий на адрес 8.8.8.8 направлять только через таблицу enternal.

Примечание:

Сначала создается маршрут и в нем прописывается routing mark, и только потом мы найдем вновь созданный routing mark в поле Table.

Настройка таблицы маршрутизации завершена.

Этап 3. Настройка скрипта переключения

В качестве основного инструмента переключения мы будем использовать Netwatch. В качестве примера – интервал проверки мы сделали 15 секунд. В реальных условиях рекомендуем увеличить значение до 10 минут. Если основной канал будет активен, но работать нестабильно (потери пакетов), то роутер будет переключать интерфейсы. Соответственно, ни основной ни резервный канал корректно работать не будут.

Сам скрипт выглядит следующим образом. Поиск ведется по комментариям, присвоенным маршрутам.

Поле UP:

/ip route disable [find comment="YOTA"]
/ip route enable [find comment="EFSOL"]

Поле DOWN:

/ip route enable [find comment="YOTA"]
/ip route disable [find comment="EFSOL"]

инструмент переключения Netwatch

Поле UP

Поле DOWN

На этом настройка резервирования канала завершена.

  • Главная
  • Информация
  • Статьи
  • Подключение к нескольким провайдерам и резервирование интернет-канала

Подключение к нескольким провайдерам и резервирование интернет-канала

Интернет-центры Keenetic работают сразу с несколькими подключениями. Эта технология называется Multi-WAN. К девайсам Keenetic подключается два или более кабелей Ethernet разных провайдеров и настраивается резервирование главного подключения. Возможен и другой вариант: основное подключение – по выделенной линии Ethernet, резервное – через USB-модем 3G/4G. Multi-WAN поддерживают все версии интернет-центров Keenetic.

Резервирование становится активным в нескольких ситуациях:
•    При потере физического соединения на каком-то из интерфейсов.
•    При срабатывании Ping Check, функции, определяющей подключение к интернету.
•    При отключении интерфейса пользователем.
•    В любой из ситуаций срабатывает приоритетный шлюз с выходом в интернет.

Чтобы стало понятнее, приведем пример. Подключение Keenetic к двум разным провайдерам по выделенной линии Ethernet и настройки резервного интернет-канала. Главный шлюз подключается к синему слоту (WAN/Интернет). Кабель от резервного источника подсоединяется к любому свободному желтому слоту домашней сети. Для настройки нужно сделать несколько шагов:

1.    Настроить основное подключение к интернету. В первую очередь с помощью Ethernet. В отсутствии интернета срабатывает механизм проверки — Ping Check. При сбое основного шлюза интернет-центр переключится на запасной вариант, при восстановлении – возвращается к прежней конфигурации. Лучше опцию Ping Check подключать к основному шлюзу. Убедитесь, что подключение к интернету установлено.

2.    Установить резервное подключение. Замените значение слота домашней сети и установите его для интернет-кабеля второго провайдера. Он будет работать, как синий разъем. Для подключения нескольких провайдеров на странице «Проводные подключения» кликните вкладку «+» («Добавить провайдера»). Настройте доступ к интернету согласно условиям подключения. Например, дополнительного проводного подключения. Проверьте ролик активности, приоритет подключения, имя провайдера, выберите порт и посмотрите параметры IP и DNS.
Подсоедините Ethernet-кабель дополнительного интернет-шлюза к выбранному в настройках слоту.

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

4.    Завершить настройку основного и резервного(ых) подключений интернет-каналов. На стартовой странице «Системный монитор» в разделе «Интернет» отобразится активное подключение и готовый к подсоединению провайдер в резерве. Для проверки отключите сетевой кабель основного шлюза из синего слота. Устройство зафиксирует отсутствие подключения и автоматически переключится на резервный канал. При появлении сигнала главного шлюза интернет-канал вернется к нему.

Multi-WAN на роутере для балансировки подключений настраивают привязку девайсов к разным интернет-каналам при помощи политик маршрутизации Policy Based Routing (PBR).

Теги: Multi-WAN,
Keenetic,
USB-модем,
3G,
4G,
LTE

Другие наши интересноые статьи:

  • Настройка прокси сервера на роутере keenetic
  • Настройка роутер tp link украина
  • Настройка режима работы роутера snr cpe
  • Настройка принтера через wifi роутер asus
  • Настройка роутер d link dap 1155

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии