г.Москва, ул.Большая Переяславская, д.9 Телефон/факс: +7 (495) 680-3977

Cisco QoS для начинающих

Автор статьи Эдуард Афонцев

СОЕДРЖАНИЕ:

В настоящее время вместе с планомерным увеличением скоростей передачи данных в телекоммуникациях увеличивается доля интерактивного трафика, крайне чувствительного к параметрам среды транспортировки. Поэтому задача обеспечения качества обслуживания (Quality of Service - QoS) становится все более актуальной.

Рассмотрение вопроса подобной сложности лучше всего начинать с простых и понятных примеров настройки оборудования, например, фирмы Cisco. Представленный здесь материал, безусловно, не может конкурировать с www.cisco.com. Наша задача - начальная классификация огромного объема сведений в компактном виде с целью облегчения понимания и дальнейшего изучения.

1. Определения и термины.

Определений термина QoS настолько много, что мы выберем единственно верное - правильно, от Cisco : "QoS - QoS refers to the ability of a network to provide better service to selected network traffic over various underlying technologies:". Что можно литературно перевести как: "QoS - способность сети обеспечить необходимый сервис заданному трафику в определенных технологических рамках".

Необходимый сервис описывается многими параметрами, отметим среди них самые важные.

Bandwidth (BW) - полоса пропускания, описывает номинальную пропускную способность среды передачи информации, определяет ширину канала. Измеряется в bit/s (bps), kbit/s (kbps), mbit/s (mbps).

Delay - задержка при передаче пакета.

Jitter - колебание (вариация) задержки при передаче пакетов.

Packet Loss - потери пакетов. Определяет количество пакетов, отбрасываемых сетью во время передачи.

Чаще всего для описания пропускной способности канала проводят аналогию с водопроводной трубой. В ее рамках Bandwidth - это ширина трубы, а Delay - длина.

Время передачи пакета через канал Transmit time [s] = packet size [bytes] / bw [bytes/s].

Например, найдем время передачи пакета размером 64 байта по каналу шириной 64 килобита/c:

Packet size = 64*8=512 (bit) Transmit Time = 512/64000 = 0.008 (c)

2. Сервисные модели QoS.

2.1. Best Effort Service.

Негарантированная доставка. Абсолютное отсутствие механизмов QoS. Используются все доступные ресурсы сети без какого-либо выделения отдельных классов трафика и регулирования. Считается, что лучшим механизмом обеспечения QoS является увеличение пропускной способности . Это в принципе правильно, однако некоторые виды трафика (например, голосовой) очень чувствительны к задержкам пакетов и вариации скорости их прохождения. Модель Best Effort Service даже при наличии больших резервов допускает возникновение перегрузок в случае резких всплесков трафика. Поэтому были разработаны и другие подходы к обеспечению QoS.

2.2. Integrated Service (IntServ).

Integrated Service (IntServ, RFC 1633) - модель интегрированного обслуживания. Может обеспечить сквозное (End-to-End) качество обслуживания, гарантируя необходимую пропускную способность. IntServ использует для своих целей протокол сигнализации RSVP. Позволяет приложениям выражать сквозные требования к ресурсам и содержит механизмы обеспечения данных требований. IntServ можно кратко охарактеризовать как резервирование ресурсов (Resource reservation).

2.3. Differentiated Service (DiffServ).

Differentiated Service (DiffServ, RFC 2474/2475) - Модель дифференцированного обслуживания. Определяет обеспечение QoS на основе четко определенных компонентов, комбинируемых с целью предоставления требуемых услуг. Архитектура DiffServ предполагает наличие классификаторов и формирователей трафика на границе сети, а также поддержку функции распределения ресурсов в ядре сети в целях обеспечения требуемой политики пошагового обслуживания (Per-Hop Behavior - PHB). Разделяет трафик на классы, вводя несколько уровней QoS. DiffServ состоит из следующих функциональных блоков: граничные формирователи трафика (классификация пакетов, маркировка, управление интенсивностью) и реализаторы PHB политики (распределение ресурсов, политика отбрасывания пакетов). DiffServ можно кратко охарактеризовать как приоритезацию трафика (Prioritization).

3. Базовые функции QoS.

Базовые функции QoS заключаются в обеспечении необходимых параметров сервиса и определяются по отношению к трафику как: классификация, разметка, управление перегрузками, предотвращение перегрузок и регулирование. Функционально классификация и разметка чаще всего обеспечиваются на входных портах оборудования, а управление и предотвращение перегрузок - на выходных.

3.1. Классификация и разметка (Classification and Marking).

Классификация пакетов (Packet Classification) представляет собой механизм соотнесения пакета к определенному классу трафика.

Другой не менее важной задачей при обработке пакетов является маркировка пакетов (Packet Marking) - назначение соответствующего приоритета (метки).

В зависимости от уровня рассмотрения (имеется в виду OSI) эти задачи решаются по-разному.

3.1.1. Layer 2 Classification and Marking.

