С какой технологией связаны протоколы маршрутизации. Динамическая маршрутизация

16.04.2019

Я много писал о протоколе TCP/IP. Все из этих протоколов являются маршрутизируемыми, но как все это понимать. Прочитайте эту статью и все будет немного понятней.

Маршрутизируемый против маршрутизирующего

Меня всегда очень сильно привлекали сетевые протоколы (networking protocol). Я не знаю, почему они всегда меня так очаровывали, но они очень сильно интересовали меня. Большое количество моего времени было потрачено на изучение и работу с протоколами, которые входят в состав протокола TCP/IP. Общим во всех этих протоколах является то, что все они являются маршрутизируемыми протоколами. В результате этого возникает вопрос, а что маршрутизирует их? В самом деле очень хороший вопрос, и об этом было написано немало книг.

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

Преимущества и недостатки

Мы уже знаем, что пакеты, которые формируются на наших компьютерах, являются частью маршрутных протоколов. В свою очередь, чтобы пакеты дошли до своих получателей, эти протоколы должны быть маршрутизированы. Как пакет придет к получателю? Это достаточно сложно, т.к. он маршрутизируется несколькими маршрутизаторами, а это в свою очередь в основном происходит благодаря IP адресу, который находится в IP заголовке. Благодаря такому упрощенному объяснению мы попробуем рассмотреть две категории маршрутизирующих протоколов.

Сами по себе маршрутизирующие протоколы разбиваются на две категории. Это Interior Gateway Protocols (внутренние протоколы шлюза IGP) и Exterior Gateway Protocols (внешние протоколы шлюза EGP). Как можно догадаться из названия, первая группа используется внутри, а вторая снаружи. Например, серия IGP маршрутизирующих протоколов используется во внутренних сетях (internal networks), а серия EGP марштизирующих протоколов используется в самом интернет. Что же это в действительности означает? Это означает, что когда вы выполняете начальную конфигурацию всеми вами любимого маршрутизатора Cisco router, то вы должны выбрать какой тип маршрутизирующего протокола вы будете устанавливать и настраивать.

Теперь пришло время привести список различных типов маршрутизирующих протоколов для каждой группы. Interior Gateway Protocols (внутренние протоколы шлюза) подразделяются на:

  • IGRP: Interior Gateway Routing Protocol (внутренний маршрутизирующий протокол шлюза)
  • EIGRP: Enhanced Interior Gateway Routing Protocol (улучшенный IGRP)
  • OSPF: Open Shortest Path First (сначала открывать самый короткий путь)
  • RIP: Routing Information Protocol (протокол для маршрутизирующей информации)
  • IS-IS: Intermediate System – Intermediate System

Внешние протоколы шлюза (Exterior Gateway Protocol) подразделяются:

  • EGP: Exterior Gateway Protocol (внешний протокол шлюза)
  • BGP: Border Gateway Protocol (пограничный протокол шлюза)

Внутренние протоколы шлюза

Из приведенных выше примеров протоколов IGP (Interior Gateway Protocols) мы можем заключить, что существует несколько из них. Все ли из них используются в современных внутренних сетях? Я предполагаю, что они должны бы использоваться, но наиболее часто на сегодняшний день встречаются OSPF и RIP. Помня это, давайте рассмотрим RIP. RIP называют динамическим маршрутизирующим протоколом (dynamic routing protocol). Это значит, что он автоматически определяет маршрутные таблицы на свое усмотрение. Другими словами системному администратору не нужно вручную вводить все возможные маршруты. А это достаточно большая работа!

Итак, RIP автоматически вычисляет маршруты, а также вторичные маршруты, которые будут использоваться в случае аварии на основных. Если вы думаете, что это похоже на балансирования нагрузки “load balancing”, то вы в принципе будете правы. Еще одна вещь, которую нужно знать и помнить о RIP, что это протокол удаленного вектора “distance vector”. Т.к. эта статья является лишь обзором протоколов, то я лишь скажу удаленный вектор (distance vector) включает в себя метод определения маршрутов. Чтобы получить более подробную информацию по этой очень важной теме, пожалуйста, нажмите здесь. Также о протоколе RIP необходимо помнить, что он использует порт 520 и протокол UDP в качестве транспортного протокола (transport protocol).

OSPF – это другой часто используемый протокол IGP. Основное различие между RIP и OSPF заключается в том, что OSPF – это протокол состояния канала (link state protocol). Это просто означает, что он использует другой способ для построения маршрутных таблиц (routing tables). Маршрутизаторы OSPF сообщают величины, которые содержат информацию о том, какой маршрутизатор OSPF будет использоваться для построения маршрутных таблиц. Это одновременно и просто и сложно Основные вещи, которые необходимо помнить про OSPF – это то, что он поддерживает многоканальную передачу (multicasting) и подсети (subnets). И наконец, OSPF использует IP, а не TCP или UDP.

Внешние протоколы шлюза

Итак, мы поверхностно обсудили два основных протокола IGP, а как насчет протоколов EGP(Exterior Gateway Protocols)? Действительно, давайте взглянем на них тоже. Прокол BGP или Border Gateway Protocol – это маршрутный протокол, который используется на сегодняшний день маршрутизаторами, формирующими интернет. Под этим я понимаю маршрутизаторы, которые, например, используются вашим ISP. Также как и протокол RIP, BGP использует протокол или алгоритм удаленного вектора (distance vector). Один примечательный факт, касающийся BGP, заключается в том, что он использует TCP в качестве транспортного протокола и общается по порту 179. Другими словами, маршрутные таблицы передаются по протоколу TCP и по порту 179. Мы немного поговорили о BGP, а что можно сказать о EGP? В действительности о нем можно сказать немного, т.к. реально он нигде не используется. Он был заменен BGP.

Резюме

Итак, как вы могли увидеть, я не шутил, когда сказал, что лишь приведу обзор маршрутных протоколов. Только по одному протоколу BGP было написано несколько толстых книг. Поэтом было бы невозможно рассказать обо всех этих протоколах подробно в одной статье. Целью этой статьи было показать разнообразие маршрутных протоколов и различие между ними и маршрутизируемыми протоколами. Что вы должны сделать, чтобы больше узнать об этих маршрутных протоколах? Я всегда очень много надежд возлагал на практику. По моему мнению, это лишь единственный способ для закрепления полученных знаний.

С этой точки зрения, если у вас есть финансовые возможности, попытайтесь использовать несколько сетевых устройств Cisco. Они не очень дорого стоят, и вполне окупятся для вас полученными знаниями о трафике, который они маршрутизируют. После покупки нескольких сетевых устройств я бы посоветовал воспользоваться вам программой под названием Nemesis, которая позволит вам выделить RIP, OSPF и IGMP среди других. Способность выделения пакетов некоторых маршрутных протоколов позволит вам также увидеть, как они реагируют на определенные ситуации. Работа с пакетами позволяет гораздо лучше разобраться с протоколом. Благодаря этому вы сможете больше узнать о самом протоколе и о принципах его работы. И последнее, как было упомянуто выше, работа с сетевыми устройствами является ключевой, т.к. настройка протокола должна быть произведена с помощью этого аппаратного обеспечения. Но если вы ограничены бюджетом, то вы можете купить один из симуляторов, которых сейчас полно на рынке.

Итак, мы подошли к концу моего обзора маршрутных протоколов. Я надеюсь, что информации в этой статье было достаточно для того, чтобы разбудить у вас аппетит к дальнейшему изучению этой важной области компьютерных сетей. Как всегда, жду ваши отзывов, и на этом прощаюсь с вами!

Иcточник: netdocs.ru

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

