Подписаться  на наше издание быстро и дешевле чем где-либо Вы можете прямо сейчас! Подписаться! 

 


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

 

ПРАВДА О МИФЕ

 

НА ОПЦИЮ "Планировщик пакетов QoS" в свойствах "Сетевого окружения", рядом с протоколом TCP/IP, все реагируют по-разному. Одни относятся к этому спокойно, другие пытаются ее отключить и обнаруживают, что сеть продолжает работать. На самом деле для QoS Windows резервирует 20% сетевого канала. Многие администраторы, обескураженные этим фактом, начали отключать данную опцию, желая использовать весь сетевой канал. Потом в интернете распространилась информация о том, что якобы даже в отключенном состоянии этот сервис продолжает работать, и нейтрализовать его можно только с помощью манипуляций с реестром. Так что же это за сервис?


КАК-ТО РОБЕРТ МЕТКАЛФ, создатель Ethernet, сказал, что Ethernet не умрет никогда, ведь если кто-то придумает более совершенную технологию, то он назовет ее Ethernet (в общем, так оно и получилось). Безусловно, возможности этой технологии впечатляют, но есть и другая сторона медали. Одним из недостатков, например, является то, что Ethernet — это сеть без гарантии передачи данных. Хотя, с другой стороны, целостность данных гарантируется на более высоком уровне, скажем, протоколом IP.


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


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

 

VIP-ПАКЕТЫ

 

СЕГОДНЯ ШИРОКО известны две специализированные технологии, решающие данную проблему — сети ATM и RSVP (Resource Reservation Protocol). RSVP гарантирует, что передача пакета не превысит определенного максимума, а ATM еще и препятствует "дрожанию" — задержкам и длительности движения пакетов в сети. Эти сети непосредственно поддерживают QoS (Quality of Service) — контроль качества сервиса.


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


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


Именно эту схему одобрила IEEE, когда создала спецификацию 802. 1p(802.1d). В ней предписано обозначать IP-пакеты специальными битами, позволяющими отнести конкретный пакет к одному из восьми уровней приоритета. При этом маршрутизаторы и коммутаторы будут передавать пакеты в соответствии с их приоритетом. Это позволяет, с одной стороны, сделать поток данных от необходимых приложений более предсказуемым, а с другой, гарантирует, что при переполнении буферов активных сетевых устройств в первую очередь будут отброшены пакеты второстепенных программ.


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

 

Для включения режима классификации трафика нужно задействовать сервисы QoS


Для того чтобы работал CoS, необходимо, чтобы все звенья цепи, по которой происходит передача данных (коммутаторы, маршрутизаторы, серверы), поддерживали приоритезацию трафика, именуемую в таких устройствах также DiffServ (Differentiated Services). Это означает, что, например, коммутатор должен уметь классифицировать данные и читать метку класса пакета,  помещать пакет в  стек отсортированных по значимости пакетов. Естественно, пакеты на вершине стека будут обработаны быстрее.


Сегодня существует несколько принципов классификации трафика:

  • по типу протокола. Например, SNMP-трафик принято относить к наивысшему приоритету;
  • на основе MAC-адреса. Используется, когда нужно дать преимущество некоторым компьютерам;
  • VLAN-метки. IEEE 802.1Q — стандарт, который описывает способ, позволяющий вставлять метку в IEEE MAC-кадр и таким образом определять принадлежность к той или иной виртуальной сети;
  • TOS. В IP-пакете выделено битовое поле, которое называется TOS (Type of Service). Но сейчас поле переопределено для использования в контексте DiffServ. Благодаря этому полю пакеты классифициру ются так, что за ними закрепляется определенный маршрут в сети. Установленное на основе политики приоритезации, поле TOS дальше может быть прочитано различными объектами IP-сетей, а значит, сможет обеспечить DiffServ в сетях LAN, intranet и extranet.

