En Une :

OSPF (2) 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.

3. Configuration de base OSPFv2 et OSPFv3

3.1. Topologie OSPFv2 OSPFv3

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

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.

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.

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. Soit quatre réseaux IPv6 à connaître

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 12 (ip routing) :

R2(config)#ipv6 unicast-routing

Configuration des interfaces

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

3.2. Configuration OSPF

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

  • OSPF Process ID
  • Router ID
  • Les interfaces passives

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 :

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

En OSPFv3 :

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

Router ID

Chaque routeur de la topologie dispose d'un identifiant unique codé sur 32 bits.

On le représente par une adresse IP administrativement en OSPFv2 et OSPFv3.

En OSPFv2, s'il n'est pas fixé sur les routeurs Cisco, l'adresse IP la plus élevée des interfaces de loopback est utilisée, et en leur absence, ce sera l'adresse IP la plus élevée parmi les interfaces physiques.

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

En OSPFv3, on sera obligé de le fixer.

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

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

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 e0/0
R2(config-router)# exit
R2(config)# ipv6 router ospf 1
R2(config-rtr)# passive-interface e0/0
R2(config-rtr)# router-id 2.2.2.2
R2(config-rtr)# exit

3.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.

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

En OSPFv3 de manière obligatoire, mais aussi en OSPFv2, il sera plus aisé d'agir sur l'interface :

(config)# interface e0/1
(config-if)# ip ospf pid area area-id
(config-if)# ipv6 ospf pid area area-id

3.4. Activation sur les interfaces

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.5. default information-originate

Pour redistribuer la route statique qui mène vers l'Internet dans les états de liens OSPF :

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

3.6. 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

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

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

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

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)

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

Voisinage OSPF

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

États de liens

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

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

4. Métrique OSPF

4.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, 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.

4.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.

Tous les routeurs de la base de données d'état de lien sont identiques.

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.

4.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 :

10^8 bps/ bandwidth = 100 000 000 bps /bandwidth

Soit pour un lien 100 Mbps :

100 000 000 bps/100 000 000 bps = 1

4.4. Coûts OSPF

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

Support Coût
T1 (ligne série 1544kbps) 64
E1 (ligne série 2048kbps) 48
Ethernet 10
Fast Ethernet 100Mbps, FDDI 1

On peut changer la référence de calcul (à faire sur tous les routeurs), 1 par défaut. Pour s'adapter au 10G :

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

4.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. 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).

4.6. Modifier le coût d'une liaison

Le coût d'une liaison doit être identique sur chaque interface d'un lien.

On peut fixer le coût d'une liaison administrativement :

(config-if)#ip ospf cost cost

On peut aussi l'influencer administrativement :

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

4.7. Vérifier le coût d'une liaison

R5#show interface e0/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 e0/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

4.8. Distance administrative (AD) OSPF

La distance administrative (AD) est la valeur de préférence d'un protocole du routage sur un autre. La distance administrative par défaut de OSPF sur un routeur Cisco est 110.

Pour modifier cette valeur (à configurer de manière cohérente sur tous les routeurs) :

(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

4.9. Répartition de charge / Load Balancing

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

Pour modifier cette limite :

(config-router)#maximum-paths  ?
  <1-32>  Number of paths
Author image
Francois Goffinet est formateur Cisco Systems depuis 2002. Passionné des technologies des réseaux, de virtualisation et en nuage, Web et de cybersécurité souvent en Open Source ou Unix-Like, devops.