Настройка маршрутизаторов Mikrotik (ч.2): резервирование интернет-канала

    Настройка маршрутизаторов Mikrotik (ч.1): подключение, основные параметры

    Настройка маршрутизаторов Mikrotik (ч.2): резервирование интернет-канала

    Настройка маршрутизаторов Mikrotik (ч.3): использование USB-модема для резервного канала


    Задача:

       Предположим, у нас есть два интернет-провайдера, предоставляющих доступ в сеть через проводное соединение. От первого провайдера мы должны получить настройки по dhcp, для второго их нужно задать статически. Нам требуется обеспечить безотказную работу интернет-соединения. Для этого при возникновении проблем с доступом в интернет через основной канал (первого провайдера) наш маршрутизатор должен автоматически переключаться на резервный (второго провайдера), и, при восстановлении связи, продолжать работу в штатном режиме. Сразу условимся: в первый порт будет подключен основной провайдер, во второй - резервный, остальные три порта будут использоваться для подключения компьютеров локальной сети. О работоспособности канала будем судить по доступности ip-адреса. Для проверки лучше всего взять адрес какого-либо крупного сервиса, вероятность отказа которого крайне мала (мы выбрали google dns).

    1. Очистка конфигурации роутера

       Для того, чтобы процесс настройки был понятней, и в дальнейшем не возникло путаницы, мы удалим стандартную конфигурацию и будем все делать с нуля. После очистки конфигурации к роутеру можно подключиться только по mac-адресу через программу winbox.

    2. Настройка интерфейсов и создание сетевого моста ("bridge") 

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

       Следующей задачей для нас является настройка внутренней сети. Для обеспечения взаимосвязи между компьютерами и устройствами локальной сети проще всего воспользоваться функциями сетевого моста ("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")