Mikrotik: VLAN с использованием чипа коммутации

  • Tutorial
Оборудование Mikrotik богато возможностями, но к сожалению, разработчики не всегда успевают держать Wiki с документацией в актуальном состоянии, иногда информация относится к уже устаревшей версии RouterOS или в ней не раскрыты маленькие тонкости. Сегодня я хочу немного дополнить официальную Wiki, рассказав о настройке встроенного чипа коммутации, для работы с VLAN. В качестве подопытных у нас: RB951Ui-2HnD и CRS125-24G-1S-2HnD. Все проделано на RouterOS 6.37.1

Вступление


Итак, вокруг множество статей, где с VLAN работаю на CPU (объявляют VLAN на интерфейсе и помещают его в Bridge). Такая связка имеет право на жизнь, но в её работе мы расходуем ресурс CPU, который может быть очень ценным. Два разных устройства представляют различные механизмы настройки для чипа коммутации, так как они сильно разные в техническом плане.

Реализовывать будем некоторые примеры из официальной Wiki:

Port Based VLAN


image

Поясним картинку: На порт ether2 приходят тегированные пакеты (порт транковый), а с портов ether6-ether8 уходят растегированные пакеты (порты доступа — клиентские порты).
Я буду брать конфигурацию с реально работающего устройства, поэтому полного соответствия с картинкой не будет.

RB951Ui-2HnD


Конфигурация: На ether1 приходят тегированные пакеты (VID: 4,5,6,10, 603), с портов ether2-ether4 уходят раздетые VID:10, с ether5 уходит раздетый VID:5, VID:603 сейчас не используется, а особый порт switch1-cpu принимает любые пакеты.

Вначале, создадим группу коммутации, для этого, во всех интерфейсах выставим мастер порт (по умолчанию ether2-master), тем самым мы отдадим эти порты в управление коммутатору.

/interface ethernet set ether1 master-port=ether2-master



Аналогично для всех остальных. Не затягивая, на мастер порт (так мы получим доступ к этому VLAN из CPU, по сути мы связываем его с switch1-cpu) подвесим нужные нам VLAN:

/interface vlan
add interface=ether2-master \
    name=V-210 vlan-id=10
add interface=ether2-master \
   name=V-MNGR vlan-id=4
add interface=ether2-master \
    name=V-PR1 vlan-id=603
add interface=ether2-master \
   name=V-WL vlan-id=5
add arp=enabled arp-timeout=auto disabled=no interface=ether2-master \
    loop-protect=default loop-protect-disable-time=5m \
    loop-protect-send-interval=5s mtu=1500 name=V-WLG use-service-tag=no \
    vlan-id=6



Далее зададим политику обработки пакетов на портах (номер VLAN по умолчанию), что отбросить, что раздеть, а где и шарфик повязать:

/interface ethernet switch port
set ether1 default-vlan-id=10 vlan-header=add-if-missing vlan-mode=secure
set ether2-master default-vlan-id=10 vlan-header=always-strip vlan-mode=secure
set ether3 default-vlan-id=10 vlan-header=always-strip vlan-mode=secure
set ether4 default-vlan-id=10 vlan-header=always-strip vlan-mode=secure
set ether5 default-vlan-id=5 vlan-header=always-strip vlan-mode=secure
set switch1-cpu default-vlan-id=0 vlan-header=leave-as-is vlan-mode=disabled



О параметрах можно почитать в Wiki в разделе Vlan-таблица.

Далее, мы создадим таблицу VLAN, по которой чип будет работать с тегами:

/interface ethernet switch vlan
add ports=ether1,ether2-master,ether3,ether4,ether5,switch1-cpu switch=switch1 vlan-id=10
add ports=ether1,switch1-cpu switch=switch1 vlan-id=4
add ports=ether1,ether5,switch1-cpu switch=switch1 vlan-id=5
add ports=ether1,switch1-cpu switch=switch1 vlan-id=6
add ports=ether1,switch1-cpu switch=switch1 vlan-id=603



Вот и все, теперь VLAN обслуживаются на чипе коммутации, к сожалению, у RB951Ui-2HnD его возможности не очень большие, к примеру он не сможет сделать гибридный порт, тут придется строить лес из костылей на bridge.

