Привет, посетитель сайта ZametkiNaPolyah.ru! Решил создать новый раздел в рубрике Компьютерные сети, этот раздел будет называться Протоколы динамической маршрутизации и здесь я попробую рассказать о таких полезных протоколах как OSPF, EIGRP, RIP и BGP, возможно, даже будет что-нибудь про IS-IS, но с ним я на практике не сталкивался, поэтому вопрос тут спорный. Начнем мы с протокола OSPF, который относится к группе IGP протоколов и классу Link-State. Первое означает, что OSPF используется для обмена маршрутной информацией внутри локальной сети, а второе говорит нам о том, что каждый роутер OSPF обладает полной информацией о той сети, в которой он работает.

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

1.1 Введение

Первым протоколом динамической маршрутизации, о котором хотелось бы рассказать является OSPF. Почему OSPF? Потому что именно этот протокол применяется в локальных сетях для обмена маршрутной информацией чаще всего. Дело в том, что старичка RIP используют в основном некрофилы и микротикофилы, EIGRP — проприетарный протокол Cisco и для его работы вся сеть должна быть построена на оборудование этого вендора, BGP — хороший, гибкий, управляемый протокол, но заточен он не для маршрутизации внутри автономной системы, а между автономными системами, время сходимости у BGP значительно выше, нежели у трех других.

1.2 Основы протокола OSPF

Протокол OSPF (Open Shortest Path First) был создан IETF в 1988 и является стандартным протоколом, а также, как не трудно догадаться по названию, открытым, то есть его может использовать любой вендор и более того, реализации протокола OSPF у различных вендоров должны совпадать. Естественно, команды будут отличаться, но структура сообщений и общие принципы должны быть одинаковыми, хотя бывают и трудности с тем, чтобы подружить два маршрутизатора различных вендоров по OSPF.

На данный момент в мире две версии протокола OSPF: OSPFv2 и OSPFv3. Первая используется для динамической маршрутизации IPv4 (RFC 2328), вторая для IPv6 (RFC 2740). Вне зависимости от версии протокола OSPF относится к группе IGP протоколов, а это означает, что используется он в пределах одной автономной системы. Когда мы разберемся с тем, как работает OSPF, вы поймете, что этот протокол не применим для глобальной маршрутизации в силу естественных причин, связанных с производительностью роутеров, им просто не хватит вычислительной мощности, чтобы просчитать все маршруты Интернета по алгоритмам, применяющимся в OSPF.

В основе работы протокола OSPF лежит Алгоритм Дейксты или алгоритм поиска кратчайшего пути, отсюда, собственно и вытекает SPF (shortest path first). Для обмена информацией о маршрутах, а также для обмена дополнительной информацией, использует несколько разных типов пакет. Какие? Потом разберемся. Сейчас нам нужно для себя отметить, что пакеты OSPF инкапсулируются в IP-пакеты. Вы должны помнить, что у IP-пакета есть код вложения, увидев этот код, роутер поймет, что находится внутри IP-пакета, для OSPF зарезервирован код 89. Передача OSPF пакета может происходить как unicast, так и multicast, при этом используется два multicast адреса:

  • 224.0.0.5, этот IP-адрес используют все маршрутизаторы, на которых запущен процесс OSPF, чтобы отправлять сообщения своим соседям;
  • 224.0.0.6, а этот IP-адрес используют так называемые DR-роутеры, для тех же целей – чтобы рассказать что-нибудь своему соседу.

Ну и еще одна важна вещь, о которой стоит сказать. OSPF относится к протоколам типа Link-State, а это означает, что каждый маршрутизатор внутри автономной системы обладает полным представлением о том, как устроена его сеть на уровне IP протокола (то есть на сетевом уровне моделей TCP/IP и OSI 7), в дальнейшем мы убедимся, что это не так и поймем, почему это не так, опять же, всё упирается в производительность железок.

1.3 Терминология протокола OSPF

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

ПРЕДУПРЕЖДЕНИЕ: не пытайтесь заучить эти термины, лучше при прочтении возвращается к этому месту, если какое-то слово покажется вам незнакомым, смысла заучивать нет, все необходимое запомнится само по мере погружения в тему.

Для облегчения задачи мы разделим термины на три группые. Стоит добавить, что терминология OSPF является устоявшейся, но все равно некоторые вендоры могут вводить что-то свое, в этом случае рекомендую обращаться к документации вендора или в Google, там ответ вы точно найдете.