Коммутаторы Ethernet (Layer 2) используют протоколы канального уровня. Протокол Ethernet в чистом виде не поддерживает поле приоритета. Поэтому на Ethernet портах (Access Port) возможна лишь внутренняя (по отношению к коммутатору) классификация по номеру входящего порта и отсутствует какая-либо маркировка.

Более гибким решением является использование стандарта IEEE 802.1P, который разрабатывался совместно с 802.1Q. Иерархия отношений здесь следующая: 802.1D описывает технологию мостов и является базовой для 802.1Q и 802.1P. 802.1Q описывает технологию виртуальных сетей (VLAN), а 802.1P обеспечение качества обслуживания. В целом, включение поддержки 802.1Q (транк с виланами), автоматически дает возможность использования 802.1P. Согласно стандарту используются 3 бита в заголовке второго уровня, которые называются Class of Service (CoS). Таким образом, CoS может принимать значения от 0 до 7.

3.1.2. Layer 3 Classification and Marking.

Маршрутизирующее оборудование (Layer 3) оперирует IP пакетами, в которых под цели маркировки предусмотрено соответствующее поле в заголовке - IP Type of Service (ToS) размером один байт. ToS может быть заполнен классификатором IP Precedence или DSCP в зависимости от задачи. IP precedence (IPP) имеет размерность 3 бита (принимает значения 0-7). DSCP относится к модели DiffServ и состоит из 6 бит (значения 0-63).

Кроме цифровой формы, значения DSCP могут быть выражены с использованием специальных ключевых слов: доставка по возможности BE - Best Effort, гарантированная доставка AF - Assured Forwarding и срочная доставка EF - Expedited Forwarding. В дополнение к этим трем классам существуют коды селектора классов, которые добавляются к обозначению класса и обратно совместимы с IPP. Например, значение DSCP равное 26 можно записать как AF31, что полностью равнозначно.

MPLS содержит индикатор QoS внутри метки в соответствующих битах MPLS EXP (3 бита).

Промаркировать IP пакеты значением QoS можно разными способами: PBR, CAR, BGP.

Пример 1. Маркировка PBR

Policy Based Route (PBR) можно использовать с целью маркировки, производя ее в соответствующей подпрограмме (Route-map может содержать параметр set ip precedence):

!
interface FastEthernet0/0
ip address 192.168.0.2 255.255.255.0
ip policy route-map MARK
speed 100
full-duplex
no cdp enable
!
access-list 1 permit 192.168.0.0 0.0.0.255
!
route-map MARK permit 10
match ip address 1
set ip precedence priority
!

На выходе интерфейса можно увидеть результат (например, программой tcpdump под unix):

# tcpdump -vv -n -i em0
... IP (tos 0x20 ...)

Пример 2. Маркировка CAR.

Механизм Committed Access Rate (CAR) разработан для ограничения скорости, однако дополнительно может и маркировать пакеты (параметр set-prec-transmit в rate-limit):

!
interface FastEthernet0/0
ip address 192.168.0.2 255.255.255.252
rate-limit input access-group 1 1000000 10000 10000 conform-action set-prec-transmit 3 exceed-action set-prec-transmit 3
no cdp enable
!
access-list 1 permit 192.168.0.0 0.0.0.255
!

#sh interface FastEthernet0/0 rate-limit

3.2. Управление перегрузками (Congestion Management). Механизм очередей.

3.2.1. Перегрузки (Congestions).

Перегрузка возникает в случае переполнения выходных буферов передающего трафик оборудования. Основными механизмами возникновения перегрузок (или, что равнозначно, скоплений - congestions) является агрегация трафика (когда скорость входящего трафика превышает скорость исходящего) и несогласованность скоростей на интерфейсах.

Управление пропускной способностью в случае перегрузок (узких мест) осуществляется с помощью механизма очередей. Пакеты помещаются в очереди, которые упорядоченно обрабатываются по определенному алгоритму. Фактически, управление перегрузками - это определение порядка, в котором пакеты выходят из интерфейса (очередей) на основе приоритетов. Если перегрузок нет - очереди не работают (и не нужны). Перечислим методы обработки очередей.

3.2.2. Layer 2 Queuing.

Физическое устройство классического коммутатора можно упрощенно представить следующим образом: пакет приходит на входной порт, обрабатывается механизмом коммутации, который решает, куда направить пакет, и попадает в аппаратные очереди выходного порта. Аппаратные очереди представляет собой быструю память, хранящую пакеты перед тем, как они попадут непосредственно на выходной порт. Далее, согласно определенному механизму обработки, пакеты извлекаются из очередей и покидают коммутатор. Изначально очереди равноправны и именно механизм обработки очередей (Scheduling) определяет приоритезацию. Обычно каждый порт коммутатора содержит ограниченное число очередей: 2, 4, 8 и так далее.

В общих чертах настройка приоритезации заключается в следующем:

1. Изначально очереди равноправны. Поэтому предварительно необходимо их настроить, то есть определить очередность (или пропорциональность объема) их обработки. Чаще всего это делается привязкой приоритетов 802.1P к очередям.

2. Необходимо сконфигурировать обработчик очередей (Scheduler). Чаще всего используются взвешенный циклический алгоритм (Weighted Round Robin WRR) или строгая очередь приоритетов (Strict Priority Queuing).

3. Назначение приоритета поступающим пакетам: по входному порту, по CoS или, в случае дополнительных возможностей (Layer 3 switch), по каким-то полям IP.

Работает все это следующим образом:

1. Пакет попадает в коммутатор. Если это обычный Ethernet пакет (клиентский Access Port), то он не имеет меток приоритета и таковая может выставляться коммутатором, например, по номеру входного порта, если это нужно. Если входной порт транковый (802.1Q или ISL), то пакет может нести метку приоритета и коммутатор может ее принять или заменить на необходимую. В любом случае пакет на данном этапе попал в коммутатор и имеет необходимую разметку CoS.

2. После обработки процессом коммутации пакет в соответствии с меткой приоритета CoS направляется классификатором (Classify) в соответствующую очередь выходного порта. Например, критический трафик попадает в высокоприоритетную, а менее важный в низкоприоритетную очереди.

3. Механизм обработки (Scheduling) извлекает пакеты из очередей согласно их приоритетам. Из высокоприоритетной очереди за единицу времени будет выдано на выходной порт больше пакетов, чем из низкоприоритетной.

3.2.3. Layer 3 Queuing.

Маршрутизирующие устройства оперируют пакетами на третьем уровне OSI (Layer 3). Чаще всего поддержка очередей обеспечивается программно. Это означает в большинстве случаев отсутствие аппаратных ограничений на их число и более гибкое конфигурирование механизмов обработки. Общая парадигма QoS Layer 3 включает маркировку и классификацию пакетов на входе (Marking & Classification), распределение по очередям и их обработку (Scheduling) по определенным алгоритмам.

И еще раз подчеркнем, что приоритезация (очереди) требуется в основном только в узких, загруженных местах, когда пропускной способности канала не хватает для передачи всех поступающих пакетов и нужно каким-то образом дифференцировать их обработку. Кроме того, приоритезация необходима и в случае предотвращения влияния всплесков сетевой активности на чувствительный к задержкам трафик.

Проведем классификацию Layer 3 QoS по методам обработки очередей.

3.2.3.1. FIFO.

Элементарная очередь с последовательным прохождением пакетов, работающая по принципу первый пришел - первый ушел (First In First Out - FIFO), имеющему русский эквивалент кто первый встал того и тапки. По сути, здесь нет никакой приоритезации. Включается по умолчанию на интерфейсах со скоростью больше 2 мбит/с.

3.2.3.2. PQ. Очереди приоритетов.

Priority Queuing (PQ) обеспечивает безусловный приоритет одних пакетов над другими. Всего 4 очереди: high, medium, normal и low. Обработка ведется последовательно (от high до low), начинается с высокоприоритетной очереди и до ее полной очистки не переходит к менее приоритетным очередям. Таким образом, возможна монополизация канала высокоприоритетными очередями. Трафик, приоритет которого явно не указан, попадет в очередь по умолчанию (default).

Параметры команды.
распределение протоколов по очередям:
priority-list LIST_NUMBER protocol PROTOCOL {high|medium|normal|low} list ACCESS_LIST_NUMBER
определение очереди по умолчанию:
priority-list LIST_NUMBER default {high|medium|normal|low}
определение размеров очередей (в пакетах):
priority-list LIST_NUMBER queue-limit HIGH_QUEUE_SIZE MEDIUM_QUEUE_SIZE NORMAL_QUEUE_SIZE LOW_QUEUE_SIZE

обозначения:
LIST_NUMBER - номер обработчика PQ (листа)
PROTOCOL - протокол
ACCESS_LIST_NUMBER - номер аксесс листа
HIGH_QUEUE_SIZE - размер очереди HIGH
MEDIUM_QUEUE_SIZE - размер очереди MEDIUM
NORMAL_QUEUE_SIZE - размер очереди NORMAL
LOW_QUEUE_SIZE - размер очереди LOW

Алгоритм настройки.

1. Определяем 4 очереди
access-list 110 permit ip any any precedence network
access-list 120 permit ip any any precedence critical
access-list 130 permit ip any any precedence internet
access-list 140 permit ip any any precedence routine

priority-list 1 protocol ip high list 110
priority-list 1 protocol ip medium list 120
priority-list 1 protocol ip normal list 130
priority-list 1 protocol ip low list 140
priority-list 1 default low

Дополнительно можно установить размеры очередей в пакетах
priority-list 1 queue-limit 30 60 90 120

2. Привязываем к интерфейсу

!
interface FastEthernet0/0
ip address 192.168.0.2 255.255.255.0
speed 100
full-duplex
priority-group 1
no cdp enable
!

3. Просмотр результата
# sh queueing priority

Current priority queue configuration:

List Queue Args - -
1 low default -
1 high protocol ip list 110
1 medium protocol ip list 120
1 normal protocol ip list 130
1 low protocol ip list 140

#sh interfaces fastEthernet 0/0
:
Queueing strategy: priority-list 1
:

#sh queueing interface fastEthernet 0/0
Interface FastEthernet0/0 queueing strategy: priority

Output queue utilization (queue/count)
high/19 medium/0 normal/363 low/0

3.2.3.3. CQ. Произвольные очереди.

Custom Queuing (CQ) обеспечивает настраиваемые очереди. Предусматириваетмя управление долей полосы пропускания канала для каждой очереди. Поддерживается 17 очередей. Системная 0 очередь зарезервирована для управляющих высокоприоритетных пакетов (маршрутизация и т.п.) и пользователю недоступна.

Очереди обходятся последовательно, начиная с первой. Каждая очередь содержит счетчик байт, который в начале обхода содержит заданное значение и уменьшается на размер пакета, пропущенного из этой очереди. Если счетчик не ноль, то пропускается следующий пакет целиком, а не его фрагмент, равный остатку счетчика.

Параметры команды.
определение полосы пропускания очередей:
queue-list LIST-NUMBER queue QUEUE_NUMBER byte-count
BYTE_COUT

определение размеров очередей:
queue-list LIST-NUMBER queue QUEUE_NUMBER limit QUEUE_SIZE

обозначения:
LIST-NUMBER - номер обработчика
QUEUE_NUMBER - номер очереди
BYTE_COUT - размер очереди в пакетах

Алгоритм настройки.

1. Определяем очереди
access-list 110 permit ip host 192.168.0.100 any
access-list 120 permit ip host 192.168.0.200 any

queue-list 1 protocol ip 1 list 110
queue-list 1 protocol ip 2 list 120
queue-list 1 default 3

queue-list 1 queue 1 byte-count 3000
queue-list 1 queue 2 byte-count 1500
queue-list 1 queue 3 byte-count 1000

Дополнительно можно установить размеры очередей в пакетах
queue-list 1 queue 1 limit 50
queue-list 1 queue 2 limit 50
queue-list 1 queue 3 limit 50

2. Привязываем к интерфейсу
!
interface FastEthernet0/0
ip address 192.168.0.2 255.255.255.0
speed 100
full-duplex
custom-queue-list 1
no cdp enable
!

3. Просмотр результата
#sh queueing custom

Current custom queue configuration:

List Queue Args -
1 3 default -
1 1 protocol ip list 110
1 2 protocol ip list 120
1 1 byte-count 1000 -
1 2 byte-count 1000 -
1 3 byte-count 2000 -

#sh interface FastEthernet0/0
:
Queueing strategy: custom-list 1
:

#sh queueing interface fastEthernet 0/0
Interface FastEthernet0/0 queueing strategy: custom

Output queue utilization (queue/count)
0/90 1/0 2/364 3/0 4/0 5/0 6/0 7/0 8/0
9/0 10/0 11/0 12/0 13/0 14/0 15/0 16/0

3.2.3.4. WFQ. Взвешенные справедливые очереди.

Weighted Fair Queuing (WFQ) автоматически разбивает трафик на потоки (flows). По умолчанию их число равно 256, но может быть изменено (параметр dynamic-queues в команде fair-queue). Если потоков больше, чем очередей, то в одну очередь помещается несколько потоков. Принадлежность пакета к потоку (классификация) определяется на основе TOS, протокола, IP адреса источника, IP адреса назначения, порта источника и порта назначения. Каждый поток использует отдельную очередь.

Обработчик WFQ (scheduler) обеспечивает равномерное (fair - честное) разделение полосы между существующими потоками. Для этого доступная полоса делится на число потоков и каждый получает равную часть. Кроме того, каждый поток получает свой вес (weight), с некоторым коэффициентом обратно пропорциональный IP приоритету (TOS). Вес потока также учитывается обработчиком.

В итоге WFQ а втоматически справедливо распределяет доступную пропускную способность, дополнительно учитывая TOS. Потоки с одинаковыми IP приоритетами TOS получат равные доли полосы пропускания; потоки с большим IP приоритетом - большую долю полосы. В случае перегрузок ненагруженные высокоприоритетные потоки функционируют без изменений, а низкоприоритетные высоконагруженные - ограничиваются.

Вместе с WFQ работает RSVP. По умолчанию WFQ включается на низкоскоростных интерфейсах.

Алгоритм настройки.
1. Помечаем трафик каким-либо способом (устанавливаем IP приоритет - TOS) или получаем его помеченным

2. Включаем WFQ на интерфейсе
interface FastEthernet0/0
fair-queue

interface FastEthernet0/0
fair-queue CONGESTIVE_DISCARD_THRESHOLD DYNAMIC_QUEUES

Параметры:
CONGESTIVE_DISCARD_THRESHOLD - число пакетов в каждой очереди, при превышении которого пакеты игнорируются (по умолчанию - 64)
DYNAMIC_QUEUES - число подочередей, по которым классифицируется трафик (по умолчанию - 256)

3. Просмотр результата
# sh queueing fair
# sh queueing interface FastEthernet0/0

3.2.3.5. CBWFQ.

