След Ospf: От Lsa До Подсчета

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

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

Для организации этих данных OSPF использует структуру, называемую LSA — объявление о состоянии канала.

Алгоритм SPF также широко известен; задание на его реализацию можно найти в программе любого современного технического университета.

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

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

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

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

След OSPF: от LSA до подсчета

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

Предварительный конфиг включает только адресацию (в качестве примера приведен R5):

  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
   

R5(config)#interface Loopback0 R5(config-if)# ip address 5.5.5.5 255.255.255.255 R5(config)#interface FastEthernet0/1 R5(config-if)# ip address 192.168.45.5 255.255.255.0 R5(config-if)# no shutdown



LSA1: LSA маршрутизатора

Чтобы построить график, нам нужно определиться, с чем мы имеем дело.

В соответствии с RFC 2328 разделы 2.1 OSPF работает на основе ориентированного графа: узлы представляют подсети и маршрутизаторы, а ребра представляют соединения между ними.

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

Создадим первый узел, соответствующий R1:

R1(config)#router ospf 1 R1#show ip ospf database OSPF Router with ID (1.1.1.1) (Process ID 1)

LSDB на данный момент пуста, поскольку IOS требует хотя бы один активный интерфейс OSPF для инициализации процесса.

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

След OSPF: от LSA до подсчета

Изображение 2. Добавлены LSA1, R1 Порадуем iOS, добавив в топологию 1.1.1.1/32:

R1(config)#router ospf 1 R1(config-router)#router-id 1.1.1.1 R1(config-router)#network 1.1.1.1 0.0.0.0 area 0 R1# R1#show ip ospf database OSPF Router with ID (1.1.1.1) (Process ID 1) Router Link States (Area 0) Link ID ADV Router Age Seq# Checksum Link count 1.1.1.1 1.1.1.1 21 0x80000001 0x00D055 1

Мы получили наш первый LSA1. Прежде чем перейти непосредственно к его содержанию, обратимся к формат :

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LS age | Options | 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Link State ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Advertising Router | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LS sequence number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LS checksum | length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0 |V|E|B| 0 | # links | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Link ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Link Data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | # TOS | metric | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | .

| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TOS | 0 | TOS metric | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Link ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Link Data | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | .

|

Заголовок LSA1 позволяет построить узел графа, соответствующий маршрутизатору, на основе поля Link State ID или рекламного маршрутизатора.

Остальная часть LSA1 посвящена описанию подсетей (узлов графа) и соединений (ребер графа).

OSPF различает 4 типа соединений:

  1. точка-точка;
  2. промежуточный (транзитный);
  3. финальный (заглушка);
  4. виртуальный (виртуальный).

Давайте посмотрим, что такое тип 1.1.1.1/32:

R1#show ip ospf database router 1.1.1.1 OSPF Router with ID (1.1.1.1) (Process ID 1) Router Link States (Area 0) LS age: 55 Options: (No TOS-capability, DC) LS Type: Router Links Link State ID: 1.1.1.1 Advertising Router: 1.1.1.1 LS Seq Number: 80000001 Checksum: 0xD055 Length: 36 Number of Links: 1 Link connected to: a Stub Network (Link ID) Network/subnet number: 1.1.1.1 (Link Data) Network Mask: 255.255.255.255 Number of MTID metrics: 0 TOS 0 Metrics: 1

1.1.1.1/32 — это конечное соединение, которое обычно соответствует префиксам конечных устройств.

На уровне графа такая подсеть является листом, поскольку подразумевает отсутствие соседей OSPF. Вершина графа соединена с одним узлом маршрутизатора двумя ребрами, соответствующими каждому направлению.



След OSPF: от LSA до подсчета

Изображение 3. LSA1, добавлено конечное соединение Финальное соединение содержит всю необходимую информацию для построения соответствующей части графа: подсеть, маску и исходящий вес (входящий вес ребра всегда равен нулю).

Узел маршрутизатора описан в заголовке LSA1 (LSID); однако подключение одной и той же подсети к разным маршрутизаторам также допустимо, что позволяет реализовать ECMP. Следующий тип соединения — «точка-точка»: он описывает соединение с другим маршрутизатором OSPF. Давайте включим OSPF на R2, чтобы установить смежность в соединении R1-R2, используя указанный выше тип:

R1(config)#interface f0/1 R1(config-if)#ip ospf network point-to-point R1(config-if)#ip ospf 1 area 0



R2(config)#router ospf 1 R2(config-router)#router-id 2.2.2.2 R2(config)#interface f0/1 R2(config-if)#ip ospf network point-to-point R2(config-if)#ip ospf 1 area 0



R1#show ip ospf database OSPF Router with ID (1.1.1.1) (Process ID 1) Router Link States (Area 0) Link ID ADV Router Age Seq# Checksum Link count 1.1.1.1 1.1.1.1 41 0x8000001D 0x00B441 3 2.2.2.2 2.2.2.2 42 0x80000001 0x0055CC 2

Как и следовало ожидать, существует новый LSA1, описывающий R2. Обратите внимание на «странный» шаг изменения количества подключений: OSPF начал работать на одном физическом интерфейсе, а количество подключений увеличилось на 2 для каждого LSA1.

R1#show ip ospf database router 1.1.1.1 OSPF Router with ID (1.1.1.1) (Process ID 1) Router Link States (Area 0) LS age: 283 Options: (No TOS-capability, DC) LS Type: Router Links Link State ID: 1.1.1.1 Advertising Router: 1.1.1.1 LS Seq Number: 8000001D Checksum: 0xB441 Length: 60 Number of Links: 3 Link connected to: a Stub Network (Link ID) Network/subnet number: 1.1.1.1 (Link Data) Network Mask: 255.255.255.255 Number of MTID metrics: 0 TOS 0 Metrics: 1 Link connected to: another Router (point-to-point) (Link ID) Neighboring Router ID: 2.2.2.2 (Link Data) Router Interface address: 192.168.12.1 Number of MTID metrics: 0 TOS 0 Metrics: 1 Link connected to: a Stub Network (Link ID) Network/subnet number: 192.168.12.0 (Link Data) Network Mask: 255.255.255.0 Number of MTID metrics: 0 TOS 0 Metrics: 1

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

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

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

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

След OSPF: от LSA до подсчета

Изображение 4. LSA1, добавлено соединение «точка-точка» Виртуальное подключение выходит за рамки этой статьи, поскольку оно относится к специальным инструментам пожаротушения, а не к проверенным решениям в рамках хорошо продуманной конструкции.

Однако эта любопытная сущность может представлять интерес сама по себе, поэтому, если вы хотите копнуть глубже, обратите внимание на Эта статья Петра Лапухова.

Остается последний тип связи – промежуточный (не путать с транзитной способностью!).



LSA2: сетевой LSA

Соединения «точка-точка» описывают прямую связь между маршрутизаторами без промежуточных устройств.

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

С другой стороны, среда вещания требует другого подхода, поскольку использование соединений «точка-точка» было бы неэффективно.

Давайте возьмем в качестве примера сегмент L2 между R2, R3 и R4. Очевидно, что не существует ребра, соединяющего более двух вершин.

Число соединений «точка-точка» в такой среде растет как O(n 2 ), что выражается в низкой масштабируемости решения из-за повышенной нагрузки на процессор и оперативную память.

Однако оптимизация довольно проста: вам просто нужно.

(не то, что вы думаете) использовать псевдоузел вместо сегмента L2, который подключен к каждому маршрутизатору на этом сегменте.

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

Маршрутизатор, отвечающий за псевдоузел, называется назначенным маршрутизатором (DR); вершина графа, соответствующая псевдоузлу, описывается с помощью LSA2; ребро графа между вершинами и псевдоузлом определяется промежуточным соединением из LSA1 и содержимым LSA2. Настроим OSPF на R2, R3 и R4, оставив настройки типа подключения неизменными (по умолчанию — промежуточный).



R2(config)#interface f0/0 R2(config-if)#ip ospf 1 area 0



R3(config)#router ospf 1 R3(config-router)#router-id 3.3.3.3 R3(config)#interface f0/0 R3(config-if)#ip ospf 1 area 0



