Управление свитчом в Mikrotik

В основе роутера Mikrotik (RB/750, RB/751, RB/2011) обычно лежит свичевая микросхема на 4/5 портов (в случае RB/2011 – две свичевых схемы). Соответственно, есть возможность использовать Mikrotik как управляемый свич (со всеми прелестями типа свичевания на wire-speed).
Сегодня мы с этим самым свичом и поиграем. Прошу под кат!

Master-port
Первый случай – нам нужен простой “тупой” свич. Один из портов назначается master, остальные – slave. Настройка происходит примерно
так:

[admin@MikroTik] > interface ethernet print
Flags: X - disabled, R - running, S - slave
 #    NAME                                  MTU MAC-ADDRESS       ARP        MASTER-PORT                                SWITCH
 0    sfp1                                 1500 D4:CA:6D:32:0C:44 enabled    none                                       switch1
 1 R  ether1                               1500 50:E5:49:56:BF:01 enabled    none                                       switch1
 2    ether2                               1500 D4:CA:6D:32:0C:46 enabled    none                                       switch1
 3    ether3                               1500 D4:CA:6D:32:0C:47 enabled    none                                       switch1
 4    ether4                               1500 D4:CA:6D:32:0C:48 enabled    none                                       switch1
 5    ether5                               1500 D4:CA:6D:32:0C:49 enabled    none                                       switch1
 6    ether6                               1500 D4:CA:6D:32:0C:4A enabled    none                                       switch2
 7    ether7                               1500 D4:CA:6D:32:0C:4B enabled    none                                       switch2
 8    ether8                               1500 D4:CA:6D:32:0C:4C enabled    none                                       switch2
 9    ether9                               1500 D4:CA:6D:32:0C:4D enabled    none                                       switch2
10    ether10                              1500 D4:CA:6D:32:0C:4E enabled    none                                       switch2
[admin@MikroTik] > interface ethernet set 3 master-port=ether2
[admin@MikroTik] > interface ethernet set 4 master-port=ether2
[admin@MikroTik] > interface ethernet set 5 master-port=ether2
[admin@MikroTik] > interface ethernet print
Flags: X - disabled, R - running, S - slave
 #    NAME                                  MTU MAC-ADDRESS       ARP        MASTER-PORT                                SWITCH
 0    sfp1                                 1500 D4:CA:6D:32:0C:44 enabled    none                                       switch1
 1 R  ether1                               1500 50:E5:49:56:BF:01 enabled    none                                       switch1
 2    ether2                               1500 D4:CA:6D:32:0C:46 enabled    none                                       switch1
 3  S ether3                               1500 D4:CA:6D:32:0C:47 enabled    ether2                                     switch1
 4  S ether4                               1500 D4:CA:6D:32:0C:48 enabled    ether2                                     switch1
 5  S ether5                               1500 D4:CA:6D:32:0C:49 enabled    ether2                                     switch1
 6    ether6                               1500 D4:CA:6D:32:0C:4A enabled    none                                       switch2
 7    ether7                               1500 D4:CA:6D:32:0C:4B enabled    none                                       switch2
 8    ether8                               1500 D4:CA:6D:32:0C:4C enabled    none                                       switch2
 9    ether9                               1500 D4:CA:6D:32:0C:4D enabled    none                                       switch2
10    ether10                              1500 D4:CA:6D:32:0C:4E enabled    none                                       switch2

Master-port можно назначать только в рамках одной switch group.

[admin@MikroTik] > interface ethernet set 6 master-port=ether2
master-port must be in same switch group

Две switch-group объединяются уже через bridge. В таком bridge будет только два master-port, ну может еще wifi, если такой есть.
Но bridge – это все-таки программное средство. В этом случае трафик между двумя switch-group будет проходить через процессор.

vlan
Свич у нас еще и управляемый, поэтому можно рулить вланами как на обычном “умном” свиче без потери производительности.

Сначала настраиваем порты (порт ether5 транковый, порты ether2..ether4 – акцессные, нумерация интерфейсов с нуля):

