16.06.2019

Где находится планировщик пакетов qos. Какой самый эффективный способ полностью отключить QoS? Основные параметры QoS


Пропускная способность локальной сети — тема, которая становится с распространением скоростного интернета все более актуальной. С каждым разом мы пытаемся подключить к роутеру все больше устройств, а программное обеспечение по умолчанию не всегда может с ними со всеми справиться. В этом случае на помощь приходит настройка приоритетов QoS пакетов пропускной способности локальной сети на маршрутизаторе. Она назначает приоритет на выполнение тех или иных самых важных на данный момент задач и доступна не только на топовых маршрутизаторах Mikrotik или Cisco, но и на любой недорогой модели TP-Link, Asus, Zyxel Keenetic, D-Link.

Большинство современных роутеров имеет встроенную возможность управлять потоками интернет-трафика внутри локальной сети , назначая приоритет при работе того или иного приложения. Ну например, вы играете в онлайн игру или просматриваете страницы любимых сайтов. И параллельно качаете интересный фильм по торренту. При этом игра начинает тормозить и файл качается еле-еле. Что делать?

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


Но пропускная способность локальной сети и канала интернет ограничена. Первая — возможностями роутера. Ппомните, мы говорили про ?.

Вторая — вашим тарифным планом от провайдера. Так как при этом разделяется приоритет на выполнение этих одновременных задач?

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

Именно поэтому в роутерах предусмотрена возможность настроить пропускную способность сети вручную. А именно распределить приоритет так, как вам это необходимо. Называется эта функция — QoS (Quality of Service). То есть технология предоставления различным классам трафика приоритетов в обслуживании.

Диспетчер трафика на роутере Asus

В разных моделях эта настройка может скрываться под различными названиями в пункте меню. У меня сейчас работает роутер Asus в новой прошивке — показываю на RT-N10U версии B1. И здесь настройка планировщика QoS осуществляется в разделе «Диспетчер трафика».

Для начала надо сменить активированный по умолчанию автоматический режим на один из двух. «Определяемые пользователем правила QoS» или «Определяемый пользователем приоритет»

Определяемые пользователем правила планировщика пакетов QoS

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

Итак, сейчас на «Web Serf», то есть на подключения через браузер через используемый для этого 80 порт, стоит «Наивысший» приоритет. Кликнув по выпадающему списку, мы можем выбрать другой из предложенного списка. В то же время на «File Transfer», то есть для программ-загрузчиков файлов — наименьший. Поменяв эти параметры местами мы получим эффект, что при одновременной загрузке файла с какого-либо сайта и просмотре html-страницы, бОльшая скорость будет отдаваться первому процессу.


Но это еще не все. Для программ для передачи файлов посредством P2P (например, BitTorrent), или он-лайн игр, а также множества других приложений можно задать свои значения приоритета. Это делается добавлением нового правила к уже существующим.

Для его создания кликаем по пункту «Выберите» и из выпадающего списка выбираем интересующий нас тип передачи данных или предустановленные настройки для конкретного приложения. Например, можно задать в пропускной способности сети приоритет для почтовых приложений типа Outlook или TheBat (пункт SMTP, POP3…) или для ftp-клиентов (FTP, SFTP, WLM…). Также есть большой список популярных игр, например Counter Strike, и программ для обмена файлами — BitTorrent, eDonkey и т.д.

Выберем качалку торрентов. Автоматически проставятся используемые данной программой по умолчанию порты.
Но лучше на слово роутеру не верить и перепроверить их самостоятельно. Откроем программу (у меня uTorrent) и зайдем в «Настройки > Настройки программы > Соединения». Посмотрим, какой порт задан для работы этой проги.

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

Определяемый пользователем приоритет пакетов QoS

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

Например, для исходящего трафика на «Наивысший» в данный момент по умолчанию у меня задано 80% — минимальное значение и 100% — максимальное. Это означает, что те, у которых наивысший приоритет, будут получать не менее 80% ширины пропускаемости канала. Независимо от того, сколько бы одновременных процессов не производили исходящие соединения с интернетом. Те же, у кого приоритет «Высокий» — не менее 10%. И так далее — думаю, суть вы поняли. Отредактировав эти значения, можно детально управлять скоростью загрузки и выгрузки для разных категорий работающих программ.

Теперь предлагаю посмотреть развернутый видеоурок о настройке QoS на роутерах фирмы Cisco

Настройка планировщика пакетов QoS на роутере TP-Link

Ниже для вашего удобства приведу несколько скриншотов администраторских разделов для управления пропускной способностью с моделей других фирм. На роутерах TP-Link планировщик пакетов QoS находится в разделе меню «Контроль пропускной способности». Для его активации ставим галочку на «Включить контроль полосы пропускания» и задаем максимальную скорость для входящего и исходящего трафика.

По клику на кнопку «Добавить» можно добавить новое правило на приоритет для одного или нескольких компьютеров. Для этого необходимо вписать их IP адрес или диапазон адресов. А также указать порты и тип обмена пакетами, на которые данное правило будет распространяться.