R4(config)#router ospf 1 R4(config-router)#router-id 4.4.4.4 R4(config)#interface f0/0 R4(config-if)#ip ospf 1 area 0



R2#show ip ospf neighbor Neighbor ID Pri State Dead Time Address Interface 3.3.3.3 1 FULL/BDR 00:00:38 192.168.234.3 FastEthernet0/0 4.4.4.4 1 FULL/DR 00:00:35 192.168.234.4 FastEthernet0/0 1.1.1.1 0 FULL/ - 00:00:35 192.168.12.1 FastEthernet0/1 R2# R2#show ip ospf database OSPF Router with ID (2.2.2.2) (Process ID 1) Router Link States (Area 0) Link ID ADV Router Age Seq# Checksum Link count 1.1.1.1 1.1.1.1 538 0x80000022 0x00AA46 3 2.2.2.2 2.2.2.2 116 0x80000008 0x005804 3 3.3.3.3 3.3.3.3 118 0x80000002 0x004228 1 4.4.4.4 4.4.4.4 117 0x80000002 0x00045D 1 Net Link States (Area 0) Link ID ADV Router Age Seq# Checksum 192.168.234.4 4.4.4.4 117 0x80000001 0x00F0B8

Как мы видим, LSA2 действительно создан R4 (4.4.4.4), который на данный момент является DR. Упрощенный Процесс выбора ДР можно описать так:

  1. составить список маршрутизаторов, участвующих в выборах (ненулевой приоритет);
  2. выбрать наивысший приоритет;
  3. выберите самый большой RID.
Резервный DR (BDR) проходит тот же процесс согласования, что и DR, за одним важным исключением: выбранный DR не может быть смещен до тех пор, пока не произойдет сбой, в то время как роль BDR может динамически переходить к маршрутизатору с параметрами более высокого приоритета.

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

BDR ведет себя точно так же, как DR, за исключением генерации LSA2, что уменьшает сбои в маршрутизации в случае сбоя DR. Давайте сначала посмотрим на LSA1:

R2#show ip ospf database router 2.2.2.2 OSPF Router with ID (2.2.2.2) (Process ID 1) Router Link States (Area 0) LS age: 425 Options: (No TOS-capability, DC) LS Type: Router Links Link State ID: 2.2.2.2 Advertising Router: 2.2.2.2 LS Seq Number: 8000000F Checksum: 0x4A0B Length: 60 Number of Links: 3 Link connected to: a Transit Network (Link ID) Designated Router address: 192.168.234.4 (Link Data) Router Interface address: 192.168.234.2 Number of MTID metrics: 0 TOS 0 Metrics: 1 Link connected to: another Router (point-to-point) (Link ID) Neighboring Router ID: 1.1.1.1 (Link Data) Router Interface address: 192.168.12.2 Number of MTID metrics: 0 TOS 0 Metrics: 1 Link connected to: a Stub Network (Link ID) Network/subnet number: 192.168.12.0 (Link Data) Network Mask: 255.255.255.0 Number of MTID metrics: 0 TOS 0 Metrics: 1

Наконец, у нас есть промежуточное соединение.

Как вы уже могли догадаться, идентификатор DR равен LSID соответствующего LSA2, т.е.

IP-адресу DR. Как и соединения «точка-точка», промежуточное соединение описывает IP-адрес и вес интерфейса.

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

Кроме того, информация о подсети самого сегмента L2 также недоступна.

Давайте посмотрим на формат LSA2:

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LS age | Options | 2 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Link State ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Advertising Router | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LS sequence number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LS checksum | length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Network Mask | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Attached Router | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | .

|

LSA2 содержит недостающие части изображения: список соседних RID и маску подсети.



R2#show ip ospf database network OSPF Router with ID (2.2.2.2) (Process ID 1) Net Link States (Area 0) Routing Bit Set on this LSA in topology Base with MTID 0 LS age: 459 Options: (No TOS-capability, DC) LS Type: Network Links Link State ID: 192.168.234.4 (address of Designated Router) Advertising Router: 4.4.4.4 LS Seq Number: 80000002 Checksum: 0xEEB9 Length: 36 Network Mask: /24 Attached Router: 4.4.4.4 Attached Router: 2.2.2.2 Attached Router: 3.3.3.3