Class Based Weighted Fair Queuing (CBWFQ) соответствует механизму обслуживания очередей на основе классов. Весь трафик разбивается на 64 класса на основании следующих параметров: входной интерфейс, аксесс лист (access list), протокол, значение DSCP, метка MPLS QoS.

Общая пропускная способность выходного интерфейса распределяется по классам. Выделяемую каждому классу полосу пропускания можно определять как в абсолютное значение (bandwidth в kbit/s) или в процентах (bandwidth percent) относительно установленного значения на интерфейсе.

Пакеты, не попадающие в сконфигурированные классы, попадают в класс по умолчанию, который можно дополнительно настроить и который получает оставшуюся свободной полосу пропускания канала. При переполнении очереди любого класса пакеты данного класса игнорируются. Алгоритм отклонения пакетов внутри каждого класса можно выбирать: включенное по умолчанию обычное отбрасывание (tail-drop, параметр queue-limit) или WRED (параметр random-detect). Только для класса по умолчанию можно включить равномерное ( честное ) деление полосы (параметр fair-queue).

CBWFQ поддерживает взаимодействие с RSVP.

Параметры команды.

критерии отбора пакетов классом:
class-map match-all CLASS
match access-group
match input-interface
match protocol
match ip dscp
match ip rtp
match mpls experimental

определение класса:

class CLASS
bandwidth BANDWIDTH
bandwidth percent BANDWIDTH_PERCENT
queue-limit QUEUE-LIMIT
random-detect

определение класса по умолчанию (default):

class class-default
bandwidth BANDWIDTH
bandwidth percent BANDWIDTH_PERCENT
queue-limit QUEUE-LIMIT
random-detect
fair-queue

обозначения:
CLASS - название класса.
BANDWIDTH - минимальная полоса kbit/s, значение независимо от bandwidth на интерфейсе.
BANDWIDTH_PERCENT - процентное соотношение от bandwidth на интерфейсе.
QUEUE-LIMIT - максимальное количество пакетов в очереди.
random-detect - использование WRED.
fair-queue - равномерное деление полосы, только для класса по умолчанию

По умолчанию абсолютное значение Bandwidth в классе CBWFQ не может превышать 75% значение Bandwidth на интерфейсе. Это можно изменить командой max-reserved-bandwidth на интерфейсе.

Алгоритм настройки.

1. Распределение пакетов по классам - class-map
access-list 101 permit ip any any precedence critical

class-map match-all Class1
match access-group 101

2. Описание правил для каждого класса - policy-map
policy-map Policy1
class Class1
bandwidth 100
queue-limit 20
class class-default
bandwidth 50
random-detect

3. Запуск заданной политики на интерфейсе - service-policy
interface FastEthernet0/0
bandwidth 256
service-policy output Policy1

4. Просмотр результата
#sh class Class1
#sh policy Policy1
#sh policy interface FastEthernet0/0

Пример 1.

Деление общей полосы по классам в процентном соотношении (40, 30, 20).
access-list 101 permit ip host 192.168.0.10 any
access-list 102 permit ip host 192.168.0.20 any
access-list 103 permit ip host 192.168.0.30 any

class-map match-all Platinum
match access-group 101
class-map match-all Gold
match access-group 102
class-map match-all Silver
match access-group 103

policy-map Isp
class Platinum
bandwidth percent 40
class Gold
bandwidth percent 30
class Silver
bandwidth percent 20

interface FastEthernet0/0
bandwidth 256
service-policy output Isp

3.2.3.6. LLQ.

Low Latency Queuing (LLQ) - очередность с низкой задержкой. LLQ можно рассматривать как механизм CBWFQ с приоритетной очередью PQ (LLQ = PQ + CBWFQ).
PQ в LLQ позволяет обеспечить обслуживание чувствительного к задержке трафика. LLQ рекомендуется в случае наличия голосового (VoIP) трафика. Кроме того, он хорошо работает с видеоконференциями.

Алгоритм настройки.

1. Распределение пакетов по классам - Class-map
access-list 101 permit ip any any precedence critical

class-map match-all Voice
match ip precedence 6
class-map match-all Class1
match access-group 101

2. Описание правил для каждого класса - Policy-map

Аналогично CBWFQ, только для приоритетного класса (он один) указывается параметр priority.
policy-map Policy1
class Voice
priority 1000
class Class1
bandwidth 100
queue-limit 20
class class-default
bandwidth 50
random-detect

3. Запуск заданной политики на интерфейсе - Service-policy
interface FastEthernet0/0
bandwidth 256
service-policy output Policy1

Пример 1.
Относим класс Voice к PQ, а все остальное к CQWFQ.
!
class-map match-any Voice
match ip precedence 5
!
policy-map Voice
class Voice
priority 1000
class VPN
bandwidth percent 50
class class-default
fair-queue 16
!
interface X
Sevice-policy output Voice
!

Пример 2.
Дополнительно ограничиваем общую скорость для PQ в LLQ, чтобы он не монополизировал весь канал в случае неправильной работы.
!
class-map match-any Voice
match ip precedence 5
!
policy-map Voice
class Voice
priority 1000
police 1024000 32000 32000 conform-action transmit exceed-action drop
class Vpn
bandwidth percent 50
class class-default
fair-queue 16
!
interface FastEthernet0/0
service-policy output Voice
!