Как уже говорилось, сегодня существует тенденция стандартизировать поле TOS в пользу DSCP (DiffServe Code Point). Для этого поле IP-приоритета расширяется за счет введения поля битов, определяющих тип обслуживания. Это поле выглядит так:

 

 

КАК "ПРОСЕЯТЬ" ПАКЕТЫ?

 

КАК ЖЕ НА ПРАКТИКЕ отсортировывается трафик и одни данные идут раньше других? Это будет возможно, если и приложения, и устройства сети будут поддерживать стандарт DSCP. На рабочей станции приложения сами определяют приоритет претензий на сетевой канал. Далее пакеты, попадающие в сеть, будут проходить через сетевые узлы. Если все оборудование, которое используется в сети, умеет читать поле DSCP и правильно его интерпретировать, необходимый эффект будет достигнут.

 

Программным IP-телефонам и утилитам SNMP может понадобиться приоритет сетевого обслуживания

 

WINDOWS: КОНЕЦ ЗАБЛУЖДЕНИЯМ

 

ОПЕРАЦИОННАЯ СИСТЕМА, функционирующая на рабочей станции, должна иметь необходимые механизмы — CoS/QoS. В Windows эти возможности поддерживаются в версиях 2000 Server/XP/2003. Для включения контроля трафика вам нужно добавить "Планировщик пакетов" в список служб "Сетевого окружения".

 

Для 2003-й версии этой ОС следует установить Resource Kit Tools. Настройка приоритетов трафика производится с помощью утилиты Traffic Con troll. Вообще в этой ОС реализация контроля качества может быть организована двумя путями — Admission- и Traffic-контроль. В первом случае определяется, каким приложениям и пользователям дается привилегированный доступ к сетевым ресурсам. Во втором случае сегрегация сетевых данных происходит по признакам их принадлежности тому или иному протоколу, порту, меткам в заголовке пакетов.


Следует обратить внимание на то, что в современной приоритезации трафика предпочтение отдается стандарту DiffServ. Отличия в поддерживаемых сервисах ОС W2K и XP/2003 даны в таблице ниже.


Кроме того, W2K/2003 позволяет использовать групповые политики для ограничения трафика, и при этом не будут задействованы никакие изменения в поле пакетов DSCP.

 

Для того чтобы приложения могли самостоятельно указать системе, что они нуждаются в привилегированном доступе к ресурсам, Windows предоставляет разработчикам необходимый API. Он разработан как механизм взаимодействия приложения и сервисных компонентов ОС: traffic.dll, msafd.dll, tcpip.sys.

 

LINUX С QOS НА "ТЫ"

 

В LINUX СРЕДСТВА QoS также поддерживаются на уровне ядра. За это отвечает ветка ядра TCP/IP networking (CONFIG_INET), которую нужно собрать с поддержкой расширенных средств маршрутизации. Основным инструментом работы является утилита iptables2. Вообще Linux поддерживает несколько алгоритмов классификации трафика: Class Based Queue (CBQ), Token Bucket Flow (TBF), Clark-Shenker- Zhang (CSZ), First In First Out (FIFO), Priority Traffic Equalizer (TEQL), Stochastic Fair Queuing (SFQ), Asynchronous Transfer Mode (ATM), Random Early Detection (RED), Generalized RED (GRED), DiffServ Marker (DS_MARK). Поскольку приоритетным для IP-сетей считается DiffServ Marker, его и рассмотрим.

 

 

Над данным алгоритмом потрудился небезызвестный Алексей Кузнецов, подаривший нам отличную утилиту ip. Примечательно, что DS_MARK является более простым по сравнению с другими алгоритмами. Логическая схема его работы представлена на рисунке ниже.


В основе этого алгоритма лежит классификация очередей передачи. Классы нумеруются числами 1, 2, 3..., и эти числа, уменьшенные на единицу, определяют размер внутренней таблицы, необходимой для реализации соответствующего правила очереди. Числа называются indices. Очереди обозначаются с помощью литеры q, а q:0 указывает на главную очередь. Каждый класс может быть выбран с помощью фильтра, присоединенного к каждой очереди. Данный алгоритм работы ядра не связан с какой-то непосредственной реализацией приоритета передачи данных. DS_MARK только обозначает пакеты в соответствии с определениями DiffServ. Классификация пакетов создается командой tc:

 