1.3.1 Основные термины протокола OSPF

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

  1. Метрика (metric) – метрика является условным показателем и служит для того, чтобы маршрутизатор мог оценить расстояния до сети назначения, к которой принадлежит IP-адрес назначения в соответствующем поле IP-пакета. Чем больше метрика, тем маршрут хуже. При обмене маршрутной информацией роутеры сообщают метрику своим соседям для каждого передаваемого маршрута, то есть она передается по сети и на ее основе происходят вычисления.
  2. Административное расстояние (AD или administrative distance) – показывает степень надежности источника маршрутной информации, ну или проще говоря – надежность протокола динамической маршрутизации, тут каждый производитель волен выбирать свои значения. Так, например, у Cisco административное расстояние для маршрутов, полученных по EIGRP имеет значение 90, а для маршрутов, полученных по OSPF по умолчанию значение 110, то есть маршрутизатор Cisco считает, что маршруты, полученные по EIGRP более надежны, чем маршруты, полученные по OSPF, почти все сетевые инженеры считают наоборот. Административное расстояние не передается по сети, то есть оно локально для устройства и его можно переназначить для протоколов динамической маршрутизации.
  3. Канал/интерфейс (link/interface) – в контексте протокола OSPF различием между каналом связи и интерфейсом можно пренебречь, под этими словами стоит понимать то, какими характеристиками обладает канал или интерфейс, по которому к маршрутизатору подключается удаленная сеть. Основной характеристикой является пропускная способность канала связи между роутерами. Именно от нее в OSPF рассчитывается метрика и стоимость, о которой ниже.
  4. Стоимость (cost) – опять же, это условное значение, которое считает маршрутизатор для интерфейса, то есть каждый интерфейс маршрутизатора имеет стоимость. Грубо говоря, если пакет хочет пройти через интерфейс, он должен заплатить несколько монет, чем меньше монет он заплатит, тем лучше. Например, у роутера есть два интерфейса, через которые он может отправить пакет в сеть назначения, у первого стоимость 5, а у второго 10, при прочих равных, роутер выберет первый интерфейс, так как у него стоимость меньше. На основе стоимости интерфейсов рассчитывается метрика. По умолчанию стоимость зависит от пропускной способности интерфейса и у роутера есть специальная формула, по которой он эту стоимость высчитывает, хотя администратор может назначить стоимость инетрфейса сам, роутер будет вынужден подчиниться.
  5. Полоса пропускания (bandwidth) – полоса пропускания физического интерфейса роутера.
  6. Reference bandwidth – это пропусная способность, относительно которой вычисляется стоимость интерфейса, по умолчанию она равна 100 Мбит/c, но может быть изменена административно для маршрутизатора, не передается по сети и никак не влияет на реальную полосу пропускания на интерфейсах роутера.
  7. Автономная система (AS или autonomous system) – это группа маршрутизаторов, использующих для обмена маршрутной информацией один и тот же экземпляр протокола динамической маршрутизации. Чуть более подробно про автономные системы рассказано в публикации публичные и частные IP-адреса.
  8. Зона, регион (area) – в протоколе OSPF большая автономная система может делиться на небольшие участки, это позволяет снизить объемы вычислений для отдельно взятых маршрутизаторов, каждый такой участок называют area, зона или регион.
  9. Идентификатор маршрутизатора (RID или Router ID) – это 32-ух битное число очень похожее на IP-адрес протокола IPv4 (но IP-адресом не являющееся), которое идентифицирует маршрутизатор в пределах автономной системы, естественно, это число должно быть для каждого роутера внутри АС уникальным, иначе будет неразбериха и толком работать ничего не будет.
  10. База данных состояния каналов (link state database или LSDB) – протокол OSPF относится к группе Link-State протоколов, а это подразумевает, что маршрутизатор должен где-то хранить информацию о том, в каком состояния находятся каналы связи внутри той автономной системы, в которой работает роутер. То место, в котором эта информация хранится и называется LSDB, каждая запись в этой LSDB называется LSA.
  11. Объявление о состоянии канала (link-state advertisement или LSA) – это запись в LSDB или, если хотите, единица данных, в которой хранится информация о маршрутизаторе или удаленной сети. Для разных записей в LSDB есть свои LSA.

Это были общие термины, относящиеся к протоколу OSPF

