wred-qos-kak-nastroit-preventivnoe-obnaruzhenie-peregruzok-na-cisco

WRED (QoS): как настроить превентивное обнаружение перегрузок на Cisco

Рассмотрим, как настроить взвешенный алгоритм произвольного раннего обнаружения WRED (Weighted Random Early Detection) для QoS на маршрутизаторе Cisco. Алгоритм WRED позволяет избегать заторов на сетевых интерфейсах за счет предоставления инструментов управления буферизацией и отбрасывания трафика до того, как буфер будет переполнен. WRED помогает избежать фактического переполнения буфера (Tail Drop) и оптимизирует использование сетевых ресурсов.

Содержание:

  1. Введение в WRED
  2. Топология
  3. Задачи
    1. Настройки маршрутизатора R1
    2. Настройки РС 1
    3. Настройки РС 2
  4. Настройка алгоритма WRED
  5. Проверка формирования трафика
  6. Экспоненциальная весовая константа (Exponential Weighting Constant)
  7. Выводы

Введение в WRED (Weighted Random Early Detection)

Результат работы WRED особенно хорошо проявляется, если оконечные устройства реагируют на перегруз в сети. Это, в частности, касается приложений, которые в качестве протокола транспортного уровня используют TCP. Рассмотрим особенности работы протокола TCP в контексте его реакции на потери сегментов.

В момент установки TCP-сеанса осуществляется инициализация окна перегрузки (congestion window — cwnd). Значение окна перегрузки представляет собой максимальный размер данных, которые может переслать TCP-отправитель в рамках заданного сеанса без получения подтверждения о доставке.

При получении подтверждения о доставке первого пакета, TCP-источник увеличивает размер окна перегрузки до 2-х, что указывает на возможность отправки уже двух сегментов. Аналогично, при получении подтверждения о доставке 2-х сегментов TCP-источник увеличивает размер окна перезагрузки до 4-х. Описанное поведение источников TCP-соединения подчиняется алгоритму медленного старта (slow start), в соответствии с которым TCP-источник передает сегменты с интенсивностью, равной интенсивности получения подтверждений о доставке пакетов от TCP-получателя.

Поскольку отбрасывание сегмента является сигналом о перегрузке сети для источника TCP-соединения, механизм «отбрасывания хвоста» (tail drop policy) сообщает о перегрузке сети лишь в момент фактического переполнения очереди. В результате отбрасывания пакета, источник TCP-соединения уменьшает размер окна до одного сегмента и перезапускает алгоритм медленного старта, что приводит к резкому уменьшению исходящего трафика TCP.

В результате выполнения алгоритма отбрасывания хвоста, одновременно достаточно большое число ТСР-источников сужают размер окна перегрузки до 1 и перезапускают механизм медленного старта. Алгоритмы медленного старта большого числа ТСР-источников синхронизируются между собой, поскольку запускаются в одинаковое время. Такая стратегия отбрасывания вызывает глобальную синхронизацию TCP.

Чтобы увеличить общую производительность, можно использовать метод под названием RED (Random Early Detection) — алгоритм произвольного раннего обнаружения. Вместо того чтобы ждать, когда произойдет отбрасывание хвоста очереди, алгоритм следит за глубиной очереди. Когда очередь начинает заполняться, некоторые случайные пакеты отбрасываются с целью замедления TCP. «Взвешивание» WRED означает, что алгоритм контролирует среднюю глубину очереди. Когда очередь начинает заполняться, WRED отбрасывает только несколько случайных пакетов. Когда длина очереди увеличивается, WRED становится более агрессивным и отбрасывает ещё больше случайных пакетов, пока не достигнет определенного предела. Когда этот предел достигнут, отбрасываются все пакеты. В соответствии с механизмом RED, вероятность отбрасывания пакетов растет прямо пропорционально увеличению среднего размера очереди от минимального до максимального порогового значения.

WRED использует профиль трафика (traffic profile) для определения вероятности отбрасывания пакета на основе следующих трех значений:

  • Минимальный порог (Maximum threshold);
  • Максимальный порог (Minimum threshold);
  • Знаменатель граничной вероятности (Mark Probability Denominator — MPD).

 

Некоторые пакеты более важны, чем другие, поэтому вместо отбрасывания случайных пакетов, используются разные профили трафика для разных пакетов. Можно отбрасывать пакеты на основе таких критериев, как CoS, IP Precedence, DSCP и некоторых других параметров.

Рассмотрим пример двух профилей трафика:

MK-WRED-QoS

В примере указан один профиль для пакетов, помеченных с приоритетом IPP 3, а другой для приоритета IPP 5.  Пакеты по приоритету IPP 3 отбрасываются раньше (минимальный порог 20 пакетов) и чаще (MPD 25%), чем по приоритету IPP 5:

  • Приоритет IPP 3:
    1. Минимальный порог: 20 пакетов.
    2. Максимальный порог: 45 пакетов.
    3. MPD: 25%.
  • Приоритет IPP 5:
    1. Минимальный порог: 30 пакетов.
    2. Максимальный порог: 60 пакетов.
    3. MPD: 20%.

