Разработчики RoS уже достаточно давно анонсировали изменения в работе мостов (bridge), и включили эту новую функциональность в Release Candidate ветку, вот теперь они внесли это и в Current.

Что нового?


Теперь, нет необходимости заниматься хитростями, на подобие этих: Mikrotik: маленькая хитрость switch chip.
ВНИМАНИЕ! Читаем предупреждение в Release Notes!!!

Теперь настроить VLAN можно непосредственно в Bridge, при этом при наличие аппаратной поддержки, чип коммутации возьмет на себя работу с VLAN и пересылкой трафика между портами (Список поддерживаемых устройств: Bridge Hardware Offloading).

Немного практики:


Обратимся к руководству и моей предыдущей статье. Задача сделать мост для интернета с ТВ-приставкой и остальной сети.

Использование хитрости с VLAN на чипе коммутации позволяло снять нагрузку с CPU роутера по пересылке пакетов в рамках одной группы коммутации (эмулировали несколько групп с помощью VLAN).
Но такая задача решается в принципе теперь элементарно, так как мост поддерживает hw-offload, и все сводится к добавлению портов в соответсвующий мост, всё!

Поэтому усложним задачу. У меня кроме RB951G используется RBmAP2nD (оба устройства не поддерживают аппаратную разгрузку), который кроме основной WiFi держит еще и гостевую сеть. Поэтому, до него у меня будет идти тегированный трафик обычной локалки и гостевой.

Начинается все довольно очевидно, нам нужно три моста:

/interface bridge
add name=B-EXT pvid=2 vlan-filtering=no
add comment=defconf name=B-LAN pvid=3 vlan-filtering=no
add arp=reply-only name=B-WG

Обращаем внимание на опцию vlan-filtering, её не стоит включать до завершения остальных настроек, иначе роутер станет недоступен. Опция pvid задает VLAN по умолчанию для всего моста.

Задаем VLAN, которые будут обслуживаться на мостах.

/interface bridge vlan
add bridge=B-EXT untagged=ether1,ether3 vlan-ids=2
add bridge=B-LAN tagged=ether2 untagged=ether4,ether5 vlan-ids=3
add bridge=B-LAN tagged=ether2 vlan-ids=4

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

И создадим VLAN гостевой сети:

/interface vlan
add interface=B-LAN name=V-GST vlan-id=4

Добавим нужные нам порты в мосты:

/interface bridge port
add bridge=B-LAN comment=defconf interface=ether2 pvid=3
add bridge=B-EXT comment=defconf frame-types=admit-only-untagged-and-priority-tagged interface=ether3 pvid=2
add bridge=B-LAN comment=defconf frame-types=admit-only-untagged-and-priority-tagged interface=ether4 pvid=3
add bridge=B-LAN comment=defconf frame-types=admit-only-untagged-and-priority-tagged interface=ether5 pvid=3
add bridge=B-LAN comment=defconf frame-types=admit-only-untagged-and-priority-tagged interface=wl-2ghz pvid=3
add bridge=B-EXT frame-types=admit-only-untagged-and-priority-tagged interface=ether1 pvid=2
add bridge=B-WG interface=V-GST
add bridge=B-WG interface=wlg-2ghz

Указывая опцию pvid, мы указываем vlan по умолчанию для этого порта. Так-же, с помощью frame-types, мы задаем, какие пакеты мы собираемся принимать на порту.

Теперь включаем vlan-filtering=yes и все работает!

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

Комментарии (8)


  1. erazel
    23.12.2017 14:14

    Не совсем понял что для нас станет ВАН-интерфейсом. Езер1? А зачем нам тогда еще виланы делать для локалки?


    1. MagicGTS Автор
      23.12.2017 15:01

      VLAN для локалки — это усложнение задачи под мои условия. Для обычного ТВ с приставкой все придельно просто, два порта добавить в бридж EXT а все остальные порты в бридж LAN.
      Благодаря hw-offload, чип возьмет работу по бриджингу на себя, эффект будет как с «хитростями» из другой статьи.


      1. icCE
        23.12.2017 20:24

        > чип возьмет работу по бриджингу на себя, эффект будет как с «хитростями» из другой статьи.
        Не возмет и не будет работать.
        Bridge vlan будет аппаратно работать только на CRS3xx серии.


        1. MagicGTS Автор
          23.12.2017 20:36

          Да, виноват, пояснил эти моменты в статье.


  1. ekerlostw
    23.12.2017 19:58
    +1

    Вот авторы пошли — с матчастью не ознакомились, а статьи на хабре уже пилят…
    Вы таки обратите внимание что при включенном влан-филтринге пропадает флаг «H» с интерфейсов бриджа ибо Bridge VLAN Filtering аппаратно работает только на CRS3xx,
    вам вон даже разработчики в чейндж-логах линк оставили —

    !) switch — «master-port» conversion into a bridge with hardware offload «hw» option;
    wiki.mikrotik.com/wiki/Manual:Switch_Chip_Features#Bridge_Hardware_Offloading

    На 951g точно так же как и раньше надо в меню switch некоторые манитуляции проделать


    1. MagicGTS Автор
      23.12.2017 20:27

      Все верно, я накосячил, приношу всем извинения за неверную информацию.
      В данном случае я поторопился :(
      Придется использовать старый трюк на чипе коммутации.
      В статью внесены изменения это поясняющее.


  1. Protosuv
    25.12.2017 18:07

    Согласно документации на 3XX серию, указывается:

    «Currently it is possible to create only one bridge with hardware offloading on CRS3xx series devices. Use the hw parameter to select which bridge will use hardware offloading.»

    что значит, что только один мост пока что поддерживает аппаратную разгрузку. Этот факт также не стоит упускать из виду.


  1. divaka
    25.12.2017 18:07

    Из личного опыта эксплуатации, при использовании Vlan на чипе для CRS125 и RB2011, скорость трафика на клиентских портах падала от 5 — 10 раз. чем если бы эти порты были в простых бриджах, а транковый порт реализован как подинтерфейсы. Не все так гладко с аппаратным Switching-ом на микротиках.