Протокол OSPF - протокол динамической маршрутизации. Используется для передачи маршрутной информации между маршрутизаторами в пределах одной автономной системы (AS). OSPF - это наиболее распространенный протокол маршрутизации.
Для обмена маршрутной информацией, OSFP инкапсулируется в IP-пакет и использует мультикаст-адреса. Маршрутная информация в протоколе OSPF представлена в виде LSA (Link State Advertisement). Множество всех LSA, описывающих маршрутизаторы и сети, образуют базу данных состояния каналов (LSDB).
На L2+ и L3 коммутаторах SNR есть возможность настройки протокола OSPF.
Разделение AS на зоны OSPF может снизить загрузку CPU маршрутизаторов, сократить размер LSDB и сократить количество пакетов LSA.
Зоны бывают следующих типов:
area X stub
.area X stub no-summary
.area X nssa
.area X nssa no-summary
.Для установления соседства между двумя коммутаторами необходимо задать уникальные имена коммутаторов (Router ID), настроить стыковочную адресацию на L3-интерфейсах, настроить OSPF и указать сети, которые необходимо анонсировать по OSPF.
Допустим, у нас есть два коммутатора SNR-S2995-24FX, которые мы хотим соединить по OSPF и анонсировать клиентскую подсеть 10.10.10.0/24 с R1 на R2:
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: магистральная (area 0), тупиковая (area 1) и NSSA (area 2).
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 на границе между зонами.