Качество обслуживания в IP

advertisement
Реализация алгоритмов 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
Правила политики:
Политика - набор правил
Пример применения правил политики
Download