Теперь у нас есть вся необходимая информация для расширения графа промежуточным сегментом:

След OSPF: от LSA до подсчета

Изображение 5: добавлен LSA2. Здесь стоит отметить еще пару моментов.

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

Во-вторых, в LSA2 встроена информация о подсети: маска указывается явно, а адрес подсети можно получить из LSID и длины самого префикса.

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

  1. одновременно с соединениями «точка-точка» не создаются конечные соединения;
  2. промежуточные соединения включают маску /32 в LSA2 как специальный знак того, что такой маршрут следует игнорировать; в худшем случае будет доступен только адрес DR, но не остальная часть подсети.

LSA1 и LSA2 позволяют построить целый граф для одной зоны.

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



LSA5: внешний LSA AS

Этот LSA относительно прост: он объявляет внешнюю подсеть, маску и дополнительную информацию, которая может облегчить жизнь (или значительно усложнить ее).

Формат этой структуры следующий:

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LS age | Options | 5 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Link State ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Advertising Router | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LS sequence number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LS checksum | length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Network Mask | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| 0 | metric | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Forwarding address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | External Route Tag | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| TOS | TOS metric | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Forwarding address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | External Route Tag | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | .

|

LSID равен подсети, явно указаны маска и метрика.

Информации достаточно для построения вершины и соответствующих ей ребер, в целом ситуация аналогична листовым соединениям из LSA1. Если вы хотите узнать больше о нюансах Forwarding Address (FA), я бы посоветовал этот блог и ссылки в начале на другие статьи.

Они посвящены LSA5 FA и соответствующим спецэффектам, которые в какой-то момент могут быть полезным .

Для остальных полей LSA5 описания из RFC 2338, раздел A.4.5 более, чем достаточно.

В нашей схеме R3 генерирует LSA5, добавляя в OSPF адреса подключенных сетей (в нашем случае шлейф 0):

R3(config)#router ospf 1 R3(config-router)#redistribute connected subnets R3# R3#show ip ospf database OSPF Router with ID (3.3.3.3) (Process ID 1) Router Link States (Area 0) Link ID ADV Router Age Seq# Checksum Link count 1.1.1.1 1.1.1.1 441 0x80000025 0x00A449 3 2.2.2.2 2.2.2.2 962 0x80000011 0x00460D 3 3.3.3.3 3.3.3.3 23 0x80000009 0x003A27 1 4.4.4.4 4.4.4.4 1085 0x8000000A 0x00F365 1 Net Link States (Area 0) Link ID ADV Router Age Seq# Checksum 192.168.234.4 4.4.4.4 835 0x80000004 0x00EABB Type-5 AS External Link States Link ID ADV Router Age Seq# Checksum Tag 3.3.3.3 3.3.3.3 2 0x80000001 0x000385 0 R3# R3#show ip ospf database external OSPF Router with ID (3.3.3.3) (Process ID 1) Type-5 AS External Link States LS age: 38 Options: (No TOS-capability, DC, Upward) LS Type: AS External Link Link State ID: 3.3.3.3 (External Network Number ) Advertising Router: 3.3.3.3 LS Seq Number: 80000001 Checksum: 0x385 Length: 36 Network Mask: /32 Metric Type: 2 (Larger than any link state path) MTID: 0 Metric: 20 Forward Address: 0.0.0.0 External Route Tag: 0

Стоит помнить, что LSA5 распространяется по всей автономной системе OSPF, а не только в одной зоне.

Для продолжения графа необходима информация о вершине (LSA5 LSID), ребре (Рекламный маршрутизатор) и весе ребра:

След OSPF: от LSA до подсчета

Изображение 6. Добавлен LSA5. Это все о роли LSA5 в построении графов.

Почти все.



LSA3: сводный обзор LSA

Перейдем пока к межзональной связности.

Первое впечатление обманчиво: этот LSA не имеет ничего общего с суммированием префиксов в обычном понимании.

Он предназначен для суммирования информации о топологии при передаче из одной зоны в другую: LSA1 и LSA2, используемые для построения графа, не передаются между зонами, а превращаются в LSA3 на базе LSDB или RIB (подробнее об этом позже).

