- •1. Определения и термины.
- •2. Сервисные модели QoS.
- •2.1. Best Effort Service.
- •2.2. Integrated Service (IntServ).
- •2.3. Differentiated Service (DiffServ).
- •3. Базовые функции QoS.
- •3.1. Классификация и разметка (Classification and Marking).
- •3.1.1. Layer 2 Classification and Marking.
- •3.1.2. Layer 3 Classification and Marking.
- •3.2. Управление перегрузками (Congestion Management). Механизм очередей.
- •3.2.1. Перегрузки (Congestions).
- •3.2.2. Layer 2 Queuing.
- •3.2.3. Layer 3 Queuing.
- •3.2.3.1. Fifo.
- •3.2.3.2. Pq. Очереди приоритетов.
- •3.2.3.3. Cq. Произвольные очереди.
- •3.2.3.4. Wfq. Взвешенные справедливые очереди.
- •3.2.3.5. Cbwfq.
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 !
