Cisco QinQ (IEEE 802.1ad): полное руководство для провайдеров и корпоративных сетей
Создана 16.05.2026
Отредактирована 07.09.2026
Отредактирована 07.09.2026
Введение: почему 4094 VLAN — это мало?
Представьте, что вы — интернет-провайдер. У вас 5000 клиентов, и каждому нужно передать несколько VLAN между его офисами.
Проблема: стандартный тег VLAN содержит всего 12 бит, что даёт максимум 4094 идентификатора (VLAN ID 0 и 4095 зарезервированы).
А если у каждого клиента своя нумерация VLAN (у одного — 10, 20, у другого — тоже 10, 20)? Их трафик неизбежно перемешается.
Решение — QinQ (читается «кью-ин-кью», в русскоязычной среде часто говорят «вин-вин»). Технология, которая позволяет вложить один VLAN-тег в другой, как матрёшку.
Официальное название: IEEE 802.1ad (сейчас интегрирован в общий стандарт 802.1Q).
Как работает QinQ на уровне кадра
Обычный Ethernet-кадр с одним тегом выглядит так:
MAC-адреса → EtherType (0x8100) → Тег VLAN (C-Tag) → Данные
При использовании QinQ провайдер добавляет внешний тег поверх существующего.
Вот как это выглядит на уровне байтов:
Два уровня тегов
| Тег | Кому принадлежит | Для чего |
|---|---|---|
| C-Tag (Customer Tag) | Клиенту | Клиент управляет своими VLAN (например, 10, 20, 100) и даже не сообщает провайдеру их номера |
| S-Tag (Service Tag) | Провайдеру | Изолирует трафик одного клиента от другого в магистрали оператора |
Ключевой момент: клиент не знает о существовании внешнего тега. Для него его кадры идут как будто по прямому проводу между офисами.
Зачем нужен QinQ: 3 основных сценария
1. Решение проблемы масштабирования
Провайдер может обслуживать тысячи клиентов, у каждого из которых своя внутренняя нумерация VLAN, и они не пересекаются между собой благодаря внешнему тегу.
2. Прозрачность для клиента (VLAN Transparency)
Клиент продолжает использовать свои VLAN на своих коммутаторах, а провайдерская сеть для него — невидимый «туннель». Это критически важно для L2VPN-услуг.
3. Увеличение адресного пространства
Теоретически комбинация внешнего и внутреннего тегов даёт до ~16 миллионов вариантов (4094 × 4094).
На практике ограничения накладывают аппаратные таблицы коммутаторов и размер MAC-таблиц, но для большинства задач этого достаточно с большим запасом.
Два типа QinQ в оборудовании Cisco
Layer 2 QinQ (Туннелирование 802.1Q)
Классический режим. Трафик коммутируется на втором уровне модели OSI.
- Порт клиента настраивается как dot1q-tunnel.
- Часто используется вместе с L2PT (Layer 2 Protocol Tunneling), чтобы пробрасывать клиентские протоколы (CDP, STP, VTP) через сеть оператора.
Где применяется: в сетях доступа провайдеров, для подключения корпоративных клиентов с собственными VLAN.
Layer 3 QinQ
Более сложный сценарий. Позволяет маршрутизировать трафик с двойными тегами.
- Используется в L3VPN.
- Позволяет создать огромное количество виртуальных интерфейсов (до 4094×4094) на одном физическом порту.
- Требует поддержки со стороны аппаратуры (обычно на более старших моделях Catalyst и Nexus).
Где применяется: в ядре операторских сетей, при организации мультитенантных VPN.
QinQ vs Private VLAN: в чём разница?
Эти технологии принципиально разные, хотя обе работают с VLAN.
| | QinQ (802.1ad) | Private VLAN (PVLAN) |
|---|---|---|
| Суть | Инкапсуляция — добавление второго тега | Фильтрация трафика внутри одного VLAN |
| Задача | Масштабировать сеть провайдера, разделять клиентов на магистрали | Изолировать хосты друг от друга на коммутаторе доступа |
| Уровень | Между клиентом и провайдером | Внутри одного сегмента L2 |
| Пример | Клиент A и клиент B используют VLAN 10, но не мешают друг другу | Хосты в одном VLAN не видят друг друга, но видят шлюз |
Простое запоминание:
- QinQ — добавляет ещё один слой.
- PVLAN — ограничивает видимость внутри одного слоя.
Реальный сценарий использования QinQ в дата-центре
Представим, что клиент решил разместить 2 сервера в дата-центре провайдера. Серверы подключены напрямую к портам коммутаторов провайдера (своего сетевого оборудования у клиента нет). Сетевые инженеры провайдера выделяют клиенту только один VLAN, в нашем примере VLAN 100. Но через какое-то время клиенту захотелось добавить тэгом vlan 10 в его локальную сеть. Задача провайдера — сделать так, чтобы серверы "видели" друг друга через VLAN 10, но при этом трафик этого клиента был изолирован от трафика других клиентов.
У провайдера очень много клиентов и на всех клиентов не хватит VLAN'ов, так как один клиент может запросить 10 VLAN'ов, а то и больше. Провайдер выделяет только один VLAN для каждого клиента, провайдер это предвидел и установил коммутаторы с поддержкой QinQ).
ОБРАТИТЕ ВНИМАНИЕ: настраивать dot1q-tunnel лучше в удобное для клиента время, так как при настройке связность между серверами будет пропадать.
Пошаговое объяснение сценария
| Шаг | Действие | Результат |
|---|---|---|
| 1 | Сервер 1 отправляет кадр с VLAN 10 (C-Tag) | Кадр с одним тегом попадает на порт провайдера |
| 2 | Порт провайдера в режиме dot1q-tunnel добавляет внешний тег VLAN 100 (S-Tag) | Кадр получает два тега: 100 → 10 |
| 3 | Кадр с двумя тегами идёт по магистрали дата-центра | Трафик изолирован от других клиентов благодаря S-Tag 100 |
| 4 | На порту, где подключен Сервер 2, внешний тег 100 снимается | Кадр снова становится с одним тегом (VLAN 10) |
| 5 | Сервер 2 получает кадр с VLAN 10 | Серверы "видят" друг друга, как будто они в одной сети |
Ключевые выводы из этого сценария
- Клиенту не нужно своё оборудование — достаточно подключить серверы к портам провайдера.
- Клиент продолжает использовать свои VLAN (в примере — VLAN 10) и даже может не знать о существовании внешнего тега.
- Провайдер изолирует клиентов с помощью S-Tag (VLAN 100) — даже если у двух клиентов одинаковые внутренние VLAN, их трафик не пересечётся.
- Серверы получают L2-связность между стойками, как если бы они были подключены к одному коммутатору.
Образная аналогия: матрёшка
Если всё это звучит сложно, запомните простую аналогию:
Пример настройки QinQ на Cisco IOS
Допустим, клиент присылает трафик с собственными тегами VLAN (trunk).
На стороне провайдера порт на коммутаторе доступа настраивается как туннельный.
Конфигурация порта доступа провайдера:
interface Ethernet1/1 description Connecting the client “LLC Romashka” switchport switchport mode dot1q-tunnel switchport access vlan 100 no shutdown
Команда ниже отображает все порты, работающие в режиме dot1q-tunnel. При необходимости можно указать интерфейс или диапазон интерфейсов для отображения.
switch# show dot1q-tunnel ------------------------------------------------------------------------------- Interface ------------------------------------------------------------------------------- Ethernet1/1 Ethernet1/7 Ethernet1/8 Ethernet1/11
Что при этом происходит:
- Клиент отправляет кадр с тегом VLAN 10.
- Коммутатор Cisco принимает его на порту dot1q-tunnel.
- Добавляет внешний тег VLAN 100 (S-Tag).
- В магистрали провайдера кадр идёт с двумя тегами: 100 → 10.
- На выходе, у другого клиентского порта, внешний тег 100 снимается, и клиент получает свой исходный кадр с тегом 10.
Важно: несмотря на команду switchport access vlan 100, порт принимает тегированные кадры. Это особенность режима dot1q-tunnel.
Критическое замечание: MTU
При добавлении второго тега (4 байта) кадр увеличивается.
Если в транзитной сети не увеличить MTU, кадры будут отбрасываться.
Рекомендация:
- На всех транзитных портах и магистральных линках установите MTU не менее 1504 байт (а лучше 9216 для поддержки Jumbo-кадров).
- В Cisco: mtu 1504 или mtu 9216.
Нюансы совместимости: EtherType
В зависимости от модели оборудования (старые Catalyst, Nexus, разные поколения) внешний тег может использовать разные значения EtherType:
| Значение | Стандарт / Происхождение | Примечание |
|---|---|---|
| 0x8100 | Стандартный 802.1Q | Обычно используется для C-Tag, но может быть и для S-Tag в старых реализациях |
| 0x88a8 | IEEE 802.1ad (официальный стандарт) | Рекомендуемый для S-Tag в современных сетях |
| 0x9100 | Проприетарный (Cisco, Extreme) | Встречается на старом оборудовании, лучше избегать |
Практический совет: при стыковке оборудования разных вендоров или разных поколений Cisco всегда проверяйте EtherType на обеих сторонах. Несовпадение приведёт к тому, что трафик будет интерпретироваться как обычные данные или отбрасываться.
Расширенный сценарий: Selective QinQ
В некоторых случаях требуется добавлять внешний тег не ко всем кадрам, а только к определённым внутренним VLAN.
Например:
- Клиент присылает VLAN 10 и 20.
- Для VLAN 10 нужен S-Tag 100, а для VLAN 20 — S-Tag 200.
Это называется Selective QinQ и реализуется через vlan dot1q tag native или политики классификации на более продвинутых платформах (Nexus, ASR).
Когда НЕ стоит использовать QinQ
- В небольших корпоративных сетях, где 4094 VLAN более чем достаточно.
- Если оборудование не поддерживает увеличенный MTU.
- При необходимости глубокого анализа трафика (например, NetFlow) — двойные теги усложняют идентификацию потоков.
- Если у вас много устаревшего оборудования, которое не понимает EtherType 0x88a8.
Заключение: краткий итог
| Параметр | Описание |
|---|---|
| Что делает | Добавляет внешний VLAN-тег к существующему |
| Стандарт | IEEE 802.1ad (теперь часть 802.1Q) |
| Где применяется | В сетях провайдеров, L2VPN, мультитенантных средах |
| Основное преимущество | Решает проблему 4094 VLAN и обеспечивает изоляцию клиентов |
| Главное ограничение | Требует увеличения MTU и согласования EtherType |
QinQ — это не просто «ещё один тег». Это фундаментальная технология, которая позволяет строить масштабируемые операторские сети, не заставляя клиентов менять свою внутреннюю сетевую архитектуру.
Дополнительные материалы (для углублённого изучения)
- Cisco: Configuring 802.1Q Tunneling (QinQ)
- IEEE 802.1Q-2022 (раздел про 802.1ad)
- Selective QinQ на платформах Cisco Nexus