Как это отображается в работе для IPP 3:

  • Когда средняя глубина очереди ниже минимального порога (20), WRED не отбрасывает пакеты;
  • Когда средняя глубина очереди превышает минимальный порог (20), WRED начинает отбрасывать небольшое количество случайных пакетов;
  • Когда средняя глубина очереди увеличивается ещё больше, WRED отбрасывает больший процент случайных пакетов, пока не достигнет максимального порога (45);
  • Когда средняя глубина очереди достигает максимального порога (45), WRED отбрасывает все пакеты;
  • MPD (25%) — это доля трафика, которую отбрасывает WRED при достижении максимального порога (45).

Вместо приоритета IPP также можно использовать DSCP (является наиболее распространенным вариантом). Затем WRED устанавливает минимальный порог на основе вероятности отбрасывания. Более подробно особенности и значения IPP и DSCP рассмотрены в этой статье:

Drop Class 1 Class 2 Class 3 Class 4
Low 001010 (AF11) 010010 (AF21) 011010 (AF31) 100010 (AF41)
Medium 001100 (AF12) 010100 (AF22) 011100 (AF32) 100100 (AF42)
High 001110 (AF13) 010110 (AF23) 011110 (AF33) 100110 (AF43)

В одном и том же классе AFx3 имеет более высокую вероятность отбрасывания, чем AFx1. Например, AF13 отбрасывается раньше, чем AF11.

Топология

Исследуемая топология состоит из маршрутизатора (Cisco 1941 с образом Cisco IOS Release 15.2 IP Base) и двух компьютеров. Допускается использование других моделей маршрутизаторов и версий программного обеспечения Cisco IOS. В зависимости от модели маршрутизатора и версии программного обеспечения Cisco IOS, доступные команды и полученные результаты могут отличаться от показанных в этой статье.

Схема топологии следующая:

MK-WRED

Задачи

  1. Базовые настройки.
  2. Настройка алгоритма на основе приоритета IP.
  3. Анализ выходных данных.

Настройки маршрутизатора R1

Настройки PC1

IP address — 192.168.10.1
Subnet mask — 255.255.255.0
Default Gateway — 192.168.10.2

Настройки PC2

IP address — 192.168.20.3
Subnet mask — 255.255.255.0
Default Gateway — 192.168.20.2

Настройка алгоритма WRED

Для настройки алгоритма WRED по умолчанию достаточно одной команды random-detect. Рассмотрим также тонкие настройки алгоритма.

Для начала создаем карты классов с соответствием на списки контроля доступа ACL, чтобы промаркировать два потока трафика:

 

 

Следующий шаг — создание карты политик и непосредственно формирование двух видов трафика. В команде shape average указываем значение согласованной скорости CIR (Committed Information Rate). Также можно рассмотреть, какие варианты настройки доступны для алгоритма WRED:

 

Здесь можно настроить как минимум две функции:

  1. Изменить политику отбрасывания (drop policy), чтобы использовать другое значение. Например, можно переключиться с приоритета IPP на DSCP.
  2. Изменить профиль(-и) трафика политики отбрасывания.

Для начала ознакомимся и настроим приоритет IPP. Можно настроить профиль трафика (traffic profile) для каждого значения приоритета IPP с помощью команды random-detect precedence:

 

В примере укажем приоритет IPP 4:

 

Установим минимальный порог (minimum threshold) в 10 пакетов:

 

Примечание: Значением по умолчанию являются пакеты (in packet by default), но при желании также можно использовать количество байтов (bytes number of bytes) или миллисекунды / микросекунды (ms milliseconds / us microseconds). Количество пакетов является наиболее распространенным вариантом.

Укажем максимальный порог в 20 пакетов:

 

Последний параметр MPD (mark probability denominator) также настроен на работу с количеством пакетов. MPD определяет часть отбрасываемых пакетов при достижении средним размером очереди максимального порогового значения. Параметр MPD подразумевает собой «1 из пакетов X», где X — значение, которое необходимо настроить самостоятельно. Например:

  • MPD 4 — механизм будет отбрасывать «1 из 4» пакетов, что составляет 25%;
  • MPD 5 — механизм будет отбрасывать «1 из 5» пакетов, что составляет 20%;
  • MPD 20 — механизм будет отбрасывать «1 из 20» пакетов, что составляет 5%.

Установим MPD в 4 пакета:

 

То же самое применяем к трафику VOICE, меняя параметры:

 

Далее активируем карту политик на интерфейсе GigabitEthernet 0/2:

Проверка формирования трафика

