Протокол OSPF

Приветствую тебя суперпользователь, продолжаем говорить о протоколах маршрутизации. Сегодня давай рассмотрим протокол OSPF поговорим о том где применяется этот протокол и так же коротко поговорим о разнице с протоколом RIP.

И так протокол OSPF(Open Shortest Path First), это протокол маршрутизации который лучше всего подходит для больших IP-сетей с множественными маршрутами. Как правило OSPF используется в корпаративных сетях где в среднем 50 локальных сетей и несколько тысяч хостов.

Протокол использует алгоритм Дейкстры (другое название дейкстры - Shortest Path First, отсюда и название протокола, Open означает что спецификация протокола является открытой), первая версия протокола OSPFv1 была разработанна в 1989 году. вторая версия OSPFv2 которая и работает сейчас в большинстве сетей была разработана в 1998 году и третья версия протокола OSPFv3 была разработана в 2008 году, но она предназначена для работы в сетях IPv6.

И так первое отличие от протокола RIP о котором стоит сказать в том, что OSPF это в первую очередь протокол состояния канала. То есть при расчете маршрута расчитывается стоимость маршрута в сети а не только крадчайший путь. Стоимость маршрута состоит из:

Пропускной способности(скорости передачи данных)
Загрузки канала(в теории такой параметр оценки был разработан, но на практике не дал эффективных результатов)
Особенности архитектуры сети и выбор наилучших путей для трафика


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

И так при работе OSPF на первом этапе маршрутизатор отправляет своим соседям маршрутизаторам сообщение на интерфейс со словом "Hello, я маршрутизатор А" для того чтобы проверить их работоспособность. Соседи в свою очередь отправляют в ответ такое же сообщение Hello я маршрутизатор "такой-то".. и передают информацию о своих каналах связи, их пропускную способность и т.д.(Далее пойдет речь только о взаимодействии между маршрутизаторами, без учета других участников сети)

В данном примере маршрутизатор А отправляет запрос к своим соседям B, C, D в свою очередь маршрутизаторы B, C и D отправляют ответ маршрутизатору А и отправляют подобные запросы уже своим соседям.

Такой метод называется "лавинная рассылка" или flooding и это происходит пока все маршрутизаторы в сети не обменяются своей информацией с каждым соседом

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

Так же стоит сказать что всю информацию о состоянии каналов, доступных сетях каждым маршрутизатор записывает в свою личную базу данных которую он ведет(link state database) и эта база данных должна быть синхронизированна по отношению к соседним маршрутизаторам.

Кроме того каждый маршрутизатор, своему следующему соседу расскажет информацию о предыдущем маршрутизаторе которую он от него получил.

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

Далее происходит второй этап "расчет стоимости маршрута" исходя из полученных данных и задает эту стоимость администратор сети.

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

И так от маршрутизатора А до маршрутизатора С стоимость составляет всего "2" поэтому маршрутизатор А начинает расчет нашего пути с маршрутизатора С. Далее, маршрутизатор А рассчитывает стоимость пути по отношению к маршрутизатору В

Тоже самое происходит и с маршрутизатором D его метка становится равна 5. После этого маршрутезатор А помечается и в дальнейшей работе уже не рассматривается.

Далее, тоже самое делает следующий маршрутизатор С. Он начинает рассчитывать крадчайший путь по отношению к нему.

Как рассчитывает метка маршрутизатора? складывается метка самого маршрутизатора плюс стоимость пути. Как ты видешь у маршрутизатора С метка 2 а стоимость пути к маршуртизатору В наврно 3, мы складываем 2 + 3 = 5. Но!! Так как 5 больше чем метка которая уже есть у маршрутизатора В=3 то метка не меняется.. То есть от маршрутизатора А до маршрутизатора В уже есть более "дешовый" по стоимости путь, по этому метка не меняется. Тоже самое происходит и с маршрутизатором D

Метка С равна 2, путь стоит 4 получается 2 + 4 = 6. Но так как есть путь от маршрутизатора А который более "дешовый" метка не меняется. Ну и тоже самое происходит с маршрутизатором D 2 + 1=3 Значит устанавливаем метку маршрутизатору 3, пока не найдем более эффективный "дешовый" маршрут.

После этого маршрутизатор С помечается и в дальнейшем алгоритме работы не учавствует.

И так все продолжается с каждым маршрутизатором, пока все маршруты не будут рассчитаны а маршрутизаторы не будут отмечены

И сейчас если я например захочу рассчитать самый эффективный и короткий путь от А до маршрутизатора F то он будет выглядит следующим образом

Таким образом работает на практике протокол OSPF. С технической точки зрения, основное отличие заключается в том, что OSPF работает значительно быстрее чем RIP. Так же отличается тем что использует непосредственно IP и не использует UDP,TCP.

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

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

А у меня на этом все суперпользователь, сегодня с тобой рассматривали протокол OSPF особеность его работы и отличие от RIP.

До связи.