3.3. Предотвращение перегрузок (Congestion avoidance).

3.3.1. RED

Random Early Detection (RED) используется в скоростных сетях для предупреждения перегрузок. Затрагивает только TCP. Путем отбрасывания случайным образом пакетов из наиболее мощных потоков вынуждает посылающую сторону уменьшить скорость передачи (используя соответствующие свойства TCP протокола - окно перегрузки, Congestion Window). Доля отбрасываемых пакетов регулируется при конфигурации.

Алгоритм настройки.

Настройка заключается в активации RED на интерфейсе.

interface FastEthernet0/0
random-detect

3.3.2 ECN

Explicit Congestion Notification (ECN) использует ту же логику, что и RED, но не отбрасывает пакеты, а уведомляет о необходимости ограничения, маркируя их (устанавливает в IP заголовке ECN биты).

3.4. Регулирование интенсивности.

3.4.1. Layer 2 Регулирование интенсивности.

Современные коммутаторы позволяют регулировать интенсивность трафика несколькими способами.

Flow control предназначен для детектирования и сигнализации передающей стороне о превышении скорости поступления пакетов.

Storm control ограничивает предельное значение скорости пакетов на интерфейсе, выше которого будет происходить отбрасывание.

Bandwidth чаще всего дискретно регулирует полосу пропускания на портах.

3.4.2. Layer 3 Регулирование интенсивности.

3.4.2.1. Police.

Ограничитель (Policer) соответственно ограничивает поток трафика до нужной величины методом простого отбрасывания пакетов, поступающих с выходящей за рамки скоростью. Может работать как на входящем, так и на выходящем интерфейсах. Кратко можно охарактеризовать как ОГРАНИЧИТЕЛЬ интенсивности методом ОТБРАСЫВАНИЯ при превышении заданной скорости.

Назначение применения: ограничение трафика до скорости контракта, то есть управление интенсивностью. Следует отметить, что ограничение трафика может помочь и в случае предотвращения DOS атак.

Область применения: как на входных, так и на выходных портах. Чаще всего на входных, так как в этом случае отбрасываемые пакеты не доходят до процесса маршрутизации и таким образом экономятся ресурсы. К ограничителям трафика относится механизм Committed Access Rate (CAR).

Параметры команды.

CAR

rate-limit {input|output} access-group ACCESS_LIST BIT_RATE BURST_NORMAL BURST_MAX conform-action ACTION exceed-action ACTION

POLICE

police BIT_RATE BURST_NORMAL BURST_MAX conform-action ACTION exceed-action ACTION

обозначения:

ACCESS_LIST - аксесс лист классификации

BIT_RATE - допустимая скорость (bit/s)

BURST_NORMAL - размер всплеска (в байтах)

BURST_MAX - максимальный размер всплеска (в байтах)

conform-action ACTION - действие при соответствии ограничению:

drop - уничтожить
transmit - передать
set-dscp-transmit - пометить пакет

exceed-action ACTION - действие при превышении ограничения:

drop - уничтожить
transmit - передать
set-dscp-transmit - пометить пакет

Пример 1.

CAR ограничение UDP до 8 кбит, TCP и ICMP до 80 кбит.

!
interface Ethernet0/1
ip address 192.168.0.5 255.255.255.252
rate-limit output access-group 100 8000 2000 2000 conform-action drop exceed-action drop
rate-limit output access-group 101 80000 8000 8000 conform-action drop exceed-action drop
full-duplex
priority-group 1
no cdp enable
!
access-list 100 permit udp any any
access-list 101 permit tcp any any
access-list 101 permit icmp any any
!

Пример 2.

CAR ограничение трафика клиента 192.168.0.2 до 128 kbit/s со стороны ISP.

!
interface FastEthernet0/0
description INTERNET
ip address 194.226.248.67 255.255.255.252
rate-limit output access-group 101 128000 8000 8000 conform-action transmit exceed-action drop
no cdp enable
!
interface FastEthernet0/1
description CLIENT
ip address 192.168.0.1 255.255.255.252
rate-limit output access-group 102 128000 8000 8000 conform-action transmit exceed-action drop
!
access-list 101 permit ip host 192.168.0.2 any
access-list 102 permit ip any host 192.168.0.2
!

Пример 3.

Police ограничение трафика клиента 192.168.0.2 до 128 kbit/s со стороны ISP.

!
class-map match-all Traf1
match access-group 101
!
!
class-map match-all Traf2
match access-group 102
!
policy-map Policy1
class Traf1
police 128000 8000 8000 conform-action transmit exceed-action drop
!
policy-map Policy2
class Traf2
police 128000 8000 8000 conform-action transmit exceed-action drop
!
interface FastEthernet0/0
description INTERNET
ip address 194.226.248.67 255.255.255.252
service-policy output Policy1
no cdp enable
!
interface FastEthernet0/1
description CLIENT
ip address 192.168.0.1 255.255.255.252
service-policy output Policy2
no cdp enable
!
access-list 101 permit ip host 192.168.0.2 any
access-list 102 permit ip any host 192.168.0.2
!

