[CISCO] Configuration de l’OSPF

[Article en cours de rédaction]

L’OSPF pour Open Shortest Path First est un protocol de routage dynamique « standard » (RFC 2328)  à état de lien contrairement à l’EIGRP propriétaire Cisco et qui est un protocole de routage à vecteur de distance.
Il s’agit d’un protocole de routage interne (IGP).

Ces avantages :

– Interopérabilité
– Temps de convergence particulièrement courts
– Utilisation faible de la bande passante

Il ne gère cependant pas la répartition de charge entre plusieurs liens ne disposant pas de la même métrique comme l’EIGRP.

1/ Présentation de l’architecture

1.1/ Schéma d’architecture :

1.2/ Plan d’adressage :

2/ : Configuration de base

OSPF introduit le concept de area (zone en français), chaque zone est identifiée par un numéro et l’ensemble des zones doivent être connectées à l’area 0 qui fait office de backbone.

Les routeurs de chaque zone ne connaissent que les routeurs présents dans leurs zones, ils connaissent aussi le moyen de joindre l’Area 0.

Chaque zone dispose de sa propre topologie, elle est la même sur l’ensemble des routeurs d’une même zone.

L’Area 0 est en charge de la communication et de la transmission des informations entre les différentes zones.

L’intérêt principal de travailler par zone est de réduire le nombre d’informations à transférer entre les routeurs, réduire la fréquence de calcul de la topologie par SPF et disposer d’une table de routage plus petite.

2.1/ Activation de l’OSPF

Nous allons commencer par configurer l’area 0 qui va être présente sur les routeurs R1 – R2 – R3

Sur les routeurs nous allons activer le routage ospf dans le process 1. Les process sont indépendant entre les routeurs et non pas besoin d’être identique pour qu’une relation de voisinage (neighborship) se forme.

La commande network active OSPF sur les interfaces du routeur qui appartiennent au sous-réseau. Attention ici nous utilisons la wildcard.

La commande router-id permet de fixer un ID pour chaque routeur, il sera utilisé pour identifier les routeurs.

Quand il n’est pas spécifié il est choisi de cette manière :

  • Sélection automatique de la plus grande adresse IP assignée à une interface loopback.
  • Sélection automatique de la plus grande adresse IP assignée à une interface physique.
R3(config)#router ospf 1
R3(config-router)#router-id 3.3.3.3
R3(config-router)#network 172.16.1.0 0.0.0.7 area 0
R2(config)#router ospf 1
R2(config-router)#router-id 2.2.2.2
R2(config-router)#network 172.16.1.0 0.0.0.7 area 0
R1(config)#router ospf 1
R1(config-router)#router-id 1.1.1.1
R1(config-router)#network 172.16.1.0 0.0.0.7 area 0

Avec la commande show ip protocols nous pouvons visualiser le routeur ID et le réseau pour lequel OSPF est activée

R3#show ip protocols
——Ignored lines——–
Routing Protocol is « ospf 1 »
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
  Router ID 3.3.3.3
Number of areas in this router is 1. 1 normal 0 stub 0 nssa
Maximum path: 4
  Routing for Networks:
    172.16.1.0 0.0.0.7 area 0

Les routeurs vont commencer à envoyer des Hello Packets sur l’adresse multicast 224.0.0.5 depuis les interfaces sur lesquels OSPF est activé. Cela va leur permettre de détecter d’autres routeurs faisant fonctionner OSPF pour former une relation de voisinage avec.

Capture depuis R3

Une fois la relation de voisinage formée les routeurs vont continuer à s’envoyer des Hello Packets à interval régulier pour vérifier l’état des routeurs avec lesquels sont formés des adjacences.

On peut vérifier les valeurs des différents timer avec la commande suivante :

R3#show ip ospf interface Ethernet 0/0 | include intervals
  Timer intervals configured, Hello 10, Dead 40, Wait 40, Retransmit 5

Par défaut sur une connexion Ethernet, le hello interval timer est à 10 secondes et le dead timer est à 40 secondes. Toutes les 10s un packet hello est envoyé. Après 40 secondes  sans réponse le routeur considérera sont voisin HS ((Dead Timer)

Les valeurs peuvent être configuré manuellement avec les commandes suivantes :

R3(config)#interface ethernet 0/0
R3(config-if)#ip ospf hello-interval 1
R3(config-if)#ip ospf dead-interval 3
R2(config)#interface ethernet 0/0
R2(config-if)#ip ospf hello-interval 1
R2(config-if)#ip ospf dead-interval 3
R1(config)#interface ethernet 0/1
R1(config-if)#ip ospf hello-interval 1
R1(config-if)#ip ospf dead-interval 3

Ici nous avons configuré un hello-interval de 1 seconde et un dead-interval de 3 secondes pour l’area 0.

Attention : Les valeurs doivent être identiques entre chaque routeurs pour pouvoir former une relation de voisinage.

Nous pouvons voir les relations de voisinage se former avec la commande show ip ospf neighbor

Depuis R3  :

R3 est entrain d’échanger des information avec R2 et R1 pour définir le rôle de chaque routeur.

Les routeurs sont en état 2WAY.

Cet état indique qu’une communication bi-directionnel est établie entre les routeurs. Cela signifie que chaque routeur à reçu les packets hello du routeur avec lequel il essaye de monter une relation de voisinage.

Les routeurs connectés au Designated Router (R3) et au Backup Designated Router (R2) passent en état FULL. Les routeurs qui ne sont ni connectés à un DR ni à un BDR resteront en état 2WAY.

*Apr 19 14:19:55.598: %OSPF-5-ADJCHG: Process 1, Nbr 2.2.2.2 on Ethernet0/0 from LOADING to FULL, Loading Done
R3#
*Apr 19 14:20:00.564: %OSPF-5-ADJCHG: Process 1, Nbr 1.1.1.1 on Ethernet0/0 from LOADING to FULL, Loading Done

Ici l’ensemble des routeurs basculent en état FULL car ils ont tous formés une adjacence avec au minimum un DR ou un BDR.

R3#show ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
1.1.1.1           1   FULL/DROTHER    00:00:38    172.16.1.3      Ethernet0/0
2.2.2.2           1   FULL/BDR        00:00:37    172.16.1.2      Ethernet0/0

R1#show ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2           1   FULL/BDR        00:00:31    172.16.1.2      Ethernet0/1
3.3.3.3           1   FULL/DR         00:00:38    172.16.1.1      Ethernet0/1

Comme vous pouvez le voir ci-dessus en plus de l’état, le rôle de chaque routeur nous est indiqué  DR/BDR/DROTHER.

Le Designated Router (DR) correspond au routeur qui va centraliser l’ensemble des informations d’une zone. En cas de défaillance du DR c’est le Backup Designated Router (BDR) qui prendra le relais en devenant DR.

Chaque routeur qui n’est ni DR ou BDR va échanger uniquement ces informations avec le DR et le BDR à la place d’échanger des updates avec l’ensemble des routeurs sur le segment réseau. Le DR distribuera par la suite la topologie à l’ensemble des routeurs de la zone.

Lors de la mise en relation des routeurs il va y avoir élection d’un DR (Designed router)  et d’un BDR (Backup Designed router) par OSPF. Le routeur avec la plus haute priorité OSPF sur le segment deviendra DR. Par défaut la priorité OSPF est égale à 1.

Si la priorité OSPF est identique entre l’ensemble des routeurs, le routeur qui deviendra DR sera celui qui dispose du Router ID le plus élevé et le BDR sera celui qui dispose du second plus élevé.

Dans notre cas R3 est le DR (RID 3.3.3.3) et R2 le BDR (RID 2.2.2.2)

2.2/ Modification de la priorité OSPF

Nous pouvons influencer la processus d’élection en configurant manuellement les priorités OSPF avec la commande ip ospf priority

Nous allons voir cela en configurant l’area 1 qui contient 3 réseaux utilisateurs  192.168.0.0/24 – 192.168.1.0/24 – 192.168.2.0/24.

R4(config)#router ospf 1
R4(config-router)#router-id 4.4.4.4
R4(config-router)#network 172.16.1.12 0.0.0.3 area 1
R4(config-router)#network 192.168.0.0 0.0.3.255 area 1
R2(config)#router ospf 1
R2(config-router)#network 172.16.1.12 0.0.0.3 area 1

La relation de voisinage entre R4 et R2 est maintenant UP :

*Apr 19 17:13:42.676: %OSPF-5-ADJCHG: Process 1, Nbr 4.4.4.4 on Ethernet0/1 from LOADING to FULL, Loading Done
R4#show ip ospf neighbor
Neighbor ID     Pri   State           Dead Time   Address         Interface
 2.2.2.2           1   FULL/BDR         00:00:38    172.16.1.13     Ethernet0/1
R2#show ip ospf neighbor
Neighbor ID     Pri   State           Dead Time   Address         Interface
 1.1.1.1           1   FULL/DROTHER    00:00:35    172.16.1.3      Ethernet0/0
 3.3.3.3           1   FULL/DR         00:00:39    172.16.1.1      Ethernet0/0
 4.4.4.4           1   FULL/DR        00:00:02    172.16.1.14     Ethernet0/1

R4 est devenu DR et R2 est devenu BDR (4.4.4.4 > 2.2.2.2).

Nous allons maintenant forcer R2 à être DR sur ce segment en modifiant la priorité OSPF.

Pour rappel par défaut elle est égal à 1.

Une valeur égal à 0 interdit à un routeur d’être DR sur un segment – une valeur égal à 255 lui assure de gagner les élections.

Nous allons donner la priorité de 100 à l’interface Ethernet0/1 de R2 cela va forcer R2 à être DR sur ce segment et à R4 d’être BDR.

[sh]
 R2(config)#interface Ethernet0/1
 R2(config-if)#ip ospf priority 100[/sh]

Il faut faire un clear ip ospf process pour que la modification soit prise en compte. Cela reset le process OSPF :

[sh]R4#clear ip ospf process
 Reset ALL OSPF processes? [no]: yes[/sh]
*Apr 19 17:23:56.482: %OSPF-5-ADJCHG: Process 1, Nbr 2.2.2.2 on Ethernet0/1 from FULL to DOWN, Neighbor Down: Interface down or detached
 *Apr 19 17:23:56.487: %OSPF-5-ADJCHG: Process 1, Nbr 2.2.2.2 on Ethernet0/1 from LOADING to FULL, Loading Done

Sur R4 :

Sur R2 :

On peut observer que la valeur de priorité pour le routeur R2 sur le segment avec R4 est passé à 100 le routeur est donc devenu DR. R4 est devenu quand à lui BDR car il à une priorité de 1 (100 > 1).

Nous terminons par la configuration de l’area 2 sur le router R1 et R6 qui propagera le réseau serveur 192.168.100.0/24 :

[sh]R1(config)#router ospf 1
 R1(config-router)#network 172.16.1.16 0.0.3.255 area 2
 R1(config)#interface ethernet 0/0
 R1(config-if)#ip ospf priority 100[/sh]
[sh]R6(config)#router ospf 1
 R6(config-router)#router-id 6.6.6.6
 R6(config-router)#network 172.16.1.16 0.0.3.255 area 2
 R6(config-router)#network 192.168.100.0 0.0.0.255 area 2[/sh]
*Apr 21 14:08:42.647: %OSPF-5-ADJCHG: Process 1, Nbr 1.1.1.1 on Ethernet0/0 from LOADING to FULL, Loading Done

On vérifie que R6 et R1 discute bien entre eux :

R6 devrait donc maintenant avoir appris les routes pour joindre les 3 réseaux utilisateurs.

Nous pouvons valider cela en vérifiant le routage OSPF avec la commande show ip route ospf :

R4 qui est dans l’AREA 1 devrait lui avoir appris le réseau 192.168.100.0/24 de l’AREA 2

2.3/ Les différents types de routeur

Comme vous avez pu le remarquer sur le schéma certain routeur sont dans la backbone area (area 0), d’autres interconnectent plusieurs zones (R2 – R1) et un routeur s’interconnecte même avec un AS EIGRP.

Chacun de ces routeurs à sa propre fonction :

Internal Router (IR) : Ce sont des routeurs qui appartiennent à une seul zone pour pouvoir communiquer avec les autres zones ils doivent obligatoirement passer par un ABR. R4 est un IR dans l’area  1

Backbone Router: Ce sont des routeurs qui sont situé  dans l’area 0. On retrouve ici R3

Area Border Router (ABR) : Ce sont  des routeurs qui interconnecte plusieurs zones. Ils possèdent une base de donnée par zones dans laquelle ils ont une interface. Chaque base de donnée contient la topologie entières de la zone connecté. On va retrouver ici R2 et R1

Autonomous System Boundary Router (ASBR) : Ce sont des routeurs qui s’interconnectent avec d’autres AS. Typiquement R6 est un ASBR puisqu’il va servir à la redistribution de l’EIGRP dans  l’OSPF .

L’objectif des zones est de diminuer l’utilisation des ressources des routeurs en réduisant  la taille de la LSDB (Link-State DataBase) connu par les routeurs. Dans une même zone l’ensemble des routeurs vont se connaitre mais ils ne connaitrons pas les routeurs des autres zones. R4 connait R2 mais ne connais pas R3 par exemple.

Nous pouvons visualiser la LSDB avec la commande show ip ospf database.

Voici la LSDB de R4 qui est un Internal Router :

Et voici la LSDB de R2 qui est un ABR :

Contrairement à R4 qui un internal router, R2 est un ABR de l’area 0 et de l’area 1. Il  dispose donc dans sa LSDB  des informations des deux zones.

Les informations contenu dans la LSDB sont identiques sur chaque routeur d’une même zone. On peut le voir ici en comparant la LSDB du routeur R4 et du routeur R2 qui disposent des mêmes informations pour l’area 1.

2.4/ Messages LSA

Nous allons maintenant voir comment chaque routeur OSPF rempli sa LSDB et calcule par le biais de algorithme SPF la meilleure route pour chaque réseaux.

Lorsqu’un routeur détecte un changement d’état de lien ou qu’une nouvelle relation de voisinage se forme , le routeur va envoyer un paquet LSU (Link State Update) au DR et BDR de la zone sur l’adresse multicast 224.0.0.6.

Un packet LSU ou Link State Update Packet correspond au packet qui va transmettre les LSA (Link State Adverstissement). Un seul paquet LSU est utilisé pour transmettre plusieurs LSA réduisant la charge du routeur et la bande passante utilisée.

Le DR met à jour sa LSDB et envoie ensuite l’information à l’ensemble des routeurs de la zone par le biais de l’adresse multicast 224.0.0.5

Nous allons simuler la perte du routeur R6 qui porte le réseau 192.168.100.0/24 :

R6(config)#interface ethernet 0/0
R6(config-if)#shut

R1 détecte la perte de R6 quand le dead timer arrive à expiration :

R1#*Apr 25 15:02:43.447: %OSPF-5-ADJCHG: Process 1, Nbr 6.6.6.6 on Ethernet0/0 from FULL to DOWN, Neighbor Down: Dead timer expired

R1 envoi en multicast (224.0.0.6) aux DR/BDR un LSU update indiquant la perte du réseau 192.168.100.0/24

Capture R1 e0/1

R3 qui est DR envoi en multicast à l’ensemble des routeurs de la zone un LSU update (Link State Update packet) contenant la mise à jours de la LSDB.

Les routeurs mettent à jours leur LSDB puis lance l’algorithme SPF et supprime de la table de routage la route à destination du réseau 192.168.100.0/24.

R6(config)#interface ethernet 0/0
R6(config-if)#no shut

Une fois l’interface du routeur R6 de nouveau UP la route est de nouveau propagé sur l’ensemble des routeurs OSPF

Comme dit précédemment OSPF utilise les LSA pour fournir les informations à ses voisins. OSPF utilise plusieurs type de LSA :

LSA Type 1 (Router LSA) : Généré par l’ensemble des routeurs –  Permet au routeur d’annoncer leurs interfaces

LSA Type 2 (Network LSA) : Généré par les DR  – Le DR collecte l’ensemble des LSA type 1 et transmet une LSA type 2 représentant tous les routeurs d’un segment réseau.

LSA type 3 (Network Summary LSA) : Généré par les ABR – L’ABR envoi un LSA type 3 qui regroupe l’ensemble des LSA type 1 et 2 d’une zone. Cela réduit le nombre de LSA envoi au routeur des autres zones.

LSA type 4 (ASBR Summary LSA) : Généré par les ABR connectés à une zone ou il y a des routes externes (type 5) générées par des ASBR.

LSA type 5 (AS External LSA) : Généré les ASBR qui redistribue des routes externe dans OSPF et qui ne sont pas dans une zone NSSA.

LSA type 7 (NSSA External LSA) : Elle proviennent des ASBR qui redistribue des routes externe dans OSPF et qui sont dans une zone NSSA.

2.5/ Link-State Database

Nous allons dans un premier temps nous intéresser au 3 premier type. Nous verrons les type 4-5-7 quand nous travaillerons sur la redistribution et les stub area.

Tout au long de cette partie nous allons utiliser la commande show ip ospf database qui permet d’afficher la LSDB.

La première chose à faire quand nous analysons une Link-State Database c’est d’identifié la routeur sur lequel nous nous trouvons :

Ici nous nous trouvons sur R3 qui possède le Router-ID 3.3.3.3

Pour trouver les autres routeurs d’une zone il faut se baser sur les LSA de type 1

La LSDB nous indique qu’il y a dans l’area 0, 3 routeurs disposant chacun d’une interface dans l’area 0.

Les LSA type 2 affiches l’ensemble des DR présents dans la zone.

L’area  0 ne dispose que d’un segment réseau il n’y a donc qu’un DR identifié par son Router-ID (R3). Le Link-ID représente l’ip de l’interface qui est DR sur le segment.

Les LSA de type 3 sont générées par les ABR et nous informe des réseaux en dehors de l’area du routeur (ici l’Area 0). Les type 1 et 2 ne sont pas propagés en dehors de l’area. Les ABR les regroupent donc dans une LSA de type 3 pour les transmettrent aux autres area

Nous pouvons voir qu’il y a 2 ABR le routeur R2 (2.2.2.2) et R1 (1.1.1.1) . R2 annoncent 4 réseaux dont les 3 réseaux utilisateurs et R1 annonce 2 réseaux dont le réseaux serveurs.

Une fois la relation de voisinage négociée entre les routeurs, le DR va

Les ABR ne redistribue pas les messages LSA d’une zone à l’autre. Il redistribue cependant les routes entre les différentes zones qu’ils interconnectent.

3 / Passive-interface

Une interface passive est une interface pour laquelle le protocole OSPF est activé mais qui n’enverra ni recevra d’update et qui désactivera l’envoi de Hello Packet.
Cela permet de prévenir la création d’une relation OSPF avec un routeur malicieux sur des interfaces dites end-to-end.
Dans notre cas nous pouvons activer le mode passif sur les interfaces e0/0 – e0/2 – e0/3 du routeur R4 et sur l’interface e0/2 du routeur R6 qui correspondent respectivement aux réseaux utilisateurs et au réseau serveur.

Sur R4 nous allons par défaut configurer l’ensemble des interfaces en passive-interface et seulement activer l’envoi de hello et LSA sur l’interface d’interconnexion (e1/1) avec le routeur R2.

R4(config)#router ospf 1
R4(config-router)#passive-interface default
*May  2 14:54:54.073: %OSPF-5-ADJCHG: Process 1, Nbr 2.2.2.2 on Ethernet0/1 from FULL to DOWN, Neighbor Down: Interface down or detached
R4(config-router)#no passive-interface e0/1
*May  2 14:55:09.842: %OSPF-5-ADJCHG: Process 1, Nbr 2.2.2.2 on Ethernet0/1 from LOADING to FULL, Loading Done

Sur R4 nous allons procéder de la même manière mais nous allons activer le mode passive interface que sur l’interface e0/2

R6(config)#router ospf 1
R6(config-router)#passive-interface Ethernet0/2

Nous pouvons valider l’activation du mode passif  sur les interfaces du routeur R4 avec la commande suivante :

R4#show ip protocols | S Passive
 Passive Interface(s):
 Ethernet0/0
 Ethernet0/2
 Ethernet0/3

4/ Route summary

5/ OSPF Stub routing

5.1 Stub Area

5.2 Totaly Stub Area

5.3 Not-so-stub AREA

6/ Redistribution

La redistribution permet d’annoncer des routes statiques ou apprisent depuis un protocole de routage différent d’OSPF.

Dans notre exemple nous allons annoncer des routes apprises en EIGRP dans notre AS OSPF.

Pour se faire nous allons commencer par configurer l’AS EIGRP sur R6 et R7 :

Nous activons sur R6 l’EIGRP sur l’interface Et0/1 qui interconnecte R6 et R7 pour former une relation de voisinage avec R7.

R6(config)#router eigrp 1
R6(config-router)#network 172.16.1.20 0.0.0.3

Nous faisons de même sur l’interface Et0/0 du routeur R7 l’interconnecte avec R6 et sur l’interface Et0/1 qui porte le réseau 10.0.0.0/24 que nous souhaitons annoncer dans l’EIGRP.

R7(config)#router eigrp 1
R7(config-router)#network 10.0.0.0 0.0.0.255
R7(config-router)#network 172.16.1.20 0.0.0.3

On vérifie que R6 à bien appris le réseau 10.0.0.0/24 en eigrp :

On en profite pour rendre passive l’interface Et0/1 :

R7(config)#router eigrp 1
R7(config-router)#passive-interface Ethernet0/1

R7(config)# redistribute eigrp 1 metric-type 1 subnets
R6(config-router)#redistribute ospf 1 metric 10000  1 255 255 1500

6.1 Static

6.2 EIGRP

6.3 Propagation d’une route par défaut

7/ Virtual Link

2 réflexions sur « [CISCO] Configuration de l’OSPF »

Laisser un commentaire

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

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.