Недавно у TP-Link появилась новая визуализация панели администратора, которая устанавливается на все новые модели. В ней планировщик QoS находится в «Дополнительных настройках» в разделе «Приоретизация данных». Включаем ее галочкой и регулируем ползунками три вида приоритетов:

  • Высокий
  • Средний
  • Низкий

Для добавления фильтра нажимаем на кнопку «Добавить» в одной из трех окон предустановленных настроек

Откроется список подключенных к роутеру клиентов — выбираем нужный и жмем на ссылку «Выбрать» и далее «ОК»

Пропускная способность сети IntelliQoS на Zyxel Keenetic

На маршрутизаторах Keenetic функция управления пропускной способностью сети называется IntelliQoS. Изначально данный модуль не присутствует в прошивке. Необходимо дополнительно >>установить компонент IntelliQoS из соответствующего раздела панели администратора. После чего в меню «Мои сети и WiFi» появится отдельный одноименный пункт.

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

Настройка пропускной способности сети на роутере D-Link

Для роутера D-Link в модель DIR-620 разработчики почему-то реализовали возможность установить QOS ограничения по скорости только на компьютеры, подключенные по кабелю к одному из LAN портов. Находится эта настройка в разделе «Дополнительно — Управление полосой пропускания»

Выбрав один из них, включаем ограничение и устанавливаем скорость

На этом пока все — пробуйте и экспериментируйте с пропускной способностью локальной сети для того, чтобы роутер не притормаживал работу тех программ, от которых вы ждете максимальной отдачи в данный момент.

Видео по настройке QoS на роутере

01.12.2016 | Владимир Хазов

Не весь интернет-трафик одинаково важен. Онлайн-видео без замираний картинки или звонок по Skype без заикания голоса важнее, чем загрузка большого файла с помощью торрент-клиента. Функция обеспечения качества обслуживания (QoS) маршрутизатора, шейпера или системы глубокого анализа трафика (DPI) позволяет расставлять приоритеты, какой трафик важнее, и предоставлять ему большую часть полосы пропускания.

И если дома каждый пользователь может настраивать QoS на своем роутере, то оператор связи, используя современное сетевое оборудование, управляет полосой пропускная для всех своих абонентов и обеспечивает неизменно высокое качество для каждого из них.

Что такое качество обслуживания (QoS )

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

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

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

То же самое происходит в домашней сети или сети провайдера. Пропускная способность канала связи выдается равномерно в рамках тарифного плана, без учета важности каждого приложения. К примеру, если вы разговариваете по Skype, а в это время ваши дети запустят кино Netflix, качество звонка резко ухудшится. Интернет-провайдер, в свою очередь, ограничен скоростью канала к вышестоящему оператору связи, и его полосы пропускания может не хватить, чтобы обеспечить качество соединения, если все пользователи одновременно начнут качать файлы через торрент-клиент на максимальной скорости.

Маршрутизатор делит полосу поровну между всеми, не выделяя приоритета какому-либо виду трафика.

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

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

Как включить QoS

Существуют сотни различных маршрутизаторов –домашних и офисных, а также сложных устройств операторского класса. Не каждый из них имеет функцию QoS, а если имеет, то ее реализация может отличаться по спектру возможных настроек. Некоторые могут определять только приоритет между устройствами, некоторые – выделять определенные типы трафика (например, видео или голосовую связь), системы DPI способны распознать приложения, не использующие для обмена данными заранее известные заголовки и структуры данных, вносить изменения в поле приоритета проходящих через него пакетов для дальнейшего применения правил QoS.

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

Первый шаг: определить цель

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

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

Оператор связи использует QoS для достижения более глобальных целей:

  • дифференцирование трафика;
  • обеспечение равномерного потока трафика;
  • гарантия качества и скорости доступа в интернет для каждого абонента;
  • предотвращение сетевых перегрузок;
  • уменьшение затрат на Uplink.

Но принципы их достижения схожи с домашней сетью: определение приоритетных видов трафика и приложений, настройка правил в зависимости от приоритета и времени действия.

Второй шаг: определить скорость интернета

Для оператора связи скорость интернета – это скорость доступа к вышестоящему провайдеру (Uplink) или к нескольким провайдерам. Эта величина фиксированная и распределяется между всеми абонентами согласно их тарифным планам. Задачу ее оптимизации и грамотного распределения должны решать правила QoS для обеспечения удовлетворенности клиента от получаемой услуги.

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

Чтобы получить реальную картину, вам необходимо закрыть на компьютере все приложения, которые создают нагрузку на сеть, подключить его к роутеру медным кабелем. Технология беспроводной сети Wi-Fi, особенно если она работает не по современным протоколам Wireless N или Wireless AC, может быть узким местом полосы пропускания. Измерения могут показать скорость в 40 Мб/с вместо доступных 75 Мб/с именно из-за ограничений скорости беспроводной передачи данных.

Зайдите на сайт www.speedtest.net и нажмите кнопку «Начать проверку». Полученный результат необходимо перевести из «Мбит/с» в «Кбит/с», так как настройки QoS чаще всего задаются в этих единицах. Это можно сделать, умножив полученные значения на 1000.

В данном примере мы получили входящую скорость 42 900 Кбит/с, а исходящую – 3980 Кбит/с. Именно эти значения можно распределять между пользователями и приложениями в сети.

Третий шаг: включить QoS на роутере

Невозможно описать порядок включения QoS на всех роутерах, так как каждый производитель предоставляет пользователю свой интерфейс управления, а сетевые устройства операторского класса, такие как Cisco, Juniper, Huawei, настраиваются из командной строки.

В большинстве случаев вам потребуется зайти на страницу управления устройством (набрать в браузере его адрес, чаще всего это 192.168.1.1), ввести логин и пароль администратора, которые указаны в руководстве пользователя, и перейти в раздел NAT сетевых настроек, вкладку QoS. Выберите Enable напротив функции Start QoS, порт для применения правил – WAN (порт соединения с провайдером), настройки входящей и исходящей скорости (downlink и uplink) должны указываться в размере 85–90 % от измеренной во втором шаге.

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

Как приоритизировать трафик

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

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

Если же роутер позволяет производить ручные настройки приоритетов, вам необходимо задать их «вилки» в процентах от общей полосы пропускания:

  • Maximum: 60–100 %
  • Premium: 25–100 %
  • Express: 10–100 %
  • Standard: 5–100 %
  • Bulk: 1–100 %

Эти параметры определяют значение пропускной способности для конкретного устройства или приложения. Например, установив для приложения Maximum, вы назначаете ему использовать 60 % от полосы пропускания во время загрузки сети и 100 %, если сеть полностью доступна. Если установить «Магистральный», то, когда сеть свободна, приложение может использовать любую скорость полосы пропускания, но, если появляется нагрузка, оно получит лишь 1 %.

Хотим напомнить, что к приоритизации надо подходить с четким пониманием того, что вы хотите ограничить.

Варианты приоритизации

1. Приоритет сервиса или приложения

Позволяет для любого устройства в сети назначить приоритет пропускной способности определенного приложения или сервиса перед остальными. Например, если необходимо, чтобы у приложения Skype всегда была выделенная полоса пропускания, и видеоаудиосвязь не имели задержек, искажений или артефактов.

2. Приоритет интерфейса

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

3. Приоритет устройств по IP-адресу

Вы можете назначить более высокий приоритет определенному устройству вашей сети по его IP-адресу (статическому или зарезервированному динамическому), тем самым обеспечить его более высокой скоростью доступа по сравнению с другими.

4. Приоритет устройств по MAC-адресу

Если вы используете динамическую адресацию, вы все равно можете назначить высокий приоритет одному из устройств сети по его MAC-адресу, который является уникальным и сведения о котором можно получить либо из программного обеспечения, либо из этикетки на корпусе.

Тест и оценка

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

Убедиться в правильности работы правил можно запустив сервисы с высоким и низким приоритетом и сравнив их скорости, или запустить speedtest на устройствах сети с разными приоритетами и посмотреть, которое из них покажет больший результат.

Настройка QoS – более сложный процесс, чем базовая настройка роутера, а для оператора связи еще и дополнительные капитальные затраты для покупки платформы DPI, однако и результат позволит добиться более качественного доступа к сети Интернет, а также сэкономить финансы на покупке высокоскоростного канала связи.

QoS - тема большая. Прежде чем рассказывать про тонкости настроек и различные подходы в применении правил обработки трафика, имеет смысл напомнить, что такое вообще QoS.

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

Во-первых, легко понять, что любая приоритезация имеет смысл только в том случае, когда возникает очередь на обслуживание. Именно там, в очереди, можно «проскользнуть» первым, используя своё право.
Очередь же образуется там, где узко (обычно такие места называются «бутылочным горлышком», bottle-neck). Типичное «горлышко» - выход в Интернет офиса, где компьютеры, подключенные к сети как минимум на скорости 100 Мбит/сек, все используют канал к провайдеру, который редко превышает 100 МБит/сек, а часто составляет мизерные 1-2-10МБит/сек. На всех.

Во-вторых, QoS не панацея: если «горлышко» уж слишком узкое, то часто переполняется физический буфер интерфейса, куда помещаются все пакеты, собирающиеся выйти через этот интерфейс. И тогда новопришедшие пакеты будут уничтожены, даже если они сверхнужные. Поэтому, если очередь на интерфейсе в среднем превышает 20% от максимального своего размера (на маршрутизаторах cisco максимальный размер очереди составляет как правило 128-256 пакетов), есть повод крепко задуматься над дизайном своей сети, проложить дополнительные маршруты или расширить полосу до провайдера.