>tc add qdisc dev eth0 handle $HD root dsmark indices $ID [default_index $DID][st_tc_index]

 

Таким образом, возникает первичная очередь передачи для сетевого интерфейса eth0. $HD — это обозначение номера очереди, а $ID — размер внутренней таблицы, которая определяет число классов, содержащихся в очереди. Параметр $DID указывает на класс, который будет принимать все пакеты, не попадающие ни в один из определенных классов. При этом qdisc — это сокращение от queue discipline — "правила очереди" или "правила передачи".

 

Например,

 

>tc add qdisk dev eth0 handle 1:0 root dsmark indices 32

 

Надо создать правила передачи для сетевой карты eth0. Они нумеруются как 1:x и насчитывают 32 элемента. Элементы 1:0 — 1:31 — это классы очереди. А следующей строкой   мы  описываем  другой  класс, имеющий предком класс 1:1:

 

>tc add qdisk dev eth0 parent 1:1 handle 2:0 root dsmark indices 8 default_index 7

 

У этого класса таблица на восемь элементов, а правило по умолчанию для него — 2:7.


Теперь надо разобраться, как происходит обработка пакетов в таблице. Каждый элемент (правило) таблицы имеет два важных значения — битовую маску и битовое значение. Что происходит с пакетом, попавшим в определенный элемент таблицы, показано на рисунке.


Из рисунка видно, что значение поля DiffServe Code Point будет меняться следующим образом:

 

new_bits = ( old_bits AND mask ) OR value

 

Подобрав битовую маску и битовое значение элемента таблицы, можно корректировать приоритет попадающих в него пакетов. Но как подобрать соответствующие характеристики таблицы? Для этого можно воспользоваться рекомендацией Assured Forwarding ("Гарантированная передача"), созданной PHB Group. В основе этой разработки лежит разделение пакетов на четыре группы и три подкласса. Шесть битов поля AF Code Point причисляют пакет к той или иной группе-подклассу. Вот их значения:

 


При этом распределение преимущества передачи пакетов между классами идет в пропорции, указанной в таблице:

 

 

Теперь предположим, что к нам приходит пакет без какого-либо установленного приоритета, то есть с полем DiffServe CodePoint 00 000 000 — best-effort-service. Чтобы из классов AF получить соответствующее поле класса обслуживания, достаточно дополнить его двумя нулями слева. А чтобы повысить приоритет класса до уровня 2, необходимо выбрать маску, "съедающую" указание на класс — 00000111 или 0x07, а также значение, соответствующее классу 2. Это будет 00010000 или 0x10. Далее следует определить элемент таблицы с такими значениями и описать правило, по которому в элемент будут попадать определенные пакеты.


В качестве примера рассмотрим следующую задачу: дать одной из подсети (192.168.1.0/24) преимущество сетевого трафика над другими. Для этого надо относить пакеты из выбранной подсети к классу 2, а в других пакетах сбрасывать значение DSCP в нулевое. Для привилегированного трафика есть mask = 0x07 и value = 0x10. В остальных случаях mask = 0x00 и value = 0x00. Наш скрипт должен выглядеть примерно так:

 

#!/bin/sh
#создаем корневой класс 1:0. В таблице два элемента
tc add qdisk dev eth0 handle 1:0 root dsmark indices 3
#Для привилегированного трафика
tc class change dev eth0 classid 1:1 dsmark mask 0x07 value 0x10
#Для остального трафика
tc class change dev eth0 classid 1:2 dsmark mask 0x00 value 0x00
#Создаем фильтры, отбирающие пакеты и отправляющие их в нужные элементы таблицы
#Для избранной подсети
tc filter add dev eth0 parent 1:0 protocol ip match ip src 192.168.1.0/24 flowid 1:1
#Для других ip-адресов
tc filter add dev eth0 parent 1:0 protocol ip match ip src 192.168.0.0/16 flowid 1:2

 

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

 