Формат LSA3 выглядит следующим образом:

0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LS age | Options | 3 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Link State ID | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Advertising Router | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LS sequence number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | LS checksum | length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Network Mask | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 0 | metric | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | TOS | TOS metric | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | .

|

Идея аналогична идее с LSA5: перенести подсеть (LSA3 LSID), маску и метрику в другую зону.

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

Таким образом, OSPF, используя несколько зон, ведет себя как протокол маршрутизации на основе вектора расстояния (DV).

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

Логика DV обычно включает в себя какой-либо механизм защиты от петель маршрутизации, например разделение горизонта, DUAL и т. д. OSPF использует совершенно другой подход: LSA3 может пересекать границу зоны, только если одна из зон является зоной 0 (она же магистраль).

Это позволяет построить дерево высоты 2: зона 0 является корневой, а остальные зоны находятся на следующем уровне после зоны 0. Очевидно, что в такой схеме невозможны петли маршрутизации, так как путь только один - через зона поддержки.

Настроим зону 1 на R4 и R5:

R4(config)#interface f0/1 R4(config-if)#ip ospf 1 area 1 R4(config-if)#ip ospf network point-to-point



R5(config)#router ospf 1 R5(config-router)#router-id 5.5.5.5 R5(config)#intreface f0/1 R5(config-if)#ip ospf 1 area 1 R5(config-if)#ip ospf network point-to-point R5(config)#interface lo 1 R5(config-if)#ip address 5.5.5.5 255.255.255.255 R5(config-if)#ip ospf 1 area 1 R5(config)#interface lo 2 R5(config-if)#ip address 5.5.5.55 255.255.255.255 R5(config-if)#ip ospf 1 area 1



R2#show ip ospf database OSPF Router with ID (2.2.2.2) (Process ID 1) Router Link States (Area 0) Link ID ADV Router Age Seq# Checksum Link count 1.1.1.1 1.1.1.1 782 0x80000027 0x00A04B 3 2.2.2.2 2.2.2.2 1339 0x80000013 0x00420F 3 3.3.3.3 3.3.3.3 422 0x8000000B 0x003629 1 4.4.4.4 4.4.4.4 252 0x8000000D 0x00F064 1 Net Link States (Area 0) Link ID ADV Router Age Seq# Checksum 192.168.234.4 4.4.4.4 1235 0x80000006 0x00E6BD Summary Net Link States (Area 0) Link ID ADV Router Age Seq# Checksum 5.5.5.5 4.4.4.4 170 0x80000001 0x003ED8 5.5.5.55 4.4.4.4 156 0x80000001 0x00489C 192.168.45.0 4.4.4.4 242 0x80000001 0x00781D Type-5 AS External Link States Link ID ADV Router Age Seq# Checksum Tag 3.3.3.3 3.3.3.3 422 0x80000003 0x00FE87 0

Как и следовало ожидать, префиксы из зоны 1 отображаются как LSA3. R4, будучи ABR, является рекламным маршрутизатором.

С точки зрения зоны 0 все подобные префиксы подключаются напрямую к R4, что позволяет скрыть детали топологии зоны 1.

R2#show ip ospf database summary adv-router 4.4.4.4 OSPF Router with ID (2.2.2.2) (Process ID 1) Summary Net Link States (Area 0) Routing Bit Set on this LSA in topology Base with MTID 0 LS age: 823 Options: (No TOS-capability, DC, Upward) LS Type: Summary Links(Network) Link State ID: 5.5.5.5 (summary Network Number) Advertising Router: 4.4.4.4 LS Seq Number: 80000001 Checksum: 0x3ED8 Length: 28 Network Mask: /32 MTID: 0 Metric: 2 Routing Bit Set on this LSA in topology Base with MTID 0 LS age: 809 Options: (No TOS-capability, DC, Upward) LS Type: Summary Links(Network)

Теги: #cisco #cisco #Сетевые технологии #it-инфраструктура #ospf #area #as-external lsa #lsa #router lsa #network lsa #summary lsa #asbr-summary lsa #multiarea

Вместе с данным постом часто просматривают: