МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ СВЯЗИ И ИНФОРМАТИКИ
Курсовая работа
по дисциплине «Локальные Вычислительные Сети»
на тему
«Внутренние протоколы маршрутизации RIPи OSPF»
Москва 2009
Внутренний протоколмаршрутизации RIP (Routing Information Protocol) Назначение
Протокол маршрутизации RIP (Routing Information Protocol)относится к алгоритмам класса «distance vector» (алгоритм Белмана-Форда). Этоталгоритм является одним из первых алгоритмов маршрутизации, которые былииспользованы в информационно – вычислительных сетях вообще и в сети Internet –в частности. Однако он до сих пор чрезвычайно распространен в вычислительныхсетях. Помимо версии RIP для сетей TCP/IP, существует также версия RIP длясетей IPX/SPX компании Novell.
Этот протокол маршрутизации предназначен для сравнительнонебольших и относительно однородных сетей. Протокол разработан в университетеКалифорнии (Беркли), базируется на разработках фирмы Ксерокс и реализует те жепринципы, что и программа маршрутизации routed, используемая в ОC UNIX (4BSD).Маршрут здесь характеризуется вектором расстояния до места назначения.Предполагается, что каждый маршрутизатор является отправной точкой несколькихмаршрутов до сетей, с которыми он связан. С 1988 года RIP был повсеместнопринят производителями персональных компьютеров для использования в их изделияхпередачи данных по сети.
Решение, найденное по алгоритму Белмана-Форда, является неоптимальным, а близким к оптимальному. Преимуществом протокола RIP является его вычислительнаяпростота и простота конфигурирования, а недостатками – увеличениетрафика при периодической рассылке широковещательных пакетов и неоптимальностьнайденного маршрута.
В современных сетевых средах RIP – не самое лучшее решение длявыбора в качестве протокола маршрутизации, так как его возможности уступаютболее современным протоколам, таким как EIGRP, OSPF. Присутствует ограничениена 15 хопов, которое не дает применять его в больших сетях.
Архитектура
RIP работает на основе UDP‑протокола и использует порт 520.На каждом хосте, использующем RIP, должно быть установлено программноеобеспечение, обрабатывающее RIP‑пакеты. Настроить работу протокола намаршрутизаторе можно с помощью того же Hyper Terminal с рабочей станции,имеющей на это право и доступ. Настройки производится с помощью команд всоответствии с документацией к маршрутизатору. Пример корректной работы протокола
/>
(на рисунке: маршрутизаторы 1-6, сегменты сетей A..F; приведена изначальнаяинформация в маршрутизаторе 2 и информация в нем после двух итераций обменамаршрутными пакетами RIP; после определенного числа итераций маршрутизаторбудет знать о расстояниях до всех сегментов, а также альтернативные маршруты)
Пусть сетью назначения является сегмент D. При необходимостиотправить пакет в сеть D маршрутизатор просматривает свою базу данных маршрутови выбирает порт, имеющий наименьшее расстояния до сети назначения (в данномслучае порт, связывающий его с маршрутизатором 3).
Для адаптации к изменению состояния связей и оборудования с каждойзаписью таблицы маршрутизации связан таймер. Если за время тайм-аута не придетновое сообщение, подтверждающее этот маршрут, то он удаляется из маршрутнойтаблицы. Пример неустойчивой работы по протоколу (отслеживание изменений втопологии)
/>
(на рисунке: маршрутизаторы M1..M3; при работоспособномсостоянии в таблице маршрутов каждого маршрутизатора есть запись о сети 1 и осоответствующем расстоянии до нее; далее рассмотрим случай обрыва линии связимежду сетью 1 и маршрутизатором M1).
При обрыве связи с сетью 1 маршрутизатор М1 отмечает, чторасстояние до этой сети приняло значение 16. Однако получив через некотороевремя от маршрутизатора М2 маршрутное сообщение о том, что от него до сети 1расстояние составляет 2 хопа, маршрутизатор М1 наращивает это расстояние на 1 иотмечает, что сеть 1 достижима через маршрутизатор 2. В результате пакет,предназначенный для сети 1, будет циркулировать между маршрутизаторами М1 и М2до тех пор, пока не истечет время хранения записи о сети 1 в маршрутизаторе 2,и он не передаст эту информацию маршрутизатору М1.
Для исключения подобных ситуаций маршрутная информация обизвестной маршрутизатору сети не передается тому маршрутизатору, от которогоона пришла.
Существуют и другие, более сложные случаи нестабильного поведениясетей, использующих протокол RIP, при изменениях в состоянии связей илимаршрутизаторов сети./>/>Пример неустойчивой работы по протоколу (возникновение циклическихмаршрутов – процедура split horizon).
В исходном состоянии все каналы передачи данных функционируютнормально и, поэтому, маршруты из узлов D и C к сети N лежат черезмаршрутизатор B и имеют метрику 2.
Предположим, что в некоторый момент времени канал, которыйсвязывает маршрутизаторы A и В, выходит из строя. Маршрутизатор B в этом случаеперестает принимать update для сети N от маршрутизатора A и по истеченииустановленного интервала времени маршрутизатор B определяет сеть N в качественедостижимой и исключает её из своих массивов update.
Однако из-за того, что эти массивы передаются в сети асинхронновполне возможно, что вскоре после этого маршрутизатор C получит массивов updateот маршрутизатора D, который пока ещё считает, что маршрут из B до сети Nсуществует. Получив такую информацию, маршрутизатор C включит в свою таблицумаршрутизации новый маршрут до сети N – через маршрутизатор D с метрикой3. После того, как истечет время существования исходного маршрута в маршрутизатореD, эта ситуация повторится совершенно аналогичным образом.
В результате маршрутизатор D скорректирует свою таблицумаршрутизации и внесет в неё маршрут до сети N через шлюз C с метрикой 4.Подобная ситуация будет таким образом возобновляться снова и снова с периодом,который соответствует времени существования маршрута (3 T Update). Этот цикл,который называется «счет до бесконечности», будет продолжаться до тех пор, покаметрика циклического маршрута не достигнет значения 15, после чего онразорвется автоматически.
Правило split horizon (предотвращение возникновения циклическихмаршрутов)
Алгоритм split horizon является неотъемлемой частью протоколамаршрутизации RIP и предназначен для предотвращения появления циклическихмаршрутов в сети. Для предотвращения возникновения подобных ситуаций достаточноиспользовать следующее правило:
Маршрутизатор не должен направлять update для маршрутов в адрес ихисточника.
За этим правилом закрепилось название split horizon –расщепленный горизонт. Маршрутизатор, используя данное правило, разделяет своимаршруты на столько групп, сколько у него есть активных интерфейсов. Прииспользовании правила split horizon, обновления для маршрутов, которые былиполучены через некоторый интерфейс, не должны передаваться через этот жеинтерфейс.
Правило split horizon with poisoned reverse
Правило split horizon может быть использовано снезначительной модификацией. Правило split horizon with poisoned reverse«расщепленный горизонт с отравленным обратным путем» – разрешает передачу updateдля потенциально опасных, с точки зрения возникновения циклов, маршрутов. Вданном случае для таких маршрутов устанавливается метрика, котораясоответствует бесконечности – 15. Пример неустойчивой работы по протоколу (процедура triggered update – управляемые модификации)
/>
Использование процедуры Split horizon позволяет избежать появлениязацикленного маршрута у двух шлюзов. Однако возможно возникновение ситуации,когда в циклическом маршруте участвуют три шлюза.
На рисунке приведен пример возникновения подобной ситуации. Вприведенной сети при выходе из строя канала, который связывает узел А с сетьюN, маршрутизатор B может принять от маршрутизатора С несуществующий маршрут досети N, который якобы проходит через узел C. К тому моменту, когдамаршрутизатор C определит, что он не имеет собственного маршрута до сети N,маршрутизатор B уже успеет передать информацию о наличии у него маршрута доэтой сети марщрутизатору D.
Использование процедуры Split horizon не сможет предотвратитьпоявление такой петли, поскольку сообщения о маршруте поступают не от тогомаршрутизатора, которому передаются сообщения update. Следовательно, эта петлябудет разорвана только тогда, когда метрика циклического маршрута достигаетбесконечности. Для того чтобы уменьшить время переходных процессов в сети,можно использовать процедуру управляемых модификаций (triggeredupdate).
Использование данной процедуры предписывает необходимостьформирования мгновенных модификаций в том случае, когда происходитизменение состояния сети. Благодаря тому, что управляемые модификациипередаются по сети с высокой скоростью, использование этого механизма можетпредотвратить появление циклических маршрутов. Однако, поскольку процесспередачи управляемых модификаций имеет вполне определенную конченую скорость,сохраняется возможность, что в процессе передачи регулярного update циклическиймаршрут все-таки возникнет.Пример неустойчивой работы по протоколу
(счетчик времени timeout – timer)
Возможно возникновение ситуации, когда периодическое обновлениебудет просто потеряно в сети из-за возникновения краткосрочной перегрузки иливременной неработоспособности канала передачи данных. Для того чтобы в этойситуации маршруты не были ошибочно удалены из таблицы маршрутизации, каждомумаршруту ставится в соответствие специальный счетчик времени, которыйназывается timeout – timer. В тот момент времени, когда данный маршрутвключается в таблицу маршрутизации, или когда для него приходит очередноеобновление значение счетчика timeout – timer устанавливается равным Ttimeoutmax. = 180 секунд и этот счетчик начинает обратный отсчет времени. В томслучае, если счетчик timeout – timer какого либо маршрута достигнет значения 0,этот маршрут должен быть исключен из числа активных маршрутов.
Протокол RIP не обеспечивает решение всех возможных проблем,которые могут возникнуть в процессе определения маршрута в сетях передачиданных. Как уже упоминалось выше, в первую очередь он предназначен дляиспользования в качестве IGP в гомогенных сетях небольшого размера. Кроме того,использование данного протокола приводит к появлению специфических ограниченийна параметры сети, в которой он может быть использован.
Ограничениемаксимальной длины маршрута
Использование протокола RIP целесообразно в сетях, самыйдлинный путь в которых составляет не более 15 переходов (hops). Данноеограничение определяется способом вычисления маршрута, который принят в данномалгоритме и не может быть преодолено.
Зацикливаниемаршрутов
Использование протокола RIP может в ряде случаев привести кпоявлению «зацикленных маршрутов». Для предотвращения возникновения подобныхситуаций должны быть использованы специальные меры (poison reverse, splithorizon).
Форматметрики
Для сравнения маршрутов протокол RIP использует достаточно простую«метрику» – число переходов. Однако использование данного критерия в целом рядеслучаев не может обеспечить оптимальный выбор маршрута.Спецификации
· RFC‑1388. Протокол RIP‑2 (1993 год) является новой версией RIP, которая в дополнение кшироковещательному режиму поддерживает мультикастинг; позволяет работать смасками субсетей.
· RFC‑1582. Расширение к RIP по требованиям к хостам к поддержке определённыхпараметров.
· RFC‑1721. Анализ протокола RIP версии 2.
· RFC‑1722 (STD0057). Протокол RIP версии 2, предписание кприменению.
· RFC‑1724. Протокол RIP версии 2, расширение по MIB (база управляющейинформации – management information base).
· RFC‑2080. Спецификации протокола RIP для IPv6.
· RFC‑2082. Протокол RIP версии 2, проблемы аутентификации сиспользованием MD5 (Message Digest 5) – 128‑битный алгоритмомхеширования, разработанный в 1991году. MD5 предназначен для создания«отпечатков» или «дайджестов» сообщений произвольной длины.
· RFC‑2092. Спецификация для автоматически запускающегося протокола RIP (triggered RIP).
· RFC‑2453 (STD0056). Общее описание протокола второй версии.Реализация протокола.
Существуют две версии протокола RIP: RIP‑1 и RIP‑2.Версия 2 имеет некоторые усовершенствования, как то: возможность маршрутизациисетей по модели CIDR (кроме адреса сети передается и маска), поддержкамультикастинга, возможность использования аутентификации RIP‑сообщений идр.Типы и формат сообщений.
В протоколе RIP имеются два типа сообщений, которыми обмениваютсямаршрутизаторы:
· ответ(response) – рассылка вектора расстояний;
· запрос(request) – маршрутизатор (например, после своей загрузки) запрашивает усоседей их маршрутные таблицы или данные об определенном маршруте.
Формат сообщений обоих типов одинаков:
/>
Поля, помеченные знаком *, относятся к версии 2; в сообщениях RIP‑1эти поля должны быть обнулены.
Сообщение RIP состоит из 32‑битного слова, определяющего типсообщения и версию протокола (плюс «Routing Domain» в версии 2), за которымследует набор из одного и более элементов вектора расстояний. Каждый элементвектора расстояний занимает 5 слов (20 октетов) (от начала поля «Address FamilyIdentifier» до конца поля «Metric» включительно). Максимальное число элементоввектора – 25, если вектор длиннее, он может разбиваться на несколько сообщений.
· Поле «Command»определяет тип сообщения: 1 – request, 2 – response; поле «Version» – версиюпротокола (1 или 2).
· Поле «AddressFamily Identifier» содержит значение 2, которое обозначает семействоадресов IP; другие значения не определены. Поля «IP address» и «Metric»содержат адрес сети и расстояние до нее.
Дополнительно к полям версии 1 во второй версии определеныследующие.
· «RoutingDomain» –идентификатор RIP‑системы, к которой принадлежит данное сообщение; часто –номер автономной системы. Используется, когда к одному физическому каналуподключены маршрутизаторы из нескольких автономных систем, в каждой автономнойсистеме поддерживается своя таблица маршрутов. Поскольку сообщения RIPрассылаются всем маршрутизаторам, подключенным к сети, требуется различатьсообщения, относящиеся к «своей» и «чужой» автономным системам.
· «RouteTag» – используетсякак метка для внешних маршрутов при работе с протоколами внешней маршрутизации.
· «SubnetMask» – маскасети, адрес которой содержится в поле IP address. RIP‑1 работает только склассовой моделью адресов.
· «NextHop» – адресследующего маршрутизатора для данного маршрута, если он отличается от адресамаршрутизатора, пославшего данное сообщение. Это поле используется, когда кодному физическому каналу подключены маршрутизаторы из нескольких автономныхсистем и, следовательно, некоторые маршрутизаторы «чужой» автономной системыфизически могут быть достигнуты напрямую, минуя пограничный (логическиподключенный к обеим автономным системам) маршрутизатор. Об этом пограничныймаршрутизатор и объявляет в поле «Next Hop».
Адрес 0.0.0.0 в сообщении типа «ответ» обозначает маршрут, ведущийза пределы RIP‑системы. В сообщении типа «запрос» этот адрес означаетзапрос информации о всех маршрутах (полного вектора расстояний). Указание всообщении типа «запрос» адреса конкретной сети означает запрос элемента векторарасстояний только для этой сети – такой режим используется обычно только вотладочных целях.
Аутентификация может производиться протоколом RIP‑2 дляобработки только тех сообщений, которые содержат правильный аутентификационныйкод. При работе в таком режиме первый 20‑октетный элемент векторарасстояний, следующий непосредственно за первым 32‑битным словом RIP‑сообщения,является сегментом аутентификации. Он определяется по значению поля «AddressFamily Identifier», равному в этом случае 0xFFFF. Следующие 2 октета этогоэлемента определяют тип аутентификации, а остальные 16 октетов содержатаутентификационный код. Таким образом, в RIP‑сообщении с аутентификациейможет передаваться не 25, а только 24 элемента вектора расстояний, которыеследуют за сегментом аутентификации. К настоящему моменту надежного алгоритмааутентификации для протокола RIP не разработано; стандартом определена толькоаутентификация с помощью обычного пароля (значение поля «Тип» равно 2).Работа протокола RIP
Для каждой записи в таблице маршрутов существует время жизни,контролируемое таймером. Если для любой конкретной сети, внесенной в таблицумаршрутов, в течение 180 с не получен вектор расстояний, подтверждающий илиустанавливающий новое расстояние до данной сети, то сеть будет отмечена какнедостижимая (расстояние равно бесконечности). Через определенное время модуль RIP производит «сборкумусора» – удаляет из таблицы маршрутов все сети, расстояние до которыхбесконечно.
При получении сообщения типа «ответ» для каждого содержащегося внем элемента вектора расстояний модуль RIP выполняет следующиедействия:
· проверяеткорректность адреса сети и маски, указанных в сообщении;
· проверяет,не превышает ли метрика (расстояние до сети) бесконечности;
· некорректныйэлемент игнорируется;
· еслиметрика меньше бесконечности, она увеличивается на 1;
· производитсяпоиск сети, указанной в рассматриваемом элементе вектора расстояний, в таблицемаршрутов;
· еслизапись о такой сети в таблице маршрутов отсутствует и метрика в полученномэлементе вектора меньше бесконечности, сеть вносится в таблицу маршрутов суказанной метрикой; в поле «Следующий маршрутизатор» заносится адресмаршрутизатора, приславшего сообщение; запускается таймер для этой записи втаблице;
· еслиискомая запись присутствует в таблице с метрикой больше, чем объявленная вполученном векторе, в таблицу вносятся новые метрика и, соответственно, адресследующего маршрутизатора; таймер для этой записи перезапускается;
· еслиискомая запись присутствует в таблице и отправителем полученного вектора былмаршрутизатор, указанный в поле «Следующий маршрутизатор» этой записи, тотаймер для этой записи перезапускается; более того, если при этом метрика втаблице отличается от метрики в полученном векторе расстояний, в таблицувносится значение метрики из полученного вектора;
· вовсех прочих случаях рассматриваемый элемент вектора расстояний игнорируется.
Сообщения типа «ответ» рассылаются модулем RIP каждые 30 сек.по широковещательному или мультикастинговому (только RIP‑2) адресу;рассылка «ответа» может происходить также вне графика, если маршрутная таблицабыла изменена (triggered response). Стандарт требует, чтобы triggered responseрассылался не немедленно после изменения таблицы маршрутов, а через случайныйинтервал длительностью от 1 до 5 с. Эта мера позволяет несколько снизитьнагрузку на сеть.
В каждую из сетей, подключенных к маршрутизатору, рассылается свойсобственный вектор расстояний, построенный с учетом дополнения 1 (1А),сформулированного выше в п. 4.2.1. Там, где это возможно, адреса сетейагрегируются (обобщаются), то есть несколько подсетей с соседними адресамиобъединяются под одним, более общим адресом с соответствующим изменением маски.
В случае triggered response посылается информация только о техсетях, записи о которых были изменены.
Информация о сетях с бесконечной метрикой посылается только в томслучае, если она была недавно изменена.
При получении сообщения типа «запрос» с адресом 0.0.0.0маршрутизатор рассылает в соответствующую сеть обычное сообщение типа ответ.При получении запроса с любым другим значением в поле (полях) «IP Address» посылаетсяответ, содержащий информацию только о сетях, которые указаны. Такой ответпосылается на адрес запросившего маршрутизатора (не широковещательно).Настройка протокола RIP(логи)
%May 12 16:08:13:801 2009 Quidway SHELL/5/LOGIN: Console loginfrom con0
vrbd
Routing Platform Software
Version AR28–10 8040V300R003B03D040 (COMWAREV300R002B60D021),RELEASE SOFTWARE
Compiled Apr 04 2006 14:35:29 by Houming
display rip
RIP is running
public net
Checkzero is on Default cost: 1
Summary is on Preference: 100
Validate-source-address is on
Traffic-share-across-interface is off
Period update timer: 30
Timeout timer: 180
Garbage-collection timer: 120
No peer router
Network:
192.168.1.0
su
User privilege level is 3, and only those commands can beused
whose level is equal or less than this.
Privilege note: 0‑VISIT, 1‑MONITOR, 2‑SYSTEM,3‑MANAGE
system-view
System View: return to User View with Ctrl+Z.
%May 12 16:24:58:322 2009 Quidway PHY/2/PHY: Ethernet0/0:change status to up
%May 12 16:24:58:322 2009 Quidway IFNET/5/UPDOWN: Lineprotocol on the interface
Ethernet0/0 is UP
[Quidway] interface Ethernet 0/0
[Quidway-Ethernet0/0] display ip interface
Aux0 current state: Administratively DOWN
Line protocol current state:DOWN
Internet Address is 172.16.0.2/24
Broadcast address: 172.16.0.255
The Maximum Transmit Unit: 1500 bytes
ip fast-forwarding incoming packets state is Disabled
ip fast-forwarding outgoing packets state is Disabled
ip multicast-fast-forwarding packets state is Disabled
IP packets input number: 0, bytes: 0, multicasts: 0
IP packets output number: 0, bytes: 0, multicasts: 0
TTL invalid packet number: 0
ICMP packet input number: 0
Echo reply: 0
Unreachable: 0
Source quench: 0
Routing redirect: 0
Echo request: 0
Router advert: 0
Router solicit: 0
Time exceed: 0
IP header bad: 0
Timestamp request: 0
Timestamp reply: 0
Information request: 0
Information reply: 0
Netmask request: 0
Netmask reply: 0
Unknown type: 0
Ethernet0/0 current state:UP
Line protocol current state:UP
Internet Address is 192.168.1.5/24
Broadcast address: 192.168.1.255
The Maximum Transmit Unit: 1500 bytes
ip fast-forwarding incoming packets state is Enabled
ip fast-forwarding outgoing packets state is Enabled
ip multicast-fast-forwarding packets state is Disabled
IP packets input number: 15, bytes: 4920, multicasts: 0
IP packets output number: 0, bytes: 0, multicasts: 0
ARP packets input number: 35
Request packet: 35
Reply packet: 0
Unknown packet: 0
TTL invalid packet number: 0
ICMP packet input number: 0
Echo reply: 0
Unreachable: 0
Source quench: 0
Routing redirect: 0
Echo request: 0
Router advert: 0
Router solicit: 0
Time exceed: 0
IP header bad: 0
Timestamp request: 0
Timestamp reply: 0
Information request: 0
Information reply: 0
Netmask request: 0
Netmask reply: 0
Unknown type: 0
DHCP packet
[Quidway] ping 192.168.1.10
PING 192.168.1.10: 56 data bytes, press CTRL_C to break
Reply from 192.168.1.10: bytes=56 Sequence=1 ttl=64 time=2 ms
Reply from 192.168.1.10: bytes=56 Sequence=2 ttl=64 time=1 ms
Reply from 192.168.1.10: bytes=56 Sequence=3 ttl=64 time=2 ms
Reply from 192.168.1.10: bytes=56 Sequence=4 ttl=64 time=1 ms
Reply from 192.168.1.10: bytes=56 Sequence=5 ttl=64 time=2 ms
– 192.168.1.10 ping statistics –
5 packet(s) transmitted
5 packet(s) received
0.00% packet loss
round-trip min/avg/max = 1/1/2 ms
deal mode: global
[Quidway] rip
[Quidway-rip] display rip
RIP is running
public net
Checkzero is on Default cost: 1
Summary is on Preference: 100
Validate-source-address is on
Traffic-share-across-interface is off
Period update timer: 30
Timeout timer: 180
Garbage-collection timer: 120
No peer router
[Quidway-rip] network 192.168.0.0
[Quidway-rip] display rip
RIP is running
public net
Checkzero is on Default cost: 1
Summary is on Preference: 100
Validate-source-address is on
Traffic-share-across-interface is off
Period update timer: 30
Timeout timer: 180
Garbage-collection timer: 120
No peer router
Network:
192.168.0.0
[Quidway-rip] peer 192.168.1.10
[Quidway-rip] display rip
RIP is running
public net
Checkzero is on Default cost: 1
Summary is on Preference: 100
Validate-source-address is on
Traffic-share-across-interface is off
Period update timer: 30
Timeout timer: 180
Garbage-collection timer: 120
Peer:
192.168.1.10
Network:
192.168.0.0
[Quidway-rip] undo peer 192.168.1.10
[Quidway-rip] display rip
RIP is running
public net
Checkzero is on Default cost: 1
Summary is on Preference: 100
Validate-source-address is on
Traffic-share-across-interface is off
Period update timer: 30
Timeout timer: 180
Garbage-collection timer: 120
No peer router
Network:
192.168.0.0
[Quidway-rip]
Quidway-rip] filter-policy gateway 192.168.1.10 import
The gateway does not exist, but the configuration is saved
[Quidway-rip] display rip
RIP is running
public net
Checkzero is on Default cost: 1
Checkzero is on Default cost: 1
Validate-source-address is on
Traffic-share-across-interface is off
Period update timer: 30
Timeout timer: 180
Garbage-collection timer: 120
No peer router
Network:
192.168.0.0
filter-policy gateway 192.168.1.10 import
[Quidway-rip] undo filter-policy gateway 192.168.1.10 import
[Quidway-rip] display rip
RIP is running
public net
Checkzero is on Default cost: 1
Summary is on Preference: 100
Validate-source-address is on
Traffic-share-across-interface is off
Period update timer: 30
Timeout timer: 180
Garbage-collection timer: 120
No peer router
Network:
192.168.0.0
[Quidway-rip] display rip
RIP is running
public net
Checkzero is on Default cost: 1
Host-route is off
Summary is on Preference: 100
Validate-source-address is on
Traffic-share-across-interface is off
Period update timer: 30
Timeout timer: 180
Garbage-collection timer: 120
No peer router
Network:
192.168.0.0
[Quidway-rip] host-route
[Quidway-rip] undo summary
[Quidway-rip] display rip
RIP is running
public net
Checkzero is on Default cost: 1
Summary is off Preference: 100
Validate-source-address is on
Traffic-share-across-interface is off
Period update timer: 30
Timeout timer: 180
Garbage-collection timer: 120
No peer router
Network:
192.168.0.0
[Quidway-rip] summary
[Quidway-rip] preference 150
[Quidway-rip] display rip
RIP is running
public net
Checkzero is on Default cost: 1
Summary is on Preference: 150
Validate-source-address is on
Traffic-share-across-interface is off
Period update timer: 30
Timeout timer: 180
Garbage-collection timer: 120
No peer router
Network:
192.168.0.0
[Quidway-rip] preference 100
[Quidway-rip] timers timeout 200
[Quidway-rip] display rip
RIP is running
public net
Checkzero is on Default cost: 1
Summary is on Preference: 100
Validate-source-address is on
Traffic-share-across-interface is off
Period update timer: 30
Timeout timer: 200
Garbage-collection timer: 120
No peer router
Network:
192.168.0.0
[Quidway-rip] timers timeout 180
[Quidway-rip] timers update 1005
[Quidway-rip] display rip
RIP is running
public net
Checkzero is on Default cost: 1
Summary is on Preference: 100
Validate-source-address is on
Traffic-share-across-interface is off
Period update timer: 1005
Timeout timer: 180
Garbage-collection timer: 4020
No peer router
Network:
192.168.0.0
[Quidway-rip] timers update 30
[Quidway-rip] display rip
RIP is running
public net
Checkzero is off Default cost: 1
Summary is on Preference: 100
Validate-source-address is on
Traffic-share-across-interface is off
Period update timer: 30
Timeout timer: 180
Garbage-collection timer: 120
No peer router
Network:
192.168.0.0
Внутренний протокол маршрутизации OSPF (OpenShortest Pass First) Назначение.
Протокол OSPF (Open Shortest Pass First, алгоритмы предложеныДейкстрой) является альтернативой RIP в качестве внутреннего протоколамаршрутизации. OSPF представляет собой протокол состояния маршрута (в качествеметрики используется – коэффициент качества обслуживания). Каждый маршрутизаторобладает полной информацией о состоянии всех интерфейсов всех маршрутизаторов(переключателей) автономной системы. Он был изобретён для избавления сетей,использующих RIP от таких напастей, как:
1. Циклическиемаршруты. Так как в протоколе нет механизмов выявления замкнутых маршрутов,необходимо либо слепо верить партнерам, либо принимать меры для блокировкитакой возможности.
2. Дляподавления нестабильностей RIP должен использовать малое значение максимальновозможного числа шагов (
3. Медленноераспространение маршрутной информации по сети создает проблемы при динамичномизменении маршрутной ситуации (система не поспевает за изменениями). Малоепредельное значение метрики улучшает сходимость, но не устраняет проблему.
Протокол OSPF представляет собой классический протоколмаршрутизации класса Link–State, который обеспечивает:
· отсутствиеограничений на размер сети
· поддержкувнеклассовых сетей
· передачуобновлений маршрутов с использованием адресов типа multicast
· достаточнобольшую скорость установления маршрута
· использованиепроцедуры authentication при передаче и получении обновлений маршрутовАрхитектура
OSPF является иерархическим протоколом маршрутизации с объявлениемсостояния о канале соединения (link-state). Он был спроектирован как протоколработы внутри сетевой области – AS (Autonomous System), которая представляетсобой группу маршрутизаторов и сетей, объединенных по иерархическому принципу инаходящихся под единым управлением и совместно использующих общую стратегиюмаршрутизации. В качестве транспортного протокола для маршрутизации внутри ASOSPF использует IP‑протокол.
AS представляет собой набор сетей, которые находятся под единымуправлением и совместно используют общую стратегию маршрутизации. OSPF являетсяпротоколом маршрутизации внутри AS, хотя он также может принимать и отправлятьпакеты в другие AS.
Настройка на маршрутизаторах производится аналогичным образом какпри настройке RIP.Иерархическая маршрутизация
Использование иерархической маршрутизации позволяет существенноповысить эффективность использования каналов передачи данных засчет сокращения доли передаваемого по ним служебного трафика.
/>
Информационный обмен, который осуществляют маршрутизаторы дляопределения маршрута передачи данных внутри области, показан на рисункезелеными стрелками. Определение маршрута и информационный обмен между областямив данном случае производится через специальную центральную область – AREA 0.
Использование такой схемы логического построения сети позволяетсущественно уменьшить долю неинформативного трафика, который передается поканалам передачи данных между областями. В частности в этом случае по каналам,используемых для передачи данных между областями, (красный цвет) не будетпередаваться информация о сетях, которые имеют чисто локальное значение.
Распределение нагрузки между параллельными каналами (Loadbalancing)
При использовании протокола маршрутизации OSPF допускаетсясуществование нескольких маршрутов в направлении некоторого узла сети. В томслучае, если эти маршруты обеспечивают одинаковое качество передачи данных,информационный поток в адрес данного узла может быть направлен по всем этимканалам одновременно, что обеспечит существенное увеличение скорости передачиданных. Динамическое перераспределение трафика между параллельными каналами,которое выполняется пропорционально степени загруженности этих каналов, называетсяLoad balancing.Иерархия маршрутизации
В отличие от RIP, OSPF может работать в пределах некоторойиерархической системы. Самым крупным объектом в этой иерархии являетсяавтономная система (Autonomous System – AS) AS является набором сетей,которые находятся под единым управлением и совместно используют общую стратегиюмаршрутизации. OSPF является протоколом маршрутизации внутри AS, хотя он испособен принимать маршруты из других AS и отправлять маршруты в другие AS.
Любая AS может быть разделена на ряд областей (area).Область – это группа смежных сетей и подключенных к ним хостов. Роутеры,имеющие несколько интерфейсов, могут участвовать в нескольких областях. Такиероутеры, которые называются роутерами границы областей (area borderrouters), поддерживают отдельные топологические базы данных для каждойобласти.
Топологическая база (topological database) данныхфактически представляет собой общую картину сети по отношению к роутерам.Топологическая база данных содержит набор LSA, полученных от всех роутеров,находящихся в одной области. Т.к. роутеры одной области коллективно пользуютсяодной и той же информацией, они имеют идентичные топологические базы данных.
Термин «домен» (domain) исользуется для описаниячасти сети, в которой все роутери имеют идентичную топологическую базу данных.Термин «домен» часто используется вместо AS.
Топология области является невидимой для объектов, находящихся внеэтой области. Путем хранения топологий областей отдельно, OSPF добивается меньшеготрафика маршрутизации, чем трафик для случая, когда AS не разделена на области.
Разделение на области приводит к образованию двух различных типовмаршрутизации OSPF, которые зависят от того, находятся ли источник и пунктназначения в одной и той же или разных областях.
Маршрутизация внутри области имеет место в том случае, когда источники пункт назначения находятся в одной области.
Маршрутизация между областями – когда они находятся вразных областях.
Стержневая часть OSPF (backbone) отвечает за распределениемаршрутной информации между областями. Она включает в себя все роутеры границыобласти, сети, которые не принадлежат полностью какого-либо из областей, иподключенные к ним роутеры. На следующем рисунке представлен пример объединеннойсети с несколькими областями.
/>
На этом рисунке роутеры 4, 5, 6, 10, 11 и 12 образуют стержень.Если хост Н1 Области 3 захочет отправить пакет хосту Н2 Области 2, то пакетотправляется в роутер 13, который продвигает его в роутер 12, который в своюочередь отправляет его в роутер 11. Роутер 11 продвигает пакет вдоль стержня кроутеру 10 границы области, который отправляет пакет через два внутреннихроутера этой области (роутеры 9 и 7) до тех пор, пока он не будет продвинут кхосту Н2.
Сам стержень представляет собой одну из областей OSPF, поэтому всестержневые роутеры используют те же процедуры и алгоритмы поддержаниямаршрутной информации в пределах стержневой области, которые используются любымдругим роутером. Топология стержневой части невидима для всех внутреннихроутеров точно также, как топологии отдельных областей невидимы для стержневойчасти.
Область может быть определена таким образом, что стержневая частьне будет смежной с ней. В этом случае связность стержневой части должна бытьвосстановлена через виртуальные соединения. Виртуальные соединения формируютсямежду любыми роутерами стержневой области, которые совместно используюткакую-либо связь с любой из нестержневых областей; они функционируют так, какесли бы они были непосредственными связями.
Граничные роутеры AS, использующие OSPF, узнают о внешних роутерахчерез протоколы внешних роутеров (EGPs), таких, как Exterior GatewayProtocol (EGP) или Border Gateway Protocol (BGP), или черезинформацию о конфигурации.Спецификации.
· RFC‑1245. Анализ протокола OSPF.
· RFC‑1246. Экспериментальная часть работы протокола.
· RFC‑1247 (обновлено 1349). Спецификации к протоколу OSPF версии 2.
· RFC‑1248, RFC‑1850. База управляющей информации протоколавторой версии.
· RFC‑1584. Дополнение к протоколу по широковещанию.
· RFC‑1585. Расширение протокола по широковещанию, анализ и практическиеприложения.
· RFC‑1586. Руководство по использованию OSPF на сетях Frame Relay.
· RFC‑1587. Опция протокола для «не совсем тупиковой зоны»(Not-so-stubby area).
· RFC‑1793. Расширение к спецификациям по требованию к оборудованию споддержкой протокола.
· RFC‑2178. Черновой вариант спецификаций.
· RFC‑2328 (STD0054). Действующий стандарт по OSPF.Реализация протокола.Метрики.
Метрика сети, оценивающая пропускную способность, определяется какколичество секунд, требуемое для передачи 100 Мбит через физическую средуданной сети. Например, метрика сети на базе 10Base-T Ethernet равна 10, аметрика выделенной линии 56 кбит/с равна 1785. Метрика канала со скоростьюпередачи данных 100 Мбит/с и выше равна единице.
Порядок расчета метрик, оценивающих надежность, задержку истоимость, не определен. Администратор, желающий поддерживать маршрутизацию поэтим типам сервисов, должен сам назначить разумные и согласованные метрики поэтим параметрам.
Если не требуется маршрутизация с учетом типа сервиса (илимаршрутизатор ее не поддерживает), используется метрика по умолчанию, равнаяметрике по пропускной способности.База данных состояния связей
Для работы алгоритма SPF на каждом маршрутизаторе строится базаданных состояния связей, представляющая собой полное описание графа OSPF‑системы.При этом вершинами графа являются маршрутизаторы, а ребрами – соединяющие ихсвязи. Базы данных на всех маршрутизаторах идентичны.
За создание баз данных и поддержку их взаимной синхронизации приизменениях в структуре системы сетей отвечают другие алгоритмы, содержащиеся впротоколе OSPF.Поддержка множественных маршрутов.
Если между двумя узлами сети существует несколько маршрутов содинаковыми или близкими по значению метриками, протокол OSPF позволяет направлятьчасти трафика по этим маршрутам в пропорции, соответствующей значениям метрик.Например, если существует два альтернативных маршрута с метриками 1 и 2, то дветрети трафика будет направлено по первому из них, а оставшаяся треть – повторому.
Положительный эффект такого механизма заключается в уменьшениисредней задержки прохождения дейтаграмм между отправителем и получателем, атакже в уменьшении колебаний значения средней задержки.
Менее очевидное преимущество поддержки множественных маршрутов состоитв следующем. Если при использовании только одного из возможных маршрутов этотмаршрут внезапно выходит из строя, весь трафик будет разом перемаршрутизированна альтернативный маршрут, при этом во время процесса массового переключениябольших объемов трафика с одного маршрута на другой весьма велика вероятностьобразования затора на новом маршруте. Если же до аварии использовалосьразделение трафика по нескольким маршрутам, отказ одного из них вызоветперемаршрутизацию лишь части трафика, что существенно сгладит нежелательныеэффекты.Внешние маршруты.
Для достижения сетей, не входящих в OSPF‑систему (вавтономную систему), используются пограничные маршрутизаторы автономной системы(autonomous system border router, ASBR), имеющие связи, уходящие за пределысистемы.
ASBR вносят в базу данных состояния связей данные о сетях запределами системы, достижимых через тот или иной ASBR. Такие сети, а такжеведущие к ним маршруты называются внешними (external).
В простейшем случае, если в системе имеется только один ASBR, онобъявляет через себя маршрут по умолчанию (default route) и все дейтаграммы,адресованные в сети, не входящие в базу данных системы, отправляются через этотмаршрутизатор.
Если в системе имеется несколько ASBR, то, возможно, внутренниммаршрутизаторам системы придется выбирать, через какой именно пограничныймаршрутизатор нужно отправлять дейтаграммы в ту или иную внешнюю сеть. Этоделается на основе специальных записей, вносимых ASBR в базу данных системы.Эти записи содержат адрес и маску внешней сети и метрику расстояния до нее,которая может быть, а может и не быть сравнимой с метриками, используемыми вOSPF‑системе (см. также п. 5.5.12). Если возможно, адреса несколькихвнешних сетей агрегируются в общий адрес с более короткой маской.
ASBR может получать информацию о внешних маршрутах от протоколоввнешней маршрутизации, а также все или некоторые внешние маршруты могут бытьсконфигурированы администратором (в том числе единственный маршрут поумолчанию).Сети множественного доступа
Протокол OSPF особым образом выделяет сети множественного доступа,то есть сети, где каждый узел может непосредственно связаться с каждым. Такиесети могут также поддерживать широковещательную передачу и мультикастинг(broadcast networks, например, Ethernet, FDDI) или не поддерживать таковой(non-broadcast multi-access networks, NBMA, например, Х.25, Frame Relay, ATM).Следуя модели работы протоколов состояния связей, связь каждой парымаршрутизаторов должна рассматриваться как связь типа «точка-точка», чтозначит: каждый маршрутизатор должен установить смежность с каждым, то естьвсего N (N‑1)/2 отношений смежности, по которым происходит обмен всемитипами сообщений.
Протокол OSPF сводит ситуацию только к N отношениям смежности,выбирая среди всех маршрутизаторов данной широковещательной сети одинвыделенный маршрутизатор (designated router, DR), с которым все остальныемаршрутизаторы устанавливают отношения смежности.
Это значит, что каждый «невыделенный» маршрутизатор поддерживаетсинхронизацию базы данных состояния связей не со всеми соседями, а только свыделенным маршрутизатором. При этом протокол затопления в подобной сетиработает следующим образом: «обычный» маршрутизатор сообщает об изменении состояниясвоих связей выделенному маршрутизатору, а тот затапливает сеть этим сообщениеми его получают все остальные маршрутизаторы сети. Естественно, что по своимвнешним интерфейсам, ведущим к прочим маршрутизаторам системы, не находящимся вданной сети множественного доступа, каждый маршрутизатор отправляет сообщениябез участия выделенного маршрутизатора.
Протокол OSPF позволяет также редуцировать размер базы данныхсостояния связей. Для этого в граф системы вводится виртуальная вершина «транзитнаясеть», представляющая собой сеть множественного доступа как таковую. Каждыймаршрутизатор, в том числе и выделенный, при таком подходе имеет не набордвухточечных связей со всеми остальными маршрутизаторами своей сети, а однусвязь с вершиной «транзитная сеть».
Выборы выделенного маршрутизатора проводятся с помощью протоколаHello. Кроме выделенного маршрутизатора выбирается также и запасной выделенныймаршрутизатор (backup designated router, BDR), остальные маршрутизаторы сетиустанавливают отношения смежности как с DR, так и с BDR (следовательно, впредыдущем пункте при описании отношений смежности не хватает BDR). Всесообщения для DR и BDR посылаются по мультикастинговому адресу 224.0.0.6 «Всемвыделенным OSPF‑маршрутизаторам».
Запасной выделенный маршрутизатор получает эти сообщения, но непредпринимает никаких действий, связанных со своей выделенной функцией. Однакоесли выделенный маршрутизатор отключается (этот факт детектируется с помощьюпротокола Hello), то запасной немедленно становится выделенным, не тратявремени на установление отношений смежности с остальными маршрутизаторами, таккак эти отношения уже установлены. При этом с помощью протокола Helloвыбирается новый запасной выделенный маршрутизатор. Если бывший выделенныймаршрутизатор подключится снова, статус выделенного маршрутизатора ему невозвращается.NBMA- и point-to-multipoint сети
В случае, когда несколько OSPF‑маршрутизаторов подключены ксети множественного доступа, не поддерживающей широковещательную передачу (NBMA‑сеть),они следуют той же процедуре, что и в случае широковещательной сети, посколькукаждый маршрутизатор также может непосредственно связаться с каждым, и,следовательно, существует та же проблема по числу отношений смежности и числузаписей в базе данных состояния связей. В случае NBMA‑сетей проблема дажеусугубляется тем, что поддержка постоянных соединений между любыми двумямаршрутизаторами для обмена маршрутной информацией (отношения смежности) можетпотребовать значительных технических и финансовых затрат.
Отличие NBMA от широковещательных сетей состоит в том, что адресавсех соседей должны быть предварительно сконфигурированы на каждоммаршрутизаторе, потому что возможности передавать мультикастинговые сообщениянет.
Если маршрутизатор, подключенный к нешироковещательной сети, можетнепосредственно связаться с несколькими, но не со всеми маршрутизаторами этойсети (неполный множественный доступ), такое соединение конфигурируется какpoint-to-multipoint и не рассматривается протоколом OSPF как сетьмножественного доступа со всеми вышеописанными последствиями. Маршрутизатор,подключенный к соединению типа point-to-multipoint, устанавливает двухточечныесвязи с каждым своим соседом по соединению.
Могут быть также причины, по которым администратор пожелаетсконфигурировать сеть с полным множественным доступом как point-to-multipoint.Иерархическая маршрутизация (Разбиение на области)
Для упрощения вычисления маршрутов и уменьшения размера базыданных состояния связей OSPF‑система может быть разбита на отдельныенезависимые области (areas), объединяемые в единую систему особой областью,называемой магистралью (backbone). Области, не являющиеся магистралью,называются периферийными.
Маршруты внутри каждой области вычисляются как в отдельнойсистеме: база данных состояния связей содержит записи только о связяхмаршрутизаторов внутри области, действие протокола затопления нераспространяется за пределы области.
Некоторые маршрутизаторы принадлежат магистрали и одной илинескольким периферийным областям. Такие маршрутизаторы называются областнымипограничными маршрутизаторами (area border router, ABR). Каждая область должнаиметь как минимум один ABR, иначе она будет полностью изолирована от остальнойчасти системы.
Областные пограничные маршрутизаторы поддерживают отдельные базыданных состояния связей для всех областей, к которым они подключены. Наосновании этих данных они обобщают информацию о достижимости сетей внутриотдельных областей и сообщают результат в смежную область. Также ABRобрабатывают подобные сообщения от других ABR (граничащих с другими областями)и ретранслируют информацию о внешних маршрутах, исходящую от пограничныхмаршрутизаторов (автономной) системы (ASBR).
Тем самым обеспечивается передача маршрутной информации иконнективность между областями. При этом, за пределы области передается неполная база данных состояния связей, а просто список сетей этой области,достижимых извне области через данный ABR, вместе с метриками расстояния доэтих сетей. Если возможно, адреса сетей агрегируются в общий адрес с болеекороткой маской. Подобную же информацию, но только о сетях, лежащих запределами OSPF‑системы, распространяют ASBR.Тупиковые и не совсем тупиковые области
Области, внутрь которых не передается информация о внешнихмаршрутах, называются тупиковыми областями (stub areas). Все дейтаграммы,исходящие из данной области и адресованные за пределы автономной системы,отправляются по маршруту по умолчанию (default) через определенный ABR. Тупиковаяобласть может иметь несколько ABR, но для каждого узла внутри областиустановлен маршрут по умолчанию, проходящий только через один их ABR.
Протокол OSPF определяет также понятие не совсем тупиковыхобластей (not so stubby area, NSSA). К таким областям относятся тупиковыеобласти, в которых разрешено объявлять некоторые внешние маршруты.OSPF‑заголовок
Протокол OSPF в стеке протоколов TCP/IP находится непосредственнонад протоколом IP, код OSPF равен 89. То есть если значение поля «Protocol» IP‑дейтаграммыравно 89, то данные дейтаграммы являются сообщением OSPF и передаются OSPF‑модулюдля обработки. Соответственно размер OSPF‑сообщения ограниченмаксимальным размером дейтаграммы.
Все сообщения OSPF имеют общий заголовок (следующий в дейтаграмменепосредственно за IP‑заголовком):
Значения полей:
· Version (1 октет) – версияпротокола (=2);
· Type (1 октет) – типсообщения:
1. Hello;
2. описаниебазы данных (Database Description);
3. запроссостояния связей (Link State Request);
4. обновлениесостояния связей (Link State Update);
5. подтверждениеприема сообщения о состоянии связей (Link State Acknowledgment).
· Packetlength(2 октета) – длина сообщения в октетах, включая заголовок.
· RouterID (4октета) – идентификатор маршрутизатора, отправившего сообщение. Router ID равенадресу одного из IP‑интерфейсов маршрутизатора. У маршрутизаторов Ciscoэто наибольший из адресов локальных интерфейсов, а если таковых нет, тонаибольший из адресов внешних интерфейсов.
· AreaID (4октета) – номер области, к которой относится данное сообщение; номер 0зарезервирован для магистрали. Часто номер области полагают равным адресу IP‑сети(одной из IP‑сетей) этой области.
· Checksum (2 октета) – контрольнаясумма, охватывает все OSPF‑сообщение, включая заголовок, но исключая поле«Authentication»; вычисляется по тому же алгоритму, что и в IP‑заголовке.
· AuthenticationType (2октета) – тип аутентификации сообщения. Стандарт определяет несколько возможныхтипов, самые простые из них: 0 – нет аутентификации, 1 – аутентификация спомощью пароля.
· Authentication(8октетов) – аутентификационные данные; например, восьмисимвольный пароль.
· Далеепри рассмотрении формата сообщений вышеописанный заголовок будет изображаться ввиде поля «OSPF‑заголовок», помещенного в начало сообщения.
Протокол Hello
После инициализации модуля OSPF (например, после подачи питания намаршрутизатор) через все интерфейсы, включенные в OSPF‑систему, начинаютрассылаться Hello‑сообщения. Задача Hello‑протокола – обнаружениесоседей и установление с ними отношений смежности.
Соседями называются OSPF‑маршрутизаторы, подключенные кодной сети (к одной линии связи) и обменивающиеся Hello‑сообщениями.
Смежными называются соседние OSPF маршрутизаторы, которые принялирешение обмениваться друг с другом информацией, необходимой для синхронизациибазы данных состояния связей и построения маршрутов. Не все соседи становятсясмежными.
Другая задача протокола Hello – выбор выделенного маршрутизатора всети с множественным доступом, к которой подключено несколько маршрутизаторов.
Hello‑пакеты продолжают периодически рассылаться и послетого, как соседи были обнаружены. Таким образом маршрутизатор контролируетсостояние своих связей с соседями и может своевременно обнаружить изменениеэтого состояние (например, обрыв связи или отключение одного из соседей). Обрывсвязи может быть также обнаружен и с помощью протокола канального уровня,который просигнализирует о недоступности канала.
В сетях с возможностью широковещательной рассылки (broadcastnetworks) Hello‑пакеты рассылаются по мультикастинговому адресу 224.0.0.5(«Всем ОSPF‑маршрутизаторам»). В других сетях все возможные адресасоседей должны быть введены администратором.
Значения полей:
· NetworkMask (4октета) – маска IP‑сети, в которой находится интерфейс маршрутизатора,отправившего сообщение.
· HelloInterval(2 октета) – период посылки Hello‑сообщений, в секундах.
· Options (1 октет) – определенозначение нескольких бит: DC EA N/P MC E T
o Бит Тустановлен, поддерживается маршрутизация по типу сервиса (этот бит исключен изпоследней версии стандарта OSPF, но может поддерживаться для совместимости спредыдущими версиями).
o Бит Еустановлен, маршрутизатор может принимать и объявлять внешние маршрутычерез данный интерфейс; сброшен, данный интерфейс маршрутизатора принадлежиттупиковой области.
o Бит MCустановлен, маршрутизаторподдерживает маршрутизацию мультикастинговых дейтаграмм (RFC 1584).
o Бит N/Pустановлен, данныйинтерфейс маршрутизатора принадлежит не совсем тупиковой области (NSSA).
o Бит EA установлен,маршрутизатор может получать и ретранслировать объявления о «внешних атрибутах»(к настоящему моменту описание опции не разработано).
o Бит DCустановлен, маршрутизаторподдерживает работу с соединениями, устанавливаемыми по требованию (demand circuits, RFC 1793) – это, например,означает, что записи о связях, устанавливаемых по требованию, не устаревают.
o Поле «Options» используется длясогласования возможностей маршрутизаторов-соседей (маршрутизатор может прерватьсоседские отношения, если какие-то опции соседа его не устраивают) и дляопределения того, какую информацию о состоянии связей не нужно посылатьмаршрутизатору-соседу, потому что он все равно не сможет ее обработать.
· Priority (1 октет) – приоритет маршрутизатора; устанавливаетсяадминистратором, используется при выборах выделенного маршрутизатора;маршрутизатор с нулевым приоритетом никогда не будет избран.
· DeadInterval (4 октета) – время всекундах, по истечении которого маршрутизатор-сосед, не посылающий сообщения Hello, считается отключенным.
· DesignatedRouter (DR) (4 октета) – идентификаторвыделенного маршрутизатора с точки зрения маршрутизатора, посылающего сообщение(0, если выделенный маршрутизатор еще не выбран).
· BackupDesignatedRouter (BDR) (4 октета) – идентификторзапасного выделенного маршрутизатора с точки зрения маршрутизатора, посылающегосообщение (0, если запасной выделенный маршрутизатор еще не выбран).
· Neighbor,…, Neighbor – список идентификаторовсоседей, от которых получены Hello‑сообщения за последние Dead Interval секунд; число полей «Neighbor» определяется из общейдлины сообщения, указанной в OSPF‑заголовке. Длина одного поля – 4 октета.
После того, как пара маршрутизаторов начинает обмениваться Hello‑сообщениями скаким-то соседом, этот процесс проходит через несколько стадий:
· DOWN – сосед не обнаружен или отключился;
· INIT– послано Hello‑сообщение илиполучено от маршрутизатора, еще не зачисленного в список соседей;
· 2‑WAY (двусторонняя связь) – полученоHello‑сообщение, вкотором данный маршрутизатор-получатель перечислен в списке соседей, аотправитель этого сообщения также зачислен в список соседей данногомаршрутизатора;
· WAIT – ожидание в течение Dead Interval секунд для обнаружениявсех соседей; в это время маршрутизатор передает Hello‑сообщения, но неучаствует в выборах выделенного маршрутизатора и в синхронизировании базданных;
· EXSTART – установление ролей главный / подчиненный иинициализация структур данных для обмена описаниями баз данных (протоколобмена);
· EXCHANGE – обмен описаниями баз данных (протокол обмена);
· LOADING – синхронизация баз данных, пересылка сообщений-запросов осостояниях связей и ответов на них (протокол обмена);
· FULL – базы данных синхронизированы.
Каждый маршрутизатор самостоятельно производит выборы выделенногои запасного выделенного маршрутизаторов на основании имеющихся у него данных ососедях и о том, кого каждый из соседей назначил на эту роль. Фактическипроцесс выборов происходит постоянно, после получения каждого Hello‑сообщения, ноалгоритм гарантирует, что при стабильном состоянии сети всеми маршрутизаторамибудут выбираться одни и те же DR и BDR.
Каждый маршрутизатор может объявить себя либо выделенным, либозапасным, поместив свой идентификатор в соответствующее поле своих Hello‑сообщений. Иначеон может поместить туда адреса других маршрутизаторов, если он считает ихзанимающими соответствующие роли. Если маршрутизатор не определился с выбором DR и (или) BDR (например, послевключения), он заполняет соответствующие поля нулями.
Выбор проводится только среди соседей, с которыми установленадвусторонняя связь и приоритет которых не равен нулю; в этот списокмаршрутизатор включает и себя, если его приоритет не нулевой.
Итак, после получения очередного Hello‑сообщениямаршрутизатор приступает к выбору DR и BDR. Он помнит мнения своих соседей по поводу того,кто является DR и BDR, которые он узнал из получаемых Hello‑сообщений, а такжесвой собственный предыдущий выбор.
Сначала выбирается BDR, на эту должность назначается маршрутизатор снаивысшим приоритетом из всех, объявивших себя в качестве BDR, при этоммаршрутизаторы, объявившие себя в качестве DR, не рассматриваются.Если никто не объявил себя в качестве BDR, выбирается маршрутизатор с высшим приоритетомиз тех, кто не объявил себя в качестве DR. В случае равныхприоритетов выбирается маршрутизатор с большим идентификатором.
На должность DR выбирается маршрутизатор с наивысшим приоритетомиз всех, объявивших себя в качестве DR. В случае равных приоритетов выбираетсямаршрутизатор с большим идентификатором.
Если никто не предложил себя в качестве DR, в поле «Designated Router» заносится идентификаторBDR.
Если маршрутизатор только что выбрал себя на роль DR или BDR или только что потерялстатус DR или BDR, шаги 1–3 повторяются. Термин «только что» означает «в результатевыполнения непосредственно предшествующих шагов 1–3, а не предыдущих итерацийалгоритма».
После выбора DR и BDR маршрутизатор сообщает их идентификаторы в своихHello‑сообщениях. Если врезультате процедуры выбора DR или BDR изменились по сравнению с предыдущим выборомданного маршрутизатора, он устанавливает необходимые отношения смежности, еслиони еще не были установлены, и разрывает ненужные больше отношения смежности,если таковые имеются.
Когда маршрутизатор подключается к сети, сначала он достигаетсостояния 2‑WAY со всеми своими соседями, а потом, прежде чем приступать квыборам, ожидает время WAIT. В течение этого времени он передает Hello‑сообщения с обнуленнымиполями DR и BDR. После истечения периода WAIT вновь подключившийсямаршрутизатор может предлагать себя на роль BDR, производить выборы иформировать отношения смежности.Протокол обмена
После установления отношений смежности для каждой пары смежныхмаршрутизаторов происходит синхронизация их баз данных. Эта же операцияпроисходит при восстановлении ранее разорванного соединения, поскольку вобразовавшихся после аварии двух изолированных подсистемах базы данныхразвивались независимо друг от друга. Синхронизация баз данных происходит спомощью протокола обмена (Exchange protocol).
Сначала маршрутизаторы обмениваются только описаниями своих базданных (Database Description), содержащими идентификаторы записей и номера ихверсий, это позволяет избежать пересылки всего содержимого базы данных, еслитребуется синхронизировать только несколько записей.
Во время этого обмена каждый маршрутизатор формирует списокзаписей, содержимое которых он должен запросить (то есть эти записи в его базеданных устарели либо отсутствуют), и соответственно отправляет пакеты запросово состоянии связей (Link State Request). В ответ он получает содержимоепоследних версий нужных ему записей в пакетах типа «Обновление состояния связей(Link State Update)».
После синхронизации баз данных производится построение маршрутов.Сообщение «Описание базы данных (DatabaseDescription)»
/>
Значения полей:
· Options (1 октет) – то же, что ив сообщениях Hello.
· IMMS (3 бита) – последние 3бита октета, следующего за полем «Options»: I – Initialize, бит 5; M – More,бит 6, MS – Master/Slave, бит 7. Использование этих бит будет описано ниже.Остальная часть октета, где находятся эти биты, обнулена.
· DDSequence number (DDSN) (4 октета) – порядковый номер данного сообщения.
· LSAHeader(20 октетов) – описание (набор идентификаторов) записи из базы данных состояниясвязей, представляющее собой заголовок «Объявления о состоянии связей». Всообщении может присутствовать несколько описаний (полей «LSA Header»),следующих друг за другом; их число определяется из общей длины сообщения,указанной в OSPF заголовке.
Обмен сообщениями «Описание базы данных» происходит при работепротокола обмена (Exchange protocol) между двумя смежными маршрутизаторами.Обмен начинается с выяснения, кто из двух маршрутизаторов будет играть главнуюроль, а кто подчиненную.
Маршрутизатор, желающий начать обмен на правах главного, отправляетпустое сообщение с установленными битами IMMS и произвольным, но неиспользованным в обозримом прошлом номером DDSN (предлагается использоватьвремя суток). Второй маршрутизатор подтверждает, что согласен игратьподчиненную роль: он отправляет обратно также пустое сообщение с тем же DDSN, cустановленными битами I и M и сброшенным битом MS.
Если же оба маршрутизатора одновременно решили начать процедуруобмена, то маршрутизатор, получивший в ответ на свое сообщение о начале обменасообщение второго маршрутизатора о начале обмена вместо подтвержденияподчиненной роли, сравнивает адрес второго маршрутизатора со своим. Если свойадрес меньше, маршрутизатор принимает подчиненную роль и отправляетсоответствующее подтверждение, иначе принятое сообщение игнорируется.
После того, как роли распределены, начинается обмен описаниямибазы данных. Главный отправляет подчиненному сообщения с описаниями своей базыданных; номера DDSN увеличиваются с каждым сообщением, бит I сброшен, бит МSустановлен, бит M установлен во всех сообщениях, кроме последнего.
Подчиненный отправляет подтверждения на каждое полученное отглавного сообщения. Эти подтверждения представляют собой сообщения того жетипа, содержащие описание базы данных подчиненного маршрутизатора. Номер DDSNравен номеру подтверждаемого сообщения, биты I и MS сброшены, бит М установленво всех сообщениях, кроме последнего.
При неполучении подтверждения от подчиненного в течение некотороготайм-аута главный посылает сообщение повторно. Если подчиненный получает сообщениес уже встречавшимся номером DDSN, он должен повторить передачу соответствующегоподтверждения. Это касается также и фазы инициализации (распределения ролей).
Если один из маршрутизаторов уже передал все данные, он продолжаетпередавать пустые сообщения со сброшенным битом М, пока другая сторона также незакончит передачу всех данных и не передаст сообщение (или подтверждение) сосброшенным битом М.
На этом процедура обмена описаниями базы данных заканчивается.Протокол затопления (flooding)
Каждый маршрутизатор отвечает за те и только те записи в базеданных состояния связей, которые описывают связи, исходящие от данногомаршрутизатора. Это значит, что при образовании новой связи, изменении всостоянии связи или ее исчезновении (обрыве), маршрутизатор, ответственный заэту связь, должен соответственно изменить свою копию базы данных и немедленноизвестить все остальные маршрутизаторы OSPF‑системы о произошедшихизменениях, чтобы они также внесли исправления в свои копии базы данных.
Подпротокол OSPF, выполняющий эту задачу, называется протоколомзатопления (Flooding protocol). При работе этого протокола пересылаютсясообщения типа «Обновление состояния связей (Link State Update)», получениекоторых подтверждается сообщениями типа «Link State Acknowledgment».
Каждая запись о состоянии связей имеет свой номер (номер версии),который также хранится в базе данных. Каждая новая версия записи имеет большийномер. При рассылке сообщений об обновлении записи в базе данных номер записитакже включается в сообщение для предотвращения попадания в базу данныхустаревших версий.
Маршрутизатор, ответственный за запись об изменившейся связи,рассылает сообщение «Обновление состояния связи» по всем интерфейсам. Однаконовые версии состояния одной и той же связи должны появляться не чаще, чемоговорено определенной константой.
Далее на всех маршрутизаторах OSPF‑системы действует следующийалгоритм.
1. Получитьсообщение. Найти соответствующую запись в базе данных.
2. Еслизапись не найдена, добавить ее в базу данных, передать сообщение по всеминтерфейсам.
3. Еслиномер записи в базе данных меньше номера пришедшего сообщения, заменить записьв базе данных, передать сообщение по всем интерфейсам.
4. Еслиномер записи в базе данных больше номера пришедшего сообщения и эта запись небыла недавно разослана, разослать содержимое записи из базы данных через тотинтерфейс, откуда пришло сообщение. Понятие «недавно» определяется значениемконстанты.
5. Вслучае равных номеров сообщение игнорировать.
Протокол OSPF устанавливает также такую характеристику записи вбазе данных, как возраст. Возраст равен нулю при создании записи. Призатоплении OSPF‑системы сообщениями с данной записью каждыймаршрутизатор, который ретранслирует сообщение, увеличивает возраст записи наопределенную величину. Кроме этого, возраст увеличивается на единицу каждуюсекунду. Из-за разницы во времени пересылки, в количестве промежуточныхмаршрутизаторов и по другим причинам возраст одной и той же записи в базахданных на разных маршрутизаторах может несколько различаться, это нормальноеявление.
При достижении возрастом максимального значения (60 минут),соответствующая запись расценивается маршрутизатором как просроченная инепригодная для вычисления маршрутов. Такая запись должна быть удалена из базыданных.
Поскольку базы данных на всех маршрутизаторах системы должны бытьидентичны, просроченная запись должна быть удалена из всех копий базы данных навсех маршрутизаторах. Это делается с использованием протокола затопления:маршрутизатор затапливает систему сообщением с просроченной записью.Соответственно, в описанный выше алгоритм обработки сообщения вносятсядополнения, связанные с получением просроченного сообщения и удалениемсоответствующей записи из базы данных.
Чтобы записи в базе данных не устаревали, маршрутизаторы,ответственные за них, должны через каждые 30 минут затапливать системусообщениями об обновлении записей, даже если состояние связей не изменилось.Содержимое записей в этих сообщениях неизменно, но номер версии больше, авозраст равен нулю.
Вышеописанные протоколы обеспечивают актуальность информации,содержащейся в базе данных состояния связей, оперативное реагирование наизменения в топологии системы сетей и синхронизацию копий базы данных на всехмаршрутизаторах системы.
Для обеспечения надежности передачи данных реализован механизмподтверждения приема сообщений, также для всех сообщений вычисляетсяконтрольная сумма.
В протоколе OSPF может быть применена аутентификация сообщений,например, защита их с помощью пароля.Сообщение «Запрос состояния связи (Link StateRequest)»
/>
Сообщение «Запрос состояния связи» отправляется при работепротокола обмена после того, как был произведен обмен описаниями баз данных.
Сообщение содержит один или несколько идентификаторов записей,которые маршрутизатор хочет получить от своего соседа. Каждый идентификаторзаписи состоит из полей «Link State Type», «Link State ID» и «AdvertisingRouter»; значения этих полей будут рассмотрены при обсуждении заголовковобъявлений о состоянии связей (LSA). Число идентификаторов (то есть числозапросов) в одном сообщении определяется из общей длины сообщения, указанной вOSPF‑заголовке.
Подтверждением приема запроса является посылка сообщения типа 4 «Обновлениесостояния связи». При отсутствии подтверждения в течение некоторого тайм-аутазапрос посылается повторно. Если все запросы не могут быть помещены в односообщение, они разбиваются на несколько сообщений, но каждое следующеесообщение-запрос посылается только после получения всех записей, запрошенных впредыдущем.Сообщение «Обновление состояния связей (Link StateUpdate)»
/>
Сообщение «Обновление состояния связей» собственно и содержитинформацию из базы данных состояния связей. Это сообщение отправляется в ответна запрос (тип 3) при работе протокола обмена, а также при работе протоколазатопления для распространения информации об изменении состояния связей. Впоследнем случае его получение подтверждается сообщениями типа 5 «LinkState Acknowledgment», в случае отсутствия подтверждения посылка повторяется.
Сообщение типа 4 состоит из одного или нескольких объявлений осостоянии связей (Link State Advertisement, LSA), следующих друг за другом.Существует несколько типов LSA. Каждое LSA состоит из заголовка и тела.
Число объявлений LSA в сообщении определяется первым 32‑битнымсловом, следующим за OSPF заголовком. Длина каждого LSA определяетсясоответствующим полем в заголовке LSA. Если все LSA, которые требуетсяотправить, не помещаются в одно сообщение, они могут быть распределены понескольким сообщениям.
Дейтаграмма с OSPF сообщением типа 4, несущим 3 LSA, имеетследующую общую структуру:
/>
Сообщение «Подтверждение приема сообщения осостоянии связей
(Link State Acknowledgment)»
/>
Сообщения типа 5 отправляются в подтверждение получения сообщенийтипа 4 при работе протокола затопления. Сообщение содержит одно или несколькоподтверждений, каждое подтверждение состоит из заголовка LSA, получениекоторого подтверждается.
Маршрутизатор может не посылать подтверждение на каждое сообщениетипа 4, а послать одно сообщение типа 5 с подтверждениями на получение LSA,присланных в нескольких сообщениях типа 4, но в любом случае задержка спосылкой подтверждений не должна быть велика.
Число подтверждений в одном сообщении типа 5 определяется из общейдлины сообщения, указанной в OSPF‑заголовке.Типы Объявлений о состоянии связей (LSA)
Тип 1. Router Links Advertisement – маршрутизаторобъявляет о своих связях с соседними маршрутизаторами, транзитными и тупиковымисетями; распространяется каждым маршрутизатором внутри области, к которой принадлежатэти связи.
Тип 2. Network Links Advertisement – содержит списокмаршрутизаторов, подключенных к сети множественного доступа; распространяетсявыделенным маршрутизатором внутри области, к которой принадлежит данная сеть.Фактически описывает связи, направленные в графе системы от вершины типа «транзитнаясеть» к маршрутизаторам этой сети.
Тип 3. Summary Link Advertisement – описывает расстояниеот данного областного пограничного маршрутизатора (ABR) до IP‑сети,находящейся за пределами данной области, но принадлежащей данной OSPF‑системе;распространяется этим ABR внутри области.
Тип 4. AS Boundary Router Summary Link Advertisement – описывает расстояниеот данного ABR до данного пограничного маршрутизатора системы (ASBR);распространяется этим ABR внутри области.
Тип 5. AS External Link Advertisement – описывает расстояниедо сети, находящейся за пределами OSPF‑системы; распространяется ASBR иретранслируется во все области, кроме тупиковых, их пограничнымимаршрутизаторами.
Тип 7. AS External Link Advertisement (NSSA) – то же, что тип 5, нораспространяется внутри не совсем тупиковых областей (в них распространение LSAтипа 5 запрещено); на границе NSSA и магистрали преобразуется в LSA типа 5 длядальнейшего распространения в системе. Формат идентичен формату LSA типа 5 заисключением номера типа.Заголовок LSA
Все объявления о состоянии связей (LSA) состоят из заголовка итела и пересылаются в сообщениях OSPF типа 4, а заголовки отдельно такжепересылаются в сообщениях типа 2 и 5. Заголовок LSA имеет одинаковый формат длявсех типов LSA.
/>
Значения полей:
· LSAge (2октета) – возраст связи (связей), содержащихся в данном LSA.
· Options (1 октет) – содержимоеоктета аналогично такому же октету в сообщении Hello.
· LS Type (1 октет) – тип LSA.
· LinkState ID (4октета) – идентификатор связи (связей), объявляемых в данном LSA, интерпретацияэтого поля зависит от типа LSA:Тип LSA Link State ID 1 то же, что и «Advertising Router» 2 IP‑адрес интерфейса выделенного маршрутизатора, подключенного к данной сети множественного доступа 3 IP‑адрес сети, находящейся за пределами области 4 идентификатор ASBR 5 IP‑адрес сети, находящейся за пределами системы
· AdvertisingRouter (4октета) – идентификатор маршрутизатора, ответственного за объявление иподдержку связи (связей), содержащихся в данном LSA.
· LinkState sequence number (4 октета) – порядковый номер (версия) состояния связи (связей),содержащихся в данном LSA.
· LSChecksum(2 октета) – контрольная сумма, вычисляется таким же методом, что и контрольнаясумма IP‑заголовка; защищает как заголовок, так и тело LSA.
· length (2 октета) – длина LSA воктетах, включая 20 октетов заголовка LSA.Тело LSA типа 1
/>
Значения полей:
· VEB (3 бита) – первый октет обнулен за исключением трех старших бит V (бит 5), E (бит 6) и B (бит 7). Установленныезначения этих бит говорят о том, что маршрутизатор, объявивший данное LSA, является:
o бит B – пограничныммаршрутизатором области (ABR);
o бит Е– пограничным маршрутизатором системы (ASBR);
o битV – оконечной точкой виртуальной связи.
· Числосвязей(2 октета) – число связей, объявленных в данном LSA.
· Объявлениео каждой связи состоит из полей «Link ID», «Link Data», «Type», «#TOS», «TOS 0 metric», за которыми можетследовать 0 или более 32‑разрядных слов, состоящих из полей «TOS», нулевого октета и «TOS metric». Количество таких словопределяется полем «#TOS».
· LinkID(4 октета), LinkData (4 октета), Type (1 октет) – интерпретацияполей «Link ID» и «Link Data» зависит от значения поля «Type» (ниже в колонке «Link Data» под IP‑адресом понимаетсяIP‑адрес интерфейсаобъявляющего маршрутизатора, подключенного к той связи, которую он объявляет):Type Link ID Link Data 1 – двухточечная связь между маршрутизаторами идентификатор соседа IP‑адрес 2 – связь с транзитной сетью IP‑адрес интерфейса выделенного маршрутизатора IP‑адрес 3 – связь с тупиковой сетью (см. также конец этого пункта) IP‑адрес тупиковой сети маска тупиковой сети 4 – виртуальная связь идентификатор соседа по магистрали, с которым установлена виртуальная связь IP‑адрес
#TOS(1 октет) – число метрик длямаршрутизации по типу сервиса для данной связи (0 – метрики для маршрутизациипо типу сервиса не определены).
· TOS0 metric (2 октета) – метрика данной связи длямаршрутизации без учета типа сервиса (метрика по умолчанию).
· TOS (1 октет), TOSmetric (2 октета) – метрикаданной связи («TOS metric») для указанного типа сервиса («TOS»). Число таких метрикопределено полем «#TOS» и может быть равно нулю. Значение TOS определяется, как взаголовке IP‑дейтаграммы. Несмотря на то, что маршрутизация по типусервиса исключена из последней версии стандарта OSPF, эти поля поддерживаютсядля совместимости с предыдущими версиями.
Кроме собственно связей с тупиковыми сетями, следующие связиобъявляются как связи с тупиковыми сетями:
· связьс собственным интерфейсом (интерфейсами) типа loopback (Link ID=IP‑адрес интерфейса, Link Data заполняется единицами);
· cвязьс хостом, подключенным к маршрутизатору по двухточечной линии (Link ID=IP‑адрес хоста, Link Data заполняется единицами);
· связьс сетью, представляющей собой двухточечное соединение между маршрутизаторами (вдополнение к собственно двухточечной связи между маршрутизаторами); в случае,если этой сети не присвоены адрес и маска, Link ID равен IP‑адресу интерфейсасоседнего маршрутизатора, Link Data заполняется единицами;
· связьс собственным интерфейсом, подключенным к соединению типа point-to-multipoint (в дополнение кдвухточечным связям с каждым из соседей, подключенным к этому соединению); Link ID=IP‑адрес интерфейса, Link Data заполняется единицами.
Тело LSA типа 2
/>
Значения полей:
· NetworkMask (4октета) – маска сети множественного доступа (адрес этой сети указан в поле «LinkState ID» заголовка LSA).
· AttachedRouter(4 октета) – идентификатор маршрутизатора, подключенного к сети множественногодоступа. Перечисляются все маршрутизаторы, установившие отношения смежности свыделенным маршрутизатором. Длина списка маршрутизаторов определяется из общейдлины LSA, указанной в заголовке LSA.
LSA этого типа описывает связи, направленные в графе системы отвершины типа «транзитная сеть» к маршрутизаторам этой сети. Метрика этих связейне указывается, поскольку она считается равной нулю.Тело LSA типов 3 и 4
/>
LSA типа 3 или 4 содержит объявление о расстоянии только до одной IP‑сети, лежащей запределами области (до одного пограничного маршрутизатора). Адрес сети илиидентификатор маршрутизатора указан в поле «Link State ID» заголовка LSA.
Поле «Network Mask» (4 октета) содержит значение маски сети, еслиэто LSA типа 3, или все единицы, если это LSA типа 4. Далее следует 32‑битноеслово, два последних октета которого содержат метрику расстояния по умолчанию(тип сервиса 0), после которого может следовать 0 или более 32‑битныхслов, объявляющих метрики расстояний для маршрутизации по типам сервиса – аналогичнотому, как это сделано в LSA типа 1. Несмотря на то, что маршрутизация потипу сервиса исключена из последней версии стандарта OSPF, эти поля поддерживаютсядля совместимости с предыдущими версиями.
Поле «#TOS» здесь отсутствует, т. к. число объявлений метрик для типовсервиса можно вычислить из общей длины LSA, указанной в заголовке LSA.
LSA типа 3 и 4 распространяются областными пограничнымимаршрутизаторами как внутри периферийных областей, так и в магистрали. LSA, распространяемые впериферийной области, содержат информацию о достижимости сетей и ASBR, находящихся вмагистрали и других периферийных областях. LSA, распространяемые вмагистрали, содержат информацию о достижимости сетей и ASBR, находящихся впериферийной области.
Если возможно, адреса нескольких сетей агрегируются в общий адресс более короткой маской, что уменьшает количество LSA и размер базы данных.Тело LSA типа 5
/>
Значения полей:
NetworkMask (4 октета) – маскавнешней IP‑сети. IP‑адрес этой сети указан в поле «Link State ID» заголовка LSA.
Далее следует одна или более записей с указанием метрики и другиххарактеристик маршрута до данной сети для разных типов сервиса (поля «E TOS», «TOS metric», «Forwarding Address», «External Route Tag»). Первыми указываютсяхарактеристики для TOS=0 (т.е. когда тип сервиса не учитывается), эта часть присутствуетобязательно. Число прочих типов сервиса, представленных в LSA, определяется из общейдлины LSA, указанной в заголовке LSA. Несмотря на то, что маршрутизация по типусервиса исключена из последней версии стандарта OSPF, соответствующие поляподдерживаются для совместимости с предыдущими версиями.
· E(ETOS) – младший бит октета,содержащего значение TOS (самим значением TOS используются биты 3–6).Имеет следующие значения:
o Е установлен àметрика внешнего маршрута исчисляется в единицах, не сравнимых с исчислениемметрик в OSPF (протоколы внешней маршрутизации, поставляющие данные о внешнихмаршрутах, не обязаны использовать совместимые с OSPF значения метрик); в этомслучае метрика, указанная для соответствующего TOS, должна считаться большелюбой метрики в OSPF‑системе;
o Е сброшен à метрикавнешнего маршрута может складываться с метриками внутренних маршрутов.
· TOS0 metric(TOS metric) (2 октета) – метрикадля соответствующего значения TOS.
· ForwardingAddress (4 октета) – адрес маршрутизатора,которому следует пересылать дейтаграммы, адресованные в объявляемую внешнююсеть. Это поле используется, когда ASBR считает, что он сам – не лучший «следующиймаршрутизатор» на пути в данную внешнюю сеть. Например, в одной IP‑сети с ASBR находится маршрутизатор G, не поддерживающийпротокол OSPF (а поддерживающий, например, BGP), причем через G лежат кратчайшиемаршруты к определенным внешним сетям. ASBR, который такжеподдерживает и BGP, узнаёт от G об этих маршрутах и объявляет их в автономной системе,однако с помощью «Forwarding Address» он тут же указывает, что дейтаграммы,адресованные в эти сети, лучше сразу же направлять маршрутизатору G.
Возможны и другие примеры. Если поле «Forwarding Address» обнулено, тодейтаграммы следует пересылать тому ASBR, который объявил данное LSA.
· ExternalRouteTag (4 октета) – поле,используемое ASBR для целей внешней маршрутизации; модулем OSPF игнорируется.
Если возможно, адреса нескольких внешних сетей агрегируются вобщий адрес с более короткой маской, что уменьшает количество LSA и размер базы данных./>
Конфигурирование OSPF‑маршрутизатора
Для конфигурирования OSPF‑маршрутизатора потребуются, как минимум,следующие шаги:
· указатьсвязи, которые будут включены в OSPF‑систему; если это широковещательные сети,то указать адреса этих сетей; в случае нешироковещательных сетей и двухточечныхсвязей указать адреса возможных соседей;
· еслитребуется, указать тип cоединения (двухточечный, point-to-multipoint);
· еслиесть разбиение на области, для каждой связи указать номер области и ее тип;
· еслитребуется, сконфигурировать виртуальные связи;
· сконфигурироватьвнешние маршруты или организовать их получение от протоколов внешнеймаршрутизации, или установить маршрут по умолчанию – на пограничныхмаршрутизаторах системы.