Пример настройки Port based Q-in-Q на различных моделях коммутаторов D-Link и включение в такой сети протокола Spanning Tree.

Описание.
Коммутаторы: DES-3016_61, DES-3200-26_88, DES-3200-26_95, DES-3200-26_94, DES-3200-26_96 являются клиентскими. Сконфигурированы одинаково. На них создано два вилана с тегами 2 и 3. Порт 16 является тегированным членом обеих виланов, порт 10 нетегированным членом 2-го вилана, а порт 11 третьего.

Коммутаторы: DES-3028_84, DES-3028_87, DES-3028_82 являются операторскими коммутаторами доступа. Их задачей является добавление операторского тега к пакетам. Сконфигурированы одинаково. Порт 25 является абонентским и на нём добавляется операторский тег. Порт 26 смотрит в сторону ядра и оттуда выходят пакеты уже с двумя тегами.

Основная идея настройки Q-in-Q на DES-3028 заключается в следующем:

  1. Нужно включить Q-in-Q

enable qinq

  1. Создать виллан с операторским тегом

create vlan sp100 tag 100

  1. Добавить в операторский вилан абонентский порт как нетегированный

config vlan sp100 add untagged 25

  1. Добавить в операторский вилан аплинк порт как тегированный

config vlan sp100 add tagged 26

  1. Указать, что абонентский порт является uni портом

config qinq ports  25 role uni tpid  0x88A8

(В принципе, tpid может иметь другое значение, например: 9100, 9200, хотя стандарт рекомендует использовать именно 88а8, но в данной ситуации ни в коем случае нельзя использовать 8100. 8100 – это tpid обычного 802.1Q. Также, нужно учитывать, что  некоторые коммутаторы, например, DES-3028/52 не позволяют указать значение отличное от 0x88A8)

  1. Указать, что аплинк порт является nni портом

config qinq ports  26 role nni tpid  0x88A8

В данной схеме коммутатор DGS-3627G_81 является коммутатором уровня агрегации. Аналогично серии DGS-3600 настраивается большинство современных серий коммутаторов: DGS-3620, DGS-3420, DGS-3400, DGS-3120, DES-3810, DES-3528/52, DES-3200. Иногда, правда, есть некоторые различия, о которых будет рассказано ниже. К данному коммутатору к портам 20-23 подключаются коммутаторы уровня доступа, с которых пакеты уже приходят с тегами Q-in-Q. Т.е. ему самому на этих портах не нужно вставлять в них тег Q-in-Q. Настройка этих портов производится следующим образом:

  1. Нужно включить Q-in-Q

enable qinq

  1. Создать вилан с операторским тегом

create vlan sp100 tag 100

  1. Добавить в операторский вилан аплинковые порты как тегированные

config vlan sp100 add tagged 20-23

  1. Указать, что аплинковые порты являются nni портами

config qinq ports 20-23 role nni tpid  0x88A8

Если требуется непосредственно к данному коммутатору подключать абонентские коммутаторы, т.е. что бы именно этот коммутатор добавлял второй тег, то этом случае необходимо (На данном коммутаторе таким образом настроен 24-й порт):

  1. Добавить в операторский вилан пользовательский порт как тегированный

config vlan sp100 add tagged 24

(Можно добавить и как нетегированный, но в этом случае на некоторых моделях коммутаторов на данном порту необходимо отключать ingress checking)

  1. Указать, что пользовательский порт является uni портом с обязательным параметром missdrop disable

config qinq ports 24 role uni missdrop disable tpid 0x88A8

  1. При помощи параметра PVID указать какое значение тега добавлять на этом порту

config gvrp 24 pvid 100 (На: DGS-3600, DGS-3400, DES-3200/A,B)

config port_vlan 24 pvid 100 (На: DGS-3620, DGS-3420, DGS-3120, DES-3810, DES-3528/52, DES-3200/C1)

В данной схеме коммутатор DGS-3610-26G_83 является коммутатором уровня агрегации (аналогично настраивается DES-7200). К данному коммутатору к портам 23-24 подключаются коммутаторы уровня доступа, с которых пакеты уже приходят с тегами Q-in-Q. Т.е. ему самому на этих портах не нужно вставлять в них тег Q-in-Q.

Основная идея настройки Q-in-Q на DGS-3610-26G заключается в следующем:

  1. Создать вилан с операторским тегом

vlan 100

  1. Указать, что аплинковые порты являются nni портами

switchport mode uplink

  1. Задать для аплинковых портов тоже значение tpid, что и для всех остальных коммутаторов. В данной ситуации значение может быть только 0x88a8, так как коммутаторы DES-3028 с другими значениями работать не умеют.

frame-tag tpid 0x88a8

Если требуется непосредственно к данному коммутатору подключать абонентские коммутаторы, т.е. что бы именно этот коммутатор добавлял второй тег, то это делается следующим образом:

  1. На абонентском порту указать, что нужно добавлять тег, т.е. он является uni

switchport mode dot1q-tunnel

  1. Указать значение добавляемого тега

switchport access vlan 100

Коммутатор DGS-3100-24TG не поддерживает Q-in-Q, но что бы тегированные пакеты прошли через него транзитом, на нём нужно включить поддержку джумбо фреймов.

enable jumbo_frame

Теперь о том, как запустить в этой схеме STP. Наиболее правильным вариантом будет использование протокола MSTP и настройка его работы в операторском/операторских вилане/виланах.

  1. Что бы во всей этой схеме работал MSTP нужно создать соответствующий инстанс, например 1

create stp instance_id 1

  1. Включить операторский вилан в этот инстанс

config stp instance_id 1 add_vlan 100

  1. Указать, что используется протокол MSTP

config stp version mstp

  1. Включить stp

enable stp

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