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
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) et3.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 :
Support | Coût |
---|---|
T1 (ligne série 1544kbps) | 64 |
E1 (ligne série 2048kbps) | 48 |
Ethernet | 10 |
Fast Ethernet 100Mbps, FDDI | 1 |
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