User Tools

Site Tools


informatique:cisco:ospf

This is an old revision of the document!


réseau protocole routage IEEE

OSPF

Open Shortest Path First est un protocole de routage à état de lien non propriétaire ; c'est le protocole de routage intra-domaine (IGP) le plus utilisé de nos jours.

Théorie

  • protocole de routage à état de liens standardisé par l'IEEE (version 2 = RFC 2328)
  • update seulement sur changement de topologie
  • updates périodiques toutes les 30 min
  • utilisation d'IP multicast pour dialoguer : 224.0.0.5 pour les routeurs et 224.0.0.6 pour les DR/BDR
  • basé sur l'algorithme de Dijkstra (SPF) qui permet de transformer la table de topologie en table de routage
  • comme en EIGRP, 3 tables : la table des voisins, la table de topologie et la table de routage qui en découle.
  • notion d'aire OSPF = sectorisation qui permet d'alléger les tables de routage en agrégeant les routes ; toutes les aires (regular area ou aire ordinaire) sont reliées à l'aire 0 (aire backbone ou aire de transit) par leur ABR (routeur de bordure). Chaque flux entre 2 aires passe forcément par l'aire 0. Chaque routeur ne communique qu'avec des routeurs de la même aire que lui (sauf si c'est un ABR).
  • découverte du voisinage par l'échange de paquets Hello ; si les conditions sont requises, 2 voisins deviennent adjacents et peuvent ainsi échanger leurs tables de routage
  • la métrique (le coût) OSPF est basé sur la bande passante (BW) du lien inter-routeur (= 108 ÷ BW)
  • le protocole OSPF est encapsulé dans un paquet IP, mais le protocole OSPF inclut des paquets de type ACK qui permettent d'acquitter la réception de message

Terminologie

  • PDU Protocol Data Units ; les LSAs sont des PDUs
  • LSA Link-State Advertisement qui sont envoyer à tous les routeurs de l'aire
  • LSU Link-State Update
  • LSDB Link-State DataBase qui sont identiques sur tous les routeurs de l'aire
  • DR Designated Router
  • BDR Backup Designated Router
  • ABR Area Border Router
  • ASBR Autonomous Sytem Boundary Router = tout routeur qui redistribue des routes externes (d'un autre AS)
  • SPF Shortest Path First (algorithme de Dijkstra) algorithme du plus court chemin
  • stub area aire “impasse”, qui ne reçoit pas de LSA type 5
  • totally stubby area est une stub area qui ne reçoit pas non plus les LSAs de type 3
  • NSSA ou Not So Stubby Area est une stub area qui annonce un réseau externe

BR, BDR et relations d'adjacence

Une relation d'adjacence permet l'échange d'informations de routage entre 2 routeurs voisins ; cela ne peut se faire que si ceux-ci ont les 4 paramètres suivants en commun :

  • les intervalles Hello et dead time
  • le numéro d'aire
  • l'authentification mutuelle (= le même password par exemple)
  • le flag stub area qui identifie une stub area càd une aire “impasse” (cf plus haut)

Selon le type de lien qui relie 2 routeurs, l'OSPF va monter différents types d'ajacence :

  • avec les liens point-à-point comme du HDLC : adjacence complète (full adjacency)
  • avec des liens LAN comme Ethernet, OSPF procède à l'élection d'un DR et d'un BDR par segment ; ceux-ci centralisent les échanges (un peu à la manière d'un root brige avec le protocol Spanning-Tree) et les retransmettent aux autres routeurs (DROTHERs). Cela permet de limiter les flux inter-routeur.

Il y a autant de DR dans une aire que de réseau multi-access.

Les différents types de LSAs

Les Link State Advertisement sont les paquets utilisés par les routeurs OPF pour communiquer (des LSU) :

  • LSA type 1 : envoyés par chaque routeur, contient les routes connected
  • LSA type 2 : annonce d'un réseau et des routeurs qui y sont connectés ; initié par un DR
  • LSA type 3 et 4 : ce sont des route summary respectivement envoyés par un ABR ou un ASBR
  • LSA type 5 : annonce d'une route externe (n'est pas propagé dans les stub areas)
  • LSA type 7 : générés par les NSSAs

Mise en place basique

Les best pratices recommandent d'utiliser une loopback pour faire de l'OSPF, car cette interface locale est toujours up. On s'en servira comme identifiant du routeur dans l'OSPF.

R1(config)interface loopback 0
R1(config-if)description Lo0 pour OSPF
R1(config-if)ip address 192.168.0.23 255.255.255.255

