Перейти к содержимому
QoS в сетях: классификация, DSCP и приоритизация трафика для CCNA | Стефан Жаврид

QoS в сетях: классификация, DSCP и приоритизация трафика для CCNA

Привет! Меня зовут Стефан Жаврид. Когда я впервые столкнулся с QoS, мне показалось, что это тёмное искусство: куча терминов, непонятные значения DSCP и постоянное ощущение, что настраиваешь что-то, что не работает. На самом деле логика простая, если начать с проблемы, которую QoS решает. В этой статье я разберу, зачем нужна приоритизация, как работает классификация и маркировка, и что из этого спрашивают на CCNA.

Для новичков: зачем вообще нужен QoS

Представьте дорогу. Если машин мало — все едут с комфортной скоростью. Если машин больше, чем полос, образуется пробка. Сеть работает так же: в какой-то момент трафика становится больше, чем может пропустить канал. Это место называется точкой перегрузки (congestion point).

В сети почти всегда есть узкое звено: один канал, который медленнее остальных, или одно устройство, через которое идёт всё. Именно на нём возникает перегрузка, и именно там маршрутизатору или коммутатору нужно решить: какой трафик отправить первым, какой отложить, а какой отбросить.

QoS (Quality of Service) — это набор механизмов, которые говорят сети, как обращаться с разными типами трафика при перегрузке. Голос должен идти первым, потому что задержка в 200 мс убивает разговор. Файловая копия может подождать. Без QoS всё идёт по принципу best effort — кто первый встал, того и тапки.

Коротко для тех, кто спешит: QoS нужен, когда трафика больше, чем канал. Он работает в три шага: классификация (определить тип трафика), маркировка (поставить метку в пакет) и обработка (очереди, приоритеты, отбрасывание). Самая частая метка — DSCP в поле ToS заголовка IP.

Перегрузка: почему нельзя просто расширить канал

Первый вопрос, который возникает: почему бы просто не сделать каналы достаточно широкими, чтобы перегрузки не было? Иногда это работает — избыточное выделение ресурсов действительно лучший QoS из всех. Но не всегда.

Причины, по которым расширение канала не решает проблему:

  • Некоторые приложения забирают всю доступную полосу. Если канал шире, они займут и его. Перегрузка для остальных останется.
  • Всплески трафика. Приложение может молчать, а потом выдать гигабит за секунду. Канал на пике всё равно перегрузится.
  • TCP сам создаёт перегрузку. Он периодически ускоряется, чтобы проверить, сколько полосы доступно. Это нормальное поведение, но оно создаёт кратковременные перегрузки.
  • Деньги. Часто расширить канал можно, но это непропорционально дорого. Например, в дата-центре коммутатор ToR имеет 48 портов 10GbE к серверам и 4 порта 40GbE к остальной сети. Соотношение переподписки 3:1 — норма. Сделать его 1:1 можно, но стоимость вырастет в разы.
  • WAN-каналы. Дальние линии связи, которые арендуются у провайдеров, почти всегда медленнее локальных. Университетский кампус может иметь 100 Гбит/с внутри, а до филиала — 1 Гбит/с. И это не изменится, потому что оптика через полмира стоит дорого.
Схема точки перегрузки: два потока трафика сходятся в узкий канал Точка перегрузки: узкое звено в сети A B C узкий канал D G E A → G B → E Потоки A→G и B→E сходятся в канале C→D Если каждый поток занимает почти всю полосу, C→D становится узким звеном
Рис. 1. Два потока трафика сходятся в одном канале. Если суммарный трафик превышает пропускную способность, канал становится точкой перегрузки — и здесь нужен QoS.

Классификация и маркировка: два шага, которые решают всё

QoS начинается с того, что трафик нужно разделить на классы. Нельзя настроить отдельную политику для каждого приложения в мире — их слишком много. Поэтому трафик группируют: например, голос, бизнес-критичные приложения, трафик управления сетью и всё остальное (best effort).

Обычно используют от 4 до 8 классов. Больше — сложнее настраивать и поддерживать, и профит от этого сомнительный.

Классификация vs маркировка

  • Классификация — определение, к какому классу относится пакет. Можно по адресу, порту, размеру, протоколу. Это локальная операция: она действует только на том устройстве, которое её выполнило.
  • Маркировка — запись метки в сам пакет. После этого все последующие устройства читают метку и не тратят ресурсы на повторную классификацию.

Правильная схема выглядит так: классифицировать пакет один раз, на входе в сеть, пометить его, а дальше на каждом устройстве просто читать метку. Это экономит ресурсы и даёт единообразие.

Моя ошибка: на первом проекте с QoS я классифицировал трафик на каждом устройстве отдельно. Через месяц конфигурация стала нечитаемой, а при добавлении нового приложения приходилось править десятки ACL. С тех пор я маркирую один раз на границе и дальше только читаю метку.

Метки: ToS, DSCP и границы доверия

Самый распространённый способ маркировки — поле ToS (Type of Service) в заголовке IPv4. В IPv6 есть аналогичное поле Traffic Class. Восемь бит ToS делятся на две части: шесть бит DSCP (Differentiated Services Code Point) и два неиспользуемых бита.

