Dans cette section, on introduit les premières commandes de configuration du protocole de routage dynamique OSPF qui permettent d'activer le protocole puis d'ajouter des entrées de réseau dans la base de données de ce protocole.
Q165. |
Comment peut on contrôler que le protocole OSPF est actif ou non sur un routeur ? Une fois la console vtysh ouverte, lancer les commandes de visualisation de l'état du protocole listées ci-dessous. Ces commandes peuvent être lancées sur chacun des trois routeurs.
|
||||||||||||
Dans les informations données dans la copie d'écran ci-dessous, il apparaît qu'aucune configuration du protocole de routage dynamique n'a été activée.
|
|||||||||||||
Q166. |
Quelles sont les opérations à effectuer pour activer les protocoles de routage OSPFv2 et OSPFv3 ? Comment affecter manuellement l'identifiant du routeur ?
La liste des commandes utiles en mode configuration dans la console vtysh est la suivante.
|
||||||||||||
Toujours à partir de la console vtysh, on accède au mode configuration à l'aide de la commande conf t. Voici un exemple de séquence sur le troisième routeur.
Une fois que chaque démon de routage OSPF possède un identifiant unique, on peut afficher les propriétés du protocole de routage dynamique même si aucun échange de route n'a encore eu lieu. sh run ospfd Building configuration...
Current configuration:
!
frr version 10.1.1
frr defaults traditional
hostname R1
log syslog informational
service integrated-vtysh-config
!
router ospf
ospf router-id 1.0.0.4
log-adjacency-changes detail
exit
!
end
sh run ospf6d Building configuration...
Current configuration:
!
frr version 10.1.1
frr defaults traditional
hostname R1
log syslog informational
service integrated-vtysh-config
!
router ospf6
ospf6 router-id 1.0.0.6
log-adjacency-changes detail
exit
!
end
Le choix de codage des identifiants OSPF a pour but d'éviter une confusion avec les adresses des réseaux actifs sur chaque routeur. Si on reprend les instructions de la question précédente, on obtient l'état de chacun des démons de protocole de routage dynamique. sh ip ospf OSPF Routing Process, Router ID: 1.0.0.4
Supports only single TOS (TOS0) routes
This implementation conforms to RFC2328
RFC1583Compatibility flag is disabled
OpaqueCapability flag is disabled
Initial SPF scheduling delay 0 millisec(s)
Minimum hold time between consecutive SPFs 50 millisec(s)
Maximum hold time between consecutive SPFs 5000 millisec(s)
Hold time multiplier is currently 1
SPF algorithm has not been run
SPF timer is inactive
LSA minimum interval 5000 msecs
LSA minimum arrival 1000 msecs
Write Multiplier set to 20
Refresh timer 10 secs
Maximum multiple paths(ECMP) supported 256
Administrative distance 110
Number of external LSA 0. Checksum Sum 0x00000000
Number of opaque AS LSA 0. Checksum Sum 0x00000000
Number of areas attached to this router: 0
All adjacency changes are logged
sh ipv6 ospf OSPFv3 Routing Process (0) with Router-ID 1.0.0.6
Running 00:09:20
LSA minimum arrival 1000 msecs
Maximum-paths 256
Administrative distance 110
Initial SPF scheduling delay 0 millisec(s)
Minimum hold time between consecutive SPFs 50 millsecond(s)
Maximum hold time between consecutive SPFs 5000 millsecond(s)
Hold time multiplier is currently 1
SPF algorithm has not been run
SPF timer is inactive
Number of AS scoped LSAs is 0
Number of areas in this router is 0
Authentication Sequence number info
Higher sequence no 0, Lower sequence no 0
All adjacency changes are logged
L'affectation des identifiants des démons de routage OSPF doit être réalisée sur les trois routeurs de la topologie. Ces identifiants seront très utiles et importants dès qu'il faudra afficher les listes de routeurs voisins au sens du protocole OSPF. |
|||||||||||||
Q167. |
Comment activer les protocoles de routage OSPFv2 et OSPFv3 pour les réseaux d'interconnexion de chaque routeur ? Il faut activer le protocole de routage dynamique sur chaque interface de la topologie qui participe à la construction du triangle. La liste des commandes utiles en mode console et en mode configuration dans vtysh est la suivante.
|
||||||||||||
Voici un exemple de séquence d'instructions pour le routeur
On commence par lister les entrées marquées C ou connected des tables de routage IPv4 et IPv6
de façon à reconnaître les deux côtés de la topologie triangle
connus du “sommet” sh ip route connected Codes: K - kernel route, C - connected, L - local, S - static, R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP, T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR, f - OpenFabric, t - Table-Direct, > - selected route, * - FIB route, q - queued, r - rejected, b - backup t - trapped, o - offload failure C>* 10.44.0.0/29 is directly connected, enp0s1.440, 01:26:12 C>* 10.44.1.0/29 is directly connected, enp0s1.441, 01:26:12 C>* 192.168.104.128/29 is directly connected, enp0s1.360, 01:26:12 sh ipv6 route connected Codes: K - kernel route, C - connected, L - local, S - static, R - RIPng, O - OSPFv3, I - IS-IS, B - BGP, N - NHRP, T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR, f - OpenFabric, t - Table-Direct, > - selected route, * - FIB route, q - queued, r - rejected, b - backup t - trapped, o - offload failure C>* 2001:678:3fc:168::/64 is directly connected, enp0s1.360, 01:30:26 C * fe80::/64 is directly connected, enp0s1.360, 01:30:25 C * fe80::/64 is directly connected, enp0s1.440, 01:30:26 C * fe80::/64 is directly connected, enp0s1, 01:30:26 C>* fe80::/64 is directly connected, enp0s1.441, 01:30:26 À partir de ces affichages, on sait que l'on doit activer les
protocoles OSPF pour les deux
sous-interfaces :
Ces opérations doivent être répétées sur les trois routeurs de la topologie. |
|||||||||||||
Q168. |
Comment visualiser l'état des interfaces actives pour chaque processus de protocole de routage dynamique OSPFv2 ou OSPFv3 ? Les interfaces sont dites actives pour les protocoles OSPFv2 ou OSPFv3 dès qu'elles ont été ajoutées aux processus de routage dynamique en précisant l'aire à laquelle elles appartiennent. La liste des commandes utiles dans la console vtysh est la suivante.
|
||||||||||||
En prenant l'exemple du routeur
enp0s1.440 is up ifindex 4, MTU 1500 bytes, BW 0 Mbit <UP,LOWER_UP,BROADCAST,RUNNING,MULTICAST> Internet Address 10.44.0.2/29, Broadcast 10.44.0.7, Area 0.0.0.0 MTU mismatch detection: enabled Router ID 2.0.0.4, Network Type BROADCAST, Cost: 10 Transmit Delay is 1 sec, State Backup, Priority 1 Designated Router (ID) 1.0.0.4 Interface Address 10.44.0.1/29 Backup Designated Router (ID) 2.0.0.4, Interface Address 10.44.0.2 Multicast group memberships: OSPFAllRouters OSPFDesignatedRouters Timer intervals configured, Hello 10s, Dead 40s, Wait 40s, Retransmit 5 Hello due in 5.086s Neighbor Count is 1, Adjacent neighbor count is 1 Graceful Restart hello delay: 10s La copie d'écran ci-dessus permet d'identifier les éléments suivants :
On reprend la même démarche pour le protocole OSPFv3.
enp0s1.440 is up, type BROADCAST Interface ID: 4 Internet Address: inet : 10.44.0.2/29 inet6: fe80::baad:caff:fefe:6/64 inet6: fe80::1b8:2/64 Instance ID 0, Interface MTU 1500 (autodetect: 1500) MTU mismatch detection: enabled Area ID 0.0.0.0, Cost 10 State BDR, Transmit Delay 1 sec, Priority 1 Timer intervals configured: Hello 10(8.803), Dead 40, Retransmit 5 DR: 1.0.0.6 BDR: 2.0.0.4 Number of I/F scoped LSAs is 2 0 Pending LSAs for LSUpdate in Time 00:00:00 [thread off] 0 Pending LSAs for LSAck in Time 00:00:00 [thread off] Graceful Restart hello delay: 10s Authentication Trailer is disabled Relativement, à l'affichage des informations sur l'association entre une interface réseau et le démon de protocole OSPFv2 pour IPv4, l'affichage pour OSPFv3 et IPv6 est plus succinct. |
|||||||||||||
Q169. |
Comment vérifier que l'identifiant de routeur a correctement été attribué ? À partir des commandes proposées et de résultats des questions précédentes, rechercher l'information demandée. |
||||||||||||
Quelque soit la version du protocole OSPF, l'identifiant de routeur est toujours codé sous la forme d'une adresse IPv4. Pour valider la conformité entre les identifiants définis dans le plan d'adressage des travaux pratiques et les valeurs effectivement utilisées par les deux démons de routage dynamique, on affiche le contenu des base de topologie du protocole. Avec le démon OSPFv2, l'identification du routeur est immédiate.
OSPF Router with ID (1.0.0.4)
Router Link States (Area 0.0.0.0)
Link ID ADV Router Age Seq# CkSum Link count
1.0.0.4 1.0.0.4 884 0x8000001f 0x3bee 2
2.0.0.4 2.0.0.4 1016 0x8000001d 0xab78 2
3.0.0.4 3.0.0.4 843 0x8000001d 0xd34a 2
Net Link States (Area 0.0.0.0)
Link ID ADV Router Age Seq# CkSum
10.44.0.1 1.0.0.4 994 0x80000018 0xe61c
10.44.1.1 1.0.0.4 984 0x80000018 0xe61a
10.44.2.3 3.0.0.4 843 0x80000018 0xbc3e
En revanche, le démon OSPFv3 ne donne pas d'information sur l'identifiant du processus en cours. L'affichage est cependant beaucoup plus exhaustif avec les informations par interface.
Area Scoped Link State Database (Area 0) Type LSId AdvRouter Age SeqNum Payload Rtr 0.0.0.0 1.0.0.6 1012 8000001b 1.0.0.6/0.0.0.5 Rtr 0.0.0.0 1.0.0.6 1012 8000001b 1.0.0.6/0.0.0.3 Rtr 0.0.0.0 2.0.0.4 1010 80000019 1.0.0.6/0.0.0.5 Rtr 0.0.0.0 2.0.0.4 1010 80000019 3.0.0.6/0.0.0.4 Rtr 0.0.0.0 3.0.0.6 1010 80000019 1.0.0.6/0.0.0.3 Rtr 0.0.0.0 3.0.0.6 1010 80000019 3.0.0.6/0.0.0.4 Net 0.0.0.3 1.0.0.6 1088 80000017 1.0.0.6 Net 0.0.0.3 1.0.0.6 1088 80000017 3.0.0.6 Net 0.0.0.5 1.0.0.6 1012 80000017 1.0.0.6 Net 0.0.0.5 1.0.0.6 1012 80000017 2.0.0.4 Net 0.0.0.4 3.0.0.6 1010 80000017 3.0.0.6 Net 0.0.0.4 3.0.0.6 1010 80000017 2.0.0.4 I/F Scoped Link State Database (I/F enp0s1.440 in Area 0) Type LSId AdvRouter Age SeqNum Payload Lnk 0.0.0.5 1.0.0.6 303 8000001a fe80::1b8:1 Lnk 0.0.0.4 2.0.0.4 1019 80000017 fe80::1b8:2 I/F Scoped Link State Database (I/F enp0s1.441 in Area 0) Type LSId AdvRouter Age SeqNum Payload Lnk 0.0.0.3 1.0.0.6 288 8000001a fe80::1b9:1 Lnk 0.0.0.3 3.0.0.6 1090 80000017 fe80::1b9:3 AS Scoped Link State Database Type LSId AdvRouter Age SeqNum Payload |
|||||||||||||
Q170. |
Comment identifier le type de réseau d'une interface ? À partir des résultats des questions précédentes, rechercher l'information demandée. |
||||||||||||
Comme on utilise des liens Ethernet dans ce contexte de travaux pratiques, le type le plus important est le réseau de diffusion ou BROADCAST.
enp0s1.442 is up
ifindex 4, MTU 1500 bytes, BW 0 Mbit <UP,LOWER_UP,BROADCAST,RUNNING,MULTICAST>
Internet Address 10.44.2.3/29, Broadcast 10.44.2.7, Area 0.0.0.0
MTU mismatch detection: enabled
Router ID 3.0.0.4, Network Type BROADCAST, Cost: 10
Transmit Delay is 1 sec, State DR, Priority 1
Designated Router (ID) 3.0.0.4 Interface Address 10.44.2.3/29
Backup Designated Router (ID) 2.0.0.4, Interface Address 10.44.2.2
Saved Network-LSA sequence number 0x80000019
Multicast group memberships: OSPFAllRouters OSPFDesignatedRouters
Timer intervals configured, Hello 10s, Dead 40s, Wait 40s, Retransmit 5
Hello due in 1.361s
Neighbor Count is 1, Adjacent neighbor count is 1
Graceful Restart hello delay: 10s
enp0s1.442 is up, type BROADCAST
Interface ID: 4
Internet Address:
inet : 10.44.2.3/29
inet6: fe80::baad:caff:fefe:7/64
inet6: fe80::1ba:3/64
Instance ID 0, Interface MTU 1500 (autodetect: 1500)
MTU mismatch detection: enabled
Area ID 0.0.0.0, Cost 10
State DR, Transmit Delay 1 sec, Priority 1
Timer intervals configured:
Hello 10(9.055), Dead 40, Retransmit 5
DR: 3.0.0.6 BDR: 2.0.0.4
Number of I/F scoped LSAs is 2
0 Pending LSAs for LSUpdate in Time 00:00:00 [thread off]
0 Pending LSAs for LSAck in Time 00:00:00 [thread off]
Graceful Restart hello delay: 10s
Authentication Trailer is disabled |
|||||||||||||
Q171. |
Comment obtenir la liste du ou des routeurs voisins pour chaque processus de protocole de routage dynamique OSPFv2 ou OSPFv3 ? Dès qu'une interface est active, il y a émission de paquets
La liste des commandes utiles dans la console vtysh est la suivante.
|
||||||||||||
À partir du routeur
Neighbor ID Pri State Up Time Dead Time Address Interface RXmtL RqstL DBsmL 2.0.0.4 1 Full/Backup 11h34m21s 37.712s 10.44.0.2 enp0s1.440:10.44.0.1 0 0 0 3.0.0.4 1 Full/Backup 11h35m30s 33.792s 10.44.1.3 enp0s1.441:10.44.1.1 0 0 0
Neighbor ID Pri DeadTime State/IfState Duration I/F[State] 2.0.0.4 1 00:00:37 Full/BDR 11:36:00 enp0s1.440[DR] 3.0.0.6 1 00:00:37 Full/BDR 11:37:15 enp0s1.441[DR] Les deux listes de voisins donnent une information essentielle
sur l'état de protocole de routage avec le mot clé |
|||||||||||||
Q172. |
Comment identifier le rôle des différentes interfaces des routeurs pour chacun des liens du triangle de la topologie logique ?
À partir des résultats des questions précédentes sur les interfaces actives, il est possible de compléter le schéma de la topologie étudiée avec l'état des interfaces pour chacun des trois liens. |
||||||||||||
Sur un même réseau de diffusion, il est possible de trouver plusieurs routeurs OSPF. Établir une relation de voisinage et procéder aux échanges de bases de données topologiques entre chaque routeur revient à constituer un réseau de relations complètement maillé. À chaque nouveau calcul de topologie, ce réseau complètement maillé est inefficace. C'est la raison pour laquelle la notion de routeur référent ou Designated Router a été introduite. Lors d'un recalcul de topologie, tous les routeurs s'adressent au routeur référent qui correspond au cœur d'un réseau en topologie étoile. Dans le contexte de la topologie triangle étudiée, il y a bien élection d'un routeur référent et d'un routeur référent de secours. Cependant, comme il n'y a que deux routeurs par domaine de diffusion ou VLAN, on ne peut pas caractériser l'utilité de cette élection. |
|||||||||||||
Q173. |
Quels sont les réseaux IPv4 et IPv6 présents dans la table de topologie du protocole OSPF ? On cherche a visualiser la liste des préfixes des réseaux connus des deux démons OSPF. La liste des commandes utiles dans la console vtysh est la suivante.
|
||||||||||||
Une fois que les trois routeurs de la topologie ont convergé, chaque démon connaît les trois préfixes qui correspondent aux trois côtés du triangle. Un routeur correspond à un sommet du triangle et il doit apprendre le préfixe réseau du côté opposé via ses deux routeurs voisins. Voici la vue depuis le routeur
============ OSPF network routing table ============ N 10.44.0.0/29 [10] area: 0.0.0.0 directly attached to enp0s1.440 N 10.44.1.0/29 [10] area: 0.0.0.0 directly attached to enp0s1.441 N 10.44.2.0/29 [20] area: 0.0.0.0 via 10.44.0.2, enp0s1.440 via 10.44.1.3, enp0s1.441 ============ OSPF router routing table ============= ============ OSPF external routing table =========== Les valeurs notées entre crochets correspondent à la métrique du lien pour joindre le réseau noté à gauche.
Cette dernière commande ne produit aucun résultat et c'est normal ! En effet, avec le protocole IPv6 les relations de voisinage entre routeurs (adjacences) se font avec les adresses IPv6 de lien local. Formulé autrement, les trois côtés de la topologie triangle sont des réseaux de transit qui servent à acheminer le trafic entre routeurs voisins. Il est inutile de gaspiller un préfixe réseau IPv6 pour cette tâche. |
|||||||||||||
Q174. |
Comment sont calculées les coûts de liens pour joindre les réseaux ? Rechercher les informations sur les calculs de coûts dans les supports de cours sur le protocole OSPF. |
||||||||||||
Depuis la première spécification du protocole OSPF, le calcul de métrique peut se faire suivant deux méthodes.
Dans notre cas, chaque interface de routeur a un coût de
Pour OSPFv2, les deux
premiers réseaux de la table sont joignable via un unique lien avec
un coût de Pour les préfixes IPv6, aucun
préfixe n'est présent sachant que les relations de voisinage entre
routeurs utilisent obligatoirement les adresses de lien local
appartenant au préfixe Les préfixes des réseaux d'hébergement de conteneurs apparaitront dès que le protocole de routage aura été activé pour les interfaces SVI. |
|||||||||||||
Q175. |
Comment visualiser les tables de routage depuis la console vtysh ? L'affichage demandé illustre les mécanismes de choix entre différentes solutions pour une même destination. Cet affichage est à comparer avec celui demandé à la question suivante. La liste des commandes utiles dans la console vtysh est la suivante.
|
||||||||||||
On reprend à nouveau l'exemple du routeur
Codes: K - kernel route, C - connected, L - local, S - static, R - RIP, O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP, T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR, f - OpenFabric, t - Table-Direct, > - selected route, * - FIB route, q - queued, r - rejected, b - backup t - trapped, o - offload failure K>* 0.0.0.0/0 [0/0] via 192.168.104.129, enp0s1.360, 15:22:36 O 10.44.0.0/29 [110/10] is directly connected, enp0s1.440, weight 1, 13:49:19 C>* 10.44.0.0/29 is directly connected, enp0s1.440, 15:22:36 L>* 10.44.0.1/32 is directly connected, enp0s1.440, 15:22:36 O 10.44.1.0/29 [110/10] is directly connected, enp0s1.441, weight 1, 13:48:58 C>* 10.44.1.0/29 is directly connected, enp0s1.441, 15:22:36 L>* 10.44.1.1/32 is directly connected, enp0s1.441, 15:22:36 O>* 10.44.2.0/29 [110/20] via 10.44.0.2, enp0s1.440, weight 1, 12:30:55 * via 10.44.1.3, enp0s1.441, weight 1, 12:30:55 C>* 192.168.104.128/29 is directly connected, enp0s1.360, 15:22:36 L>* 192.168.104.130/32 is directly connected, enp0s1.360, 15:22:36
Codes: K - kernel route, C - connected, L - local, S - static, R - RIPng, O - OSPFv3, I - IS-IS, B - BGP, N - NHRP, T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR, f - OpenFabric, t - Table-Direct, > - selected route, * - FIB route, q - queued, r - rejected, b - backup t - trapped, o - offload failure K>* ::/0 [0/1024] via fe80:168::1, enp0s1.360 onlink, 15:23:47 K d 2001:678:3fc:168::/64 [0/512] is directly connected, enp0s1.360, 15:23:44 C>* 2001:678:3fc:168::/64 is directly connected, enp0s1.360, 15:23:46 L>* 2001:678:3fc:168::82/128 is directly connected, enp0s1.360, 15:23:46 C * fe80::/64 is directly connected, enp0s1.360, 15:23:45 C * fe80::/64 is directly connected, enp0s1.440, 15:23:46 C * fe80::/64 is directly connected, enp0s1, 15:23:46 C>* fe80::/64 is directly connected, enp0s1.441, 15:23:46
|
|||||||||||||
Q176. |
Comment visualiser les tables de routage au niveau système ? Utiliser une commande usuelle de visualisation de la table de routage.
|
||||||||||||
Avec la commande ip, on voit apparaître les sources d'alimentation de la table de routage finale du système.
ip route ls default via 192.168.104.129 dev enp0s1.360 proto static
10.44.0.0/29 dev enp0s1.440 proto kernel scope link src 10.44.0.1
10.44.1.0/29 dev enp0s1.441 proto kernel scope link src 10.44.1.1
10.44.2.0/29 nhid 30 proto ospf metric 20
nexthop via 10.44.1.3 dev enp0s1.441 weight 1
nexthop via 10.44.0.2 dev enp0s1.440 weight 1
192.168.104.128/29 dev enp0s1.360 proto kernel scope link src 192.168.104.130
La table de routage IPv6 ne
fait apparaître aucune nouvelle entrée puisque les réseaux de
conteneurs desservis par ip -6 route ls 2001:678:3fc:168::/64 dev enp0s1.360 proto kernel metric 256 pref medium 2001:678:3fc:168::/64 dev enp0s1.360 proto ra metric 512 expires 2591830sec pref high fe80::/64 dev enp0s1 proto kernel metric 256 pref medium fe80::/64 dev enp0s1.441 proto kernel metric 256 pref medium fe80::/64 dev enp0s1.360 proto kernel metric 256 pref medium fe80::/64 dev enp0s1.440 proto kernel metric 256 pref medium default via fe80:168::1 dev enp0s1.360 proto static metric 1024 onlink pref medium |