Pour activer le routage : on créer une instance OSPF (ici le processus 111 qui est un ID local), et on spécifie l'identifiant OSPF du routeur (NB : ce n'est pas forcément une adresse IP du routeur, on peut mettre une valeur aléatoire sur 32bits ; cependant il est préférable d'utiliser l'IP de la loopback du routeur) :

R1(config)#router ospf 111
R1(config-router)#router-id 192.168.0.23

Puis on annonce les réseaux connus, avec la syntaxe network <adresse du réseau> <masque inversé (wildcard)> area <numéro de l'aire>. Cette commande :

  • va activer l'OSPF sur la ou les interfaces qui matchent
  • va annoncer dans l'OSPF les réseaux des interfaces qui matchent, avec les masques définis sur ces interfaces.

Ce dernier point signifie que si on a network 10.0.0.1 0.0.0.0 area 0 (/32) et une interface en ip address 10.0.0.1 255.255.255.0 (donc un /24), c'est bien le réseau 10.0.0.0 /24 qui va être annoncé. C'est pour ne pas confondre cela qu'il est souvent conseiller de déclarer dans l'OSPF les interfaces de routage (en /32, comme l'exemple que je viens de donner) et non les réseaux.

On annonce la loopback 0 ainsi que les réseaux connus que l'on veut injecter dans l'OSPF.

R1(config-router)#network 192.168.0.23 0.0.0.0 area 0
R1(config-router)#network 192.168.1.0 0.0.0.255 area 0

Si l'interface de routage du réseau 192.168.1.0/24 est le .254, la dernière lignes peut également s'écrire ainsi :

R1(config-router)#network 192.168.1.254 0.0.0.0 area 0

Le routeur Cisco va automatiquement détecter l'interface reliée à ce réseau et activer le routage OSPF dessus. area 0 c'est l'aire backbone (dorsale). En effet, afin d'éviter de propager la totalité de la base de données des liens, l'OSPF permet de sectoriser un réseau en différentes aires (~domaines). Les routeurs à la frontière des aires sont appelés Area Border Router (ABR).

Une autre méthode alternative pour déclarer le réseau 192.168.1.0/24 consiste à activer explicitement l'OSPF sur son interface de routage :

R1(config-if)#ip ospf 111 area 0

Configuration avancée

Authentification

Sur l'interface voulue participant à l'OSPF :

int gi0/0
 ip ospf authentication
 ip ospf authentication-key san-fran

Cela va sans dire qu'il vaut mieux que le routeur d'en face ait les mêmes paramètres pour que ça marche bien.

Passive interface

Pour désactiver l'OSPF sur une interface de routage, on utilise la commande passive-interface :

router ospf 111
 passive-interface se0/0/0

Cette interface ne participera plus à l'OSPF, mais son réseau continuera d'être annoncé/routé (s'il y a bien la ligne network <réseau> etc..)

agrégation de routes

Ne peut se faire que sur les ABR :

R1(config-router)#area 1 range 10.1.0.0 255.255.0.0

Ici on aggrège pour n'annoncer qu'un réseau en /16.

stub area

Doit se configurer sur chaque routeur de l'aire (ici l'aire 3) :

R1(config-router)#area 3 stub

Cela provoque l'apparition d'une route par défaut :

sh ip route
 [..]
 O*IA 0.0.0.0/0 [110/2] via 10.3.2.2, 00:01:23, FastEthernet0/0

totally stubby area

Ne se configure que sur l'ABR de l'aire.

R1(config-router)#area 3 stub no-summary

Pour connecter une aire à l'aire 0 via une autre aire, on créé un lien virtuel (tunnel) entre l'ABR de l'aire “distante” et l'ABR de l'aire contigüe à l'aire 0. Le vlink se déclare sur les 2 routeurs d'extrémité en pointant vers le routeur-id d'en face :

Dans l'exemple suivant

  • R1 (id=192.168.0.2) est l'ABR situé entre l'aire 33 (qui veut se connecter à l'aire 0) et l'aire 3 (connecté à l'aire 0)
  • R2 (id=192.168.0.1) est l'ABR situé entre l'aire 0 et l'aire 3.

L'aire 3 ne doit pas être une stub-area.

R1(router-config)#area 3 virtual-link 192.168.0.2
R1(router-config)#network 10.0.10.0 0.0.0.255 area 33
R2(router-config)#area 3 virtual-link 192.168.0.1

Vérifs avec sh ip ospf virtual-links.

Vérification

debug ip ospf adj
debug ip ospf events

(Pour désactiver le debugging : undebug all)

sh ip ospf interface
sh ip ospf neighbor
sh ip protocols
sh ip route ospf
informatique/cisco/ospf.1228773628.txt.gz · Last modified: 2013/10/14 20:52 (external edit)