УДК 683. 519
ПОСТРОЕНИЕ СИСТЕМЫ КОНТРОЛЯ, АНАЛИЗА И УПРАВЛЕНИЯ ТРАФИКОМ
ЛОКАЛЬНОЙ СЕТИ
Дороничев Николай Николаевич, студент, [email protected],
ФГОУВПО «Российский государственный университет туризма и сервиса»,
г. Москва
The article describes the problems of construction of control, analysis and traffic control of a local network. The definition of the traffic of a local network, concept of the traffic entering and proceeding is presented. Existing levels of traffic control are considered. The author gives the substantiation of necessity for traffic control for maintenance of quality of service of delivery of the information to the user and an effective utilization of resources of a network. Methods of construction of the system of monitoring, analysis and traffic control of a local network are considered.
Статья посвящена проблемам построения контроля, анализа и управления трафиком локальной сети. В ней дано определение трафика локальной сети, понятие трафика входящего и исходящего. Рассмотрены существующие уровни управления трафиком. Приведено обоснование необходимости в управлении трафиком для обеспечения качества обслуживания доставки информации пользователю и эффективным использованием ресурсов сети. Рассмотрены методы построения системы контроля, анализа и управления трафиком локальной сети.
Keywords: the traffic, management of access, management ofpackages, management of a stream.
Ключевые слова: трафик, управление доступом, управление пакетами, управление потоком
Построение системы контроля, анализа и управления трафиком локальной сети является одной из важных функций, потому что управление трафиком предназначено для обеспечения качества обслуживания доставки информации пользователю и эффективным использованием ресурсов сети.
Трафик - это основной и единственный ресурс локальной вычислительной сети с точки зрения транспорта. Любая информация в сети передается в виде отдельных пакетов (блоков) небольшого размера, имеющими свой адрес отправителя и получателя и путешествующих по сети самостоятельно [2, 3].
Понятие «Учет трафика» появился вместе с развитием коммерческого сегмента сети интернет. Как только появился платный ресурс, для любого пользователя, подключенного к провайдеру услуг интернет, стало необходимостью учитывать потребление этого ресурса. Это нужно для того, чтобы понимать, на что расходуются деньги за связь. Практически любой провайдер, предоставляющий услуги интернет сам является клиентом для другого провайдера, потому что подключен нему, а значит, платит за входящий трафик. Поэтому необходимо не только учитывать трафик отправленной к клиентам информации, но и вести подсчет трафика пришедшего в сеть провайдера снаружи - от других провайдеров [2].
Прямые затраты на интернет зависят от объема потребленной информации (передача данных о новом продукте поставщиками, увлечение играми в сети и т.д). Информация, получаемая по интернету может быть как целевой, так и нецелевой, однако провайдер будет взимать плату за все виды трафика. Второй важнейшей причиной необходимости учета трафика являются вредоносные сетевые программы: вирусы, черви, так называемые троянские кони и т.д. Попавшие в сеть вирусы или черви стараются заразить другие компьютеры в интернет, создавая огромное количество трафика.
Для рационального использования финансовых средств необходимо, во-первых, иметь точную и оперативную информацию о том, кто, сколько и каких интернет-ресурсов потребляет, а, во-вторых, иметь возможность запретить доступ неблагонадежным пользователям или доступ к явно бесполезным ресурсам.
Вопросы проектирования трафика обширны и сложны и для эффективной разработки трафика необходимы знание его характеристик.
При работе с трафиком, нас интересует не то, что именно передано, а сколько и откуда. Трафик бывает входящий и исходящий. Входящий трафик - это объем импортированных пользователем данных. Исходящий - соответственно, объем экспортированных пользователем данных [2, 1].
Систему управления трафиком можно сравнить с управлением автомобильного движением в большом городе. У них одни и те же проблемы: регулирование потоков, предоставление приоритета тому или иному транспорту, наличие нарушителей правил движения. Грамотная организация движения обеспечивает порядок на дороге, та же ситуация и с управлением трафиком. Очень легко все запретить, но работать после этого станет практически не возможно.
Управление трафиком условно можно разделить на три уровня:
• управление пакетами;
• управление доступом;
• управление потоком.
Управление пакетами - это организация очередей пакетов, планирование их передачи которые происходят в коммутаторах, маршрутизаторах и мультиплексорах.
Коммутатор (или свич) - это узел, куда прибывают потоки пакетов, где они распределяются (демультиплекируются), пересылаются по сети (коммутируются), мультиплексируются (уплотняются) и передаются на выход.
Коммутатор передает данные только непосредственно получателю или на МАС-адрес всем узам сети. Коммутация пакетов позволяет использовать альтернативные маршруты в случае неисправности одного из сетевых соединений. Хотя коммутация замедляет взаимодействие двух отдельных клиентов сети, но в целом позволяет значительно увеличить объем передаваемых в сети данных.
Коммутаторы пакетов имеют буферную память, гарантирующую, что прибывающие одновременно пакеты не будут потеряны. Информация о прибывших пакетах хранится в таблице, в которой указывается соответствие MAC-адреса узла порту коммутатора.
Путь, который проходит пакет по сети, может быть представлен в виде последовательности систем очередей, где пакеты от разных потоков «перемешиваются» с пакетами для занятия буферов и передачи по дальнейшим участкам пути. Эти потоки могут входить в один узел и расходиться по другим узлам, потому что они принадлежат разным потокам.
Обработка пакета вдоль пути - это накопление и обработка очереди от различных систем, а общее время задержки в сети есть сумма индивидуальных задержек в каждой системе. Задержка пакетов может сопровождаться фазовым дрожанием (jitter). Фазовое дрожание показывает изменение времени задержек пакетов и обычно измеряется как разность минимальной задержки и максимального значения задержки.
В случае если буфер переполнен, а на вход системы очередей поступает очередной пакет, возникает потеря «пакета». Существует три причины потери пакета: пачки в поставке пакетов; увеличенное время передачи из-за наличия большого числа длинных пакетов; большой поток пакетов на участке «сеть—пользователь».
Передача пакетов не ограничивается только соединением, бывают случаи, когда соединение не установлено, значит, пакет идет по другому пути и имеет иную характеристику, чем пакет, имеющий соединение. Информация о таких пакетах и их характеристиках сохраняется в сетях пакетной коммутации до тех пор, пока не будет
установлено соединения между источником и пунктом назначения. Например, в сетях IP путь между источником и пунктом назначения остается фиксированным до тех пор, пока процедура маршрутизации не обновит маршрут и изменит таблицы маршрутизации. Следовательно, сети пакетной коммутации предназначены для предоставления услуг с разнообразными требованиями к качеству обслуживания. Для того чтобы выполнить весь набор услуг, они должны иметь спланированную систему организации называемую планированием очереди.
Существуют следующие стратегии планирование очереди:
• дисциплина обслуживания «в порядке поступления» и приоритетные очереди;
• использование заголовка для определения приоритета очереди
• сортировка пакетов
• управление трафиком на уровне потока
• равнодоступная дисциплина.
Самый простой подход к планированию очереди - дисциплина FIFO (first in first out) в порядке поступления («первым пришел, первым вышел») [2].
При планировании очереди в порядке поступления в случае, если буфер полностью занят, пакеты отклоняются. Задержка и потеря прибывающих пакетов при этом зависят от интервала времени между двумя поступлениями соседних пакетов и от их длины. Если интервалы между поступлениями пакетов становятся очень малыми или длина пакета значительно увеличивается, пакеты создают очередь и характеристики сети ухудшаются. Раз при обслуживании пакетов в порядке поступления в очередь они обрабатываются без приоритетов, значит, нельзя обеспечить поступающие информационные потоки отличающимися требованиями к качеству обслуживания.
Недостатком дисциплины обслуживания FIFO является то, что пользователи, передающие пакеты с более высокой скоростью, лишают других пользователей с меньшей скоростью доступа к буферу.
Дисциплину управления очередью FIFO можно изменить, если применить дисциплину управления с обслуживанием пакетов согласно приоритету: когда число пакетов в буфере достигает некоторого порога, система не разрешает принимать пакеты низкого приоритета доступа (класс 2). Пакеты более высокого приоритета доступа (класс 1) принимаются, пока буфер не заполнится. В результате пакеты с более низким приоритетом доступа будут обслуживаться с более высокой вероятностью потери пакета.
Использование заголовка для определения приоритета очереди - второй метод, который определяет классы обслуживания.
Каждый отдельный буфер обслуживает различные классы обслуживания, имеющие различный приоритет. В каждый момент времени оборудование линии передачи, получая следующий пакет для передачи, выбирает пакет в зависимости от состояния очереди с высоким приоритетом.
Перечислим недостатки приоритетной организации очереди с различными уровнями обслуживания (с различными классами):
1) она не позволяет доступ пакетам низкого уровня, пока есть пакеты высокого уровня, независимо от загрузки канала;
2) не подряд поступающие заявки (т.е. редко поступающие заявки) высокого уровня могут блокировать длинную очередь низкого уровня;
3) не учитываются заявки различных пользователей одного и того же приоритета (например, пользователь с напряженной нагрузкой блокирует работу других пользователей).
Третий подход к организации планирования очереди - сортировка пакетов. Этот метод заключается в сортировке пакетов в буфере согласно приоритетной метке, отражающей безотлагательность, с которой каждый пакет должен быть передан.
Метка приоритета может содержать класс приоритета или желательный срок прибытия пакета. Если метка приоритета содержит класс приоритета, который зависит от времени прибытия пакета, улучшается дисциплина обслуживания с использованием заголовка. Если метка указывает желательный срок прибытия, то пакетам, требующим меньшей задержки, присваивается соответственно более ранний срок прибытия, и они передаются скорее. Пакеты, не предъявляющие строгие требования, имеющие неопределенные или долгие сроки, передаются после передачи пакетов с критическими сроками. Равнодоступная дисциплина очереди пытается обеспечить равноправный доступ к пропускной способности канала или дисциплина формируемая процессором (processor sharing discipline).
Существует несколько подходов к планированию равнодоступной очереди: пропускная способность передачи разделенная одинаково среди всех непустых буферов, циклический опрос каждого недоступного буфера и случайное раннее опережение.
Каждый пользовательский поток имеет свой собственный логический буфер. В идеальной системе пропускная способность передачи, разделена одинаково среди буферов. Размер буфера для каждого пользовательского потока выбирается таким образом чтобы
выполнить заданные требования по вероятности потерь, то есть ячейки или пакеты данного пользователя должны отклоняться, когда буфер полон. Практически деление пропускной способности «поровну» невозможно.
Следующим подходом равнодоступной очереди является циклический опрос каждого непустого буфера (round robin polling) и передаче по одному биту. При этом имеются как минимум две стратегии считывания: по битам и по пакетам. Каждая из них оказывает различное влияние на времена ожидания.
Разновидностью такой очереди является взвешенная равнодоступная очередь (Weighted Fair Queuing - WFQ). Она применяется в том случае, когда имеются пользователи с различными требованиями. Для потока каждого пользователя выделяется свой буфер, но каждый буфер имеет вес, который определяет долю участия в разделении производительности линии.
Еще одна разновидность равнодоступной очереди - случайное ранее обнаружение (Random Early Detection - RED). В этой системе происходит опрос буферов по случайному закону. При этом производится анализ заполнения буфера, и при угрозе переполнения проводится сброс пакетов.
Управление трафиком на уровне потока предназначено для обеспечения качества обслуживания (например, уменьшения времени задержек, потери ячеек, и т.п.), удовлетворяющего требования пользователя. Управление трафиком на уровне потока работает приблизительно миллисекунды и секунды. Пакетная коммутация имеет преимущество перед коммутацией каналов в части эффективного использования ресурса, разрешая потокам совместно динамически использовать ресурсы в сети. Однако динамическое совместное использование вызывает ряд проблем. Когда слишком много пакетов запрашивают один и тот же ресурс сети, возникает перегрузка и сетевая задержка, потеря или снижение производительности.
Цель управления трафиком на уровне потока состоит в том, чтобы управлять индивидуальными потоками и поддерживать работу (управляемая кривая) при наличии перегрузки. Поэтому этот процесс можно назвать управлением перегрузками.
Контроль перегрузок - сложная проблема, поэтому предложено много алгоритмов управления перегрузкой. Самый логичный подход идентифицирует два широких класса: управление с явными потерями (open-loop control); управление с повторной передачей (closed loop control).
Управление с явными потерями, контролируя трафик, сгенерированный источником, не ухудшит характеристики до уровня ниже заданного качества обслуживания.
В случае если нельзя гарантировать качество обслуживания, сеть отклоняет предложенный трафик прежде, чем вводить пакеты в сеть. Функция, которая принимает решение принять или отклонить новый трафик, названа «управление доступом». Управление с повторной передачей реагирует на перегрузку, когда она уже возникает или собирается возникнуть, регулируя трафик согласно состоянию сети.
Для сохранения характеристик сети класс управления с явными потерями использует три механизма: управление доступом к сети; стратегия безопасности; формирование трафика. Управление доступом - это сетевая функция, которая вычисляет ресурсы сети (например, ширину полосы и буферную память), необходимые новому потоку. Она определяет, имеются ли такие ресурсы по пути, который нужно пройти соединению и принимает решение принять поток или отклонить. Если новый поток не нарушает качество обслуживания уже существующих потоков, тогда поток принимается, в противном случае поток получает отказ в обслуживании. Качество обслуживания может выражаться в максимальной задержке, вероятности потери, разброса в задержке.
Для определения возможности выполнения показателей качества обслуживания объект, управляющий доступом, должен знать параметры трафика и требуемое качество обслуживания, заданное контрактом между источником потока и сетью. Перечислим параметры, описывающие поток трафика, которые позволяют вычислить готовность сети обеспечить заданное качество обслуживания: пиковая скорость (бит/с или байт/с); средняя скорость (бит/с или байт/с); максимальный размер пачки (бит, байт или секунды).
Пиковая скорость определяет максимальную скорость, с которой источник может генерировать пакеты. Средняя скорость определяет аналогичный параметр источника. Максимальный размер пачки определяет промежуток времени, когда источник будет генерировать трафик на пиковой скорости.
Как только поток принят объектом управления доступом, качество должно поддерживаться в течение времени существования потока. Если поток трафика превышает величину, согласованную контрактом, сеть может выбрать либо удаление, либо установку метки неконформного трафика. Установление метки уменьшает приоритет неконформного трафика, это позволяет доставлять его так, как разрешают ресурсы сети. Когда сетевые ресурсы будут исчерпаны, неконформный трафик удаляется первым. Формирование потоков. Когда источник пытается передать поток пакетов, он может не знать точно, как выглядит его поток. Если источник хочет иметь гарантию, что генерируемый им поток конформный, он должен иметь возможность формирования трафика. Формирование трафика означает процесс изменения потока для гарантий его
комфортности. Обычно устройства для формирования трафика устанавливаются на узле только перед тем, как трафик покидает сеть (исходящий узел), а устройства охраны размещаются на узлах, получающих трафик от других узлов (входящие узлы).
Главная цель управления перегрузкой в сети состоит в том, чтобы максимально использовать линии связи и в то же предотвратить переполнение буфера из-за перегрузки. Максимальное использование линии связи требует, чтобы источники передавали пакеты, как только пакеты готовы для передачи; чтобы предотвратить переполнение буфера из-за перегрузки, надо, чтобы источники не передавали слишком много пакетов. Эти две противоречивые цели являются причиной сложности проблемы управления перегрузками и поводом для того, чтобы искать пути ее решения.
Управление перегрузкой обычно применяет механизм управления с обратной связью (управление по замкнутому шлейфу - closed loop control). Механизм управления с обратной связью основывается на информации, полученной по обратной связи, полученная информация о состоянии сети является решающей при принятии решений. Это может быть информация о заполнении буферов, использовании линии связи или другая существенная информация о перегрузке.
Назовем типы управления по обратной связи: 1) из конца в конец; 2) по участкам.
При управлении из конца в конец информация обратной связи о состоянии сети, распространяется назад к источнику, который может регулировать скорость потока пакетов. При этом необходимо учитывать, что передача информации по обратной связи из конца в конец не может быть точной, так как она вносит некоторую задержку распространения.
Управление по участкам реагирует намного быстрее, чем управление из конца в конец, потому что имеет более короткую задержку распространения. При управлении с обратной связью по участкам информация о состоянии сети распространяется в направлении к расположенному выше по направлению потока узлу. При обнаружении перегрузки на исходящей линии связи, узел сообщает эту информацию расположенному выше по потоку соседу и замедляет скорость передачи этого узла. В результате этот сосед (расположенный выше по потоку узел) тоже испытывает перегрузку. В свою очередь он передает своему расположенному выше по потоку соседу сигнал уменьшить скорость и так до тех пор, пока сигнал не попадет к источнику. Этот процесс «обратного давления» (backpressure) от одного нижестоящего узла до другого вышестоящего узла.
Информация обратной связи бывает двух видов: явная и неявная. При явной обратной связи узел, обнаруживающий перегрузку, передает сообщение, которое уведомляет источник о перегрузке в сети. Явное сообщение передается в виде отдельного пакета или
вместе с пакетом. Самой простой формой уведомления является использование одного бита информации, который указывает на наличие или отсутствие перегрузки. Этот бит называется «явный указатель перегрузки» (Explicit Congestion Indication - EFCI) и устанавливается в заголовке ячейки ATM в идентификаторе полезной нагрузки. При обнаружении узлом угрозы перегрузки, он устанавливает бит EFCI в ячейке данных, передаваемых по загруженной линии в направлении пункта назначения. Пункт назначения, получив такие ячейки, посылает специальное сообщение для указания источнику, что обнаружена перегрузка. Источник должен регулировать свою скорость передачи. При неявной обратной связи явное сообщение не отправляется. Вместо этого источник должен опираться на некоторую информацию идентификатора объекта, чтобы определить ситуацию перегрузки.
Более сложная форма уведомления о перегрузках использует более сложную информацию для обратной связи, например сообщение в форме «желательная скорость передачи», по которой принимающий узел может точно регулировать скорость передачи [2, 4, 3]. Рассмотрим, например, управления перегрузкой в TCP. Для регулировки скорости передачи, выбирается неявная информация обратной связи - тайм-аут, то есть при отсутствии подтверждения, включается тайм-аут для повторной передачи. Когда в источнике сработает тайм-аут, он уменьшает скорость передачи, уменьшая «окно передачи». Затем источник ступенчато увеличивает скорость передачи, пока снова не будет обнаружена перегрузка, и потом повторяется весь цикл [2, 3, 4].
На уровне объединенных потоков управление трафиком работает с разнообразными потоками. Этот уровень может занимать относительно много времени - от нескольких минут до нескольких дней и его часто называют проектированием трафика (traffic engineering). Основной целью проектирования трафика является распределение объединенных потоков по сети таким образом, чтобы эффективно использовать сетевые ресурсы. При маршрутизации выбор самого короткого пути позволяет доставлять трафик наиболее быстро к пункту назначения но, к сожалению, часто не может привести к эффективной передаче потоков. Это объясняется тем, что при использовании маршрутизации по принципу самого короткого пути выбранная линия связи, может иметь высокую нагрузку, в то время как другие линии связи загружены мало. Примером лучшего распределения трафика служит модель, где он распределен по сети таким образом, чтобы потоки, создающие опасность перегрузки на критическом направлении были удалены [2, 4].
Как мы убедились процесс проектирования трафика обширен и сложен, а учет трафика -это только счетчик. Программные продукты, которые реализуют учет трафика в корпоративных сетях, должны уметь управлять доступом пользователей, обеспечивать защиту корпоративной сети, а также иметь различные дополнительные функции, облегчающие взаимодействие корпоративной сети с интернетом.
В зависимости от архитектуры сервера контроля корпоративного интернет-доступа могут быть задействованы различные методы получения данных о потреблении трафика, а именно - перехват пакетов, анализ журналов, авторизация пользователей.
Для решений, которые сами маршрутизируют трафик, наиболее удобным способом является перехват пакетов, проходящих сквозь сервер, для учета трафика. При этом система записывает в базу данных сведения об адресате и отправителе пакета, его размер, и возможно дополнительную информацию. Суммирование этих записей за определенный период и соотнесение получателя с реальным пользователем системы и дает информацию о потреблении трафика этим пользователем [2].
Если необходимо выдать больше данных по трафику, нужен анализ файлов журналов внешних или собственных серверов. Обработка лог-файлов прокси сервера поможет не только показать объем полученного пользователем трафика, но и точно указать объект, закачка которого привела к этому потреблению.
Многие решения - лишь анализаторы лог-файлов прокси-серверов, с помощью них можно выдать довольно большой объем информации, но иногда этого может быть недостаточно. Оптимальным вариантом является скоординированный сбор данных из всех возможных источников: перехват пакетов, анализ журналов, если это приводит к более полному отражению ситуации с потреблением трафика.
Считается, что авторизация пользователей - самая важная функция серверов контроля корпоративного Интернет подключениям. Авторизация пользователя - это механизм, посредством которого сервер отличает одного пользователя от другого. Для того чтобы решения можно было настроить под сеть, а не наоборот (сеть под решение), необходимо использовать авторизацию через несколько механизмов: Active Directory посредством контроллера Windows домена, так как этот механизм применяется для ведения учетных записей пользователей;
• авторизацию по IP адресу, этот вид авторизации считается не самым удобным и безопасным, но иногда необходимым;
• авторизацию посредством туннелей, т.е. создание VPN подключения к серверу контроля корпоративного Интернет доступа (например PPTP или L2TP);
• авторизацию по протоколу PPPoE;
• возможность комбинирования различных механизмов авторизации при их одновременной работе.
Краткие итоги
Управление трафиком можно классифицировать по трем уровням: управление пакетами; управление доступом; управление потоком.
Управление пакетами в основном выполняет следующие работы: организацию очередей пакетов, планирование передачи пакетов в коммутаторах, маршрутизаторах и мультиплексорах.
Самый простой подход к планированию очереди - дисциплина FIFO (first in first out) в порядке поступления («первым пришел, первым вышел»), где пакеты передаются в порядке их поступления.
При дисциплине обслуживания с использованием заголовка очереди отдельные буферы обслуживают различные классы обслуживания, имеющие различный приоритет (отметку коэффициента потери ячеек - CLP).
Дисциплина обслуживания с сортировкой очереди включает сортировку пакетов в буфере согласно приоритетной метке, отражающей безотлагательность, с которой каждый пакет должен быть передан.
Равнодоступная дисциплина очереди обеспечивает равноправный доступ к пропускной способности канала. В идеальной ситуации пропускная способность передачи разделена одинаково среди всех непустых буферов.
Взвешенная равнодоступная очередь (Weighted Fair Queuing - WFQ) используется в том случае, когда имеются пользователи с различными требованиями. Как и в предыдущем случае, для потока каждого пользователя выделяется свой буфер, но каждый буфер имеет вес, который определяет долю участия в разделении производительности линии.
Цель управления трафиком на уровне потока состоит в том, чтобы управлять потоками трафика и поддерживать работу (управляемая кривая) при наличии перегрузки. Поэтому этот процесс можно назвать управлением перегрузками.
Алгоритмы управления перегрузкой можно распределить по двум классам: управление с явными потерями (open-loop control) и управление с повторной передачей (closed loop control).