Для дальнейшего шага, а именно, для генерации трафика с РС1 на РС2, используем программное обеспечение D-ITG. Distributed Internet Traffic Generatorэто платформа, способная генерировать трафик на уровне пакетов. ПО поддерживает генерацию трафика IPv4 и IPv6 и может генерировать трафик на сетевом, транспортном и прикладном уровнях.

Примечание: Чтобы очистить предыдущие записи policy-map, используйте команду clear counters (interface), а для очистки записей ACL — clear access-lists counters.

На РС1 генерируем 2 потока UDP трафика со следующими заданными параметрами:

 

Значение ключей в записях, которые описывают трафик:

  • -a — IP-адрес получателя;
  • -T — протокол транспортного уровня;
  • -rp — порт получателя;
  • -C — скорость передачи (пакеты в секунду);
  • -c — размер пакета (байты);
  • -t — время моделирования (секунды).

На РС2 анализируем выходные данные.

Порт получателя 2000, пропускная способность 32 Кбит/с:

 

MK-WRED-1

Порт получателя 3000, пропускная способность 32 Кбит/с:

 

MK-WRED-2

Также проверим настройку на R1 с помощью команды show policy-map:

 

Трафик DATA

MK-WRED-show-1

 

Трафик VOICE

MK-WRED-show-2

 

Можно обратить внимание, что R1 действительно отбрасывает некоторые случайные пакеты, помеченные с приоритетом IPP 4 и IPP 7.

Экспоненциальная весовая константа (Exponential Weighting Constant)

Посмотрев на выходные данные предыдущих карт политик, можно обратить внимание на следующую строку:

 

WRED вычисляет среднюю глубину очереди, и это среднее значение обновляется на основе экспоненциальной весовой константы. Константа контролирует скорость изменения средней глубины очереди. Если значение константы меньше, то средняя глубина очереди меняется быстрее; если константа больше, то — медленнее. В примере используется значение по умолчанию — 9.

Маленькая экспоненциальная весовая константа заставит WRED быстро реагировать на изменения, а большая экспоненциальная весовая константа заставит WRED медленно реагировать на изменения.

Рекомендуется не менять данное значение, но если есть необходимость, можно поменять следующим образом:

Выводы

Спасибо за уделенное время на прочтение статьи. Теперь Вы умеете настраивать превентивное обнаружение перегрузок WRED для QoS на маршрутизаторе Cisco.

Если возникли вопросы, задавайте их в комментариях.

Подписывайтесь на обновления нашего блога и оставайтесь в курсе новостей мира инфокоммуникаций!

Чтобы знать больше и выделяться знаниями среди толпы IT-шников, записывайтесь на курсы Cisco, курсы по кибербезопасности, полный курс по кибербезопасности, курсы DevNet / DevOps (программируемые системы) от Академии Cisco, курсы Linux от Linux Professional Institute на платформе SEDICOMM University (Университет СЭДИКОММ).

Курсы Cisco, Linux, кибербезопасность, DevOps / DevNet, Python с трудоустройством!

Спешите подать заявку! Группы стартуют 25 января, 26 февраля, 22 марта, 26 апреля, 24 мая, 21 июня, 26 июля, 23 августа, 20 сентября, 25 октября, 22 ноября, 20 декабря.
Что Вы получите?
  • Поможем стать экспертом по сетевой инженерии, кибербезопасности, программируемым сетям и системам и получить международные сертификаты Cisco, Linux LPI, Python Institute.
  • Предлагаем проверенную программу с лучшими учебниками от экспертов из Cisco Networking Academy, Linux Professional Institute и Python Institute, помощь сертифицированных инструкторов и личного куратора.
  • Поможем с трудоустройством и стартом карьеры в сфере IT — 100% наших выпускников трудоустраиваются.
Как проходит обучение?
  • Проведем вечерние онлайн-лекции на нашей платформе.
  • Согласуем с вами удобное время для практик.
  • Если хотите индивидуальный график — обсудим и реализуем.
  • Личный куратор будет на связи, чтобы ответить на вопросы, проконсультировать и мотивировать придерживаться сроков сдачи экзаменов.
  • Всем, кто боится потерять мотивацию и не закончить обучение, предложим общение с профессиональным коучем.
А еще поможем Вам:
  • отредактировать или создать с нуля резюме;
  • подготовиться к техническим интервью;
  • подготовиться к конкурсу на понравившуюся вакансию;
  • устроиться на работу в Cisco по специальной программе. Наши студенты, которые уже работают там: жмите на #НашиВCisco Вконтакте, #НашиВCisco Facebook.
Чтобы учиться на курсах Cisco, Linux LPI, кибербезопасность, DevOps / DevNet, Python, подайте заявку или получите бесплатную консультацию.

Больше похожих постов

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Заполните поле
Заполните поле
Пожалуйста, введите корректный адрес email.
Вы должны согласиться с условиями для продолжения

Поиск по сайту
Лучшее
Популярное
Рубрики
Меню