1.3.2 Соседи и отношения соседства в OSPF

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

  1. Сосед/соседи (neighbor/neighbors) – это два маршрутизатора, которые находятся в одной канальной среде, но это еще не всё. На интерфейсах этих маршрутизаторов, смотрящих друг на другу, должен быть включен и правильно настроен OSPF, то есть настройки должны быть консистентные с обеих сторон.
  2. Отношение соседства (adjacency) – маршрутизаторы в OSPF должны постоянно синхронизировать свои базы данных, в которых хранится информации о сети, если два маршрутизатора нормально обмениваются такой информацией, то можно сказать, что они имеют соседские отношения.
  3. Hello-протокол (hello-protocol) – для поиска соседей, установления соседства, а также для поддержания соседских отношений маршрутизаторы используют hello-пакеты.
  4. База данных соседей (neighbors database) – маршрутизатор должен знать всех своих соседей, чтобы в случае чего потыкать в них палочкой и что-нибудь уточнить или что-нибудь сообщить своим соседям, например, если появилась новая сеть. Для этих целей у маршрутизаторов есть список соседей, иногда этот список называется neighbors table.

Это основные термины, которыми можно описать взаимоотношения между роутерами в рамках протокола OSPF.

1.3.3 Виды пакетов в OSPF

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

  1. Hello – эти пакеты используются для обнаружения соседей, установления соседских отношений, а также для поддержания соседских отношений или иначе мониторинга соседей (keepalive-ссобщения, роутер как бы спрашивает: есть кто живой на том конце?). Именно в таком порядке, как я написал сообщения hello и применяются.
  2. DBD (Database Description) – такой пакет роутер отправляет своему соседу, чтобы дать краткое описание всех LSA, которые хранятся в его LSDB, нет смысла сразу загружать канал маршрутной информацией, ведь сосед может уже знать эти маршруты. Роутер, получивший DBD, посмотрит его содержимое и сам запросит всю недостающую ему информацию, чтобы синхронизировать базы данных.
  3. LSR (Link-State Request) – этим пакетом роутер отвечает на полученный DBD пакет, в нем он сообщает какую информацию хочет получить от соседа, чтобы базы данных этих роутеров были синхронными. При помощи LSR роутер запрашивает LSU от соседа.
  4. LSU (Link-State Update) – этими пакетами роутер отвечает на LSR, внутри пакетов LSU роутеры передают друг другу недостающие LSA для синхронизации LSDB.
  5. LSAck (Link-State Acknowledgmen) – самыми большими, толстыми и важными пакетами являются LSU, их получение нужно подтверждать, для этих целей есть LSAck. Дело в том, что для передачи сообщений OSPF не используется TCP, это было бы слишком накладно, сложно, дорого и неудобно.

Теперь вы знаете пакеты, которыми обмениваются маршрутизаторы при взаимодействие по протоколу OSPF.

1.4 Как работает протокол OSPF: краткая теория и практика на примере маршрутизаторов Cisco.

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

1.4.1 Схема для демонстрации и настройки IP-протокола на маршрутизаторе

Начнем с того, что я покажу вам схему, с которой мы будем работать и IP-адреса, которые будем использовать. Схему я собирал в EVE-NG, дамп трафика делал при помощи Wireshark, в качестве Telnet клиента я использую SecureCRT. Сама схема показана ниже.

1.1 Схема для демонстрации базовой настройки протокола OSPF на оборудование Cisco

1.1 Схема для демонстрации базовой настройки протокола OSPF на оборудование Cisco

Да, вот так незамысловато. Два роутера, два интерфейса, они подписаны на рисунке. На физическом интерфейсе RO1 я буду использовать IP-адрес 10.0.0.1/24, а на физическом интерфейсе RO2 10.0.0.2/24, у каждого роутера есть Loopback интерфейс, цель которых – имитировать клиентские сети. Если вам так неудобно, то представьте, что к роутеру RO1 подключен компьютер с IP-адресом 1.1.1.1, а к роутеру RO2 подключен компьютер с адресом 2.2.2.2.

Приведу IP настройки роутеров. Сначала RO1:

А теперь RO2:

Теперь можно убедиться, что роутер RO1 ничего не знает о сети 2.2.2.2/32, которая зародилась на маршрутизаторе RO2, для этого просто выполним команду ping с первого маршрутизатора.

