Q-in-Q настройка в Cisco Catalyst 3750
Q-in-Q, так же это называют dot1q tunneling, это система двойного тегирования вланов. То есть, допустим у нас есть канал на некую техплощадку, на которой подключены клиенты, клиенты должны быть изолированы друг от друга с помощью vlan, но транспорт не позволяет обеспечить нужное количество вланов на каждого клиента, а владельцы транспорта дают один влан и как говорится крутись как хочешь. Вот для таких случаев замечательно подходит dot1q тунелирование, когда внутрь одного влана на входе упаковываются вланы, а на выходе транспорта распаковываются. Остается добавить, что не все виды коммутаторов поддерживают Q-in-Q, среди коммутаторов Cisco поддерживают Q-in-Q 35хх, 37xx, 45xx. Среди продуктов D-Link поддерживает Des-3825, тут Q-in-Q называется Double Vlan. И все коммутаторы производства ExtremeNetworks, они называют эту технологию vMan.
Схема коммутации для создания Q-in-Q будет выглядеть так:

На сервере (он является маршрутизатором для клиентов) терминируются все клиентские вланы(11,12, 13, 14, 15), порт GigabitEthernet 1/0/1 Switch 1, находится в режиме транка, и имеет такую конфигурацию:
interface GigabitEthernet1/0/1 switchport trunk encapsulation dot1q switchport trunk allowed vlan 11-15 switchport mode trunk speed nonegotiate no cdp enable spanning-tree bpdufilter enable spanning-tree bpduguard enable !
Порт GigabitEthernet1/0/2 соенденен со Switch 2 порт GigabitEthernet1/0/1, нужно это для того, что бы отдать пакеты в порт который будет заворачивать весь трафик в Q-in-Q и имеет такую конфигурацию:
interface GigabitEthernet1/0/2 switchport trunk encapsulation dot1q switchport trunk allowed vlan 11-15 switchport mode trunk speed nonegotiate no cdp enable spanning-tree bpdufilter enable spanning-tree bpduguard enable !
Порт Switch2 GigabitEthernet1/0/1 находится в режиме Q-in-Q, то есть все приходящие пакеты инкапсулирует во влан 10, и для всех устройств находящихся далее по цепочке виден только один влан, в нашем случае влан 10. А конфигурация порта GigabitEthernet1/0/1 на втором свитче будет такая:
configure terminal interface GigabitEthernet1/0/1 description -== Q-IN-Q ==- switchport access vlan 10 switchport mode dot1q-tunnel switchport nonegotiate no mdix auto no cdp enable spanning-tree bpdufilter enable spanning-tree bpduguard enable
Теперь все приходящее на этот порт будет упаковываться внутрь 10-го влана и соответственно выходить через порт GigabitEthernet1/0/28, его настройки будут такие:
interface GigabitEthernet1/0/28 switchport trunk encapsulation dot1q switchport trunk allowed vlan 10 switchport mode trunk speed nonegotiate no cdp enable spanning-tree bpdufilter enable spanning-tree bpduguard enable !
Далее идет оборудование компании предоставляющей транспорт до нашей техплощадки, на схеме это все оборудование обозначено как некое облако, о содержимом которого мы ничего не знаем, да и знать нам не надо.
На удаленной техплощадке наш влан приходит в порт GigabitEthernet1/0/28 Switch3 с конфигурацией идентичной настроенной на Switch 2 порт GigabitEthernet1/0/28.
interface GigabitEthernet1/0/28 switchport trunk encapsulation dot1q switchport trunk allowed vlan 10 switchport mode trunk speed nonegotiate no cdp enable spanning-tree bpdufilter enable spanning-tree bpduguard enable !
Трафик приходит на порт GigabitEthernet1/0/28 Switch3 имеющий двойной тег, то есть Q-in-Qшный, теперь его надо распаковать, соответственно порт GigabitEthernet1/0/1 находится в режиме Q-in-Q. Настройки его такие:
interface GigabitEthernet1/0/1 description -== Q-IN-Q ==- switchport access vlan 10 switchport mode dot1q-tunnel switchport nonegotiate no mdix auto no cdp enable spanning-tree bpdufilter enable spanning-tree bpduguard enable
Остался последний свитч Switch4, в который и включаются все клиенты. Со Switch3 он соенденен через порт GigabitEthernet1/0/1 со своей стороны и в GigabitEthernet1/0/1 на Switch3.
Настройки GigabitEthernet1/0/1 на Switch4 такие:
interface GigabitEthernet1/0/1 switchport trunk encapsulation dot1q switchport trunk allowed vlan 11-15 switchport mode trunk speed nonegotiate no cdp enable spanning-tree bpdufilter enable spanning-tree bpduguard enable
А настройки клиентских портов будут, для первого клиента во влан 11, порт GigabitEthernet1/0/2:
interface GigabitEthernet1/0/2 description -== FirstClient ==- switchport access vlan 11 switchport mode access
второго, подключенного в GigabitEthernet1/0/3, и ходящего по 12 влану, такие:
interface GigabitEthernet1/0/2 description -== SecondClient ==- switchport access vlan 12 switchport mode access
Ну и так далее, идентично для остальных клиентов.
На этом настройка закончена. Остается только добавить, что схему можно немного упростить физически, построив ее на основе 2 свичей вместо 4-х, для этого необходимо соорудить так называемый Q-in-Q Loop. Об этом я расскажу несколько позднее. И совсем необязательно применять для терминации клиентов равнозначные свитчи, им хватит и свитча попроще, но Q-in-Q прийдется строить все равно на базе как минимум Cisco Catalyst 35xx. Причем функция Q-in-Q в них не документирована, но работает.




