Данная функция позволяет на основе сконфигурированных правил фильтрации по номерам внутренних VLAN (Customer VLAN) производить добавление внешнего SPVLAN (Service Provider’s VLAN), подменять Customer VLAN, а также запрещать прохождение трафика.

Существует 2 основных закона (аксиомы), которые четко объясняют сущность работы тегов (меток) VLAN:

1) Тег всегда снимается на выходе, добавляется на входе порта.

2) Если на входе с тегом произведено действие, то на выходе должно быть выполнено обратное действие. Например, если на входе добавили, то на выходе - сняли.

Примечание. Наличие хотя бы одного правила Selective Q-in-Q на интерфейсе запрещает включение функции логирования широковещательного шторма на этом интерфейсе.

Рассмотрим несколько типовых примеров настройки SQinQ

1) Задача: пропустить vlan 31 без изменения, на остальной трафик, приходящий в порт 11, добавить метку 30.

Конфигурация двух интерфейсов выглядит следующим образом:

interface gigabitethernet1/0/11

switchport mode general
switchport general allowed vlan add 31 tagged                     
switchport general allowed vlan add 30 untagged
selective-qinq list ingress permit ingress_vlan 31
selective-qinq list ingress add_vlan 30
exit
!
interface gigabitethernet1/0/12
switchport mode trunk
switchport trunk allowed vlan add 30-31
exit


Для того, чтобы на весь трафик, приходящий с СVLAN (VLAN X), добавить метку 30 (SVLAN), необходимо добавить на входе и снять на выходе:

selective-qinq list ingress add_vlan 30 - добавили на входе gi0/11 ("Правило по умолчанию", правило будет применяться ко всем входящим пакетам, к которым не были применены другие правила)

switchport general allowed vlan add 30 untagged - сняли на выходе gi0/11

Так как необходимо пропустить vlan 31 без изменения, необходимо прописать следующие настройки (дополнительные правила):

switchport general allowed vlan add 31 tagged 

selective-qinq list ingress permit ingress_vlan 31


2) Задача: для vlan 68,456,905 (CVLAN) добавить метку 3 (SVLAN). Для vlan 234,324,657 (CVLAN) добавить метку 4 (SVLAN).

Конфигурация интерфейса выглядит следующим образом:

interface gigabitethernet 1/0/1
switchport mode general
switchport general allowed vlan add 3,4 untagged
selective-qinq list ingress add_vlan 3 ingress_vlan 68,456,905
selective-qinq list ingress add_vlan 4 ingress_vlan 234,324,657
exit


Для того, чтобы на  пакеты с CVLAN = 68, 456, 905 добавить SVLAN = 3, необходимо прописать команду:

 selective-qinq list ingress add_vlan 3 ingress_vlan 68,456,905

Для того, чтобы на  пакеты с CVLAN = 234, 324, 657 добавить SVLAN = 4, необходимо прописать команду:

selective-qinq list ingress add_vlan 4 ingress_vlan 234,324,657

Также не стоит забывать о необходимости применения двух аксиом, то есть на выходе SVLAN тег необходимо убрать. Выполнить это действие возможно с помощью команды:

switchport general allowed vlan add 3,4 untagged


3) Задача: перемаркировка влан. Для входящего трафика vlan 856 -> vlan 3, vlan 68 -> vlan 4. Для исходящего трафика vlan 3 -> vlan 856, vlan 4 -> vlan 68.

Конфигурация интерфейса выглядит следующим образом:

interface gigabitethernet 1/0/1
switchport mode general
switchport general allowed vlan add 3,4 tagged
selective-qinq list ingress override_vlan 3 ingress_vlan 856
selective-qinq list ingress override_vlan 4 ingress_vlan 68
selective-qinq list egress override_vlan 856 ingress_vlan 3
selective-qinq list egress override_vlan 68 ingress_vlan 4
exit

Для того, чтобы выполнить перемаркировку метки с 856 на 3 и с 68 на 4 для входящего трафика необходимо выполнить следующие команды:

selective-qinq list ingress override_vlan 3 ingress_vlan 856
selective-qinq list ingress override_vlan 4 ingress_vlan 68

Для того, чтобы выполнить перемаркировку метки с 3 на 856 и с 4 на 68 для исходящего трафика необходимо выполнить следующие команды:

selective-qinq list egress override_vlan 856 ingress_vlan 3
selective-qinq list egress override_vlan 68 ingress_vlan 4

Но необходимо также учитывать условия коммутации пакета с интерфейса Gi0/X на интерфейс Gi0/1:

switchport general allowed vlan add 3,4 tagged


4) Задача: для всего трафика, приходящего на порт 11 добавить метку 30

Существует два способа добавления второй метки (SVLAN) без каких-либо дополнений, описанных в пунктах раннее.

1-ый вариант:

interface gigabitethernet1/0/11
switchport mode general
switchport general allowed vlan add 30 untagged
selective-qinq list ingress add_vlan 30
exit

2-ой вариант:

interface gigabitethernet 1/0/11 
switchport mode customer
switchport customer vlan 30
exit