OSPF Database and LSA
Last updated
Last updated
Все линки, кроме линка R1-R2 являются p2p-линками. Также на R1 был настроен маршрут, который редистрибуцией попадает в OSPF.
Линк между R3 и R4 Находится в другой области. Тип области NSSA. Там также появляется External-маршрут:
Сначала посылается Hello-пакет одним из роутеров:
В ответ ему приходит информация, от другого роутера, что пакет получен. Также там указано новое поле:
После этого происходит переход в состояние 2-way:
Тут происходит выбор DR/BDR, если линк не p2p. Посмотреть можно так:
Далее начинается обмен пустыми DBD-сообщениями (в них не указаны LSA), для выбора Master-роутера, который будет отвечать за синхронизацию LSDB:
Тут же виден MTU. Т.е. если соседство застряло на ExStart, то скорее всего дело в нём.
Вот так выглоядит пакет от соседа:
Master'ом становится роутер с наибольшим Router-ID (В данном случае это 1.1.1.2). Соответственно за синхронизацию LSDB начинает отвечать он и за начальный Sequence Number принимается значение 17499784, а OSPF переходит в следующее состояние.
Тут уже происходит обмен DBD с кратким описанием LSA, имеющихся у роутера:
Первым начал Slave-роутер, взяв DD Sequence у Master-роутера. Далее приходит ответ от Master-роутера с увеличенным на 1 DD Sequence и проставленным Master-Bit'ом:
После этого от Slave-роутера приходит подтверждение о синхронизации основных параметров базы данных и он отсылает мастеру пустой DBD-пакет с актуальным Sequence Number:
Примерно на этом же моменте, или даже чуть ранее, маршрутизаторы сверяют полученную информацию в DBD пакетах с тем, что есть у них и начинают обмениваться LSR, если видят, что у них нет полной информации о конкретной LSA. Это значит, что OSPF перешёл в следующее состояние.
Как и было описано выше, в этом состоянии происходит полная синхронизация LSDB с соседом. Посылаются LSR:
В ответ на них приходит LSU, в которых содержится уже полная информация о LSA. В Ответ на LSU в течение 5-ти секунд должен прийти LSA, иначе произойдёт повторная отсылка LSU. LSA выглядит так:
Информация о типе пакета (LSR/LSU/LSA/DBD) всегда указана в заголовке
Далее речь пойдёт об LSA.
Тут приходит информация о линке. Информация немного отличается, если линк находится в P2P-сети от линка, находящегося в широковещательном домене (Но только, если линки эти подключены напрямую. Если нет, то информация передаётся в целом о сети. Тут стоит посмотреть на LSA с ID 19.19.19.0. Информация о сети пришла от R3):
В LSDB выглядит так:
Тут видно, что в рамках одной LSA передаётся вся информация о линках роутера.
Как я понял, генерируется DR, после чего передаётся всем остальным, но в не зависимости от LSA 2, все роутеры в широковещательной сети всё равно генерируют LSA 1, таким образом сообщая DR, что они находятся в одном с ним широковещтельном домене. Далее их Roter-ID попадают в поле Attached Router. Если в 1 типе LSA ID - это Router ID, то тут в качестве ID выступает сеть. Также тут передаются маска и подключенные к сети роутеры:
В LSDB выглядит так:
Если нам хочется знать что-то о сети из другой области, то нам поможет Summary LSA, которая генерируется ABR и говорит о том, что такая-то сеть доступна через него. Суть состоит в том, что получение такой LSA не вызывает пересчёт SPF. Для этого и нужно разделение на области. Выглядит так:
Выглядит очень просто ID - это сеть. Впридачу идёт маска и ID ABR'а, который её сгенерировал (В данном случае R3).
В LSDB выглядит так (никакой информации о топологии, просто говорится, что сеть доступна и всё):
Эта LSA возникает при редистрибуции маршрутов в OSPF. Выглядит так:
В LSDB выглядит так:
Очень похожа на LSA 3 и в таком неизменном виде она попадает в другую область. Но, роутер в другой области не знает как добраться до роутера, генерирующего этот маршрут (у нас есть только информация о Roter-ID, который сгенерировал LSA 5, но маршрута мы до него не знаем. У нас есть только LSA 3, но они несут только информацию о сетях, которая нам тут не поможет). Для этого генерируется LSA 4:
Т.е. тут ABR говорит, что роутер, сгенерировавший External LSA, доступен через него.
По факту представляет костыль для обхода ограничения 5 типа LSA. Является тем же самым и конвертируется ABR при переходе в другую область в External LSA.
Необходимы для работы CSPF. Собирают и передают в TLV различную информацию, например: зарезервированную пропускную способность, административные группы (цвета линков) и т.д. Пример:
После того как база данных в области была синхронизирована, наступает расчёт кратчайших путей до каждой точки, т.е. запускается алгоритм SPF. После того, как все вычисления прошли, роутер переходит в состояние Full. Далее коммуникация поддерживается Hello-пакетами, а при изменениях высылается LSU, в ответ на которые посылаются LSA.