Вопрос: Пример настройки функции Q-in-Q (Double VLAN)

Ответ: 
Пример настройки функции Q-in-Q (Double VLAN) Скачать (PDF)
 

Функция Q-in-Q, также известная как Double VLAN, 802.1Q Tunneling, VLAN Tunneling, соответствует стандарту IEEE 802.1ad, который является расширением стандарта IEEE 802.1Q. Она позволяет добавлять в маркированные кадры Ethernet второй тег IEEE 802.1Q.

Инкапсуляция кадра Ethernet вторым тегом происходит следующим образом: тег, содержащий идентификатор VLAN сети провайдера SP-VLAN ID (внешний тег) вставляется перед внутренним тегом, содержащим клиентский идентификатор VLAN – CVLAN ID. Передача кадров в сети провайдера осуществляется только на основе внешнего тега SP-VLAN ID, внутренний тег пользовательской сети CVLAN ID при этом скрыт.

Существует две реализации функции Q-in-Q: Port-based Q-in-Q и Selective Q-in-Q.

Функция Port-based Q-in-Q по умолчанию присваивает любому кадру, поступившему на порт доступа граничного коммутатора провайдера идентификатор SP-VLAN, равный идентификатору PVID порта. Порт маркирует кадр независимо от того, является он маркированным или немаркированным. При поступлении маркированного кадра в него добавляется второй тег с идентификатором, равным SP‑VLAN. Если на порт пришёл немаркированный кадр, в него добавляется только тег с SP-VLAN порта.

Функция Selective Q-in-Q является более гибкой по сравнению с Port-based Q-in-Q.

Она позволяет:

  • маркировать кадры внешними тегами с различными идентификаторами SP-VLAN в зависимости от значений внутренних идентификаторов C-VLAN;
  • задавать приоритеты обработки кадров внешних SP-VLAN на основе значений приоритетов внутренних пользовательских C-VLAN;
  • добавлять к немаркированным пользовательским кадрам помимо внешнего тега SP-VLAN внутренний тег C-VLAN.  
В теге VLAN имеется поле идентификатора протокола тега (TPID, Tag Protocol IDentifier), который определяет тип протокола тега. По умолчанию значение этого поля для стандарта IEEE 802.1Q равно 0x8100.
 
На устройствах разных производителей TPID внешнего тега VLAN кадров Q-in-Q может иметь разные значения по умолчанию. Для того чтобы кадры Q-in-Q могли передаваться по общедоступным сетям через устройства разных производителей, рекомендуется использовать значение TPID внешнего тега, равное 0x88A8, согласно стандарту IEEE 802.1ad.
 
Все порты граничного коммутатора, на котором используется функция Port‑based Q‑in-Q или Selective Q-in-Q, должны быть настроены как порты доступа (UNI) или Uplink-порты (NNI):
  • UNI (User-to-Network Interface) — эта роль назначается портам, через которые будет осуществляться взаимодействие граничного коммутатора провайдера с клиентскими сетями.
  • NNI (Network-to-Network Interface) — эта роль назначается портам, которые подключаются к внутренней сети провайдера или другим граничным коммутаторам.
Функция Selective Q-in-Q позволяет добавлять в кадры различные внешние теги VLAN, основываясь на значениях внутренних тегов. Для этого на портах UNI граничного коммутатора необходимо задать правила соответствия идентификаторов C-VLAN идентификаторам SP-VLAN (vlan translation).
 
Помимо этого на коммутаторах D-Link с поддержкой функции Q-in-Q, можно активировать режим Missdrop, позволяющий отбрасывать кадры, не подходящие ни под одно из правил соответствия идентификаторов. При настройке Port-based Q-in-Q, режим Missdrop надо отключать, чтобы порт коммутатора мог принимать кадры не подходящие ни под одно из правил vlan translation. В этом случае входящим кадрам будет присваиваться внешний тег равный PVID соответствующего порта UNI.
 
Значение приоритета внешнего тега по умолчанию равно значению приоритета внутреннего тега, если кадр является маркированным, или не сделаны соответствующие настройки. Если приоритет в полученном кадре отсутствует, то в качестве приоритета вешнего тега будет использоваться приоритет соответствующего входного порта UNI.
 
Примечание к настройке
Рассматриваемый пример настройки подходит для следующих серий коммутаторов: DGS-1520, DGS-3130, DGS-3630, DXS-3610.
 
Задача 1
К сети провайдера услуг подключены два клиента. Каждый из них использует свою нумерацию VLAN. Необходимо обеспечить передачу маркированного трафика через сеть провайдера.
 
Решить задачу можно использованием функции Port-Based Q-in-Q VLAN, которая позволяет добавить в передаваемый в сети провайдера трафик уникальный идентификатор VLAN, присвоенный клиенту.
 
Схема сети показана на рисунке 1.
 
Каждому клиенту провайдером присвоен уникальный идентификатор VLAN: SP-VLAN 50 для клиента A и SP-VLAN 100 для клиента B. При передаче кадра из клиентской сети в сеть провайдера в его заголовок будет добавляться второй тег 802.1Q: для сети А  – SP-VLAN 100, для сети В – SP-VLAN 200. При передаче кадра из сети провайдера в клиентскую сеть, второй тег будет удаляться граничным коммутатором.
 
