Быстрый рост трафика в магистральных IP-сетях заставляет производителей оборудования искать способы повышения их пропускной способности. Один из таких способов - коммутация третьего уровня.
Сейчас уже почти все соглашаются, что победителем в "войне протоколов" стал IP. Согласно опубликованному некоторое время назад прогнозу компании Gartner Group, к 2000 г. IP будет использоваться примерно в восемь-девять раз шире, чем SNA, IPX и другие протоколы, причем подавляющее превосходство IP скажется как в локальных, так и в глобальных сетях. Тому есть целый ряд причин: на нем базируется всемирная сеть Internet; это стандартный открытый протокол, который поддерживается практически всеми платформами; он способен к дальнейшему развитию и "интеллектуализации".
МАРШРУТИЗАЦИЯ ИЛИ КОММУТАЦИЯ?
Современные IP-сети используют в своей работе маршрутизаторы. Существует целый ряд протоколов, обеспечивающих в IP-сетях маршрутизацию сообщений к точке назначения, в частности RIP (Routing Information Protocol), OSPF (Open Shortest Path First), BGP (Border Gateway Protocol), разработанные Cisco Systems закрытые протоколы IGRP (Internet Gateway Routing Protocol) и EIGRP (Enhanced Internet Gateway Routing Protocol) и др.
Все эти протоколы действуют следующим образом. В маршрутизаторах хранятся таблицы, где тем или иным способом описана топология сети. Когда пакет с данными прибывает в маршрутизатор, направление его дальнейшей передачи определяется по содержащемуся в нем адресу назначения. Протоколы маршрутизации отличаются друг от друга в первую очередь тем, каким образом маршрутизаторы собирают информацию о топологии сети и как вычисляется направление дальнейшей передачи пакета.
Передача пакетов между устройствами осуществляется на канальном уровне (для этого в IP-сетях могут использоваться самые разные технологии, например Ethernet, frame relay, ATM), а адрес назначения представляет собой поле в пакете третьего уровня. Если при передаче пакета на канальном уровне осуществляется его разборка на меньшие блоки (например, ячейки фиксированной длины в сети ATM), то для правильной маршрутизации пакета его надо сначала собрать, для чего необходимо определенное время. Кроме того, нужно принять решение о дальнейшей передаче каждого пакета, на что тоже требуется время, - причем оно тем больше, чем обширнее сеть.
Между тем, интенсивность трафика в IP-сетях растет. Все активнее обсуждаются выгоды от передачи мультимедийных потоков (голоса и видеофрагментов) в реальном времени через IP-сети. Соответственно, они должны не только иметь высокую пропускную способность, но и гарантировать предоставление заказанной приложением полосы пропускания. Традиционным маршрутизаторам становится все труднее справляться с решением этих задач, а задержки, связанные с необходимостью обработки каждого пакета, оказываются все заметнее.
Попытки "обойти" накладные расходы, связанные с маршрутизацией пакетов в IP-сетях, привели к возникновению идеи IP-коммутации. Эта технология построена примерно на тех же принципах, что и коммутация в сетях ATM. Если два узла "хотят" обменяться информацией, то вначале они должны построить некий виртуальный путь через сеть, который свяжет их между собой (рис. 1). Каждому фрагменту такого виртуального пути присваивается уникальная метка (в сетях АТМ это пара номеров - виртуального тракта и виртуального канала), отличающая его от всех других фрагментов; эта метка записывается в определенное поле передаваемого по сети пакета.
В коммутаторе хранится так называемая таблица замены меток (label-swap table), по которой и определяется, куда надо передавать поступившее на вход сообщение. На рис. 1 сообщения, поступающие на вход Коммутатора 1 через Порт 1 и имеющие метку 3/5, передаются на выход через Порт 3; при этом метка заменяется на 4/2. На Коммутаторе 2 все сообщения, поступающие на вход через Порт 2 и имеющие метку 4/2, передаются на выход через Порт 6; метка заменяется на 6/8. С какого порта на какой следует передавать сообщения и как заменять их метки - определяется при построении виртуального пути в начале обмена информацией.
Схема замены меток в коммутируемой сети
Понятно, что такой способ передачи информации через сеть экономичнее маршрутизации. Во-первых, здесь не тратится время на сборку/разборку пакетов. Во-вторых, решение о пересылке сообщения принимается на основе анализа короткого поля метки, да и таблицы замены меток, как правило, короче таблиц маршрутизации (таблицы замены меток соответствуют локальной топологии соединения непосредственных соседей данного коммутатора, а в таблицах маршрутизации описывается топология всей сети в целом или, как минимум, значительных ее областей).
КАК НЕ ЗАБЛУДИТЬСЯ В ТРЕХ КОММУТАТОРАХ
Существует целый ряд технологий IP-коммутации; они различаются способами построения виртуальных путей передачи сообщений. В целом, их обычно делят на две группы. Первая - коммутация на основе потоков сообщений. Так работают протоколы Next Hop Resolution Protocol (NHRP), разработанный рабочей группой IETF, и IFMP/GSMP, предложенные в свое время компанией Ipsilon (об этом очень подробно рассказывается в статье Д. Самуйлова и Т. Исаевой, опубликованной в шестом номере "Сетей" за прошлый год). Вторая группа - коммутация на основе топологии сети; именно к данной группе относится технология ARIS.
При работе по первой схеме под потоком сообщений понимается последовательность пакетов, исходящих из одного и того же источника, имеющих один и тот же адрес назначения и передаваемых через одни и те же порты коммутатора. Первые несколько пакетов потока передаются с использованием маршрутизаторов. Затем составляются таблицы замены меток (на основе того, каким образом передавался от коммутатора к коммутатору данный поток информации), и таким образом строится виртуальный путь передачи сообщений, принадлежащих к данному потоку. После этого сообщения следуют только по построенному виртуальному пути, не обращаясь к маршрутизаторам. Если виртуальный путь разрывается (например, из-за отказа канала связи), то в дело опять включаются маршрутизаторы, и выстраивается новый путь.
В протоколах IP-коммутации на основе топологии сети виртуальные пути передачи сообщений строятся при помощи информации о топологии сети, генерируемой посредством применения традиционных протоколов маршрутизации сообщений в IP-сети (например, OSPF и BGP). Таблицы замены меток, обеспечивающие передачу сообщений от любого граничного коммутатора к любому другому граничному коммутатору, выстраиваются заранее. Коммутатор, через который пакет попадает в сеть, называется входным, а тот, через который он выходит из сети, - выходным.
Получив пакет, входной коммутатор проверяет его IP-адрес назначения. Затем, по заранее составленной таблице, он определяет, на какой коммутатор (из соседних) следует передать этот пакет и какую метку использовать при передаче. Дальнейшая передача пакета по сети осуществляется с помощью заранее составленных таблиц замены меток. На выходном коммутаторе происходит сборка IP-пакетов, а потом они передаются в соответствии с IP-адресом назначения.
С последним способом IP-коммутации связана одна проблема: если не предпринять специальных мер, то число элементов в таблице замены меток растет пропорционально квадрату числа коммутаторов сети. Поэтому, на первый взгляд, для больших сетей данный подход не годится. Однако существуют алгоритмы построения виртуальных путей, при использовании которых число элементов таблицы растет пропорционально первой степени числа коммутаторов в сети. Именно так устроен протокол IP-коммутации ARIS (Aggregate Route-based IP Switching), предложенный и реализованный компанией IBM.
АРИЯ ПРО ARIS
Протокол ARIS предназначен для управления потоками информации в сетях, состоящих из интегрированных коммутаторов/маршрутизаторов (Integrated Switch/Router, ISR). Под этим термином понимается коммутатор второго уровня, способный поддерживать какой-либо протокол маршрутизации IP (например, OSPF) и протокол ARIS. ISR может выполнять как маршрутизацию пакетов на третьем уровне, так и коммутацию пакетов на втором уровне.
Примером такого устройства является коммутатор ATM под названием 8265 Nways ATM Switch, выпускаемый компанией IBM, в который встроен модуль IBM 8210 MSS (Multiprotocol Switched Services; более подробно об этой технологии можно прочитать в статье "Технология Multiprotocol Switched Services компании IBM", опубликованной в ноябрьском номере "Сетей" за прошлый год). В дальнейшем мы будем рассматривать IP-сети, где в качестве технологии канального уровня используется ATM. Однако все протоколы IP-коммутации, и ARIS в том числе, способны работать в любых сетях, в которых на канальном уровне работает какая-либо коммутируемая технология - от Switched Ethernet до frame relay.
Использование протокола ARIS позволяет строить коммутируемые тракты передачи данных через сеть ISR от входного узла сети к выходному. Понятия входного и выходного узла имеют смысл только в том случае, когда они относятся к определенному виртуальному пути; тот же самый коммутатор может быть входным для одних путей и выходным для других.
Ключевым в ARIS является понятие идентификатора выходной системы, или Egress ID. За каждым из Egress ID "стоит" одна или несколько систем, к которым можно получить доступ через выходной узел сети. Именно по этим идентификаторам и различаются виртуальные пути, которые строятся при работе под ARIS. К каждому Egress ID ведет ровно один виртуальный путь.
Чтобы понять это, обратимся к рис. 2. Здесь проиллюстрировано другое ключевое понятие протокола ARIS - слияние коммутируемых виртуальных путей. Коммутируемый виртуальный путь, связанный с определенным идентификатором выходной системы, имеет форму дерева, корень которого находится на выходном ISR, а ветви направлены ко всем входным ISR. Формирование этого дерева происходит следующим образом.
Схема коммутируемого виртуального пути в протоколе ARIS
Сначала в выходной ISR загружается идентификатор выходной системы. Например, Коммутатор 4 на рис. 2 является выходным для выходной системы Cеть А. В результате работы протокола ARIS будет построен коммутируемый виртуальный путь, связывающий все входные ISR с выходным ISR Коммутатора 4 и, далее, с выходной системой Сеть А.
Все коммутаторы, входящие в состав сети, обмениваются сообщениями INIT. Таким образом устройства "знакомятся" и сообщают друг другу, какие метки они могут использовать для обозначения виртуальных путей. После этого выходной ISR (в нашем случае - Коммутатор 4) отправляет своему соседу (Коммутатору 3) сообщение Establish. В нем содержатся идентификатор выходной системы, предлагаемая метка сегмента, соединяющего Коммутатор 3 и Коммутатор 4 в рамках выстраиваемого виртуального пути, и список ISR, через которые данный путь уже прошел (в описываемом случае путь только начинает выстраиваться, поэтому в списке будет фигурировать лишь сам Коммутатор 4).
Получив сообщение Establish, Коммутатор 3 выясняет, находится ли тот ISR, от которого поступило данное сообщение, на допустимом пути к выходному ISR. Для этого используется имеющаяся у коммутатора таблица маршрутизации, которая составляется в момент построения сети и поддерживается на протяжении всего времени ее существования; для таких целей и необходим протокол IP- маршрутизации.
Кроме того, Коммутатор 3 выясняет, не содержатся ли в присланном ему списке циклы. Если все в порядке, Коммутатор 3 вносит еще один Egress ID в свою таблицу маршрутизации и записывает метку виртуального пути, ведущего к этому Egress ID, в соответствующую таблицу. Затем Коммутатор 3 посылает Коммутатору 4 подтверждение.
Далее, Коммутатор 3 присваивает метки виртуальным каналам, ведущим от него ко всем узлам сети (кроме Коммутатора 4, которому он только что послал подтверждение), и посылает этим узлам (в нашем случае - Узлам 1, 2 и 5) сообщение Establish. Метки виртуальных путей, ведущих к узлам, от которых после этого пришли подтверждения (в нашем примере мы решили обойтись без затей: подтверждения приходят от всех узлов), заносятся в таблицу замены меток. Причем всем путям, входящим в Коммутатор 3 и ведущим к Egress ID Сеть А, ставится в соответствие один и тот же выходной виртуальный путь. Именно таким образом и обеспечивается слияние путей, о котором мы говорили выше. За счет того, что к каждому Egress ID ведет лишь один путь, размеры таблиц замены меток, применяемых при IP-коммутации, растут пропорционально числу идентификаторов выходных систем, а не их квадрату (что имело бы место, если бы не использовались специальные алгоритмы).
За Egress ID могут "скрываться" самые разные системы - и просто конечная система, и IP-маршрутизатор, работающий под протоколом OSPF. В последнем случае весь трафик, адресованный системам, до которых можно "добраться" через этот маршрутизатор, следует по одному и тому же виртуальному пути. Сам маршрутизатор служит шлюзом между областью сети, где используется IP-коммутация, и областью, построенной по традиционной схеме. Наконец, средствами ARIS можно обеспечить многоадресную рассылку IP-сообщений (мультикастинг). При этом строится дерево, в корне которого находится узел, осуществляющий мультикастинг, а ветви ведут к членам группы, получающим данный поток многоадресной рассылки.
НА ПУТИ К СТАНДАРТИЗАЦИИ
Не так давно комитет IETF (Internet Engineering Task Force) образовал новую рабочую группу MPLS (Multiprotocol Label Switching). Она призвана разработать стандарт, объединяющий маршрутизацию на сетевом уровне и коммутацию на канальном. В рамках этой деятельности в IETF были поданы две заявки, основанные на использовании протоколов IP-коммутации на базе топологии сети. Одна из них - ARIS, а вторая Tag Switching от компании Cisco Systems. Мы обязательно будем рассказывать вам о деятельности MPLS.
Александр Крейнес - обозреватель журнала "Сети". С ним можно связаться при помощи электронной почты по адресу kreines@radio-msu.net.