Router border что это
Немного теории: типы OSPF-областей и их связи между собой
Немного теории: типы OSPF-областей и их связи между собой
Разбираться в типах областей будем на примере схемы, указанной выше. У нас есть 5 OSPF-областей и 11 маршрутизаторов. Все маршрутизаторы соединены между собой по протоколу OSPF, за исключением роутеров ISP1 и ISP2. Их мы будем подключать по протоколу BGP и RIP соответственно.
Для начала необходимо разобраться с ролями маршрутизаторов на сети, нам известно, что бывают роутеры четырех видов:
Internal Router (внутренний маршрутизатор, IR) — роутер, находящийся внутри какой-либо OSPF-области и имеющим связь только с роутерами этой же области
Backbone Router (магистральный маршрутизатор, BR) — роутер, в котором как минимум один интерфейс принадлежит нулевой OSPF-области
Area Border Router (граничный маршрутизатор области, ABR) — роутер, находящийся на границе OSPF-области и соединяющий между собой две OSPF-области и более
Autonomous System Boundary Router (граничный маршрутизатор автономной системы, ASBR) — роутер, на котором помимо OSPF имеется связь с другими автономными системами (другие протоколы маршрутизации или другой OSPF-процесс)
Основываясь на вышесказанном, можно сделать выводы о ролях маршрутизаторов на данной схеме:
С видами роутеров разобрались, рассмотрим типы OSPF-областей:
Stub areas (тупиковая область)
— не переносит внешние маршруты
— не соединяет между собой нулевую и ненулевую область (через него не настраивается virtual-link)
— не содержит ASBR
Totally stubby areas (полностью тупиковая область)
— имеет те же свойства, что и stub areas и вдобавок получает от нулевой области только маршрут по умолчанию
Not-so-stubby-areas (не такая уж и тупиковая область, NSSA)
— тупиковая область, содержащая в себе ASBR
Backbone area (магистральная область)
— нулевая область, связывает между собой все остальные области
Также стоит выделить такой тип области, как транзитная область (Transit area) — ненулевая область, соединяющая между собой магистральную область и другую ненулевую область.
Учитывая вышеописанное, распишем типы областей на нашей схеме:
В данном случае area 3 выступает в качестве транзитной, поскольку area 4 будет строить соседство с магистральной (area 0) областью посредством виртуального канала связи через area 3 (virtual-link).
Таким образом получается, что посредством virtual-link R8 и R4 устанавливают соседство между собой напрямую. Более подробно этот способ связи, а также настройку сети на примере этой схемы мы рассмотрим в следующей статье.
OSPF (часть первая)
Данная статья была написана для себя, чтоб при необходимости быстро освежить память и разобраться с теорией. Решил ее опубликовать, возможно кому-то будет полезна, а может в чем то ошибаюсь.
В данной статье попытаемся разобраться с теорией работы протокола OSPF. Не будем углубляться в историю и процесс создания протокола, данная информация в изобилии есть почти в каждой статье о OSPF. Мы постараемся более детально разобраться как работает протокол OSPF и как строит свою таблицу маршрутизации. Важно дать общее определение протокола:
OSPF (англ. Open Shortest Path First) — протокол динамической маршрутизации, основанный на технологии отслеживания состояния канала (link-state technology) и использующий для нахождения кратчайшего пути алгоритм Дейкстры.
Возникает сразу вопрос — Что есть технология отслеживания состояния канала? Данное название считаю не совсем удачным. Сложилось так, что существует два типа протоколов динамической маршрутизации: Link-state и Distance-Vector. Рассмотрим их принципы работы:
В Distance-Vector протоколах, маршрутизатор узнает информацию о маршрутах посредством маршрутизаторов непосредственно подключенных в один с ним сегмент сети. То есть, маршрутизатор имеет информацию о топологии только в границах его соседних маршрутизаторов и понятия не имеет как устроена топология за этими маршрутизаторами, ориентируясь только по метрикам. В Link-state протоколах каждый маршрутизатор должен непросто знать самые лучшие маршруты во все удалённые сети, но и иметь в памяти полную карту сети со всеми существующими связями между другими маршрутизаторами в том числе. Это достигается за счет построения специальной базы LSDB, но подробнее об этом позже.
Итак, начнем с того, как же строится LSDB из которой маршрутизатор узнает о всех-всех маршрутах? Построим начальную топологию для изучения. Выглядит она так:
Будем настраивать OSPF. С чего начинается OSPF? C установления соседства между маршрутизаторами — после активации OSPF на интерфейсах маршрутизатора, маршрутизаторы начинают рассылать Hello сообщения. Данное сообщение рассылается на мультикастовый адрес — 224.0.0.5 каждые 10 секунд (Hello Timer). Мы включим сначала OSPF на маршрутизаторе vIOS1.
Посмотрим как выглядит Hello-пакет:
В сообщении важно обратить внимание на такие поля как Area ID, Source OSPF Router. При запуске процесса OSPF выбирается Router ID, который необходим для идентифицирования маршрутизатора среди остальных маршрутизаторов OSPF. Правила выбора данного параметра следующие:
1. Настроен специальной командой router-id A.B.C.D — в формате ip адерса.
2. Настроен один loopback-интерфейс и несколько интерфейсов с различными адресами:
Итак, мы включили OSPF на vIOS1 и он начал каждые 10 секунд отправлять Hello-пакеты. Включим OSPF на vIOS2 и проследим как будут устанавливаться отношения соседства.
Итак, внимательно следим за последовательностью сообщений. Сначала Hello отправляет только маршрутизатор 1.1.1.1 ( 192.168.1.1 ), как только мы включим OSPF на 192.168.1.2, то отправится Hello пакет. vIOS1 и vIOS2 получат Hello пакеты друг у друга и для того, чтоб соседство состоялось важно, чтобы в конфигурации OSPF на обоих маршрутизаторах были одинаковыми следующие параметры:
База LSDB будет содержать в себе информацию о маршрутах и данная LSDB после установления соседства должна быть идентичная на всех маршрутизаторах в пределе одной зоны. И, первым делом, маршрутизаторы после установления соседства начинают процесс синхронизаций своих баз данных друг с другом (vIOS1 c vIOS2). Как можно увидеть все начинается с обменом между собой сообщений DB Description (DBD). Чтоб стало более понятно, расскажем о типах сообщений, который использует OSPF:
Объявление о состоянии канала (Link State Advertisement, LSA) — единица данных, которая описывает локальное состояние маршрутизатора или сети. Множество всех LSA, описывающих маршрутизаторы и сети, образуют базу данных состояния каналов (LSDB). LSDB состоит из нескольких видов LSA. Очень подробно о каждом LSA написано в этой статье. В сообщениях DBD используется достаточно много флагов для определения состояния синхронизации, а также данные сообщения содержат информацию о собственной базе данных. То есть, vIOS1 сообщает в данных сообщениях, что в моей базе есть информация о таких сетях, как 192.168.0/24, 1.1.1.0/24 (LSA Type 1), а vIOS2 в свою очередь сообщает, что у него есть записи о сетях: 192.168.2.0/24, 2.2.2.0/24 (LSA Type 1). После получения сообщений DBD, каждый маршрутизатор отправляет LSAck в подтверждение о полученном сообщении, и, далее, сравнивает информацию в базе соседа со своей. Если найдено, что не достает какой-либо информации, то маршрутизатор отправляет LS Request, где запрашивает полную информацию о каком-либо LSA. Например, vIOS1 запросил LS Request у vIOS2, vIOS2 отправляет в ответ LS Update, в которой уже содержится подробная информация о каждом маршруте. Ниже показан LS Update:
Как видите, в данном сообщении vIOS2 рассказывает об известных ему подсетях и информацию связанную с ними. Также, vIOS1 рассказывает о своей LSDB. И в конце концов, маршрутизаторы имеют одинаковую LSDB. Как только процесс завершен, запускается алгоритм Дейкстры (Shortest Path First). Он рассчитывает все известные маршруты из LSDB и лучшие из них помещает в таблицу маршрутизации. Лучший, тот у которого метрика ниже, но об этом позже.
Задумаемся о вопросе, что будет, если мы активируем OSPF на vIOS3? Так как vIOS3 придется строить LSDB и синхронизировать её с другими маршрутизатора, то встает вопрос с кем именно синхронизировать? С vIOS1 или vIOS2? С каждым по отдельности? Насколько это оптимально? Поэтому в OSPF есть такое понятие как DR — Designated router. Введем данное понятие:
Выделенный маршрутизатор (designated router, DR) — управляет процессом рассылки LSA в сети. Каждый маршрутизатор сети устанавливает отношения соседства с DR. Информация об изменениях в сети отправляется DR, маршрутизатором обнаружившим это изменение, а DR отвечает за то, чтобы эта информация была отправлена остальным маршрутизаторам сети.
Другими словами, если в сегменте сети появляется новый маршрутизатор, то он будет синхронизировать свою LSDB именно с DR. Также важно заметить, что и не только новые, но и все остальные маршрутизаторы при изменении сети или появлении нового маршрута будут сообщать об этом DR, а остальные будут забирать данную информацию с DR. Но тут же возникают вопросы — Что будет, если DR выйдет из строя? Как выбирается DR?
При выходе его из строя должен быть выбран новый DR. Новые отношения соседства должны быть сформированы и, пока базы данных маршрутизаторов не синхронизируются с базой данных нового DR, сеть будет недоступна для пересылки пакетов. Для устранения этого недостатка выбирается BDR — Backup designated router:
Резервный выделенный маршрутизатор (backup designated router, BDR). Каждый маршрутизатор сети устанавливает отношения соседства не только с DR, но и BDR. DR и BDR также устанавливают отношения соседства и между собой. При выходе из строя DR, BDR становится DR и выполняет все его функции. Так как маршрутизаторы сети установили отношения соседства с BDR, то время недоступности сети минимизируется. Таким образом, у нас в сети получаются не только DR, но и BDR. Остальные маршрутизаторы будут получать и сообщать актуальную информацию о сети только посредством их. DR и BDR выбирается только внутри одного сегмента, а не зоны! То есть, у маршрутизаторов vIOS1, vIOS2, vIOS3, vIOS4 будут выбраны одни DR и BDR, а, например, между vIOS и vIOS1 будут определены свои DR и BDR уже относительно их сегмента сети, даже, если они в одной Area 0. Для общения с DR и BDR, маршрутизаторы используют мулитькастовый адрес — 224.0.0.6.
Следующий вопрос — Как выбирается DR/BDR? Применяются следующие критерии:
После получения новой информации от vIOS3, DR рассылает LS Update сообщения всем маршрутизаторам на адрес 224.0.0.5, на что остальные маршрутизаторы, получив пакет отправляют LS Acknowledge для DR, но уже на адрес 224.0.0.6 (адрес для DR/BDR).
По такой же схеме у нас подключается и vIOS4. После синхронизации, у всех маршрутизаторов одна и так же LSDB. Посмотрим как выглядят состояния соседства у vIOS3. Команда show ip ospf neighbor:
Как мы можем увидеть, DR — 2.2.2.2, BDR — 1.1.1.1, а с vIOS4 выбрано состояние 2WAY/DROTHER. О состояниях соседства была дана ссылка выше.
А вот состояния соседства на vIOS1 c установленном соседством c vIOS:
Как видите у него два DR потому, что у него имеется сосед и в другом сегменте сети.
Мультизоны
Рассмотрим принципы работы OSPF в случае, когда используется несколько зон. Изменим нашу топологию, добавив новые маршрутизаторы:
Начнем с того, что сконфигурируем OSPF на vIOS1 и vIOS так, что их интерфейсы Gi0/1 на vIOS и vIOS1 будут находиться в зоне 1. Посмотрим, что изменитcя. vIOS1 теперь имеет интерфейсы и в Area 0 (Gi0/0), и в Area 1 (Gi0/0). Такой маршрутизатор называется ABR — Area Border Router ( чуть ниже дадим более корректное определение ABR). ABR будет рассылать информацию о маршрутах из одной зоны в другую. Делается это посредством LSA Type 3:
Type 3 LSA — Network Summary LSA — суммарное объявление о состоянии каналов сети:
По своей сути, структура LSA Type 3 не сильно отличается от LSA Type 1, но они по-разному влияют на работу протокола. При получения обновленного или при потере какого-либо LSA Type 1&2, запускается заново SPF (алгоритм вычисления кратчайшего пути) и пересчитывает LSDB.
При получении LSA Type 3, данный процесс не происходит — получается маршрут с метрикой в LSA Type 3. В этом LSA хранится данные о том, через какой ABR был получен данный маршрут ( ABR указан в поле Advertising Router) и метрика, чтоб достичь данный ABR уже имеется в LSDB. Таким образом, метрика из LSA Type 3 суммируется с метрикой маршрута до ABR и получаем готовый маршрут без перезапуска SPF. Данный процесс называется Partial SPF calculation. Это довольно важно потому, что в больших сетях размеры LSDB могут быть довольно большими и часто запускать SPF не есть хорошо. Также, создание LSA Type 3 говорит о том, что изменения и пересчет LSDB это дела одной зоны. ABR только сообщает, что с каким-то маршрутом что изменилось.
Также важно заметить, что любой маршрут из ненулевой зоны в любую ненулевую зону проходит через Area 0. Если есть ABR, он не может быть не подключен к Area 0 (исключаем вариант с virtual-link). Area 0 является ядром, которое соединяет все остальные зоны и обеспечивает маршрутизацию между зонами. Определение ABR выглядит так:
Пограничный маршрутизатор (area border router, ABR) — соединяет одну или больше зон с магистральной зоной и выполняет функции шлюза для межзонального трафика. У пограничного маршрутизатора всегда хотя бы один интерфейс принадлежит магистральной зоне. Для каждой присоединенной зоны маршрутизатор поддерживает отдельную базу данных состояния каналов.
Разобрались с установлением соседства, созданием LSDB и SPF, с обычной зоной. А сейчас разберемся с сходимостью и реакцией OSPF на изменения в топологии.
Посмотрим на нашу топологию и представим, что vIOS3 перестал работать (состояние каналов не изменилось). Поможет в перестроении топологии Dead Interval Timer — 40 секунд. Если в течении данного интервала, маршрутизатор не получает Hello-пакета от соседа, то рушится соседство. В нашем случае, DR разошлет LS Update с LSA Type 2, где укажется, что среди подключенных маршрутизаторов нет vIOS3, это приведет к тому, что запустится SPF и пересчитает LSDB уже без LSA полученных от vIOS3. Важно заметить, что на обычном маршрутизаторе типа vIOS4 даже исчерпание Dead Interval Timer и потеря соседства с vIOS3 не приводит к пересчету топологии, именно сообщение LS Update c LSA Type 2 запускает этот процесс.
Type 2 LSA — Network LSA — объявление о состоянии каналов сети:
Включим обратно vIOS3 и установим соседство заново. Следующим экспериментом будет — реакция на отключения интерфейса Gi0/1 на vIOS3. Как только vIOS3 детектирует падения линка, он моментально отправляет LS Update к DR на адрес 224.0.0.6, где сообщается о падении определенных маршрутов при помощи выставления флага в LSA — LS Age равный 3600 секунд. Для LSDB это Max Age и все LSA c Max Age не учитываются при SPF, поэтому их не будет в таблице маршрутизации. Возникает вопрос: А когда Age LSA естественным путем достигает Max Age, что происходит? Для этого в OSPF есть LSRefreshTime — равный половине Max Age, через каждые 1800 секунд отправляется LS Update с маршрутизатора для обновления данных таймеров:
Далее, DR обработав данный LS Update, отправляет всем остальным маршрутизаторам LS Update на адрес 224.0.0.5. Как только, маршрутизаторы получили новую информацию — они отправляют LSAck. Тем самым достигается хорошая сходимость в OSPF.
Выбор лучшего маршрута
Маршрутизатор выбирает лучший маршрут на основании наименьшего значения метрики. Однако, OSPF учитывает и несколько других факторов при выборе маршрута. В данном случае важен источник маршрута и его тип. Приоритет выбора маршрута следующий:
cost = reference bandwidth / link bandwidth. Reference bandwidth — базис пропусной способности. По умолчанию, на Cisco равен 100Mbit.
ABR Loop Prevention. Как мы говорили выше, между зонами принцип работы OSPF похож на distance-vector протокол. Используя механизмы предотвращения петель, можем получить, что выбирается неоптимальный путь. Например, между зонами существует правило подобное Split Horizon из distance-vector протоколов. Рассмотрим это на примере, если изменить нашу топологию на границе зоны 0 и 4 так:
то мы получим, что vIOS18 будет выбирать неоптимальный путь с метрикой 100 через интерфейс Gi0/0. Происходит это в силу того, что vIOS18 не будет учитывать LSA Type 3, полученные не от зоны 0. Также, выше указанное правило запрещает передавать данный LSA Type 3 обратно в зону 0.
Router border что это
Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.
OSPF (Open Shortest Path First) — протокол динамической маршрутизации:
На этой странице описаны общие принципы работы протокола, без привязки к конкретной реализации.
Содержание
[править] Основы протокола
(продублировано в Википедии: [1])
OSPF инкапсулируется в IP. Номер протокола 89.
Для передачи пакетов использует мультикаст адреса:
OSPF представитель семейства Link-State протоколов.
[править] Терминология протокола OSPF
Базовые термины OSPF:
[править] Описание работы протокола
Тут приведено краткое описание работы протокола, которое подробнее описано ниже, в соответствующих разделах. Часть из этих этапов, специфичны для конкретной реализации, и указаны на соответствующих страницах настройки OSPF.
Задача этого раздела дать общее понимание того, как работает протокол. Не все пункты могут быть до конца понятны, но общее представление, скорее всего, появится.
[править] Выбор Router ID
При запуске процесса OSPF на любом маршрутизаторе, обязательно должен быть выбран Router ID.
Router ID — это уникальное имя маршрутизатора, по которому он известен в AS.
В зависимости от реализации, Router ID может выбираться по-разному:
После изменения Router ID, процесс OSPF должен быть перезагружен, а все LSA, которые сгенерировал этот маршрутизатор, должны быть удалены из AS, до перезагрузки.
[править] Соседи. Установка отношений соседства
Обнаружение соседей начинается после того как:
Для обнаружения и мониторинга соседей используются сообщения Hello.
Процедура установки отношений соседства зависит от типа сети, в которой работает OSPF.
[править] Типы сетей, поддерживаемые протоколом OSPF
В разных типах сетей работа OSPF отличается. В том числе отличается процесс установления отношений соседства и настройки протокола.
В реальной жизни, чаще всего используются два типа сетей:
Для broadcast и nonbroadcast сетей (то есть, для сетей с множественным доступом), выбираются DR и BDR.
Как правило, тип сети определяется автоматически, по типу интерфейса. Но может быть задан и вручную.
[править] Отношения соседства (adjacency)
Различают понятия сосед и отношения соседства:
Для того чтобы маршрутизаторы стали соседями:
OSPF не проверяет сеть и маску сети при установке отношений соседства в point-to-point сетях. Поэтому можно использовать IP unnumbered интерфейсы.
Для того чтобы маршрутизаторы установили отношения соседства у них, кроме уже перечисленных критериев, должны совпадать значения IP MTU на интерфейсах. Информация о значении IP MTU передается в DD-пакетах и сравнивается в начале обмена DD-пакетами.
Отношения соседства устанавливаются только на primary адресах.
На интерфейсе может быть настроен secondary адрес. Маршрутизаторы не отправляют hello-пакеты с secondary адреса, не устанавливают отношения соседства на secondary адресах, но сеть secondary адреса может анонсироваться.
[править] Возможные состояния
[править] Выделенный маршрутизатор (DR) и резервный выделенный маршрутизатор (BDR)
В сетях со множественным доступом отношения соседства должны быть установлены между всеми маршрутизаторами. Это приводит к тому, что рассылается большое количество копий LSA. Если, к примеру, количество маршрутизаторов в сети со множественным доступом равно n, то будет установлено n(n-1)/2 отношений соседства. Каждый маршрутизатор будет рассылать n-1 LSA своим соседям, плюс одно LSA для сети, в результате сеть сгенерирует n² LSA.
Для предотвращения проблемы рассылки копий LSA в сетях со множественным доступом выбираются DR и BDR.
Выделенный маршрутизатор (designated router, DR) — управляет процессом рассылки LSA в сети. Каждый маршрутизатор сети устанавливает отношения соседства с DR. Информация об изменениях в сети отправляется DR, маршрутизатором обнаружившим это изменение, а DR отвечает за то, чтобы эта информация была отправлена остальным маршрутизаторам сети.
Недостатком в схеме работы с DR маршрутизатором является то, что при выходе его из строя должен быть выбран новый DR. Новые отношения соседства должны быть сформированы и, пока базы данных маршрутизаторов не синхронизируются с базой данных нового DR, сеть будет недоступна для пересылки пакетов. Для устранения этого недостатка выбирается BDR.
Резервный выделенный маршрутизатор (backup designated router, BDR). Каждый маршрутизатор сети устанавливает отношения соседства не только с DR, но и BDR. DR и BDR также устанавливают отношения соседства и между собой. При выходе из строя DR, BDR становится DR и выполняет все его функции. Так как маршрутизаторы сети установили отношения соседства с BDR, то время недоступности сети минимизируется.
Маршрутизатор, выбранный DR или BDR в одной присоединенной к нему сети со множественным доступом, может не быть DR (BDR) в другой присоединенной сети. Роль DR (BDR) является свойством интерфейса, а не свойством всего маршрутизатора.
[править] Таймеры протокола
[править] Константы протокола
Некоторым параметрам OSPF присвоены фиксированные значения. Ниже описаны эти параметры, их названия и соответствующие им значения:
Каждые 5 минут (CheckAge) выполняется проверка контрольной суммы всех LSA (в Cisco каждые 10 минут).
[править] Зоны OSPF
При разделении автономной системы на зоны, маршрутизаторам, принадлежащим к одной зоне, неизвестна информация о детальной топологии других зон.
Разделение на зоны позволяет:
Каждой зоне присваивается идентификатор зоны (area ID). Идентификатор может быть указан в десятичном формате или в формате записи IP-адреса. Однако идентификаторы зон не являются IP-адресами, и могут совпадать с любым назначенным IP-адресом.
В OSPF взаимодействия между зонами возможно только через зону 0:













