Вы ознакомились с теорией протокола OSPF и готовы к его настройке. Ну чтож, поехали.
Посмотрим на следующую схему сети. Что имеется:
- 3шт. catalyst 3560G с включенной функцией маршрутизации
- маршрутизатор А связывает нашу сеть с сетью Интернет
- к маршрутизаторам Б и В подключены клиенты, находящиеся в 200-ом влане и IP-подсетях 10.0.1.0/24 и 10.0.2.0/24
- у маршрутизаторов Б и В указан статический маршрут до default gateway (маршрутизатор А, 10.0.255.1)
В данной схеме OSPF вроде бы совсем не к чему. Можно его конечно запустить, но плюсов он особо не принесет. А теперь сделаем следущее: соединим маршрутизаторы Б и В между собой. В такой схеме, можно как минимум обеспечить резервирование линков от маршрутизатора Б до А и от В до А, а также быстро заводить новые подсети и распространить маршруты до них в нашей сети — динамическая маршрутизация (в данном случае OSPF) нам в этом поможет.
Итак полученная схема, на которой, как мне кажется, вы сможете понять/посмотреть принципы работы OSPF, которую мы и будем настраивать:
Мы рассмотрим работу OSPF в broadcast среде и на point-to-point соединении.
Приступим
Маршрутизатор А
Switch> enable
Switch# configure terminal
Switch(config)# vlan 10
Switch(config-vlan)# name main
Switch(config-vlan)# exit
Switch(config)# int vlan 10
Switch(config-if)# ip address 10.0.255.1 255.255.255.248
Явно укажем тип среды, в котором будет работать этот интерфейс в OSPF:
Switch(config-if)# ip ospf network broadcast
Switch(config-if)# exit
Продолжаем:
Switch(config)# ip routing
Switch(config)# ip subnet-zero
Switch(config)# ip classless
Переходим к настройке OSPF, номер процесса у нас будет 10:
Switch(config)# router ospf 10
Switch(config-router)# log-adjacency-changes
Зададим RID 255.255.255.255, для того чтобы данный маршрутизатор при выборах DR и BDR всегда выбирался как DR (у кого больший router-id тот и победит в выборах за место DR в сети если у всех маршрутизаторов одинаковый приоритет), а так же потом будет легко его определять ( в выводах show команд) по этому номеру RID как «верхний» маршрутизатор:
Switch(config-router)# router-id 255.255.255.255
Включим протокол OSPF на интерфейсе vlan 10 в Area 0:
Switch(config-router)# network 10.0.255.0 0.0.0.7 area 0
Команда network означает, что маршрутизатор включит протокол OSPF на тех IP интерфейсах, которые попадают под указанную маску подсети.
Укажем что мы хотим распространять default маршрут в сеть OSPF, т.е. данный маршрутизатор будет распространять маршрут по умолчанию:
Switch(config-router)# default-information originate
Сохраним конфигурацию:
Switch(config-router)# exit
Switch(config)# exit
Switch# wri
Маршрутизатор Б
Создадим влан 10, в котором «живут» маршрутизаторы А и В:
Switch> enable
Switch# configure terminal
Switch(config)# vlan 10
Switch(config-vlan)# name main
Создадим влан 200, в котором «живут» клиенты:
Switch(config-vlan)# vlan 200
Switch(config-vlan)# name clients
Switch(config-vlan)# exit
Зададим IP-адреса созданным вланам
Switch(config)# int vlan 10
Switch(config-if)# ip address 10.0.255.2 255.255.255.248
Switch(config-if)# ip ospf network broadcast
Switch(config-if)# int vlan 200
Switch(config-if)# ip address 10.0.1.1 255.255.255.0
Switch(config-if)# exit
Создадим влан 100, в по которому будут обмениваться маршрутизаторы Б и В
Switch(config)# vlan 100
Switch(config-vlan)# name backup
Switch(config-vlan)# exit
Switch(config)# int vlan 100
Switch(config-if)# ip address 10.0.255.9 255.255.255.252
Явно укажем тип среды, в котором будет работать этот интерфейс в OSPF, но не такой как на маршрутизаторе А, т.к. между маршрутизаторами Б и В явно выраженное p2p соединение и нет смысла проводить выборы DR и BDR на p2p линке, там всегда будет только два маршрутизатора: Б и В.
Избавим протокол OSPF от этой необходимости:
Switch(config-if)# ip ospf network point-to-point
Switch(config-if)# exit
Продолжаем:
Switch(config)# ip routing
Switch(config)# ip subnet-zero
Switch(config)# ip classless
Переходим к настройке OSPF. Номер процесса (10) может отличаться, т.к. OSPF не вставляет номер процесса в отправляемые пакеты, но мы оставим 10, мне так удобнее ;):
Switch(config)# router ospf 10
Switch(config-router)# log-adjacency-changes
Switch(config-router)# router-id 1.1.1.1
Switch(config-router)# network 10.0.255.0 0.0.0.7 area 0
Опишем интерфейс vlan 100, но тут я сделаю немного по другому, для примера:
Switch(config-router)# network 10.0.255.9 0.0.0.0 area 0
Обратите внимание на маску, которая равна 0.0.0.0. Таким образом мы указали OSPF, что только интерфейс с данным адресом участвует в OSPF.
Сделаем запись о сети 10.0.1.0/24:
Switch(config-router)# network 10.0.1.0 0.0.0.255 area 0
Сохраним конфигурацию:
Switch(config-router)# exit
Switch(config)# exit
Switch# wri
Маршрутизатор В
Создадим влан 10, в котором «живут» маршрутизаторы А и Б и влан под клиентов:
Switch> enable
Switch# configure terminal
Switch(config)# vlan 10
Switch(config-vlan)# name main
Switch(config-vlan)# vlan 200
Switch(config-vlan)# name clients
Switch(config-vlan)# exit
Зададим IP-адреса на вланы:
Switch(config)# int vlan 10
Switch(config-if)# ip address 10.0.255.3 255.255.255.248
Switch(config-if)# ip ospf network broadcast
Switch(config-if)# int vlan 200
Switch(config-if)# ip address 10.0.2.1 255.255.255.0
Switch(config-if)# exit
Создадим влан 100, в по которому будут обмениваться маршрутизаторы В и Б
Switch(config)# vlan 100
Switch(config-vlan)# name backup
Switch(config-vlan)# exit
Switch(config)# int vlan 100
Switch(config-if)# ip address 10.0.255.10 255.255.255.252
Switch(config-if)# ip ospf network point-to-point
Switch(config-if)# exit
Продолжаем:
Switch(config)# ip routing
Switch(config)# ip subnet-zero
Switch(config)# ip classless
Switch(config)# router ospf 10
Switch(config-router)# log-adjacency-changes
Switch(config-router)# router-id 2.2.2.2
Switch(config-router)# network 10.0.255.0 0.0.0.7 area 0
Switch(config-router)# network 10.0.255.10 0.0.0.0 area 0
Switch(config-router)# network 10.0.2.0 0.0.0.255 area 0
Switch(config-router)# exit
Switch(config)# exit
Switch# wri
Вот в принципе и все, что было необходимо сделать, чтобы протокол OSPF заработал в этой схеме.
Если вы ввсе сделали правильно, то по команде:
Switch# sh ip ospf neighbor
На маршрутизаторе А, вы увидите:
Neighbor ID Pri State Dead Time Address Interface
2.2.2.2 0 FULL/BDR 00:00:30 10.0.255.3 Vlan10
1.1.1.1 0 FULL/DROTHER 00:00:39 10.0.255.2 Vlan10
На маршрутизаторе Б:
Neighbor ID Pri State Dead Time Address Interface
255.255.255.255 0 FULL/DR 00:00:32 10.0.255.1 Vlan10
2.2.2.2 0 FULL/- 00:00:33 10.0.255.10 Vlan100
На маршрутизаторе В:
Neighbor ID Pri State Dead Time Address Interface
255.255.255.255 0 FULL/DR 00:00:32 10.0.255.1 Vlan10
1.1.1.1 0 FULL/- 00:00:33 10.0.255.9 Vlan100
Посмотрите приходящие маршруты по протоколу OSPF:
Switch# show ip route ospf
На маршрутизаторах Б и В среди маршрутов приходящих по OSPF вы должны видеть и default:
O*E2 0.0.0.0/0 [110/1] via 10.0.255.1, 00:01:02, Vlan10
На маршрутизаторе Б, маршрут до сети 10.0.2.0/24 будет проходить по vlan 100, т.к. это кратчайший маршрут:
O 10.0.2.0/24 [110/2] via 10.0.255.10, 00:00:53, Vlan100
Соответственно на маршрутизаторе В:
O 10.0.1.0/24 [110/2] via 10.0.255.9, 00:00:53, Vlan100
Вот ещё несколько полезных команд.
show ip ospf interface
show ip ospf
show ip ospf database
Если по show ip ospf neighbor ничего нет, то:
- проверьте правильно ли вы все сконфигурировали
- «ходит» ли multicast по этим каналам
- не выставлен ли storm-control или ACL на multicast
- воспользуйтесь следующими командами debug:
- debug ip ospf
- debug ip ospf adj
- debug ip ospf hello
- debug ip ospf events
- debug ip ospf packet
- debug ip ospf
Заключение
Протокол OSPF не так прост как может показаться. Я рассмотрел только начало и совсем немного из того, что умеет данный протокол. В данной схеме, благодаря протоколу OSFP, при падении линков между маршрутизаторами Б и А или В и А связность сети не потеряется и пользователи из IP сетей 10.0.1.0/24 и 10.0.2.0/24 всегда будут иметь возможность обмениваться трафиком между собой, а также с сетью Интернет потому, что мы вбросили default маршрут в сеть OSPF.
Ссылки:
З.Ы. При копировании статьи ссылка на источник ОБЯЗАТЕЛЬНА !
З.Ы.Ы. Очепятки возможны. Если вы заметили неточность или у вас есть вопросы по данной схеме, то вы можете написать об этом на нашем форуме с соответствующем разделе.
Автор: Николаев Дмитрий (virus (at) subnets.ru)
Похожие статьи:
- Не найдено
ggrelaxi сказал:
Добавил у себя на сайте it-notes.info видео посвященное настройке OSPF.
12.02.2012, 11:54Видео первое, так что буду рад конструктивной критике