Page tree
Skip to end of metadata
Go to start of metadata

Протокол 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:


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


R1
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
R2
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


R1
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
!
R2
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
!
R3
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
!
R4
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
!
R5
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 на границе между зонами.