В статье рассматривается пример конфигурации качества обслуживания.
Задача - принять с нескольких интерфейсов трафик клиентов, распределить трафик по очередям в соответствии с маркировкой клиентов и согласно политики сети.
Трафик аккумулируется и передаётся посредством 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 будет иметь более развернутый вид:
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-180
interface 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-default 0/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-default 0/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-default 0/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