By Yakimus, 21.12.2009 @ 19:29
> но Q-in-Q прийдется строить все равно на базе
> как минимум Cisco Catalyst 35xx. Причем функция
> Q-in-Q в них не документирована, но работает
Имеем свитч 3524
sw-sch32a_1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
sw-sch32a_1(config)#int g0/2
sw-sch32a_1(config-if)#switchport mode dot1q-tunnel
^
% Invalid input detected at ‘^’ marker.
=============
Т.е. не все 35хх подходят
м.б. минимум 355х ?
By Nickolay, 22.12.2009 @ 10:18
Отличная статья, просто без воды на живом примере – автору респект
By hilik, 25.12.2009 @ 22:50
У меня под управлением сейчас есть толькл 29XX и 37ХХ, проверить не могу. Поэтому и достоверно ответить не могу. А на предыдущей работе строил на 35-й, только вот на какой модели и с каким IOS не помню.
By Андрей, 30.12.2009 @ 19:35
>>Далее идет оборудование компании предоставляющей транспорт до нашей техплощадки, на схеме это все оборудование обозначено как некое облако, о содержимом которого мы ничего не знаем, да и знать нам не надо.
Тут сомнительно по-моему. Надо понимать что из себя представляет сеть оператора. Через EoMPLS вроде должно работать http://ccie-in-3-months.blogspot.com/2009/05/configuring-8021q-tunnels-over-vlan.html
Еще пишут люди что mtu надо увеличивать на 4 байта.
switch(config)#system mtu 1504
By hilik, 02.01.2010 @ 17:23
Честно говоря у меня в системе везде jumbo фреймы включены.
By Денис, 12.03.2010 @ 09:25
Добрый день.
Интересно, спасибо за статью.
А я правильно понял, что в случае таковой необходимости, будет достаточно 2х свитчей и кроссоверного шнура между парой портов на каждом из них? Или всё проще, и без физического вмешательства?
By hilik, 12.03.2010 @ 12:14
Шнур не обязательно кроссовер. Но физическое включение шнура в порт нужно.
By Ilya, 15.07.2010 @ 15:24
Вопрос. Провайдеру (внутри облака) надо поддерживать на транзитном оборудовании q-in-q или достаточно просто принять транк от свича пользователя (свич 2) и иметь mtu = 1504 ?
By hilik, 15.07.2010 @ 17:22
внутри облака – это обыкновенный влан.