Разберемся с составными элементами технологии

(дальше под катом, много)

Маркировка. В полях заголовков различных сетевых протоколов (Ethernet, IP, ATM, MPLS и др.) присутствуют специальные поля, выделенные для маркирования трафика. Маркировать же трафик нужно для последующей более простой обработки в очередях.

Ethernet. Поле Class of Service (CoS) - 3 бита. Позволяет разделить трафик на 8 потоков с различной маркировкой

IP. Есть 2 стандарта: старый и новый. В старом было поле ToS (8 бит), из которого в свою очередь выделялись 3 бита под названием IP Precedence. Это поле копировалось в поле CoS Ethernet заголовка.
Позднее был определен новый стандарт. Поле ToS было переименовано в DiffServ, и дополнительно выделено 6 бит для поля Differencial Service Code Point (DSCP), в котором можно передавать требуемые для данного типа трафика параметры.

Маркировать данные лучше всего ближе к источнику этих данных. По этой причине большинство IP-телефонов самостоятельно добавляют в IP-заголовок голосовых пакетов поле DSCP = EF или CS5. Многие приложения также маркируют трафик самостоятельно в надежде, что их пакеты будут обработаны приоритетно. Например, этим «грешат» пиринговые сети.

Очереди.

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

Если хочется предоставить некоторому выделенному классу абсолютный приоритет (т.е. пакеты из этого класса всегда будут обрабатываться первыми), то такая технология называется Priority queuing . Все пакеты, находящиеся в физическом исходящем буфере интерфейса будут разделены на 2 логических очереди и пакеты из привилегированной очереди будут отсылаться, пока она не опустеет. Только после этого начнут передаваться пакеты из второй очереди. Эта технология простая, довольно грубая, её можно считать устаревшей, т.к. обработка неприоритетного трафика будет постоянно останавливаться. На маршрутизаторах cisco можно создать
4 очереди с разными приоритетами. В них соблюдается строгая иерархия: пакеты из менее привилегированных очередей не будут обслуживаться до тех пор, пока не опустеют все очереди с более высоким приоритетом.

Справедливая очередь (Fair Queuing ). Технология, которая позволяет каждому классу трафика предоставить одинаковые права. Как правило не используется, т.к. мало даёт с точки зрения улучшения качества сервиса.

Взвешенная справедливая очередь (Weighted Fair Queuing, WFQ ). Технология, которая предоставляет разным классам трафика разные права (можно сказать, что «вес» у разных очередей разный), но одновременно обслуживает все очереди. «На пальцах» это выглядит так: все пакеты делятся на логические очереди, используя в
качестве критерия поле IP Precedence. Это же поле задаёт и приоритет (чем больше, тем лучше). Дальше, маршрутизатор вычисляет, пакет из какой очереди «быстрее» передать и передаёт именно его.

Считает он это по формуле:

DT=(t(i)-t(0))/(1+IPP)

IPP - значение поля IP Precedence
t(i) - Время, требуемое на реальную передачу пакета интерфейсом. Можно вычислить, как L/Speed, где L - длина пакета, а Speed - скорость передачи интерфейса

Такая очередь по умолчанию включена на всех интерфейсах маршрутизаторов cisco, кроме интерфейсов точка-точка (инкапсуляция HDLC или РРР).

WFQ имеет ряд минусов: такая очередизация использует уже отмаркированные ранее пакеты, и не позволяет самостоятельно определять классы трафика и выделяемую полосу. Мало того, как правило уже никто не маркирует полем IP Precedence, поэтому пакеты идут немаркированные, т.е. все попадают в одну очередь.

Развитием WFQ стала взвешенная справедливая очередь, основанная на классах (Class-Based Weighted Fair Queuing, CBWFQ ). В этой очереди администратор сам задаёт классы трафика, следуя различным критериям, например, используя ACL, как шаблон или анализируя заголовки протоколов (см.NBAR). Далее, для этих классов
определяется «вес» и пакеты их очередей обслуживаются, соразмерно весу (больше вес - больше пакетов из этой очереди уйдёт в единицу времени)

Но такая очередь не обеспечивает строгого пропускания наиболее важных пакетов (как правило голосовых или пакетов других интерактивных приложений). Поэтому появился гибрид Priority и Class-Based Weighted Fair Queuing - PQ-CBWFQ , также известный как, Low Latency Queuing (LLQ) . В этой технологии можно задать до 4х приоритетных очередей, остальные классы обслуживать по механизму CBWFQ

LLQ - наиболее удобный, гибкий и часто используемый механизм. Но он требует настройки классов, настройки политики и применения политики на интерфейсе.

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

Технология QoS - достаточно ресурсоёмкая и весьма существенно грузит процессор. И тем сильнее грузит, чем глубже в заголовки приходится залезать для классификации пакетов. Для сравнения: маршрутизатору гораздо проще заглянуть в заголовок IP пакета и проанализировать там 3 бита IPP, нежели раскручивать поток практически до уровня приложения, определяя, что за протокол идёт внутри (технология NBAR)

Для упрощения дальнейшей обработки трафика, а также для создания так называемой «области доверия» (trusted boundary), где мы верим всем заголовкам, относящимся к QoS, мы можем делать следующее:
1. На коммутаторах и маршрутизаторах уровня доступа (близко к клиентским машинам) ловить пакеты, раскидывать их по классам
2.В политике качестве действия перекрашивать заголовки по-своему или переносить значения QoS-заголовков более высокого уровня на нижние.

Например, на маршрутизаторе ловим все пакеты из гостевого WiFi домена (предполагаем, что там могут быть не управляемые нами компьютеры и софт, который может использовать нестандартные QoS-заголовки), меняем любые заголовки IP на дефолтные, сопоставляем заголовкам 3 уровня (DSCP) заголовки канального уровня (CoS),
чтобы дальше и коммутаторы могли эффективно приоритезировать трафик, используя только метку канального уровня.

Настройка LLQ

Настройка очередей заключается в настройке классов, затем для этих классов надо определить параметры полосы пропускания и применить всю созданную конструкцию на интерфейс.

Создание классов:

class-map NAME
match?

access-group Access group
any Any packets
class-map Class map
cos IEEE 802.1Q/ISL class of service/user priority values
destination-address Destination address
discard-class Discard behavior identifier
dscp Match DSCP in IP(v4) and IPv6 packets
flow Flow based QoS parameters
fr-de Match on Frame-relay DE bit
fr-dlci Match on fr-dlci
input-interface Select an input interface to match
ip IP specific values
mpls Multi Protocol Label Switching specific values
not Negate this match result
packet Layer 3 Packet length
precedence Match Precedence in IP(v4) and IPv6 packets
protocol Protocol
qos-group Qos-group
source-address Source address
vlan VLANs to match

Пакеты в классы можно рассортировывать по различным атрибутам, например, указывая ACL, как шаблон, либо по полю DSCP, либо выделяя конкретный протокол (включается технология NBAR)

Создание политики:

policy-map POLICY
class NAME1
?

bandwidth Bandwidth
compression Activate Compression
drop Drop all packets
log Log IPv4 and ARP packets
netflow-sampler NetFlow action
police Police
priority Strict Scheduling Priority for this Class
queue-limit Queue Max Threshold for Tail Drop
random-detect Enable Random Early Detection as drop policy
service-policy Configure Flow Next
set Set QoS values
shape Traffic Shaping


Для каждого класса в политике можно либо выделить приритетно кусок полосы:

policy-map POLICY
class NAME1
priority?

Kilo Bits per second
percent % of total bandwidth


и тогда пакеты этого класса смогут всегда рассчитывать как минимум на этот кусок.

Либо описать, какой «вес» имеет данный класс в рамках CBWFQ

policy-map POLICY
class NAME1
bandwidth?

Kilo Bits per second
percent % of total Bandwidth
remaining % of the remaining bandwidth


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

Возникает резонный вопрос: а откуда маршрутизатор знает ВСЮ полосу? Ответ банален: из параметра bandwidth на интерфейсе. Даже если он не сконфигурирован явно, какое то его значение обязательно есть. Его можно посмотреть командой sh int.

Также обязательно помнить, что по умолчанию вы распоряжаетсь не всей полосой, а лишь 75%. Пакеты, явно не попавшие в другие классы, попадают в class-default. Эту настройку для дефолтного класса можно задать явно

policy-map POLICY
class class-default
bandwidth percent 10

(UPD, спасибо OlegD)
Изменить максимальную доступную полосу с дефолтных 75% можно командой на интерфейсе

max-reserved-bandwidth

Маршрутизаторы ревностно следят, чтобы админ не выдал случайно больше полосы, чем есть и ругаются на такие попытки.

Создаётся впечатление, что политика будет выдавать классам не больше, чем написано. Однако, такая ситуация будет лишь в том случае, если все очереди наполнены. Если же какая то пустует, то выделенную ей полосу наполненные очереди поделят пропорционально своему «весу».

Работать же вся эта конструкция будет так:

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

Как только все приоритетные пакеты закончились, наступает очередь CBWFQ. За каждый отсчёт времени из каждой очереди «зачёрпывается» доля пакетов, указанная в настройке для данного класса. Если же часть очередей пустует, то их полоса делится пропорционально «весу» класса между загруженными очередями.

Применение на интерфейсе:

int s0/0
service-policy POLICY

А что же делать, если надо строго рубить пакеты из класса, выходящие за дозволенную скорость? Ведь указание bandwidth лишь распределяет полосу между классами, когда очереди загружены.

Для решения этой задачи для класса трафика в политике есть технология

police conform-action [действие] exceed-action [действие]