3.4.2.2. Shaping.

Формирователь (шейпер, Shaper) обычно задерживает исходящий трафик, используя буфер или механизм очередей, формируя поток с нужными параметрами. Выполняет функции сглаживания. Применяется для ограничения пропускной способности на выходе из интерфейса. Кратко можно охарактеризовать как ОГРАНИЧИТЕЛЬ-ВЫРАВНИВАТЕЛЬ интенсивности методом ЗАДЕРЖКИ (буферизации пакетов) и дальнейшей пересылки с согласованной интенсивностью при превышении заданной скорости. Декларируется, что шейпинг более дружественен к TCP, чем полисинг.

Назначение применения:

1. В случае, если где-то далее в сети применяется полисинг, который, как известно, приводит к отбрасыванию пакетов. Лучше заранее на подходах "мягко" ограничить трафик перед полисингом.

2. В случае, если где-то далее в сети возможно переполнение входных очередей, а QoS там не настроен или невозможен.

3. Ограничение скорости доступа до контрактных значений.

Область применения: всегда на выходном интерфейсе.

Параметры команды.

traffic-shape group ACCESS_LIST BIT_RATE BURST_SIZE EXCESS_BURST_SIZE BUFFER_LIMIT

обозначения:

ACCESS_LIST - аксесс лист классификации

BIT_RATE - допустимая скорость (bit/s)

BURST_SIZE - размер всплеска (в байтах), по умолчанию равен BIT_RATE/8

EXCESS_BURST_SIZE - превышение размера всплеска (в байтах), по умолчанию равен BURST_SIZE

BUFFER_LIMIT - размер буфера

Пример 1.

Ограничение UDP до 8 kbit/s.

!
interface Ethernet0/1
ip address 192.168.0.5 255.255.255.252
full-duplex
traffic-shape group 100 8000 1500 2000 1000
no cdp enable
!
access-list 100 permit udp any any
!

Пример 2.

Ограничение UDP до 8 kbit/s, TCP и ICMP до 14 kbit/s.

!
interface FastEthernet0/0
ip address 192.168.0.5 255.255.255.252
traffic-shape group 101 8000 2000 2000 2000
traffic-shape group 102 14000 2000 2000 2000
no cdp enable
!
access-list 101 permit udp any any
access-list 102 permit tcp any any
access-list 102 permit icmp any any
!

#sh traffic-shape FastEthernet0/0

Пример 3.

Ограничение TCP и ICMP до 64 kbit/s.

!
class-map match-all Traf1
match access-group 102
!
policy-map Policy1
class Traf1
shape peak 64000
!
!
interface FastEthernet0/0
ip address 192.168.0.2 255.255.255.252
no cdp enable
!
interface FastEthernet0/1
ip address 192.168.0.5 255.255.255.252
service-policy output Policy1
no cdp enable
!
access-list 102 permit tcp any any
access-list 102 permit icmp any any
!

Пример 4.

Ограничение трафика клиента 192.168.0.2 до 128 kbit/s со стороны ISP.

!
interface FastEthernet0/0
description INTERNET
ip address 194.226.248.67 255.255.255.252
traffic-shape group 101 128000 7936 7936 1000
no cdp enable
!
interface FastEthernet0/1
description CLIENT
ip address 192.168.0.1 255.255.255.252
traffic-shape group 102 128000 7936 7936 1000
!
access-list 101 permit ip host 192.168.0.2 any
access-list 102 permit ip any host 192.168.0.2
!

Пример 5.

Ограничение трафика клиента (до 64 kbit/s) со стороны ISP.

!
class-map match-all Traf1
match access-group 101
!
!
class-map match-all Traf2
match access-group 102
!
policy-map Policy1
class Traf1
shape peak 64000
!
policy-map Policy2
class Traf2
shape peak 64000
!
interface FastEthernet0/0
description INTERNET
ip address 194.226.248.67 255.255.255.252
service-policy output Policy1
no cdp enable
!
interface FastEthernet0/1
description CLIENT
ip address 192.168.0.1 255.255.255.252
service-policy output Policy2
no cdp enable
!
access-list 101 permit ip host 192.168.0.2 any
access-list 102 permit ip any host 192.168.0.2

3.5. Сигнализация.

3.5.1. RSVP.

Протокол RSVP определен IETF в качестве сигнального протокола для архитектуры IntServ. Данный протокол позволяет конечным системам произвести запрос резервирования ресурсов по доступному маршрутизируемому пути в сети и повлиять на обработку своих потоков.

Процесс резервирования разбивается на несколько этапов:

1. Отправитель данных посылает управляющее сообщение RSVP PATH по пути предполагаемого распространения данных.

2. Все маршрутизаторы (поддерживающие RSVP) заменяют IP адрес отправителя на свой и отправляют измененное PATH сообщение дальше.