В предыдущих выпусках рубрики «Первые уроки», посвященных принципам маршрутизации, предполагалось, что в таблицах маршрутизации для каждого адреса назначения указывается только следующий (ближайший) маршрутизатор, а не вся их цепочка от начального до конечного узла. В соответствии с этим подходом маршрутизация выполняется по распределенной схеме - каждый маршрутизатор отвечает за выбор только одного этапа пути, а окончательный маршрут складывается в результате работы всех маршрутизаторов, через которые проходит данный пакет. Такие алгоритмы маршрутизации называются одношаговыми.

Существует и прямо противоположный, многошаговый подход - маршрутизация от источника (Source Routing). В соответствии с ним узел-источник указывает в отправляемом в сеть пакете полный маршрут его следования через все промежуточные маршрутизаторы. Такой способ не требует построения и анализа таблиц маршрутизации. Это ускоряет прохождение пакета по сети и разгружает маршрутизаторы, но при этом большая нагрузка ложится на конечные узлы. Данная схема применяется гораздо реже, чем схема распределенной одношаговой маршрутизации.

Статические алгоритмы и простая маршрутизация

В зависимости от способа формирования таблиц маршрутизации одношаговые алгоритмы делятся на три класса:

  • алгоритмы фиксированной (или статической) маршрутизации;
  • алгоритмы простой маршрутизации;
  • алгоритмы адаптивной (или динамической) маршрутизации.

В первом случае все записи в таблице маршрутизации статические. Администратор сети сам решает, на какие маршрутизаторы надо передавать пакеты с теми или иными адресами, и заносит соответствующие записи в таблицу маршрутизации вручную (например, с помощью утилиты route ОС UNIX или Windows NT).

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

Таблицы делят на одномаршрутные, в которых для каждого адресата задан один путь, и многомаршрутные, когда предлагается несколько альтернативных путей. В случае многомаршрутных таблиц должно быть задано правило выбора одного из маршрутов. Чаще всего один путь является основным, а остальные - резервными.

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

В алгоритмах простой маршрутизации таблица маршрутизации либо вовсе не используется, либо строится без участия протоколов маршрутизации. Выделяют три типа простой маршрутизации:

  • случайная маршрутизация, когда прибывший пакет посылается в первом попавшемся направлении, кроме исходного;
  • лавинная маршрутизация, когда пакет широковещательно посылается по всем возможным направлениям, кроме исходного (аналогично тому, как мосты обрабатывают кадры с неизвестным адресом);
  • маршрутизация с учетом накопленного опыта, когда выбор маршрута осуществляется по таблице, но таблица строится так же, как и в случае моста путем анализа адресных полей поступающих пакетов.
АДАПТИВНАЯ МАРШРУТИЗАЦИЯ

Наибольшее распространение получили алгоритмы адаптивной (или динамической) маршрутизации. Они обеспечивают автоматическое обновление таблиц маршрутизации после изменения конфигурации сети. Используя протоколы адаптивных алгоритмов, маршрутизаторы могут собирать информацию о топологии связей в сети и оперативно реагировать на все изменения конфигурации связей. В таблицы маршрутизации обычно заносится информация об интервале времени, в течение которого данный маршрут будет оставаться действительным. Это время называют временем жизни маршрута (Time To Live, TTL).

Адаптивные алгоритмы имеют распределенный характер, т. е. в сети нет специально выделенных маршрутизаторов для сбора и обобщения топологической информации: эта работа распределена между всеми маршрутизаторами.

В последнее время наметилась тенденция использовать так называемые серверы маршрутов: они собирают маршрутную информацию, а затем по запросам раздают ее маршрутизаторам. В этом случае последние либо освобождаются от функции создания таблицы маршрутизации, либо создают только часть таблицы. Взаимодействие маршрутизаторов с серверами маршрутов осуществляется по специальным протоколам, например Next Hop Resolution Protocol (NHRP).

Адаптивные алгоритмы маршрутизации должны отвечать нескольким важным требованиям. Прежде всего, они обязаны обеспечивать выбор если не оптимального, то хотя бы рационального маршрута. Второе условие - их непременная простота, чтобы соответствующие реализации не потребляли значительных сетевых ресурсов: в частности, они не должны порождать слишком большой объем вычислений или интенсивный служебный трафик. И, наконец, алгоритмы маршрутизации должны обладать свойством сходимости, т. е. всегда приводить к однозначному результату за приемлемое время.

Современные адаптивные протоколы обмена информацией о маршрутах, в свою очередь, делятся на две группы, каждая из которых связана с одним из следующих типов алгоритмов:

  • дистанционно-векторные алгоритмы (Distance Vector Algorithm, DVA);
  • алгоритмы состояния каналов (Link State Algorithm, LSA).

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

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

Дистанционно-векторные алгоритмы хорошо работают только в небольших сетях. В крупных же они загружают линии связи интенсивным широковещательным трафиком. Изменения конфигурации отрабатываются по этому алгоритму не всегда корректно, так как маршрутизаторы не имеют точного представления о топологии связей в сети, а располагают только обобщенной информацией - вектором расстояний, - к тому же полученной через посредников. Работа маршрутизатора в соответствии с дистанционно-векторным протоколом напоминает работу моста, так как точной топологической картины сети такой маршрутизатор не имеет. Наиболее распространенным протоколом на базе дистанционно-векторного алгоритма является протокол RIP.

Алгоритмы состояния каналов позволяют каждому маршрутизатору получить достаточную информацию для построения точного графа связей сети. Все маршрутизаторы работают на основании одинаковых графов, в результате процесс маршрутизации оказывается более устойчивым к изменениям конфигурации. «Широковещательная» рассылка (т. е. передача пакета всем ближайшим соседям маршрутизатора) производится здесь только при изменениях состояния связей, что в надежных сетях происходит не так часто. Вершинами графа являются как маршрутизаторы, так и объединяемые ими сети. Распространяемая по сети информация состоит из описания связей различных типов: маршрутизатор-маршрутизатор, маршрутизатор-сеть.

Для того чтобы понять, в каком состоянии находятся линии связи, подключенные к его портам, маршрутизатор периодически обменивается короткими пакетами HELLO со своими ближайшими соседями. Этот служебный трафик также засоряет сеть, но не в такой степени, как, например, пакеты RIP, так как пакеты HELLO имеют намного меньший объем.

Примерами протоколов на базе алгоритма состояния связей могут служить IS-IS (Intermediate System to Intermediate System) стека OSI, OSPF (Open Shortest Path First) стека TCP/IP и протокол NLSP стека Novell.

СТРУКТУРА INTERNET

Большинство протоколов маршрутизации, применяемых в современных сетях с коммутацией пакетов, появилось благодаря Internet и его предшественницы - сети ARPANET. Для того чтобы понять их назначение и особенности, полезно познакомится со структурой сети Internet, которая наложила отпечаток на терминологию и типы протоколов.

Internet изначально строился как сеть, объединяющая большое количество независимых систем. С самого начала в его структуре выделяли магистральную сеть (core backbone network), а подключенные к магистрали сети рассматривались как автономные системы (autonomous system). Магистраль и каждая из автономных систем имели свои собственные административное управление и протоколы маршрутизации. Необходимо подчеркнуть, что деление на автономные системы не связано прямо с делением Internet на сети и домены имен. Автономная система объединяет сети, где маршрутизация осуществляется под общим административным руководством одной организации, а домен имен - единый для компьютеров (возможно, принадлежащих разным сетям), в которых назначение уникальных символьных имен происходит под таким же руководством. Естественно, область действия автономной системы и домена имен могут в частном случае совпадать, если одна организация выполняет обе указанные функции.

