OSPF Database and LSA

Все линки, кроме линка R1-R2 являются p2p-линками. Также на R1 был настроен маршрут, который редистрибуцией попадает в OSPF.
root@R1# show policy-options
policy-statement Direct {
from {
protocol direct;
route-filter 1.0.0.1/32 exact;
}
then accept;
}
Линк между R3 и R4 Находится в другой области. Тип области NSSA. Там также появляется External-маршрут:
root@R4# show | compare
[edit interfaces]
+ lo0 {
+ unit 0 {
+ family inet {
+ address 5.5.5.5/32;
+ }
+ }
+ }
[edit protocols ospf]
+ export ospfexport;
[edit]
+ policy-options {
+ policy-statement ospfexport {
+ from {
+ protocol direct;
+ route-filter 5.5.5.5/32 exact;
+ }
+ then accept;
+ }
+ }
1) Init
Сначала посылается Hello-пакет одним из роутеров:

В ответ ему приходит информация, от другого роутера, что пакет получен. Также там указано новое поле:

После этого происходит переход в состояние 2-way:
2) 2-Way
Тут происходит выбор DR/BDR, если линк не p2p. Посмотреть можно так:
root@R1# run show ospf neighbor extensive
Address Interface State ID Pri Dead
192.168.100.2 ge-0/0/0.0 Full 1.1.1.2 128 32
Area 0.0.0.0, opt 0x52, DR 192.168.100.2, BDR 192.168.100.1
Up 00:14:34, adjacent 00:14:04
Topology default (ID 0) -> Bidirectional
3) ExStart
Далее начинается обмен пустыми DBD-сообщениями (в них не указаны LSA), для выбора Master-роутера, который будет отвечать за синхронизацию LSDB:

Тут же виден MTU. Т.е. если соседство застряло на ExStart, то скорее всего дело в нём.
Вот так выглоядит пакет от соседа:

Master'ом становится роутер с наибольшим Router-ID (В данном случае это 1.1.1.2). Соответственно за синхронизацию LSDB начинает отвечать он и за начальный Sequence Number принимается значение 17499784, а OSPF переходит в следующее состояние.
4) ExChange
Тут уже происходит обмен DBD с кратким описанием LSA, имеющихся у роутера:

Первым начал Slave-роутер, взяв DD Sequence у Master-роутера. Далее приходит ответ от Master-роутера с увеличенным на 1 DD Sequence и проставленным Master-Bit'ом:

После этого от Slave-роутера приходит подтверждение о синхронизации основных параметров базы данных и он отсылает мастеру пустой DBD-пакет с актуальным Sequence Number:

Примерно на этом же моменте, или даже чуть ранее, маршрутизаторы сверяют полученную информацию в DBD пакетах с тем, что есть у них и начинают обмениваться LSR, если видят, что у них нет полной информации о конкретной LSA. Это значит, что OSPF перешёл в следующее состояние.
5) Loading
Как и было описано выше, в этом состоянии происходит полная синхронизация LSDB с соседом. Посылаются LSR:

В ответ на них приходит LSU, в которых содержится уже полная информация о LSA. В Ответ на LSU в течение 5-ти секунд должен прийти LSA, иначе произойдёт повторная отсылка LSU. LSA выглядит так:

Далее речь пойдёт об LSA.
5.1) Router LSA (Type 1)
Тут приходит информация о линке. Информация немного отличается, если линк находится в P2P-сети от линка, находящегося в широковещательном домене (Но только, если линки эти подключены напрямую. Если нет, то информация передаётся в целом о сети. Тут стоит посмотреть на LSA с ID 19.19.19.0. Информация о сети пришла от R3):

В LSDB выглядит так:
root@R1> show ospf database extensive
OSPF database, Area 0.0.0.0
Type ID Adv Rtr Seq Age Opt Cksum Len
Router 1.1.1.2 1.1.1.2 0x80000008 1767 0x22 0xf4e0 72
bits 0x0, link count 4
id 1.1.1.3, data 19.19.19.0, Type PointToPoint (1)
Topology count: 0, Default metric: 1
id 19.19.19.0, data 255.255.255.254, Type Stub (3)
Topology count: 0, Default metric: 1
id 192.168.100.2, data 192.168.100.2, Type Transit (2)
Topology count: 0, Default metric: 1
id 1.1.1.2, data 255.255.255.255, Type Stub (3)
Topology count: 0, Default metric: 0
Topology default (ID 0)
Type: Transit, Node ID: 192.168.100.2
Metric: 1, Bidirectional
Type: PointToPoint, Node ID: 1.1.1.3
Metric: 1, Bidirectional
Aging timer 00:30:33
Installed 00:29:26 ago, expires in 00:30:33
Last changed 00:29:26 ago, Change count: 5
Тут видно, что в рамках одной LSA передаётся вся информация о линках роутера.
5.2) Network LSA (Type 2)
Как я понял, генерируется DR, после чего передаётся всем остальным, но в не зависимости от LSA 2, все роутеры в широковещательной сети всё равно генерируют LSA 1, таким образом сообщая DR, что они находятся в одном с ним широковещтельном домене. Далее их Roter-ID попадают в поле Attached Router. Если в 1 типе LSA ID - это Router ID, то тут в качестве ID выступает сеть. Также тут передаются маска и подключенные к сети роутеры:

В LSDB выглядит так:
root@R1> show ospf database extensive
OSPF database, Area 0.0.0.0
Type ID Adv Rtr Seq Age Opt Cksum Len
Network 192.168.100.2 1.1.1.2 0x80000004 926 0x22 0xbd9b 32
mask 255.255.255.0
attached router 1.1.1.2
attached router 1.1.1.1
Topology default (ID 0)
Type: Transit, Node ID: 1.1.1.1
Metric: 0, Bidirectional
Type: Transit, Node ID: 1.1.1.2
Metric: 0, Bidirectional
Aging timer 00:44:34
Installed 00:15:23 ago, expires in 00:44:34
Last changed 02:35:00 ago, Change count: 1
5.3) Summary LSA (Type 3)
Если нам хочется знать что-то о сети из другой области, то нам поможет Summary LSA, которая генерируется ABR и говорит о том, что такая-то сеть доступна через него. Суть состоит в том, что получение такой LSA не вызывает пересчёт SPF. Для этого и нужно разделение на области. Выглядит так:

Выглядит очень просто ID - это сеть. Впридачу идёт маска и ID ABR'а, который её сгенерировал (В данном случае R3).
В LSDB выглядит так (никакой информации о топологии, просто говорится, что сеть доступна и всё):
root@R1> show ospf database extensive
OSPF database, Area 0.0.0.0
Type ID Adv Rtr Seq Age Opt Cksum Len
Summary 25.25.25.0 1.1.1.3 0x80000008 616 0x22 0xcd17 28
mask 255.255.255.254
Topology default (ID 0) -> Metric: 1
Aging timer 00:49:43
Installed 00:10:10 ago, expires in 00:49:44
Last changed 02:35:02 ago, Change count: 1
5.4) External LSA (Type 5)
Эта LSA возникает при редистрибуции маршрутов в OSPF. Выглядит так:

В LSDB выглядит так:
root@R1> show ospf database extensive
OSPF AS SCOPE link state database
Type ID Adv Rtr Seq Age Opt Cksum Len
Extern 5.5.5.5 1.1.1.4 0x80000002 93 0x22 0xe7ae 36
mask 255.255.255.255
Topology default (ID 0)
Type: 2, Metric: 0, Fwd addr: 0.0.0.0, Tag: 0.0.0.0
Aging timer 00:58:27
Installed 00:01:10 ago, expires in 00:58:27
Last changed 00:01:49 ago, Change count: 1
Очень похожа на LSA 3 и в таком неизменном виде она попадает в другую область. Но, роутер в другой области не знает как добраться до роутера, генерирующего этот маршрут (у нас есть только информация о Roter-ID, который сгенерировал LSA 5, но маршрута мы до него не знаем. У нас есть только LSA 3, но они несут только информацию о сетях, которая нам тут не поможет). Для этого генерируется LSA 4:
5.5) ASBR Summary (Type 4)

Т.е. тут ABR говорит, что роутер, сгенерировавший External LSA, доступен через него.
root@R1> show ospf database extensive
OSPF database, Area 0.0.0.0
Type ID Adv Rtr Seq Age Opt Cksum Len
ASBRSum 1.1.1.4 1.1.1.3 0x80000003 80 0x22 0xb21 28
mask 0.0.0.0
Topology default (ID 0) -> Metric: 1
Aging timer 00:58:40
Installed 00:01:10 ago, expires in 00:58:40
Last changed 00:01:49 ago, Change count: 1
5.6) NSSA (Type 7)
По факту представляет костыль для обхода ограничения 5 типа LSA. Является тем же самым и конвертируется ABR при переходе в другую область в External LSA.

root@R4> show ospf database extensive
OSPF database, Area 0.0.0.1
Type ID Adv Rtr Seq Age Opt Cksum Len
NSSA *5.5.5.5 1.1.1.4 0x80000002 1013 0x28 0x73b 36
mask 255.255.255.255
Topology default (ID 0)
Type: 2, Metric: 0, Fwd addr: 25.25.25.1, Tag: 0.0.0.0
Gen timer 00:33:06
Aging timer 00:43:06
Installed 00:16:53 ago, expires in 00:43:07, sent 00:16:44 ago
Last changed 00:16:53 ago, Change count: 2, Ours
5.7) Opaque (Type 10)
Необходимы для работы CSPF. Собирают и передают в TLV различную информацию, например: зарезервированную пропускную способность, административные группы (цвета линков) и т.д. Пример:



root@R3> show ospf database extensive
OSPF database, Area 0.0.0.0
Type ID Adv Rtr Seq Age Opt Cksum Len
OpaqArea 1.0.0.3 1.1.1.1 0x80000001 1763 0x22 0x70d4 124
Area-opaque TE LSA
Link (2), length 100:
Linktype (1), length 1:
2
LinkID (2), length 4:
192.168.100.2
LocIfAdr (3), length 4:
192.168.100.1
RemIfAdr (4), length 4:
0.0.0.0
TEMetric (5), length 4:
1
MaxBW (6), length 4:
1000Mbps
MaxRsvBW (7), length 4:
1000Mbps
UnRsvBW (8), length 32:
Priority 0, 1000Mbps
Priority 1, 1000Mbps
Priority 2, 1000Mbps
Priority 3, 1000Mbps
Priority 4, 1000Mbps
Priority 5, 1000Mbps
Priority 6, 1000Mbps
Priority 7, 1000Mbps
Color (9), length 4:
33554432
Aging timer 00:30:37
Installed 00:29:21 ago, expires in 00:30:37
Last changed 00:29:21 ago, Change count: 1
6) Full
После того как база данных в области была синхронизирована, наступает расчёт кратчайших путей до каждой точки, т.е. запускается алгоритм SPF. После того, как все вычисления прошли, роутер переходит в состояние Full. Далее коммуникация поддерживается Hello-пакетами, а при изменениях высылается LSU, в ответ на которые посылаются LSA.
Last updated
Was this helpful?