Настройка и проверка работоспособности OSPF
Здесь описывается базовая конфигурация OSFP для одной и нескольких зон и его проверка.
Планирование и настройка OSPF
Здесь описывается как спланировать и настроить базовую конфигурацию OSPF.
Планирование внедрения OSPF маршрутизации
Когда вы готовитесь к развёртыванию в сети OSPF маршрутизации, необходимо собрать информацию о текущем состоянии сети и необходимых требованиях.
- План адресации - как развернуть OSPF и сделать решение масштабируемым. Детальный план адресации с использованием иерархической структуры подсетей для суммирования, чтобы решение было более простым для масштабирования и оптимизации.
- Сетевая топология - устройства (коммутаторы, маршрутизаторы и т.п.) и линки между ними. Должен быть получен детальный план для того, чтобы понять какие фичи (например, multiple зоны, суммирование, stub-зоны, пеерраспределение и т.п.) могут потребоваться.
- Зоны OSPF - разделение сети на зоны сокращает размер LSDB баз и ограничивает объём обновлений при изменении топологии сети. Маршрутизаторы ABR и ASBR должны быть выбраны в качестве тех, кто выполняет суммирование или перераспределение.
После этого можно делать план по внедрению, который будет включать следующие шаги:
- Определить сетевые требования;
- Собрать требуемые параметры;
- Определить параметры OSPF маршрутизации;
- Настроить OSPF;
- Проверить конфигурацию.
Информация, необходимая для внедрения OSPF:
- IP адреса интерфейсов маршрутизаторов;
- Список маршрутизаторов, на которых будет запущен OSPF, с номерами процессов OSPF и подключёнными сетями, которые будут использоваться и анонсироваться;
- Зоны на интерфейсах;
- Метрики для определённых интерфейсов, для влияния на выбор маршрута. Необходимо определить метрики и интерфейсы на которых они будут применяться.
Список задач, которые надо выполнить на каждом маршрутизаторе из списка:
- Вкл OSPF с корректной командой network (т..е указать нужные сети)
- Присвоить корректный ID зоны на интерфейс (через режим настройки OSPF на интерфейсе или через режим настройки OSPF)
- Опционально настроить нужным интерфейсам метрики.
После внедрения необходимо проверить корректность настроек. Задачи по проверки включают следующие шаги:
- Проверить правильность выбора соседей и установление соседских отношений.
- Проверить, чтобы LSDB содержала верную информацию.
- Проверить таблицы маршрутизации, чтобы они содержали верную информацию.
- Проверить соединение между маршрутизаторами и другими устройствами в сети.
- Проверить, что OSPF ведёт себя как ожидалось в случае появления в сети изменений, протестировав, например, на отказ каналов связи или отказа оборудования.
После развёртывания и проверки необходимо задокументировать всё на будущее. Документация должна содержать топологическую карту, план адресации, зонную архитектуру, сети и интерфейсы, участвующие в маршрутизации OSPF на каждом маршрутизаторе, стандартные и специально определённые метрики, результаты тестов и проверок.
Базовая настройка OSPF
- Включить процесс OSPF на маршрутизаторе командой router ospf process-id ['vrf vpn-name]. Описание параметров дано ниже.
- Определить, какие интерфейсы на маршрутизаторе будут участвовать в маршрутизации OSPF, и определить зоны, используя команду network ip-address wildcard-mask area area-id. Описание параметров дано ниже.
Альтернативным вариантом запуска OSPF является запуск на интерфейсе командой ip ospf process-id area area-id [secondaries none]. Этот вариант упрощает настройку unnumbered интерфейсов. Так как команда конфигурируется прямо на интерфейсе, то она имеет приоритет над командой network area.
Внимание! Для настройки unnumbered интерфейса, используйте команду ip unnumbered interface-type interface-number. Команда запускает IP processing на интерфейсе без явного присвоения ip адреса интерфейсу. Интерфейс будет использовать ip адрес указанного в параметрах команды интерфейса. Интерфейс, указываемый в команде, должен быть при этом UP.
R1(config)# router ospf process-id [vrf vrf-name]
Параметры команды router ospf:
- process-id - Локально используемое значение, идентифицирующее процесс OSPF. Нет никакой необходимости соблюдать единую нумерацию процессов OSPF на разных маршрутизаторах. Не рекомендуется на одном маршрутизаторе запускать несколько процессов OSPF, так как это приведет к созданию нескольких копий базы данных и, соответственно, повышенной нагрузке. Может быть от 1 до 65535.
- vrf vrf-name Необязательный параметр, указывающий имя процесса VRF (VPN Routing and Forwarding).
- ip-address - Адрес сети, подсети или интерфейса. Указывает, по каким линиям (links) OSPF будет генерировать и анализировать объявления. Так же указывает, какие сети участвуют в процессе.
- wildcard-mask - Битовая маска, влияющая на то, как интерпретировать значение адреса. Бит 0 —проверять, 1 — игнорировать. Для примера: 0.0.255.255 — должны совпасть два первых байта. 0.0.0.0 — должны совпасть все байты (обычно, адрес интерфейса). Адрес 0.0.0.0 с маской 255.255.255.255 — все интерфейсы маршрутизатора.
- area-id - Идентификатор области OSPF . Может быть указан в десятичном виде, или в виде, похожем на IP-адрес (A.B.C.D). Принимает значения от 0 до 4294967295.
ip ospf area
- process-id - Локально используемое значение, идентифицирующее процесс OSPF. Может быть от 1 до 65535.
- area-id - Идентификатор области OSPF . Может быть указан в десятичном виде, или в виде, похожем на IP-адрес (A.B.C.D). Принимает значения от 0 до 4294967295.
- second-aries none - (Опционально) Препятствует анонсированию вторичного (secondary IP) адреса на интерфейсе.
Пример однозоной конфигурации OSPF
R1(config)# interface Fa0/0 R1(config-if)# ip address 10.64.0.1 255.255.255.0 R1(config-if)# no shut R1(config-if)# exit R1(config)#
R2(config)# interface Fa0/0 R2(config-if)# ip address 10.64.0.2 255.255.255.0 R2(config-if)# no shut R2(config-if)# interface S0/0/1 R2(config-if)# ip address 10.2.1.2 255.255.255.0 R2(config-if)# bandwidth 64 R2(config-if)# no shut R2(config-if)# exit R2(config)#
R3(config)# interface S0/0/1 R3(config-if)# ip address 10.2.1.1 255.255.255.0 R3(config-if)# bandwidth 64 R3(config-if)# no shut R3(config-if)# exit R3(config)#
R1(config)# router ospf 1 R1(config-router)# network 10.0.0.0 0.255.255.255 area 0 R1(config-router)#
R2(config)# router ospf 50 R2(config-router)# network 10.2.1.2 0.0.0.0 area 0 R2(config-router)# network 10.64.0.2 0.0.0.0 area 0 R2(config-router)#
R3(config)# router ospf 100 R3(config-router)# network 10.2.1.1 0.0.0.0 area 0 R3(config-router)#
Внимание! Команда network используется строго для включения OSPF на одном или нескольких интерфейсах. Команда и её wildcard маска не используются для суммирования маршрутов.
Пример мультизонной конфигурации OSPF
R1(config)# router ospf 1 R1(config-router)# network 10.0.0.0 0.255.255.255 area 0 R1(config-router)#
R2(config)# router ospf 50 R2(config-router)# network 10.2.1.2 0.0.0.0 area 1 R2(config-router)# network 10.64.0.2 0.0.0.0 area 0 R2(config-router)#
R3(config)# router ospf 100 R3(config-router)# network 10.2.1.1 0.0.0.0 area 1 R3(config-router)#
ИЛИ АЛЬТЕРНАТИВНЫЙ ВАРИАНТ
R1(config)# router ospf 1 R1(config-router)# network 10.0.0.0 0.255.255.255 area 0 R1(config-router)#
R2(config)# interface S0/0/1 // <------- R2(config-if)# ip ospf 50 area 1 // <------- R2(config-if)# exit R2(config)# R2(config)# router ospf 50 R2(config-router)# network 10.64.0.2 0.0.0.0 area 0 R2(config-router)#
R3(config)# router ospf 100 R3(config-router)# network 10.2.1.1 0.0.0.0 area 1 R3(config-router)#
Настройка Router ID
A router is known to OSPF by the OSPF router ID number.
LSDBs use the OSPF router ID to differentiate one router from the next.
By default, the router ID is the highest IP address on an active interface at the moment of OSPF process startup.
However, for stability reason, it is recommended that the router-id command or a loopback interface be configured.
Router ID это номер маршрутизатора, необходимый для успешного запуска OSPF. Если OSPF не может определить Router ID – запуск процесса не состоится, так как OSPF использует Router ID для идентификации маршрутизатора в базе данных. Таким образом, у каждого маршрутизатора должен быть уникальный в пределах сети Router ID. Процесс OSPF пытается определить Router ID при запуске. Это 32- битное значение, обычно записываемое в виде ip-адреса. OSPF назначает Router ID из ip-адресов интерфейсов маршрутизатора.
По умолчанию выбирается наибольший адрес с физического интерфейса, для чего необходимо, чтобы хотя бы один физический интерфейс был включен, и не обязательно, чтобы он использовался процессом OSPF, иначе мы получим ошибку:
Router(config)#router ospf 1 2w1d: %OSPF-4-NORTRID: OSPF process 1 cannot start.
Предпочтительно использовать вручную назначенный Router ID, так как адреса физических интерфейсов могут изменяться и, соответственно, будет изменяться Router ID. Понятно, что такое поведение является нежелательным.
Назначить Router ID можно двумя способами: задав адрес для loopback-интерфейса или воспользовавшись командой router-id.
Первый способ более традиционен. Так как loopback-интерфейс является чисто виртуальным, его функционирование не зависит от внешних условий и он никогда не отключится сам по себе. Маршрутизатор предпочтет loopback-интерфейс для получения Router Id даже если адрес указанный на нем будет меньше какого-либо из физических. Если loopback-интерфейсов несколько, будет выбран наибольший адрес. Еще одно преимущество loopback-метода заключается в возможности опубликовать адрес в сеть при помощи OSPF, таким образом, обеспечивая возможность проверки работоспособности маршрутизатора без привязки к одному из физических интерфейсов, которые могут отключиться вследствие неполадок в сети. Естественно, для этого необходимо каждому loopback-интерфейсу назначать адрес из уникальной подсети.
Второй способ появился сравнительно недавно, и присутствует не во всех версиях IOS, но, тем не менее, является предпочтительным по сравнению с остальными, так как позволяет четко, ясно и однозначно задать Router ID маршрутизатору вне зависимости от каких-либо иных факторов. Для настройки Router ID командой router-id нужно сначала перейти в режим конфигурации OSPF при помощи команды router ospf [process-id], и так можно задать любое значение, главное, чтобы оно было уникально в сети.
После выбора router ID оно не меняется, даже если интерфейс, который маршрутизатор использовал в качестве ID ушёл в DOWN. Новое значение Router ID применится после перезапуска OSPF, который либо произойдет сам, при перезагрузке маршрутизатора, либо может быть инициирован командой clear ip ospf process запущенной из режима привилегированного исполнения.
ВНИМАНИЕ!!! Команда clear ip ospf process временно нарушает работоспособность используемой сети!
Если физический интерфейс, адрес которого использовался в качестве router ID, отказал, а маршрутизатор после отказа перезагрузили (или перезапустили процесс OSPF),то router ID изменится. Всё это может доставить много хлопот администратору. Поэтому следует использовать loopback интерфейсы или статически указывать router-id.
Loopback интерфейсы и команда router-id
Общий алгоритм выбора ID маршрутизатора.
Для того, чтобы маршрутизатор выбрал в качестве ID адрес loopback интерфейса, необходимо задать его. Настроенный адрес loopback интерфейса имеет приоритет выше, чем любой адрес на физических интерфейсах. К плюсам такого решения можно отнести тот факт, что loopback интерфейс всегда остаётся активным и не может отказать. Поэтому на всех ключевых маршрутизаторах следует использовать такой тип указания ID. Если loopback интерфейс анонсируется в команде network, то он может быть пинганут, что позволяет использовать его для управления маршрутизатором.
Для loopback интерфейсов каждого из маршрутизаторов необходимо использовать разные подсети. По умолчанию OSPF анонсирует loopback интерфейс с префиксом /32.
Использование команды router-id гарантирует, что OSPF выберет определённый запланированный для этого маршрутизатор. В качестве параметра 32 битное значение в формате ip адреса.
После настройки команды router-id используйте clear ip ospf process команду для перезапуска процесса маршрутизации OSPF.
Пример
Router(config)#router ospf 1 Router(config-router)#router-id 172.16.1.1 Router#clear ip ospf process
Для изменения ID маршрутизатора, чей ID был установлен командой router-id требуется только перезапуск процесса OSPF. Однако, для изменения ID OSPF маршрутизатора, чем ID был настроен через установку ip адреса loopback интерфейса может потребоваться перезапуск маршрутизатора или отключение и повторное включение процесса ospf.
Проверка Router ID
Для проверки Router ID можно воспользоваться командой show ip ospf. Эта команда также полезна тем, что позволяет быстро просмотреть тайминги OSPF и статистику, в том числе – количество запусков алгоритма SPF. Необязательные параметры данной команды позволяют легкостью указать, какую конкретно часть информации вы хотели бы получить.
Router#show ip ospf
Routing Process "ospf 5" with ID 1.11.111.222
Start time: 00:02:54.352, Time elapsed: 00:03:54.772
Supports only single TOS(TOS0) routes
Supports opaque LSA
Supports Link-local Signaling (LLS)
Supports area transit capability
Router is not originating router-LSAs with maximum metric
Initial SPF schedule delay 5000 msecs
Minimum hold time between two consecutive SPFs 10000 msecs
Maximum wait time between two consecutive SPFs 10000 msecs
Incremental-SPF disabled
Minimum LSA interval 5 secs
Minimum LSA arrival 1000 msecs
LSA group pacing timer 240 secs
Interface flood pacing timer 33 msecs
Retransmission pacing timer 66 msecs
Number of external LSA 0. Checksum Sum 0x000000
Number of opaque AS LSA 0. Checksum Sum 0x000000
Number of DCbitless external and opaque AS LSA 0
Number of DoNotAge external and opaque AS LSA 0
Number of areas in this router is 1. 1 normal 0 stub 0 nssa
Number of areas transit capable is 0
External flood list length 0
IETF NSF helper support enabled
Cisco NSF helper support enabled
Area BACKBONE(0) (Inactive)
Number of interfaces in this area is 1
Area has no authentication
SPF algorithm last executed 00:02:32.508 ago
SPF algorithm executed 1 times
Area ranges are
Number of LSA 1. Checksum Sum 0x000E56
Number of opaque link LSA 0. Checksum Sum 0x000000
Number of DCbitless LSA 0
Number of indication LSA 0
Number of DoNotAge LSA 0
Flood list length 0
Проверка работоспособности OSPF
Для проверки корректности настройки OSPF и корректности его работы можно и нужно пользоваться следующими командами из подмножества show-команд:
- show ip ospf - Просмотр ID маршрутизатора, статистики, таймеров, количества запусков SPF, информацию об LSA (Link State Advertisement – Объявление состояния связи).
- show ip ospf interface - Позволяет посмотреть параметры OSPF применительно к интерфейсам маршрутизатора. В частности, очень удобна для проверки принадлежности интерфейса к определенной области OSPF. Кроме этого, можно просмотреть интервалы, включая интервал отсылки приветствия (hello-interval), и количество установленных соседских отношений.
Параметры:
show ip ospf interface [тип номер] [brief]
(Опционально) Тип и номер интерфейса – например FastEthernet 0/0 – позволяют просмотреть параметры только для указанного интерфейса. Brief – (Опционально) краткий вывод информации.
- show ip protocols - Показывает процессы динамической маршрутизации, их параметры, такие как таймеры, фильтры, метрики, сети, протоколы, и прочую информацию, включая статистику.
- show ip route ospf - Показывает маршруты, полученные от процесса OSPF. Наиболее полезная и часто используемая команда, позволяющая проверить результативность работы OSPF. Необязательные параметры можно использовать для уточнения отображаемой информации, например можно указать номер процесса маршрутизации OSPF.
- show ip ospf neighbor - Еще одна, чрезвычайно полезная команда, позволяющая просмотреть список соседних маршрутизаторов, включая из Router ID, состояние соседства, dead-timer (время до признания соседа мертвым, восстанавливается при получении hello-пакета).
Параметры:
show ip ospf neighbor [тип номер] [neighbor-id] [detail]
Тип и номер интерфейса – (Опционально)например FastEthernet 0/0 – позволяют просмотреть параметры только для указанного интерфейса. Neighbor-id – (Опционально) Router ID соседнего маршрутизатора. Detail – (Опционально)подробная информация о соседях.
- debug ip ospf events - для дебага событий, таких как установление соседства, выбор DR, расчёт SPF, flooding information.
- debug ip ospf adj - отслеживает установление и окончание соседства.
- debug ip ospf packet - Отображение пакетов OSPF в реальном времени.
Команда log-adjacency-changes - отправлять syslog-сообщения при изменении статуса соседай (up и down).
R1# show ip protocols
Routing Protocol is “ospf 1”
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
Router ID 10.64.0.1
Number of areas in this router is 1. 1 normal 0 stub 0 nssa
Maximum path: 4
Routing for Networks:
10.0.0.0 0.255.255.255 area 0
Reference bandwidth unit is 100 mbps
<output omitted>
R1# show ip route ospf 10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks O IA 10.2.1.0/24 [110/782] via 10.64.0.2, 00:03:05, FastEthernet0/0 R1#
R2# show ip ospf
Routing Process “ospf 50” with ID 10.64.0.2
<output omitted>
Area BACKBONE(0)
Area has no authentication
SPF algorithm last executed 00:01:25.028 ago
SPF algorithm executed 7 times
<output omitted>
Area 1
Number of interfaces in this area is 1
Area has no authentication
SPF algorithm last executed 00:00:54.636 ago
SPF algorithm executed 3 times
<output omitted>
R1# show ip ospf interface fastEthernet 0/0
FastEthernet0/0 is up, line protocol is up
Internet Address 10.64.0.1/24, Area 0
Process ID 1, Router ID 10.64.0.1, Network Type BROADCAST, Cost: 1
Transmit Delay is 1 sec, State DROTHER, Priority 0
Designated Router (ID) 10.64.0.2, Interface address 10.64.0.2
No backup designated router on this network
Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5
oob-resync timeout 40
Hello due in 00:00:04
Supports Link-local Signaling (LLS)
Index 1/1, flood queue length 0
Next 0x0(0)/0x0(0)
Last flood scan length is 1, maximum is 4
Last flood scan time is 0 msec, maximum is 4 msec
Neighbor Count is 1, Adjacent neighbor count is 1
Adjacent with neighbor 10.64.0.2 (Designated Router)
Suppress hello for 0 neighbor(s)
R2#
R2# show ip ospf
Routing Process “ospf 50” with ID 10.64.0.2
<output omitted>
Area BACKBONE(0)
Area has no authentication
SPF algorithm last executed 00:01:25.028 ago
SPF algorithm executed 7 times
<output omitted>
Area 1
Number of interfaces in this area is 1
Area has no authentication
SPF algorithm last executed 00:00:54.636 ago
SPF algorithm executed 3 times
<output omitted>
R2#
Удаление маршрутов OSPF
- To clear all routes from the IP routing table, use:
Router# clear ip route *
- To clear a specific route from the IP routing table, use:
Router# clear ip route A.B.C.D