Маршрутизаторы, применяемые для формирования сетей и подсетей внутри автономной системы, называются внутренними шлюзами (interior gateway), а те, с помощью которых автономные системы подключаются к магистрали сети, - внешними шлюзами (exterior gateway). Магистраль сети также является автономной системой. Все автономные системы имеют уникальный 16-разрядный номер, который присваивается централизованно соответствующим административным органом Internet.

Используемые внутри автономных систем протоколы маршрутизации называются протоколами внутренних шлюзов (Interior Gateway Protocol, IGP), а протоколы обмена маршрутной информацией между внешними шлюзами и шлюзами магистральной сети - протоколами внешних шлюзов (Exterior Gateway Protocol, EGP). Внутри магистральной сети также может функционировать любой собственный внутренний протокол IGP.

Разделение всей сети Internet на автономные системы необходимо для многоуровневой модульной организации, без чего невозможно значительно расширить любую крупную систему. Изменение протоколов маршрутизации внутри какой-либо автономной системы не должно повлиять на работу остальных автономных систем. Кроме того, деление Internet на автономные системы способствует агрегированию информации на магистральных и внешних шлюзах. Внутренние шлюзы могут использовать для внутренней маршрутизации достаточно подробные графы взаимных связей, чтобы выбрать наиболее рациональный маршрут. Однако если информация такой степени детализации будет храниться во всех маршрутизаторах сети, то топологические базы данных настолько разрастутся, что потребуется память гигантских размеров, а время принятия решений о маршрутизации станет неприемлемо большим.

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

Техника бесклассовой маршрутизации CIDR может значительно сократить объемы маршрутной информации, передаваемой между автономными системами. Так, если все сети внутри некоторой автономной системы начинаются с общего префикса, скажем 194.27.0.0/16, то внешний шлюз автономной системы должен делать объявления только об этом адресе, не сообщая отдельно о существовании внутри данной автономной системы, например сети 194.27.32.0/19 или 194.27.40.0/21, так как эти адреса агрегируются в адресе 194.27.0.0/16.

Приведенная на Рисунке 1 структура Internet с единственной магистралью была таковой достаточно долго, поэтому специально для нее был разработан протокол обмена маршрутной информацией между AS, названный EGP. Однако по мере развития сетей провайдеров услуг структура Internet стала гораздо более сложной, с произвольным характером связей между автономными системами. Поэтому протокол EGP уступил место протоколу BGP, который позволяет распознать наличие петель между автономными системами и исключить их из межсистемных маршрутов. Протоколы EGP и BGP используются провайдерами услуг Internet только на внешних шлюзах автономных систем. На маршрутизаторах корпоративных сетей работают внутренние протоколы маршрутизации, такие, как RIP и OSPF.

RIP и OSPF

Протокол RIP (Routing Information Protocol) - внутренний протокол маршрутизации дистанционно-векторного типа. Это один из наиболее ранних протоколов обмена маршрутной информацией, до сих пор чрезвычайно распространенный ввиду простоты реализации. Кроме варианта RIP для сетей TCP/IP версия RIP имеется и для сетей IPX/SPX компании Novell. Протокол RIP для IP представлен двумя версиями: первой и второй. RIP v.1 не поддерживает маски, т. е. он распространяет между маршрутизаторами только информацию о номерах сетей и расстояниях до них, а информацию о масках этих сетей не рассылает, считая, что все адреса принадлежат к стандартным классам A, B или С. Протокол RIP v.2 передает информацию о масках сетей, поэтому он в большей степени соответствует требованиям сегодняшнего дня.

Протокол OSPF (Open Shortest Path First, открытый протокол «первоочередного выбора кратчайшего пути») принят в 1991 г. Будучи реализацией алгоритма состояния каналов, он разрабатывался в расчете на применение в крупных гетерогенных сетях. Вычислительная сложность протокола OSPF быстро растет с увеличением размерности сети, т. е. увеличением количества сетей, маршрутизаторов и связей между ними. Для решения этой проблемы в протоколе OSPF вводится понятие «область» сети (area) (не следует путать с автономной системой Internet). Маршрутизаторы, принадлежащие некоторой области, строят граф связей только для нее, что сокращает размерность сети. Между областями информация о связях не передается, а пограничные маршрутизаторы обмениваются определенной информацией об адресах сетей, находящихся в каждой из областей, и о расстоянии от пограничного маршрутизатора до каждой сети. При передаче пакетов между областями выбирается один из пограничных маршрутизаторов области, а именно тот, у которого расстояние до нужной сети меньше. При передаче адресов в другую область маршрутизаторы OSPF агрегируют несколько адресов общим префиксом в один.

Маршрутизаторы OSPF могут принимать адресную информацию от других протоколов маршрутизации, например от протокола RIP, что полезно для работы в гетерогенных сетях. Такая адресная информация обрабатывается так же, как и внешняя информация между разными областями.

Наталья Олифер - обозреватель LAN. С ней можно связаться по адресу:

Компьютер в сети TCP/IP может иметь адреса трех уровней (но не менее двух):

  • Локальный адрес компьютера. Для узлов, входящих в локальные сети – это МАС-адрес сетевого адаптера. Эти адреса назначаются производителями оборудования и являются уникальными адресами.
  • IP-адрес, состоящий из 4 байт, например, 109.26.17.100. Этот адрес используется на сетевом уровне. Он назначается администратором во время конфигурирования компьютеров и маршрутизаторов.
  • Символьный идентификатор-имя (DNS), например, www.сайт

Сетевые протоколы

Сетевой протокол - набор правил, позволяющий осуществлять обмен данными между составляющими сеть устройствами, например, между двумя сетевыми картами (рис. 1).

Рис. 1. Иллюстрация к понятию Сетевой протокол

Стэк- это набор разноуровневых протоколов, объединенных в группу.

Стек протоколов TCP/IP - это два протокола, являющиеся основой связи в сети Интернет. Протокол TCP разбивает передаваемую информацию на порции (пакеты) и нумерует их. С помощью протокола IP все пакеты передаются получателю. Далее с помощью протокола TCP проверяется, все ли пакеты получены. При получении всех порций TCP располагает их в нужном порядке и собирает в единое целое. В сети Интернет используются две версии этого протокола:

  • Маршрутизируемый сетевой протокол IPv4. В протоколе этой версии каждому узлу сети ставится в соответствие IP-адрес длиной 32 бита (т.е. 4 октета или 4 байта).
  • IPv6 позволяет адресовать значительно большее количество узлов, чем IPv4. Протокол Интернета версии 6 использует 128-разрядные адреса, и может определить значительно больше адресов.

IP-адреса версии v6 записываются в следующем виде:X:X:X:X:X:X:X:X, где X является шестнадцатеричным числом, состоящим из 4-х знаков(16 бит), а каждое число имеет размер 4 бит. Каждое число располагается в диапазоне от 0 до F. Вот пример IP-адреса шестой версии: 1080:0:0:0:7:800:300C:427A. В подобной записи незначащие нули можно опускать, поэтому фрагмент адреса: 0800: записывается, как 800:.

IP-адреса принято записывать разбивкой всего адреса по октетам (8), каждый октет записывается в виде десятичного числа, числа разделяются точками. Например, адрес

10100000010100010000010110000011
записывается как

10100000.01010001.00000101.10000011 = 160.81.5.131

Рис. 2 Перевод адреса из двоичной системы в десятичную

IP-адрес хоста состоит из номера IP-сети, который занимает старшую область адреса, и номера хоста в этой сети, который занимает младшую часть.
160.81.5.131 – IP-адрес
160.81.5. – номер сети
131 – номер хоста

Базовые протоколы (IP, TCP, UDP)


