Готовые решения:Настройка двух Интернет-каналов (резервирование)

Материал из MikroTik WiKi rus
Перейти к: навигация, поиск

Введение

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

Есть два основных способа настройки работы устройств МикроТик для работы с двумя провайдерами в режиме резервирования. Кратко их можно охарактеризовать, как "быстрый способ" и "комплексный способ". Первый способ является быстрым для настройки. Что явно следует из названия. Второй способ является более сложным в настройке, но при этом лишен недостатков, которые присущи первому способу.

Схема сети

схема сети двух интернет каналов на оборудовании МикроТик


Внешняя сеть:
Интернет-канал №1
IP-адреса маршрутизатора: 10.1.100.1
IP-адреса провайдера: 10.1.100.254
маска: 255.255.255.0

Интернет-канал №2
IP-адреса маршрутизатора: 10.1.200.1
IP-адреса провайдера: 10.1.200.254
маска: 255.255.255.0


Внутренняя сеть:
IP-адреса маршрутизатора: 192.168.15.1
маска: 255.255.255.0

Быстрый способ

Через графический интерфейс

Приведенные ниже манипуляции подразумевают, что вы уже настроили IP-адреса двум внешним интерфейсам, прописали маршруты и сделали правила masquerade.

Если у вас статические IP-адреса от обоих провайдеров, то простейшая настройка резервирования сводится к установке приоритетов маршрутов на первого и второго провайдера.

Зайти в IP => Routes и для маршрута на Провайдера-1 указываем Check Gateway=ping и Distance=5. В настройках маршрута на Провайдера-2 указываем Check Gateway=ping и Distance=10. Значения параметра Distance не обязательно должны быть такими. Важно, что бы значения для Провайдера-1 было меньше чем для Провайдера-2. Как правило, статические маршруты имеют приоритет (Distance) равный единице. Для примера мы привели другое значение. При такой схеме весь трафик будет идти через Провайдера-1, путь через Провайдера-2 будет резервным. Шлюзы обоих провайдеров будут периодически пинговаться, и при недоступности шлюза Провайдера-1 маршрут на него будет отключен, а трафик пойдет по маршруту на Провайдера-2. После того, как шлюз Провайдера-1 станет опять доступным трафик опять пойдет через него.

Недостатком данной схемы является то, что в ней проверяется не наличие Интернета, а именно доступность следующего узла. Часто встречаются ситуации, когда оборудование провайдера (следующий узел) доступно, а интернета нет. Очень яркий пример это Интернет через ADSL-модем. Соседний узел (ADSL-модем) будет доступным, а Интернет нет.

На первом маршрутизаторе:

Резервирование Интернет-канала с помощью маршрутизатора МикроТик, простой способ, маршрутизатор №1


На втором маршрутизаторе:

Резервирование Интернет-канала с помощью маршрутизатора МикроТик, простой способ, маршрутизатор №2

Через консоль

Первый маршрутизатор:

/ip route
add check-gateway=ping distance=5 gateway=10.1.100.254


Второй маршрутизатор:

/ip route
add check-gateway=ping distance=10 gateway=10.1.200.254

Комплексный способ

Через графический интерфейс

Приведенные ниже манипуляции подразумевают, что вы уже настроили IP-адреса двум внешним интерфейсам, прописали маршруты и сделали правила masquerade.

"Комплексный" способ основан на том, что с помощью встроенной утилиты "Netwatch", мы будем один раз в минуту проверять доступность интернета с помощью команды ping до узла 8.8.4.4 через первый интернет канал. Доступ до этого узла через второй Интернет-канал будет всегда закрыт. Таким образом если ping проходит - это значит, что первый канал находится в рабочем состоянии и он должен быть включен, а 2-ой канал должен быть выключен. И наоборот: если ping не проходит - это значит, что первый канал не работает и он должен быть выключен и включен 2-ой канал. Как только ping начнет проходить произойдет обратной переключение. Нужный маршрут утилита будет определять по комментарию, который мы назначим. Как видите этот способ лишен недостатка первого способа.

Добавить комментарии к маршрутам. К маршруту через первого провайдера добавить комментарий ISP1, к маршруту через второго провайдера добавить комментарий ISP2. Приведем пример для первого провайдера. Для второго действие делается аналогично.

Настройка комментария для маршрута через первый внешний интерфейс на маршрутизаторе МикроТик


Создать статический маршрут до 8.8.4.4. В IP => Routes создать маршрут до адреса 8.8.4.4 через шлюз 1-го интернет провайдера.

Настройка маршрута до адреса 8.8.4.4 через первый внешний интерфейс на маршрутизаторе МикроТик


Добавить правило блокирующее доступ к 8.8.4.4 через 2-ой WAN-интерфейс.

Настройка правила файервола, которое блокирует доступ до 8.8.4.4 через 2-ой внешний интерфейс на маршрутизаторе МикроТик, шаг 1


Настройка правила файервола, которое блокирует доступ до 8.8.4.4 через 2-ой внешний интерфейс на маршрутизаторе МикроТик, шаг 2


Добавить условие переключения. В Tools => Netwatch на вкладке «Host» создать новый "Netwatch host". В графе "Host" указать отслеживаемый ip-адрес, в "Interval" - частоту осуществляемых проверок, а в "Timeout" - время недоступности хоста при котором сработает триггер.

Настройка утилиты "Netwatch" на маршрутизаторе МикроТик, шаг 1


На вкладке "Up" добавить скрипт следующего содержания:
/ip route set [find comment="ISP1"] disabled=no
/ip route set [find comment="ISP2"] disabled=yes

Настройка утилиты "Netwatch" на маршрутизаторе МикроТик, шаг 2


На вкладке "Down" добавить скрипт следующего содержания:
/ip route set [find comment="ISP1"] disabled=yes
/ip route set [find comment="ISP2"] disabled=no

Настройка утилиты "Netwatch" на маршрутизаторе МикроТик, шаг 3

Через консоль

/ip route
set comment=ISP1 [find gateway=10.1.100.254]
set comment=ISP2 [find gateway=10.1.200.254]


/ip route
add distance=1 dst-address=8.8.4.4/32 gateway=10.1.100.254


/ip firewall filter
add action=drop chain=output dst-address=8.8.4.4 out-interface=ether4-WAN2 protocol=icmp comment="Deny 8.8.4.4 through reserved internet-channel"


/tool netwatch
add down-script="/ip route set [find comment=\"ISP1\"] disabled=yes\r\
\n/ip route set [find comment=\"ISP2\"] disabled=no" host=8.8.4.4 \
up-script="/ip route set [find comment=\"ISP1\"] disabled=no\r\
\n/ip route set [find comment=\"ISP2\"] disabled=yes"

Проверка