В статье рассматривается пример конфигурации качества обслуживания.
Задача - принять с нескольких интерфейсов трафик клиентов, распределить трафик по очередям в соответствии с маркировкой клиентов и согласно политики сети.
Трафик аккумулируется и передаётся посредством MPLS через канал, имеющий ограниченную пропускную способность. Механизмы QOS должны обеспечить максимально возможное качество передачи высокоприоритетного трафика.
В соответствии с политикой сети клиентам доступны классы трафика EF, AF11, AF21, AF31, AF41, BE
Cхема демонстрационного стенда:
В примере на маршрутизатор R17-246 на порт te0/0/11 приходит трафик в объёме 100Мбит/с и имеющий маркировку DSCP AF11, AF21, AF31, AF41, EF, BE примерно равными по объёму потоками.
Далее трафик маршрутизируется в интерфейсы te0/0/7, te0/0/12, bu1.957 где ограничивается до 20Мбит/с и уходит на соседний маршрутизатор. Там он инкапсулируется в MPLS и отдаётся через линк te0/0/5.954, имеющий пропускную способность 40Мбит/с.
Порядок настройки:
1- tc-map
2- class-map
3- policy-map
4- Конфигурирование политик QOS на интерфейсах
1. Конфигурация tc-map
для клиентов:
Трафик, имеющий разрешенный DSCP назначаем в соответсвующий traffic class (tc). AF11 -1, AF21 -2, AF31 -3, AF41 -4, EF -5.
Трафик с DSCP 48(CS6) и 56(CS7), получаемый от клиента, так же назначаем в tc 5, так как более приоритетные очереди используются для передачи служебного трафика протоколов сети.
Весь остальной трафик помещается в tc 0.qos
tc-map 1
ipv4-dscp 10
tc 1
exit
ipv4-dscp 18
tc 2
exit
ipv4-dscp 26
tc 3
exit
ipv4-dscp 34
tc 4
exit
ipv4-dscp 46
tc 5
exit
ipv4-dscp 48
tc 5
exit
ipv4-dscp 56
tc 5
exit
exit
exit
Для MPLS линков tc-map будет иметь более развернутый вид:
tc-map 100
ipv4-dscp 0
tc 0
exit
ipv4-dscp 1
tc 0
exit
ipv4-dscp 2
tc 0
exit
ipv4-dscp 3
tc 0
exit
ipv4-dscp 4
tc 0
exit
ipv4-dscp 5
tc 0
exit
ipv4-dscp 6
tc 0
exit
ipv4-dscp 7
tc 0
exit
ipv4-dscp 8
tc 1
exit
ipv4-dscp 9
tc 0
exit
ipv4-dscp 10
tc 1
exit
ipv4-dscp 11
tc 0
exit
ipv4-dscp 12
tc 1
exit
ipv4-dscp 13
tc 0
exit
ipv4-dscp 14
tc 1
exit
ipv4-dscp 15
tc 0
exit
ipv4-dscp 16
tc 2
exit
ipv4-dscp 17
tc 0
exit
ipv4-dscp 18
tc 2
exit
ipv4-dscp 19
tc 0
exit
ipv4-dscp 20
tc 2
exit
ipv4-dscp 21
tc 0
exit
ipv4-dscp 22
tc 2
exit
ipv4-dscp 23
tc 0
exit
ipv4-dscp 24
tc 3
exit
ipv4-dscp 25
tc 0
exit
ipv4-dscp 26
tc 3
exit
ipv4-dscp 27
tc 0
exit
ipv4-dscp 28
tc 3
exit
ipv4-dscp 29
tc 0
exit
ipv4-dscp 30
tc 3
exit
ipv4-dscp 31
tc 0
exit
ipv4-dscp 32
tc 4
exit
ipv4-dscp 33
tc 0
exit
ipv4-dscp 34
tc 4
exit
ipv4-dscp 35
tc 0
exit
ipv4-dscp 36
tc 4
exit
ipv4-dscp 37
tc 0
exit
ipv4-dscp 38
tc 4
exit
ipv4-dscp 39
tc 0
exit
ipv4-dscp 40
tc 5
exit
ipv4-dscp 41
tc 0
exit
ipv4-dscp 42
tc 0
exit
ipv4-dscp 43
tc 0
exit
ipv4-dscp 44
tc 0
exit
ipv4-dscp 45
tc 0
exit
ipv4-dscp 46
tc 5
exit
ipv4-dscp 47
tc 0
exit
ipv4-dscp 48
tc 6
exit
ipv4-dscp 49
tc 0
exit
ipv4-dscp 50
tc 0
exit
ipv4-dscp 51
tc 0
exit
ipv4-dscp 52
tc 0
exit
ipv4-dscp 53
tc 0
exit
ipv4-dscp 54
tc 0
exit
ipv4-dscp 55
tc 0
exit
ipv4-dscp 56
tc 7
exit
ipv4-dscp 57
tc 0
exit
ipv4-dscp 58
tc 0
exit
ipv4-dscp 59
tc 0
exit
ipv4-dscp 60
tc 0
exit
ipv4-dscp 61
tc 0
exit
ipv4-dscp 62
tc 0
exit
ipv4-dscp 63
tc 0
exit
mpls-tc 0
tc 0
exit
mpls-tc 1
tc 1
exit
mpls-tc 2
tc 2
exit
mpls-tc 3
tc 3
exit
mpls-tc 4
tc 4
exit
mpls-tc 5
tc 5
exit
mpls-tc 6
tc 6
exit
mpls-tc 7
tc 7
exit
vlan-pcp-inner 0
tc 0
exit
vlan-pcp-inner 1
tc 1
exit
vlan-pcp-inner 2
tc 2
exit
vlan-pcp-inner 3
tc 3
exit
vlan-pcp-inner 4
tc 4
exit
vlan-pcp-inner 5
tc 5
exit
vlan-pcp-inner 6
tc 6
exit
vlan-pcp-inner 7
tc 7
exit
vlan-pcp-outer 0
tc 0
exit
vlan-pcp-outer 1
tc 1
exit
vlan-pcp-outer 2
tc 2
exit
vlan-pcp-outer 3
tc 3
exit
vlan-pcp-outer 4
tc 4
exit
vlan-pcp-outer 5
tc 5
exit
vlan-pcp-outer 6
tc 6
exit
vlan-pcp-outer 7
tc 7
exit
exit
exit
2. Конфигурация классификации трафика class-map.qos
class-map AF1
match tc 1
exit
class-map AF2
match tc 2
exit
class-map AF3
match tc 3
exit
class-map AF4
match tc 4
exit
class-map EF
match tc 5
exit
class-map CS6
match tc 6
exit
class-map CS6,7
match tc 6
match tc 7
exit
class-map CS7
match tc 7
exit
3. Конфигурация политики для ограничения исходящего трафика на клиентских интерфейсах.qos
policy-map Customer
class AF1
bandwidth percent 15
exit
class AF2
bandwidth percent 15
exit
class AF3
bandwidth percent 10
exit
class AF4
shape rate 1000
exit
class EF
bandwidth strict-priority
shape rate 7000
exit
class class-default
queue random-detect
max-threshold 100 << значение задается в Кбайт
min-threshold 55 << значение задается в Кбайт
exit
exit
exit
Здесь bandwidth percent - это процент взятый от ограничения установленного на интерфейсе или сабинтерфейсе на котором примененена политика.
Весовые коэффициенты классов для алгоритма WFQ также назначаются пропорционально количеству процентов, заданному командой bandwidth percent.
Оставшиеся проценты поровну распределяются между классами, для которых не задано bandwidth percent.
Имея 100% полосы, у нас 15%+15%+10% отъедаются классами AF1, AF2, AF3, соответственно на всех оставшихся полоса будет делиться по (100-15-15-10)/3 = 20%.
Однако, т.к. EF имеет своё ограничение в 7000Kbps, а AF4 в 1000Kbps то неизрасходованная полоса этих классов распределяется между остальными классами пропорционально их весам.
Таким образом, если мы на каждый класс сгенерируем по 10Mbps трафика, то ограничение сработает следующим образом:Class Rx Rate (Mbps)
class-default 4.0 (20000 - 7000 - 1000) * 20 / (20 + 15 + 15 + 10)
AF1 3.0
AF2 3.0
AF3 2.0
AF4 1.0
EF 7.0
Конфигурация политики для ограничения исходящего трафика на интерконнект интерфейсе. Для высокоприоритетного трафика выделено не более половины пропускной способности линка.
Служебный трафик маркируется DSCP CS6 или CS7 в зависимости от типа, и соответственно попадает в tc6, tc7. Для обеспечения работоспособности протоколов сети при перегрузке линков следует в политике сконфигурировать очереди для трафика классов tc6 и tc7, в противном случае трафик будет попадать в очередь class-default и дропаться при перегрузке линков.qos
policy-map Net40M
class AF1
bandwidth percent 15
exit
class AF2
bandwidth percent 15
exit
class AF3
bandwidth percent 10
exit
class AF4
bandwidth percent 10
exit
class CS6,7
bandwidth kbps 1000
exit
class EF
bandwidth strict-priority
shape rate 20000
exit
exit
exit
4 Конфигурирование политик QOS на интерфейсах.
Интерфейс для подключения пользователей. Заданы ограничители на вход и на выход, tc-map для доступных клиенту значений DSCP, политика в соответствии с профилем клиента. Конфигурация идентична на интерфейсах te0/0/7, te0/0/12, bu1.957 маршрутизатора R17-246 и на интерфейсах te0/0/7, te0/0/12, bu3.957 маршрутизатора R17-180interface tengigabitethernet 0/0/7
description Customer
ipv4 address 192.168.1.1/30
rate-limit input rate 20000
service-policy output Customer statistics
shape output rate 20000
tc-map input 1
exit
MPLS интерфейс на маршрутизаторе R17-180:interface tengigabitethernet 0/0/5.954
description "To Arenda 40M"
encapsulation outer-vid 954
ipv4 address 10.0.0.42/30
load-interval 20
service-policy output Net40M statistics
shape output rate 40000
tc-map input 100
exit
Команды просмотра
Следует обратить внимание, что для включение счётчиков на сабинтерфейсах и счётчиков QoS следует выполнить следующие команды:configure
system subint-utilization
system qos-utilization
В связи с архитектурными особенностями трафик от CPU поступает непосредственно на выходной порт и хотя и обслуживается в соответствии с политикой на интерфейсе, но не отображается в счётчиках очередей.0/ME5100revX:R17-246# sh int utilization
Tue Feb 7 04:11:45 2023
Interface Period, s Sent, Kbit/s Recv, Kbit/s Frames sent, pps Frames recv, pps
---------------- ---------- ------------- ------------- ----------------- -----------------
te0/0/7 20 20309 2 10278 0
te0/0/11 20 0 101647 0 51441
te0/0/12 20 20310 2 10278 0
te0/0/13 20 20638 2 10278 0
bu1 20 20644 2 10281 1
bu2 300 0 0 0 0 0/ME5100revX:R17-246#
0/ME5100revX:R17-246# sh policy-map counters
Thu Aug 31 09:09:28 2023
Policy Map Customer
Interface Enqueue, Bytes Enqueue, Packets Drop, Bytes Drop, Packets Class
---------------- --------------------- --------------------- --------------------- --------------------- ------
te0/0/7 20 3288 2319 1677 1183 AF1
te0/0/7 20 3250 2357 1658 1202 AF2
te0/0/7 20 2225 3382 1135 1725 AF3
te0/0/7 20 1162 4445 593 2267 AF4
te0/0/7 20 5568 39 2840 20 EF
te0/0/7 20 4876 731 2487 373 class-default
te0/0/12 20 3284 2322 1675 1185 AF1
te0/0/12 20 3250 2356 1658 1202 AF2
te0/0/12 20 2230 3377 1138 1722 AF3
te0/0/12 20 1162 4444 593 2267 AF4
te0/0/12 20 5568 39 2840 20 EF
te0/0/12 20 4874 733 2486 374 class-default
bu1.957 20 3251 2355 1658 1201 AF1
bu1.957 20 3281 2325 1674 1186 AF2
bu1.957 20 2231 3375 1138 1722 AF3
bu1.957 20 1162 4444 593 2267 AF4
bu1.957 20 5568 38 2841 19 EF
bu1.957 20 4874 732 2487 373 class-default0/ME5100revX:R17-246# sh qos counters
Tue Feb 7 04:10:55 2023
Interface Enqueue, Bytes Enqueue, Packets Drop, Bytes Drop, Packets Class
---------------- --------------------- --------------------- --------------------- --------------------- ------
te0/0/7 581913200 2200200 218528155 847924 AF1
te0/0/7 561713295 2125146 238728305 922979 AF2
te0/0/7 400534090 1513762 399907755 1534364 AF3
te0/0/7 86675240 338607 174474790 712142 AF4
te0/0/7 461575875 1793000 177380 724 EF
te0/0/7 790548069 3008212 9899520 39956 class-default
te0/0/12 581455355 2198559 218987985 849573 AF1
te0/0/12 560573975 2120800 239869365 927332 AF2
te0/0/12 402336315 1520507 398107490 1527627 AF3
te0/0/12 86647720 338506 174474055 712139 AF4
te0/0/12 461400225 1792350 177625 725 EF
te0/0/12 790561709 3008261 9887840 39912 class-default
bu1.957 564225795 2134411 236218500 913725 AF1
bu1.957 582441690 2202202 218002605 845934 AF2
bu1.957 398032510 1504488 402411785 1543648 AF3
bu1.957 86572930 338229 174475035 712143 AF4
bu1.957 461116965 1791302 175420 716 EF
bu1.957 790562950 3008250 9882080 39889 class-default0/ME5200:R17-180# sh int util
Tue Feb 7 11:12:28 2023
Interface Period, s Sent, Kbit/s Recv, Kbit/s Frames sent, pps Frames recv, pps
---------------- ---------- ------------- ------------- ----------------- -----------------
te0/0/5 20 40289 78 19764 53
te0/0/7 20 2 20320 0 10283
te0/0/12 20 2 20321 0 10284
te0/0/32 20 2 20649 0 10283
bu3 20 2 20666 0 10291 0/ME5200:R17-180# sh qos util
Tue Feb 7 11:08:52 2023
Interface Period, s Enq, Kbit/s Drop, Kbit/s Frames enq, pps Frames drop, pps Class
---------------- ----------- --------------------- --------------------- --------------------- --------------------- ------
te0/0/5.954 20 3617 5981 1816 3015 AF1
te0/0/5.954 20 3616 5959 1815 3004 AF2
te0/0/5.954 20 2389 4145 1199 2089 AF3
te0/0/5.954 20 2417 1075 1213 544 AF4
te0/0/5.954 20 0 0 0 0 CS6,7
te0/0/5.954 20 16529 68 8320 34 EF
te0/0/5.954 20 10740 3775 5396 1910 class-default
te0/0/7 20 0 0 0 0 AF11
te0/0/7 20 0 0 0 0 AF21
te0/0/7 20 0 0 0 0 AF31
te0/0/7 20 0 0 0 0 AF41
te0/0/7 20 0 0 0 0 EF
te0/0/7 20 2 0 1 0 class-default
te0/0/12 20 0 0 0 0 AF11
te0/0/12 20 0 0 0 0 AF21
te0/0/12 20 0 0 0 0 AF31
te0/0/12 20 0 0 0 0 AF41
te0/0/12 20 0 0 0 0 EF
te0/0/12 20 2 0 0 0 class-default
bu3.957 20 0 0 0 0 AF11
bu3.957 20 0 0 0 0 AF21
bu3.957 20 0 0 0 0 AF31
bu3.957 20 0 0 0 0 AF41
bu3.957 20 0 0 0 0 EF
bu3.957 20 2 0 0 0 class-default0/ME5200:R17-180# show policy-map counters
Thu Aug 31 09:03:26 2023
Policy Map Customer
Interface Enqueue, Bytes Enqueue, Packets Drop, Bytes Drop, Packets Class
---------------- --------------------- --------------------- --------------------- --------------------- ------
te0/0/7 0 0 0 0 AF11
te0/0/7 0 0 0 0 AF21
te0/0/7 0 0 0 0 AF31
te0/0/7 0 0 0 0 AF41
te0/0/7 0 0 0 0 EF
te0/0/7 289064 1042 0 0 class-default
te0/0/12 0 0 0 0 AF11
te0/0/12 0 0 0 0 AF21
te0/0/12 0 0 0 0 AF31
te0/0/12 0 0 0 0 AF41
te0/0/12 0 0 0 0 EF
te0/0/12 284981 1007 0 0 class-default
bu3.957 0 0 0 0 AF11
bu3.957 0 0 0 0 AF21
bu3.957 0 0 0 0 AF31
bu3.957 0 0 0 0 AF41
bu3.957 0 0 0 0 EF
bu3.957 284981 1007 0 0 class-default
Policy Map Net120M
Policy Map Net40M
Interface Enqueue, Bytes Enqueue, Packets Drop, Bytes Drop, Packets Class
---------------- --------------------- --------------------- --------------------- --------------------- ------
te0/0/5.954 336104075 1349905 486918395 1964705 AF1
te0/0/5.954 343442809 1379375 470102049 1896395 AF2
te0/0/5.954 220947462 887398 347685674 1402542 AF3
te0/0/5.954 122425436 492236 35595911 144113 AF4
te0/0/5.954 0 0 0 0 CS6,7
te0/0/5.954 801063627 3226173 171912 696 EF
te0/0/5.954 1001047341 4027467 195756867 792117 class-default