Основы построения объединенных сетей по технологиям CISCO

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

Разбить на страницы
Показывать лекцию целиком

RIP

Библиографическая справка

Протокол Информации Маршрутизации (RIP) является протоколом маршрутизации, который был первоначально разработан для Универсального протокола PARC Xerox (где он назывался GWINFO) и использовался в комплекте протоколов ХNS. RIP начали связывать как с UNIX, так и с TCP/IP в 1982 г., когда версию UNIX, называемую Berkeley Standard Distribution (BSD), начали отгружать с одной из реализацией RIP, которую называли "трассируемой" (routed) (слово произносится "route dee"). Протокол RIP, который все еще является очень популярным протоколом маршрутизации в сообществе Internet, формально определен в публикации "Протоколы транспортировки Internet" XNS (XNS Internet Transport Protocols ) (1981 г.) и в Запросах для комментария ( Request for Comments - RFC) 1058 (1988 г.).

RIP был повсеместно принят производителями персональных компьютеров (РС) для использования в их изделиях передачи данных по сети. Например, протокол маршрутизации AppleTalk (Протокол поддержания таблицы маршрутизации - RTMP) является модернизированной версией RIP. RIP также явился базисом для протоколов Novell, 3Com, Ungermann-Bass и Banyan. RIP компаний Novell и 3Com в основном представляет собой стандартный RIP компании Xerox. Ungermann-Bass и Banyan внесли незначительные изменения в RIP для удовлетворения своих нужд.

Формат таблицы маршрутизации

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

(рис 5.1) Typical RIP Routing Table

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

Формат пакета (Реализация IP)

На Рис. 5.2 изображен формат пакета RIP для реализаций IP так, как он определен в RFC 1058.

ПРИМЕЧАНИЕ: На Рис. 5.2 представлен формат RIP, используемый для сетей IP в Internet. В некоторые другие варианты RIP внесены незначительные изменения формата и (или) имен файлов, которые здесь перечислены, но функциональные возможности базового алгоритма маршрутизации те же самые.

(рис 5.2) RIP Packet Format

Первое поле в пакете RIP-это поле команд ( command ). Это поле содержит целое число, обозначающее либо запрос, либо ответ. Команда "запрос" запрашивает отвечающую систему об отправке всей таблицы маршрутизации или ее части. Пункты назначения, для которых запрашивается ответ, перечисляются далее в данном пакете. Ответная команда представляет собой ответ на запрос или чаще всего какую-нибудь незатребованную регулярную корректировку маршрутизации. Отвечающая система включает всю таблицу маршрутизации или ее часть в ответный пакет. Регулярные сообщения о корректировке маршрутизации включают в себя всю таблицу маршрутизации.

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

За 16-битовым полем, состоящим из одних нулей, идет поле идентификатора семейства адресов ( аddress family identifier ). Это поле определяет конкретное используемое семейство адресов. В сети Internet (крупной международной сети, объединяющей научно-исследовательские институты, правительственные учреждения, университеты и частные предприятия) этим адресным семейством обычно является IP ( значение=2 ), но могут быть также представлены другие типы сетей.

Следом за еще одним 16-битовым полем, состоящим из одних нулей, идет 32-битовое поле адреса ( address ). В реализациях RIP Internet это поле обычно содержит какой-нибудь адрес IP.

За еще двумя 32-битовыми полями из нулей идет поле показателя RIP ( metric ). Этот показатель представляет собой число пересылок ( hop count ). Он указывает, сколько должно быть пересечено транзитных участков (роутеров) объединенной сети, прежде чем можно добраться до пункта назначения.

В каждом отдельном пакете RIP IP допускается появление дo 25 вхождений идентификатора семейства адреса, обеспечиваемых полями показателя. Другими словами, в каждом отдельном пакете RIP может быть перечислено до 25 пунктов назначения. Для передачи информации из более крупных маршрутных таблиц используется множество пакетов RIP.

Как и другие протоколы маршрутизации, RIP использует определенные таймеры для регулирования своей работы. Таймер корректировки маршрутизации RIP ( routing update timer ) обычно устанавливается на 30 сек., что гарантирует отправку каждым роутером полной копии своей маршрутной таблицы всем своим соседям каждые 30 секунд. Таймер недействующих маршрутов ( route invalid timer ) определяет, сколько должно пройти времени без получения сообщений о каком-нибудь конкретном маршруте, прежде чем он будет признан недействительным. Если какой- нибудь маршрут признан недействительным, то соседи уведомяются об этом факте. Такое уведомление должно иметь место до истечения времени таймера отключения маршрута ( route flush timer ). Когда заданное время таймера отключения маршрута истекает, этот маршрут удаляется из таблицы маршрутизации. Типичные исходные значения для этих таймеров - 90 секунд для таймера недействующего маршрута и 270 секунд для таймера отключения маршрута.

Характеристики стабильности

RIP определяет ряд характеристик, предназначенных для более стабильной работы в условиях быстро изменяющейся топологии сети. В их число входит ограничение числа пересылок, временные удерживания изменений ( hold-downs ), расщепленные горизонты ( split-horizons ) и корректировки отмены ( poison reverse updates ).

Ограничение числа пересылок

RIP разрешает максимальное число пересылок, равное 15. Любому пункту назначения, который находится дальше, чем на расстоянии 15 пересылок, присваивается ярлык "недосягаемого". Максимальное число пересылок RIP в значительной мере ограничивает его применение в крупных объединенных сетях, однако способствует предотвращению появления проблемы, называемой счетом до бесконечности ( count to infinity ), приводящей к зацикливанию маршрутов в сети. Проблема счета до бесконечности представлена на Рис. 5.3.

(рис 5.3) Count-to-Infinity Problem

Рассмотрим, что случится, если на Рис. 5.3 канал Роутера 1 (R1) (канал а), связывающий его с сетью А, откажет. R1 проверяет свою информацию и обнаруживает, что Роутер 2 (R2) связан с сетью А каналом длиной в одну пересылку. Т.к. R1 знает, что он напрямую соединен с R2, то он объявляет о маршруте из двух пересылок до сети А и начинает направлять весь трафик в сеть А через R2. Это приводит к образованию маршрутной петли. Когда R2 обнаруживает, что R1 может теперь достичь сеть А за две пересылки, он изменяет запись своих собственных данных в таблице маршрутизации, чтобы показать, что он имеет тракт длиной в 3 пересылки до сети А. Эта проблема, а также данная маршрутная петля будут продолжаться бесконечно, или до тех пор, пока не будет навязано какое-нибудь внешнее граничное условие. Этим граничным условием является максимальное число пересылок RIP. Когда число пересылок превысит 15, данный маршрут маркируется как недосягаемый. Через некоторое время этот маршрут удаляется из таблицы.

Временные удерживания изменений

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

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

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

Расщепленные горизонты

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

(рис 5.4) Split Horizons

Pоутер 1 (R1) первоначально объявляет, что он располагает каким-то маршрутом до Сети А. Pоутеру 2 (R2) нет оснований включать этот маршрут в свою корректировку, отсылаемую обратно роутеру R1, т.к. R1 ближе к Сети А. Правило расщепленного горизонта гласит, что R2 должен исключить (попасть на) этот маршрут при любых корректировках, которые он отправляет в R1.

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

Корректировки отмены маршрута

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

IGRP

Библиографическая справка

Протокол маршрутизации внутренних роутеров (Interior Gateway Routing Protocol-IGRP) является протоколом маршрутизации, разработанным в середине 1980 гг. компанией Cisco Systems, Inc. Главной целью, которую преследовала Cisco при разработке IGRP, было обеспечение живучего протокола для маршрутизации в пределах автономной системы (AS), имеющей произвольно сложную топологию и включающую в себя носитель с разнообразными характеристиками ширины полосы и задержки. AS является набором сетей, которые находятся под единым управлением и совместно используют общую стратегию маршрутизации. Обычно AS присваивается уникальный 16-битовый номер, который назначается Центром Сетевой Информации ( Network Information Center - NIC ) Сети Министерства Обороны ( Defence Data Network - DDN ).

В середине 1980 гг. самым популярным протоколом маршрутизации внутри AS был Протокол Информации Маршрутизации (RIP). Хотя RIP был вполне пригоден для маршрутизации в пределах относительно однородных объединенных сетей небольшого или среднего размера, его ограничения сдерживали рост сетей. В частности, небольшая допустимая величина числа пересылок (15) RIP ограничивала размер объединенной сети, а его единственный показатель (число пересылок) не обеспечивал достаточную гибкость в сложных средах (смотри пункт "RIP"). Популярность роутеров Cisco и живучесть IGRP побудили многие организации, которые имели крупные объединенные сети, заменить RIP на IGRP.

Первоначальная реализация IGRP компании Cisco работала в сетях IP. Однако IGRP был предназначен для работы в любой сетевой среде, и вскоре Cisco распространила его для работы в сетях использующих Протокол Сети без Установления Соединения ( Connectionless Network Protocol - CLNP ) OSI.

Технология

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

Протоколы маршрутизации с вектором расстояния часто противопоставляют протоколам маршрутизации с указанием состояния канала, которые отправляют информацию о локальном соединении во все узлы объединенной сети. Рассмотрение двух популярных протоколов, использующих алгоритм маршрутизации с указанием состояния канала, "Открытый протокол с алгоритмом поиска наикратчайшего пути" ( Open Shortest Path First ) и "Промежуточная система-Промежуточная система" ( Intermediate System to Intermediate System (IS-IS) ), дается соответственно в пункты "OSPF" и "Маршрутизация OSI".

IGRP использует комбинацию (вектор) показателей. Задержка объединенной сети ( internetwork delay ), ширина полосы ( bandwidth ), надежность ( reliability ) и нагрузка ( load ) - все эти показатели учитываются в виде коэффициентов при принятии маршрутного решения. Администраторы сети могут устанавливать факторы весомости для каждого из этих показателей. IGRP использует либо установленные администратором, либо устанавливаемые по умолчанию весомости для автоматического расчета оптимальных маршрутов.

IGRP предусматривает широкий диапазон значений для своих показателей. Например, надежность и нагрузка могут принимать любое значение в интервале от 1 до 255, ширина полосы может принимать значения, отражающие скорости пропускания от 1200 бит/с до 10 гигабит в секунду, в то время как задержка может принимать любое значение от 1-2 до 24-го порядка. Широкие диапазоны значений показателей позволяют производить удовлетворительную регулировку показателя в объединенной сети с большим диапазоном изменения характеристик производительности. Самым важным является то, что компоненты показателей объединяются по алгоритму, который определяет пользователь. В результате администраторы сети могут оказывать влияние на выбор маршрута, полагаясь на свою интуицию.

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

Формат пакета

Формат пакета IGRP выглядит так:

unsigned version: 4;  /* protocol version number */
    unsigned opcode: 4;   /* opcode */
    uchar edition;        /* edition number */
    ushort asystem;       /* autonomous system number */
    ushort ninterior;     /* number of subnets in local net */
    ushort nsystem;       /* number of networks in AS */
    ushort nexterior;     /* number of networks outside AS */
    ushort checksum;      /* checksum of IGRP header and data */

Первое поле пакета IGRP содержит номер версии ( version number ). Этот номер версии указывает на используемую версию IGRP и сигнализирует о различных, потенциально несовместимых реализациях.

За полем версии идет поле операционного кода ( opcode ). Это поле обозначает тип пакета. Операционный код, равный 1, обозначает пакет корректировки; равный 2-пакет запроса. Пакеты запроса используются источником для запроса маршрутной таблицы из другого роутера. Эти пакеты состоят только из заголовка, содержащего версию, операционный код и поля номера AS. Пакеты корректировки содержат заголовок, за которым сразу же идут записи данных маршрутной таблицы. На записи данных маршрутной таблицы не накладывается никаких ограничений, за исключением того, что пакет не может превышать 1500 байтов, вместе с заголовком IP. Если этого недостаточно для того, чтобы охватить весь объем маршрутной таблицы, то используются несколько пакетов.

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

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

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

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

Сообщения о корректировке содержат последовательность из семи полей данных для каждой записи данных маршрутной таблицы. Первое из этих полей содержит три значащих байта адреса ( address ) (в случае адреса IP). Следующие пять полей содержат значения показателей. Первое из них обозначает задержку ( delay ), выраженную в десятках микросекунд. Диапазон перекрывает значения от 10 мксек. до 167 сек. За полем задержки следует поле ширины полосы ( bandwidth ). Ширина полосы выражена в единицах 1 Кбит/сек и перекрывает диапазон от линии с шириной полосы 1200 бит/сек до 10 Гбит/сек. Затем идет поле MTU, которое обеспечивет размер MTU в байтах. За полем MTU идет поле надежности ( reliability ), указывающее процент успешно переданных и принятых пакетов. Далее идет поле нагрузки ( load ), которое обозначает занятую часть канала в процентном отношении. Последним полем в каждой записи данных маршрутизации является поле числа пересылок ( hop count ). И хотя использование числа пересылок не явно выражено при определении показателя, тем не менее это поле содержится в пакете IGRP и инкрементируется после обработки пакета, обеспечивая использование подсчета пересылок для предотвращения петель.