ПРЕИМУЩЕСТВА СПЕЦИАЛИЗИРОВАННЫХ УСТРОЙСТВ

 

Основательная поддержка Linux манипуляции сетевыми пакетами позволила производителям активного сетевого оборудования использовать Linux в качестве софтовой начинки для своих устройств. В последнее время, однако, от такой идеи все чаще отказываются, предпочитая более адаптированное ПО. Можно использовать и хардварные решения для реализации идей QoS (см. фото маршрутизатора ZyXEL).

 


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

 

Работа алгоритма классификации пакетов DSMARK основана на взаимодействии фильтров и правил

 

Сегодняшние коммутаторы и маршрутизаторы имеют множество функций для обеспечения необходимого качества обслуживания в сети. Они умеют ограничивать скорость на своих портах и подавлять широковещательные рассылки, которые могут отобрать значительную часть пропускной способности сети. В таких устройствах, конечно, есть поддержка QoS (точнее, CoS). Настраивая данные функции, администратор уже не обязан "привязываться" только к командной строке — почти все устройства оснащены графическим интерфейсом. В качестве примера можно привести Zyxel GS-4024, обладающий удобным вэб-управлением.

 

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


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

 

ОСТАНОВКА ПО ТРЕБОВАНИЮ

 

СЕГОДНЯ ЭФФЕКТИВНОСТЬ ВЗАИМОДЕЙСТВИЯ сотрудников офиса все больше зависит от качества функционирования сетевой инфраструктуры. Например, VLAN часто используют для организации работы удаленных объектов, и этим достигается значительный эффект и в плане экономии ресурсов, и в плане мобильности. Однако функционирование такой сети очень зависит от пропускной способности канала. Администратору данного вида коммуникаций просто необходимо предоставить для VLAN соответствующую полосу трафика, иначе невозможно обеспечить работу сети, и даже при неповрежденных сетевых каналах может возникнуть сбой в работе сетевых коммуникаций. В этом случае просто не обойтись без классификации трафика и его дифференцированного обслуживания.

 

Полезные ссылки:

2006.08.30
19.03.2009
В IV квартале 2008 г. украинский рынок серверов по сравнению с аналогичным периодом прошлого года сократился в денежном выражении на 34% – до $30 млн (в ценах для конечных пользователей), а за весь календарный год – более чем на 5%, до 132 млн долл.


12.03.2009
4 марта в Киеве компания Telco провела конференцию "Инновационные телекоммуникации", посвященную новым эффективным телекоммуникационным технологиям для решения задач современного бизнеса.


05.03.2009
25 февраля в Киеве компания IBM, при информационной поддержке "1С" и Canonical, провела конференцию "Как сохранить деньги в условиях кризиса?"


26.02.2009
18-19 февраля в Киеве прошел юбилейный съезд ИТ-директоров Украины. Участниками данного мероприятия стали ИТ-директора, ИТ-менеджеры, поставщики ИТ-решений из Киева, Николаева, Днепропетровска, Чернигова и других городов Украины...


19.02.2009
10 февраля в Киеве состоялась пресс-конференция, посвященная итогам деятельности компании "DiaWest – Комп’ютерний світ" в 2008 году.


12.02.2009
С 5 февраля 2009 г. в Киеве начали работу учебные курсы по использованию услуг "электронного предприятия/ учреждения" на базе сети информационно-маркетинговых центров (ИМЦ).


04.02.2009
29 января 2009 года в редакции еженедельника "Computer World/Украина" состоялось награждение победителей акции "Оформи подписку – получи приз!".


29.01.2009
22 января в Киеве компания "МУК" и представительство компании Cisco в Украине провели семинар для партнеров "Обзор продуктов и решений Cisco Small Business"

 

 
 
Copyright © 1997-2008 ИД "Комиздат".