Иерархический QoS позволяет настраивать параметры QoS на нескольких уровнях политик, обеспечивая при этом высокую степень детализации критериев при управлении трафиком. 

Схема:

Вводные:

Между маршрутизатором ESR и устройством ISP настроена связность через интерфейс gigabitethernet 1/0/1. Для разделения трафика из разных сегментов используется две VLAN - 100 и 200, которые терминируются на ESR с помощью sub-интерфейсов. В VLAN 100 выполняется терминация DMVPN-туннеля.

Задача:

Ограничить суммарную пропускную способность интерфейса gigabitethernet 1/0/1 в сторону оператора - 10 000 кбит/сек. Для VLAN 200 необходимо ограничить пропускную способность до 5 000 кбит/сек, а для VLAN 100 выделить оставшуюся часть полосы. Для DMVPN-туннеля необходимо реализовать политику QoS, которая приоритизирует трафик протокола OSPF с гарантированной полосой пропускания 100 кбит/с. Трафик между хостами обрабатывается в очереди Strict Priority (LLQ). Остальные классы трафика обслуживаются в порядке поступления пакетов (FIFO).

Решение:

Первоначально опишем трафик, к которому необходимо применить политики QoS. Необходимо выполнить классификацию трафика, относящегося к VLAN100 и  200, хост-устройств и протокола OSPF:

ip access-list extended VLAN100
  rule 1
    action permit
    match VLAN 100
    enable
  exit
exit
ip access-list extended VLAN200
  rule 1
    action permit
    match VLAN 200
    enable
  exit
exit
ip access-list extended host 
  rule 1
    action permit
    match destination-address 192.0.2.0 255.255.255.0
    enable
  exit
exit
ip access-list extended ospf
  rule 1
    action permit
    match protocol ospf
    enable
  exit
exit

На каждый лист создаем сlass-map. Также необходимо создать класс для протокола NHRP, так как если будет выполняться только  классификация трафика OSPF, то пакеты NHRP, необходимые для работы DMVPN, будут конкурировать за полосу, в результате чего может произойти как обрыв OSPF-связности, так и обрыв DMVPN-канала в целом. Для осуществления вложенности необходим отдельный класс - control. 

class-map CM200
  match access-group VLAN200
exit
class-map CV100
  match access-group VLAN100
exit
class-map host
  match access-group host
exit
class-map nhrp
  match protocol nhrp
exit
class-map ospf
  match access-group ospf
exit
class-map control
exit

Сама вложенная политика содержит классы "ospf" и "nhrp".

policy-map control
  class nhrp
  exit
  class ospf
  exit
exit

Первая политика - gi1 - ограничивает основной канал на физическом интерфейсе gigabitethernet 1/0/1.  Общая скорость ограничена до 10 000 кбит/с по условию, а для класса, который принадлежит VLAN 200, действует ограничение в 50% - 5 000 кбит/с. Для VLAN 100 укажем так же остаток полосы в процентном соотношении - 50%:

policy-map gi1
  shape average 10000
  class CV100
    shape average percent 50
  exit
  class CM200
    shape average percent 50
  exit
exit

Вторая политика - gre, содержит конструкцию class control для ограничения в 100 кбит/с по сразу двум классам, дабы ограничение осуществляло шейпинг трафика не только по OSPF. Второй отдельный класс в данной политике для приоритезации трафика между хостами. Остальной трафик попадет в класс "default".

policy-map gre
  class control
    service-policy control
    shape average percent 10
  exit
  class host
    priority level 8
  exit
exit

Применяем политику на родительский интерфейс gigabitethernet 1/0/1, ограничения при этом будут действовать в том числе и на саб-интерфейсах для VLAN 100/200 (gigabitethernet1 /0/1.100 / gigabitethernet 1/0/1.200)

interface gigabitethernet 1/0/1
  qos enable
  service-policy output gi1
exit
tunnel gre 1
   qos enable
   service-policy output gre

Ниже приведены команды для просмотра статистики и результаты их выполнения для рассматриваемой схемы после генерации тестового трафика:

esr# show qos policy statistics gre
gre 1

Policy-map: gre
Parent policy: root
Parent class: root

Class-map: control
10 packets, 9400 bytes, 0 drops
8 second shaped rate: 1574 bps, 2 pps
Match: dscp 0
0 packets, 0 bytes
8 second rate: 0 bps, 0 pps

Class-map: host
100 packets, 14066482 bytes, 0 drops
8 second shaped rate: 2470 bps, 15 pps
Match: access-group host
100 packets, 14066482 bytes
8 second rate: 0 bps, 0 pps

Class-map: class-default
73 packets, 7114 bytes, 0 drops
8 second shaped rate: 120 bps, 0 pps


Policy-map: control
Parent policy: gre
Parent class: control

Class-map: nhrp
0 packets, 0 bytes, 0 drops
8 second shaped rate: 0 bps, 0 pps
Match: protocol NHRP
0 packets, 0 bytes
8 second rate: 0 bps, 0 pps

Class-map: ospf
0 packets, 0 bytes, 0 drops
8 second shaped rate: 0 bps, 0 pps
Match: access-group ospf
0 packets, 0 bytes
8 second rate: 0 bps, 0 pps

Class-map: class-default
0 packets, 0 bytes, 0 drops
8 second shaped rate: 0 bps, 0 pps


esr# show qos policy statistics gigabitethernet
gigabitethernet 1/0/1

Policy-map: gi1
Parent policy: root
Parent class: root
19205 packets, 15259128 bytes, 0 drops
8 second shaped rate: 48 bps, 0 pps

Class-map: CM200
9602 packets, 7629564 bytes, 0 drops
8 second shaped rate: 48 bps, 0 pps
Match: access-group VLAN200
4801 packets, 3814782 bytes
8 second rate: 48 bps, 0 pps

Class-map: class-default
9602 packets, 7629564 bytes, 0 drops
8 second shaped rate: 48 bps, 0 pps


Полный вывод конфигурации по выполнению всех рекомендаций:
VLAN 100,200
exit

ip access-list extended VLAN100
  rule 1
    action permit
    match VLAN 100
    enable
  exit
exit
ip access-list extended VLAN200
  rule 1
    action permit
    match VLAN 200
    enable
  exit
exit
ip access-list extended host
  rule 1
    action permit
    match destination-address 192.0.2.0 255.255.255.0
    enable
  exit
exit
ip access-list extended ospf
  rule 1
    action permit
    match protocol ospf
    enable
  exit
exit

router ospf log-adjacency-changes
router ospf 1
  area 0.0.0.0
    enable
  exit
  enable
exit

class-map CM200
  match access-group VLAN200
exit
class-map CV100
  match access-group VLAN100
exit
class-map host
  match access-group host
exit
class-map nhrp
  match protocol nhrp
exit
class-map ospf
  match access-group ospf
exit
class-map control
  match dscp 0
exit
policy-map control
  class nhrp
  exit
  class ospf
  exit
exit
policy-map gi1
  shape average 10000
  class CM200
    shape average percent 50
  exit
exit
policy-map gre
  class control
    service-policy control
    shape average percent 10
  exit
  class host
    priority level 8
  exit
exit

interface gigabitethernet 1/0/1
  qos enable
  service-policy output gi1
exit

tunnel gre 1
  qos enable
  service-policy output gre
exit


  • Нет меток