TCP/IP – собирательное название для набора (стека) сетевых протоколов разных уровней, используемых в Интернет. Особенности TCP/IP:

  • Открытые стандарты протоколов, разрабатываемые независимо от программного и аппаратного обеспечения;
  • Независимость от физической среды передачи;
  • Система уникальной адресации;
  • Стандартизованные протоколы высокого уровня для распространенных пользовательских сервисов.

Рис. 3 Стек протоколов TCP/IP

Стек протоколов TCP/IP делится на 4 уровня:

  • Прикладной
  • Транспортный
  • Межсетевой
  • Физический и канальный.

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

Рис. 4 Пример инкапсуляции пакетов в стеке TCP/IP

Физический и канальный уровень.
Стек TCP/IP не подразумевает использования каких-либо определенных протоколов уровня доступа к среде передачи и физических сред передачи данных. От уровня доступа к среде передачи требуется наличие интерфейса с модулем IP, обеспечивающего передачу IP-пакетов. Также требуется обеспечить преобразование IP-адреса узла сети, на который передается IP-пакет, в MAC-адрес. Часто в качестве уровня доступа к среде передачи могут выступать целые протокольные стеки, тогда говорят об IP поверх ATM, IP поверх IPX, IP поверх X.25 и т.п.

Межсетевой уровень и протокол IP.

Основу этого уровня составляет IP-протокол.

IP (Internet Protocol) – интернет протокол.

Первый стандарт IPv4 определен в RFC-760 (DoD standard Internet Protocol J. Postel Jan-01-1980)

Последняя версия IPv4 – RFC-791 (Internet Protocol J. Postel Sep-01-1981).

Первый стандарт IPv6 определен в RFC-1883 (Internet Protocol, Version 6 (IPv6) Specification S. Deering, R. Hinden December 1995)

Последняя версия IPv6 – RFC-2460 (Internet Protocol, Version 6 (IPv6) Specification S. Deering, R. Hinden December 1998).

Основные задачи:

  • Адресация
  • Маршрутизация
  • Фрагментация датаграмм
  • Передача данных

Протокол IP доставляет блоки данных от одного IP-адреса к другому.

Программа, реализующая функции того или иного протокола, часто называется модулем, например, “IP-модуль”, “модуль TCP”.

Когда модуль IP получает IP-пакет с нижнего уровня, он проверяет IP-адрес назначения.

  • Если IP-пакет адресован данному компьютеру, то данные из него передаются на обработку модулю вышестоящего уровня (какому конкретно – указано в заголовке IP-пакета).
  • Если же адрес назначения IP-пакета – чужой, то модуль IP может принять два решения: первое – уничтожить IP-пакет, второе – отправить его дальше к месту назначения, определив маршрут следования – так поступают маршрутизаторы.

Также может потребоваться, на границе сетей с различными характеристиками, разбить IP-пакет на фрагменты (фрагментация), а потом собрать в единое целое на компьютере-получателе.

Если модуль IP по какой-либо причине не может доставить IP-пакет, он уничтожается. При этом модуль IP может отправить компьютеру-источнику этого IP-пакета уведомление об ошибке; такие уведомления отправляются с помощью протокола ICMP, являющегося неотъемлемой частью модуля IP. Более никаких средств контроля корректности данных, подтверждения их доставки, обеспечения правильного порядка следования IP-пакетов, предварительного установления соединения между компьютерами протокол IP не имеет. Эта задача возложена на транспортный уровень.

Рис. 5 Структура дейтограммы IP. Слова по 32 бита.

Версия – версия протокола IP (например, 4 или 6)

Длина заг. – длина заголовка IP-пакета.

Тип сервиса (TOS – type of service) – Тип сервиса ().

TOS играет важную роль в маршрутизации пакетов. Интернет не гарантирует за-прашиваемый TOS, но многие маршрутизаторы учитывают эти запросы при выборе маршрута (протоколы OSPF и IGRP).

Идентификатор дейтаграммы, флаги (3 бита) и указатель фрагмента – используются для распознавания пакетов, образовавшихся путем фрагментации исходного пакета.

Время жизни (TTL – time to live) – каждый маршрутизатор уменьшает его на 1, что бы пакеты не блуждали вечно.

Протокол – Идентификатор протокола верхнего уровня указывает, какому протоколу верхнего уровня принадлежит пакет (например: TCP, UDP).

Маршрутизация

Протокол IP является маршрутизируемый, для его маршрутизации нужна маршрутная информация.

Маршрутная информация, может быть:

  • Статической (маршрутные таблицы прописываются вручную)
  • Динамической (маршрутную информацию распространяют специальные протоколы)

Протоколы динамической маршрутизации:

  • RIP (Routing Information Protocol) – протокол передачи маршрутной информации, маршрутизаторы динамически создают маршрутные таблицы.
  • OSPF (Open Shortest Path First) – протокол “Открой кротчайший путь первым”, является внутренним протоколом маршрутизации.
  • IGP (Interior Gateway Protocols) – внутренние протоколы маршрутизации, распространяет маршрутную информацию внутри одной автономной системе.
  • EGP (Exterior Gateway Protocols) – внешние протоколы маршрутизации, распространяет маршрутную информацию между автономными системами.
  • BGP (Border Gateway Protocol) – протокол граничных маршрутизаторов.
    Протокол ICMP
  • ICMP (Internet Control Message Protocol) – расширение протокола IP, позволяет передавать сообщения об ошибке или проверочные сообщения.
    Другие служебные IP-протоколы
  • IGMP (Internet Group Management Protocol) – позволяет организовать многоадресную рассылку средствами IP.
  • RSVP (Resource Reservation Protocol) – протокол резервирования ресурсов.
    ARP (Address Resolution Protocol) – протокол преобразования IP-адреса и адреса канального уровня.

Транспортный уровень

Протоколы транспортного уровня обеспечивают прозрачную доставку данных между двумя прикладными процессами. Процесс, получающий или отправляющий данные с помощью транспортного уровня, идентифицируется на этом уровне номером, который называется номером порта. Таким образом, роль адреса отправителя и получателя на транспортном уровне выполняет номер порта (или проще – порт).

Анализируя заголовок своего пакета, полученного от межсетевого уровня, транспортный модуль определяет по номеру порта получателя, какому из прикладных процессов направлены данные, и передает эти данные соответствующему прикладному процессу. Номера портов получателя и отправителя записываются в заголовок транспортным модулем, отправляющим данные; заголовок транспортного уровня содержит также и другую служебную информацию; формат заголовка зависит от используемого транспортного протокола.

На транспортном уровне работают два основных протокола: UDP и TCP.

Протокол надежной доставки сообщений TCP

TCP (Transfer Control Protocol) – протокол контроля передачи, протокол TCP применяется в тех случаях, когда требуется гарантированная доставка сообщений.

Первая и последняя версия TCP – RFC-793 (Transmission Control Protocol J. Postel Sep-01-1981).

Основные особенности:


Размер окна – количество байт, которые готов принять получатель без подтверждения.

Контрольная сумма – включает псевдо заголовок, заголовок и данные.

Указатель срочности – указывает последний байт срочных данных, на которые надо немедленно реагировать.

URG – флаг срочности, включает поле “Указатель срочности”, если =0 то поле игнорируется.

ACK – флаг подтверждение, включает поле “Номер подтверждения, если =0 то поле игнорируется.

PSH – флаг требует выполнения операции push, модуль TCP должен срочно передать пакет программе.

RST – флаг прерывания соединения, используется для отказа в соединении

SYN – флаг синхронизация порядковых номеров, используется при установлении соединения.

FIN – флаг окончание передачи со стороны отправителя

Протокол UDP

UDP (Universal Datagram Protocol) – универсальный протокол передачи данных, более облегченный транспортный протокол, чем TCP.

Первая и последняя версия UDP – RFC-768 (User Datagram Protocol J. Postel Aug-28-1980).

Основные отличия от TCP:

  • Отсутствует соединение между модулями UDP.
  • Не разбивает сообщение для передачи
  • При потере пакета запрос для повторной передачи не посылается

UDP используется если не требуется гарантированная доставка пакетов, например, для потокового видео и аудио, DNS (т.к. данные небольших размеров). Если проверка контрольной суммы выявила ошибку или если процесса, подключенного к требуемому порту, не существует, пакет игнорируется (уничтожается). Если пакеты поступают быстрее, чем модуль UDP успевает их обрабатывать, то поступающие пакеты также игнорируются.

Рис.7 Структура дейтограммы UDP. Слова по 32 бита.

Не все поля UDP-пакета обязательно должны быть заполнены. Если посылаемая дейтаграмма не предполагает ответа, то на месте адреса отправителя могут поме-щаться нули.

Протокол реального времени RTP

RTP (Real Time Protocol) – транспортный протокол для приложений реального времени.

RTCP (Real Time Control Protocol) – транспортный протокол обратной связи для приложения RTP.

Большинство протоколов маршрутизации, используемых сегодня, основано на одном из двух алгоритмов распределенной маршрутизации: анализ состояния канала и дистанционный вектор. В последующих разделах мы обсудим различные свойства, присущие алгоритмам дистанционного вектора и анализа состояния канала.

Дистанционно-векторные протоколы маршрутизации

Дистанционно-векторные протоколы маршрутизации иногда именуются протоколами Беллмана-Форда (Bellman-Ford) в честь изобретателей алгоритма вычислений кратчайших маршрутов2, которые впервые описали механизм распределенного применения этого алгоритма3. Термин дистанционный вектор (distance vector) возник ввиду того, что в протоколе имеется вектор (список) расстояний (счетчик переприемов или другие параметры), который связан с каждым префиксом получателя, содержащимся в сообщении о маршруте.

Дистанционно-векторные протоколы маршрутизации, такие как протокол маршрутной информации Routing Information Protocol (RIP), при расчете маршрута используют механизм распределенных вычислений для каждого префикса пункта назначения. Другими словами для работы дистанционно-векторных протоколов необходимо, чтобы каждый узел отдельно занимался вычислением наилучшего маршрута (исходящего соединения) для каждого префикса пункта назначения.

Выбрав наилучший маршрут, маршрутизатор посылает дистанционные векторы своим соседям, уведомляя их таким образом о доступности каждого из пунктов назначения и о метриках маршрутов, которые выбраны для доставки данных в соответствующий пункт назначения. Параллельно соседние с маршрутизатором узлы также вычисляют наилучший маршрут к каждому пункту назначения и уведомляют своих соседей о доступных маршрутах (и связанных с ними метриках), с помощью которых можно достичь заданного пункта назначения. На основании квитанций (отчетных сообщений) от соседей, где детально описывается маршрут к пункту назначения и его метрики, маршрутизатор может "решить", что существует лучший маршрут через другого соседа. Затем он повторно рассылает уведомления об имеющихся маршрутах и их метриках своим соседям. Эти процедуры повторяются до тех пор, пока все маршрутизаторы не определят наилучшие маршруты для каждого пункта назначения.

Начальные спецификации дистанционно-векторных протоколов, таких как RIP версии 1 (RIP-1), имели серьезные недостатки. Например, подсчет количества переприемов был единственной метрикой в RIP-1, которая использовалась при выборе маршрута. Кроме того, этот протокол имел несколько ограничений. Рассмотрим, например, маршрутные таблицы маршрутизатора RTA (рис. 4.1). В одной из них представлена информация о маршрутах, собранная протоколом RIP, а в другой - протоколом OSPF (этот протокол маршрутизации на основе анализа состояния канала будет обсуждаться в последующих разделах).

При использовании RIP-1 маршрутизатор RTA выберет прямое соединение между RTA и RTB, чтобы достичь сети 192.10.5.0. Маршрутизатор RTA выбирает это соединение потому, что при непосредственном соединении для того, чтобы достичь заданной сети, используется лишь один переприем через узел RTB, против двух переприемов при выборе маршрута через узлы RTC и RTB. Однако маршрутизатор RTA "знает" о том, что канал RTA- RTB имеет меньшую производительность и большое время задержки, а канал RTC-RTB обеспечит более высокое качество обслуживания.

С другой стороны, при использовании протокола OSPF и метрик при выборе

маршрута, помимо подсчета количества переприемов, маршрутизатор RTA обнаружит, что путь к маршрутизатору RTB через RTC (вес: 60 + 60 = 120; 2 переприема) является более оптимальным, чем прямой путь (вес: 2000; 1 переприем).

Еще при подсчете переприемов следует учитывать ограничения, налагаемые на

количество переприемов, т. е. их не может быть бесконечное множество. В дистанционно- векторных протоколах (например, в RIP-1) количество переприемов ограничено, как правило, числом 15. При превышении этого предела узел считается недоступным по заданному маршруту. Таким образом, распространение информации о маршрутах в больших сетях также вызывало определенные проблемы (в тех из них, где насчитывалось более 15 узлов на маршрут). Зависимость от количества переприемов - одна из определяющих

характеристик дистанционно-векторных протоколов, хотя более новые протоколы этой категории (RIP-2 и EIGRP) не столь строги.

Еще один недостаток - способ обмена маршрутной информацией. Для традиционных дистанционно-векторных протоколов в настоящее время применяется следующая концепция: маршрутизаторы ведут обмен всеми IP-адресами, которые могут быть достигнуты при периодическом обмене данными посредством широковещательных анонсов дистанционных векторов. Эти широковещательные сообщения рассылаются согласно "таймеру обновлений" (refresh timer), установленному для каждого сообщения. Таким образом, если истекает срок работы "таймера обновлений" и при этом поступает новая маршрутная информация, требующая пересылки соседям, этот таймер сбрасывается, и маршрутная информация не пересылается до тех пор, пока срок работы таймера снова не истечет. Теперь рассмотрим, что бы произошло, если бы соединение или определенный маршрут вдруг стали недоступны по каким-либо причинам сразу после обновления маршрутов. Распространение маршрутной информации со сведениями о нерабочем маршруте было бы задержано на время до окончания срока работы "таймера обновления", следовательно, возникло бы значительное замедление при обновлении маршрутной информации.

К счастью, в новые модификации дистанционно-векторных протоколов, таких как EIGRP и RIP-2, введена концепция триггерных обновлений (triggerred updates). Триг-герные обновления распространяют сообщения об отказах по мере их появления, что значительно ускоряет обмен маршрутной информацией.

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

Конвергенция (convergence) - это интервал времени, за который обновляются все

маршруты в сети, т.е. устанавливается факт существования, отсутствия или изменения того или иного маршрута. Старые дистанционно-векторные протоколы работали по принципу периодического обновления маршрутов с использованием таймеров удержания: если в течение определенного времени информация о маршруте не поступала, то этот маршрут "замораживался" (удерживался) и исключался из таблицы маршрутов. Процесс удержания и исключения из таблицы маршрутов в больших сетях мог длиться несколько минут, пока не проходила полная конвергенция, т. е. пока всем узлам сети сообщалась информация об исчезновении маршрута. Задержка между моментом, когда маршрут становился недоступным, и его исключением из таблицы маршрутов могла привести к образованию временных петель или даже "черных дыр".

В некоторых дистанционно-векторных протоколах (например, в RIP) при пропадании активного маршрута и его появлении, но уже с более высокой метрикой (предположительно сгенерированной другим маршрутизатором, который сообщил о возможном альтернативном маршруте) маршрут по-прежнему остается в "замороженном" состоянии. Таким образом, время конвергенции для всей сети остается достаточно большим.

Еще один серьезный недостаток дистанционно-векторных протоколов первого

поколения - их классовая природа и отсутствие полноценной поддержки VLSM и CIDR. При обновлении маршрутной информации эти дистанционно-векторные протоколы не передают сведения о сетевых масках и, следовательно, не могут поддерживать эти технологии. В протоколе RIP-1 маршрутизатор, принимающий обновление маршрутов через определенный интерфейс, будет подставлять в эту посылку свою локальную маску подсети. Протокол IGRP делает то же самое, что и RIP-1, но он, кроме того, привязывается к сетевым маскам сетей класса А, В и С, если часть переданного сетевого адреса не соответствует локальному сетевому адресу. Все это приводит к определенным затруднениям (в том случае,

если интерфейс принадлежит сети, которая разбита на подсети с помощью масок переменной длины) и неправильной интерпретации принимаемых обновлений маршрутов. В новейших дистанционно-векторных протоколах, таких как RIP-2 и EIGRP, указанные недостатки устранены.

С целью исправления недостатков старых дистанционно-векторных протоколов маршрутизации было разработано несколько их модификаций. Так, например, протоколы RIP-2 и EIGRP уже поддерживают работу с VLSM и CIDR. К тому же протоколы IGRP и EIGRP способны воспринимать сложные метрики, которые используются для представления характеристик, соединений составляющих маршрут (таких как полоса пропускания, текущая нагрузка, задержки, размер передаваемого блока (MTU) и т.д.), с помощью которых можно вычислить более оптимальный маршрут, чем при простом подсчете числа переприемов.

Простота и завершенность дистанционно-векторных протоколов стала причиной их

широкой популярности. Основной недостаток протоколов этого класса - медленная конвергенция, что может стать катализатором образования петель и "черных дыр" при изменении топологии сети. Однако в последних модификациях дистанционно-векторных протоколов, в частности в EIGRP, достигается довольно хорошая конвергенция.

Этот раздел мы не могли бы завершить, не упомянув, что протокол BGP также относится к семейству дистанционно-векторных протоколов. Кроме обычных параметров, свойственных этим протоколам, в BGP используется дополнительный механизм, именуемый вектором маршрута (path vector), благодаря которому устраняется проблема ограничения числа переприемов. По сути, вектор маршрута содержит список доменов маршрутизации (номера автономных систем), по которому пролегает тот или иной маршрут. Если домен получает информацию о маршруте, который уже имеет идентификатор домена, то такой маршрут игнорируется. Эта маршрутная информация позволяет избежать образования петель маршрутизации. Кроме того, ее можно использовать как основу для создания правил маршрутизации в домене. Этот атрибут маршрута более подробно обсуждается в последующих главах.

Протоколы маршрутизации

Крупные объединенные компьютерные сети состоят из множества физических сетей, которые связываются между собой с помощью маршрутизаторов. Автономной системой AS (Autonomous Systems) называют группу сетей и маршрутизаторов R, объединенных общей политикой маршрутизации.

Рисунок 4.8

Если AS может передавать транзитный трафик других сетей, она называется транзитной.

Для определения маршрута внутри AS применяют внутренние протоколы маршрутизации IGP (Interior GatewayProtocols). Наиболее распространенными протоколами внутренней маршрутизации являются протоколы RIP (Routing Information Protocol), OSPF (Open Shortest Path First), IGRP (Interior Gateway Routing Protocol), разработанный компанией CISCO, как альтернативный RIP, а затем и его улучшенный вариант EIGRP (Enhanced Interior Gateway Routing Protocol).

Автономные системы объединяются между собой при помощи внешних или пограничных (Border) маршрутизаторов, используя протоколы внешней маршрутизации BGP (Border Gateway Protocol). Два соседних маршрутизатора, которые обмениваются информацией внутри AS, называются внутренним и внешним, если они обмениваются информацией, принадлежащей разным системам (рис. 4.8). Связь между разными автономными системами осуществляется с помощью высокоскоростной магистральной или опорной сети (Backbone).

В соответствии с терминологией международного института стандартов ISO используется понятие конечных ES и промежуточных систем IS. Промежуточная система IS (Intermedia Systems) – передающий узел между 2 подсетями. Устройство сети, которые не обладают способностью пересылать пакеты, называется оконечным. В это же время сетевое устройство, обладающее такой возможностью – промежуточной системой IS. Промежуточные системы, которые могут сообщаться внутри домена маршрутизации (эквивалент AS), называются внутридоменные AS и системы, которые общаются с другими доменами, называются междоменными.

Процесс взаимодействия и уровни взаимодействий в соответствии с OSI показан на рис. 4.9.

Рисунок 4.9

Протокол внутренней маршрутизации RIP (Routing Information Protocol) предназначался для небольших сетей. Для нахождения оптимального пути используется алгоритм вектора расстояния DVA (Distance Vector Algorithm) – алгоритм Беллмана-Форда. Маршрут в данном алгоритме характеризуется вектором расстояния до пункта назначения (пункт назначения – направление вектора, метрика – модуль вектора). Маршрутизаторы, которые используют протокол RIP в режиме широковещания, передают список сетей, с которыми они могут связаться, и метрику, содержащую информацию о том, за сколько пересылок, шагов (hops) каждая из этих сетей может быть достигнута.

Пересылкой считается каждый транзитный узел. Каждый маршрутизатор принимает широковещательные сообщения от других маршрутизаторов и добавляет или корректирует полученную информацию в своей таблице маршрутизации.

Таблица маршрутизации содержит по одной записи на каждый маршрут.

Такая запись имеет следующие поля: поле IP адреса пункта назначения, IP-адрес ближайшего (соседнего) маршрутизатора, метрику маршрута – до 15 шагов, таймеры (счетчики времени). Каждый маршрутизатор передает такую широковещательную информацию каждые 30 сек, генерируя достаточно большой трафик. RIP работает на сетевом уровне стека TCP/IP, используя протокол UDP (порт 520).

Каждый маршрут содержит счетчики тайм-аута и «сборщики» маршрутов. Счетчик тайм-аута сбрасывается в нуль при коррекции или инициализации маршрута. Если к моменту последней коррекции прошло 3 мин, маршрут закрывается, однако запись о нем в таблице сохраняется до наступления времени «сборка маршрута».

Формат сообщения протокола RIP имеет вид (рис. 4.10). Поле «Команда» определяет вид сообщения:

Код 1 – запрос на получение информации, код 2 – отклик, содержащий информацию о расстояниях из маршрутной таблицы отправителя, код 3 - включение режима трассировки, код 4 – выключение режима трассировки. Поле «Версия» для протокола RIP-1 равно 1. Номер протоколов, которые используются в соответствующей сети (для Интернет поле имеет значение, равное 2). Поле стоимость – число шагов. В одном сообщении может иметься информация до 25 маршрутов.

Рисунок 4.10

1. Таймер обновления – 70 сек (посылается всем соседям);

2. Таймер устаревшего маршрута – 90 сек;

3. Таймер удаления маршрута - 240 сек.

В протоколе RIP реализовано правило расщепления горизонта при модификации (Split Horizon Updates), которое препятствует появлению маршрутных петель в две пересылки, однако петли, включающие три и больше пересылок могут возникать.

Протокол RIP прос в инсталляции, эксплуатации, в связи с чем получил широкое распространение. Вместе с тем ему присущи следующие недостатки: RIP не способен определять путь, основываясь на таких параметрах как ширина полосы пропускания, загрузка канала, время ожидания. Протокол RIP имеет медленную сходимость, не способен поддерживать маски подсетей. В современных сетях число шагов равное 15, становится недостаточным.

Протокол маршрутизации внутренних шлюзов IGRP(Interior Gateway Routing Protocol) работает на основе использования алгоритма вектора расстояния DVA. Протоколы маршрутизации с вектором расстоянии требуют от каждого маршрутизатора отправления через определенные интервалы времени соседним маршрутизаторам всей или части своей таблицы маршрутизации, используя сообщения о корректировки маршрута. После того, как маршрутная информация распределиться по сети, маршрутизатор может вычислить расстояние до всех узлов объединенной сети.

Максимальное число транзисторных участков в этом протоколе может быть равным 255, а не 15 как в протоколе RIP. При формировании таблиц маршрутизации задаются следующие параметры:

1. Расстояние – число в диапазоне от 1 до 255.

2. Задержка. Измеряется кратно 10 мс. Для сетей E задается показателем 100.

3. Полоса от 1200 бит/с до 10 Гбит/с.

4. Надежность. Оптимальное значение составляет 255.

5. Загруженность канала в долях числа 255.

Для регулирования производительности применяются следующие таймеры:

1. Таймер обновления (по умолчанию 90с) – задает период передачи сообщения.

2. Таймер устаревшего маршрута. Столько времени ожидает маршрутизатор обновления, прежде чем объявить маршрут устаревшим (задается три периода обновления).

3. Таймер блокировки (по умолчанию 10 с).



4. Таймер удаления маршрута (семь периодов обновления).

Протокол предусматривает три типа маршрутов:

системные – ведущие в сети в рамках AS,

внешние – маршруты в сети вне AS.

Внешние, связанные с наличием граничного пути

Структура таблицы маршрутизации имеет вид, показанный на рис. 4.11

Рисунок 4.11

Первое поле в заголовке таблицы маршрутизации – номер версии,

затем следует поле операционного кода (OP Code). Это поле обозначает вид пакета. Код, равный 1, определяет пакет корректировки, код 2 – пакет запроса. Пакеты запроса использует маршрутизатор для получения информации о маршрутных таблицах других маршрутизаторов. Эти пакеты состоят только из заголовка, операционного кода и номера AS. Пакеты корректировки содержат заголовок, за которым следует записи данных маршрутных таблиц. Этот пакет не должен превышать 1500 байт. Далее следует поле редактирование, которое содержит последовательный номер, указывающий, когда маршрутная таблица изменялась. Далее следует номер автономной системы AS. Следующие поля определяют номер внешних сетей, главных сетей и подсетей. Последнее поле в заголовке – поле контрольной суммы. Сообщения о корректировке содержит семь полей данных для каждой записи данных маршрутной таблицы. Первое поле – 3 байта адреса IP, следующее – задержка, выраженная в десятках микросекунд, далее – поле ширины полосы в единицах 1 Кбит/с, затем идет поле размера блока данных MTU, поле надежности в процентах. Следующим является поле – загрузка, указывающее в процентах занятость канала. Последнее поле – число пересылок (счетчик шагов).

Протокол внешнего шлюза EGP (Exterion Gateway Protocol) – используется алгоритм вектора расстояния DVA для соединения AS через центральную сеть (ядро). Маршрутизатор выполняет следующие функции: выделяет соседей, с которыми обменивается информацией о достижении тех или иных сетей, посылает сообщения о их работоспособности, передает сообщения об обновлении, указывает информацию о доступности сетей для данной AS.

Типы сообщений:

1. Проверочные, если нужно установить работают ли соседние маршрутизаторы.

2. Сообщения о достижимости соседа (не выключен ли соседний маршрутизатор).

3. Сообщения о неисправности.

Протокол граничного шлюза BGP (Border Gateway Protocol) предназначен для обеспечения взаимодействий разных AS. Этот протокол можно использовать для организации связей не только между AS, но и внутри их. В BGP – нет ядра. Когда маршрутизатор подключается к сети, он получает от соседей полную таблицу маршрутизации, хранит информацию обо всех маршрутах, ведущих до пункта назначения.

Открытый протокол с алгоритмом поиска кратчайшего пути OSPF {Open Shortest Path First) – это протокол внутренних маршрутизаторов. Он гораздо сложнее RIP-протокола, однако OSPF может функционировать в сетях любой сложности и не имеет ограничений, характерных для RIP. Время, используемое на по­строение таблиц маршрутизации и загрузки сети служебной информацией, в среднем меньше по сравнению с тем, что потребовал бы протокол RIP для такой же системы. Кроме этого, переходные процессы в OSPF завершаются быстрее, чем в RIP. OSPF представляет собой протокол учета состояния канала LSA (Link State Algorithm), в котором маршрутизация выполняется по алгоритму Дийкстры. В качестве метрики используется коэффициент качества обслуживания QoS (Quality of Service). Каждый маршрутизатор обладает полной информацией о состоянии всех ин­терфейсов всех маршрутизаторов (узлов коммутации) автономной системы. Протокол OSPF реализован программным модулем - демоном маршрути­зации gated, который поддерживает также RIP и внешний протокол маршрутизации BGP. Качество обслуживания (QoS) характеризуется следующими параметрами: пропускной способностью канала, задержкой (временем распространения пакета), загрузкой канала, требованиями безопасности, типом трафика, числом шагов до места назначения, надежностью передачи пакетов.

Доминирующими являются три характеристики: задержка, пропуск­ная способность и надежность. На практике чаще всего метрика связи в OSPF определяется как количество секунд, требуемых для передачи 100 Мбит по каналу, через который проложен маршрут. Например, метрика сети на основе 10BASE-T Ethernet равна 10, метрика канала модемной связи со скоростью 56 кбит/с составляет 1785, а канала со скоростью 100 Мбит и вы­ше равна 1.

Для транспортных целей OSPF применяет протокол IP непосредст­венно, т.е. не привлекая протоколы UDP или TCP. OSPF имеет свой код в протокольном поле IP-заголовка. Код типа обслуживания ToS {type of service) в IP-пакетах, содержащих OSPF-сообщения, равен нулю, значение типа обслуживания ToS здесь задается в самих пакетах OSPF.

Маршрутизация в протоколе OSPF определяется IP-адресом и типом сервиса. В связи с тем, что протокол не требует инкапсуляции пакетов, су­щественно облегчается управление сетями с большим количеством мостов и сложной топологией (исключается циркуляция пакетов, сокращается тран­зитный трафик). Автономная система может быть разделена на отдельные области, каждая из которых становится объектом маршрутизации, а внут­ренняя структура снаружи не видна. Этот прием позволяет значительно со­кратить необходимый объем маршрутной базы данных. В OSPF использует­ся термин магистральная сеть {backbone), обозначающий среду для коммуникаций между выделенными областями. Протокол OSPF работает лишь в пределах автономной системы.

В стеке протоколов TCP/IP протокол OSPF находится непосредственно над протоколом IP, его код равен 89. Поэтому если значение поля "Прото­кол" IP-дейтаграммы равно 89, то данные дейтаграммы являются сообщени­ем OSPF и передаются OSPF-модулю для обработки. Соответственно размер OSPF сообщения ограничен максимальным размером дейтаграммы.

