Вышестоящее руководство прислало на нашу организацию проект ЛВС, в котором одно из требование – повышение отказоустойчивости. В проекте коммутаторы объединены в стэк. В оборудовании Микротик отсутствует стэкирование. Аналог этой технологии MLAG – группа агрегации каналов с несколькими шасси (устройствами). На этой странице далее рассмотрено, как настроен MLAG на примере нашей сети. Пока не закупили оборудование, тест проводился на ближайшем доступном под рукой оборудовании с интерфейсами по витой паре. По проекту все должно быть на оптике.
Освоить MikroTik Вы можете с помощью онлайн-куса «Настройка оборудования MikroTik». Курс содержит все темы, которые изучаются на официальном курсе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.
Схема подключения.
GW-Gate Way, CS-Core Switch, AS-Access Switch.
Оборудование будет другое и зависит от результатов закупки, поэтому ориентироваться на нарисованное в схеме при построении своей сети не нужно. Это в основном касается коммутаторов CS1-CS2. Проект очень странный и по сути в нем объединены коммутаторы уровня ядра и распределения. Специфика сети у каждого может быть своя, а у нас какой проект есть, с тем и придется работать.
MLAG не совместим с аппаратной разгрузкой L3. Это нужно учитывать при планировании своих целей.
Одну из важных ролей в MLAG играют связанные (bonding) интерфейсы. Эта технология позволяет увеличить пропускную способность канала за счет увеличения количества физических линий, объединенных в виртуальный интерфейс. Например, коммутатор был подключен к серверу по одному проводу витой парой – была скорость 1Гбит/с, добавили еще один провод, объединили в bonding-интерфейс и скорость передачи удвоилась (условно). Увеличивается отказоустойчивость. Если порвут один провод, то на втором работа продолжится.
В схеме MLAG два коммутатор CS1 и CS2 объединены по протоколу ICCP, а все остальные устройства подключаются к этим коммутаторам через bonding-интерфейсы как к единому устройству. В случае отключения или поломки одного коммутатора, работа продолжится без перерывов через второй коммутатор.
Версия RouterOS у всех устройств 7.16.1. Конфигурация сброшена на пустую (blank). Добавлены учетные записи.
Настройка GW1.
Подписываем название роутера.
1 |
/system identity set name=GW1-PC360 |
Создаем bonding-интерфейс для портов направленных в сторону локальной сети.
Name: любое удобное название.
Slaves: ether2 и ether3 – подчиненные интерфейсы.
Mode: 802.3ad режим работы, стандарт, также называемый LACP (протокол управления агрегацией каналов).
Transmit Hash Policy: layer 3 and 4 – политика передачи хэша для балансировки трафика по портам.
Создаем виртуальные интерфейсы для каждого VLAN.
Распределение например такое.
VLAN30 – все пользователи
VLAN40 – администрация и бухгалтерия.
VLAN1000 – управление сетью (Management).
Должно получится так.
1 2 3 4 |
/interface vlan add interface=bonding-LAN name=VLAN30 vlan-id=30 add interface=bonding-LAN name=VLAN40 vlan-id=40 add interface=bonding-LAN name=VLAN1000 vlan-id=1000 |
В реальности у нас еще очень много VLAN. Пару штук приведено для примера. Каждый может добавить столько VLAN, сколько ему нужно.
Назначаем IP-адрес для интерфейса сети пользователей VLAN30.
Назначаем IP-адрес для интерфейса сети пользователей VLAN40.
Назначаем IP-адрес для интерфейса сети менеджмента.
1 2 3 4 |
/ip address add address=172.16.100.1/28 interface=VLAN1000 network=172.16.100.0 add address=192.168.3.1/24 interface=VLAN30 network=192.168.3.0 add address=192.168.4.1/24 interface=VLAN40 network=192.168.4.0 |
Создадим DHCP Server для динамической раздачи IP-адресов в сети.
После создания можно поправить названия сервера и пула адресов.
Аналогичными действиями создаем все необходимые DHCP-серверы.
1 2 3 4 5 6 7 8 9 10 11 |
/ip pool add name=POOL-VLAN-30 ranges=192.168.3.2-192.168.3.254 /ip pool add name=POOL-VLAN-40 ranges=192.168.4.2-192.168.4.254 /ip pool add name=POOL-VLAN-1000 ranges=172.16.100.2-172.16.100.14 /ip dhcp-server network add address=192.168.3.0/24 dns-server=192.168.3.1 gateway=192.168.3.1 /ip dhcp-server network add address=192.168.4.0/24 dns-server=192.168.4.1 gateway=192.168.4.1 /ip dhcp-server network add address=172.16.100.0/28 dns-server=172.16.100.1 gateway=172.16.100.1 /ip dhcp-server add address-pool=POOL-VLAN-30 interface=VLAN30 lease-time=8h30m name=DHCP-VLAN-30 /ip dhcp-server add address-pool=POOL-VLAN-40 interface=VLAN40 lease-time=8h30m name=DHCP-VLAN-40 /ip dhcp-server add address-pool=POOL-VLAN-1000 interface=VLAN1000 lease-time=12h00m name=DHCP-VLAN-1000 |
Настройка доступа в Интернет.
В разных случаях может быть разная настройка. Например, PPPoE, DHCP-Clien или что-то еще.
В данном случае DHCP Client от роутера провайдера.
1 |
/ip dhcp-client add interface=ether1 |
Для доступа в Интернет может понадобится правило NAT и настройка DNS.
NAT в простейшем виде.
1 |
/ip firewall nat add action=masquerade chain=srcnat out-interface=ether1 |
DNS.
1 |
/ip dns set allow-remote-requests=yes servers=8.8.8.8 |
Обязательно нужно настроить Filter Rules в файерволе так как роутер подключен одним интерфейсом напрямую в Интернет.
Так же можно активировать NTP клиента для актуализации даты и время.
1 |
/system ntp client servers add address=1.europe.pool.ntp.org |
И все другие базовые настройки.
Настройка CS1.
Указываем сетевое имя.
1 |
/system identity set name=CS1-CRS326 |
Создаем bonding-интерфейс в сторону коммутатора доступа AS1.
Кроме всех прочих параметров которые уже встречались ранее, в этом интерфейсе нужно указать MLAG Id. Он должен быть одинаковым для двух интерфейсов разных коммутаторов используемых в MLAG, подключаемых с другой стороны к одному устройству.
1 |
/interface bonding add mlag-id=1 mode=802.3ad name=bonding-AS1 slaves=ether23 transmit-hash-policy=layer-3-and-4 |
Создаем bonding-интерфейс в сторону шлюза GW1.
1 |
/interface bonding add mlag-id=2 mode=802.3ad name=bonding-GW1 slaves=ether1 transmit-hash-policy=layer-3-and-4 |
Создадим мост (bridge) и добавим в него все участвующие в схеме интерфейсы.
1 |
/interface bridge add name=bridge-LAN vlan-filtering=yes |
Для работы MLAG нужен протокол STP. Одна из его версий активирована изначально.
Добавляем в мост порты.
Порт в сторону AS1.
Аналогично добавляем порт в сторону GW1.
Для порта MLAG нужно указать PVID. Этого требует правило работы протокола ICCP. В данном случае используется PVID 100.
Должно получится так.
1 2 3 4 |
/interface bridge port add bridge=bridge-LAN interface=bonding-AS1 add bridge=bridge-LAN interface=bonding-GW1 add bridge=bridge-LAN interface=ether24 pvid=100 |
Далее заполним таблицу VLAN, чтоб распределить ID по портам. Во все ID нужно добавлять MLAG порт.
Добавим VLAN30 и VLAN40 для подключения разных групп пользователей (бухгалтерия, администрация 40 и все остальные 30).
Добавим VLAN управления. В нашей сети он с тэгом 1000. Через этот VLAN организован доступ к сетевому оборудованию.
В этот VLAN ID добавлен bridg-LAN в отличие от остальных. Это сделано чтоб иметь доступ к этому коммутатору для обслуживания.
Следующим добавляем тэг 100 для порта MLAG.
Согласно описанию на mikrotik.help протокол ICCP на котором работает MLAG должен быть изолирован от остальной сети с помощью выделенного нетэгированного VLAN.
1 2 3 4 5 |
/interface bridge vlan add bridge=bridge-LAN tagged=bonding-AS1,bonding-GW1,ether24 vlan-ids=30 add bridge=bridge-LAN tagged=bonding-AS1,bonding-GW1,ether24 vlan-ids=40 add bridge=bridge-LAN tagged=bonding-AS1,bonding-GW1,ether24,bridge-LAN vlan-ids=1000 add bridge=bridge-LAN untagged=ether24 vlan-ids=100 |
Теперь создадим виртуальный интерфейс для того, чтоб этому коммутатору можно было назначить IP-адрес.
1 |
/interface vlan add interface=bridge-LAN name=VLAN1000 vlan-id=1000 |
Назначим получение IP-адреса по DHCP.
1 |
/ip dhcp-client add interface=VLAN1000 |
Когда DHCP Server заработает, коммутатору раздастся IP-адрес на этот интерфейс.
Активируем MLAG.
1 |
/interface bridge mlag set bridge=bridge-LAN peer-port=ether24 |
MLAG перейдет в статус connecting, но соединится ни с чем не сможет, потому что второй коммутатор еще не настроен.
Настройка CS2.
Настройка у второго коммутатора идентичная (кроме сетевого имя). Поэтому скопируем текстовые команды в терминал второго коммутатора и на этом настройка закончена.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
/system identity set name=CS2-CRS326 /interface bonding add mlag-id=1 mode=802.3ad name=bonding-AS1 slaves=ether23 transmit-hash-policy=layer-3-and-4 /interface bonding add mlag-id=2 mode=802.3ad name=bonding-GW1 slaves=ether1 transmit-hash-policy=layer-3-and-4 /interface bridge add name=bridge-LAN vlan-filtering=yes /interface bridge port add bridge=bridge-LAN interface=bonding-AS1 add bridge=bridge-LAN interface=bonding-GW1 add bridge=bridge-LAN interface=ether24 pvid=100 /interface bridge vlan add bridge=bridge-LAN tagged=bonding-AS1,bonding-GW1,ether24 vlan-ids=30 add bridge=bridge-LAN tagged=bonding-AS1,bonding-GW1,ether24 vlan-ids=40 add bridge=bridge-LAN tagged=bonding-AS1,bonding-GW1,ether24,bridge-LAN vlan-ids=1000 add bridge=bridge-LAN untagged=ether24 vlan-ids=100 /interface vlan add interface=bridge-LAN name=VLAN1000 vlan-id=1000 /ip dhcp-client add interface=VLAN1000 /interface bridge mlag set bridge=bridge-LAN peer-port=ether24 |
После ввода настройки статус MLAG изменился.
Два коммутатора законнектились и распределились на первый и второй. Первым становится коммутатор с наименьшим мак-адресом.
Настройка AS1.
Коммутаторов доступа в проекте 11шт и принцип настройки у всех одинаковый. Различие в реальной ситуации будет только в разном количестве и номерах VLAN.
Указываем сетевое имя.
1 |
/system identity set name=AS1-CRS354 |
Создаем bonding-интерфейс для связи с вышестоящим оборудованием.
1 |
/interface bonding add mode=802.3ad name=bonding-AS slaves=ether1,ether2 transmit-hash-policy=layer-3-and-4 |
Создаем мост.
1 |
/interface bridge add name=bridge-AS vlan-filtering=yes |
Добавляем в мост порты.
Добавляем порт на котором будут пользователи с VLAN30.
Вобщем, добавляем все порты в коммутаторе, к которым планируется подключать пользователей. В данном примере добавлены два порта для VLAN30 и VLAN40.
1 2 3 4 |
/interface bridge port add bridge=bridge-AS interface=bonding-AS add bridge=bridge-AS interface=ether3 pvid=30 add bridge=bridge-AS interface=ether4 pvid=40 |
Заполняем таблицу VLAN для ID 30.
Аналогично для VLAN40.
Добавляем ID для менеджмента.
В данном случае в тегированные добавлен bridge-AS чтоб иметь доступ в коммутатор.
1 2 3 4 |
/interface bridge vlan add bridge=bridge-AS tagged=bonding-AS untagged=ether3 vlan-ids=30 add bridge=bridge-AS tagged=bonding-AS untagged=ether4 vlan-ids=40 add bridge=bridge-AS tagged=bonding-AS,bridge-AS vlan-ids=1000 |
Далее создаем виртуальный интерфейс с привязкой к бриджу, чтоб затем назначить на него IP-адрес.
1 |
/interface vlan add interface=bridge-AS name=VLAN1000 vlan-id=1000 |
Назначим получение IP-адреса по DHCP на созданный интерфейс.
1 |
/ip dhcp-client add interface=VLAN1000 |
Настройка завершена.
Проверка.
Сначала убедимся что всем устройствам раздались IP-адреса. Удобнее всего это сделать из роутера GW1.
Как видно из списка привязки, коммутаторам раздались IP-адреса из VLAN управления, а компьютерам из VLAN30 и VLAN40.
(компьютеры подключены в AS1)
Все устройства в сети и пингуются.
Проверим отказоустойчивость системы.
Запускаем пинг из компьютера до 8.8.8.8 и отключаем CS1.
Видно одно прерывание и далее трафик пошел через CS2.
Включаем CS1. Работа происходит без прерываний.
В результате отключения и включения по очереди CS1 и CS2 максимальное прерывание которое было замечено.
По результатам тестов трафик внутри одного VLAN проходит только внутри коммутатора AS1 через его switch-чип и нагрузка на процессор минимальна (1-2%). При прохождении трафика между разными VLAN вся нагрузка ложится на процессор роутера GW1, нагрузка на процессоры AS и CS коммутаторов минимальна (1-2%). В основном скорость близка к скорости портов и примерно равна 800-900Мбит/с.
Освоить MikroTik Вы можете с помощью онлайн-куса «Настройка оборудования MikroTik». Курс содержит все темы, которые изучаются на официальном курсе MTCNA. Автор курса – официальный тренер MikroTik. Подходит и тем, кто уже давно работает с микротиками, и тем, кто еще их не держал в руках. В курс входит 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.