ПРИМЕЧАНИЕ: здесь и далее мы будем работать только с бесклассовыми сетями и масками, забудьте о том, что когда были классовые сети. Сам протокол OSPF разрабатывался для работы с бесклассовыми сетями и не применим в классовых.

1.2 Пробуем пропинговать адрес 2.2.2.2 с роутера RO1

1.2 Пробуем пропинговать адрес 2.2.2.2 с роутера RO1

На всякий случай поясню, что точки означают то, что роутер не получил ответа на свой ICMP запрос, но оно и понятно, ведь RO1 не знает, где находится сеть 2.2.2.2/32. В этом можно легко убедиться, посмотрев таблицу маршрутизации командой show ip route.

1.3 Таблица маршрутизации первого роутера сразу после настройки IP

1.3 Таблица маршрутизации первого роутера сразу после настройки IP

Здесь мы видим, что первый роутер знает о сетях, которые называются connected, это сети, которые подключены непосредственно к физическом или логическому интерфейсу роутера, обратите внимание на буковку «С» слева, она как раз и говорит об источнике, от которого маршрутизатор получил маршрут. Также обратите внимание на то, что справа указаны интерфейсы, в которые роутер будет направлять пакеты. Так, например, если придет пакет с IP-адресом 1.1.1.1, роутер направит этот пакет в интерфейс Loopback0 (Lo0), а если IP-адрес назначения у пакета будет из подсети 10.0.0.0/24, то он будет направлен в интерфейс Ethernet2/0 (e2/0).

Но, наш роутер не знает куда направлять пакеты с IP-адресом назначения 2.2.2.2 и это логично, ведь RO2 еще не рассказал RO1 о том, что он знает, как добраться до сети 2.2.2.2/32. Поскольку мы изучаем OSPF, то давайте сделаем так, чтобы RO2 рассказал RO1 о том, что он знает как добраться до сети 2.2.2.2/32 при помощи OSPF, а RO1 рассказал о сети 1.1.1.1/32 своему соседу.

1.4.2 Включаем OSPF на маршрутизаторах

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

Переходим в режим конфигурации командой conf t, а затем проваливаемся дальше – в режим конфигурации протокола OSPF командой router ospf 10. Ключевое слово router используется для указания протокола динамической маршрутизации, нас интересует ospf, хотя могли бы выбрать bgp, eigrp или даже rip. А число 10 означает номер процесса или номер экземпляра OSPF на роутере. В Cisco номера экземпляров OSPF могут не совпадать, это локально значимое число, значение может лежать в диапазоне от 1 до 65535.

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

Но не стоит думать, что команда network просто анонсирует префиксы, она еще и включает на соответствующих интерфейсах роутера протокол OSPF. Так, например, network 1.1.1.1 0.0.0.0 area 0, заставит роутер всем вокруг рассказывать о том, что он знает сеть 1.1.1.1/32, а также включить OSPF на интерфейсе Lo0, так мы не сможем установить соседство с RO2. Поэтому мы написали 10.0.0.0 0.0.0.255 area 0, таким образом наш роутер начнет рассказывать всем вокруг, что он знает сеть 10.0.0.0/24, а также включит OSPF на интерфейсе e2/0 и сможет установить соседство с RO2.

Команду network работает по принципу ACL, она включает OSPF на интерфейсе, который совпадает с указанной сетью и маской, а также анонсирует указанную сеть и маску во все интерфейсы роутера, на которых включен OSPF, то есть сеть 1.1.1.1/32 будет анонсироваться в интерфейс e2/0, потому что до этого мы выполнили команду network 10.0.0.0 0.0.0.255 area 0.

ПРИМЕЧАНИЕ: более детально о том, как включить OSPF на интерфейсе, а также про работу команды network мы поговорим отдельно. Сейчас полученной информации должно хватить.

Осталось разобраться с конструкцией area 0, она сообщает роутеру о том, что интерфейс, на котором нужно включать OSPF относится к нулевому региону. Вы же еще помните про регионы? Так вот, нулевой регион должен быть всегда, про регионы мы поговорим отдельно, сейчас воспринимаем как необходимость.

Стоит заметить, что роутер RO1 уже выбрал себе RID, его можно увидеть, написал команду show ip ospf. Эта информация содержится в первой строке вывода команды.

1.4 Маршрутизатор выбрал себе Router ID

1.4 Маршрутизатор выбрал себе Router ID

Сейчас Router ID совпадает с IP-адресом, назначенном на Loopback интерфейсе, его можно переназначить, но нам это не нужно, в дальнейшем мы поговорим о том, как роутер выбирает себе RID и как его поменять.

Мы еще не включили OSPF на RO2, но если сейчас посмотреть на дамп Wireshark, то можно увидеть, что RO1 уже пытается найти соседей при помощи Hello-пакетов, которые он отправляет на адрес 224.0.0.5.

1.5 Hello-пакеты OSPF в дампе Wireshark

1.5 Hello-пакеты OSPF в дампе Wireshark

RO2 видит эти пакеты, но не отвечает на них, так как понимает, что на нем-то еще OSPF не включен, а значит и Hello-пакеты не для него. Это нужно исправить, включив на RO2 OSPF, давайте это сделаем и создадим процесс с номером 20.

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

1.6 Роутеры стали OSPF соседями

1.6 Роутеры стали OSPF соседями

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

1.4.3 Процесс обнаружения соседей в OSPF

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

1.7 Установление соседства в OSPF

1.7 Установление соседства в OSPF

Тут стоит обратить внимание на то, что сначала роутеры обменялись Hello при помощи multicast адресов, а дальше RO1 делает ARP-запрос с целью выяснения unicast адреса на RO2, дело в том, что роутеры будут синхронизировать свои LSDB уже при помощи unicast. Тут стоит добавить, что соседями становятся только те маршрутизаторы, которые находятся в одной канальной среде.

Чтобы убедиться в том, что соседство установлено, у нас есть команда show ip ospf neighbor.

1.8 Просмотр OSPF соседей

1.8 Просмотр OSPF соседей

Команда нам показывает Router ID соседа, его приоритет, состояние соседства, в данном случае соседство установлено и тип соседства FULL/DR, далее идет время, через которое соседа следует признать умершим, когда сосед ответит, этот таймер опять вернется к своему максимальному значению, следующий столбец показывает unicast адрес, по которому сосед доступен и в последнем столбце мы видим интерфейс, за которым находится наш сосед. Тонкости оставим на потом и двинемся дальше.

1.4.4 Синхронизация LSDB в OSPF или обмен маршрутной информацией

Настало время поговорить о том, как происходит синхронизация LSDB в OSPF или как роутеры рассказывают о известных им маршрутах. Сразу же смотрим в Wireshark, но пока не лезем во внутренности пакетов.

1.9 Процесс обмена маршрутной информацией в OSPF

1.9 Процесс обмена маршрутной информацией в OSPF

Сейчас мы не будем говорить о том, почему первым DBD послал роутер RO2, но позже мы этой поймем. Нам важен сам факт, что после того, как сосед был обнаружен и настройки согласованы, первым был послан DBD пакет, в котором роутеры рассказывают о содержимом свой LSDB.

Когда RO1 понял, что RO2 передал ему полное описание своей LSDB, он направил ему сообщение LSR, а еще после LSR он отправил ему еще один свой DBD. В общем, процесс обмена маршрутной информацией в OSPF нельзя назвать ни синхронным, ни последовательным. Всё зависит от объемов LSDB роутера и может получиться так, что один уже будет передавать LSU, а другой будет еще рассказывать о содержимом LSDB при помощи DBD.

В пакете LSR RO1 сообщил о том, каких LSA, из имеющихся у RO2, нет у RO1. RO2 тоже отправил LSR, но в нем содержится информация о том, каких LSA нет у RO2. А дальше начинается обмен сообщениями LS Update, в которых роутеры делятся недостающей информацией друг с другом, то есть обмениваются маршрутной информацией, по сути известными маршрутами и их показателями в виде метрики. Количество LSU зависит от того, сколько нужно рассказать.

Также обратите внимание на то, что подтверждение LSAack отправляется не для каждого LSU, а после того, как роутер поймет, что он получил всю необходимую информацию для синхронизации от соседа, а как он это поймет? А очень просто, ведь буквально несколько секунд назад он получил полное описание LSDB соседа в пакетах DBD и сравнил его LSDB со своей.

