Objectifs de certification

CCNA 200-301

  • 3.4 Configurer et vérifier single area OSPFv2

    • 3.4.a Neighbor adjacencies
    • 3.4.b Point-to-point
    • 3.4.c Broadcast (DR/BDR selection)
    • 3.4.d Router ID

Configuration d’OSPFv2 et OSPFv3 en Cisco IOS

Dans ce second article “Configuration d’OSPFv2 et OSPFv3 en Cisco IOS” qui fait suite à une Introduction à OSPF, on décrit les étapes de configuration d’OSPFv2 et OSPFv3 en Cisco IOS ainsi que la configuration de la métrique OSPF. Les concepts de avancés multi-area et authentification ne sont pas envisagés ici.

1. Topologie OSPFv2 OSPFv3

Topologie d'étude OSPFv2 OSPFv3

On trouvera la configuration complète qui est utilisée dans l’article Lab Routage OSPF Multi-Area.

1.1. Description de la topologie

  • Un processus OSPFv2 pour IPv4
  • et un processus OSPFv3 pour IPv6

Deux zones pour chacun des processus :

  • Une zone de backbone : 0
  • Une zone 1

Rôles OSPF :

  • Backbone Routers (BR) : R1 et R2
  • Area Border Router (ABR) : R1
  • Autonomous System Border Router (ASBR) : R3

1.2. Interfaces

Chaque interface du routeur dispose d’une adresse :

  • IPv4 privée
  • IPv6 link-local identique sur chacune
  • IPv6 globale (adresse de documentation)
  • Une interface Loopback 0 avec une adresse unique 1.1.1.1/32 (R1), 2.2.2.2/32 (R2) et 3.3.3.3/32 (R3) permet de déterminer l’ID OSPFv2.

1.3. Routage IPv4

Cinq réseaux participent au routage IPv4 au sein d’OSPFv2 :

  • 192.168.72.0/24 (backbone area 0)
  • 192.168.80.0/24 (backbone area 0)
  • 192.168.95.0/30 (backbone area 0)
  • 192.168.104.0/24 (area 1)
  • 192.168.127.0/30 (area 1)

Une route statique par défaut est redistribuée dans OSPFv2 à partir de l’ASBR (R3). Soit six réseaux IPv4 à connaître.

1.4. Routage IPv6

Trois réseaux participent au routage IPv6 au sein d’OSPFv3 :

  • 2001:DB8:1AB1::/64 (backbone area 0)
  • 2001:DB8:1AB2::/64 (backbone area 0)
  • 2001:DB8:1AC3::/64 (area 1)

Les interfaces entre les routeurs n’ont pas besoin d’être globalement joignables en IPv6. Il y a donc quatre réseaux IPv6 à connaître

1.5. Activation du routage IPv6

Jusqu’aux IOS récents le routage IPv6 n’est pas activé par défaut comme en IPv4 depuis l’IOS version 12 (ip routing) :

R2(config)#ipv6 unicast-routing

1.6. Configuration des interfaces

Par exemple sur R2 :

R2(config)# interface G0/0
R2(config-if)# ip address 192.168.80.1 255.255.255.0
R2(config-if)# ipv6 address FE80::2 link-local
R2(config-if)# ipv6 address 2001:DB8:1AB2::1/64
R2(config-if)# exit
R2(config)# interface G0/1
R2(config-if)# ip address 192.168.95.2 255.255.255.252
R2(config-if)# ipv6 address FE80::2 link-local
R2(config-if)# exit
R2(config)# exit

2. Configuration OSPF

Trois éléments sont à retenir dans une configuration minimale de OSPF :

  • OSPF Process ID
  • Router ID
  • Les interfaces passives

2.1. OSPF Process ID

Le process ID est le numéro du processus OSPF qui est lancé sur le routeur. On fixe une valeur locale au routeur qui n’a rien à voir avec les numéros de zones (area).

En OSPFv2, où <pid> est la valeur du Process ID :

(config)# router ospf <pid>
(config-router)#

En OSPFv3, où <pid> est la valeur du Process ID :

(config)# ipv6 router ospf <pid>
(config-rtr)#

On prendra l’habitude de lancer un seul processus OSPF par protocole. Il est certainement judicieux de s’entendre sur cette valeur : la valeur 1 par exemple.

2.2. Router ID

Chaque routeur de la topologie dispose d’un identifiant unique codé sur 32 bits. Il est recommandé de contrôler cette valeur en la configurant finement. Celle-ci doit être unique sur le réseau OSPF.

On le représente par une adresse IPv4 de manière “administrative” en OSPFv2 et OSPFv3. Cet identifiant a donc une valeur codée sur 32 bits.

En OSPFv2, si le Router ID n’est pas fixé sur les routeurs Cisco, l’adresse IPv4 la plus élevée des interfaces de loopback est utilisée comme identifiant OSPF, et en leur absence, ce sera l’adresse IPv4 la plus élevée parmi les interfaces physiques.

(config-router)# router-id <A.B.C.D>

En OSPFv3, on sera obligé de fixer cette valeur car la présence d’IPv4 ne serait pas une évidence.

(config-rtr)# router-id <A.B.C.D>

2.3. Interfaces passives

Les interfaces dites “passives” sont celles qui n’envoient aucun message d’un protocole de routage comme OSPF.

En effet, sur les interfaces LAN de la topologie, on ne trouve aucun routeur sous maîtrise.

Par contre, cette mesure n’empêche pas l’interface de prendre en compte des messages OSPF.

(config-router)# passive-interface <interface>

La commande passive-interface qui désigne une interface en configuration du routage, n’enverra pas de messages OSPF à travers interface : c’est inutile, polluant et indiscret.

2.4. Configuration OSPFv2 et OSPFv3

R2(config)# interface lo0
R2(config-if)# ip add 2.2.2.2 255.255.255.255
R2(config-if)# exit
R2(config)# router ospf 1
R2(config-router)# passive-interface g0/0
R2(config-router)# exit
R2(config)# ipv6 router ospf 1
R2(config-rtr)# passive-interface g0/0
R2(config-rtr)# router-id 2.2.2.2
R2(config-rtr)# exit

3. Activation de OSPF

Activer un protocole de routage en Cisco IOS consiste à déclarer une interface (et son réseau) dans le processus de routage dynamique.

Cette action a pour effet à la fois :

  • d’activer la capacité de l’interface à transmettre et à recevoir des informations de routage,
  • à transporter des annonces pour le réseau connecté à l’interface.

En OSPF, on précise la zone (area) à laquelle participe l’interface.

3.1 Commande Network

En OSPFv2, on prenait l’habitude d’utiliser la commande network par exemple pour déclarer le réseau de l’interface G0/0 de R2 :

(config-router)#network 192.168.80.1 0.0.0.0 area 0

On recommandera d’être le plus précis possible. Il faut comprendre l’expression de cette commande network désigne l’interface en OSPF et sa zone d’appartenance.

En OSPFv3 de manière obligatoire, mais aussi en OSPFv2 selon les capacités de l’IOS, il sera plus aisé d’agir sur l’interface :

(config)# interface <interface>
(config-if)# ip ospf <pid> area <area-id>
(config-if)# ipv6 ospf <pid> area <area-id>

3.2. Activation sur les interfaces

Par exemple, pour activer OSPFv2 et OSPFv3 sur R2 :

R2(config)# interface G0/0
R2(config-if)# ip ospf 1 area 0
R2(config-if)# ipv6 ospf 1 area 0
R2(config-if)# exit
R2(config)# interface G0/1
R2(config-if)# ip ospf 1 area 0
R2(config-if)# ipv6 ospf 1 area 0
R2(config-if)# exit

3.3. default information-originate

Si l’IOS du routeur ne le fait pas automatiquement, on peut redistribuer la route statique qui mène vers l’Internet dans les états de liens OSPF ; on agit alors sur celui-ci soit R3 dans notre exemple :

R3(config)#router ospf 1
R3(config-router)#default-information originate

4. Vérification de base OSPF

Destinations (routes) apprises :

# show ip route
# show ipv6 route

Configuration du routage OSPF :

# show ip protocols
# show ipv6 protocols

Eléments à vérifier :

  • Process ID
  • Distance administrative,
  • OSPF Router ID,
  • zones (areas),
  • Réseaux participants
  • Tables de routage, tables de voisinage, tables de LSA

4.1. Table de routage OSPFv2

R2#show ip ospf rib
OSPF Router with ID (2.2.2.2) (Process ID 1)
		Base Topology (MTID 0)
OSPF local RIB
Codes: * - Best, > - Installed in global RIB

*>  192.168.72.0/24, Intra, cost 2, area 0
      via 192.168.95.1, GigabitEthernet0/1
*   192.168.80.0/24, Intra, cost 1, area 0, Connected
      via 192.168.80.1, GigabitEthernet0/0
*   192.168.95.0/30, Intra, cost 1, area 0, Connected
      via 192.168.95.2, GigabitEthernet0/1
*>  192.168.104.0/24, Inter, cost 3, area 0
      via 192.168.95.1, GigabitEthernet0/1
*>  192.168.127.0/30, Inter, cost 2, area 0
      via 192.168.95.1, GigabitEthernet0/1
*>  0.0.0.0/0, Ext2, cost 1, fwd cost 2, tag 1
      via 192.168.95.1, GigabitEthernet0/1

4.2. Table de routage IPv4

R2 a-t-il appris des destinations IPv4 ?

R2#show ip route
Gateway of last resort is 192.168.95.1 to network 0.0.0.0

O*E2  0.0.0.0/0 [110/1] via 192.168.95.1, 00:06:14, GigabitEthernet0/1
O     192.168.72.0/24 [110/2] via 192.168.95.1, 01:15:59, GigabitEthernet0/1
      192.168.80.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.80.0/24 is directly connected, GigabitEthernet0/0
L        192.168.80.1/32 is directly connected, GigabitEthernet0/0
      192.168.95.0/24 is variably subnetted, 2 subnets, 2 masks
C        192.168.95.0/30 is directly connected, GigabitEthernet0/1
L        192.168.95.2/32 is directly connected, GigabitEthernet0/1
O IA  192.168.104.0/24 [110/3] via 192.168.95.1, 01:15:59, GigabitEthernet0/1
      192.168.127.0/30 is subnetted, 1 subnets
O IA     192.168.127.0 [110/2] via 192.168.95.1, 01:15:59, GigabitEthernet0/1

4.3. Table de routage IPv6

R2 a-t-il appris des destinations IPv6 ?

R2#show ipv6 route
IPv6 Routing Table - default - 5 entries
O   2001:DB8:1AB1::/64 [110/2]
     via FE80::1, GigabitEthernet0/1
C   2001:DB8:1AB2::/64 [0/0]
     via GigabitEthernet0/0, directly connected
L   2001:DB8:1AB2::1/128 [0/0]
     via GigabitEthernet0/0, receive
OI  2001:DB8:1AC3::/64 [110/3]
     via FE80::1, GigabitEthernet0/1
L   FF00::/8 [0/0]
     via Null0, receive

À partir de R2, le préfixe IPv6 2001:DB8:1AB1::/64 est connu grâce à OSPF. Il est joignable via son interface FE80::1 soit en direction de R1. R2 a aussi pris connaissance de la destination 2001:DB8:1AC3::/64 via R1 dans une autre zone (code OI “OSPF Inter-Area”)

4.4. Vérification de la configuration OSPFv2

R2#show ip protocols | begin ospf 1
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 2.2.2.2
  Number of areas in this router is 1. 1 normal 0 stub 0 nssa
  Maximum path: 4
  Routing for Networks:
    192.168.80.1 0.0.0.0 area 0
    192.168.95.2 0.0.0.0 area 0
  Passive Interface(s):
    GigabitEthernet0/0
  Routing Information Sources:
    Gateway         Distance      Last Update
    3.3.3.3              110      00:15:46
    1.1.1.1              110      01:25:31
  Distance: (default is 110)

On sera attentif à la valeur du “Router ID” qui doit être unique ici 2.2.2.2.

Dans une première approche de diagnostic, on sera attentif aux configuration des interfaces dans leur zone :

  Routing for Networks:
    192.168.80.1 0.0.0.0 area 0
    192.168.95.2 0.0.0.0 area 0

4.5. Vérification de la configuration OSPFv3

R2#show ipv6 protocols | begin ospf 1
IPv6 Routing Protocol is "ospf 1"
  Router ID 2.2.2.2
  Number of areas: 1 normal, 0 stub, 0 nssa
  Interfaces (Area 0):
    GigabitEthernet0/1
    GigabitEthernet0/0
  Redistribution:
    None

Le “Router ID” en OSPFv3 est aussi représenté en notation “décimale pointée” comme une adresse IPv4 (32 bits).

On connait les interfaces attachées à leur zone :

  Interfaces (Area 0):
    GigabitEthernet0/1
    GigabitEthernet0/0

4.6. Voisinage OSPF

La table de voisinage OSPF indique l’état de la relation entre des voisins OSPF. Un voisin OSPF est une interface qui partage le même réseau, qui est connecté à la même technologie de couche (L2) comme des voisins Ethernet connectés sur un même commutateur.

Table des voisins OSPFv2 de R2 :

R2#show ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
1.1.1.1           1   FULL/DR         00:00:33    192.168.95.1    GigabitEthernet0/1

Table des voisins OSPFv3 de R2 :

R2#show ipv6 ospf neighbor

                      OSPFv3 Router with ID (2.2.2.2) (Process ID 1)

Neighbor ID     Pri   State           Dead Time   Interface ID    Interface
1.1.1.1           1   FULL/DR         00:00:37    4               GigabitEthernet0/1

R2 voit son voisin R1 identifié par son ID OSPF 1.1.1.1 qui remplit le rôle de “Designated Router” (DR) sur le segment. Ils sont en état de voisinage OSPF “Full” : leur adjacence est complète. Cela signifie que les deux interfaces peuvent s’échanger des états de lien qui serviront à construire leur table de routage.

D’autres articles exposent en détail le comportement d’OSPF en terme de relations de voisinage :

4.7. États de liens

Veuillez comparer cette table avec celles des autres routeurs de la topologie.

Voici la base de données d’états de liens OSPFv2 de R2 :

R2#show ip ospf database
OSPF Router with ID (2.2.2.2) (Process ID 1)
		Router Link States (Area 0)
Link ID         ADV Router      Age         Seq#       Checksum Link count
1.1.1.1         1.1.1.1         1384        0x80000009 0x008E3D 2
2.2.2.2         2.2.2.2         341         0x80000005 0x00348B 2
		Net Link States (Area 0)
Link ID         ADV Router      Age         Seq#       Checksum
192.168.95.1    1.1.1.1         1384        0x80000003 0x001D44
		Summary Net Link States (Area 0)
Link ID         ADV Router      Age         Seq#       Checksum
192.168.104.0   1.1.1.1         1127        0x80000004 0x004B17
192.168.127.0   1.1.1.1         1127        0x80000004 0x00311E
		Summary ASB Link States (Area 0)
Link ID         ADV Router      Age         Seq#       Checksum
3.3.3.3         1.1.1.1         1260        0x80000001 0x00DC4E
		Type-5 AS External Link States
Link ID         ADV Router      Age         Seq#       Checksum Tag
0.0.0.0         3.3.3.3         1267        0x80000001 0x00E0C5 1

5. Métrique OSPF

5.1. Origine de l’algorithme SPF

L’algorithme du chemin le plus court est celui qui est utilisé par OSPF pour déterminer le meilleur chemin vers un réseau de destination.

Avec cet algorithme, le meilleur chemin est celui qui a le coût le moins “cher”, soit le plus faible. Il a été conçu par E. W. Dijkstra (1930-2002), un mathématicien néerlandais (http://www.cs.utexas.edu/users/EWD/).

Publié en 1959, son utilisation dépasse largement le monde des réseaux.

5.2. Algorithme SPF

L’algorithme considère un réseau de noeuds connectés par des liens point à point.

Chaque lien (LSA) a un coût.

Chaque noeud a un nom et possède une base de données complète de tous les liens et a donc ainsi une connaissance complète de la topologie physique.

La base de donnée d’états de lien est identique sur tous routeurs d’une même zone (area).

L’algorithme du chemin le plus court va alors calculer une topologie sans boucle en utilisant le noeud en question comme point de départ et en examinant à son tour les informations de ses noeuds contigus.

5.3. Métrique OSPF

OSPF utilise comme métrique le coût (“cost”) pour déterminer le meilleur chemin vers une destination. La valeur par défaut du coût dépend de la valeur de la bande passante d’un lien. En général, plus la bande passante diminue plus le coût est élevé.

La formule de calcul du coût d’un lien est :

\[\frac{10^8 \text{ bps}}{bandwidth} = \frac{100 000 000 \text{ bps}}{bandwidth}\]

Soit pour un lien 100 Mbps :

\[\frac{100 000 000 \text{ bps}}{100 000 000 \text{ bps}} = 1\]

5.4. Coûts OSPF

Voici les valeurs par défaut du coût par rapport au type de média sur les IOS Cisco :

SupportCoût
T1 (ligne série 1544kbps)64
E1 (ligne série 2048kbps)48
Ethernet10
Fast Ethernet 100Mbps, FDDI1

Sans autre configuration OSPF considère que tout lien égal ou supérieur à 100 Mbps est représenté avec le meilleur coût de 1.

On peut changer la référence de calcul (à faire sur tous les routeurs), 100 (Mbps) par défaut. Par exemple, pour s’adapter au 10G :

(config-router)#auto-cost reference-bandwidth 10000

5.5. Calcul du coût le plus faible

Pour calculer le coût le plus faible vers une destination, le routeur exécutera l’algorithme SPF (Shortest Path First). Pour simplifier, l’algorithme SPF fait la somme des coûts à partir de lui-même (root) vers tous les réseaux de destination. S’il existe plusieurs chemins possibles vers une destination, celui qui a le coût le plus faible est choisi. Par défaut, OSPF inscrit quatre routes équivalentes dans sa table de routage pour permettre la répartition de charge (Load Balancing).

5.6. Modifier le coût d’une liaison

Le coût d’une liaison doit être identique sur chaque interface d’un lien. Des valeurs hétérogène empêchent les relations de voisinage d’aboutir.

On peut fixer le coût d’une liaison de manière administrative :

(config-if)#ip ospf cost <cost>

On peut aussi influencer le coût de manière administrative en jouant avec la bande passante administrative :

(config-if)#bandwitdh <bw-in-kbps>

En Cisco IOS, la bande passante administrative d’une interface se configure Kbps.

5.7. Vérifier le coût d’une liaison

R5#show interface g0/0
Ethernet0/0 is up, line protocol is up
  Hardware is AmdP2, address is aabb.cc00.0300 (bia aabb.cc00.0300)
  Internet address is 192.168.6.5/24
  MTU 1500 bytes, BW 10000 Kbit/sec, DLY 1000 usec,
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation ARPA, loopback not set
  Keepalive set (10 sec)
R5#show ip ospf interface g0/0
Ethernet0/0 is up, line protocol is up
  Internet Address 192.168.6.5/24, Area 0, Attached via Interface Enable
  Process ID 1, Router ID 172.31.255.5, Network Type BROADCAST, Cost: 1000

5.8. Distance administrative (AD) OSPF

La distance administrative (AD) est la valeur de préférence d’un protocole du routage par rapport à un autre protocole de routage pour une même destination. La distance administrative par défaut pour OSPF sur un routeur Cisco est 110.

Pour modifier cette valeur (à configurer de manière cohérente sur tous les routeurs), en configuration du routage OSPF :

(config-router)#distance ?
  <1-255>  Administrative distance
  ospf     OSPF distance
(config-router)#distance ospf ?
  external    External type 5 and type 7 routes
  inter-area  Inter-area routes
  intra-area  Intra-area routes

5.9. Répartition de charge / Load Balancing

OSPF est capable de répartir la charge de trafic sur des liens à coûts égaux : 4 est la valeur par défaut.

Pour modifier cette limite, en configuration du routage OSPF :

(config-router)#maximum-paths  ?
  <1-32>  Number of paths