Продолжаем серию заметок о Q-in-Q. В прошлый раз коснулись темы Selective Q-in-Q на примере модели DGS-3420-28SC. Сегодня попробуем разобраться с этим еще раз. :)
Описанная в прошлой заметке задача очень проста, потому давайте усложним ее. Представим, что нам надо завернуть во внешний тег (SP-VLAN) не выборочные VLAN, а целый диапазон.
Итак, задача: завернуть непрерывный диапазон VLAN с уровня доступа в одну общую VLAN на уровне агрегации, при этом протащив управляющую VLAN транзитом.
Схема сети:
На доступе используется коммутатор DES-3200-28. В портах с 1 по 24-й находятся клиенты, каждый в своей VLAN. Номера VLAN начинаются с 401 и в дальнейшем соответствуют номеру порта, т.е. продолжаются до 424.
На агрегации как и раньше используется коммутатор DGS-3420-28SC. Управляющий интерфейс также находится в VLAN 7. В качестве SP-VLAN используется VLAN с ID 101.
Как обычно, не забудем поменять outer_tpid, чтобы не потерять управление коммутатором:
config qinq ports 1-28 outer_tpid 0x8100
Теперь можно безопасно включить Q-in-Q:
enable qinq
Разрешим кадры большого размера:
enable jumbo_frame
Создадим VLAN, которая будет использоваться в качестве SP-VLAN:
create vlan 101 tag 101
config vlan 101 add tagged 20,28
Дальше у нас есть выбор - использовать профили или нет. Профили поддерживаются далеко не всеми моделями (DGS-3420-28SC поддерживает). Рассмотрим оба варианта.
Вариант с использованием профилей
Создадим профиль для Q-in-Q с номером 1:
create vlan_translation_profile 1
Добавим в профиль правило, согласно которому внешние VID в диапазоне 401-424 относятся к SP-VLAN 101
config vlan_translation_profile 1 add rule_id add svid 101 classify outer_vid 401-424
На самом деле профили позволяются классифицировать фреймы по многим признакам (source_mac, destination_mac, source_ipv4, destination_ipv4, outer_vid, 802.1p, ip_protocol, l4_src_port, l4_dest_port), но в данном случае мы будем классифицировать их по outer_vid.
Добавим правило* для трансляции управляющей VLAN в VLAN с тем же самым ID, т.е. без добавления внешнего тега SP-VLAN:
config vlan_translation_profile 1 add rule_id replace svid 7 classify outer_vid 7
Применим профиль для порта №20:
config qinq ports 20 add vlan_translation_profile 1
Сменим порту №20 в роль на UNI:
config qinq ports 20 role uni missdrop enable
Справочная информация из презентации D-Link:
* В реальных условиях мне не доводилось протаскивать управляющую VLAN через UNI порт в случае использования профилей, но теоретически это должно работать. :)
Вариант без использования профилей (подходит и для других моделей D-Link)
Создадим правило трансляции для диапазона VLAN:
create vlan_translation ports 20 add cvid 401-424 svid 101
Добавим правило для трансляции управляющей VLAN без добавления внешнего тега:
create vlan_translation ports 20 replace outer_vid 7 svid 7
Изменим роль порту №20 на UNI:
config qinq ports 20 role uni missdrop enable
Как видно, основное отличие от прошлого примера состоит в использовании диапазона вместо единичного номера VLAN. Ну и в этот раз мы включили missdrop enable, чтобы ограничить применение Q-in-Q только для явно заданных правил трансляции.
Описанная в прошлой заметке задача очень проста, потому давайте усложним ее. Представим, что нам надо завернуть во внешний тег (SP-VLAN) не выборочные VLAN, а целый диапазон.
Итак, задача: завернуть непрерывный диапазон VLAN с уровня доступа в одну общую VLAN на уровне агрегации, при этом протащив управляющую VLAN транзитом.
Схема сети:
На доступе используется коммутатор DES-3200-28. В портах с 1 по 24-й находятся клиенты, каждый в своей VLAN. Номера VLAN начинаются с 401 и в дальнейшем соответствуют номеру порта, т.е. продолжаются до 424.
На агрегации как и раньше используется коммутатор DGS-3420-28SC. Управляющий интерфейс также находится в VLAN 7. В качестве SP-VLAN используется VLAN с ID 101.
Как обычно, не забудем поменять outer_tpid, чтобы не потерять управление коммутатором:
config qinq ports 1-28 outer_tpid 0x8100
Теперь можно безопасно включить Q-in-Q:
enable qinq
Разрешим кадры большого размера:
enable jumbo_frame
Создадим VLAN, которая будет использоваться в качестве SP-VLAN:
create vlan 101 tag 101
config vlan 101 add tagged 20,28
Дальше у нас есть выбор - использовать профили или нет. Профили поддерживаются далеко не всеми моделями (DGS-3420-28SC поддерживает). Рассмотрим оба варианта.
Вариант с использованием профилей
Создадим профиль для Q-in-Q с номером 1:
create vlan_translation_profile 1
Добавим в профиль правило, согласно которому внешние VID в диапазоне 401-424 относятся к SP-VLAN 101
config vlan_translation_profile 1 add rule_id add svid 101 classify outer_vid 401-424
На самом деле профили позволяются классифицировать фреймы по многим признакам (source_mac, destination_mac, source_ipv4, destination_ipv4, outer_vid, 802.1p, ip_protocol, l4_src_port, l4_dest_port), но в данном случае мы будем классифицировать их по outer_vid.
Добавим правило* для трансляции управляющей VLAN в VLAN с тем же самым ID, т.е. без добавления внешнего тега SP-VLAN:
config vlan_translation_profile 1 add rule_id replace svid 7 classify outer_vid 7
Применим профиль для порта №20:
config qinq ports 20 add vlan_translation_profile 1
Сменим порту №20 в роль на UNI:
config qinq ports 20 role uni missdrop enable
Справочная информация из презентации D-Link:
- Параметр «missdrop enable» означает, что добавление внешнего тега (SP-VLAN) будет осуществляться только согласно правилам vlan_translation.
- Параметр «missdrop disable» означает, что добавление внешнего тега (SP-VLAN) будет осуществляться согласно правилам vlan_translation, а к трафику не попавшему под правила vlan_translation будет добавлятся внешний тег (SP-VLAN) равный PVID порта, т.е. SP-VID = PVID.
* В реальных условиях мне не доводилось протаскивать управляющую VLAN через UNI порт в случае использования профилей, но теоретически это должно работать. :)
Вариант без использования профилей (подходит и для других моделей D-Link)
Создадим правило трансляции для диапазона VLAN:
create vlan_translation ports 20 add cvid 401-424 svid 101
Добавим правило для трансляции управляющей VLAN без добавления внешнего тега:
create vlan_translation ports 20 replace outer_vid 7 svid 7
Изменим роль порту №20 на UNI:
config qinq ports 20 role uni missdrop enable
Как видно, основное отличие от прошлого примера состоит в использовании диапазона вместо единичного номера VLAN. Ну и в этот раз мы включили missdrop enable, чтобы ограничить применение Q-in-Q только для явно заданных правил трансляции.