Тут стоит заметить следующее: если бы к роутеру RO2 был подключен роутер RO3, то после того, как он синхронизировал свою LSDB с RO1, ему бы непременно захотелось рассказать о том, что он получил от RO1 своему соседу RO3 и так для каждого соседа в каждой канальной среде. И этот базар будет продолжаться до тех пор, пока маршрутизаторы внутри одного региона не поймут, что их LSDB полностью синхронны. После синхронизации маршрутизаторы будут посылать Hello пакеты на мультикаст адреса. Почему на мультикаст? А тут две цели:

  1. Убедиться, что сосед на том конце все еще жив.
  2. А вдруг в этой канальной среде появится еще один роутер и нам с ним захочется подружиться?
    Это уныние показано в дампе ниже.

1.10 Обмен Hello пакетами после синхронизации LSDB

1.10 Обмен Hello пакетами после синхронизации LSDB

Тут было бы логично задать вопрос: а как нам посмотреть эту самую LSDB, и я вам скажу без утайки, для этого есть команда show ip ospf database, она вам покажет то, чем роутеры обмениваются в своих пакетах DBD.

1.11 Как посмотреть содержимое LSDB на роутере Cisco

1.11 Как посмотреть содержимое LSDB на роутере Cisco

О содержимом этой таблицы после, но уже ясно, что вам этого может оказаться мало, а вдруг вы захотите посмотреть, что роутер передает в своих LSU соседям или иначе – что находится в LSA? Для этого выполните команду show ip ospf database router. На один скрин всё не взлезло, поэтому в виде листинга.

При помощи строки LS Seq Number в листинге и столбца Seq на скрине вы увидите связь между этими двумя выводами. А что потом? Это хороший вопрос и сейчас мы на него ответим.

1.4.5 Наполнение таблицы маршрутизации

LSDB синхронизировались, роутеры получили полную информацию о сети, в которой они очутились, и тут начинается самое важное. Каждый роутер сети запускает алгоритм SPF, цель которого заключается в том, чтобы рассчитать кратчайший путь к каждому известному префиксу, то есть роутер строит кратчайший граф, ребра которого имеют вес (стоимости интерфейсов), у такого графа корнем является сам роутер, производящий эти вычисления. Этот механизм позволяет избежать петель маршрутизации внутри региона OSPF. Сколько таких путей построит роутер? Чаще всего один, но если у него получится два одинаковых пути, что тогда? Тогда будет балансировка, но об этом в другой раз.

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

1.12 Таблица маршрутизации роутера

1.12 Таблица маршрутизации роутера

Здесь мы видим, что самый верхний маршрут имеет слева букву О, это означает, что роутер получил его по OSPF. Обратите внимание, что у этого маршрута появилась вот такая конструкция [110/11] via 10.0.0.1. Число 110 означает административное расстояние, у Cisco для протокола OSPF значение 110, число 11 означает метрику, то есть стоимость. Пакету придется отдать 11 монет, чтобы пройти весь путь. Ну а via 10.0.0.1 означает то, что подсеть 1.1.1.1/32 доступна через соседа с IP-адресом 10.0.0.1.
Есть еще команда show ip ospf rib. Ниже показан ее вывод, но о ней мы поговорим чуть позже.

1.13 RIB таблица маршрутизатора

1.13 RIB таблица маршрутизатора

Теперь нам осталось выяснить, где посмотреть стоимость интерфейса (ее, кстати, можно очень легко изменить), а также посмотреть параметры интерфейса глазами OSPF. Ответим на два вопроса одной командой: show ip ospf interface.

1.14 Параметры и статистика OSPF интерфейса на роутере Cisco

1.14 Параметры и статистика OSPF интерфейса на роутере Cisco

Обратите внимание на то, что данная команда выводит информацию по всем OSPF интерфейсам роутера, у нас их два: Lo0 и e2/0, можно указать конкретный интерфейс show ip ospf interface e2/0, тогда мы получим информацию только за физический интерфейс e2/0, кстати, строку со стоимостью я подсветил, если вы изучите скрин, то увидите, что здесь много полезной информации. Стоит сказать, что зачастую удобнее пользоваться командой show ip ospf interface brief, эта команда дает компактную информацию о интерфейсах OSPF, таких как: номер процесса OSPF, к которому принадлежит интерфейс, номер региона, IP настройки интерфейса, стоимость, состояние и информация о соседях.

1.5 Выводы

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

Возможно, эти записи вам покажутся интересными


Выберете удобный для себя способ, чтобы оставить комментарий

Leave a Comment

Ваш адрес email не будет опубликован.

*

code

Loading Disqus Comments ...