Диагностика и устранение перегрузки очередей QoS, CoS и DSCP
При деградации качества обслуживания (QoS) в корпоративных и датацентровых сетях фиксируются:
- Дропы критического трафика (VoIP, видеоконференции, SAN-трафик, кластерные хартбиты) на интерфейсах с высокой утилизацией.
- Рост счетчиков
output discard,tail drops,buffer overrunв выводе диагностики интерфейсов. - Перемаркировка или сброс меток DSCP (DiffServ) и CoS (802.1p) пограничными маршрутизаторами и фаерволами.
- Высокий джиттер (Jitter) и задержка (Latency) в очередях низкого приоритета (Best Effort) из-за монополизации полосы очередью Strict Priority.
1. Проверка маппинга и доверия к меткам (Trust State)
Убедитесь, что пограничные порты находятся в режиме доверия DSCP или CoS, иначе метки обнуляются в Best Effort (DSCP 0):
# Cisco IOS-XE:
show mls qos interface GigabitEthernet0/0/1
show table-map
# Включение доверия DSCP:
interface GigabitEthernet0/0/1
qos trust dscp
exit2. Анализ состояния очередей и сбросов (Drops)
# Проверка счетчиков аппаратных очередей:
show policy-map interface GigabitEthernet0/0/1
show platform hardware qfp active feature qos interface GigabitEthernet0/0/1
# MikroTik RouterOS:
/queue tree print stats
/queue interface monitor [find]3. Конфигурация корректной MQC политики (Modular QoS CLI)
# Классификация трафика по ACL/DSCP:
class-map match-any VOICE_CLASS
match dscp ef
match cos 5
class-map match-any CRITICAL_DATA
match dscp af31 af32
# Создание политики распределения полосы и очередей:
policy-map EGRESS_QOS
class VOICE_CLASS
priority level 1
police 50000 conform-action transmit exceed-action drop
class CRITICAL_DATA
bandwidth percent 40
random-detect dscp-based
class class-default
bandwidth percent 50
fair-queue
random-detect
# Привязка к физическому интерфейсу:
interface GigabitEthernet0/0/1
service-policy output EGRESS_QOS4. Тюнинг WRED (Weighted Random Early Detection)
Настройка плавного сброса пакетов TCP для предотвращения глобальной синхронизации TCP (Global Synchronization):
policy-map EGRESS_QOS
class CRITICAL_DATA
random-detect dscp 26 100 200 10
random-detect dscp 28 80 160 10 Частые вопросы (FAQ)
В чем разница между CoS и DSCP?
CoS (Class of Service) — это 3-битное поле в теге VLAN стандарта 802.1Q (Layer 2), принимающее значения от 0 до 7. DSCP (Differentiated Services Code Point) — это 6-битное поле в заголовке IP-пакета (ToS byte, Layer 3), позволяющее задавать до 64 классов обслуживания.
Что такое Global TCP Synchronization и как QoS предотвращает ее?
При переполнении очереди (Tail Drop) одновременно сбрасываются пакеты сотен TCP-сессий, из-за чего все отправители синхронно снижают окно передачи (TCP Slow Start), а затем одновременно его увеличивают. Алгоритм WRED сбрасывает пакеты случайно до полного заполнения буфера, сглаживая колебания утилизации.
Почему нельзя выделять всю полосу под Strict Priority (LLQ)?
Очередь с абсолютным приоритетом (Strict Priority) обрабатывается планировщиком раньше всех остальных. Если ее не ограничить через встроенный полисинг (police), при всплеске приоритетного трафика наступит полное голодание (starvation) остальных очередей, включая протоколы управления сетью (BGP, OSPF, SSH).
Что означает метка DSCP EF и AF41?
EF (Expedited Forwarding, DSCP 46) предназначена для трафика реального времени с минимальными задержками (Voice). Классы AF (Assured Forwarding, например AF41 = DSCP 34) гарантируют выделенную полосу с низким порогом вероятности сброса пакетов.