Пример настройки 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 заключается в следующем:
- Нужно включить Q-in-Q
enable qinq
- Создать виллан с операторским тегом
create vlan sp100 tag 100
- Добавить в операторский вилан абонентский порт как нетегированный
config vlan sp100 add untagged 25
- Добавить в операторский вилан аплинк порт как тегированный
config vlan sp100 add tagged 26
- Указать, что абонентский порт является uni портом
config qinq ports 25 role uni tpid 0x88A8
(В принципе, tpid может иметь другое значение, например: 9100, 9200, хотя стандарт рекомендует использовать именно 88а8, но в данной ситуации ни в коем случае нельзя использовать 8100. 8100 – это tpid обычного 802.1Q. Также, нужно учитывать, что некоторые коммутаторы, например, DES-3028/52 не позволяют указать значение отличное от 0x88A8)
- Указать, что аплинк порт является 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. Настройка этих портов производится следующим образом:
- Нужно включить Q-in-Q
enable qinq
- Создать вилан с операторским тегом
create vlan sp100 tag 100
- Добавить в операторский вилан аплинковые порты как тегированные
config vlan sp100 add tagged 20-23
- Указать, что аплинковые порты являются nni портами
config qinq ports 20-23 role nni tpid 0x88A8
Если требуется непосредственно к данному коммутатору подключать абонентские коммутаторы, т.е. что бы именно этот коммутатор добавлял второй тег, то этом случае необходимо (На данном коммутаторе таким образом настроен 24-й порт):
- Добавить в операторский вилан пользовательский порт как тегированный
config vlan sp100 add tagged 24
(Можно добавить и как нетегированный, но в этом случае на некоторых моделях коммутаторов на данном порту необходимо отключать ingress checking)
- Указать, что пользовательский порт является uni портом с обязательным параметром missdrop disable
config qinq ports 24 role uni missdrop disable tpid 0x88A8
- При помощи параметра 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 заключается в следующем:
- Создать вилан с операторским тегом
vlan 100
- Указать, что аплинковые порты являются nni портами
switchport mode uplink
- Задать для аплинковых портов тоже значение tpid, что и для всех остальных коммутаторов. В данной ситуации значение может быть только 0x88a8, так как коммутаторы DES-3028 с другими значениями работать не умеют.
frame-tag tpid 0x88a8
Если требуется непосредственно к данному коммутатору подключать абонентские коммутаторы, т.е. что бы именно этот коммутатор добавлял второй тег, то это делается следующим образом:
- На абонентском порту указать, что нужно добавлять тег, т.е. он является uni
switchport mode dot1q-tunnel
- Указать значение добавляемого тега
switchport access vlan 100
Коммутатор DGS-3100-24TG не поддерживает Q-in-Q, но что бы тегированные пакеты прошли через него транзитом, на нём нужно включить поддержку джумбо фреймов.
enable jumbo_frame
Теперь о том, как запустить в этой схеме STP. Наиболее правильным вариантом будет использование протокола MSTP и настройка его работы в операторском/операторских вилане/виланах.
- Что бы во всей этой схеме работал MSTP нужно создать соответствующий инстанс, например 1
create stp instance_id 1
- Включить операторский вилан в этот инстанс
config stp instance_id 1 add_vlan 100
- Указать, что используется протокол MSTP
config stp version mstp
- Включить stp
enable stp