CRS125-24G-1S-2HnD


Тут чип коммутации совсем другой, и умеет больше, приступим:

Конфигурация: На ether24 приходят тегированные пакеты (VID: 4,5,6,7,16), с портов ether1-ether23 уходят раздетые VID:16 и одетые VLAN:7 (будет для второго примера), а особый порт switch1-cpu принимает любые пакеты.

Вначале, создадим группу коммутации, для этого, во всех интерфейсах выставим мастер порт (по умолчанию ether2-master), тем самым мы отдадим эти порты в управление коммутатору.

/interface ethernet set ether1 master-port=ether2-master

Аналогично для всех остальных. На мастер порт подвесим нужные нам VLAN:

/interface vlan
add interface=ether2-master \
   name=V-MNGR vlan-id=4
add interface=ether2-master \
    name=V-WL vlan-id=5
add interface=ether2-master \
    name=V-WLG vlan-id=6

Далее, мы создадим таблицу VLAN, по которой чип будет работать с тегами:

/interface ethernet switch vlan
add learn=yes ports="ether24,switch1-cpu" vlan-id=4
add learn=yes ports="ether24,switch1-cpu" vlan-id=5
add learn=yes ports="ether24,switch1-cpu" vlan-id=6
add learn=yes ports="ether1,ether2-mast\
    er,ether3,ether4,ether5,ether6,ether7,ether8,ether9,ether10,ether11,ether1\
    2,ether13,ether14,ether15,ether16,ether17,ether18,ether19,ether20,ether21,\
    ether22,ether23,ether24,switch1-cpu" vlan-id=7
add learn=yes ports="ether1,ether2-mast\
    er,ether3,ether4,ether5,ether6,ether7,ether8,ether9,ether10,ether11,ether1\
    2,ether13,ether14,ether15,ether16,ether17,ether18,ether19,ether20,ether21,\
    ether22,ether23,ether24,switch1-cpu" vlan-id=16



Далее зададим политику обработки пакетов на портах, тут уже все побогаче, политика задается раздельно.

Зададим порты, на которых соответсвующий VLAN будет одетым при выходе:

/interface ethernet switch egress-vlan-tag
add tagged-ports=ether24,switch1-cpu vlan-id=4
add tagged-ports=ether24,switch1-cpu vlan-id=5
add tagged-ports=ether24,switch1-cpu vlan-id=6
add tagged-ports=ether24,switch1-cpu vlan-id=16



Теперь, на каких портах, выходящий VLAN надо раздеть:

/interface ethernet switch egress-vlan-translation
add customer-vid=16 new-customer-vid=0 ports="ether1,ether2-master,ether3,ether4,ether5,ether6\
    ,ether7,ether8,ether9,ether10,ether11,ether12,ether13,ether14,ether15,ethe\
    r16,ether17,ether18,ether19,ether20,ether21,ether22,ether23"


Дословно это описывается так: если VID: 16, порт с 1 по 23, установить новый VID:0 (раздеть).

Теперь, на каких портах, входящий пакет надо одеть в VLAN:

/interface ethernet switch ingress-vlan-translation
add customer-vid=0 new-customer-vid=16 \
    ports="ether1,ether2-master,ether3,ether4,ether5,ether6,ether7,ether8,ethe\
    r9,ether10,ether11,ether12,ether13,ether14,ether15,ether16,ether17,ether18\
    ,ether19,ether20,ether21,ether22,ether23"



Дословно это описывается так: если VID: 0 (пакет раздетый), порт с 1 по 23, установить новый VID:16 (одеть).

С этим все.

Example 2 (Trunk and Hybrid ports)




Тут мы рассмотрим только CRS125-24G-1S-2HnD, к сожалению, RB951Ui-2HnD такое на чипе коммутации уже не умеет.

Итак, возьмем полностью конфу из предыдущего примера, и добавим такое правило:

/interface ethernet switch egress-vlan-tag
add tagged-ports="ether1,ether2-master,ether3,ether4,ether5,ether6\
    ,ether7,ether8,ether9,ether10,ether11,ether12,ether13,ether14,ether15,ethe\
    r16,ether17,ether18,ether19,ether20,ether21,ether22,ether23,ether24" \
    vlan-id=7