Схема поля ToS в заголовке IPv4: шесть бит DSCP и два неиспользуемых бита Поле ToS в заголовке IPv4 (8 бит) DSCP (6 бит) unused (2 бита) определяет класс трафика и приоритет отбрасывания не используются Пример: EF = 101110₂ = 46 (для голоса)
Рис. 2. Поле ToS — восемь бит. Шесть из них занимает DSCP, два не используются. Значения DSCP определяют, как трафик будет обрабатываться на каждом устройстве.

Для DSCP есть стандартные значения, описанные в RFC. Я приведу самые используемые:

Метка Значение DSCP Для чего
EF (Expedited Forwarding) 46 Голос, критичный к задержке трафик
AF41 34 Видеоконференции
AF31 26 Бизнес-критичные приложения
CS6 48 Управление сетью (протоколы маршрутизации, SNMP)
CS0 / BE 0 Best effort, по умолчанию

Граница доверия

Есть проблема: если разрешить любому приложению ставить себе метку, все поставят максимальный приоритет. Тогда приоритета не будет ни у кого. Чтобы этого избежать, вводят границу доверия (trust boundary).

Граница доверия — это точка в сети, до которой метки не доверяются и перезаписываются, а после — принимаются как есть. Обычно это порт коммутатора, к которому подключён IP-телефон или доверенный сервер. Всё, что приходит с недоверенных устройств, маркируется заново или сбрасывается в 0.

Схема границы доверия QoS: доверенные и недоверенные устройства Граница доверия: кому можно ставить метки Хост A недоверенный Коммутатор D граница доверия Хост B доверенный EF → сброс AF41 → ок Хост A ставит EF, но он за границей доверия — D сбрасывает метку Хост B доверенный — его метка AF41 сохраняется Если бы все ставили EF, приоритета не было бы ни у кого Граница доверия — это способ сохранить дифференциацию
Рис. 3. Хост A за границей доверия — его метки сбрасываются. Хост B доверенный — его метки сохраняются. Без границы доверия все приложения поставили бы себе максимальный приоритет.

Как это связано с CCNA

На экзамене CCNA тема QoS встречается в разделе про сетевые технологии и безопасность. Чаще всего спрашивают:

  • что такое классификация и маркировка и чем они отличаются;
  • какие поля используются для маркировки (ToS, DSCP, CoS);
  • что означает EF и в каких случаях он используется;
  • зачем нужна граница доверия;
  • какие механизмы очередей бывают (priority queuing, CBWFQ, LLQ) — обзорно.

По моему опыту, QoS — одна из тем, где новички теряются: терминов много, а логика неочевидна. Но если понять три шага (классификация → маркировка → обработка) и границу доверия, всё становится на места.

Хотите разобраться в QoS и сдать CCNA?

На моём курсе по подготовке к CCNA мы разбираем QoS, маршрутизацию, коммутацию и безопасность на реальных лабораторных. Не просто команды, а логика: почему именно так и что будет, если сделать иначе. Всё, что нужно для экзамена и для работы.

Смотреть программу курса

Частые ошибки новичков

  • Путают классификацию и маркировку. Классификация — локальное решение, маркировка — метка в пакете, которую видят все.
  • Маркируют на каждом устройстве. Это дорого по ресурсам и сложно поддерживать. Маркируйте один раз на границе.
  • Забывают про границу доверия. Без неё любое приложение поставит себе EF, и приоритет потеряет смысл.
  • Думают, что QoS увеличивает полосу. Нет, QoS перераспределяет её между классами. Если канал перегружен в 10 раз, QoS не спасёт.
  • Настраивают QoS без мониторинга. Без сбора статистики по классам невозможно понять, работает ли политика.

FAQ

QoS — это набор механизмов, которые говорят сети, как обращаться с разными типами трафика при перегрузке. Голос и видео получают приоритет, файловые копии ждут. Без QoS всё идёт по принципу best effort — кто первый, того и полоса.
ToS — это восьмибитное поле в заголовке IPv4. DSCP — это шесть старших бит этого поля, которые определяют класс трафика и приоритет отбрасывания. Два младших бита не используются. В IPv6 аналогичное поле называется Traffic Class.
Граница доверия — это точка в сети, где метки начинают приниматься. До неё метки сбрасываются или перезаписываются. Без неё любое приложение могло бы поставить себе максимальный приоритет, и тогда приоритета не было бы ни у кого.
EF (Expedited Forwarding) — значение DSCP 46. Используется для трафика, критичного к задержке: голос, некоторые виды сигнализации. Такой трафик должен обрабатываться первым и с минимальными задержками.
Нет. QoS перераспределяет существующую полосу между классами, но не увеличивает её. Если канал перегружен в разы, QoS не спасёт — нужно расширять канал или уменьшать трафик. QoS — это про справедливость и приоритеты, а не про ёмкость.

Читайте также

CTA-блок для статей — zhauryd.com

КУРС CCNA • ОНЛАЙН

Прочитал статью — теперь собери свою первую сеть сам

Официальный онлайн-курс Cisco CCNA с инструктором: практика в Packet Tracer и GNS3, поддержка на всём пути, сертификат Cisco Networking Academy и ваучер до 60% на экзамен CCNA 200-301.

  • Обучение полностью онлайн из любой точки мира
  • Около 3 месяцев, до 9 часов в неделю
  • Личный лабораторный стенд и официальные материалы Cisco
  • Инструктор Cisco Networking Academy с 2019 года

Успей оставить заявку • Мест в потоке ограниченно

Вопросы по курсу? Связаться