Она позволяет явно указать желаемую среднюю скорость (speed), максимальный «выброс», т.е. количество передаваемых данных за единицу времени. Чем больше «выброс», тем больше реальная скорость передачи может отклоняться от желаемой средней. Также указываются: действие для нормального трафика, не превышающего
указанную скорость и действие для трафика, превысившего среднюю скорость. Действия могут быть такими

police 100000 8000 conform-action?

drop drop packet
exceed-action action when rate is within conform and
conform + exceed burst
set-clp-transmit set atm clp and send it
set-discard-class-transmit set discard-class and send it
set-dscp-transmit set dscp and send it
set-frde-transmit set FR DE and send it
set-mpls-exp-imposition-transmit set exp at tag imposition and send it
set-mpls-exp-topmost-transmit set exp on topmost label and send it
set-prec-transmit rewrite packet precedence and send it
set-qos-transmit set qos-group and send it
transmit transmit packet

Часто возникает также и другая задача. Предположим, что надо ограничить поток, идущий в сторону соседа с медленным каналом.

Дабы точно предсказать, какие пакеты дойдут до соседа, а какие будут уничтожены в силу загруженности канала на «медленной» стороне, надо на «быстрой» стороне создать политику, которая бы заранее обрабатывала очереди и уничтожала избыточные пакеты.

И тут мы сталкиваемся с одной очень важной вещью: для решения этой задачи надо сэмулировать «медленный» канал. Для этой эмуляции не достаточно только раскидать пакеты по очередям, надо ещё сэмулировать физический буфер «медленного» интерфейса. У каждого интерфейса есть скорость передачи пакетов. Т.е. в единицу времени каждый интерфейс может передать не более, чем N пакетов. Обычно физический буфер интерфейса рассчитывают так, чтобы обеспечить «автономную» работу интерфейсу на несколько единиц вермени. Поэтому физический буфер, скажем, GigabitEthernet будет в десятки раз больше какого-нибудь интерфейса Serial.

Что же плохого в том, чтобы запомнить много? Давайте рассмотрим подробно, что произойдёт, в случае если буфер на быстрой передающей стороне будет существенно больше буфера принимающей.

Пусть для простоты есть 1 очередь. На «быстрой» стороне сэмулируем малую скорость передачи. Это значит, что попадая под нашу политику пакеты начнут накапливаться в очереди. Т.к. физический буфер большой, то и логическая очередь получится внушительной. Часть приложений (работающих через ТСР) поздно получат уведомление о том, что часть пакетов не получена и долго будут держать большой размер окна, нагружая сторону-приемник. Это будет происходить в том идеальном случае, когда скорость передачи будет равна или меньше скорости приёма. Но интерфейс принимающей стороны может быть сам загружен и другими пакетами
и тогда маленькая очередь на принимающей стороне не сможет вместить всех пакетов, передаваемых ей из центра. Начнутся потери, которые повлекут за собой дополнительные передачи, но в передающем буфере ведь ещё останется солидный «хвост» ранее накопленных пакетов, которые будут передаваться «вхолостую», т.к. на принимающей стороне не дождались более раннего пакета, а значит более позние будут просто проигнорированы.

Поэтому для корректного решения задачи понижения скорости передачи к медленному соседу физический буфер тоже надо ограничить.

Делается это командой

shape average

Ну а теперь самое интересное: а как быть, если мне помимо эмуляции физического буфера надо внутри него создать логические очереди? Например, выделить приоритетно голос?

Для это создаётся так называемая вложенная политика, которая применяется внутри основной и делит на логические очереди то, что в неё попадает из родительской.

Пришло время разобрать какой-нибудь залихватский пример на основе приведенной картинки.

Пусть мы собираеися создать устойчиво работающие голосовые каналы через интернет между CO и Remote. Для простоты пусть сеть Remote (172.16.1.0/24) имеет только связь с СО (10.0.0.0/8). Скорость интерфейса на Remote - 1 Мбит/сек и выделяется 25% этой скорости на голосовой трафик.

Тогда для начала нам надо выделить приоритетный класс трафика с обеих сторон и создать политику для данного класса. На СО дополнительно создадим класс, описывающий трафик между офисами

class-map RTP
match protocol rtp

Policy-map RTP
class RTP
priority percent 25

Ip access-list extended CO_REMOTE
permit ip 10.0.0.0 0.255.255.255 172.16.1.0 0.0.0.255

Class-map CO_REMOTE
match access-list CO_REMOTE


На Remote поступим иначе: пусть в силу дохлости железа мы не можем использовать NBAR, тогда нам остаётся только явно описать порты для RTP

ip access-list extended RTP
permit udp 172.16.1.0 0.0.0.255 range 16384 32768 10.0.0.0 0.255.255.255 range 16384 32768

Class-map RTP
match access-list RTP

Policy-map QoS
class RTP
priority percent 25

policy-map QoS
class CO_REMOTE
shape average 1000000
service-policy RTP


и применить политику на интерфейсе

int g0/0
service-policy output QoS

