{1}Титульный слайд {2}Содержание {3}МАРШРУТИЗАЦИЯ IP-ПАКЕТОВ В СОСТАВНЫХ СЕТЯХ {4} Рассмотрим механизм IP-маршрутизации на примере составной сети, представленной на рисунке. В этой сети 20 маршрутизаторов объединяют 18 сетей в общую сеть. N1-N18 это номера сетей. На каждом маршрутизаторе и конечных узлах А и В установлены протоколы IP. Маршрутизаторы имеют по несколько интерфейсов(портов), к которым присоединяются сети. Каждый интерфейс маршрутизатора можно рассматривать, как отдельный узел сети: он имеет сетевой адрес и локальный адрес в той подсети, которая к нему подключена. Например, маршрутизатор под номером 1 имеет 3 интерфейса, к которым подключены сети N1, N2, N3. Сетевые адреса этих портов обозначены IP11, IP12, IP13. Интерфейс IP11 является узлом сети N1. И, следовательно, в поле номера сети порта IP11 содержится номер N1. Маршрутизатор можно рассматривать как совокупность нескольких узлов, каждый из которых входит в свою сеть. В сложных составных сетях почти всегда существует несколько альтернативных маршрутов для передачи пакетов между двумя конечными узлами. Так, пакет, отправленный из узла А в узел В может пройти через маршрутизаторы 17, 12, 5, 4 и 1 или маршрутизаторы 17, 13, 7, 6 и 3. Задачу выбора маршрута из нескольких возможных решают маршрутизаторы, а так же конечные узлы. Маршрут выбирается на основании имеющейся у этих устройств информации о текущей конфигурации сети, а так же на основании критерия выбора маршрута. В качестве критерия часто выступает задержка прохождения маршрута отдельным пакетом, средняя пропускная способность маршрута для последовательности пакетов или наиболее простой критерий, учитывающий только количество пройденных в маршруте промежуточных маршрутизаторов. Полученная в результате анализа информация о маршрутах дальнейшего следования пакетов помещается в таблицу маршрутизации. {5} Посмотрим, как могла бы выглядеть таблица маршрутизации, например в маршрутизаторе 4. Представленная таблица значительно упрощена по сравнению с реальными. Например, здесь отсутствую столбцы с масками, признаками состояния маршрут, временем, в течение которого действительны записи данной таблицы. Вместо номера сети назначения может быть указан полный сетевой адрес отдельного узла назначения. Кроме того здесь указаны адреса сетей условного формата, не соответствующие какому-либо определенному сетевому протоколу. Тем не менее, эта таблица содержит основные поля, имеющиеся в реальных таблицах. В каждой строке таблицы следом за адресом назначения указывается сетевой адрес следующего маршрутизаторы, точнее сетевой адрес его интерфейса, на который надо направить пакет, чтобы тот передвигался по направлению к заданному адресу по рациональному маршруту. Перед тем, как передать пакет следующему маршрутизатору, текущий маршрутизатор должен определить на какой из нескольких собственных портов он должен поместить данный пакет. Для этого служит третий столбец таблицы маршрутизации. Некоторые реализации сетевых протоколов допускают наличие в таблице маршрутизации сразу нескольких строк соответствующих одному и тому же адресу назначения. В этом случае при выборе маршрута принимается во внимание значение четвертого столбца. Когда пакет поступает на маршрутизатор, модуль IP извлекает из поступившего заголовка кадра номер сети назначения и последовательно сравнивает его с номерами сетей из каждой строки таблицы. Строка с совпавшим номером сети указывает ближайший маршрутизатор, на который следует направить пакет. Чаще всего в качестве адреса назначения в таблице указывается не весь IP-адрес, а только номер сети назначения. То есть для всех пакетов, направляемых в одну и ту же сеть, протокол IP будет предлагать один и тот же маршрут. Однако в некоторых случаях возникает необходимость для одного из узлов сети определить специфический маршрут, отличающийся от маршрута, заданного для всех остальных узлов сети. Для этого в таблицу маршрутизации помещают для данного узла отдельную строку, содержащую его полный IP-адрес и соответствующую маршрутную информацию. Если в таблице имеются записи о маршрутах как к сети в целом, так и к её отдельному узлу, то при поступлении пакета, адресованного данному узлу, маршрутизатор отдаст предпочтение специфическому маршруту. На практике широко известен прием уменьшения количества записей в таблице маршрутизации, основанный на введении маршрута по-умолчанию (default route). {6} Задачу маршрутизации решают также конечные узлы(компьютеры). Решение этой задачи начинается с того, что протокол IP, установленный на конечном узле, определяет, направляется ли пакет в другую сеть или адресован к какому-нибудь узлу данной сети. Если номер сети назначения совпадает с номером данной сети, это означает, что пакет маршрутизировать не требуется, а в противном случае маршрутизация нужна. Структура таблиц маршрутизации конечных узлов и транзитных маршрутизаторов аналогична. Конечные узлы в ещё большей степени, чем маршрутизаторы пользуются приемом маршрутизации по умолчанию. Отличием работы маршрутизатора и конечного узла является способ построения таблиц маршрутизации. Если маршрутизаторы, как правило, автоматически создают таблицы маршрутизации, обмениваясь служебной информацией, то для конечных узлов эти таблицы часто создаются вручную администраторами и хранятся в виде постоянных файлов на дисках. {7}ИНКАПСУЛЯЦИЯ IP-ПАКЕТОВ В КАДРЫ СВЯЗЫВАЕМЫХ СЕТЕЙ {8} Рассмотрим на примере IP-сети, представленной на данном рисунке, процесс продвижения пакетов в составной сети. Прежде чем поместить IP-пакет в кадр Ethernet необходимо выяснить надо ли этот пакет маршрутизировать через составную сеть или он адресован узлу, находящемуся в той же сети, что и отправитель. Для этого модуль IP сравнивает адреса сетей в адресах отправителя и получателя. Если в результате сравнения выясняется что пакет направляется в другую сеть, то его необходимо передать маршрутизатору. {9} Чтобы сеть Ethernet1 смогла доставить пакет маршрутизатору R1, этот пакет необходимо поместить в поле данных кадра Ethernet и снабдить его МАС-адресом. Эта проблема решается с помощью протокола ARP. После получения информации о МАС-адресах компьютер отправляет по локальной сети пакет, упакованный в кадр Ethernet, имеющий поля, показанные на рисунке. Кадр принимается интерфейсом 1 маршрутизатора R1, протокол Ethernet извлекает из этого кадра IP-пакет передает его протоколу IP, который находит в заголовке пакета адрес назначения и просматривает записи в своей таблице маршрутизации. Маршрутизатор R1 находит, что к нему подключена сеть FDDI и поэтому формирует кадр формата FDDI. На этом этапе модуль IP маршрутизатора R1 должен определить МАС-адрес следующего маршрутизатора по известному IP-адресу. Для этого он обращается к протоколу ARP. Зная МАС-адрес маршрутизатора R2, маршрутизатор R1 отсылает в сеть FDDI-кадр. Аналогично действует модуль IP на маршрутизаторе R2, получив FDDI-кадр он отбрасывает его заголовок, а затем из заголовка IP извлекает IP-адрес назначения и просматривает свою таблицу маршрутизации. Там он обнаруживает, что сеть назначения является непосредственно присоединенной к его второму интерфейсу. Маршрутизатор R2 отправляет в сеть Ethernet2 кадр, показанный на рисунке. Заметим, что во время всего путешествия пакета по составной сети от клиентского компьютера до DNS-сервера адреса получателя и отправителя в полях заголовка IP-пакета не изменились, зато в заголовке каждого нового кадра, который переносил пакет от одного маршрутизатора к другому аппаратные адреса изменялись на каждом отрезке пути. {10}УПРАВЛЕНИЕ ФРАГМЕНТАЦИЕЙ. СОГЛАСОВАНИЕ MTU {11} Важной особенностью протокола IP отличающей его от других сетевых протоколов, является его способность выполнять динамическую фрагментацию пакетов при передаче их между сетями с различными максимально допустимыми значениями длины поля данных кадров. Разница между фрагментацией сообщений в узле отправителя и динамической фрагментацией сообщений в транзитивных узлах сети – маршрутизаторах. Практически во всех стеках протоколов есть протоколы, которые отвечают за фрагментацию сообщений прикладного уровня на такие части, которые укладывались бы в кадры канального уровня. Для этого они анализируют тип технологии нижнего уровня и определяют её MTU(Maximum Transmission Unit – максимальная единица передачи). Протокол IP узле отправителя, как правило, не использует своей возможности по фрагментации пакетов. А вот на маршрутизаторе когда пакет необходимо передать из сети с большим в сеть с меньшим значением MTU, способности протокола IP выполнять фрагментацию становятся востребованными. Из приведенной таблицы видно, что значения MTU для наиболее популярных технологий существенно отличаются, а это значит, что в современной сети, которой свойственна гетерогенность, фрагментация не является редким явлением. {12} Суть фрагментации – разбиение пакета, пришедшего из сети с большим значением MTU в сеть с меньшим значением MTU, на более короткие пакеты-фрагменты. Фрагмент, путешествуя по сети, может вторично подвергнуться фрагментации на каком-либо из промежуточных маршрутизаторов. Каждый из фрагментов должен быть снабжен заголовком IP. Такие поля заголовка, как идентификатор, TTL, флаги DF и MF, смещение, непосредственно предназначены для проведения последующей процедуры сборки фрагментов в исходное сообщение. Получатель фрагмента использует идентификатор для того чтобы опознать все фрагменты одного того же пакета. Отправитель устанавливает в поле TTL время, в течение которого пакет может существовать в сети. Поле смещения фрагмента предоставляет получателю информацию о положении фрагмента в исходном пакете. Флаг MF(More Fragments – больше фрагментов), установленный в единицу – признак того, что пришедший фрагмент не является последним. Флаг DF(Do not Fragment – не фрагментировать), установленный в единицу – признак того, что данный пакет не подлежит фрагментации ни пи каких условиях. Если помеченный таким образом пакет не может достигнуть получателя без фрагментации то модуль IP просто уничтожает этот пакет, а узлу отправителю посылается диагностическое ICMP-сообщение. Процедура фрагментации. Прежде, чем разбить прибывший пакет на фрагменты модуль протокола IP, установленный на маршрутизаторе, организует несколько буферов для новых пакетов фрагментов. Затем он копирует в эт буферы содержимое некоторых полей заголовка IP из исходного пакета, создавая тем самым заготовки заголовков новых пакетов-фрагментов. Одни параметры заголовка IP копируются в заголовки всех фрагментов, а другие остаются лишь в заголовке первого фрагмента. Содержимое поля данных каждого фрагмента формируется в результате деления содержимого поля данных исходного пакета. При этом должны быть выполнены следующие два условия: 1) размер фрагмента (заголовка в сумме с полем данных) не должен превосходить MTU нижележащей технологии. 2) Размер поля данных каждого фрагмента кроме самого последнего должен быть кратным 8 байт. Размер последней части данных равен полученному остатку. Процедура сборки фрагментированного пакета. Сборка пакета происходит на хосте назначения. IP-маршрутизаторы не собирают фрагменты пакетов в более крупные даже если на пути встречается сеть, допускающая такое укрупнение. Это связано с тем, что отдельные фрагменты сообщения могут перемещаться по составной сети разными маршрутами. На хосте назначения для каждого фрагментированного отводится отдельный буфер. В этот буфер протокол IP помещает фрагменты, у которых совпадают IP-адреса отправителя и получателя, а так же значения в полях идентификатора и протокола. Собственно сборка заключается в размещении данных из каждого фрагмента в позицию, определенную смещением, указанным в заголовке фрагмента. Когда первый фрагмент исходного пакета приходит на хост-получатель, этот хост запускает таймер, который определяет максимальное время ожидания прибытия остальных фрагментов. Таймер может быть установлен на фиксированный период времени(от 60с до 120 с) или может быть выбран на базе значений TTL прибывших фрагментов. Последний подход основан на том, что нет смысла ожидать, пока прибудут другие фрагменты пакета, если время жизни одного из прибывших фрагментов уже истекло. Признаком окончания сборки является отсутствие незаполненных промежутков в поле данных и прибытие последнего фрагмента с равным нулю флагом MF. После того, как данные собраны их можно передавать вышележащему протоколу, например TCP. {13}ПРОТОКОЛЫ СБОРА И ОБРАБОТКИ МАРШРУТНОЙ ИНФОРМАЦИИ {14} Протоколы сбора и обработки маршрутной информации называются протоколами маршрутизации. Целью использования протокола маршрутизации является построение и поддержка таблицы маршрутизации. Протоколы маршрутизации идентифицирует все доступные маршруты, помещает лучшие в таблицу маршрутизации и удаляет из нее маршруты, если они становятся недоступными. Выделяют статическую маршрутизацию, когда таблица маршрутизации формируется вручную администратором, и динамическую. Основой динамической маршрутизации является алгоритм маршрутизации. {15} Большинство алгоритмов маршрутизации может быть отнесено к одной из 2х категорий: Дистанционно-векторный протокол (distance vector routing protocol) определяет направление, или вектор, и расстояние до нужного узла объединенной сети. Протокол с учетом состояния канала (link-state routing protocol) также называемый алгоритмом выбора кратчайшего пути (shortest path first – SPF) воссоздает топологию всей сети Сбалансированный гибридный протокол (balanced hybrid routing protocol) соединяет в себе определенные черты обоих алгоритмов. {16} Особенности дистанционно-векторных протоколов. При использовании дистанционно-векторных алгоритмов между маршрутизаторами они периодически пересылают копии таблиц маршрутизации друг другу. В таких регулярных обновлениях маршрутизаторы сообщают друг другу об изменении топологии сети. На рисунке каждые маршрутизатор получает таблицу маршрутизации соседних маршрутизаторов. В частности маршрутизатор Б получает информацию от маршрутизатора А. Маршрутизатор Б добавляет значение вектора расстояния, количество переходов, что увеличивает результирующий вектор расстояния. После этого маршрутизатор Б передает свою новую таблицу маршрутизации своему соседу маршрутизатору В. Такой пошаговый процесс происходит на всех соседних маршрутизаторах. Дистанционно-векторные алгоритмы не предоставляют маршрутизатору точную топологию всей сети, поскольку каждому маршрутизатору известны только соседние с ним маршрутизаторы. {17} Алгоритмы выбора маршрута по состоянию канала известны как алгоритмы Дейкстры или как алгоритм выбора кратчайшего пути. Они поддерживают сложную базу топологической информации. Процесс обнаружения сетей для маршрутизации по состоянию канала следующий. Маршрутизаторы обмениваются сообщениями LSA (Link-State Advertisement), начиная с непосредственно присоединенных сетей. Каждый маршрутизатор параллельно с остальными создает топологическую базу данных, состоящую из информации, полученной из сообщений LSA. Алгоритм SPF вычисляет доступность сетей. Маршрутизатор строит логическую топологию в виде дерева, корнем которого является он сам, а ветвями все возможные маршруты ко всем сетям, входящим в объединенную сеть протокола по состоянию канала. После этого маршруты сортируются с помощью алгоритма SPF. Маршрутизатор заносит наилучшие маршруты и связанные с ним интерфейсы в таблицу маршрутизации. {18}АВТОНОМНЫЕ СИСТЕМЫ {19} Автономная система (Autonomous System – AS) – это единый набор сетей, которые находятся под единым административным управлением и в которых используется единая стратегия и правила маршрутизации. Автономные системы делят объединенную сеть на несколько меньших и легче управляемых сетей. Каждая автономная система имеет свой набор правил и политик, а ее идентификационный номер является уникальным, т.е. отличает ее от всех остальных автономных систем. {20}ПРОТОКОЛ RIP {21} Протокол RIP (Routing Information Protocol – протокол маршрутной информации) является внутренним протоколом маршрутизации дистанционно-векторного типа. Представляет собой один из наиболее ранних протоколов обмена маршрутной информации и до сих пор чрезвычайно распространен в вычислительных сетях ввиду простой реализации. {22} Важнейшими характеристиками RIP-протокола являются: - стандартно обновления маршрутов широковещательного рассылаются каждые 30 сек. - в качестве метрики используется количество переходов. Если это количество переходов превышает 15, то пакет отбрасывается. {23} Процесс построения таблицы маршрутизации с помощью протокола RIP происходит в 5 этапов. Этап 1 – создание минимальной таблицы. В исходном состоянии сети в каждом маршрутизаторе программным обеспечением стека TCP/IP автоматически создается минимальная таблица маршрутизации, в которой учитываются только непосредственно подсоединенные сети. Этап 2 – рассылка минимальной таблицы соседям. После инициализации каждого маршрутизатора он начинает посылать своим соседям сообщения протокола RIP, в которых содержится его минимальная таблица. RIP-сообщения передаются в дейтаграммах протокола UDP и включают 2 параметра для каждой сети: ее IP-адрес и расстояние до нее от передающего сообщение маршрутизатора. Этап 3 – получение RIP-сообщений от соседей и обработка полученной информации. Протокол RIP замещает запись о какой-либо сети только в том случае, если новая информация имеет лучшую метрику (расстояние меньше), чем имеющаяся. В результате в таблице маршрутизации о каждой сети остается только одна запись. Этап 4 – рассылка новой таблицы соседям. Каждый маршрутизатор отсылает новое RIPсообщение всем своим соседям. В этом сообщении указываются данные обо всех известных ему сетях – как непосредственно подключенных, так и удаленных, о которых маршрутизатор узнал из RIP-сообщений. Этап 5 - получение RIP-сообщений от соседей и обработка полученной информации. Этот этап повторяет этап 3 – маршрутизаторы принимают RIP-сообщения, обрабатывают содержащуюся в них информацию и на ее основе корректируют свои таблицы маршрутизации. Хотя протокол RIP не в состоянии исключить в сети переходные состояния, когда некоторые маршрутизаторы пользуются устаревшей информацией о несуществующих маршрутах, имеется несколько методов, которые во многих случаях решают подобные проблемы. Проблема с петлей образующейся между соседними маршрутизаторами надежно решается с помощью метода расщепления горизонта. Этот метод заключается в том, что маршрутная информация о некоторой сети, хранящаяся в таблице маршрутизации, никогда не передается тому маршрутизатору, от которого она получена. Второй прием – замораживание изменений. Он связан с введением тайм-аута на принятие данных о сети, которая только что стала недоступной. Этот тайм-аут предотвращает принятие устаревших сведений о некотором маршруте от тех маршрутизаторов, которые находятся на некотором расстоянии от отказавшей и передают устаревшие данные о ее работоспособности. Предполагается, что в течение тайм-аута эти маршрутизаторы вычеркнут данный маршрут из своих таблиц, т.к. не получат о нем новых записей и не будут распространять устаревшие сведения по сети. {24}ПРОТОКОЛ OSPF {25} Протокол OSPF(Open Shortest Path First – выбор кратчайшего пути первым) является достаточно современной реализацией алгоритма состояний связей и обладает многими особенностями, ориентированными на применение в больших гетерогенных сетях. {26} OSPF разбивает процесс построения таблицы маршрутизации на два этапа. На первом этапе каждый маршрутизатор строит граф связей сетей, в котором вершинами графа являются маршрутизаторы и IP-сети, а ребрами – интерфейсы маршрутизаторов. Все маршрутизаторы для этого обмениваются со своими соседями той информацией о графе сети, которой они располагают к данному моменту. Сообщения, с помощью которых распространяется топологическая информация, называются объявлениями о состоянии связей цепи(Link State Advertisements, LSA). Кроме того, при передачи топологической информации OSPF маршрутизаторы ее не модифицируют, а передают в неизменном виде. В результате все маршрутизаторы сети располагают идентичными сведениями о графе сети, которые хранятся в базе данных о топологии сети. Второй этап состоит в нахождении оптимальных маршрутов с помощью полученного графа. В OSPF для решения этой задачи используется итеративный алгоритм Дейкстры. Каждый маршрутизатор считает себя центром сети и ищет оптимальный маршрут до каждой известной ему сети. В каждом найденном таким образом маршруте запоминается только один шаг – до следующего маршрутизатора, в соответствии с принципом одношаговой маршрутизации. Данные об этом шаге и попадают в таблицу маршрутизации. Если несколько маршрутов имеют одинаковую метрику до сети назначения,то а таблице маршрутизации запоминаются первые шаги всех этих маршрутов. Для того чтобы база данных о топологии сети соответствовала текущему состоянию сети, OSPFмаршрутизаторам необходимо постоянно отслеживать изменения состояния сети и вносить при необходимости коррективы в таблицу маршрутизации. Для контроля состояния связей и соседних маршрутизаторов OSPF-маршрутизаторы каждые 10 секунд передают друг другу сообщения HELLO. На основании принимаемых от непосредственных соседей сообщений HELLO маршрутизатор формирует записи о состоянии связях со своими непосредственными соседями в базе данных о топологии сети. В том случае, когда сообщения перестают поступать от какого-либо непосредственного соседа, маршрутизатор делает вывод о том, что состояние связи изменилось с работоспособного на неработоспособное и делает соответствующую отметку в своей базе данных. Одновременно он отсылает всем непосредственным соседям объявление LSA об этом изменении, и те так же корректируют свои базы данных и , в свою очередь, рассылают данное объявление своим непосредственным соседям. После корректировки графа сети каждый маршрутизатор заново ищет оптимальные маршруты и корректирует свою таблицу маршрутизации. Аналогичный процесс происходит и в том случае, когда в сети появляется новый сосед, объявляющий о себе с помощью своих сообщений HELLO, или новая связь. Кроме того каждые 30 минут OSPF-маршрутизаторы обмениваются всеми записями базы данных топологической информации, то есть синхронизируют их для более надежной работы сети. Маршрутизвторы соединены как с локальными сетями, так и непосредственно между собой глобальными двухточечными линиями связи. Протокол OSPF в своих объявлениях распространяет информацию освязи двух типов: маршрутизатор-маршрутизатор и маршрутизатор-сеть. {27} Рассмотрим эти типы связи на примере сети, изображенной на рисунке слева, ей соответствует граф, приведенный на рисунке справа. Примером связи первого типа служит связь R3-R4, второго –связь R4-195.46.17.0. Если двухточечным линиям связи дать IP-адреса, то они станут дополнительными вершинами графа, кА и локальные сети. Каждая связь характеризуется метрикой. Протокол OSPF по умолчанию использует метрику, учитывающую пропускную способность каналов связи. Для каждой из метрик протокол строит отдельную таблицу маршрутизации. К сожалению, вычислительная сложность этого протокола быстро растет с увеличением размерности сети. Для преодоления этого недостатка, вводится понятие области сети. Маршрутизаторы, принадлежащие некоторой области, строят граф связей только этой области, что сокращает размерность сети. Между областями информация о связях не передается. При передаче пакетов между областями выбирается один из пограничных маршрутизаторов области, а именно тот, у которого расстояние до нужной сети меньше. {28}КОМБИНИРОВАНИЕ РАЗЛИЧНЫХ ПРОТОКОЛОВ ОБМЕНА {29} Большинство протоколов маршрутизации, применяемых в современных сетях с коммутацией пакетов, ведут свое происхождение от сети Internet и ее предшественницы - сети ARPANET. Internet изначально строилась как сеть, объединяющая большое количество существующих систем. С самого начала в ее структуре выделяли магистральную сеть (core backbone network), а сети, присоединенные к магистрали, рассматривались как автономные системы (autonomous systems). Магистральная сеть и каждая из автономных систем имели свое собственное административное управление и собственные протоколы маршрутизации. Общая схема архитектуры сети Internet показана на рисунке. Маршрутизаторы, которые используются для образования подсетей внутри автономной системы, называются внутренними шлюзами (interior gateways), а маршрутизаторы, с помощью которых автономные системы присоединяются к магистрали сети, называются внешними шлюзами (exterior gateways). Непосредственно друг с другом автономные системы не соединяются. Соответственно, протоколы маршрутизации, используемые внутри автономных систем, называются протоколами внутренних шлюзов (interior gateway protocol, IGP), а протоколы, определяющие обмен маршрутной информацией между внешними шлюзами и шлюзами магистральной сети протоколами внешних шлюзов (exterior gateway protocol, EGP). Внутри магистральной сети также может использоваться любой собственный внутренний протокол IGP. Смысл разделения всей сети Internet на автономные системы в ее многоуровневом представлении, что необходимо для любой крупной системы, способной к расширению в больших масштабах. Внутренние шлюзы могут использовать для внутренней маршрутизации достаточно подробные графы связей между собой, чтобы выбрать наиболее рациональный маршрут. Однако, если информация такой степени детализации будет храниться во всех маршрутизаторах сети, то топологические базы данных так разрастутся, что потребуют наличия памяти гигантских размеров, а время принятия решений о маршрутизации непременно возрастет. Поэтому детальная топологическая информация остается внутри автономной системы, а автономную систему как единое целое для остальной части Internet представляют внешние шлюзы, которые сообщают о внутреннем составе автономной системы минимально необходимые сведения - количество IP-сетей, их адреса и внутреннее расстояние до этих сетей от данного внешнего шлюза. При инициализации внешний шлюз узнает уникальный идентификатор обслуживаемой им автономной системы, а также таблицу достижимости (reachability table), которая позволяет ему взаимодействовать с другими внешними шлюзами через магистральную сеть. Затем внешний шлюз начинает взаимодействовать по протоколу EGP с другими внешними шлюзами и обмениваться с ними маршрутной информацией, состав которой описан выше. В результате, при отправке пакета из одной автономной системы в другую, внешний шлюз данной системы на основании маршрутной информации, полученной от всех внешних шлюзов, с которыми он общается по протоколу EGP, выбирает наиболее подходящий внешний шлюз и отправляет ему пакет. {30}ПРОТОКОЛЫ EGP, BGP {31} EGP В протоколе EGP определены три основные функции: 1) установление соседских отношений, 2) подтверждение достижимости соседа, 3) обновление маршрутной информации. Каждая функция работает на основе обмена сообщениями запрос-ответ. Так как каждая автономная система работает под контролем своего административного штата, то перед началом обмена маршрутной информацией внешние шлюзы должны согласиться на такой обмен. Сначала один из шлюзов посылает запрос на установление соседских отношений (acquisition request) другому шлюзу. Если тот согласен на это, то он отвечает сообщением подтверждение установления соседских отношений (acquisition confirm), а если нет - то сообщением отказ от установления соседских отношений (acquisition refuse), которое содержит также причину отказа. После установления соседских отношений шлюзы начинают периодически проверять состояние достижимости друг друга. Это делается либо с помощью специальных сообщений (привет (hello) и Я-услышал-тебя (I-heard-you)), либо встраиванием подтверждающей информации непосредственно в заголовок обычного маршрутного сообщения. Обмен маршрутной информацией начинается с посылки одним из шлюзов другому сообщения запрос данных (poll request) о номерах сетей, обслуживаемых другим шлюзом и расстояниях до них от него. Ответом на это сообщение служит сообщение обновленная маршрутная информация (routing update). Если же запрос оказался некорректным, то в ответ на него отсылается сообщение об ошибке. Все сообщения протокола EGP передаются в поле данных IP-пакетов. Сообщения EGP имеют заголовок фиксированного формата. Поля Тип и Код совместно определяют тип сообщения, а поле Статус - информацию, зависящую от типа сообщения. Поле Номер автономной системы - это номер, назначенный той автономной системе, к которой присоединен данный внешний шлюз. Поле Номер последовательности служит для синхронизации процесса запросов и ответов. Поле IP-адрес исходной сети в сообщениях запроса и обновления маршрутной информации обозначает сеть, соединяющую два внешних шлюза. Сообщение об обновленной маршрутной информации содержит список адресов сетей, которые достижимы в данной автономной системе. Этот список упорядочен по внутренним шлюзам, которые подключены к исходной сети и через которые достижимы данные сети, а для каждого шлюза он упорядочен по расстоянию до каждой достижимой сети от исходной сети, а не от данного внутреннего шлюза. {32} Для примера, приведенного на рисунке, внешний шлюз R2 в своем сообщении указывает, что сеть 4 достижима с помощью шлюза R3 и расстояние ее равно 2, а сеть 2 достижима через шлюз R2 и ее расстояние равно 1. Протокол EGP имеет достаточно много ограничений, связанных с тем, что он рассматривает магистральную сеть как одну неделимую магистраль. Развитием протокола EGP является протокол BGP (Border Gateway Protocol), имеющий много общего с EGP и используемый наряду с ним в магистрали сети Internet. Протокол Граничных роутеров (Border Gateway Protocol - BGP) является попыткой решить самую серьезную проблему EGP. BGP является протоколом маршрутизации между AS, созданным для применения в Internet. В отличие от EGP, BGP предназначен для обнаружения маршрутных петель. BGP можно назвать следующим поколением EGP. Хотя BGP разработан как протокол маршрутизации между AS, он может использоваться для маршрутизации как в пределах, так и между AS. Два соседа BGP, сообщающихся из различных AS, должны находиться в одной и той же физической сети. Роутеры BGP, находящиеся в пределах одной и той же AS, сообщаются друг с другом, чтобы обеспечить согласующееся представление о данной AS и определить, какой из роутеров BGP данной AS будет служить в качестве точки соединения при передаче сообщений в определенные внешние AS и при их приеме. Некоторые AS являются просто каналами для прохождения через них сетевого трафика. Другими словами, некоторые AS переносят трафик, источник которого не находится в их пределах и который не предназначен для них. BGP должен взаимодействовать с любыми протоколами маршрутизации внутри AS, которые существуют в пределах этих проходных AS. Сообщения о корректировках BGP состоят из пар "сетевой номер/тракт AS". Тракт AS содержит последовательность из AS, через которые может быть достигнута указанная сеть. Эти сообщения о корректировке отправляются с помощью механизма транспортировки TCP для обеспечения надежной доставки. Обмен исходной информацией между двумя роутерами является содержанием всей маршрутной таблицы BGP. С изменением маршрутной таблицы отправляются инкрементные корректировки. В отличие от некоторых других протоколов маршрутизации BGP не требует периодического обновления всей маршрутной таблицы. Вместо этого роутеры BGP хранят новейшую версию маршрутной таблицы каждого равноправного члена. Хотя BGP поддерживает маршрутную таблицу всех возможных трактов к какой-нибудь конкретной сети, в своих сообщениях о корректировке он объявляет только об основных (оптимальных) маршрутах. Показатель BGP представляет собой произвольное число единиц, характеризующее степень предпочтения какого-нибудь конкретного маршрута. Эти показатели обычно устанавливаются администратором сети с помощью конфигурационных файлов. Степень предпочтения может базироваться на любом числе критериев, включая число AS (тракты с меньшим числом AS как правило лучше), тип канала (стабильность, быстродействие и надежность канала) и другие факторы.