При передаче OSPF-пакетов фрагментация не желательна, но не за­прещается. Для передачи статусной информации OSPF использует широко­вещательные сообщения Hello. Повышение безопасности обеспечивается ав­торизацией процедур. Протокол OSPF требует резервирования двух группо­вых адресов: адрес 224.0.0.5 - предназначен для обращения ко всем маршрутиза­торам, поддерживающим этот протокол; адрес 224.0.0.6 - служит для обращения к специально выделенному маршрутизатору. Любое сообщение OSPF начина­ется с 24-октетного заголовка (рисунок 4.12).

Рисунок 4.12

Поле "Версия" определяет версию протокола. Поле "Тип" иден­тифицирует функцию сообщения, в частности: код 1- Hello (используется для проверки доступности маршрутизатора); код 2 - Описание базы данных (тополо­гия); код 3 - Запрос состояния канала; код 4 - Изменение состояния канала; код 5- Под­тверждение получения сообщения о статусе канала.

Поле "Длина сообщения" указывает длину блока в октетах, включая заго­ловок. "Идентификатор области" - 32-битный код, задающий область, ко­торой данный пакет принадлежит. Все OSPF-пакеты ассоциируются с той или иной областью. Большинство из них не преодолевает более одного шага. Пакеты, перемещающиеся по виртуальным каналам, помечаются идентифи­катором опорной (магистральной) области {backbone).

Поле "Контрольная сумма" содержит проверочную сумму IP-пакета, включая поле типа идентификации. Поле "Тип идентификации" может принимать значения 0 при отсутствии контроля доступа, и 1 при его нали­чии. В дальнейшем функции поля предполагается расширить.

Для взаимообмена данными между соседними маршрутизаторами протокол OSPF использует сообщения типа Hello. Важную функцию в этих сообщениях выполняет однобайтное поле "Опции", служащее для объявле­ния состояния канала и описания базы данных.

Структура пакетов этого типа показана на рисунке 4.13.

Рисунок 4.13

Особую роль в поле "Опции" играют младшие биты Е и Т: Бит Е ха­рактеризует возможность внешней маршрутизации и имеет значение только в сообщениях типа Hello, в остальных сообщениях этот бит должен быть об­нулен. Если Е=0, то данный маршрутизатор не будет посылать или прини­мать маршрутную информацию от внешних автономных систем. Бит Т оп­ределяет сервисные возможности маршрутизатора. Если Т=0, это означает, что маршрутизатор поддерживает только один вид услуг (тип сервиса ToS=0) и он не пригоден для маршрутизации с учетом вида услуг. Такие маршрутизаторы, как правило, не используются для транзитного трафика.

Поле "Сетевая маска" сообщения Hello соответствует маске подсети данного интерфейса. Поле "Время между Hello" содержит значение времени в секундах, между сообщениями Hello. Поле "Опции" характеризует возможности, ко­торые предоставляет данный маршрутизатор. Поле "Приоритет" задает уро­вень приоритета маршрутизатора, используемый при выборе резервного {backup) маршрутизатора. Если приоритет равен нулю, данный маршрутиза­тор никогда не будет реализован в качестве резервного. Поле "Время от­ключения маршрутизатора" определяет временной интервал в секундах, по истечении которого "молчащий" маршрутизатор считается вышедшим из строя. IP-адреса маршрутизаторов, записанные в последующих полях, ука­зывают место, куда следует послать данное сообщение, Поля "IP-адрес со­седа к" образуют список адресов соседних маршрутизаторов, откуда за по­следнее время были получены сообщения Hello.

Маршрутизаторы обмениваются сообщениями из баз данных OSPF, чтобы инициализировать, а в дальнейшем актуализовать свои базы данных, характеризующие топологию сети. Обмен происходит в режиме клиент-сервер. Клиент подтверждает получение каждого сообщения. Формат пере­сылки записей из базы данных изображен на рисунке 4.14.

Рисунок 4.14

Если размер базы данных велик, ее содержимое может пересылаться по частям. Для реализации этого используются биты I и М. Бит I устанавлива­ется в 1 в стартовом сообщении, а бит М принимает единичное состояние для сообщений, которые являются продолжением. Бит S определяет, кем по­слано сообщение (S=l для сервера, S=0 для клиента, этот бит иногда имеет имя MS).

Поле "Порядковый номер сообщения" служит для контроля пропу­щенных в процессе обмена информацией блоков. Первое сообщение содер­жит в этом поле случайное целое число М, последующие: М+1, M+2,...M+L. Поле "Тип канала" содержит коды, определяющие состояние каналов, а именно, его интерфейсов, описание внешних связей автономных систем.

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

Маршрутизаторы посылают широковещательные (или групповые) со­общения об изменении состояния своих непосредственных связей. Сообще­ния об изменениях маршрутов могут быть вызваны следующими причинами: возраст маршрута достиг предельного значения, изменилось состояние интерфейса, произошли изменения в маршрутизаторе сети, произошло изменение состояния одного из соседних маршрутиза­торов, изменилось состояние одного из внутренних маршрутов (появле­ние нового, исчезновение старого и т.д.), изменение состояния межзонного маршрута, появление нового маршрутизатора, подключенного к сети, вариация виртуального маршрута одним из маршрутизаторов, возникли изменения одного из внешних маршрутов, маршрутизатор перестал быть пограничным для данной автоном­ной системы (например, перезагрузился).

Маршрутизатор, получивший OSPF-пакет, посылает подтверждение его приема. Возможно подтверждение одним пакетом получения нескольких объявлений о состоянии линий. Адресом места назначения этого пакета мо­жет быть индивидуальный маршрутизатор, их группа или все маршрутиза­торы автономной системы.

Сообщения посылаются для каждой транзитной сети в автономной системе. Транзитной считается сеть, которая имеет более одного маршрутизато­ра и административная политика автономной системы позволяет передавать через свои сети транзитный трафик других AS. Сообщение о сетевых связях должно содержать информацию обо всех маршрутизаторах, подключенных к сети, включая тот, который рассылает эту информацию. Расстояние от сети до любого подключенного маршрутизатора равно нулю для всех видов сер­виса (TOS), поэтому поля TOS и метрики в этих сообщениях отсутствуют.

Маршрутная таблица OSPF включает следующие поля:

  • IP-адрес места назначения и маску;
  • тип места назначения (сеть, граничный маршрутизатор и т.д.);
  • тип функции (возможен набор маршрутизаторов для каждой из функ­ций ToS);
  • область (описывает область, связь с которой ведет к цели; возможно несколько записей данного типа, если области действия граничных маршру­тизаторов перекрываются);
  • тип пути (характеризует путь как внутренний, межобластной или внешний, ведущий к автономной системе AS);
  • цена маршрута до цели;
  • очередной маршрутизатор, куда следует послать дейтаграмму;
  • объявляющий маршрутизатор (используется для межобластных обме­нов и для связей автономных систем друг с другом).

К преимуществам протокола маршрутизации OSPF следует отнести:

  • возможность применения для любого получателя нескольких мар­шрутных таблиц, по одной на каждый вид IP-операции;
  • каждому интерфейсу присваивается безразмерная цена, учитывающая пропускную способность, время транспортировки сообщения; собственная цена (коэффициент качества) может быть присвоена любой IP-операции;
  • при существовании эквивалентных маршрутов OSFP распределяет по­ток равномерно по этим маршрутам;
  • поддерживается адресация подсетей (разные маски для разных маршрутов);
  • при связи точка-точка не требуется IP-адрес для каждого из конечных интерфейсов;
  • применение групповой рассылки вместо широковещательных сообще­ний снижает загрузку значительной части сегментов.

Недостаток протокола OSPF состоит в том, что трудно получить ин­формацию о предпочтительности каналов для узлов, поддерживающих дру­гие протоколы, или протоколы со статической маршрутизацией. Кроме того, OSPF является только внутренним протоколом.