Июл 07 2009

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 будет выглядеть так:
net

На сервере (он является маршрутизатором для клиентов) терминируются все клиентские вланы(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 в них не документирована, но работает.

Добавить в закладки:

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru
  • 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

    внутри облака — это обыкновенный влан.

Other Links to this Post


Украинская Баннерная Сеть