На Remote установим параметр bandwidth (в кбит/сек) в соответствие со скоростью интерфейса. Напомню, что именно от этого параметра будет считаться 25%. И применим политику.

int s0/0
bandwidth 1000
service-policy output QoS

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

На более умных L2/3 коммутаторах на маршрутизируемых интерфейсах (т.е. либо на interface vlan, либо если порт выведен со второго уровня командой no switchport ) применяется та же конструкция, что работает и на маршрутизаторах, а если порт или весь коммутатор работает в режиме L2 (верно для моделей 2950/60), то там для класса трафика можно использовать только указание police, а priority или bandwidth не доступны.

Причем часто червь распространяется по нужным для работы портам (ТСР/135,445,80 и др.) Просто закрыть на маршрутизаторе эти порты было бы опрометчиво, поэтому гуманнее поступать так:

1. Собираем статистику по сетевому трафику. Либо по NetFlow, либо NBARом, либо по SNMP.

2. Выявляем профиль нормального трафика, т.е. по статистике, в среднем, протокол HTTP занимает не больше 70%, ICMP - не больше 5% и т.д. Такой профиль можно либо создать вручную, либо применив накопленную NBARом статистику. Мало того, можно даже автоматически создать классы, политику и применить на интерфейсе
командой autoqos :)

3. Далее, можно ограничить для нетипичного сетевого трафика полосу. Если вдруг и подцепим заразу по нестандартному порту, большой беды для шлюза не будет: на загруженном интерфейсе зараза займет не более выделенной части.

4. Создав конструкцию (class-map - policy-map - service-policy ) можно оперативно реагировать на появление нетипичного всплеска трафика, создавая вручную для него класс и сильно ограничивая полосу для этого класса.

Никто не любит, когда при загрузке веб-страницы они открывают очень долго, а закачка файлов не происходит на том уровне, на каком хотелось бы. Хотя, при заказе услуги у провайдера там ясно значилось 20 или даже 100 Мб/с, а на деле мы не получаем такой скорости.

Конечно, этому есть объяснение. Во-первых, система забирает порядка 20% на свои нужды, во-вторых, браузеру поступает ответ с DNS-серверов, правда на это нужно время.

Чтобы там не было, мы сейчас разберемся, как увеличить скорость интернета в несколько раз.

Отключаем ограничение скорости QoS

Обычно в системе стоит ограничение в 20% по скорости, хотя у всех может быть по-разному. Для увеличения скорости интернета необходимо отключить этот параметр. Для этого мы будем пользоваться локальными групповыми политиками. К сожалению, данная функция доступна только на Pro редакциях Windows.

Откройте окошко «Выполнить», с помощью комбинации Win+R и в появившемся окне напишите такую команду: gpedit.msc .

С левой стороны открывшегося окна идём в раздел: Конфигурация компьютера Административные шаблоны – Сеть – Планировщик пакетов QoS Ограничить резервируемую пропускную способность .

Находим там пункт «Ограничить резервную пропускную способность». Нажмите на нём дважды и установите параметр в положение «Включено» , а потом впишите цифру «0» в «Ограничение пропускной способности». Нажмите «Применить».

Чтобы убедиться, работает ли сетевое устройство с планировщиком пакетов QoS нужно зайти в Центр управления сетями и общим доступом. Попасть туда можно, если нажать на панели задач по значку Wi-Fi, либо проводному подключению правой кнопкой мыши. Слева переходим в раздел «Изменение параметров адаптера». Нажимаем правой кнопкой мыши по своему подключению и выбираем «Свойства». Там должен появится параметр «QoS Packet Scheduler» , отмеченный галочкой.

Отключение QoS через реестр

При наличии другой версии Windows, кроме PRO эта инструкция может вам подойти. Переходим в реестр, для этого используем комбинацию Win+R и вводим команду regedit .

Идём в следующий раздел:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft

Здесь находим раздел Windows , нажимаем по нему правой кнопкой мыши и создаём новый раздел с именем Psched .

Переходим в созданный раздел и справа создаем параметр DWORD 32 бита с именем NonBestEffortLimit . Этому параметру мы присваиваем значение «0» .


После проделанной работы перезагружаем компьютер.

Отключаем ограничение скорости интернета в ПО

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

Взять к примеру торрент-клиент. Если нажать правой кнопкой мыши по активной закачке, то там есть пункт «Ограничение приёма» . Направляем на него мышь и смотрим. Активен должен быть режим «Неограниченно» .


С другими торрент-клиентами аналогично. В других же типах программ придется покопаться и найти что-то похожее.

Как увеличить DNS-кэш для увеличения скорости?

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

Поехали! Нажимаем Win+R и вводим команда для входа в реестр – regedit. Открывается окно, где мы слева должны перейти в этот раздел:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DNScache\Parameters

Справа вам нужно нажать правой кнопкой мыши по пустому месту и создать 4 параметра «DWORD» и дать им такие имена – CacheHashTableBucketSize , CacheHashTableSize , MaxCacheEntryTtlLimit , MaxSOACacheEntryTtlLimit .