Характеристики стабильности

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

Временные удерживания изменений

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

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

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

Расщепленные горизонты

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

(рис 5.5) Split Horizons

Роутер 1 (R1) первоначально объявляет, что у него есть какой-то маршрут до Сети А. Роутеру 2 (R2) нет оснований включать этот маршрут в свою корректировку, отправляемую в R1, т.к. R1 ближе к Сети А. В правиле о расщепленных горизонтах говорится, что R2 должен исключить этот маршрут независимо от того, какие корректировки он отправляет в R1.

Правило о расщепленных горизонтах помогает предотвращать зацикливание маршрутов. Например, рассмотрим случай, когда интерфейс R1 с Сетью А отказывает. Без расщепленных горизонтов R2 продолжал бы информировать R1, что он может попасть в Сеть А (через R1!). Если R1 не располагает достаточным интеллектом, он действительно может выбрать маршрут, предлагаемый R2, в качестве альтернативы своему отказавшему прямому соединению, что приводит к образованию маршрутной петли. И хотя удерживание изменений должно помешать этому, в IGRP реализованы также расщепленные горизонты, т.к. они обеспечивают дополнительную стабильность алгоритма.

Корректировки отмены маршрута

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

Таймеры

IGRP обеспечивает ряд таймеров и переменных, содержащих временные интервалы. Сюда входят таймер корректировки, таймер недействующих маршрутов, период времени удерживания изменений и таймер отключения. Таймер корректировки определяет, как часто должны отправляться сообщения о корректировке маршрутов. Для IGRP значение этой переменной, устанавливаемое по умолчанию, равно 90 сек. Таймер недействующих маршрутов определяет, сколько времени должен ожидать роутер при отсутствии сообщений о корректировке какого-нибудь конкретного маршрута, прежде чем объявить этот маршрут недействующим. Время по умолчанию IGRP для этой переменной в три раза превышает период корректировки. Переменная величина времени удерживания определяет промежуток времени удерживания. Время по умолчанию IGRP для этой переменной в три раза больше периода таймера корректировки, плюс 10 сек. И наконец, таймер отключения указывает, сколько времени должно пройти прежде, чем какой-нибудь роутер должен быть исключен из маршрутной таблицы. Время по умолчанию IGRP для этой величины в семь раз превышает период корректировки маршрутизации.

OSPF

Библиографическая справка

Открытый протокол, базирующийся на алгоритме поиска наикратчайшего пути (Open Shortest Path First - OSPF) является протоколом маршрутизации, разработанным для сетей IP рабочей группой Internet Engineering Task Force (IETF), занимающейся разработкой протоколов для внутрисистемных роутеров ( interior gateway protocol - IGP ). Рабочая группа была образована в 1988 г. для разработки протокола IGP, базирующегося на алгоритме "поиска наикратчайшего пути" ( shortest path first - SPF ), с целью его использования в Internet, крупной международной сети, объединяющей научно-исследовательские институты, правительственные учреждения, университеты и частные предприятия. Как и протокол IGRP (смотри пункт "IGRP"), OSPF был разработан по той причине, что к середине 1980 гг. непригодность RIP для обслуживания крупных гетерогенных объединенных систем стала все более очевидна (смотри пункт "RIP").

ОSPF явился результатом научных исследований по нескольким направлениям, включающим:

  • Алгоритм SPF компании Bolt, Beranek и Newman (BBN), разработанный для Arpanet (программы с коммутацией пакетов, разработанной BBN в начале 1970 гг., которая явилась поворотным пунктом в истории разработки сетей) в 1978 г.
  • Исследования Koмпании Radia Perlman по отказоустойчивости широкой рассылки маршрутной информации (1988).
  • Исследования BBN по маршрутизации в отдельной области (1986).
  • Одна из первых версий протокола маршрутизации IS-IS OSI
  • (Информация о IS-IS дается в пункте "Maршрутизация OSI").

    Как видно из его названия, OSPF имеет две основных характеристики. Первая из них-это то, что протокол является открытым, т.е. его спецификация является общественным достоянием. Спецификация OSPF опубликована в форме Запроса для Комментария (RFC) 1247. Второй его главной характеристикой является то, что он базируется на алгоритме SPF. Алгоритм SPF иногда называют алгоритмом Dijkstra по имени автора, который его разработал.

    Основы технологии

    OSPF является протоколом маршрутизации с объявлением состояния о канале ( link-state ). Это значит, что он требует отправки объявлений о состоянии канала ( link-state advertisement - LSA ) во все роутеры, которые находятся в пределах одной и тойже иерархической области. В oбъявления LSA протокола OSPF включается информация о подключенных интерфейсах, об использованных показателях и о других переменных. По мере накопления роутерами OSPF информации о состоянии канала, они используют алгоритм SPF для расчета наикратчайшего пути к каждому узлу.

    Являясь алгоритмом с объявлением состояния канала, OSPF отличается от RIP и IGRP, которые являются протоколами маршрутизации с вектором расстояния. Роутеры, использующие алгоритм вектора расстояния, отправляют всю или часть своей таблицы маршрутизации в сообщения о корректировке маршрутизации, но только своим соседям.

    Иерархия маршрутизации

    В отличие от RIP, OSPF может работать в пределах некоторой иерархической системы. Самым крупным объектом в этой иерархии является автономная система ( Autonomous System - AS ) AS является набором сетей, которые находятся под единым управлением и совместно используют общую стратегию маршрутизации. OSPF является протоколом маршрутизации внутри AS, хотя он и способен принимать маршруты из других AS и отправлять маршруты в другие AS.

    Любая AS может быть разделена на ряд областей ( area ). Область - это группа смежных сетей и подключенных к ним хостов. Роутеры, имеющие несколько интерфейсов, могут участвовать в нескольких областях. Такие роутеры, которые называются роутерами границы областей ( area border routers ), поддерживают отдельные топологические базы данных для каждой области.

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

    Термин "домен" ( domain ) используется для описания части сети, в которой все роутеры имеют идентичную топологическую базу данных. Термин "домен" часто используется вместо AS.

    Топология области является невидимой для объектов, находящихся вне этой области. Путем хранения топологий областей отдельно, OSPF добивается меньшего трафика маршрутизации, чем трафик для случая, когда AS не разделена на области.

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

    Стержневая часть OSPF ( backbone ) отвечает за распределение маршрутной информации между областями. Она включает в себя все роутеры границы области, сети, которые не принадлежат полностью какой-либо из областей, и подключенные к ним роутеры. На Рис. 5.6 представлен пример объединенной сети с несколькими областями.

    (рис 5.6) Hierarchical OSPF Internetwork

    На этом рисунке роутеры 4, 5, 6, 10, 11 и 12 образуют стержень. Если хост Н1 Области 3 захочет отправить пакет хосту Н2 Области 2, то пакет отправляется в роутер 13, который продвигает его в роутер 12, который в свою очередь отправляет его в роутер 11. Роутер 11 продвигает пакет вдоль стержня к роутеру 10 границы области, который отправляет пакет через два внутренних роутера этой области (роутеры 9 и 7) до тех пор, пока он не будет продвинут к хосту Н2.

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

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

    Граничные роутеры AS, использующие OSPF, узнают о внешних роутерах через протоколы внешних роутеров (EGPs), таких, как Exterior Gateway Protocol (EGP) или Border Gateway Protocol (BGP), или через информацию о конфигурации (информация об этих протоколах дается соответственно в пунктах "EGP" и "BGP").

    Алгоритм SPF

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

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

    В сетях с множественным доступом ( multi-access networks ) (сетях, поддержиающих более одного роутера), протокол Hello выбирает назначенный роутер ( designated router ) и дублирующий назначенный роутер. Назначеный роутер, помимо других функций, отвечает за генерацию LSA для всей сети с множественным доступом. Назначенные роутеры позволяют уменьшить сетевой трафик и объем топологической базы данных.

    Если базы данных о состоянии канала двух роутеров являются синхронными, то говорят, что эти роутеры смежные ( adjacent ). В сетях с множественным доступом назначенные роутеры определяют, какие роутеры должны стать смежными. Топологические базы данных синхронизируются между парами смежных роутеров. Смежности управляют распределением пакетов протокола маршрутизации. Эти пакеты отправляются и принимаются только на смежности.

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

    Формат пакета

    Все пакеты OSPF начинаются с 24-байтового заголовка, как показано на Рис. 5.7.

    (рис 5.7) Формат пакета OSPF.

    Первое поле в заголовке OSPF - это номер версии OSPF ( version number ). Номер версии обозначает конкретную используемую реализацию OSPF.

    За номером версии идет поле типа ( type ). Существует 5 типов пакета OSPF:

  • Hello

    Отправляется через регулярные интервалы времени для установления и поддержания соседских взаимоотношений.

  • Database Description

    Описание базы данных. Описывает содержимое базы данных; обмен этими пакетами производится при инициализации смежности.

  • Link-State Request

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

  • Link-State Update

    Корректировка состояния канала. Отвечает на пакеты запроса о состоянии канала. Эти пакеты также используются для регулярного распределения LSA. В одном пакете могут быть включены несколько LSA.

  • Link-State Acknowledgement

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

  • Каждое LSA в пакете корректировки состояния канала содержит тип поля. Существуют 4 типа LSA:

  • Router links advertisements (RLA)

    объявления о каналах роутера. Описывают собранные данные о состоянии каналов роутера, связывающих его с конкретной областью. Любой роутер отправляет RLA для каждой области, к которой он принадлежит. RLA направляются лавинной адресацией через всю область, но они не отправляются за ее пределы.

  • Network links advertisements (NLA)

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

  • Summary links advertisements (SLA)

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

  • AS external links advertisements

    объявления о внешних каналах AS. Описывают какой-либо маршрут к одному из пунктов назначения, который является внешним для данного AS. объявления о внешних каналах AS вырабатываются граничными роутерами AS. Этот тип объявлений является единственным типом объявлений, которые продвигаются во всех направлениях данной AS; все другие объявления продвигаются только в пределах конкретных областей.

  • За полем типа заголовка пакета OSPF идет поле длины пакета ( packet length ). Это поле обеспечивает длину пакета вместе с заголовком OSPF в байтах.

    Поле идентификатора роутера ( router ID ) идентифицирует источник пакета.

    Поле идентификатора области ( area ID ) идентифицирует область, к которой принадлежит данный пакет. Все пакеты OSPF связаны с одной отдельной областью.

    Стандартное поле контрольной суммы IP ( checksum ) проверяет содержимое всего пакета для выявления потенциальных повреждений, имевших место при транзите.

    За полем контрольной суммы идет поле типа удостоверения ( authentication type ). Примером типа удостоверения является "простой пароль". Все обмены протокола OSPF проводятся с установлением достоверности. Тип удостоверения устанавливается по принципу "отдельный для каждой области".

    За полем типа удостоверения идет поле удостоверения ( authentication ). Это поле длиной 64 бита и содержит информацию удостоверения.

    Дополнительные характеристики OSPF

    В числе дополнительных характеристик OSPF - равные затраты, многотрактовая маршрутизация ( multipath routing ) и маршрутизация, базирующаяся на запросах типа услуг высшего уровня ( type of service - TOS ). Базирующаяся на TOS маршрутизация поддерживает те протоколы высшего уровня, которые могут назначать конкретные типы услуг. Например, какая-нибудь прикладная программа может включить требование о том, что определенная информация является срочной. Если OSPF имеет в своем распоряжении каналы с высоким приоритетом, то они могут быть использованы для транспортировки срочных дейтаграмм.

    OSPF обеспечивает один или более показателей. Если используется только один показатель, то он считается произвольным, и TOS не обеспечивается. Если используется более одного показателя, то TOS обеспечивается факультативно путем использования отдельного показателя (и следовательно, отдельной маршрутной таблицы) для каждой из 8 комбинаций, образованной тремя битами IP TOS: битом задержки ( delay ), производительности ( throughput ) и надежности ( reliability ). Например, если биты IP TOS задают небольшую задержку, низкую производительность и высокую надежность, то OSPF вычисляет маршруты во все пункты назначения, базируясь на этом обозначении TOS.

    Маски подсети IP включаются в каждый объявленный пункт назначения, что позволяет использовать маски подсети переменной длины ( variable-length subnet masks ). С помощью масок подсети переменной длины сеть IP может быть разбита на несколько подсетей разной величины. Это обеспечивает администраторам сетей дополнительную гибкость при выборе конфигурации сети.

    EGP

    Библиографическая справка

    Протокол внешних роутеров (Exterior Gateway Protocol-EGP) является протоколом междоменной досягаемости, который применяется в Internet - международной сети, объединяющей университеты, правительственные учреждения, научно-исследовательские организации и частные коммерческие концерны. EGP документально оформлен в Запросах для Комментария (RFC) 904, опубликованных в апреле 1984 г.

    Являясь первым протоколом внешних роутеров, который получил широкое признание в Internet, EGP сыграл важную роль. К сожалению, недостатки EGP стали более очевидными после того, как Internet стала более крупной и совершенной сетью. Из-за этих недостатков EGP в настоящее время не отвечает всем требованиям Internet и заменяется другими протоколами внешних роутеров, такими, как Протокол граничных роутеров ( Border Gateway Protocol - BGP ) и Протокол междоменной маршрутизации ( Inter-Domain Routing Protocol - IDRP ) (смотри пункты "BGP" и "Маршрутизация OSI").

    Основы технологии

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

    (рис 5.8) EGP and the ARPANET

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

    EGP имеет три основных функции. Во-первых, роутеры, работающие с EGP, организуют для себя определенный набор соседей. Соседи - это просто другие роутеры, с которыми какой-нибудь роутер хочет коллективно пользоваться информацией о досягаемости сетей; какие-либо указания о географическом соседстве не включаются. Во-вторых, роутеры EGP опрашивают своих соседей для того, чтобы убедиться в их работоспособности. В-третьих, роутеры EGP oтправляют сообщения о корректировках, содержащих информацию о досягаемости сетей в пределах своих AS.

    Формат пакета

    Пакет EGPпредставлен на Рис. 5.9.

    (рис 5.9) EGP Packet Format

    Первым полем в заголовке пакета EGP является поле номера версии EGP ( EGP version number ). Это поле обозначает текущую версию EGP и проверяется приемными устройствами для определения соответствия между номерами версий отправителя и получателя.

    Следующим полем является поле типа ( type ), которое обозначает тип сообщения. EGP выделяет 5 отдельных типов сообщения.

    EGP Message Types
    MessageFunction
    Neighbor acquisition Establishes/de-establishes neighbors
    Neighbor reachability Determines if neighbors are alive
    Poll Determines reachability of a particular network
    Routing update Provides routing updates
    Error Indicates error conditions

    За полем типа следует поле кода ( code ). Это поле определяет различие между подтипами сообщений.

    Следующее поле - поле состояния ( status ), которое содержит информацию о состоянии, зависящую от сообщения. В число кодов состояния входят коды недостатка ресурсов ( insufficient resources ), неисправных параметров ( parameter problem ), нарушений протокола ( protocol violation ), и другие.

    За полем состояния идет поле контрольной суммы ( checksum ). Контрольная сумма используется для обнаружения возможных проблем, которые могли появиться в пакете в результате транспортировки.

    За полем контрольной суммы идет поле номера автономной системы ( autonomous system number ). Оно обозначает AS, к которой принадлежит роутер-отправитель.

    Последним полем заголовка пакета EGP является поле номера последовательности ( sequence number ). Это поле позволяет двум роутерам EGP, которые oбмениваются сообщениями, согласовывать запросы с ответами. Когда определен какой-нибудь новый сосед, номер последовательности устанавливается в исходное нулевое значение и инкрементируется на единицу с каждой новой транзакцией запрос-ответ.

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

    За заголовком EGP идут дополнительные поля. Содержимое этих полей различается в зависимости от типа сообщения (определяемого полем типа).

    Приобретение соседа

    Сообщение "приобретение соседа включает в себя интервал приветствия ( hello interval ) и интервал опроса ( poll interval ). Поле интервала приветствия определяет период интервала проверки работоспособности соседей. Поле интервала опроса определяет частоту корректировки маршрутизации.

    Досягаемость соседа

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

    Опрос

    Чтобы обеспечить правильную маршрутизацию между AS, ЕGP должен знать об относительном местоположении отдаленных хостов. Сообщение опроса позволяет роутерам EGP получать информацию о досягаемости сетей, в которых находятся эти машины. Такие сообщения имеют только одно поле помимо обычного заголовка - поле сети источника IP ( source network ). Это поле определяет сеть, которая должна использоваться в качестве контрольной точки для запроса.

    Корректировка маршрутизации

    Сообщения о корректировке маршрутизации дают роутерам EGP возможность указывать местоположение различных сетей в пределах своих AS. В дополнение к обычному заголовку эти сообщения включают несколько дополнительных полей. Поле числа внутренних роутеров ( number of interior gateways ) указывает на число внутренних роутеров, появляющихся в сообщении. Поле числа внешних роутеров ( number of exterior gateways ) указывает на число внешних роутеров, появляющихся в сообщении. Поле сети источника IP ( IP source network ) обеспечивает адрес IP той сети, от которой измерена досягаемость. За этим полем идет последовательность блоков роутеров ( gateway blocks ). Каждый блок роутеров обеспечивает адрес IP какого-нибудь роутера и перечень сетей, а также расстояний, связанных с достижением этих сетей.

    В пределах одного блока роутера EGP перечисляет сети по расстояниям. Например, на расстоянии три может быть четыре сети. Эти сети перечислены по адресам. Следующей группой сетей могут быть сети, находящиеся на расстоянии 4, и т.д.

    ЕGP не расшифровывает показатели расстояния, содержащиеся в сообщениях о корректировке маршрутов. EGP фактически использует поле расстояния для указания существования какого-либо маршрута; значение расстояния может быть использовано только для сравнения трактов, если эти тракты полностью находятся в пределах одного конкретного AS. По этой причине EGP является скорее протоколом досягаемости, чем протоколом маршрутизации. Это ограничение приводит также к ограничениям в структуре Internet. Характерно, что любая часть EGP сети Internet должна представлять собой структуру дерева, у которого стержневой роутер является корнем, и в пределах которого отсутствуют петли между другими AS. Это ограничение является основным ограничением EGP; оно стало причиной его постепенного вытеснения другими, более совершенными протоколами внешних роутеров.

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

    Сообщения о неисправностях указывают на различные сбойные ситуации. В дополнение к общему заголовку EGP сообщения о неисправностях обеспечивают поле причины ( reason ), за которым следует заголовок сообщения о неисправности ( message header ). В число типичных неисправностей (причин) EGP входят неисправный формат заголовка EGP ( bad EGP header format ), неисправный формат поля данных EGP ( bad EGP data field format ), чрезмерная скорость опроса ( excessive polling rate ) и невозможность достижения информации ( unavailability of reachability information ). Заголовок сообщения о неисправности состоит из первых трех 32-битовых слов заголовка EGP.

    BGP

    Библиографическая справка

    Протоколы внешних роутеров предназначены для маршрутизации между доменами маршрутизации. В терминологии Internet (международной сети, объединяющей университеты, правительственные учреждения, научно-исследовательские организации и частные коммерческие концерны) доменом маршрутизации называется автономная система (AS). Первым протоколом внешних роутеров, получившим широкое признание в Internet, был протокол EGP (Смотри пункт "ЕGP"). Хотя технология EGP пригодна для сетей, он имеет ряд недостатков, в том числе тот факт, что это скорее протокол досягаемости, а не маршрутизации.

    Протокол Граничных роутеров ( Border Gateway Protocol - BGP ) является попыткой решить самую серьезную проблему EGP. BGP является протоколом маршрутизации между AS, созданным для применения в Internet. В отличие от EGP, BGP предназначен для обнаружения маршрутных петель. BGP можно назвать следующим поколением EGP. И действительно, BGP и другие протоколы маршрутизации между AS постепенно вытесняют EGP из Internet. Версия 3 BGP определена в Запросах для Комментария (RFC) 1163.

    Основы технологии

    Хотя 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 как правило лучше), тип канала (стабильность, быстродействие и надежность канала) и другие факторы.

    Формат пакета

    Формат пакета представлен на Рис. 5.10.

    (рис 5.10) BGP Packet Format

    Пакеты BGP имеют общий 19-байтовый заголовок, состоящий их трех полей.

    Поле маркера ( marker ) имеет длину 16 байтов и содержит величину, которую получатель сообщения может предсказывать. Это поле используется для установки подлинности.

    Поле длины ( length ) содержит полную длину сообщения в байтах.

    Поле типа ( type ) определяет тип сообщения.

    Сообщения

    RFC 1163 определяет 4 типа сообщений:

  • Открывающие сообщения
  • Сообщения о корректировке
  • Уведомления
  • Сообщения keepalive (продолжай действовать)
  • После того, как соединение протокола транспортного уровня организовано, первым сообщением, отправляемым каждой стороной, является открывающее сообщение. Если открывающее сообщение приемлемо для получателя, то отправителю отсылается сообщение keepalive, подтверждающее получение открывающего сообщения. После успешного подтверждения принятия открывающего сообщения может быть произведен обмен корректировками, сообщениями keepalive и уведомлениями.

    Открывающие сообщения

    В дополнение к обычному заголовку пакета BGP в открывающих сообщениях выделяют несколько полей. Поле версии ( version ) обеспечивает номер версии BGP и дает возможность получателю проверять, совпадает ли его версия с версией отправителя. Поле автономной системы ( autonomous system ) обеспечивает номер AS отправителя. Поле времени удерживания ( hold time ) указывает максимальное число секунд, которые могут пройти без получения какого-либо сообщения от передающего устройства, прежде чем считать его отказавшим. Поле кода удостоверения ( authentication code ) указывает на используемый код удостоверения (если он имеется). Поле данных удостоверения ( autentication data ) содержит фактические данные удостоверения (при их наличии).

    Сообщения о корректировке

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

  • Origin

    Источник. Может иметь одно из трех значений: IGP, EGP и incomplete (незавершенный). Атрибут IGP означает, что данная сеть является частью данной AS. Атрибут EGP означает, что первоначальные сведения о данной информации получены от протокола EGP. Реализации BGP склонны oтдавать предпочтение маршрутам IGP перед маршрутами EGP, т.к. маршрут EGP отказывает при наличии маршрутных петель. Атрибут incomplete используется для указания того, что о данной сети известно через какие-то другие средства.

  • AS path

    Путь AS. Обеспечивает фактический перечень AS на пути к пункту назначения.

  • Next hop

    Следующая пересылка. Обеспечивает адрес IP роутера, который должен быть использован в качестве следующей пересылки к сетям, перечисленным в сообщении о корректировке.

  • Unreachable

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

  • Inter-AS metric

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

  • Сообщения keepalive (продолжай действовать)

    Сообщения keepalive не содержат каких-либо дополнительных полей помимо тех, которые содержатся в заголовке BGP. Эти сообщения отправляются довольно часто для того, чтобы препятствовать истечению периода времени удерживания таймера.

    Уведомления

    Уведомления отправляются в том случае, если была обнаружена сбойная ситуация, и один роутер хочет сообщить другому, почему он закрывает соединение между ними. Помимо обычного заголовка BGP уведомления содержат поле кода ошибки ( error code ), поле подкода ошибки ( error subcode ) и данные ошибки ( error data ). Поле кода ошибки указывает тип ошибки, который может быть одним из перечисленных ниже:

  • Message header error

    Ошибка в заголовке сообщения. Указывает на проблему в заголовке сообщения, такую, как неприемлемая длина сообщения, неприемлемое значение поля маркера или неприемлемый тип сообщения.

  • Open message error

    Ошибка в открывающем сообщении. Указывает на наличие проблемы в открывающем сообщении, такой, как необеспечиваемый номер версии, неприемлемый номер AS или адрес IP и необеспечиваемый код удостоверения.

  • Update message error

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

  • Hold time expired

    Время удерживания истекло. Указывает на истечение периода времени удерживания, после чего узел BGP будет объявлен недействующим.

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

    Библиографическая справка

    При содействии Международной Организации по Стандартизации (ISO) уже разработаны или разрабатываются в настоящее время несколько протоколов маршрутизации. ISO ссылается на Протокол Обмена Внутридоменной Маршрутизации Промежуточных Систем ( Intermediate System to Intermediate System Intra-Domain Routing Exchange Protocol (IS-IS) ) как на ISO 10589. Двигательной силой стандартизации ISO документа IS-IS был комитет Х.3S3.3 Американского Национального Института Стандартов (ANSI), занимающийся сетевым и транспортным уровнями. В числе других протоколов ISO, связанных с маршрутизацией, протоколы ISO 9542 ( End System to Intermediate System, или ES-IS - Конечная система-Промежуточная Система) и ISO 10747 (IS-IS Inter-Domain Routing Protocol, или IDRP - Протокол междоменной маршрутизации промежуточных систем). Об этих протоколах будет вкратце упомянуто в данной главе, однако oсновное внимание уделено внутридоменной версии IS-IS.

    IS-IS базируется на работе, которая была впервые выполнена Digital Equipment Corporation при разработке Phase V DECnet. Хотя IS-IS предназначался для маршрутизации в сетях протокола CLNP ISO, со временем была разработана одна из его версий для поддержки как сетей CLNP, так и сетей IP. На эту версию IS-IS обычно ссылаются как на Integrated IS-IS (интегрированный); ее также называют Dual IS-IS (двойственный). Integrated IS-IS также рассматривается вкратце.

    Терминология

    Объединенные сети OSI используют уникальную терминологию. Термин "конечная система" ( end system - ES ) относится к любому узлу сети, который не занимается маршрутизацией; термин "промежуточная система" ( intermediate system-IS ) относится к роутеру. На этих терминах базируются протоколы OSI ES-IS (который позволяет ES и IS находить друг друга) и IS-IS (который обеспечивает маршрутизацию между IS). Ниже дается определение некоторых других важных терминов объединенных сетей OSI:

  • Area

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

  • Domain

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

  • Level 1 routing

    Маршрутизация в пределах области Уровня 1.

  • Level 2 routing

    Maршрутизация между областями Уровня 1.

  • На Рис. 5.11 "Иерархия объединенных сетей OSI" показана взаимосвязь между этими терминами.

    (рис 5.11) Hierarchies in OSI Internetworks

    С чисто технологической точки зрения IS-IS почти аналогичен протоколу маршрутизации OSPF (смотри пункт "OSPF"). Оба протокола являются протоколами с указанием состояния канала. Оба они обеспечивают различные характеристики, которые не обеспечивает RIP, в том числе иерархии маршрутизации ( routing hierachies ), дробление путей ( path splitting ), обеспечение типа услуги ( type-of-service - TOS ), удостоверение ( authentication ), поддержка нескольких протоколов сетевого уровня и поддержка (совместно с протоколом Integrated IS-IS) масок подсети переменной длины.

    ES-IS

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

    ES-IS различает три разных типа подсетей:

  • Point-to-point subnetworks

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

  • Broadcast subnetworks

    Широковещательные подсети. Направляют отдельное физическое сообщение во все узлы данной подсети. Примерами широковещательных подсетей являются Ethernet и IEEE 802.3 (смотри Главу 2).

  • General-topology subnetworks

    Подсети с общей топологией. Поддерживают произвольное число систем. Однако в отличие от широковещательных подсетей, величина затрат на передачу по какому-нибудь маршруту n непосредственно связана с размерами данной подсети в подсети с общей топологией. Примером подсети с общей топологией является Х.25 (смотри Главу 3).

  • Информация конфигурации передается через определенные интервалы времени с помощью сообщений двух типов. Приветственные сообщения ES ( Es hello messages - ESHs ) генерируются ES и отправляются в каждую IS данной подсети. Приветственные сообщения IS ( IS hello messages - ISH ) генерируются IS и отправляются всем ES данной подсети. Эти приветственные сообщения в основном предназначены для переноса адресов подсетей и адресов сетевого уровня тех систем, которые генерируют их.

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

    ES-IS переносит как адреса сетевого уровня, так и адреса подсетей. Адреса сетевого уровня OSI идентифицируют либо точку доступа к услугам сети (NSAP), которая представляет собой интерфейс между Уровнями 3 и 4, либо титул объекта сети (NET), который является объектом сетевого уровня в OSI IS. Адреса подсетей OSI (иногда называемые адресами точки подключения подсети - subnetwork point of attachment - SNPA ) являются точками, в которых ES или IS физически подключена к какой-нибудь подсети. Адрес SNPA уникальным образом идентифицирует каждую систему, подключенную к данной подсети. В сети Ethernet, например, SNPA является 48-битовым адресом управления доступом к носителю (МАС). Часть информации конфигурации, которую передает ES-IS, представляет собой отображение соответствия между NSAP и SNPA или между NET и SNPA.

    На Рис. 5.12 представлены форматы пакетов ESH и ISH.

    (рис 5.12) ESH and ISH Packet Formats

    IS-IS

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

    Иерархия маршрутизации

    Для упрощения схемы и работы роутера IS-IS различает IS уровней 1 и 2. IS уровня 1 могут сообщаться с другими IS уровня 1, находящимися в той же области. IS уровня 2 могут сообщаться с IS других областей. Т.е. IS уровня 1 формируют области уровня 1; IS уровня 2 осуществляют маршрутизацию между областями уровня 1.

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

    Сообщение между ES

    Маршрутизация OSI выполняется следующим образом. Каждая ES принадлежит конкретной области. ES обнаруживают ближайшую IS путем прослушивания пакетов ISH. Если какая-нибудь ES захочет отправить пакет в другую ES, она направляет пакет в одну из IS сети, к которой она непосредственно подключена. Роутер просматривает адрес пункта назначения и продвигает пакет по наилучшему маршруту. Если ES пункта назначения находится в той же подсети, то местная IS узнает об этом в результате прослушивания ESH и соответствующим образом продвинет пакет. В этом случае IS может также обеспечить отправку сообщения о переадресации ( redirect - RD) в источник пакета, чтобы сообщить о доступности более прямого пути. Если адресом пункта назначения является какая-нибудь ES другой подсети той же области, то IS узнает о точном маршруте и соответствующим образом продвинет пакет. Если адресом пункта назначения является какая-нибудь ES другой области, то IS уровня 1 отправляет этот пакет в в ближайшую IS уровня 2. Продвижение пакета через IS уровня 2 продолжается до тех пор, пока он не достигнет IS уровня 2 в области пункта назначения. В пределах области пункта назначения IS продвигают пакет по наилучшему маршруту, пока не будет достигнутa ES пункта назначения.

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

    Показатели (метрики)

    IS-IS использует один обязательный, устанавливаемый по умолчанию показатель с максимальным значением пути 1024. Этот показатель является произвольным и обычно назначается администратором сети. Любой отдельный канал может иметь максимальное значение 64. Длина путей вычисляется путем суммирования значений каналов. Максимальные значения каналов установлены на этих уровнях для обеспечения степени детализации, чтобы поддерживать различные типы каналов, одновременно обеспечивая достаточную эффективность алгоритма поиска наикратчайшего пути, используемого для расчета маршрута.

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

    IS-IS обеспечивает соответствие этих четырех показателей опции качества обслуживания ( quality-of-service - QOS ) в заголовке пакета CLNP. Пользуясь этим соответствием, IS-IS может вычислять маршруты через объединенную сеть.

    Формат пакета

    IS-IS использует три базовых формата пакета:

  • IS-IS hello packets - приветственные пакеты IS-IS
  • Link state packets (LSPs) - пакеты состояния канала
  • Sequence numbers packets (SNPs) - пакеты номеров последовательностей
  • Каждый из этих трех пакетов IS-IS имеет сложный формат с тремя различными логическими частями. Первой частью является 8-байтовый фиксированный заголовок, общий для всех трех типов пакетов. Второй частью является специфичная для данного типа пакета часть с фиксированным форматом. Третья логическая часть также является специфичной для типа пакета, но имеет переменную длину. Логический формат пакетов IS-IS представлен на Рис. 5.13.

    (рис 5.13) IS-IS Logical Packet Format

    Каждый из трех типов пакета имеет общий заголовок, как это показано на Рис. 5.14.

    (рис 5.14) Is-Is Common Header Format

    Первым полем в общем заголовке IS-IS является идентификатор протокола ( protocol identifier ), который идентифицирует протокол IS-IS. Это поле содержит константу (131).

    Следующим полем общего заголовка является поле длины заголовка ( header length ). Это поле содержит фиксированную длину заголовка. Эта длина всегда равняется 8 байтам, но она включена таким образом, чтобы пакеты IS-IS незначительно отличались от пакетов CLNP.

    За полем длины следует поле версии ( version ), которое равняется единице в текущей спецификации IS-IS.

    За полем версии идет поле длины ID, которое определяет размеры части ID (идентификатора) NSAP, если eго значение лежит в пределах от 1 до 8 (включительно). Если поле содержит нуль, то часть ID равняется 6 байтам. Если поле содержит 255 (одни единицы), то часть ID равна 0 байтов.

    Следующим полем является поле типа пакета ( packet type ), которое определяет тип пакета IS-IS (hello, LSP или SNP).

    За полем типа пакета повторно следует поле версии.

    За вторым полем версии идет поле резерва (reserved), которое равно нулю и которое игнорируется получателем.

    Последним полем общего заголовка является поле максимума адресов области. Это поле определяет число адресов, разрешeнных для этой области.

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

    Интегрированный IS-IS

    Интегрированный IS-IS является одной из версий IS-IS, которая использует один алгоритм маршрутизации для поддержки нескольких протоколов сетевого уровня, а не только одного протокола CLNP. Интегрированный IS-IS иногда называют Двойственным IS-IS ( Dual IS-IS ), по имени одной из версий, предназначенных для сетей IP и CLNP.

    Пакеты IS-IS дополнены несколькими полями, что позволяет IS-IS поддерживать дополнительные сетевые уровни. Эти поля сообщают роутерам следующую информацию:

  • Досягаемость сетевых адресов из других комплектов протоколов
  • Какие протоколы поддерживаются и какими роутерами
  • Другую информацию, необходимую для какого-нибудь конкретного комплекта протоколов
  • Интегрированный IS-IS представляет один из двух способов поддержки в роутере нескольких протоколов сетевого уровня; другим способом является применение метода "корабли ночью" ( ships in the night ). Этот метод пропагандирует использование совершенно отдельного и отличного от других протокола маршрутизации для каждого сетевого протокола сети так, чтобы несколько протоколов маршрутизации фактически существовали независимо друг от друга (с разными типами маршрутной информации, проходящей подобно кораблям ночью). Возможность направлять по определенным маршрутам несколько протоколов сетевого уровня с помощью таблиц, рассчитанных одним протоколом маршрутизации, экономит ресурсы роутеров.

    Протокол междоменной маршрутизации (IDRP)

    IDRP является протоколом OSI, предназначенным для перемещения информации между доменами маршрутизации. Он предназначен для бесшовной работы с CLNP, ES-IS и IS-IS. IDRP базируется на Протоколе граничных роутеров (BGP), который является протоколом междоменной маршрутизации, впервые появившемся в сообществе IP (смотри пункт "BGP").

    IDRP вводит несколько новых терминов, в том числе следующие:

  • Border intermediate system (BIS)

    Граничная промежуточная система. Это IS, участвующая в междоменной маршрутизации. Для этого она использует IDRP.

  • Routing domain (RD)

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

  • Routing domain identifier (RDI)

    Идентификатор домена маршрутизации. Уникальный идентификатор домена маршрутизации (RD).

  • Routing information base (RIB)

    Информационная база маршрутизации. Это база данных маршрутизации, используемая IDRP. Каждая BIS строит свою RIB из информации, полученной от систем данного RD и из других BIS. Любая RIB содержит набор маршрутов, выбранных для использования какой-нибудь конкретной BIS.

  • Confederation

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

  • Маршрут IDRP представляет собой последовательность RDI. Некоторые из этих RDI могут быть конфедерациями. При конфигурации каждой BIS она знает о RD и конфедерациях, к которым она принадлежит, а также узнает о других BIS, RD и конфедерациях из информации, которой она обменивается с каждым соседом. Как и для маршрутизации с вектором расстояния, маршруты в какой-нибудь конкретный пункт назначения накапливаются вне данного пункта назначения. Только маршруты, которые удовлетворяют требованиям местной политики какой-нибудь BIS и были выбраны для использования, будут переданы в другие BIS. Пересчет маршрутов носит частичный характер и имеет место при наличии одного из следующих трех событий: получена инкрементная корректировка маршрутизации с новыми маршрутами, отказывает какая-нибудь соседняя BIS или появляется новая соседняя BIS.

    В число характеристик IDRP входят следующие:

  • Поддержка CLNP QOS
  • Устранение петель путем отслеживания всех RD, пересекаемых роутером
  • Сокращение объема маршрутной информации и ее обработки путем использования конфедераций, компрессии информации путей RD и других средств
  • Обеспечение надежности путем использования встроенных надежных средств транспортировки
  • Обеспечение защиты данных путем использования криптографической сигнатуры для каждого пакета
  • Наличие узлов обслуживания маршрута
  • Регенерирующие пакеты RIB
  • Страницы:

    RIP

    Библиографическая справка

    Протокол Информации Маршрутизации (RIP) является протоколом маршрутизации, который был первоначально разработан для Универсального протокола PARC Xerox (где он назывался GWINFO) и использовался в комплекте протоколов ХNS. RIP начали связывать как с UNIX, так и с TCP/IP в 1982 г., когда версию UNIX, называемую Berkeley Standard Distribution (BSD), начали отгружать с одной из реализацией RIP, которую называли "трассируемой" (routed) (слово произносится "route dee"). Протокол RIP, который все еще является очень популярным протоколом маршрутизации в сообществе Internet, формально определен в публикации "Протоколы транспортировки Internet" XNS (XNS Internet Transport Protocols ) (1981 г.) и в Запросах для комментария ( Request for Comments - RFC) 1058 (1988 г.).

    RIP был повсеместно принят производителями персональных компьютеров (РС) для использования в их изделиях передачи данных по сети. Например, протокол маршрутизации AppleTalk (Протокол поддержания таблицы маршрутизации - RTMP) является модернизированной версией RIP. RIP также явился базисом для протоколов Novell, 3Com, Ungermann-Bass и Banyan. RIP компаний Novell и 3Com в основном представляет собой стандартный RIP компании Xerox. Ungermann-Bass и Banyan внесли незначительные изменения в RIP для удовлетворения своих нужд.

    Формат таблицы маршрутизации

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

    (рис 5.1) Typical RIP Routing Table

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

    Формат пакета (Реализация IP)

    На Рис. 5.2 изображен формат пакета RIP для реализаций IP так, как он определен в RFC 1058.

    ПРИМЕЧАНИЕ: На Рис. 5.2 представлен формат RIP, используемый для сетей IP в Internet. В некоторые другие варианты RIP внесены незначительные изменения формата и (или) имен файлов, которые здесь перечислены, но функциональные возможности базового алгоритма маршрутизации те же самые.

    (рис 5.2) RIP Packet Format

    Первое поле в пакете RIP-это поле команд ( command ). Это поле содержит целое число, обозначающее либо запрос, либо ответ. Команда "запрос" запрашивает отвечающую систему об отправке всей таблицы маршрутизации или ее части. Пункты назначения, для которых запрашивается ответ, перечисляются далее в данном пакете. Ответная команда представляет собой ответ на запрос или чаще всего какую-нибудь незатребованную регулярную корректировку маршрутизации. Отвечающая система включает всю таблицу маршрутизации или ее часть в ответный пакет. Регулярные сообщения о корректировке маршрутизации включают в себя всю таблицу маршрутизации.

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

    За 16-битовым полем, состоящим из одних нулей, идет поле идентификатора семейства адресов ( аddress family identifier ). Это поле определяет конкретное используемое семейство адресов. В сети Internet (крупной международной сети, объединяющей научно-исследовательские институты, правительственные учреждения, университеты и частные предприятия) этим адресным семейством обычно является IP ( значение=2 ), но могут быть также представлены другие типы сетей.

    Следом за еще одним 16-битовым полем, состоящим из одних нулей, идет 32-битовое поле адреса ( address ). В реализациях RIP Internet это поле обычно содержит какой-нибудь адрес IP.

    За еще двумя 32-битовыми полями из нулей идет поле показателя RIP ( metric ). Этот показатель представляет собой число пересылок ( hop count ). Он указывает, сколько должно быть пересечено транзитных участков (роутеров) объединенной сети, прежде чем можно добраться до пункта назначения.

    В каждом отдельном пакете RIP IP допускается появление дo 25 вхождений идентификатора семейства адреса, обеспечиваемых полями показателя. Другими словами, в каждом отдельном пакете RIP может быть перечислено до 25 пунктов назначения. Для передачи информации из более крупных маршрутных таблиц используется множество пакетов RIP.

    Как и другие протоколы маршрутизации, RIP использует определенные таймеры для регулирования своей работы. Таймер корректировки маршрутизации RIP ( routing update timer ) обычно устанавливается на 30 сек., что гарантирует отправку каждым роутером полной копии своей маршрутной таблицы всем своим соседям каждые 30 секунд. Таймер недействующих маршрутов ( route invalid timer ) определяет, сколько должно пройти времени без получения сообщений о каком-нибудь конкретном маршруте, прежде чем он будет признан недействительным. Если какой- нибудь маршрут признан недействительным, то соседи уведомяются об этом факте. Такое уведомление должно иметь место до истечения времени таймера отключения маршрута ( route flush timer ). Когда заданное время таймера отключения маршрута истекает, этот маршрут удаляется из таблицы маршрутизации. Типичные исходные значения для этих таймеров - 90 секунд для таймера недействующего маршрута и 270 секунд для таймера отключения маршрута.

    Характеристики стабильности

    RIP определяет ряд характеристик, предназначенных для более стабильной работы в условиях быстро изменяющейся топологии сети. В их число входит ограничение числа пересылок, временные удерживания изменений ( hold-downs ), расщепленные горизонты ( split-horizons ) и корректировки отмены ( poison reverse updates ).

    Ограничение числа пересылок

    RIP разрешает максимальное число пересылок, равное 15. Любому пункту назначения, который находится дальше, чем на расстоянии 15 пересылок, присваивается ярлык "недосягаемого". Максимальное число пересылок RIP в значительной мере ограничивает его применение в крупных объединенных сетях, однако способствует предотвращению появления проблемы, называемой счетом до бесконечности ( count to infinity ), приводящей к зацикливанию маршрутов в сети. Проблема счета до бесконечности представлена на Рис. 5.3.

    (рис 5.3) Count-to-Infinity Problem

    Рассмотрим, что случится, если на Рис. 5.3 канал Роутера 1 (R1) (канал а), связывающий его с сетью А, откажет. R1 проверяет свою информацию и обнаруживает, что Роутер 2 (R2) связан с сетью А каналом длиной в одну пересылку. Т.к. R1 знает, что он напрямую соединен с R2, то он объявляет о маршруте из двух пересылок до сети А и начинает направлять весь трафик в сеть А через R2. Это приводит к образованию маршрутной петли. Когда R2 обнаруживает, что R1 может теперь достичь сеть А за две пересылки, он изменяет запись своих собственных данных в таблице маршрутизации, чтобы показать, что он имеет тракт длиной в 3 пересылки до сети А. Эта проблема, а также данная маршрутная петля будут продолжаться бесконечно, или до тех пор, пока не будет навязано какое-нибудь внешнее граничное условие. Этим граничным условием является максимальное число пересылок RIP. Когда число пересылок превысит 15, данный маршрут маркируется как недосягаемый. Через некоторое время этот маршрут удаляется из таблицы.

    Временные удерживания изменений

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

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

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

    Расщепленные горизонты

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

    (рис 5.4) Split Horizons

    Pоутер 1 (R1) первоначально объявляет, что он располагает каким-то маршрутом до Сети А. Pоутеру 2 (R2) нет оснований включать этот маршрут в свою корректировку, отсылаемую обратно роутеру R1, т.к. R1 ближе к Сети А. Правило расщепленного горизонта гласит, что R2 должен исключить (попасть на) этот маршрут при любых корректировках, которые он отправляет в R1.

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

    Корректировки отмены маршрута

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

    IGRP

    Библиографическая справка

    Протокол маршрутизации внутренних роутеров (Interior Gateway Routing Protocol-IGRP) является протоколом маршрутизации, разработанным в середине 1980 гг. компанией Cisco Systems, Inc. Главной целью, которую преследовала Cisco при разработке IGRP, было обеспечение живучего протокола для маршрутизации в пределах автономной системы (AS), имеющей произвольно сложную топологию и включающую в себя носитель с разнообразными характеристиками ширины полосы и задержки. AS является набором сетей, которые находятся под единым управлением и совместно используют общую стратегию маршрутизации. Обычно AS присваивается уникальный 16-битовый номер, который назначается Центром Сетевой Информации ( Network Information Center - NIC ) Сети Министерства Обороны ( Defence Data Network - DDN ).

    В середине 1980 гг. самым популярным протоколом маршрутизации внутри AS был Протокол Информации Маршрутизации (RIP). Хотя RIP был вполне пригоден для маршрутизации в пределах относительно однородных объединенных сетей небольшого или среднего размера, его ограничения сдерживали рост сетей. В частности, небольшая допустимая величина числа пересылок (15) RIP ограничивала размер объединенной сети, а его единственный показатель (число пересылок) не обеспечивал достаточную гибкость в сложных средах (смотри пункт "RIP"). Популярность роутеров Cisco и живучесть IGRP побудили многие организации, которые имели крупные объединенные сети, заменить RIP на IGRP.

    Первоначальная реализация IGRP компании Cisco работала в сетях IP. Однако IGRP был предназначен для работы в любой сетевой среде, и вскоре Cisco распространила его для работы в сетях использующих Протокол Сети без Установления Соединения ( Connectionless Network Protocol - CLNP ) OSI.

    Технология

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

    Протоколы маршрутизации с вектором расстояния часто противопоставляют протоколам маршрутизации с указанием состояния канала, которые отправляют информацию о локальном соединении во все узлы объединенной сети. Рассмотрение двух популярных протоколов, использующих алгоритм маршрутизации с указанием состояния канала, "Открытый протокол с алгоритмом поиска наикратчайшего пути" ( Open Shortest Path First ) и "Промежуточная система-Промежуточная система" ( Intermediate System to Intermediate System (IS-IS) ), дается соответственно в пункты "OSPF" и "Маршрутизация OSI".

    IGRP использует комбинацию (вектор) показателей. Задержка объединенной сети ( internetwork delay ), ширина полосы ( bandwidth ), надежность ( reliability ) и нагрузка ( load ) - все эти показатели учитываются в виде коэффициентов при принятии маршрутного решения. Администраторы сети могут устанавливать факторы весомости для каждого из этих показателей. IGRP использует либо установленные администратором, либо устанавливаемые по умолчанию весомости для автоматического расчета оптимальных маршрутов.

    IGRP предусматривает широкий диапазон значений для своих показателей. Например, надежность и нагрузка могут принимать любое значение в интервале от 1 до 255, ширина полосы может принимать значения, отражающие скорости пропускания от 1200 бит/с до 10 гигабит в секунду, в то время как задержка может принимать любое значение от 1-2 до 24-го порядка. Широкие диапазоны значений показателей позволяют производить удовлетворительную регулировку показателя в объединенной сети с большим диапазоном изменения характеристик производительности. Самым важным является то, что компоненты показателей объединяются по алгоритму, который определяет пользователь. В результате администраторы сети могут оказывать влияние на выбор маршрута, полагаясь на свою интуицию.

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

    Формат пакета

    Формат пакета IGRP выглядит так:

    unsigned version: 4;  /* protocol version number */
        unsigned opcode: 4;   /* opcode */
        uchar edition;        /* edition number */
        ushort asystem;       /* autonomous system number */
        ushort ninterior;     /* number of subnets in local net */
        ushort nsystem;       /* number of networks in AS */
        ushort nexterior;     /* number of networks outside AS */
        ushort checksum;      /* checksum of IGRP header and data */

    Первое поле пакета IGRP содержит номер версии ( version number ). Этот номер версии указывает на используемую версию IGRP и сигнализирует о различных, потенциально несовместимых реализациях.

    За полем версии идет поле операционного кода ( opcode ). Это поле обозначает тип пакета. Операционный код, равный 1, обозначает пакет корректировки; равный 2-пакет запроса. Пакеты запроса используются источником для запроса маршрутной таблицы из другого роутера. Эти пакеты состоят только из заголовка, содержащего версию, операционный код и поля номера AS. Пакеты корректировки содержат заголовок, за которым сразу же идут записи данных маршрутной таблицы. На записи данных маршрутной таблицы не накладывается никаких ограничений, за исключением того, что пакет не может превышать 1500 байтов, вместе с заголовком IP. Если этого недостаточно для того, чтобы охватить весь объем маршрутной таблицы, то используются несколько пакетов.

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

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

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

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

    Сообщения о корректировке содержат последовательность из семи полей данных для каждой записи данных маршрутной таблицы. Первое из этих полей содержит три значащих байта адреса ( address ) (в случае адреса IP). Следующие пять полей содержат значения показателей. Первое из них обозначает задержку ( delay ), выраженную в десятках микросекунд. Диапазон перекрывает значения от 10 мксек. до 167 сек. За полем задержки следует поле ширины полосы ( bandwidth ). Ширина полосы выражена в единицах 1 Кбит/сек и перекрывает диапазон от линии с шириной полосы 1200 бит/сек до 10 Гбит/сек. Затем идет поле MTU, которое обеспечивет размер MTU в байтах. За полем MTU идет поле надежности ( reliability ), указывающее процент успешно переданных и принятых пакетов. Далее идет поле нагрузки ( load ), которое обозначает занятую часть канала в процентном отношении. Последним полем в каждой записи данных маршрутизации является поле числа пересылок ( hop count ). И хотя использование числа пересылок не явно выражено при определении показателя, тем не менее это поле содержится в пакете IGRP и инкрементируется после обработки пакета, обеспечивая использование подсчета пересылок для предотвращения петель.

    Характеристики стабильности

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

    Временные удерживания изменений

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

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

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

    Расщепленные горизонты

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

    (рис 5.5) Split Horizons

    Роутер 1 (R1) первоначально объявляет, что у него есть какой-то маршрут до Сети А. Роутеру 2 (R2) нет оснований включать этот маршрут в свою корректировку, отправляемую в R1, т.к. R1 ближе к Сети А. В правиле о расщепленных горизонтах говорится, что R2 должен исключить этот маршрут независимо от того, какие корректировки он отправляет в R1.

    Правило о расщепленных горизонтах помогает предотвращать зацикливание маршрутов. Например, рассмотрим случай, когда интерфейс R1 с Сетью А отказывает. Без расщепленных горизонтов R2 продолжал бы информировать R1, что он может попасть в Сеть А (через R1!). Если R1 не располагает достаточным интеллектом, он действительно может выбрать маршрут, предлагаемый R2, в качестве альтернативы своему отказавшему прямому соединению, что приводит к образованию маршрутной петли. И хотя удерживание изменений должно помешать этому, в IGRP реализованы также расщепленные горизонты, т.к. они обеспечивают дополнительную стабильность алгоритма.

    Корректировки отмены маршрута

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

    Таймеры

    IGRP обеспечивает ряд таймеров и переменных, содержащих временные интервалы. Сюда входят таймер корректировки, таймер недействующих маршрутов, период времени удерживания изменений и таймер отключения. Таймер корректировки определяет, как часто должны отправляться сообщения о корректировке маршрутов. Для IGRP значение этой переменной, устанавливаемое по умолчанию, равно 90 сек. Таймер недействующих маршрутов определяет, сколько времени должен ожидать роутер при отсутствии сообщений о корректировке какого-нибудь конкретного маршрута, прежде чем объявить этот маршрут недействующим. Время по умолчанию IGRP для этой переменной в три раза превышает период корректировки. Переменная величина времени удерживания определяет промежуток времени удерживания. Время по умолчанию IGRP для этой переменной в три раза больше периода таймера корректировки, плюс 10 сек. И наконец, таймер отключения указывает, сколько времени должно пройти прежде, чем какой-нибудь роутер должен быть исключен из маршрутной таблицы. Время по умолчанию IGRP для этой величины в семь раз превышает период корректировки маршрутизации.

    OSPF

    Библиографическая справка

    Открытый протокол, базирующийся на алгоритме поиска наикратчайшего пути (Open Shortest Path First - OSPF) является протоколом маршрутизации, разработанным для сетей IP рабочей группой Internet Engineering Task Force (IETF), занимающейся разработкой протоколов для внутрисистемных роутеров ( interior gateway protocol - IGP ). Рабочая группа была образована в 1988 г. для разработки протокола IGP, базирующегося на алгоритме "поиска наикратчайшего пути" ( shortest path first - SPF ), с целью его использования в Internet, крупной международной сети, объединяющей научно-исследовательские институты, правительственные учреждения, университеты и частные предприятия. Как и протокол IGRP (смотри пункт "IGRP"), OSPF был разработан по той причине, что к середине 1980 гг. непригодность RIP для обслуживания крупных гетерогенных объединенных систем стала все более очевидна (смотри пункт "RIP").

    ОSPF явился результатом научных исследований по нескольким направлениям, включающим:

  • Алгоритм SPF компании Bolt, Beranek и Newman (BBN), разработанный для Arpanet (программы с коммутацией пакетов, разработанной BBN в начале 1970 гг., которая явилась поворотным пунктом в истории разработки сетей) в 1978 г.
  • Исследования Koмпании Radia Perlman по отказоустойчивости широкой рассылки маршрутной информации (1988).
  • Исследования BBN по маршрутизации в отдельной области (1986).
  • Одна из первых версий протокола маршрутизации IS-IS OSI
  • (Информация о IS-IS дается в пункте "Maршрутизация OSI").

    Как видно из его названия, OSPF имеет две основных характеристики. Первая из них-это то, что протокол является открытым, т.е. его спецификация является общественным достоянием. Спецификация OSPF опубликована в форме Запроса для Комментария (RFC) 1247. Второй его главной характеристикой является то, что он базируется на алгоритме SPF. Алгоритм SPF иногда называют алгоритмом Dijkstra по имени автора, который его разработал.

    Основы технологии

    OSPF является протоколом маршрутизации с объявлением состояния о канале ( link-state ). Это значит, что он требует отправки объявлений о состоянии канала ( link-state advertisement - LSA ) во все роутеры, которые находятся в пределах одной и тойже иерархической области. В oбъявления LSA протокола OSPF включается информация о подключенных интерфейсах, об использованных показателях и о других переменных. По мере накопления роутерами OSPF информации о состоянии канала, они используют алгоритм SPF для расчета наикратчайшего пути к каждому узлу.

    Являясь алгоритмом с объявлением состояния канала, OSPF отличается от RIP и IGRP, которые являются протоколами маршрутизации с вектором расстояния. Роутеры, использующие алгоритм вектора расстояния, отправляют всю или часть своей таблицы маршрутизации в сообщения о корректировке маршрутизации, но только своим соседям.

    Иерархия маршрутизации

    В отличие от RIP, OSPF может работать в пределах некоторой иерархической системы. Самым крупным объектом в этой иерархии является автономная система ( Autonomous System - AS ) AS является набором сетей, которые находятся под единым управлением и совместно используют общую стратегию маршрутизации. OSPF является протоколом маршрутизации внутри AS, хотя он и способен принимать маршруты из других AS и отправлять маршруты в другие AS.

    Любая AS может быть разделена на ряд областей ( area ). Область - это группа смежных сетей и подключенных к ним хостов. Роутеры, имеющие несколько интерфейсов, могут участвовать в нескольких областях. Такие роутеры, которые называются роутерами границы областей ( area border routers ), поддерживают отдельные топологические базы данных для каждой области.

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

    Термин "домен" ( domain ) используется для описания части сети, в которой все роутеры имеют идентичную топологическую базу данных. Термин "домен" часто используется вместо AS.

    Топология области является невидимой для объектов, находящихся вне этой области. Путем хранения топологий областей отдельно, OSPF добивается меньшего трафика маршрутизации, чем трафик для случая, когда AS не разделена на области.

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

    Стержневая часть OSPF ( backbone ) отвечает за распределение маршрутной информации между областями. Она включает в себя все роутеры границы области, сети, которые не принадлежат полностью какой-либо из областей, и подключенные к ним роутеры. На Рис. 5.6 представлен пример объединенной сети с несколькими областями.

    (рис 5.6) Hierarchical OSPF Internetwork

    На этом рисунке роутеры 4, 5, 6, 10, 11 и 12 образуют стержень. Если хост Н1 Области 3 захочет отправить пакет хосту Н2 Области 2, то пакет отправляется в роутер 13, который продвигает его в роутер 12, который в свою очередь отправляет его в роутер 11. Роутер 11 продвигает пакет вдоль стержня к роутеру 10 границы области, который отправляет пакет через два внутренних роутера этой области (роутеры 9 и 7) до тех пор, пока он не будет продвинут к хосту Н2.

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

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

    Граничные роутеры AS, использующие OSPF, узнают о внешних роутерах через протоколы внешних роутеров (EGPs), таких, как Exterior Gateway Protocol (EGP) или Border Gateway Protocol (BGP), или через информацию о конфигурации (информация об этих протоколах дается соответственно в пунктах "EGP" и "BGP").

    Алгоритм SPF

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

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

    В сетях с множественным доступом ( multi-access networks ) (сетях, поддержиающих более одного роутера), протокол Hello выбирает назначенный роутер ( designated router ) и дублирующий назначенный роутер. Назначеный роутер, помимо других функций, отвечает за генерацию LSA для всей сети с множественным доступом. Назначенные роутеры позволяют уменьшить сетевой трафик и объем топологической базы данных.

    Если базы данных о состоянии канала двух роутеров являются синхронными, то говорят, что эти роутеры смежные ( adjacent ). В сетях с множественным доступом назначенные роутеры определяют, какие роутеры должны стать смежными. Топологические базы данных синхронизируются между парами смежных роутеров. Смежности управляют распределением пакетов протокола маршрутизации. Эти пакеты отправляются и принимаются только на смежности.

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

    Формат пакета

    Все пакеты OSPF начинаются с 24-байтового заголовка, как показано на Рис. 5.7.

    (рис 5.7) Формат пакета OSPF.

    Первое поле в заголовке OSPF - это номер версии OSPF ( version number ). Номер версии обозначает конкретную используемую реализацию OSPF.

    За номером версии идет поле типа ( type ). Существует 5 типов пакета OSPF:

  • Hello

    Отправляется через регулярные интервалы времени для установления и поддержания соседских взаимоотношений.

  • Database Description

    Описание базы данных. Описывает содержимое базы данных; обмен этими пакетами производится при инициализации смежности.

  • Link-State Request

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

  • Link-State Update

    Корректировка состояния канала. Отвечает на пакеты запроса о состоянии канала. Эти пакеты также используются для регулярного распределения LSA. В одном пакете могут быть включены несколько LSA.

  • Link-State Acknowledgement

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

  • Каждое LSA в пакете корректировки состояния канала содержит тип поля. Существуют 4 типа LSA:

  • Router links advertisements (RLA)

    объявления о каналах роутера. Описывают собранные данные о состоянии каналов роутера, связывающих его с конкретной областью. Любой роутер отправляет RLA для каждой области, к которой он принадлежит. RLA направляются лавинной адресацией через всю область, но они не отправляются за ее пределы.

  • Network links advertisements (NLA)

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

  • Summary links advertisements (SLA)

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

  • AS external links advertisements

    объявления о внешних каналах AS. Описывают какой-либо маршрут к одному из пунктов назначения, который является внешним для данного AS. объявления о внешних каналах AS вырабатываются граничными роутерами AS. Этот тип объявлений является единственным типом объявлений, которые продвигаются во всех направлениях данной AS; все другие объявления продвигаются только в пределах конкретных областей.

  • За полем типа заголовка пакета OSPF идет поле длины пакета ( packet length ). Это поле обеспечивает длину пакета вместе с заголовком OSPF в байтах.

    Поле идентификатора роутера ( router ID ) идентифицирует источник пакета.

    Поле идентификатора области ( area ID ) идентифицирует область, к которой принадлежит данный пакет. Все пакеты OSPF связаны с одной отдельной областью.

    Стандартное поле контрольной суммы IP ( checksum ) проверяет содержимое всего пакета для выявления потенциальных повреждений, имевших место при транзите.

    За полем контрольной суммы идет поле типа удостоверения ( authentication type ). Примером типа удостоверения является "простой пароль". Все обмены протокола OSPF проводятся с установлением достоверности. Тип удостоверения устанавливается по принципу "отдельный для каждой области".

    За полем типа удостоверения идет поле удостоверения ( authentication ). Это поле длиной 64 бита и содержит информацию удостоверения.

    Дополнительные характеристики OSPF

    В числе дополнительных характеристик OSPF - равные затраты, многотрактовая маршрутизация ( multipath routing ) и маршрутизация, базирующаяся на запросах типа услуг высшего уровня ( type of service - TOS ). Базирующаяся на TOS маршрутизация поддерживает те протоколы высшего уровня, которые могут назначать конкретные типы услуг. Например, какая-нибудь прикладная программа может включить требование о том, что определенная информация является срочной. Если OSPF имеет в своем распоряжении каналы с высоким приоритетом, то они могут быть использованы для транспортировки срочных дейтаграмм.

    OSPF обеспечивает один или более показателей. Если используется только один показатель, то он считается произвольным, и TOS не обеспечивается. Если используется более одного показателя, то TOS обеспечивается факультативно путем использования отдельного показателя (и следовательно, отдельной маршрутной таблицы) для каждой из 8 комбинаций, образованной тремя битами IP TOS: битом задержки ( delay ), производительности ( throughput ) и надежности ( reliability ). Например, если биты IP TOS задают небольшую задержку, низкую производительность и высокую надежность, то OSPF вычисляет маршруты во все пункты назначения, базируясь на этом обозначении TOS.

    Маски подсети IP включаются в каждый объявленный пункт назначения, что позволяет использовать маски подсети переменной длины ( variable-length subnet masks ). С помощью масок подсети переменной длины сеть IP может быть разбита на несколько подсетей разной величины. Это обеспечивает администраторам сетей дополнительную гибкость при выборе конфигурации сети.

    EGP

    Библиографическая справка

    Протокол внешних роутеров (Exterior Gateway Protocol-EGP) является протоколом междоменной досягаемости, который применяется в Internet - международной сети, объединяющей университеты, правительственные учреждения, научно-исследовательские организации и частные коммерческие концерны. EGP документально оформлен в Запросах для Комментария (RFC) 904, опубликованных в апреле 1984 г.

    Являясь первым протоколом внешних роутеров, который получил широкое признание в Internet, EGP сыграл важную роль. К сожалению, недостатки EGP стали более очевидными после того, как Internet стала более крупной и совершенной сетью. Из-за этих недостатков EGP в настоящее время не отвечает всем требованиям Internet и заменяется другими протоколами внешних роутеров, такими, как Протокол граничных роутеров ( Border Gateway Protocol - BGP ) и Протокол междоменной маршрутизации ( Inter-Domain Routing Protocol - IDRP ) (смотри пункты "BGP" и "Маршрутизация OSI").

    Основы технологии

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

    (рис 5.8) EGP and the ARPANET

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

    EGP имеет три основных функции. Во-первых, роутеры, работающие с EGP, организуют для себя определенный набор соседей. Соседи - это просто другие роутеры, с которыми какой-нибудь роутер хочет коллективно пользоваться информацией о досягаемости сетей; какие-либо указания о географическом соседстве не включаются. Во-вторых, роутеры EGP опрашивают своих соседей для того, чтобы убедиться в их работоспособности. В-третьих, роутеры EGP oтправляют сообщения о корректировках, содержащих информацию о досягаемости сетей в пределах своих AS.

    Формат пакета

    Пакет EGPпредставлен на Рис. 5.9.

    (рис 5.9) EGP Packet Format

    Первым полем в заголовке пакета EGP является поле номера версии EGP ( EGP version number ). Это поле обозначает текущую версию EGP и проверяется приемными устройствами для определения соответствия между номерами версий отправителя и получателя.

    Следующим полем является поле типа ( type ), которое обозначает тип сообщения. EGP выделяет 5 отдельных типов сообщения.

    EGP Message Types
    MessageFunction
    Neighbor acquisition Establishes/de-establishes neighbors
    Neighbor reachability Determines if neighbors are alive
    Poll Determines reachability of a particular network
    Routing update Provides routing updates
    Error Indicates error conditions

    За полем типа следует поле кода ( code ). Это поле определяет различие между подтипами сообщений.

    Следующее поле - поле состояния ( status ), которое содержит информацию о состоянии, зависящую от сообщения. В число кодов состояния входят коды недостатка ресурсов ( insufficient resources ), неисправных параметров ( parameter problem ), нарушений протокола ( protocol violation ), и другие.

    За полем состояния идет поле контрольной суммы ( checksum ). Контрольная сумма используется для обнаружения возможных проблем, которые могли появиться в пакете в результате транспортировки.

    За полем контрольной суммы идет поле номера автономной системы ( autonomous system number ). Оно обозначает AS, к которой принадлежит роутер-отправитель.

    Последним полем заголовка пакета EGP является поле номера последовательности ( sequence number ). Это поле позволяет двум роутерам EGP, которые oбмениваются сообщениями, согласовывать запросы с ответами. Когда определен какой-нибудь новый сосед, номер последовательности устанавливается в исходное нулевое значение и инкрементируется на единицу с каждой новой транзакцией запрос-ответ.

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

    За заголовком EGP идут дополнительные поля. Содержимое этих полей различается в зависимости от типа сообщения (определяемого полем типа).

    Приобретение соседа

    Сообщение "приобретение соседа включает в себя интервал приветствия ( hello interval ) и интервал опроса ( poll interval ). Поле интервала приветствия определяет период интервала проверки работоспособности соседей. Поле интервала опроса определяет частоту корректировки маршрутизации.

    Досягаемость соседа

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

    Опрос

    Чтобы обеспечить правильную маршрутизацию между AS, ЕGP должен знать об относительном местоположении отдаленных хостов. Сообщение опроса позволяет роутерам EGP получать информацию о досягаемости сетей, в которых находятся эти машины. Такие сообщения имеют только одно поле помимо обычного заголовка - поле сети источника IP ( source network ). Это поле определяет сеть, которая должна использоваться в качестве контрольной точки для запроса.

    Корректировка маршрутизации

    Сообщения о корректировке маршрутизации дают роутерам EGP возможность указывать местоположение различных сетей в пределах своих AS. В дополнение к обычному заголовку эти сообщения включают несколько дополнительных полей. Поле числа внутренних роутеров ( number of interior gateways ) указывает на число внутренних роутеров, появляющихся в сообщении. Поле числа внешних роутеров ( number of exterior gateways ) указывает на число внешних роутеров, появляющихся в сообщении. Поле сети источника IP ( IP source network ) обеспечивает адрес IP той сети, от которой измерена досягаемость. За этим полем идет последовательность блоков роутеров ( gateway blocks ). Каждый блок роутеров обеспечивает адрес IP какого-нибудь роутера и перечень сетей, а также расстояний, связанных с достижением этих сетей.

    В пределах одного блока роутера EGP перечисляет сети по расстояниям. Например, на расстоянии три может быть четыре сети. Эти сети перечислены по адресам. Следующей группой сетей могут быть сети, находящиеся на расстоянии 4, и т.д.

    ЕGP не расшифровывает показатели расстояния, содержащиеся в сообщениях о корректировке маршрутов. EGP фактически использует поле расстояния для указания существования какого-либо маршрута; значение расстояния может быть использовано только для сравнения трактов, если эти тракты полностью находятся в пределах одного конкретного AS. По этой причине EGP является скорее протоколом досягаемости, чем протоколом маршрутизации. Это ограничение приводит также к ограничениям в структуре Internet. Характерно, что любая часть EGP сети Internet должна представлять собой структуру дерева, у которого стержневой роутер является корнем, и в пределах которого отсутствуют петли между другими AS. Это ограничение является основным ограничением EGP; оно стало причиной его постепенного вытеснения другими, более совершенными протоколами внешних роутеров.

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

    Сообщения о неисправностях указывают на различные сбойные ситуации. В дополнение к общему заголовку EGP сообщения о неисправностях обеспечивают поле причины ( reason ), за которым следует заголовок сообщения о неисправности ( message header ). В число типичных неисправностей (причин) EGP входят неисправный формат заголовка EGP ( bad EGP header format ), неисправный формат поля данных EGP ( bad EGP data field format ), чрезмерная скорость опроса ( excessive polling rate ) и невозможность достижения информации ( unavailability of reachability information ). Заголовок сообщения о неисправности состоит из первых трех 32-битовых слов заголовка EGP.

    BGP

    Библиографическая справка

    Протоколы внешних роутеров предназначены для маршрутизации между доменами маршрутизации. В терминологии Internet (международной сети, объединяющей университеты, правительственные учреждения, научно-исследовательские организации и частные коммерческие концерны) доменом маршрутизации называется автономная система (AS). Первым протоколом внешних роутеров, получившим широкое признание в Internet, был протокол EGP (Смотри пункт "ЕGP"). Хотя технология EGP пригодна для сетей, он имеет ряд недостатков, в том числе тот факт, что это скорее протокол досягаемости, а не маршрутизации.

    Протокол Граничных роутеров ( Border Gateway Protocol - BGP ) является попыткой решить самую серьезную проблему EGP. BGP является протоколом маршрутизации между AS, созданным для применения в Internet. В отличие от EGP, BGP предназначен для обнаружения маршрутных петель. BGP можно назвать следующим поколением EGP. И действительно, BGP и другие протоколы маршрутизации между AS постепенно вытесняют EGP из Internet. Версия 3 BGP определена в Запросах для Комментария (RFC) 1163.

    Основы технологии

    Хотя 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 как правило лучше), тип канала (стабильность, быстродействие и надежность канала) и другие факторы.

    Формат пакета

    Формат пакета представлен на Рис. 5.10.

    (рис 5.10) BGP Packet Format

    Пакеты BGP имеют общий 19-байтовый заголовок, состоящий их трех полей.

    Поле маркера ( marker ) имеет длину 16 байтов и содержит величину, которую получатель сообщения может предсказывать. Это поле используется для установки подлинности.

    Поле длины ( length ) содержит полную длину сообщения в байтах.

    Поле типа ( type ) определяет тип сообщения.

    Сообщения

    RFC 1163 определяет 4 типа сообщений:

  • Открывающие сообщения
  • Сообщения о корректировке
  • Уведомления
  • Сообщения keepalive (продолжай действовать)
  • После того, как соединение протокола транспортного уровня организовано, первым сообщением, отправляемым каждой стороной, является открывающее сообщение. Если открывающее сообщение приемлемо для получателя, то отправителю отсылается сообщение keepalive, подтверждающее получение открывающего сообщения. После успешного подтверждения принятия открывающего сообщения может быть произведен обмен корректировками, сообщениями keepalive и уведомлениями.

    Открывающие сообщения

    В дополнение к обычному заголовку пакета BGP в открывающих сообщениях выделяют несколько полей. Поле версии ( version ) обеспечивает номер версии BGP и дает возможность получателю проверять, совпадает ли его версия с версией отправителя. Поле автономной системы ( autonomous system ) обеспечивает номер AS отправителя. Поле времени удерживания ( hold time ) указывает максимальное число секунд, которые могут пройти без получения какого-либо сообщения от передающего устройства, прежде чем считать его отказавшим. Поле кода удостоверения ( authentication code ) указывает на используемый код удостоверения (если он имеется). Поле данных удостоверения ( autentication data ) содержит фактические данные удостоверения (при их наличии).

    Сообщения о корректировке

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

  • Origin

    Источник. Может иметь одно из трех значений: IGP, EGP и incomplete (незавершенный). Атрибут IGP означает, что данная сеть является частью данной AS. Атрибут EGP означает, что первоначальные сведения о данной информации получены от протокола EGP. Реализации BGP склонны oтдавать предпочтение маршрутам IGP перед маршрутами EGP, т.к. маршрут EGP отказывает при наличии маршрутных петель. Атрибут incomplete используется для указания того, что о данной сети известно через какие-то другие средства.

  • AS path

    Путь AS. Обеспечивает фактический перечень AS на пути к пункту назначения.

  • Next hop

    Следующая пересылка. Обеспечивает адрес IP роутера, который должен быть использован в качестве следующей пересылки к сетям, перечисленным в сообщении о корректировке.

  • Unreachable

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

  • Inter-AS metric

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

  • Сообщения keepalive (продолжай действовать)

    Сообщения keepalive не содержат каких-либо дополнительных полей помимо тех, которые содержатся в заголовке BGP. Эти сообщения отправляются довольно часто для того, чтобы препятствовать истечению периода времени удерживания таймера.

    Уведомления

    Уведомления отправляются в том случае, если была обнаружена сбойная ситуация, и один роутер хочет сообщить другому, почему он закрывает соединение между ними. Помимо обычного заголовка BGP уведомления содержат поле кода ошибки ( error code ), поле подкода ошибки ( error subcode ) и данные ошибки ( error data ). Поле кода ошибки указывает тип ошибки, который может быть одним из перечисленных ниже:

  • Message header error

    Ошибка в заголовке сообщения. Указывает на проблему в заголовке сообщения, такую, как неприемлемая длина сообщения, неприемлемое значение поля маркера или неприемлемый тип сообщения.

  • Open message error

    Ошибка в открывающем сообщении. Указывает на наличие проблемы в открывающем сообщении, такой, как необеспечиваемый номер версии, неприемлемый номер AS или адрес IP и необеспечиваемый код удостоверения.

  • Update message error

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

  • Hold time expired

    Время удерживания истекло. Указывает на истечение периода времени удерживания, после чего узел BGP будет объявлен недействующим.

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

    Библиографическая справка

    При содействии Международной Организации по Стандартизации (ISO) уже разработаны или разрабатываются в настоящее время несколько протоколов маршрутизации. ISO ссылается на Протокол Обмена Внутридоменной Маршрутизации Промежуточных Систем ( Intermediate System to Intermediate System Intra-Domain Routing Exchange Protocol (IS-IS) ) как на ISO 10589. Двигательной силой стандартизации ISO документа IS-IS был комитет Х.3S3.3 Американского Национального Института Стандартов (ANSI), занимающийся сетевым и транспортным уровнями. В числе других протоколов ISO, связанных с маршрутизацией, протоколы ISO 9542 ( End System to Intermediate System, или ES-IS - Конечная система-Промежуточная Система) и ISO 10747 (IS-IS Inter-Domain Routing Protocol, или IDRP - Протокол междоменной маршрутизации промежуточных систем). Об этих протоколах будет вкратце упомянуто в данной главе, однако oсновное внимание уделено внутридоменной версии IS-IS.

    IS-IS базируется на работе, которая была впервые выполнена Digital Equipment Corporation при разработке Phase V DECnet. Хотя IS-IS предназначался для маршрутизации в сетях протокола CLNP ISO, со временем была разработана одна из его версий для поддержки как сетей CLNP, так и сетей IP. На эту версию IS-IS обычно ссылаются как на Integrated IS-IS (интегрированный); ее также называют Dual IS-IS (двойственный). Integrated IS-IS также рассматривается вкратце.

    Терминология

    Объединенные сети OSI используют уникальную терминологию. Термин "конечная система" ( end system - ES ) относится к любому узлу сети, который не занимается маршрутизацией; термин "промежуточная система" ( intermediate system-IS ) относится к роутеру. На этих терминах базируются протоколы OSI ES-IS (который позволяет ES и IS находить друг друга) и IS-IS (который обеспечивает маршрутизацию между IS). Ниже дается определение некоторых других важных терминов объединенных сетей OSI:

  • Area

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

  • Domain

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

  • Level 1 routing

    Маршрутизация в пределах области Уровня 1.

  • Level 2 routing

    Maршрутизация между областями Уровня 1.

  • На Рис. 5.11 "Иерархия объединенных сетей OSI" показана взаимосвязь между этими терминами.

    (рис 5.11) Hierarchies in OSI Internetworks

    С чисто технологической точки зрения IS-IS почти аналогичен протоколу маршрутизации OSPF (смотри пункт "OSPF"). Оба протокола являются протоколами с указанием состояния канала. Оба они обеспечивают различные характеристики, которые не обеспечивает RIP, в том числе иерархии маршрутизации ( routing hierachies ), дробление путей ( path splitting ), обеспечение типа услуги ( type-of-service - TOS ), удостоверение ( authentication ), поддержка нескольких протоколов сетевого уровня и поддержка (совместно с протоколом Integrated IS-IS) масок подсети переменной длины.

    ES-IS

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

    ES-IS различает три разных типа подсетей:

  • Point-to-point subnetworks

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

  • Broadcast subnetworks

    Широковещательные подсети. Направляют отдельное физическое сообщение во все узлы данной подсети. Примерами широковещательных подсетей являются Ethernet и IEEE 802.3 (смотри Главу 2).

  • General-topology subnetworks

    Подсети с общей топологией. Поддерживают произвольное число систем. Однако в отличие от широковещательных подсетей, величина затрат на передачу по какому-нибудь маршруту n непосредственно связана с размерами данной подсети в подсети с общей топологией. Примером подсети с общей топологией является Х.25 (смотри Главу 3).

  • Информация конфигурации передается через определенные интервалы времени с помощью сообщений двух типов. Приветственные сообщения ES ( Es hello messages - ESHs ) генерируются ES и отправляются в каждую IS данной подсети. Приветственные сообщения IS ( IS hello messages - ISH ) генерируются IS и отправляются всем ES данной подсети. Эти приветственные сообщения в основном предназначены для переноса адресов подсетей и адресов сетевого уровня тех систем, которые генерируют их.

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

    ES-IS переносит как адреса сетевого уровня, так и адреса подсетей. Адреса сетевого уровня OSI идентифицируют либо точку доступа к услугам сети (NSAP), которая представляет собой интерфейс между Уровнями 3 и 4, либо титул объекта сети (NET), который является объектом сетевого уровня в OSI IS. Адреса подсетей OSI (иногда называемые адресами точки подключения подсети - subnetwork point of attachment - SNPA ) являются точками, в которых ES или IS физически подключена к какой-нибудь подсети. Адрес SNPA уникальным образом идентифицирует каждую систему, подключенную к данной подсети. В сети Ethernet, например, SNPA является 48-битовым адресом управления доступом к носителю (МАС). Часть информации конфигурации, которую передает ES-IS, представляет собой отображение соответствия между NSAP и SNPA или между NET и SNPA.

    На Рис. 5.12 представлены форматы пакетов ESH и ISH.

    (рис 5.12) ESH and ISH Packet Formats

    IS-IS

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

    Иерархия маршрутизации

    Для упрощения схемы и работы роутера IS-IS различает IS уровней 1 и 2. IS уровня 1 могут сообщаться с другими IS уровня 1, находящимися в той же области. IS уровня 2 могут сообщаться с IS других областей. Т.е. IS уровня 1 формируют области уровня 1; IS уровня 2 осуществляют маршрутизацию между областями уровня 1.

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

    Сообщение между ES

    Маршрутизация OSI выполняется следующим образом. Каждая ES принадлежит конкретной области. ES обнаруживают ближайшую IS путем прослушивания пакетов ISH. Если какая-нибудь ES захочет отправить пакет в другую ES, она направляет пакет в одну из IS сети, к которой она непосредственно подключена. Роутер просматривает адрес пункта назначения и продвигает пакет по наилучшему маршруту. Если ES пункта назначения находится в той же подсети, то местная IS узнает об этом в результате прослушивания ESH и соответствующим образом продвинет пакет. В этом случае IS может также обеспечить отправку сообщения о переадресации ( redirect - RD) в источник пакета, чтобы сообщить о доступности более прямого пути. Если адресом пункта назначения является какая-нибудь ES другой подсети той же области, то IS узнает о точном маршруте и соответствующим образом продвинет пакет. Если адресом пункта назначения является какая-нибудь ES другой области, то IS уровня 1 отправляет этот пакет в в ближайшую IS уровня 2. Продвижение пакета через IS уровня 2 продолжается до тех пор, пока он не достигнет IS уровня 2 в области пункта назначения. В пределах области пункта назначения IS продвигают пакет по наилучшему маршруту, пока не будет достигнутa ES пункта назначения.

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

    Показатели (метрики)

    IS-IS использует один обязательный, устанавливаемый по умолчанию показатель с максимальным значением пути 1024. Этот показатель является произвольным и обычно назначается администратором сети. Любой отдельный канал может иметь максимальное значение 64. Длина путей вычисляется путем суммирования значений каналов. Максимальные значения каналов установлены на этих уровнях для обеспечения степени детализации, чтобы поддерживать различные типы каналов, одновременно обеспечивая достаточную эффективность алгоритма поиска наикратчайшего пути, используемого для расчета маршрута.

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

    IS-IS обеспечивает соответствие этих четырех показателей опции качества обслуживания ( quality-of-service - QOS ) в заголовке пакета CLNP. Пользуясь этим соответствием, IS-IS может вычислять маршруты через объединенную сеть.

    Формат пакета

    IS-IS использует три базовых формата пакета:

  • IS-IS hello packets - приветственные пакеты IS-IS
  • Link state packets (LSPs) - пакеты состояния канала
  • Sequence numbers packets (SNPs) - пакеты номеров последовательностей
  • Каждый из этих трех пакетов IS-IS имеет сложный формат с тремя различными логическими частями. Первой частью является 8-байтовый фиксированный заголовок, общий для всех трех типов пакетов. Второй частью является специфичная для данного типа пакета часть с фиксированным форматом. Третья логическая часть также является специфичной для типа пакета, но имеет переменную длину. Логический формат пакетов IS-IS представлен на Рис. 5.13.

    (рис 5.13) IS-IS Logical Packet Format

    Каждый из трех типов пакета имеет общий заголовок, как это показано на Рис. 5.14.

    (рис 5.14) Is-Is Common Header Format

    Первым полем в общем заголовке IS-IS является идентификатор протокола ( protocol identifier ), который идентифицирует протокол IS-IS. Это поле содержит константу (131).

    Следующим полем общего заголовка является поле длины заголовка ( header length ). Это поле содержит фиксированную длину заголовка. Эта длина всегда равняется 8 байтам, но она включена таким образом, чтобы пакеты IS-IS незначительно отличались от пакетов CLNP.

    За полем длины следует поле версии ( version ), которое равняется единице в текущей спецификации IS-IS.

    За полем версии идет поле длины ID, которое определяет размеры части ID (идентификатора) NSAP, если eго значение лежит в пределах от 1 до 8 (включительно). Если поле содержит нуль, то часть ID равняется 6 байтам. Если поле содержит 255 (одни единицы), то часть ID равна 0 байтов.

    Следующим полем является поле типа пакета ( packet type ), которое определяет тип пакета IS-IS (hello, LSP или SNP).

    За полем типа пакета повторно следует поле версии.

    За вторым полем версии идет поле резерва (reserved), которое равно нулю и которое игнорируется получателем.

    Последним полем общего заголовка является поле максимума адресов области. Это поле определяет число адресов, разрешeнных для этой области.

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

    Интегрированный IS-IS

    Интегрированный IS-IS является одной из версий IS-IS, которая использует один алгоритм маршрутизации для поддержки нескольких протоколов сетевого уровня, а не только одного протокола CLNP. Интегрированный IS-IS иногда называют Двойственным IS-IS ( Dual IS-IS ), по имени одной из версий, предназначенных для сетей IP и CLNP.

    Пакеты IS-IS дополнены несколькими полями, что позволяет IS-IS поддерживать дополнительные сетевые уровни. Эти поля сообщают роутерам следующую информацию:

  • Досягаемость сетевых адресов из других комплектов протоколов
  • Какие протоколы поддерживаются и какими роутерами
  • Другую информацию, необходимую для какого-нибудь конкретного комплекта протоколов
  • Интегрированный IS-IS представляет один из двух способов поддержки в роутере нескольких протоколов сетевого уровня; другим способом является применение метода "корабли ночью" ( ships in the night ). Этот метод пропагандирует использование совершенно отдельного и отличного от других протокола маршрутизации для каждого сетевого протокола сети так, чтобы несколько протоколов маршрутизации фактически существовали независимо друг от друга (с разными типами маршрутной информации, проходящей подобно кораблям ночью). Возможность направлять по определенным маршрутам несколько протоколов сетевого уровня с помощью таблиц, рассчитанных одним протоколом маршрутизации, экономит ресурсы роутеров.

    Протокол междоменной маршрутизации (IDRP)

    IDRP является протоколом OSI, предназначенным для перемещения информации между доменами маршрутизации. Он предназначен для бесшовной работы с CLNP, ES-IS и IS-IS. IDRP базируется на Протоколе граничных роутеров (BGP), который является протоколом междоменной маршрутизации, впервые появившемся в сообществе IP (смотри пункт "BGP").

    IDRP вводит несколько новых терминов, в том числе следующие:

  • Border intermediate system (BIS)

    Граничная промежуточная система. Это IS, участвующая в междоменной маршрутизации. Для этого она использует IDRP.

  • Routing domain (RD)

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

  • Routing domain identifier (RDI)

    Идентификатор домена маршрутизации. Уникальный идентификатор домена маршрутизации (RD).

  • Routing information base (RIB)

    Информационная база маршрутизации. Это база данных маршрутизации, используемая IDRP. Каждая BIS строит свою RIB из информации, полученной от систем данного RD и из других BIS. Любая RIB содержит набор маршрутов, выбранных для использования какой-нибудь конкретной BIS.

  • Confederation

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

  • Маршрут IDRP представляет собой последовательность RDI. Некоторые из этих RDI могут быть конфедерациями. При конфигурации каждой BIS она знает о RD и конфедерациях, к которым она принадлежит, а также узнает о других BIS, RD и конфедерациях из информации, которой она обменивается с каждым соседом. Как и для маршрутизации с вектором расстояния, маршруты в какой-нибудь конкретный пункт назначения накапливаются вне данного пункта назначения. Только маршруты, которые удовлетворяют требованиям местной политики какой-нибудь BIS и были выбраны для использования, будут переданы в другие BIS. Пересчет маршрутов носит частичный характер и имеет место при наличии одного из следующих трех событий: получена инкрементная корректировка маршрутизации с новыми маршрутами, отказывает какая-нибудь соседняя BIS или появляется новая соседняя BIS.

    В число характеристик IDRP входят следующие:

  • Поддержка CLNP QOS
  • Устранение петель путем отслеживания всех RD, пересекаемых роутером
  • Сокращение объема маршрутной информации и ее обработки путем использования конфедераций, компрессии информации путей RD и других средств
  • Обеспечение надежности путем использования встроенных надежных средств транспортировки
  • Обеспечение защиты данных путем использования криптографической сигнатуры для каждого пакета
  • Наличие узлов обслуживания маршрута
  • Регенерирующие пакеты RIB
  • Вернуться к учебному плану