Поделиться публикацией

Похожие публикации

Комментарии 17

    0
    А на RB2011UAS-2HnD заработает такое? В смысле гибридный порт на мозгах чипа коммутации?
      0
      Если верить офф. Wiki, то там написано следующие:
      Atheros 8327 представлен в платах серии RB2011 (ether1-ether5+sfp1), RB750GL, RB751G-2HnD, а также в RB1100AH и RB1100AHx2 (ether1-ether5, ether6-ether10).
      Atheros8227 представлен в платах серии RB2011 (ether6-ether10).

      Нас интересует Atheros 8327, который поддерживает назначение правил.
        0
        О! т.е. половина портов таки может) надеюсь сегодня попробовать! =)

        К стати в английской версии все гораздо понятнее — http://wiki.mikrotik.com/wiki/Manual:Switch_Chip_Features

        И спасибо вам за статью!
          0
          Разве что, там больше чипов указано ;)
          Так ребята из Mikrotik реально не успевают вести подробную документацию. Я потратил около получаса, разбираясь, почему пример для CRS не работает, оказалось, что для ingress-vlan-translation они пример написали, а для egress-vlan-translation нет. Поэтому сделал полностью рабочий пример.
      • НЛО прилетело и опубликовало эту надпись здесь
          +1
          Уважаемый, сленг, это то, что можно использовать как угодно. Если не совпало с вашим, то так бывает, для однозначного понимания придумана терминология. Для этой статьи — главное, что отражает суть вопроса и уместен в качестве незатейливого юмора. Вам не смешно? Так не ходите на мои концерты.
          Статья: туториал. По совершенно конкретной фишке, конкретного оборудования. То, что вам оборудование не нравится, ваша, проблема, пишите свою статью, где объясняйте, чем и почему все в *****, а выбранное вами — белое.
          0
          Del.
            0
            Хорошая гибкость при настройке, спору нет. Но блин, после HP Procurve и Dlink, где вланы можно пробросить парой команд на цепочке коммутаторов — это конечно не так удобно. Было бы здорово, если бы они добавили упрощенный режим, мол повесить на 24-ый порт тегированные вланы 10,20. А на 1-23 повесить untagged 10.
            Учитывая ценники свитчей, я всерьез задумываюсь о постепенном переходе с прокурв на микротики в L2 сегменте. Но при больших объемах, настраивать\смотреть вланы устанешь. Можно конечно скриптом, но это костыль.

            Ну и плюс отсутствие поддержки LACP на свитч модуле пока что останавливает перед переходом на микротики =(

            P.S. сам являюсь ярым фанатом оборудования Mikrotik.
              0
              Посмотрите в сторону SwitchOS и коммутаторв на ее основе. Судя по скринам, в них упростили настройку.
              По поводу LACP встречный вопрос: часто ли вам нужна динамическая конфигурация? В статисеской все отлично работает.
                0
                А они разве не ушли от этой ОС? Насколько я помню лишь старые коммутаторы были с этой ОС на борту.

                По LACP, вы имеете ввиду, если настроить транк на свитч модуле, а с другой стороны LACP, то все работает?
                  0
                  На другой тоже должна быть статика. LACP хорошая штука, чтобы неглядя кабели втыкать. В остальном не вижу серьезных плюсов перед обычным транком.
                    0
                    Тут я с вами полностью согласен.
              0
              Кстати по доверенным источникам сказали, что в 7-ой версии RouterOS упростят управление VLAN.
                0
                достоверные источники про VXLAN и EVPN не обмолвились случайно?
                  0
                  к сожалению об этом информации не слышно.
                0
                Будет ли статья как изменилась настройка с тех пор, как убрали настройку «master-port»?
                  0

                  По сути, там нечего писать. Порты объединяются мостом. Если чип поддерживает аппаратную разгрузку, то интерфейсы получать статус H. Если делать несколько мостов, а группа коммутации только одна, то тот, что с большим числом интерфейсов становится "мастером" с аппаратной разгрузкой, остальные софтовые.

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

                  Самое читаемое