4.1. Общие сведения о Flexible QinQ
Flexible QinQ принимает решение добавлять внешний тэг VLAN (SPVLAN tag) или нет, основываясь на потоке кадров данных. Например, Гибкий QinQ может быть реализован на основе тэга VLAN пользователя, MAC-адреса, IPv4/IPv6 адреса, протокола IPv4/IPv6, номером порта приложения и т.д. Таким образом эта технология позволяет гибко инкапсулировать поток данных пользователя по различным схемам и различными методами.
4.2. Конфигурация Flexible QinQ
Соответствие потока данных Flexible QinQ реализовано на основе правил карты политик (policy-map):
Создать карту класса (class-map) для классификации различных поток данных;
Создать карту политик (policy-map) Flexible QinQ для связи с картой класса (class-map) и выбора операции;
Применить Flexible QinQ на порт;
Проверка текущей конфигурации Flexible QinQ.
Создать карту класса (class-map) для классификации различных поток данных;
Команда | Описание |
---|---|
class-map <class-map-name>
! В режиме глобальной конфигурации | Создание карты классов с именем <class-map-name> и вход в режим конфигурирования этой карты классов. Команда no удаляет карты классов с именем <class-map-name> |
match {access-group <acl-index-or-name> | ip dscp <dscp-list>| ip precedence <ip-precedence-list> | ipv6 access-group <acl-index-or-name> | ipv6 dscp <dscp-list> | ipv6 flowlabel <flowlabel-list> | vlan <vlan-list> | cos <cos-list>} no match {access-group | ip dscp | ip precedence | ipv6 access-group | ipv6 dscp | ipv6 flowlabel | vlan | cos } ! В режиме глобальной конфигурации | Настройка критерия соответствия данных карте классов. Команда no отменяет конфигурацию соответствия. |
2. Создать карту политик (policy-map) Flexible QinQ для связи с картой класса (class-map) и выбора операции;
Команда | Описание |
---|---|
policy-map <policy-map-name> no policy-map <policy-map-name> ! В режиме глобальной конфигурации | Создание карты политик с именем и вход в режим её конфигурирования <policy-map-name>.Команда no удаляет карту политик |
class <class-map-name> [insert-before <class-map-name>] no class <class-map-name> ! В режиме глобальной конфигурации | Задать для текущей карты политик ассоциацию с картой классов с именем <class-map-name>. insert-before <class-map-name> - позволяет добавить карту классов для ассоциации раньше, чем с именем <class-map-name>. Команда no отменяет эту ассоциацию. |
set {ip dscp <new-dscp> | ip precedence <new-precedence> | internal priority <new-inp> | drop precedence <new-dp> | cos <new-cos> | s-vid<new-vid>} no set {ip dscp | ip precedence | internal priority | drop precedence | cos|s-vid } ! В режиме глобальной конфигурации | Присвоить классифицированному трафику новое значение dscp (ip dscp <new-dscp>), значение ip presedence (ip precedence <new-precedence>), значение приоритета сброса (drop precedence <new-dp>), значение поля cos (cos <new-cos>), внешний тег vlan (s-vid <new-vid>) Команда no отменяет присвоение. |
3. Применить Flexible QinQ на порт.
Команда | Описание |
---|---|
service-policy input <policy-map-name> no service-policy input {<policy-map-name>} ! В режиме конфигурирования интерфейса | Применить карту политик с именем <policy-map-name> для входящего трафика на порту Команда no удаляет карту политик с именем <policy-map-name> с порта. |
4. Просмотр конфигурации Flexible QinQ
Команда | Описание |
---|---|
show mls qos {interface [<interface-id>] ! В привилегированном режиме | Просмотр текущей конфигурации Flexible QinQ на порту <interface-id> |
4.3. Пример конфигурации Flexible QinQ
Рисунок 22.1 - Пример использования Flexible QinQ
Как показано на рисунке 22.1, первый пользователь, подключенный к DSLAM1, назначает метки DSCP 10, 20 и 30 для исходящего трафика в своей сети. DSCP10 соответствует Широкополосному доступу, DSCP20 соответствует VoIP, DSCP соответствует VOD. После того, как на портах коммутаторов в сторону клиентов будет включен Гибкий QinQ, пакетам с разным значением DSCP будут добавлены различные внешние тэги VLAN, уникальные в публичной сети оператора. Пакетам с DSCP10 будет добавлен тег 1001, трафик будет отправлен на BRAS. Пакетам с DSCP20 (DSCP30) будет добавлен внешний тег VLAN 2001 (3001 соответственно), трафик будет отправлен на SR.
Второй пользователь, подключенный к DSLAM2, также добавляет различные метки DSCP, метки внешнего тега будут добавлены аналогичным образом. На приведенном выше рисунке внешний тег второго пользователя отличается от первого пользователя для различия DSLAM и местонахождения пользователей.
Предположим, что DSLAM подключены к портам Ethernet 1/0/1 обоих коммутаторов соответственно.
Конфигурация будет выглядеть следующим образом:
Switch1:
Switch(config)#class-map c1 Switch(config-classmap-c1)#match ip dscp 10 Switch(config-classmap-c1)#exit Switch(config)#class-map c2 Switch(config-classmap-c2)#match ip dscp 20 Switch(config-classmap-c2)#exit Switch(config)#class-map c3 Switch(config-classmap-c3)#match ip dscp 30 Switch(config-classmap-c3)#exit Switch(config)#policy-map p1 Switch(config-policymap-p1)#class c1 Switch(config-policymap-p1-class-c1)# set s-vid 1001 Switch(config-policymap-p1)#class c2 Switch(config-policymap-p1-class-c2)# set s-vid 2001 Switch(config-policymap-p1)#class c3 Switch(config-policymap-p1-class-c3)# set s-vid 3001 Switch(config-policymap-p1-class-c3)#exit Switch(config-policymap-p1)#exit Switch(config)#interface ethernet 1/0/1 Switch(config-if-ethernet1/0/1)#dot1q-tunnel enable Switch(config-if-ethernet1/0/1)#service-policy p1 in
Switch2:
Switch(config)#class-map c1 Switch(config-classmap-c1)#match ip dscp 10 Switch(config-classmap-c1)#exit Switch(config)#class-map c2 Switch(config-classmap-c2)#match ip dscp 20 Switch(config-classmap-c2)#exit Switch(config)#class-map c3 Switch(config-classmap-c3)#match ip dscp 30 Switch(config-classmap-c3)#exit Switch(config)#policy-map p1 Switch(config-policymap-p1)#class c1 Switch(config-policymap-p1-class-c1)# set s-vid 1002 Switch(config-policymap-p1)#class c2 Switch(config-policymap-p1-class-c2)# set s-vid 2002 Switch(config-policymap-p1)#class c3 Switch(config-policymap-p1-class-c3)# set s-vid 3002 Switch(config-policymap-p1-class-c3)#exit Switch(config-policymap-p1)#exit Switch(config)#interface ethernet 1/0/1 Switch(config-if-ethernet1/0/1)#dot1q-tunnel enable Switch(config-if-ethernet1/0/1)# service-policy p1 in
4.4. Решение проблем с конфигурацией Flexible QinQ
В случае, если Flexible QinQ не может быть применен к порту, проверьте не вызвана ли проблема следующими причинами:
Убедитесь, что в настроенною карту классов и карту политик добавлен Flexible QinQ;
Убедитесь, что ACL содержит правило permit, а карта классов настроена на соответствие правилу ACL;
Убедитесь, что коммутатору достаточно ресурса TCAM для работы правила.