У каждого из них должны быть эти значения (по порядку к каждому) – 1, 384, 64000 и 301.

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

Автоподстройка TCP – отключаем

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

Чтобы выполнить эту задачу нам нужно открыть командную строку с повышенными привилегиями и выполнить там такую команду:

Турбо режим браузеров для ускорения загрузки сайтов

Во многих браузерах существует функция «Турбо-режим», который ускоряет открытие страниц. Пока что он доступен на следующих популярных браузерах: Opera и Яндекс браузер. Для других же вы можете загрузить специальные расширения.

В Опере эта функция включается, если нажать в левом верхнем углу по кнопке «Opera». Находим функцию «Opera Turbo» и активируем её.

В Яндекс браузере эта функция включается в настройках – Показать дополнительные настройки. Рядом с разделом «Турбо» ставим «Всегда включен» .

Утилита NameBench для повышения загрузки страниц

Многие провайдеры, особенно коммерческие, всегда хотят сэкономить на оборудовании. А когда вы начинаете посещать веб-сайты, происходит обращение к DNS-серверам (оборудованию провайдеров). Если оно дешевое, то и скорость загрузки страниц у вас будет очень медленная. Чтобы исправить эту проблему нам необходимы быстрые DNS-сервера, а найти их нам поможет программка NameBench.



Она бесплатная, скачать можно отсюда . В программе установите свою страну и выберите браузер, который используете, а потом нажмите «Start Benchmark» . Программа начнет тестирование большого количества DNS-серверов и выберет наиболее быстрый.

Когда NameBench найдет нужный сервер, то покажет его IP-адрес, который необходимо прописать в настройках вашего подключения.

Обновление прошивки роутера

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

Вот собственно и все методы, которые можно использовать на современных версиях Windows. Хотя, может быть и еще что-то есть, а если и появится, то мы не обойдем это стороной.

Ответы:

Рыжанов Денис Иванович:
Нажимаете WinKey+R, пишите там "gpedit.msc", давите "Enter", дальше идете в закладку "Политика "Локальный компьютер"", "Административные шаблоны", "Сеть", "Диспетчер пакетов QoS", выбираете там вкладку "Ограничить резервируемую пропускную способность", кликаете по ней два раза мышкой, в появившемся окне выбираете вкладку "Включить, а чуть ниже выставляете "0%". Перезапускаете машину, чтобы изменения вступили в силу.

Alexey:
Не пользоваться ей! У вас просто нет таких приложений которые используют эту службу. Её используют некоторые Интернет-телефоны, и вообще она никак не мешает работе в Интернет. Благодаря этой службе возможна работа приложений, требовательных к времени задержки. Кстати, а есть все-таки одна прога - какая-то качалка от Microsoft, которая использует эту службу специально. Но, поверьте, эта служба ничего не забирает от канала - только во время передачи по этой службе она может забрать себе некую часть трафика (установленный предел, обычно 20%).

Shurovik:
Настроить его значение на 0%.

Vladimir Nozdrin:
Прочитайте статью: "Миф о QoS".

Максим:
Первое время пугали, что QoS резервирует 20% канала. Успокойтесь, это не так. Так что отключать не надо.

TU-154:
Зайдя в систему под Администратором, в редакторе Групповой политики (Пуск - Выполнить - gpedit.msc), Политика "Локальный компьютер" - Административные шаблоны - Сеть - Диспетчер пакетов QoS - Ограничить резервируемую пропускную способность включите этот параметр и выставьте ограничение в 0. Распространены сведения, что эта служба никак не влияет на скорость работы. Может быть, это и так, но в моем случае ее отключение приводит в увеличению скорости закачки с 2,5 до 2,9 Кбайт/с (по данным ReGet, то есть как раз примерно на 20%), и при работе в локальной сети - к увеличению степени использования канала с 80 до 95%.

Hotfrost:
Если удалить службу QoS Packet Scheduler из Properties соединения, этот канал не освобождается. Освободить канал, или просто настроить QoS, можно здесь: Запускаем апплет Group Policy (gpedit.msc). В Group Policy находим Localcomputer policy и нажимаем на Administrative templates. Выбираем пункт Network -- QoS Packet Sheduler. Включаем Limit reservable bandwidth. Теперь cнижаем Bandwidth limit 20% до 0, или просто отключаем его. При желании здесь же можно настроить и другие параметры QoS. Для активации произведённых изменений остаётся только перезагрузиться.

Basil:
Оставьте службу QoS в покое. Миф о 20% ограничении трафика давно развенчан. Авторы твикеров даже исключили этот пункт из своих программ.

RiLL-SV:
Ничего подобного! Проверь в пинг в интернет играх при нетронутом QoS и при его значении на 0! Вот тогда ты и поймешь, в чем разница между нетронутым QoS и QoS, который стоит на 0!