Выбрать главу

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

Эффективное использование пропускной способности

Использование групповых сообщений, вместо широковещательных, предотвращает "затопление" информацией о маршрутах посторонних узлов сети, которые могут быть не заинтересованы в получении этих сведений, что значительно снижает нагрузку на каналы связи. Кроме того, Внутренние Маршрутизаторы (т.е. те, которые не имеют интерфейсов за пределами своей области) не обладают информацией о маршрутах в других областях, за счет чего так же достигается уменьшение трафика маршрутизации. Роутеры, имеющие несколько интерфейсов в более чем одной области, называются Пограничными Маршрутизаторами (Area Border Routers), они поддерживают отдельные топологические базы данных для каждой из областей, с которыми соединены.

Ресурсоемкость

Протокол OSPF основан на алгоритме Shortest Path First, предложенном Э.В. Дийкстрой (E.W.Dijkstra), который требует больших вычислительных затрат, нежели иные алгоритмы маршрутизации. Но в действительности он не так уж и плох, поскольку кратчайший маршрут рассчитывается только в пределах одной области, причем для сетей малого и среднего размеров — это вообще не проблема, так что вы не будете даже обращать внимания на это обстоятельство.

Состояние маршрута

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

Открытость и наличие программного обеспечения под GPL.

OSPF — это открытый протокол, а Zebra выпускается под GPL, что дает дополнительные преимущества перед проприетарными протоколами и программными продуктами.

17.1.1. Предварительные условия.

Ядро Linux:

Собранное с CONFIG_NETLINK_DEV и CONFIG_IP_MULTICAST (я не вполне уверен, возможно требуется еще что-то)

Iproute

Zebra

Пакет может входить в состав вашего дистрибутива. Если нет, обращайтесь на http://www.zebra.org/.

17.1.2. Конфигурирование.

Рассмотрим конфигурирование Zebra на примере сети:

----------------------------------------------------

| 192.168.0.0/24                                   |

|                                                  |

|      Area 0    100BaseTX Switched                |

|     Backbone     Ethernet                        |

----------------------------------------------------

  |           |                |              |

  |           |                |              |

  |eth1       |eth1            |eth0          |

  |100BaseTX  |100BaseTX       |100BaseTX     |100BaseTX

  |.1         |.2              |.253          |

---------   ------------   -----------      ----------------

|R Omega|   |R Atlantis|   |R Legolas|      |R Frodo       |

---------   ------------   -----------      ----------------

  |eth0         |eth0             |             |          |

  |             |                 |             |          |

  |2MbDSL/ATM   |100BaseTX        |10BaseT      |10BaseT   |10BaseT

------------   ------------------------------------       -------------------------------

| Internet |   | 172.17.0.0/16        Area 1      |       |  192.168.1.0/24 wlan  Area 2|

------------   |         Student network (dorm)   |       |       barcelonawireless     |

               ------------------------------------       ------------------------------- 

Пусть вас не пугает эта схема — дело в том, что большую часть работы Zebra выполнит самостоятельно и вам не потребуется вручную "поднимать" все маршруты. Самое главное, что вы должны уяснить из этой схемы — это топология сети. И особое внимание обратите на область 0 (area 0), как самую важную часть. Для начала сконфигурируем zebra под свои потребности (поправим файл zebra.conf):

hostname omega

password xxx

enable password xxx

!

! Описание интерфейсов.

!

!interface lo

! пример описания интерфейса.

! interface eth1 multicast

!

! Статический маршрут по-умолчанию

! ip route 0.0.0.0/0 212.170.21.129

! log file /var/log/zebra/zebra.log

В дистрибутиве Debian, кроме того необходимо подредактировать файл /etc/zebra/daemons, чтобы обеспечить запуск демонов во время загрузки системы.

zebra=yes

ospfd=yes

Затем нужно внести соответствующие изменения в ospfd.conf (для случая IPv4) или в ospf6d.conf (для случая IPv6). Мой ospfd.conf выглядит так:

hostname omega

password xxx

enable password xxx

!

router ospf

 network 192.168.0.0/24 area 0

 network 172.17.0.0/16 area 1

!

! направить вывод на stdout в журнал

log file /var/log/zebra/ospfd.log

Здесь размещены инструкции, описывающие топологию сети.

17.1.3. Запуск zebra

Теперь запустим Zebra. Сделать это можно вручную — дав прямую команду zebra –d, либо с помощью сценария начальной загрузки — /etc/init.d/zebra start. После запуска, в журнале ospfd.log , появятся строки, примерно с таким содержанием: