Протокол OSPF -  протокол динамической маршрутизации. Используется для передачи маршрутной информации между маршрутизаторами в пределах одной автономной системы (AS). OSPF - это наиболее распространенный протокол маршрутизации.

Для обмена маршрутной информацией, OSFP инкапсулируется в IP-пакет и использует мультикаст-адреса. Маршрутная информация в протоколе OSPF представлена в виде LSA (Link State Advertisement). Множество всех LSA, описывающих маршрутизаторы и сети, образуют базу данных состояния каналов (LSDB). 

На L2+ и L3 коммутаторах SNR есть возможность настройки протокола OSPF.

Типы зон OSPF

Разделение AS на зоны OSPF может снизить загрузку CPU маршрутизаторов, сократить размер LSDB и сократить количество пакетов LSA.

Зоны бывают следующих типов:

Типы маршрутизаторов в OSPF

Настройка OSPF

Базовая настройка OSPF на коммутаторах SNR S2990G, S2995G, S3850G, S300G, S4550

Для установления соседства между двумя коммутаторами необходимо задать уникальные имена коммутаторов (Router ID), настроить стыковочную адресацию на L3-интерфейсах, настроить OSPF и указать сети, которые необходимо анонсировать по OSPF.

Допустим, у нас есть два коммутатора SNR-S2995-24FX, которые мы хотим соединить по OSPF и анонсировать клиентскую подсеть 10.10.10.0/24 с R1 на R2:


Динамическая маршрутизация на коммутаторах SNR


conf t 
vlan 10;3000
!
interface vlan 10
 ip address 172.31.1.1 255.255.255.252
 ip ospf message-digest-key 100 md5 7 A/0ubDFuZR0=
 ip ospf cost 500 
!
interface vlan 1000
 ip address 10.10.11.1 255.255.255.0
!
interface Loopback1
 ip address 10.10.10.11 255.255.255.255
!
interface E1/0/1
 switchport access vlan 10
!
router ospf 1
 ospf router-id 10.10.10.11
 area 0 authentication message-digest
 passive-interface Vlan1000
 log-adjacency-changes detail
 network 172.31.1.0/30 area 0
 redistribute connected
end


conf t
vlan 10
interface vlan 10
 ip address 172.31.1.2 255.255.255.252
 ip ospf message-digest-key 100 md5 7 A/0ubDFuZR0=
 ip ospf cost 500
!
interface Loopback1
 ip address 10.10.10.12 255.255.255.255
!
interface E1/0/1
 switchport access vlan 10
!
router ospf 1
 ospf router-id 10.10.10.12
 area 0 authentication message-digest
 log-adjacency-changes detail
 network 172.31.1.0/30 area 0
 redistribute connected
end

redistribute connected - используется для анонса IP-адреса маршрутизатора, а также других connected-сетей;
area <area-ID> authentication message-digest - включает аутентификацию для всех интерфейсов маршрутизатора в определенной зоне;
ip ospf message-digest-key <key-id> md5 7 <hidden-key> - устанавливает ключ аутентификации OSPF на интерфейсе;
log-adjacency-changes detail - используется для журналирования протокола OSPF. В syslog будут выводиться сообщения об изменении состояния канала;
ip ospf cost <1 - 65535> - изменение значения cost на интерфейсе;
passive-interface vlan <if-name> - запрещает отправлять LSA через указанный интерфейс. Например, если за интерфейсом не находится никаких маршрутизаторов и мы не хотим, чтобы устройства за ним получали апдейты протокола OSPF. При этом, сети, объявленные на этом интерфейсе, будут видны с других маршрутизаторов.

Для проверки состояния соседства используется команда:

show ip ospf neighbor

Для просмотра маршрутов, принятых по протоколу OSPF используется команда:

show ip route ospf

Пример настройки OSPF на коммутаторах SNR

В приведенной ниже схеме используется три зоны OSPF: магистральная (area 0), тупиковая (area 1) и NSSA (area 2).


Динамическая маршрутизация на коммутаторах SNR


vlan 1;100;300;1000
Interface Ethernet1/0/1
 description R2
 switchport discard packet untag
 switchport mode trunk
 switchport trunk allowed vlan 100
!
Interface Ethernet1/0/3
 description R3
 switchport discard packet untag
 switchport mode trunk
 switchport trunk allowed vlan 300
!
interface Vlan100
 ip address 172.31.1.1 255.255.255.252
!
interface Vlan300
 ip address 172.31.3.2 255.255.255.252
!
interface Vlan1000
 ip address 10.10.100.1 255.255.255.0
!
interface Loopback1
 ip address 10.10.10.1 255.255.255.255
!
router ospf 1
 ospf router-id 10.10.10.1
 passive-interface Vlan1000
 network 172.31.1.0/30 area 0
 network 172.31.3.0/30 area 0
 redistribute connected
!


vlan 1;100;200;400
!
Interface Ethernet1/0/1
 description R1
 switchport discard packet untag
 switchport mode trunk
 switchport trunk allowed vlan 100
!
Interface Ethernet1/0/2
 description R3
 switchport discard packet untag
 switchport mode trunk
 switchport trunk allowed vlan 200 
!
Interface Ethernet1/0/4
 description R4
 switchport discard packet untag
 switchport mode trunk
 switchport trunk allowed vlan 400 
!
interface Vlan100
 ip address 172.31.1.2 255.255.255.252
!
interface Vlan200
 ip address 172.31.2.1 255.255.255.252
!
interface Vlan400
 ip address 172.31.4.1 255.255.255.252
!
interface Loopback1
 ip address 10.10.10.2 255.255.255.255
!
router ospf 1
 ospf router-id 10.10.10.2
 area 1 stub no-summary
 network 172.31.1.0/30 area 0
 network 172.31.2.0/30 area 0
 network 172.31.4.0/30 area 1
 redistribute connected
!


vlan 1;200;300;500
!
Interface Ethernet1/0/2
 description R2
 switchport discard packet untag
 switchport mode trunk
 switchport trunk allowed vlan 200 
!
Interface Ethernet1/0/3
 description R1
 switchport discard packet untag
 switchport mode trunk
 switchport trunk allowed vlan 300
!
Interface Ethernet1/0/5
 description R5
 switchport discard packet untag
 switchport mode trunk
 switchport trunk allowed vlan 500
!
interface Vlan200
 ip address 172.31.2.2 255.255.255.252
!
interface Vlan300
 ip address 172.31.3.1 255.255.255.252
!
interface Vlan500
 ip address 172.31.5.1 255.255.255.252
!
interface Loopback1
 ip address 10.10.10.3 255.255.255.255
!
router ospf 1
 ospf router-id 10.10.10.3
 area 2 nssa default-information-originate
 network 172.31.2.0/30 area 0
 network 172.31.3.0/30 area 0
 network 172.31.5.0/30 area 2
 redistribute connected
!


vlan 1;400;3000
!
interface Vlan400
 ip address 172.31.4.2 255.255.255.252
!
interface Vlan3000
 ip address 10.10.120.1 255.255.255.0
!
Interface Ethernet1/0/4
 description R2
 switchport discard packet untag
 switchport mode trunk
 switchport trunk allowed vlan 400
!
interface Loopback1
 ip address 10.10.10.4 255.255.255.255
!
router ospf 1
 ospf router-id 10.10.10.4
 passive-interface Vlan3000
 area 1 stub
 network 10.10.10.4/32 area 1
 network 10.10.120.0/24 area 1
 network 172.31.4.0/30 area 1
!


vlan 1;500;2000
!
Interface Ethernet1/0/5
 description R3
 switchport discard packet untag
 switchport mode trunk
 switchport trunk allowed vlan 500;2000 
!
interface Vlan500
 ip address 172.31.5.2 255.255.255.252
!
interface Vlan2000
 ip address 10.10.110.1 255.255.255.0
!
interface Loopback1
 ip address 10.10.10.5 255.255.255.255
!
router ospf 1
 ospf router-id 10.10.10.5
 passive-interface Vlan2000
 area 2 nssa
 network 172.31.5.0/30 area 2
 redistribute connected
!


При перекладывании маршрутов (redistribute) префиксы анонсируются как LSA type 5, а при объявлении командой network - LSA type 1. LSA type 1 распространяются внутри зоны. ABR превращает LSA type 1 в LSA type 3 на границе между зонами. Так получаются Inter-Area маршруты.

LSA type 5 в stub-зонах запрещены. Для totally stub также запрещены и LSA type 3. Вместо них ABR транслирует маршрут по умолчанию.

Таким образом,  при перекладывании маршрутов из stub area никаких маршрутов не будет. Для того, чтобы маршрутизатор внутри тупиковой зоны мог анонсировать свои сети, нужно использовать NSSA, в которой маршрутизаторы транслируют свои redistribute-сети как LSA type 7. ABR в свою очередь, преобразует LSA type 7 в LSA type 5 на границе между зонами.