OSPF par la pratique!Nous avons introduit le protocole OSPF dans un précédent article (« Introduction au protocole de routage OSPF« ). Dans cet article, je vais utiliser une plateforme de démonstration pour vous aider à apprendre le fonctionnement OSPF dans le but de préparer votre certification Cisco CCNA. Cet article est le second de la série consacrée à OSPF: vous verrez comment activer OSPF sur le routeur Cisco en seulement deux commandes !

 

Plateforme utilisée pour cet article

Avant de rentrer dans les détails de configuration du protocole OSPF, je vais présenter la plate-forme qui va être utilisée pour les tests. Nous allons utiliser trois routeurs (R1, R2 et R3) raccordés entre eux par des liaisons Fast Ethernet pour former un triangle:

topologie Démonstration OSPF

 Reproduisez cette plateforme pour vous exercer: pour ce mini-lab, j’ai utilisé GNS3 v1.2.3 avec 3 routeurs Cisco 3745 avec l’IOS « ipservicesk9-mz.124-15.T6 ».

L’attribution des adresses IP est simple:

  • pour le routeur R1, toutes les interfaces sont en .1
  • pour le routeur R2, toutes les interfaces sont en .2
  • pour le routeur R3, toutes les interfaces sont en .3

Interfaces et adresses de Loopback (aparté): 

Une adresse IP est attribuée à une interface physique. Ainsi, dans le cas d’un routeur, celui-ci dispose de plusieurs interfaces et, chaque interface, se voit attribuée une adresse IP. En cas de panne de l’une de ses interfaces, il y a perte de connectivité IP l’adresse IP associée à cette interface. Ainsi, si un service IP était associé à cette interface, il devient inutilisable. C’est problématique notamment pour tout ce qui concerne la gestion, l’administration et la supervision du routeur. 

C’est la raison pour laquelle il peut être intéressant d’avoir une interface logicielle, c’est à dire non liée à une interface physique. Cette interface est donc toujours dans un état actif et opérationnel. Il s’agit d’une interface dite de loopback

Pour reprendre l’exemple de notre topologie, le routeur R1 dispose des interfaces Fa0/0 (adresse: 192.168.13.1) et Fa0/1 (adresse 192.168.12.1). Mais pour pouvoir accéder à R1 indépendamment de l’état de ses interfaces physiques, on va créer une interface de loopback dont l’adresse IP sera 1.1.1.1/32. Cette adresse IP peut être considérée comme étant celle du routeur et non celle d’une interface physique du routeur…

La configuration de cette interface se fait comme suit:

création d'une interface de loopback sur le routeur


 

Hiérarchie OSPF: Les aires

Dans les réseaux constitués de nombreux routeurs, il est possible d’optimiser les mécanismes internes à OSPF en définissant différentes aires. L’optimisation mise en oeuvre consiste essentiellement à limiter l’impact des modifications topologiques à l’aire dans laquelle cette modification apparait.

Généralement, dans les gros réseaux, un ensemble de routeurs constitue ce que l’on appelle le coeur du réseau, ou l’épine dorsale (backbone) du réseau. Dans le contexte du protocole OSPF, on fait correspondre ce coeur de réseau avec l’aire OSPF backbone, identifiée par la valeur 0 (on parle de l’aire zéro, ou de l’aire backbone OSPF).

A la périphérie du coeur, on va trouver des routeurs qui appartiennent à des aires non-backbones. Ces aires peuvent être identifiées par une valeur non nulle (peut importe la valeur). Le design du protocole OSPF impose que toutes les aires non-backbones disposent d’un accès direct à l’aire Backbone: cette aire sera donc responsable d’identifier les chemins IP entre les aires périphériques. Tous les équipements de l’aire backbone devront donc avoir une vision complète des différents sous-réseaux IP.

Aire BAckbone et aires non-backbones

Ainsi, lorsque l’on met en oeuvre un réseau IP de taille modeste avec du routage OSPF, on va considérer que les équipements sont dans l’aire backbone. Cela va faciliter les évolutions ultérieures avec l’ajout d’équipements et peut-être donc d’aires périphériques (aires non nulles)…

 

Configuration OSPF

La configuration du protocole OSPF sur un routeur Cisco se fait en deux étapes:

  • Activer le protocole de routage OSPF (ou processus de routage OSPF):
router(config)#router ospf 1

Le numéro 1 correspond au numéro de processus: sa signification est locale à ce routeur et peut être définie de façon indépendante de ce qui est fait sur les autres routeurs. 

  • Indiquer les interfaces associée à ce processus de routage OSPF

Il y a deux méthodes pour cela:

Méthode 1: il faut indiquer pour quels réseaux, le protocole OSPF doit être activé et l’aire OSPF associée. 

router(config-router)#network 198.168.12.0 0.0.0.255 area 0

Note: On remarque l’utilisation d’un « masque inversé » qui correspond aux bits « joker » (wildcard bit mask en anglais) en lieu et place d’un masque de sous-réseau habituel…

Méthode 2: en mode de configuration de l’interface, on peut directement préciser que l’interface est associée au protocole OSPF (avec le numéro de processus et l’aire OSPF). Cette méthode est indépendante de l’adresse IP de l’interface.

router(config-if)#ip ospf 1 area 0

 

Ainsi, pour notre plateforme de démonstration, nous pouvons appliquer les différentes méthodes de configuration. Voici, par exemple, comment nous pouvons activer OSPF sur les trois routeurs R1, R2 et R3 en utilisant les différentes possibilités proposées par l’IOS Cisco:

Configuration OSPF pour le router R1

Configuration OSPF pour le routeur R1

Dans l’exemple précédent, l’activation des deux interfaces (192.168.12.1/24 et 192.168.13.1/24) se fait à l’aide d’une seule commande network en utilisant le masque inversé 0.0.255.255. Ainsi, les deux interfaces (dont l’adresse commence par 192.168) activent OSPF puisque leurs adresses commencent bien toutes les deux par 192.168.

 

Pour la configuration de R2 (cf. ci-dessous), nous avons été plus précis pour identifier chaque interface. Il nous faut donc deux commandes network:

Configuration OSPF pour R2

Configuration OSPF pour le routeur  R2

On remarque, quelques secondes après l’activation d’OSPF sur l’interface 192.168.12.2, que l’IOS envoie un message de log (%OSPF-5-ADJCHG) qui indique qu’une adjacence OSPF se forme avec le voisin 1.1.1.1 (adresse de Loopback du voisin).

 

Enfin, pour la configuration du routeur R3, dès que le processus OSPF 1 est défini, nous l’associons avec l’interface (quelque soit son adresse).

Configuration OSPF pour R3

Configuration OSPF pour R3

Cette dernière méthode pour configurer OSPF est plus simple et indépendante de l’adressage IP attribuée aux interfaces. Néanmoins, le résultat est identique et peut être vérifié par la commande IOS:

Router#show ip ospf interface [brief]

 

Vérifications (commandes show)

Il est donc possible de vérifier l’activation d’OSPF sur les interfaces. La commande passée sur le routeur R2 donne le résultat présenté ci-dessous:

show ip ospf interface brief

Vérification des interfaces avec OSPF activé

 

 

 

 

 

Cette commande montre bien que, sur le routeur R1, les deux interfaces Fa0/0 et Fa0/1 sont associées aux processus OSPF numéro 1 (colonne PID) et toutes les deux sont dans l’aire 0 (colonne Area).

 

Néanmoins, il peut être important de vérifier que les routeurs sont bien voisins et avec des base de données synchronisées. Pour cela, nous pouvons utiliser la commande IOS:

Router#show ip ospf neighbor

Par exemple, sur le router R2, on voit bien la « détection » des deux autres routeurs R1 et R3:

show ip ospf neighbor

Liste des voisins OSPF du routeur R2

 

 

 

 

 

Cette commande indique, pour chaque voisin (entre autres informations):

  • le Neighbor ID , c’est à dire l’identifiant du routeur dans le contexte OSPF (on parle de Router ID). Cet identifiant peut être configuré manuellement (commande router-id en mode de configuration router) mais, sans configuration explicite, une adresse IP est choisie: c’est l’adresse IP la plus élevée associée à une adresse logicielle (de loopback) ou, le cas échéant, à l’adresse la plus élevée attribuée à une adresse physique.
  • l’état du voisinage (colonne State): ici, l’indication FULL indique que la base de données est complètement synchronisée avec celle du voisin considéré,
  • l’adresse IP de l’interface nous permettant d’accéder à ce voisin (colonne Address),
  • l’interface sur laquelle on « voit » le voisin (colonne Interface).

A ce stade, on peut donc vérifier (sur la plateforme de tests): chaque routeur dispose de deux voisins dont l’adjacence est établie, c’est à dire que la base de données topologique OSPF est entièrement synchronisée. Le prochain article montrera, toujours par la pratique, comment cette adjacence est établie et quel est le contenu de la base de données topologique OSPF.

En attendant, si quelque chose n’est pas clair ou pas suffisamment détaillé: laissez-moi un commentaire dans le cadre ci-dessous !