Примечание
Функцию Q-in-Q VLAN необходимо настраивать только на устройствах сети провайдера услуг.
 
 
 
Рис. 1 Схема подключения
 
Настройка коммутаторов 1 и 2
  1. Создайте SP-VLAN 100 и 200:
Switch# configure terminal
Switch(config)# vlan 100
Switch(config-vlan)# exit
Switch(config)# vlan 200
Switch(config-vlan)# exit
 
  1. Настройте UNI-порты в SP-VLAN:
Switch(config)# interface ethernet 1/0/1
Switch(config-if)# switchport mode dot1q-tunnel
Switch(config-if)# switchport access vlan 100
Switch(config-if)# no vlan mapping miss drop
Switch(config-if)# exit
Switch(config)# interface range ethernet 1/0/19
Switch(config-if)# switchport mode dot1q-tunnel
Switch(config-if)# switchport access vlan 200
Switch(config-if)# no vlan mapping miss drop
Switch(config-if)# exit
  1. Настройте NNI-порты в SP-VLAN:
Switch(config)# interface range ethernet 1/0/25
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan 100
Switch(config-if)# switchport trunk allowed vlan add 200
Switch(config-if)# dot1q tunneling ethertype 0x88a8
Switch(config-if)# end
 
Настройка коммутаторов 3, 4, 5 и 6
  1. Создайте новые VLAN и добавьте в них маркированные и немаркированные порты:
Switch# configure terminal
Switch(config)# vlan 10,20,30
Switch(config-vlan)#exit
Switch(config)# interface range ethernet 1/0/1-8
Switch(config-if-range)# switchport mode access
Switch(config-if-range)# switchport access vlan 10
Switch(config-if-range)# exit
Switch(config)# interface range ethernet 1/0/9-16
Switch(config-if-range)# switchport mode access
Switch(config-if-range)# switchport access vlan 20
Switch(config-if-range)# exit
Switch(config)# interface range ethernet 1/0/17-22
Switch(config-if-range)# switchport mode access
Switch(config-if-range)# switchport access vlan 30
Switch(config-if-range)# exit
Switch(config)#interface ethernet 1/0/23
Switch(config-if)#switchport mode trunk
Switch(config-if)#end
 
Примечание
Проверить настройку функции Q-in-Q VLAN можно командой show dot1q-tunnel
Проверить настройки VLAN можно командой show vlan
 
Задача 2
К сети провайдера услуг подключены два клиента. Каждый из них использует свою нумерацию VLAN. Необходимо обеспечить передачу маркированного трафика через сеть провайдера. Провайдер хочет назначать уникальный идентификатор SP-VLAN в зависимости от значения тега C-VLAN.
 
Решить задачу можно использованием функции Selective Q-in-Q VLAN, которая позволяет добавить в передаваемый в сети провайдера трафик уникальный идентификатор VLAN, в зависимости от значения тега VLAN клиента.
 
Схема сети показана на рисунке 2.
 
Каждому клиенту провайдером назначен уникальный идентификатор: SP-VLAN 1000 для клиента C-VLAN 200 и SP-VLAN 1001 для клиента C-VLAN 300.  Порты 1/0/9 обоих граничных коммутаторов служат для подключения к пользовательским сетям (UNI-порты), передача данных в сеть провайдера осуществляется через порты 1/0/25 (NNI-порты).
 
Примечание
Функцию Q-in-Q VLAN необходимо настраивать только на устройствах сети провайдера услуг.
 
 
 
Рис. 2 Схема подключения
 
Настройка коммутаторов 1 и 2
  1. Создайте SP-VLAN 1000 и 1001:
Switch# configure terminal
Switch(config)# vlan 1000
Switch(config-vlan)# exit
Switch(config)# vlan 1001
Switch(config-vlan)# exit
  1. Настройте UNI-порты в SP-VLAN:
Switch(config)# interface ethernet 1/0/9
Switch(config-if)# switchport mode dot1q-tunnel
Switch(config-if)# switchport hybrid allowed vlan untagged 1000,1001
Switch(config-if)# switchport vlan mapping original-vlan 200 dot1q-tunnel 1000
Switch(config-if)# switchport vlan mapping original-vlan 300 dot1q-tunnel 1001
Switch (config-if-range)# exit
  1. Настройте NNI-порты в SP-VLAN:
Switch(config)# interface range ethernet 1/0/25
Switch(config-if)# switchport mode trunk
Switch(config-if)# switchport trunk allowed vlan 1000
Switch(config-if)# switchport trunk allowed vlan add 1001
Switch(config-if)# dot1q tunneling ethertype 0x88a8
Switch(config-if)# end
 
Настройка коммутаторов 3 и 4
  1. Создайте новые VLAN и добавьте в них маркированные и немаркированные порты:
Switch# configure terminal
Switch(config)# vlan 200,300
Switch(config-vlan)#exit
Switch(config)# interface range ethernet 1/0/1-12
Switch(config-if-range)# switchport mode access
Switch(config-if-range)# switchport access vlan 200
Switch(config-if-range)# exit
Switch(config)# interface range ethernet 1/0/13-24
Switch(config-if-range)# switchport mode access
Switch(config-if-range)# switchport access vlan 300
Switch(config-if-range)# exit
Switch(config)#interface ethernet 1/0/25
Switch(config-if)#switchport mode trunk
Switch(config-if)#end