/interface ethernet switch port
set 1 vlan-header=always-strip vlan-mode=secure
set 2 vlan-header=always-strip vlan-mode=secure
set 3 vlan-header=always-strip vlan-mode=secure
set 4 vlan-header=add-if-missing vlan-mode=secure

vlan-header=always-strip ставится на порту доступа. Он убирает vlan-tag со всех пришедших на порт кадров.
add-if-missing ставится на транковый порт, и добавляет vlan-tag на все фреймы без такового.

Потом настраиваем вланы:

/interface ethernet switch vlan
add ports=ether5 switch=switch1 vlan-id=200
add ports=ether5 switch=switch1 vlan-id=300
add ports=ether5 switch=switch1 vlan-id=400
add ports=ether2,ether3,ether4 switch=switch1 vlan-id=0

На транковом порту настраиваем три влана, на акцессных портах vlan-tag отсутствует.

Теперь настраиваем правила форвардинга.

/interface ethernet switch rule
add new-dst-ports=ether2 ports=ether5 switch=switch1 vlan-header=present vlan-id=200
add new-dst-ports=ether3 ports=ether5 switch=switch1 vlan-header=present vlan-id=300
add new-dst-ports=ether4 ports=ether5 switch=switch1 vlan-header=present vlan-id=400
add new-dst-ports=ether5 new-vlan-id=200 ports=ether2 switch=switch1 vlan-header=not-present
add new-dst-ports=ether5 new-vlan-id=300 ports=ether3 switch=switch1 vlan-header=not-present
add new-dst-ports=ether5 new-vlan-id=400 ports=ether4 switch=switch1 vlan-header=not-present

Трафик с акцессных портов перенаправляем в соответствующий влан транкового порта.
Трафик с вланов транкового порта направляем в соответствущий акцессный порт.

На этом все. Получается немного заморочно, но Mikrotik – это все-таки роутер. Делать из него управляемый коммутатор – не лучшая идея, но все же иногда по-другому не получится.

UPD: С возможностью чипов коммутации Mikrotik можно ознакомиться, например, здесь.

25 Comments

  1. Mikrotik Cloud Router Switch CRS125-24G-1S-IN вот это уже настоящий коммутатор 3 уровня и уже потом роутер. Браво Mikrotik!

    1. Скажем так, это почти коммутатор 🙂 ОС у него роутерная и роутерная-же идеология никуда не делась.
      Как только железки появятся в зоне досягаемости – постараюсь описать первое впечатление.

      1. CRS125 вообще позиционируется как свич. Логично, что управление свич-группами могло измениться.
        А вот что документации нет… увы, но для микротика это нормально

        1. А можно разобрать CRS серию подобную настройку, так как выше сказал Pavel “вменяемой документации с примерами нет” по ссылке http://wiki.mikrotik.com/wiki/Manual:CRS_examples удается частично настроить но почему-то: или работает все но пропадает доступ к тику либо доступ есть но не работает свичевая коммутация как надо

  2. Подскажите пожалуйста.
    Раньше было так:
    Два провайдера шли в d-link des 3028, туда же были подключены сервера и клиенты.
    Гетвэй – freebsd – виртуалка на одном из сервров.
    все было организованно через три VLAN:
    VLAN1 дефолтный: 1-2, 4,6,8-28
    VLAN2: 1 (Hyrep v1), 3 (провайдер1), 5 (Hyper-v2)
    VLAN3: 1(Hyrep v1),5(Hyper-v2),7(провайдер2)
    Такой еще нюанс, на Hyper – V1 стоит asterisk и ему требуется линк от двух провайдеров (исходящие звонки – провайдер1, входящие – провайдер2)

    купили mikrotik. хочу чтобы он поднимал подключения. В него будут идти оба провайдера, сервера и d-link3028, но уже только для клиентов

    вопрос в том как также на микротике организовать VLANы как было раньше на d-linke?
    на микротике Ether1 и Ether2 будут access портами с Vlan3 и Vlan2 соответственно (и провайдером1 и 2)
    Ether3 и Ether4 будут trunk портами, на которых будут висеть сервера

      1. микротик должен поднимать подключения от двух провайдеров,
        раскидывать VLANы на сервера и интернет на свич (D-link) на котором будут висеть клиенты

        1. Тогда на ether3 и ether4 надо создать vlan с соответствующим id, а потом объединить их в bridge c ether1 и ether2 соответственно

  3. Как у Вас получилось добавить правило для управления виланами если 8327 чип не поддерживает в правилах функционал vlan-id, vlan-priority и new-vlan-id?
    При попытке добавить
    /interface ethernet switch rule
    add new-dst-ports=ether2 ports=ether5 switch=switch1 vlan-header=present vlan-id=200
    вылетает недвусмыленная ошибка
    failure: vlan-id, vlan-priority, new-vlan-id not supported for this switch
    Это собственно и вики написано, Вы сами то пробовали так виланы настраивать на Mikrotik (RB/750, RB/751, RB/2011) ?

    1. Нет, у меня на тот момент был другой девайс. в целом, ваше замечание верное, сейчас дополню статью

  4. Нет, у меня на тот момент был другой девайс.

    Сообщите пожалуйста какой именно был девайс.

  5. Всем привет! Помогите решить проблему! Не могу разобраться с коммутацией RB2011UIAS.
    На роутер приходят 2 провайдера eth1 и eth6, сеть разделена на vlan”ы: 10,11,88, которые висят на eth2, он же мастер порт. eth2 подключен в свитч и т.д., но на нём порты закончились и я хотел использовать микротик как умный свитч. На eth5 нужно сделать vlan 11 untagget(который висит на eth2), а на sfp1 передать все три влана (10,11,88 который висят на eth2) tagget. Если зайти в swich и выставить нужные vlanы, то ничего не меняется.
    Заранее спасибо!

    1. Во-первых, у RB2011 две свич-схемы, и засунуть их в одну не получится. следоватсльно придется использовать bridge.
      так что я думаю, вам лучше пересобрать эту схему на бриджах, и не трогать switch.

      1. На бридже пытался, но эффект тот же.
        Добавляю все, кроме провайдера порты в бридж, но нет результата

        1. Действовать нужно примерно так: На порт, где у вас транк, добавляете vlans в качестве саб-интерфейсов. Далее вланы бриджуете либо с портами, либо с другими вланами на других интерфейсах.

  6. Vlanы для каждого интерфейса создавать через меню switch или interfaces?
    Если я просто бриджую все порты, кроме провайдерских, то ничего не меняется. Т.е у меня на eth2 несколько вланов идут дальше в свитч, но на нём уже портов нет, поэтому я хочу свободный порт, к примеру, eth5 тоже использовать как свитч, чтоб вланы с eth2 работали так же и на eth5

      1. 0 R ether1-ISP2 ether 1500 1598 4074
        1 RS ;;; to TP-Link port 8
        ether2-LAN ether 1500 1598 4074
        2 R ether3 ether 1500 1598 4074
        3 ether4 ether 1500 1598 4074
        4 S ether5 ether 1500 1598 4074
        5 R ether6-ISP1 ether 1500 1598 2028
        6 ether7 ether 1500 1598 2028
        7 ether8 ether 1500 1598 2028
        8 ether9 ether 1500 1598 2028
        9 ether10 ether 1500 1598 2028
        10 sfp1 ether 1500 1598 4074

        13 R bridge_local bridge 1500 1598
        14 R ;;; Guest VLAN
        vlan10 vlan 1500 1594
        15 R ;;; Work VLAN
        vlan11 vlan 1500 1594
        16 R ;;; Management VLAN
        vlan88 vlan 1500 1594

        0 R ;;; Guest VLAN
        vlan10 1500 enabled 10 ether2-LAN
        1 R ;;; Work VLAN
        vlan11 1500 enabled 11 bridge_local
        2 R ;;; Management VLAN
        vlan88 1500 enabled 88 ether2-LAN

        Мне нужно, чтоб на 5м порту был access port с vlan 11. как мне это сделать?
        В данной комбинации не работает

  7. После ввода данной комбинации: add ports=ether2,ether3,ether4 switch=switch1 vlan-id=0 , выдало expected end of command (line 1 column 31), типа знак = здесь ни к месту. Даже на микротиках рб 260 всё настраивается легко и просто, но тут на рб 750 какие то танцы с бубном.

Leave a Reply