BSCI: OSPF – Open Shortest Path First

Introduction

OSPF est un protocole de routage à état de liens (Link-state routing protocol). Il utilise l’algorithme SPF (Shortest Path First) de Dijkstra. Les protocoles à états de liens possèdent plus d’infos et ont une vue globale de la topologie. Cela réduit le traffic réseau (plus besoin d’autant d’update), mais nécessitent plus de mémoire pour le stockage de la topologie et de CPU pour le calcul des routes.

OSPF est:

  • Classless – permet la summarization
  • Convergence rapide
  • Standard ouvert – Peut intéragir dans des environnements hétérogènes.
  • Présèrve la bande passante
  • Multicast (plutôt que broadcast)
  • Updates incrémentaux
  • Utilise le coût comme métrique

Protocol

Protocol Type Link-state
Algorithm SPF (Shortest Path First)
Internal AD 110
Specification Open
Transport IP/89
Authentication None, plain-text, MD5
Multicast IP 224.0.0.5 / 224.0.0.6
Hello Timers 10 seconds (LAN), 30 seconds (WAN)

Paquets

  • HELLO – Etablie la communication avec les voisins
  • DBD (Database description) – Envoi une liste d’ID en tant que LSA. Compare les infos du réseau.
  • LSR (Link State Request) – Suis les DBD pour les LSA manquants
  • LSU (Link State Update) – Suis un LSR avec des données
  • LSAck (Link State Acknowledgment) – Confirme réception d’un LSR

Les routeurs à état de liens annoncent une liste de connections. Quand un lien deviens UP ou DOWN, un LSA (Link State Advertisement) est généré. Les LSA sont échangés entre voisins et une base topologique LSDB (Link-state Database) ou table topologique est créée. Chaque routeur process ça table topologique avec l’algorithme SPF et place les meilleurs routes vers les différents réseaux dans sa table de routage.

Voisinage et adjacences

Les routeurs envoient les changements en multicast sur l’adresse 224.0.0.5,  puis les routeurs échangent leurs tables de routages respectives.
Les Hello sont envoyés toutes les :

  • 10 secondes – Sur un lien Broadcast
  • 30 secondes – Sur un lien non-Broadcast

Contenu d’un Paquet HELLO:

  • Router ID (32 bit)
  • HELLO et Dead Intervalle
  • Neighbor List
  • Area ID
  • Priority (Le plus grand sera le DR)
  • DR/BDR (adresses IP)
  • Authentification (Password)
  • Stub area flag (si nous sommes dans une zone de stub)

Voici un schéma qui montre les échanges entre routeurs et les différentes phases d’initialisations:

Après ces échanges, les LSA sont envoyés à 30 minutes d’intervalle, ou lors d’un changement d’état topologique.

Métrique

Cost = 100 000 000 bps / LinkSpeed

100 Mb par défaut, mais peut être modifié ultérieurement.

Designated Router & Backup Designated Router

  • DR – Designated Router : Maintiens les adjacences du segment. Il est sélectionné grâce aux informations contenues dans les HELLO.
  • BDR – Backup Designated Router : Backup du DR

Les DR sont créées sur des liens MultiAccess car le nombre d’adjacences augmente.
Pour un réseau de n routeurs, le nombre d’adjacences requises devrait être:

Adjacences =  n(n-1) / 2

Adjacences en fonction des topologies:

DR BDR

Le DR reçoit les updates, et les renvoi aux routeurs du segment. Il s’assure de la bonne réception des LSA et de la bonne synchronisation des LSDB. Les routeurs envoient les changements sur 224.0.0.6 (AllDR). Le DR envoi les LSA sur 224.0.0.5, puis chaque routeur ACKnowledge.
Le BDR écoute passivement et maintiens des relations avec tous les routeurs. Si le DR n’envoi pas de HELLO, le BDR se promu automatiquement et assume le rôle de DR.
Usefull sur les liens Multiaccess car les DR et BDR réduisent les adjacences (voir le schéma ci-dessus). il ne sont pas utilisés sur les Liens Point-to-point.

Election de DR / BDR
Pour élire un DR, chaque routeur se voit attribuer un ID, qui sera soit la priorité, soit l’adresse IP de Loopback.

  • Priorité de 1 = Défault
  • Priorité de 0 = Aucune élection possible

Le DR est le routeur avec la priorité la plus grande. La priorité est entre 1 et 255.

Commande:

router(config-if)#ip ospf priority number

Forcer un élection de DR:

  • Reboot du routeur
  • clear ip ospf process 1

Configuration OSPF (Single Area)

Required:

  • OSPF Process
  • Interfaces qui participent au process
  • Area
  • Router ID
! Activation d'OSPF
Router(config)#router ospf process-number

! Interfaces/réseaux participant au routage OSPF
Router(config-router)#network ip wildcard-mask area number

Router ID et Interface Loopback
L’ID permet la stabilité d’OSPF, donc moins de bagots des interfaces physiques d’OSPF.
Voici les deux façons de configurer un ID:

Router(config)#router ospf process-number
Router(config-router)#router-id ip-address

ou

Router(config)#interface loopback number
Router(config-if)#ip address ip-address subnet-mask

Changer le cout par défaut
Par défaut, le cout est à 100Mb, mais voici comment le changer:

Router(config-if)#ip ospf cost value number (1 < 65 535)

On peut également changer le numérateur de calcul automatique, la valeur par défaut est 100, mais voici comment le changer:

Router(config-router)#ospf auto-cost reference-bandwidth number (1 < 4 294 967)

ATTENTION: Si on change le numérateur à un endroit, il faut le changer dans toute l’aire OSPF.

Vérifier la configuration OSPF

  • show ip ospf
  • show ip ospf database
  • show ip ospf interface
  • show ip ospf neighbor
  • show ip protocols
  • show ip route

Debugs

  • debug ip ospf events
  • debug ip packet

Benoit

Network engineer at CNS Communications. CCIE #47705, focused on R&S, Data Center, SD-WAN & Automation.

More Posts - Website

Follow Me:
TwitterLinkedIn

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *