Протокол OSPF - протокол динамической маршрутизации. Используется для передачи маршрутной информации между маршрутизаторами в пределах одной автономной системы (AS). OSPF - это наиболее распространенный протокол маршрутизации.
Для обмена маршрутной информацией, OSFP инкапсулируется в IP-пакет и использует мультикаст-адреса. Маршрутная информация в протоколе OSPF представлена в виде LSA (Link State Advertisement). Множество всех LSA, описывающих маршрутизаторы и сети, образуют базу данных состояния каналов (LSDB).
На L2+ и L3 коммутаторах SNR есть возможность настройки протокола OSPF.
Типы зон OSPF
Разделение AS на зоны OSPF может снизить загрузку CPU маршрутизаторов, сократить размер LSDB и сократить количество пакетов LSA.
Зоны бывают следующих типов:
- Backbone (Area 0) - Магистральная зона OSPF. Это обычная зона, через которую происходят все взаимодействия между другими зонами.
- Normal - Зона с номером отличным от 0. Такой тип устанавливается по умолчанию, если в конфигурации не указан иной.
- Stub - Маршрутизаторы в такой зоне не принимают информацию об External-маршрутах, но принимают маршруты из других зон. Маршрутизатор в Stub-зоне не может выступать в качестве ASBR. Чтобы передавать трафик за границу AS, будет использован маршрут по умолчанию, транслируемый от ASR. Для настройки такого типа зон используется команда
area X stub
. - Totally Stub - Stub-зона, которая принимает только маршрут по умолчанию. Для настройки такого типа зон используется команда
area X stub no-summary
. - NSSA - Stub-зона, но маршрутизатор в такой зоне может выступать в качестве ASBR. Для трансляции External маршрутов используется LSA Type 7, которые трансформируются в LSA Type 5 на ASR. Для настройки такого типа зон используется команда
area X nssa
. - Totally NSSA - Totally stub зона, но в ней может находиться ASBR. Имеет только маршрут по умолчанию. Для настройки такого типа зон используется команда
area X nssa no-summary
.
Типы маршрутизаторов в OSPF
- Internal router - маршрутизатор, у которого все стыковочные интерфейсы находятся в одной зоне. Такой маршрутизатор не обменивается маршрутной информацией с другими AS и имеет одну LSDB.
- Area border router (ABR) - маршрутизатор, который находится на границе с магистральной зоной, и служит шлюзом для трафика, который проходит между зонами. Хотя бы один интерфейс такого маршрутизатора должен находиться в магистральной зоне. Для каждой зоны ABR имеет отдельную LSDB.
- Backbone router - магистральный маршрутизатор. Хотя бы один интерфейс такого маршрутизатора должен находиться в магистральной зоне. Внутренний маршрутизатор, у которого есть интерфейсы, принадлежащие нулевой зоне, тоже будет считаться магистральным. Может быть как ABR, так и не быть им.
- AS boundary router (ASBR) - такой маршрутизатор может обмениваться маршрутами с маршрутизаторами в других AS, или маршрутизаторами, использующими другой протокол маршрутизации. ASBR может быть в любом месте AS и являться как магистральным, так и внутренним или пограничным.
Настройка OSPF
Базовая настройка OSPF на коммутаторах SNR S2990G, S2995G, S3850G, S300G, S4550
Для установления соседства между двумя коммутаторами необходимо задать уникальные имена коммутаторов (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 на коммутаторах SNR
В приведенной ниже схеме используется три зоны 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 на границе между зонами.