Реализация алгоритмов WFQ в маршрутизаторах Cisco Flow-based WFQ - равные веса для индивидуальных потоков (микропотоков) Поток - IP Dest., IP Source, TCP/UDP Port Dest., TCP/UDP Port Source, TOS TOS=100 1045 1056 TOS=010 1045 1025 1056 21 53 1035 192.10.34.56 Потоки 206.200.4.56 Реализация алгоритмов WFQ в маршрутизаторах Cisco Class-based WFQ (CBWFQ) - настраиваемые взвешенные очереди для: 1. QoS-групп - веса задаются администратором (1% всегда резервируется за группой 0, куда входя не попавшие ни в одну группу пакеты) 2. TOS-классов (2 младших бита поля IP Precedence) по умолчанию TOS=010 класс 0 - 10% класс 1 - 20% класс 2 - 30% класс 3 - 40% Изменение весов - по команде weight Выбор типа обслуживания очереди - по командам: fair-queue – равные веса fair-queue qos-group fair-queue tos – 4 класса TOS Биты IP Precedence 000 – обычный трафик (best effort) 101 – высокоприритетный пользовательский трафик 111 – системные сообщения (ICNP, SNMP) Пример конфигурирования параметров обслуживания классов interface Hssi0/0/0 ip address 188.1.3.70 255.255.255.0 fair-queue qos-group fair-queue qos-group 2 weight 10 fair-queue qos-group 6 weight 30 ! access-list rate-limit 2 2 – условие совпадения, IP Prec = 2 access-list rate-limit 6 6 Сочетание CBWFQ с приоритетным обслуживанием priority bandwidth – направляет трафик класса в очередь с абсолютными приоритетами и гарантирует минимальную пропускную способность в bandwidth Кбит/c router(config)# class-map voice router(config-cmap)# match access-group 102 router(config)# policy-map policy1 router(config-pmap)# class voice router(config-pmap-c)# priority 50 Алгоритмы профилирования и формирования трафика Профилирование (policing) - проверка соответствия трафика заданному профилю - например: { объем пульсации, время пульсации} Формирование (shaping) - придание трафику определенной «формы» Random Early Detection P случайное раннее обнаружение перегрузок N1 P - вероятность отбрасывания пакетов N2 Средняя длина очереди Алгоритм Leaky Bucket (“дырявого ведра») Be Пакет-нарушитель DE=1 Bc = CIR x T Bc Контролирует CIR, Bc, Be на периоде T CIR Формирование не выполняет T Min (C, Bc) каждые T cек Алгоритм Token Bucket («ведро токенов») r бит/с - скорость наполнения ведра b бит - объем ведра Очередь пакетов Сервер Входной поток Условие пропуска пакета сервером: Выходной поток (сглаженный) Объем данных в ведре больше или равен объему данных пакета Выполняет профилирование средняя скорость r бит/с, пульсация <= b бит на любом периоде и сглаживание (при использовании на выходном порту) Алгоритм Token Bucket («ведро токенов») Выполняет профилирование и отбрасывание не удовлетворяющего условиям профиля трафика – при использовании на входе устройства Механизм классификации и профилирования Commited Access Rate, CAR (Cisco) Классификация interface interface-type interface-number rate-limit {input | output} [access-group [rate-limit] acl-index] bps burst-normal burst-max conform-action action exceed-action action Действия, выполняемые командой rate-limit: continue - evaluate the next rate-limit command. drop- drop the packet. set-prec-continue new-prec set-prec-transmit new-prec transmit Пример: interface Fddi2/1/0 rate-limit input access-group rate-limit 100 80000000 64000 80000 conform-action transmit exceed-action drop ip address 200.200.6.1 255.255.255.0 ! access-list rate-limit 100 00e0.34b0.7777 Управление качеством обслуживания на основе правил политики в маршрутизаторах Cisco Шаг 1. Определить класс трафика с помощью команды class-map Шаг 2. Определить Создать политику сервиса с помощью команды policy-map Шаг 3. Определить Связать политику сервиса с интерфейсом с помощью команды service-policy Синтаксис команд match при задание класса class-map Синтаксис команд задания политики сервиса policy-map Синтаксис команд задания политики сервиса policy-map (продолжение) Связывание политики сервиса с интерфейсом Пример конфигурирования маршрутизатора Шаг 1. Определение 2-х классов Router(config)# class-map class1 Router(config-cmap)# match access-group 101 Router(config-cmap)# exit Router(config)# class-map class2 Router(config-cmap)# match access-group 102 Router(config-cmap)# exit Фильтрация пакетов с помощью маршрутизаторов (продолжение) out in serial 0 serial 1 Задача – не принимать (in) или не отправлять (out) пакеты, удовлетворяюшие определенным признакам Язык фильтрации маршрутизаторов Cisco Systems: 1. Расширенный (extended) список доступа: access-list [list number] [permit|deny] [protocol|protocol key word] [source address source-wildcard mask] [source port] [destination address destination-wildcard mask] [destination port] [log options] Запрещает ли список 101 доступ к серверу 192.78.46.8 по TCP, разрешая остальной доступ по IP? access-list 101 permit IP any host 192.78.46.8 access-list 101 deny TCP any host 192.78.46.8 Запрет ping хоста 192.78.46.8: access-list 101 deny ICMP any host 192.78.46.8 eq 8 Шаг 2. Задание политики сервиса Router(config)# policy-map policy1 Router(config-pmap)# class class1 Router(config-pmap-c)# bandwidth 3000 Router(config-pmap-c)# queue-limit 30 Router(config-pmap)# exit Router(config-pmap)# class class2 Router(config-pmap-c)# bandwidth 2000 Шаг 3. Связывание политик сервиса с интефейсом Router(config)# interface e1/1 Router(config-if)# service-policy output policy1 Router(config-if)# exit Router(config)# interface fa1/0/0 Router(config-if)# service-policy output policy1 Router(config-if)# exit Механизм классификации трафика Policy-based Routing (Cisco) route-map map-tag [permit | deny] [sequence-number] Задает список правил преобразования пакетов и маршрутов match length min max или match ip address {access-list-number | name} [...access-list-number | name] Классифицирует пакеты по условиям списка доступа set ip precedence [number | name] Назначает новые значения поля IP Precedence пакета или Next Hop для таблицы маршрутизации set ip next-hop ip-address [... ipaddress] Пример классификации трафика с помощью PolicyBased Routing access-list 1 permit ip 1.1.1.1 access-list 2 permit ip 2.2.2.2 ! interface ethernet 1 ip policy route-map Texas ! route-map Texas permit 10 match ip address 1 set ip precedence priority set ip next-hop 3.3.3.3 ! route-map Texas permit 20 match ip address 2 set ip precedence critical set ip next-hop 3.3.3.5 Архитектура интегрированных сервисов Integrated Services 2. Протокол сигнализации RSVP 1.QoS узла - Admission Control - Policy Control - очереди - shaping - ... Трафик «Приложение-приложение» Резервирование параметров QoS с помощью RSVP Формат TSpec 31 24 23 16 15 8 7 0 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 1 | 0 (a) | reserved | 7 (b) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2 | 1 (c) |0| reserved | 6 (d) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 3 | 127 (e) | 0 (f) | 5 (g) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 4 | Token Bucket Rate [r] (32-bit IEEE floating point number) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 5 | Token Bucket Size [b] (32-bit IEEE floating point number) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 6 | Peak Data Rate [p] (32-bit IEEE floating point number) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 7 | Minimum Policed Unit [m] (32-bit integer) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 8 | Maximum Packet Size [M] (32-bit integer) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Пример резервирования пропускной способности между маршрутизаторами с помощью RSVP Router A Hs0 Router B Eth1 Eth1 Router C Hs0 Hs0 Eth2 Маршрутизаторы в примере сами организуют резервирование, без участия хостов Команда заставляет Router A генерировать сообщения PATH: ip rsvp sender 225.1.1.1 12.1.2.1 UDP 7001 7000 12.1.2.1 Hs0 20 1 Команда заставляет Router A генерировать сообщения RESV: ip rsvp reservation 225.1.1.1 12.1.2.1 UDP 7001 7000 9.1.2.1 Et2 FF RATE 8 1 Архитектура дифференцированных сервисов Differentiated Services 2. Протокол сигнализации биты DSCP (TOS) 1.QoS узла - Admission Control - Policy Control - очереди - shaping Классы трафика (агрегированные потоки) Каждый маршрутизатор сам решает, какое качество обслуживания применить к данному классу - Per Hop Behavior, PHB Положение поля задания класса трафика в пакетах IPv4 и IPv6 Переопределение TOS-байта в DS-Field Поле DS-field переносит значение DS Cope Point - DSCP Биты 0 - 3: селектор класса обслуживания (Expedition или Assured Forwarding) Биты 4-5: предпочтительность отбрасывания пакетов при перегрузках Бит 6: признак нарушителя профиля (аналог DE или CLP) Сервис «Быстрая доставкка» (RFC 2598 An Expedited Forwarding PHB Group) DSCP = 101110 (4610) Наивысшее качество обслуживания в сетях DiffServ Сервис предназначен для эмуляции выделенных каналов (Premium Service) Уровень задержек должен быть минимизирован Если для его реализации применяется приоритетное обслуживание, то рекомендуеися ограничить среднюю скорость (параметр r алгоритма Token Bucket Сервис «Гарантированная доставка» ( RFC 2597 Assured Forwarding PHB Group) Определяет 4 класса обслуживания (001, 010, 011, 100) и три группы предпочтения по отбрасыванию - всего 12 классов Class 1 Class 2 Class 3 Class 4 +----------+----------+----------+----------+ Low Drop Prec | 001010 | 010010 | 011010 | 100010 | Medium Drop Prec | 001100 | 010100 | 011100 | 100100 | High Drop Prec | 001110 | 010110 | 011110 | 100110 | +----------+----------+----------+----------+ 00 – отбрасывать можно 01 10 11 – отбрасывать крайне нежелательно Обслуживание - без гарантий задержек, но с гарантированной средней пропускной способностью Рекомендуемый метод - настраиваемое взвешенное обслуживание Пример конфигурирования маршрутизаторов для обеспечения QoS на основе DiffServ class-map match-all EF match access-group 101 Классификация и маркировка поля DSCP class-map match-all AF1 match access-group 102 class-map match-all AF21 match access-group 108 class-map match-all AF22 match access-group 109 class-map match-all AF23 match access-group 110 class-map match-all AF3 match access-group 104 access-list 101 permit udp any any range 16384 32768 access-list 102 permit tcp any any eq tacacs access-list 104 permit tcp any any eq www access-list 105 permit ip any any access-list 108 permit tcp any any eq telnet access-list 109 permit tcp any any eq smtp access-list 110 permit tcp any any eq ftp policy-map SETDSCP class EF set ip dscp 46 class AF1 set ip dscp 10 class AF21 set ip dscp 18 class AF22 set ip dscp 20 ……. Окончательное определение классов – добавление всех вариантов предпочтения отбрасывания class-map match-all premium match ip dscp 46 class-map match-all gold match ip dscp 10 12 14 class-map match-all silver match ip dscp 18 20 22 class-map match-all bronze match ip dscp 26 28 30 class-map best-effort match access-group 105 Задание политики сервиса для классов policy-map VOIP class premium priority 500 class gold bandwidth percent 35 class silver shape average 320000 bandwidth percent 25 class bronze bandwidth percent 15 class best-effort police 56000 1750 1750 conform-action setdscp-transmit 0 Рекомендуемые области применения протоколов QoS Согласованное качество обслуживания на основе политики Архитектура Policy-based QoS Правила политики: Политика - набор правил Пример применения правил политики