Передача данных с коммутацией по меткам
В начале 90-х для размещения маршрутной таблицы в маршрутизаторе хватало 4-8Мбайт, но требования быстро росли, и это стимулировало широкое внедрение идеологии автономных систем (AS). На какое-то время AS позволили решить проблему, но к 2005-му году требования к памяти маршрутизатора возросли до 100Мбайт, и это не предел.
Давайте сначала прикинем, со сколькими сетевыми узлами вы и сотрудники вашего подразделения устанавливаете связь в течение рабочего дня. Это число нестабильно, зависит от характера работы и сильно варьируется от человека к человеку. Но, очевидно, что это число вряд ли превышает нескольких сотен и слабо меняется со временем. Таким образом, для обеспечения требуемых маршрутов объем маршрутной таблицы, если бы он содержал только используемые вами IP-адреса, был бы незначительным. При этом поиск в такой таблице занимал бы на порядок меньше времени (RTT сокращается на порядок).
Именно идея сохранения в маршрутной таблице только реально используемых виртуальных путей и легла в основу разработки протокола MPLS и сопряженных с ним протоколов маршрутизации.
По мере разработки этой технологии стало ясно, что протокол MPLS (Multi Protocol Label Switching) достаточно удобен для реализации заданных значений QoS (управление трафиком – ТЕ), так как VPN (Virtual Private Network) в рамках MPLS формируются чаще всего одним сервис-провайдером. Идеология VPN является основой протокола MPLS.
11.1. Базовые предпосылки
Интернет — это система взаимодействия удаленных программ. Совместимость этих программ гарантируется тем, что они следуют определенным регламентациям (протоколам). Управление трафиком представляет собой проблему, ставшую актуальной за последние несколько лет (если не считать ее составляющую, сопряженную с управлением перегрузкой).
Период экстенсивного развития сети Интернет завершился несколько лет тому назад даже в РФ. Сейчас многие сервис-провайдеры пытаются привлечь клиентов дополнительными информационными услугами: IP-телефония, интерактивные игры, доступ к разнообразным базам данных и депозитариям, электронным магазинам, видеоконференциям, видеотелефонии, различным разновидностям цифрового телевидения и т. д. Клиенты же ищут не просто любого доступа в Интернет, а интересуются полосой пропускания, безопасностью, стабильностью связи. Именно с этим сопряжен бум разработок основополагающих документов (RFC) в последние 5 лет. По этой причине многие компании, в первую очередь производящие сетевое оборудование, уделяют повышенное внимание средствам управления трафиком (ТЕ) и QoS.
Около 10 лет назад началась разработка первого протокола RSVP (RFC-2205). В нем осуществляется резервирование полосы пропускания (интегральный сервис) вдоль виртуального пути. Запрос резервирования посылает получатель трафика, а исполнителями запроса являются маршрутизаторы, обслуживающие виртуальный путь этого трафика.
Современные задачи требуют более тонкой настройки качества обслуживания ( QoS ). Важными параметрами, характеризующими QoS, являются: задержка доставки (RTT), дисперсия времени доставки пакета, вероятность его потери, например, из-за переполнения буферов в транзитных сетевых устройствах. Все эти характеристики зависят от организации очередей в сетевых устройствах. С точки же зрения пользователя важно получить гарантию того, что все характеристики QoS окажутся в пределах допусков непосредственно на его рабочем месте. Машина же пользователя чаще всего подключена к переключателю уровня L2, который может не поддерживать ни один из протоколов, гарантирующих QoS.
Если рассмотреть ситуацию на уровне L2, мы увидим, что здесь имеется сильная зависимость от физического уровня (L1). В сетях с маркерным доступом (например, Token Ring, см. book.itep.ru) существуют механизмы управления приоритетом и способы контроля доступа, гарантирующие определенное значение задержек сетевого отклика. В сетях ISDN и в особенности в ATM предусмотрен целый арсенал средств управления, работающих на фазе установления виртуального канала (процедура SETUP). Для Ethernet до последнего времени ситуация была много хуже. Здесь только некоторые переключатели поддерживают VLAN с приоритетами. Технология виртуальных сетей L2 позволяет сформировать в локальной сети соединение точка-точка. В таком соединении можно гарантировать пропускную способность на уровне 10/100Мбит/c. К сожалению, VLAN L2 создаются и модифицируются, как правило, администратором, но можно эту проблему перепоручить сценарию, например, на PERL, работающему с демоном SNMP сетевого прибора. В такой сети можно также гарантировать низкий уровень разброса времени реакции сети. Если сформировать VLAN с числом узлов (N) больше двух, можно гарантировать полосу лишь не ниже (10/100)/N. Для произвольной сети Ethernet никаких гарантий на уровне L2 предоставить нельзя. Здесь можно рассчитывать только на вышележащие уровни (IP/TCP/UDP).
Принципы организации приоритетного трафика на уровне L2 рассмотрены в стандарте 802.1р. Стандарт 802.1р является частью стандарта 802.1D (мостовые соединения). В протоколе 802.1Q определены 4-байта метки (смотри рис. 11.1). Поле EtherType=TPID (Tagged Protocol Identifier) содержит код 0x8100 (смотри главу об Ethernet). Это поле соответствует полю тип протокола стандартного поля кадра Ethernet и указывает на необходимость обработки кадра согласно требованиям IEEE 802.1Q.
Топология связей в локальной сети на уровне L3 определяется протоколами маршрутизации (статическими или динамическими — RIP, OSPF, IGRP).
Протокол (см. IP) предусматривает задание значение ToS, определяемое соответствующим полем заголовка. Однооктетное поле тип сервиса (TOS — Type Of Service) характеризует то, как должна обрабатываться дейтаграмма.
Субполе приоритет предоставляет возможность присвоить код приоритета каждой дейтаграмме. Значения приоритетов приведены в таблице.
0 | Обычный уровень |
1 | Приоритетный |
2 | Немедленный |
3 | Срочный |
4 | Экстренный |
5 | CEITIC/ECP |
6 | Межсетевое управление |
7 | Сетевое управление |
В новейших разработках (RFC-2474, Definition of the Differentiated Services Field (DS Field) in the IPv4 and IPv6 Headers) поле ToS заменено на поле DSCP (Differentiated Services Code Point), где младшие 6 бит выделены для кода DS (Differentiated Services), а старшие два бита пока не определены и их следует обнулять.
До середины 90-х годов поле ToS в большинстве реализаций игнорировалось. Но после начала разработок средств обеспечения качества обслуживания (QoS) внимание к этому возросло. Появилось предложение замены поля TOS на поле DSCP, которое также имеет 8 бит (см. RFC-2474). (Смотри рис. 11.1.) Старшие биты CU пока не определены. Иногда это поле называется байтом DS (Differentiated Services).
Биты DS0-DS5 определяют селектор класса. Значения этого кода представлены в таблице ниже. Стандартным значением DSCP по умолчанию является 000000.
Селектор класса | DSCP |
---|---|
Приоритет 1 | 001000 |
Приоритет 2 | 010000 |
Приоритет 3 | 011000 |
Приоритет 4 | 100000 |
Приоритет 5 | 101000 |
Приоритет 6 | 110000 |
Приоритет 7 | 111000 |
На базе DSCP разработана технология пошагового поведения PHB (per Hop Behavior). В рамках этой политики определяются коды DSCP внутри классов. Например, для политики немедленной переадресации EF рекомендуемое значение DSCP=101110. Эта политика соответствует наиболее высокому уровню обслуживания.
В маршрутизаторах компании CISCO Systems для классификации пакетов и выбора очередей используются два младших бита из трех. По умолчанию классу 0 выделяется 10% полосы, а классам 1, 2 и 3 — 20%, 30% и 40%, соответственно. Для очередей, основанных на классах QoS, пакеты, не принадлежащие ни одной группе, относятся к группе 0 и автоматически получают 1% от общей пропускной способности группы. Общий вес остальных групп не может превышать 99%. Если имеется нераспределенная полоса, она относится к группе 0. Понятно, что чем больше приоритетов или классов обслуживания используется, тем больше число очередей должно быть сформировано. Причем это относится ко всем сетевым устройствам вдоль пути транспортировки. Это условие далеко не всегда может быть выполнено.
Серьезное влияние на качество обслуживания оказывает перегрузка. Впрочем, если бы перегрузка никогда не возникала, не нужно было бы заботиться о качестве обслуживания, — оно было бы всегда гарантировано.
Строго говоря, значения TOS и QOS не эквивалентны, но именно значение поля ToS является базой для задания QoS. Присваивая при формировании IP-пакета определенное значение поля ToS, прикладная программа может попытаться реализовать определенные ограничения на QoS. Это поле может анализироваться маршрутизаторами, которые поддерживают протокол RSVP или MPLSTE, способные управлять трафиком.
Под управлением трафиком здесь и далее подразумевается обеспечение QoS, управление перегрузкой и средства перераспределения потоков данных. В протоколе UDP нет никаких средств управления трафиком, в ТСР имеются механизмы управления перегрузкой.
Кое-что предлагает набор протоколов RTP/RTCP, предназначенный для мультимедийных приложений (например, позволяет ликвидировать влияние разброса времени доступа в каналах Ethernet на качество воспроизведения изображения и звука.). Некоторые приложения и сетевые приборы способны сигнализировать о перегрузке (потере пакетов из-за переполнения буферов), посылая ICMP(4).
Существенную проблему составляет необходимость идентифицировать пакеты, принадлежащие определенному процессу. Эта задача легко решается только в рамках протокола IPv6. Там в заголовке предусмотрено поле метка потока. Некоторые возможности предоставляет также протокол MPLS.
11.2. Управление трафиком
В настоящее время используется несколько методов управления трафиком.
- Динамическая маршрутизация (RIP, OSPF, IGRP, BGP и т.д.). Здесь нет средства резервирования полосы, но предусмотрен механизм изменения маршрута при изменении значений метрики или из-за выхода из строя узла или обрыва канала. Некоторые из таких протоколов (OSPF, IGRP) могут строить отдельные таблицы маршрутизации для каждого уровня TOS/QOS [11.1], но метрики для каждого уровня задаются сетевым администратором. Здесь имеется возможность запараллеливания потоков с целью увеличения пропускной способности. Эти протоколы работают только в пределах одной автономной системы (AS). Протокол же BGP, используемый для прокладки путей между автономными системами, не способен в настоящее время как-либо учитывать уровень ToS/QoS (применяет алгоритм вектора расстояния, что связано с трудностью согласования значений метрик состояния канала администраторами разных AS). Новая версия многопротокольного расширения MPBGP специально создана для совместной работы с MPLS при формировании виртуальных сетей, но и он безразличен к TOS/QOS.
- Формирование виртуальных сетей на уровнях L2 и L3. Протоколы VLAN обеспечивают повышенный уровень безопасности, но, как правило, не способны резервировать полосу. К этому типу относится и протокол MPLS.
- Резервирование полосы в имеющемся виртуальном канале (протокол RSVP). RSVP может работать с протоколами IPv4 и IPv6. Протокол достаточно сложен для параметризации, поэтому для решения этой задачи был разработан протокол COPS, который существенно облегчает параметризацию. Функция COPS сходна с задачей языка RPSL для маршрутизации.
- Автоматическое резервирование полосы при формировании виртуального канала процедурой SETUP в сетях ATM, ISDN, DQDB, Frame Relay и т.д. Управление очередями осуществляется аппаратно, но базовые параметры могут задаваться программно. Программы управления трафиком MPLS позволяют расширить возможности L2 сетей ATM и Frame Relay.
- Использование приоритетов в рамках протокола IPv6. Возможность присвоения потокам меток облегчает, например, разделение аудио- и видеоданных.
- Управление перегрузкой (окно перегрузки в TCP, ICMP(4) для UDP-потоков и т.д.).
Качество обслуживания QoS
QoS связана с возможностью сети предоставить клиенту необходимый ему уровень услуг в условиях работы поверх сетей с самыми разнообразными технологиями, включая Frame Relay, ATM, Ethernet, сети 802.1, SONET и маршрутизуемые IP-сети.
QoS представляет собой собрание технологий, которые позволяют приложениям запрашивать и получать предсказуемый уровень услуг с точки зрения пропускной способности, временного разброса задержки отклика, а также общей задержки доставки данных. В частности, QoS подразумевает улучшение параметров или достижение большей предсказуемости предоставляемых услуг. Это достигается следующими методами:
- поддержкой определенной полосы пропускания;
- сокращением вероятности потери кадров;
- исключением сетевых перегрузок или контролем над ними;
- возможностью конфигурирования сетевого трафика;
- установкой количественных характеристик трафика по пути через сеть.
IEFT определяет для QoS следующие две архитектуры:
IntServ для явного задания уровня услуги (QoS) использует протокол RSVP. Это делается путем уведомления об этом требовании всех узлов вдоль пути обмена. Если все сетевые устройства вдоль пути могут предоставить запрошенную полосу, резервирование завершается успешно (смотри документ RFC-2205 [11.2]).
DiffServ, вместо того чтобы уведомлять о требованиях приложения, использует в IP-заголовке DiffServ Code Point (DSCP) для указания требуемых уровней QoS. Cisco IOS® Software Release 12.1(5)T вводит совместимость маршрутизаторов Cisco с DiffServ (см. [15-16]).
Управление перегрузкой может осуществляться путем изменения порядка, в котором посылаются пакеты согласно приписанного им приоритета. QoS-управление перегрузкой имеет четыре модификации протоколов управления очередями, каждый из которых позволяет организовать разное число очередей. L2 QoS предполагает следующее:
- Управление входными очередями. Когда кадр приходит на вход порта, он может быть отнесен к одной из нескольких очередей, ассоциированных с портом, прежде чем он будет направлен на один из выходных портов. Как правило, несколько очередей применяются тогда, когда различные информационные потоки требуют различных уровней услуг или минимизации задержки. Например, IP-мультимедиа требует минимизации задержки, в отличие от передачи данных в FTP, WWW, email, Telnet, и т.д.
- Классификация. Процесс классификации включает просмотр различных полей в заголовке Ethernet L2, а также полей IP-заголовка (L3) и заголовков TCP/UDP (L4), чтобы обеспечить определенный уровень услуг при коммутации пакетов.
- Политика. Осуществление политики является процессом анализа кадра Ethernet, чтобы определить, не будет ли превышен заданный уровень трафика за определенный интервал времени (обычно это время является внутренним параметром переключателя). Если кадр создает ситуацию, при которой трафик превысит заданный уровень, он будет отброшен или значение CoS (Class of Service) может быть понижено.
- Перезапись. Процесс перезаписи предоставляет возможность переключателю модифицировать CoS или ToS (Type of Service) в IPv4-заголовке. Следует учесть, что заголовок Ethernet 802.3 поля CoS не имеет (именно эта версия стандарта наиболее распространена в РФ).
- Управление выходными очередями. После процесса перезаписи переключатель поместит кадр Ethernet в выходную очередь для последующей коммутации. Переключатель выполнит управление буфером так, чтобы не произошло переполнение. Это обычно осуществляется с помощью алгоритма RED (Random Early Discard), когда некоторые кадры случайным образом удаляются из очереди. Weighted RED (WRED) является директивой RED (используемой некоторыми модулями семейства Catalyst 6000), где значения CoS анализируются, чтобы определить, какие кадры следует отбросить. Когда буферы окажутся заполнены до определенного уровня, кадры с низким уровнем приоритета отбрасываются, в очереди сохраняются только высокоприоритетные кадры.
11.3. Мультипротокольная коммутация по меткам (протокол MPLS)
Основы протокола MPLS описаны в официальных документах RFC [11.3-11.9 и 11.14]. Существуют публикации и на русском языке [11.11-11.13]. Имеются три монографии, посвященных рассматриваемой проблематике [11.17-11.19].
Протокол MPLS хорошо приспособлен для формирования виртуальных сетей (VPN) повышенного быстродействия (метки коммутируются быстрее, чем маршрутизируются пакеты, — это связано с меньшим размером маршрутных таблиц).
Принципиальной основой MPLS являются IP-туннели. Для его работы нужна поддержка протокола маршрутизации MP-BGP (RFC-2858 [23]). Протокол MPLS может работать практически для любого маршрутизируемого транспортного протокола (не только IP). После того как сеть сконфигурирована (для этого используются специальные, поставляемые производителем скрипты), она существует, даже если в данный момент через нее не осуществляется ни одна сессия. При появлении пакета в виртуальной сети ему присваивается метка, которая не позволяет ему покинуть пределы данной виртуальной сети. Никаких других ограничений протокол MPLS не накладывает. Протокол MPLS предоставляет возможность обеспечения значения QoS, гарантирующего более высокую безопасность. Не следует переоценивать уровня безопасности, гарантируемого MPLS, — атаки типа "человек посередине" могут быть достаточно разрушительны. При этом для одного и того же набора узлов можно сформировать несколько разных виртуальных сетей (задействуя разные метки), например, для разных видов QoS. Но можно использовать возможности АТМ (процедура setup), если именно этот протокол применен в опорной сети (возможные перегрузки коммутаторов не в счет).
Для обеспечения структурирования потоков в пакете создается стек меток, каждая из которых имеет свою зону действия. Формат стека меток представлен на рис. 11.2 и 11.3 (смотри RFC-3032). В нормальной ситуации стек меток размещается между заголовками сетевого и канального уровней (соответственно L2 и L3). Каждая запись в стеке занимает 4 октета.
Место заголовка МАС может занимать заголовок РРР. В случае работы с сетями АТМ метка может занимать поля VPI и VCI. Смотри рис 11.4. Глубина стека в данном случае не может превышать 1.
На рисунке 11.2 поле СoS соответствует субполю приоритет поля ToS. Поле CoS имеет три бита, этого достаточно для поля приоритета IP-заголовка. 6-битовое поле кода дифференцированной услуги DSCP сюда записать нельзя. Можно попробовать разместить этот код в поле самой метки. S — флаг-указатель дна стека меток; TTL — время жизни пакета MPLS.
Существующие версии программного обеспечения Cisco IOS (например, Cisco IOS Release 12.0) содержат набор средств управления трафиком. В частности, имеется возможность формировать статические маршруты и управлять динамическими маршрутами путем манипулирования значениями метрики. Иногда этого вполне достаточно, но в большинстве случаев провайдер нуждается в более эффективных средствах.
Межрегиональные каналы являются одной из основных расходных статей провайдеров. Управление трафиком позволяет IP-провайдеру предложить оптимальный уровень услуг своим клиентам с точки зрения полосы и задержки. Одновременно эта технология снижает издержки обслуживания сети.
MPLS представляет собой интеграцию технологий уровней L2 и L3. Управление трафиком в MPLS реализуется путем предоставления традиционных средств уровня L2 уровню L3. Таким образом, можно предложить в односвязной сети то, что достижимо только путем наложения уровня L3 на уровень L2.
Управление коммутацией по меткам основывается на базе данных LIB (Label Information Base). Пограничный маршрутизатор MPLS LER (Label Edge Router) удаляет метки из пакетов, когда пакет покидает облако MPLS, и вводит их во входящие пакеты. Схема работы с помеченными и обычными IP-пакетами показана на рис. 11.5.
Управление трафиком MPLS автоматически устанавливает и поддерживает туннель через опорную сеть, применяя возможности RSVP. Путь, используемый данным туннелем, в любой момент времени определяется на основе ресурсных требований и сетевых возможностей, таких, как полоса пропускания. Но MPLS может решать проблему обеспечения требуемого уровня QoS и самостоятельно.
Информация об имеющихся ресурсах доводится до сведения заинтересованных субъектов с помощью протокола IPG (Interior Protocol Gateway), алгоритм которого базируется на состоянии канала.
Путь туннеля вычисляется, основываясь на сформулированных требованиях и имеющихся ресурсах (constraintbased routing). IGP автоматически маршрутизирует трафик через эти туннели. Обычно пакет, проходящий через опорную сеть MPLS, движется по одному туннелю от его входной точки к выходной. Управление трафиком MPLS основано на следующих механизмах IOS (Input/output System):
- туннелях LSP (Labelswitched path), которые формируются посредством RSVP, с расширениями системы управления трафиком. Туннели LSP представляют собой туннельные двунаправленные интерфейсы IOS с известным местом назначения;
- протоколах маршрутизации IGP, базирующихся на состоянии канала (таких, как IS-IS) с расширениями для глобальной рассылки ресурсной информации, и расширениями для автоматической маршрутизации трафика по LSP-туннелям;
- модуле формирования пути MPLS, который определяет пути для LSP туннелей;
- модуле управления трафиком MPLS, который обеспечивает доступ и запись ресурсной информации, подлежащей рассылке;
- переадресации согласно меткам, которая предоставляет маршрутизаторам возможности, сходные с уровнем L2, — перенаправлять трафик через большое число узлов согласно алгоритму маршрутизации отправителя.
Одним из подходов управления опорной сетью является определение сети туннелей между всеми участниками обменов. Протокол IGP, работающий в начале туннеля, определяет, какой трафик должен проходить через любой оконечный узел. Модули формирования пути и управления MPLS определяют маршрут LSP туннеля. Для каждого туннеля подсчитывается число прошедших пакетов и байт.
Иногда поток настолько велик, что его нельзя пропустить через один канал (туннель). В этом случае может быть создано несколько туннелей между отправителем и получателем.
Для реализации MPLS управления трафиком сеть должна поддерживать следующие возможности Cisco IOS:
- мультипротокольную переадресацию пакетов с использованием меток (MPLS);
- IPпереадресацию CEF (Cisco Express Forwarding);
- протокол маршрутизации ISIS (Intermediate SystemtoIntermediate System; см. RFC-1142, 1195, 2763, 2966 и 2973)
Дополнительные данные о MPLS и управлении трафиком можно найти в документации Cisco (поддерживается в реализациях 7620, 7640, 7200, 7500 и 12000).
Протоколы состояния канала типа IS-IS для вычисления кратчайшего пути для всех узлов сети используют алгоритм Дикстры SPF. Маршрутные таблицы получаются на основе дерева кратчайших путей. Эти таблицы содержат упорядоченный набор адресов места назначения и информацию о ближайших соседей. Если маршрутизатор осуществляет прокладку путей на основе алгоритма шаг-за-шагом, первым шагом является физический интерфейс, соединенный с маршрутизатором.
Новые алгоритмы управления трафиком вычисляют пути до одного или более узлов в сети. Эти маршруты рассматриваются как логические интерфейсы исходного маршрутизатора. В данном контексте эти маршруты представляют собой LSP и рассматриваются как TE-туннели (Traffic Engineering – средства не только управления трафиком, но и качеством обслуживания).
Эти TE-туннели являются реальными маршрутами, контролируемыми маршрутизаторами, которые размещены в начале этих туннелей. В отсутствие ошибок TE-туннели гарантируют отсутствие петель, но маршрутизаторы должны согласовать использование TE-туннелей — иначе могут стать возможными зацикливания двух или более таких туннелей. Вероятность возникновения такой ситуации незначительна, так как трасса туннеля определяется отправителем.
Управление трафиком MPLS
- Исключается необходимость ручной конфигурации сетевых устройств, чтобы задать определенные маршруты. Вместо этого можно положиться на возможности управления трафиком, предоставляемые MPLS.
- Производится оценка полосы канала и значения трафика при прокладке маршрута через опорную сеть.
- Имеются механизмы динамической адаптации, которые позволяют сделать опорную сеть устойчивой к отказам даже в условиях, когда несколько путей были рассчитаны в режиме offline. В случае отказа узлов производится коррекция топологии опорной сети.
В рекомендациях CISCO [15] можно прочесть, что MPLS позволяет провайдеру маршрутизировать потоки данных так, чтобы клиенту гарантировать минимум задержки и максимум пропускной способности.
Сформировав несколько виртуальных сетей для заданного набора узлов, можно попытаться объединять возможности этих сетей в случае возникновения такой необходимости, увеличивая пропускную способность. Можно для каждой из субсетей использовать разный уровень QoS с помощью протокола RSVP. Рассматривается внедрение протокола RSVP на уровень L2 [11.34].