Настройка QinQ (802.1ad VLAN Stacking): изоляция клиентских доменов
- Клиентские тегированные кадры VLAN дропаются при входе в магистральную сеть провайдера.
- Превышение размера стандартного кадра Ethernet (1518 байт) с появлением ошибок
Giants / Oversize drops. - Несовпадение меток протокола TPID (0x8100 vs 0x88a8) между оборудованием разных вендоров.
- L2-протоколы клиента (STP, CDP, LACP) перехватываются операторскими свитчами вместо прозрачного туннелирования.
1. Архитектура 802.1ad (QinQ VLAN Stacking)
QinQ упаковывает весь пользовательский фрейм со своим внутренним тегом (**Customer VLAN / C-VLAN**, EtherType `0x8100`) во второй внешний провайдерский тег (**Service VLAN / S-VLAN**, EtherType `0x88a8` или `0x8100`). Это позволяет передавать до 4096 клиентских сетей внутри одного S-VLAN провайдера.
2. Коррекция MTU магистрали
Двойной тег увеличивает заголовок Ethernet на 4 байта. На всех транковых интерфейсах провайдера MTU должен быть не менее 1504–1522 байт (System Jumbo MTU):
system mtu 92163. Конфигурация классического QinQ на Cisco Catalyst
! 1. Входной порт для клиента (Dot1q Tunnel Port)
interface GigabitEthernet0/1
description === Customer A Connection (All C-VLANs) ===
switchport access vlan 100 ! S-VLAN ID
switchport mode dot1q-tunnel
! Туннелирование служебных протоколов клиента
l2protocol-tunnel cdp
l2protocol-tunnel stp
l2protocol-tunnel vtp
l2protocol-tunnel lacp
no cdp enable
! 2. Магистральный порт в сторону ядра провайдера
interface TenGigabitEthernet0/0/1
description === Uplink to Core Trunk ===
switchport trunk encapsulation dot1q
switchport mode trunk
switchport trunk allowed vlan 1004. Настройка выборочного QinQ (Selective / Flexible QinQ)
Позволяет маппить конкретные C-VLAN в разные S-VLAN на одном порту:
interface GigabitEthernet0/2
description === Selective QinQ ===
service instance 10 ethernet
encapsulation dot1q 10-20
rewrite ingress tag push dot1q 200 symmetric
bridge-domain 2005. Альтернатива: Настройка 802.1ad QinQ на MikroTik RouterOS v7
# Добавление Service VLAN (S-VLAN 100) с EtherType 0x88a8
/interface vlan add name=s-vlan100 vlan-id=100 interface=ether1 use-service-tag=yes
# Добавление Customer VLAN (C-VLAN 10) поверх S-VLAN
/interface vlan add name=c-vlan10 vlan-id=10 interface=s-vlan100
# Назначение IP-адреса на клиентский субинтерфейс
/ip address add address=10.0.10.1/24 interface=c-vlan10 Частые вопросы (FAQ)
В чем разница между EtherType 0x8100 и 0x88a8?
0x8100 — стандартный идентификатор тега протокола 802.1Q (C-VLAN). 0x88a8 — официальный стандарт IEEE 802.1ad (Provider Bridging) для внешнего сервисного тега (S-VLAN).
Почему при включении dot1q-tunnel отключают протокол CDP?
Если коммутатор обрабатывает CDP локально, он поглотит эти кадры. Чтобы клиентские устройства на противоположных концах туннеля видели друг друга, локальный CDP отключают ('no cdp enable') и включают туннелирование: 'l2protocol-tunnel cdp'.
Что делает директива 'rewrite ingress tag push dot1q X symmetric'?
Она добавляет указанный внешний тег на входящие кадры (push) и автоматически снимает его (pop) на исходящих кадрах при выходе из сервисного инстанса.
Каков минимальный размер MTU для корректного пропуска QinQ трафика?
Минимум 1504 байта (1500 данных + 4 байта C-VLAN + 4 байта S-VLAN). В реальных сетях рекомендуется поднимать L2 MTU до 1548 или 9000 (Jumbo frames).