Задача: Настройка резервного канала Mikrotik
Предположим, у нас есть Mikrotik и два интернет-провайдера, предоставляющих доступ в сеть через проводное соединение. От первого провайдера мы должны получить настройки по dhcp, для второго их нужно задать статически. Нам требуется обеспечить безотказную работу интернет-соединения. Для этого при возникновении проблем с доступом в интернет через основной канал (первого провайдера) наш маршрутизатор должен автоматически переключаться на резервный (второго провайдера), и, при восстановлении связи, продолжать работу в штатном режиме. Сразу условимся: в первый порт будет подключен основной провайдер, во второй резервный, остальные три порта будут использоваться для подключения компьютеров локальной сети. О работоспособности канала будем судить по доступности ip-адреса. Для проверки лучше всего взять адрес какого-либо крупного сервиса, вероятность отказа которого крайне мала (мы выбрали google dns).
1. Очистка конфигурации Mikrotik роутера
Для того, чтобы процесс настройки был понятней, и в дальнейшем не возникло путаницы, мы удалим стандартную конфигурацию и будем все делать с нуля. После очистки конфигурации к роутеру mikrotik можно подключиться только по mac-адресу через программу winbox.
2. Настройка интерфейсов и создание сетевого моста (bridge) на Mikrotik
В системе управления каждый интерфейс имеет свое имя. Имеет смысл присвоить интерфейсам устройства хорошо различимые понятные имена, что в будущем позволит существенно облегчить настройку и мониторинг системы.
Следующей задачей для нас является настройка внутренней сети. Для обеспечения взаимосвязи между компьютерами и устройствами локальной сети проще всего воспользоваться функциями сетевого моста (Bridge), который позволяет объединить внутренние сетевые интерфейсы и обеспечить прозрачный доступ внутри сети.
Для создания сетевого моста необходимо воспользоваться пунктом меню Bridge, указать требуемое имя моста и в закладке Ports добавить в мост требуемые внутренние интерфейсы.
3. Добавление ip-адресов
Далее нужно добавить внутренний ip адрес, который будет являться шлюзом для нашей локальной сети (обратите внимание, что его нужно присвоить интерфейсу сетевого моста), а так же ip-адрес, который нам предоставляет второй провайдер.
4. Настройка внутреннего dhcp-сервера
Теперь мы должны настроить параметры внутреннего DHCP сервера для раздачи IP адресов устройствам внутренней сети. Сначала необходимо создать пул выдаваемых IP адресов, для чего открываем пункт меню IP-Pool, создаем новый пул, присваиваем ему различаемое имя и указываем диапазон выдаваемых адресов.
Теперь можно приступать к настройке собственно DHCP сервера. Для этого необходимо перейти в пункт меню IP-DHCP Server и создать новый сервер, указав его имя, интерфейс на котором сервер будет работать (в нашем случае это сетевой мост) и ранее настроенный пул выдаваемых адресов. После этого мы должны указать параметры сети для нашего DHCP севера. Для этого нужно перейти на закладку Network и указать параметры передаваемые клиентам.
5. Создание dhcp-клиента
Так как подключение к сети первого провайдера предполагается осуществлять с использованием динамического адреса, значит нам нужно создать dhcp-клиента, работающего на первом порту маршрутизатора. Сделать это можно из меню IP Dhcp client.
6. Добавление статических маршрутов
Все взаимодействие между сетями осуществляется в соответствии с таблицей маршрутизации, управлять которой можно из меню Routes. Маршруты в локальную сеть и к внутренним сетям провайдеров были добавлены динамически, осталось добавить маршруты в интернет (на адрес 0.0.0.0/0) через шлюзы провайдеров. Так же для обоих созданных маршрутов добавляем комментарии и указываем маршрут к 8.8.4.4 через шлюз первого провайдера (необходимо для работы проверки канала).
7. Настройка межсетевого экрана
Используя встроенный файервол можно управлять всем трафиком, проходящем через маршрутизатор. Фильтрация осуществляется на основе правил, заданных в меню Firewall и применяемых последовательно ко всем сетевым пакетам. Все действия с маршрутизатором можно проводить, как из графического интерфейса, так и из командной строки. В данном разделе удобнее будет все сделать из консоли.
Заходим в Terminal и выполняем следующие команды:
#скрываем внутреннюю сеть за NAT
ip firewall nat add action=masquerade chain=srcnat comment=NAT src-address=192.168.88.0/24
#запрещаем соединения со статусом invalid
ip firewall filter add action=drop chain=input comment=Deny invalid connections connection-state=invalid
#разрешаем использование протокола icmp
ip firewall filter add chain=input comment=Permit icmp protocol=icmp
#разрешаем все уже установленные соединения
ip firewall filter add chain=input comment=Permit established connections connection-state=established
#разрешаем все зависимые соединения
ip firewall filter add chain=input comment=Permit related connections connection-state=related
#блокируем все новые соединения со всех интерфейсов, кроме LAN
ip firewall filter add action=drop chain=input comment=Deny new connections connection-state=new in-interface=!LAN
#запрещаем ping 8.8.4.4 через ISP2
ip firewall filter add action=drop chain=output comment=Deny 8.8.4.4 to reserved internet-channel dst-address=8.8.4.4 out-interface=ether2 internet II (reserve) protocol=icmp
8. Переключение каналов
В ОС роутера есть встроенная утилита Netwatch, которая позволяет отслеживать состояние хостов в сети посредством отправки ICMP-запросов (ping) и выполнять какие-либо действия на основе их доступности. Мы будем отслеживать ip-адрес 8.8.4.4 через первый канал, и в случае его недоступности переключать маршруты на работу по второму.
Создаем новый Netwatch host, в графе Host указываем отслеживаемый ip-адрес, а в Interval частоту осуществляемых проверок.
В раздел Up нужно сделать записи:
#включим маршрут с комментарием ISP1 (основной канал)
/ip route set [find comment=ISP1] disabled=no
#отключаем маршрут с комментарием ISP2(резервный канал)
/ip route set [find comment=ISP2] disabled=yes
В раздел Down:
#отключаем маршрут с комментарием ISP1(резервный канал)
/ip route set [find comment=ISP1] disabled=yes
#включаем маршрут с комментарием ISP1 (основной канал)\
/ip route set [find comment=ISP2] disabled=no
9. Настройка безопасности
Выполняя настройку подобных устройств всегда необходимо думать о сетевой безопасности, поэтому перед введением маршрутизатора в эксплуатацию необходимо произвести следующие настройки:
- отключить все неиспользуемые сервисы (IP Services)
- отключить обнаружение устройства на всех внешних интерфейсах (IP Neighbor)
- установить пароль администратора (System Password)