3. Получатели отвечают на PATH сообщением RSVP RESV, в котором описываются требования к сетевой среде (резервирование ресурсов). RSVP RESV идут от получателя к отправителю в противоположном направлении по отношению к маршруту RSVP PATH.

4. RSVP маршрутизаторы, получающие RESV, определяют возможность их выполнения. Если ресурсов хватает, то пакет передается дальше, если нет - отказ.

5. Отправитель, получив в итоге RESV, считает процедуру резервирования состоявшейся. Отметим, что реальное резервирование осуществляется сообщениями RESV.

Протокол RSVP является только средством сигнализации, обеспечением QoS занимаются другие механизмы.

4. Автоматизация.

4.1. Cisco QoS Policy manager.

Cisco QoS Policy manager является инструментом конфигурирования QoS. Предоставляет возможность централизованного управления политикой QoS.

4.2. Cisco AutoQoS.

Упрощает конфигурирование QoS. Заключается в:

1. Автоматический сбор информации о трафике для всех протоколов (а значит и приложений), используя NBAR, DSCP. Запускается AutoDiscovery для профилирования трафика:

Включение на интерфейсе

interface FastEthernet0/0
auto discovery qos

Просмотр

# sh auto discovery qos

2. Автоматическое генерирование параметров QoS (политик) и их применение:

interface FastEthernet0/0
auto qos

Просмотр

# sh auto qos

Приложения.

Модульный интерфейс.

Структура модульного интерфейса (Command Line Interface CLI QoS) при использовании классовой политики:

!описание класса class-map CLASS

! критерии по которым классифицируется пакет
match access-group
match input-interface
match ip dscp
match ip rtp
match protocol
match mpls experimental
match not

!описание политики
policy-map POLICY

! входящий в политику класс (классов может быть несколько)
class CLASS

! police - ограничитель (аналог CAR), МАКСИМАЛЬНАЯ полоса,
! предоставляемая классу
police bps burst-normal burst-max conform-action ACTION exceed-action ACTION violate-action ACTION

! шейпер
shape average - шейпер (максимум того, что может получить очередь)
shape peak - шейпер (максимум того, что может получить очередь)

! priority - приоритетный трафик (PQ в LLQ), ГАРАНТИРОВАННАЯ полоса
! абсолютное значение
priority BANDWIDTH-KBPS
! в процентах от полосы, определенной на интерфейсе
priority percent PERCENTAGE

! bandwidth - МИНИМАЛЬНАЯ полоса (CBWFQ), превышение допустимо в
! случае наличия резервов

! абсолютное значение
bandwidth kbps
! в процентах от полосы, определенной на интерфейсе
bandwidth percent

queue-limit NUMBER-OF-PACKETS- максимальное число пакетов, которое поддеоживается очередью класса (означает tail-drop)

random-detect - включение RED

fair-queue number-of-queues - WFQ только для класса по умолчанию

! дополнительно можно произвести маркировку
set cos COS-VALUE
set ip dscp IP-DSCP-VALUE
set ip precedence
set qos-group QOS-GROUP-VALUE
set mpls experimental VALUE

! применение политики к интерфейсу
interface INTERFACE
service-policy output POLICY

Иерархические политики.

Пример 1.

Внутри базового ограниченного класса организуются полосы для подклассов трафика.

class-map tcp
match

class-map telnet
match

class-map ftp
match

! определяем подклассы по 1 мбит
policy-map telnet-ftp
class telnet
rate-limit 1000000
class ftp
rate-limit 1000000

! определяем базовый класс 10 мбит
policy-map tcp-hier
class tcp
rate-limit 10000000
service-policy telnet-ftp

interface X
service-policy tcp-hier

Пример 2.

Ограничение клиентов. Общий канал делится на двух клиентов. Один получает 128 кбит, другой - 512 кбит. Трафик каждого дополнительно разбивается на полосы в определенной пропорции.

policy-map client1-classes
class gold
bandwidth percent 50
class silver
bandwidth percent 25
class bronze
bandwidth percent 10

policy-map client2-classes
class gold
bandwidth percent 30
class silver
bandwidth percent 10
class bronze
bandwidth percent 5

policy-map clients-policy
class client1
shape average 128000
service-policy client1-classes
class client2
shape peak 512000
service-policy client2-classes

interface FastEthernet0/0
service-policy output clients-policy

Материал взят с сайта: http://network.xsp.ru/3_11.php, http://network.xsp.ru/3_12.php
НАШИ УСЛУГИ

РЕМОНТ КОМПЬЮТЕРОВ
РЕМОНТ НОУТБУКОВ
РЕМОНТ НЕТБУКОВ
РЕМОНТ ОРГТЕХНИКИ
УСТАНОВКА ПРОГРАММ
ВОССТАНОВЛЕНИЕ ДАННЫХ

МОНТАЖ СКС
ЗАПРАВКА КАРТРИДЖЕЙ

ДОКУМЕНТАЦИЯ
АДРЕС
КОНТАКТЫ
Все права на использование сайта принадлежат ООО "Моссервис" © 2001-2018