Objectifs de certification
CCNA R&S 200-125
3.13 Configurer, vérifier et dépanner RIPv2 pour IPv4 sauf authentification, filtrage, summarization manuelle, redistribution
Routage dynamique RIPv2
Alors que le sujet RIPv2 avait disparu de la dernière certification CCNA, le protocole de routage dynamique à vecteur de distance de l’IETF revient dans l’examen courant. Si on ne conseille plus de déployer le protocole RIPv2 au profit d’OSPF, un aperçu technique et pratique trouve toujours son utilité dans la compréhension fondamentale du routage dynamique, de manière comparative avec les protocoles à état de liens et aussi par rapport EIGRP, protocole propriétaire Cisco, lui aussi dans la catégorie des protocoles à vecteur de distance.
1. Fondamentaux sur le protocole RIPv2
1.1. Protocole à vecteur de distance
Un protocole de routage à vecteur de distance est celui qui utilise un algorithme de routage qui additionne les distances pour trouver les meilleures routes (Bellman-Ford).
- Les routeurs envoient l’entièreté de leur table de routage aux voisins.
- Ces protocoles sont sensibles aux boucles de routage.
- Dans ce type de protocole, aucun routeur ne remplit de fonction particulière. On parlera de connaissance “plate” de l’inter-réseau ou de routage non-hiérarchique.
- Ils convergent lentement.
On citera RIP et IGRP (propriétaire obsolète) comme étant représentatifs. EIGRP est aussi un protocole à vecteur de distance avancé entièrement optimisé par Cisco Systems qui ne présente pas ces désavantages.
1.2. Routing Information Protocol
RIP est un protocole de routage intérieur à vecteur de distance de l’IETF.
Il est disponible en trois versions :
- RIPv1 (1988) : Broadcast
255.255.255.255
, classful, UDP520, RFC 1058 - RIPv2 (1993-1998) : Multicast
224.0.0.9
, authentification, classless, UDP520, RFC2453 - RIPng : Support IPv6, authentification IPSEC, Multicast
FF02::9
, UDP 521, RFC2080
1.3. Mises à jour RIP
- Les mises à jour s’effectuent de routeurs en routeurs.
- Les mises à jour s’effectuent périodiquement, toutes les 30 secondes.
- Les mises à jour consistent en des envois des tables de routage entières.
- Les mises à jour sont envoyées à l’adresse de diffusion (Broadcast)
255.255.255.255
en RIPv1 - Les mises à jour sont envoyées à l’adresse Multicast
224.0.0.9
en RIPv2
1.4. Métrique RIP
RIP utilise l’algorithme Bellman-Ford pour calculer les meilleures routes
- La distance administrative de RIP est de 120 par défaut.
- La métrique est basée sur le nombre de sauts.
- La métrique maximale est 15.
- La métrique infinie est 16. Empoisonne une route.
1.5. Vecteur de distance
Dans cet exemple, R1 et R2 s’échangent leur premier paquet RIPv2. Chacun ajoute une distance de +1 à la métrique du nouveau réseau qu’il annonce.
1.6. Boucles de routage (routing loops)
Une boucle de routage est une route diffusée pour des paquets qui n’atteignent jamais leur destination : ils passent de façon répétée par la même série de noeuds du réseau. Ce phénomène est dû à une convergence lente des informations de routage. Un routeur éloigné fait croire à des routeurs (bien informés d’une route modifiée) qu’il dispose d’une nouvelle route (à coût plus élevé) vers ce réseau.
Solutions aux boucles de routage
- Définir un nombre maximum de sauts (15), métrique infinie (16)
- Route poisoning : lorsqu’une route vers un réseau tombe, le réseau est immédiatement averti d’une métrique de distance infinie (le maximum de sauts +1), plus aucune incrémentation n’est possible.
- Split horizon : puisque toutes les interfaces d’un routeur sont censées envoyer des mises à jour de routage, le mécanisme Split horizon empêche à un routeur d’envoyer des informations (de métrique plus élevée) à travers l’interface de laquelle elle a appris l’information.
- Triggered Update : Une mise à jour est envoyée immédiatement plutôt qu’avant l’expiration du compteur lorsqu’une route est tombée. Utilisée avec la mesure de métrique infinie, cette solution assure que tous les routeurs ont la connaissance des routes tombées avant que n’importe quel compteur expire.
- Split Horizon avec Poison Reverse : le protocole de routage avertit de toutes les routes sortant d’une interface, mais celles qui ont été apprises d’une mise à jour plus récente venant dans cette interface sont marquées d’une métrique de distance infinie.
Compteurs (timers) RIP
- Update : délai des mises à jour, 30 s. par défaut
- Invalid : une route est considérée comme invalide après un certain délai sans annonce. Elle est alors marquée à une métrique infinie. 180 s. par défaut.
- Flush : délai après lequel une route est retirée de la table de routage. 240 s. par défaut (toujours supérieur à Invalid)
- Holddown : délai d’attente après lequel une route à métrique plus élevée est prise en compte. 180 s. par défaut. Ce compteur n’est pas décrit dans le protocole.
Compteur de retenue
Compteur de retenue (“Hold Down Timer”), propriétaire Cisco Systems.
Après avoir retenu qu’une route vers un réseau est tombée, le routeur attend une certaine période de temps avant de croire n’importe quelle autre information de routage à propos de ce réseau.Si l’information concernant une route tombée redevenant accessible est apprise du même voisin endéans le délai, la route est réinscrite dans la table de routage.
Si l’information d’une route de nouveau accessible provient d’un autre voisin avec une meilleure métrique, la route est réinscrite dans la table de routage et le compteur est arrêté.
1.7. Caractéristiques RIPv1/RIPv2
Caractéristique | RIPv1 | RIPv2 |
---|---|---|
Méthode et algorithme | Vecteur de distance, Bellman-Ford | idem |
Métrique, métrique infinie | Nombre de sauts, 16 | idem |
Distance administrative | 120 | idem |
Compteurs | “update” 30 sec, “invalid” 180 sec, “holddown” 180 sec, “flush” 240 sec | idem |
Encapsulation | UDP 520 | idem |
Anti-bouclage | “Split-horizon with poison reverse”, “triggered updates” | idem |
Répartition de charge | égale (4 par défaut) | idem |
Type | Classful | Classless |
Nombre de routes par MàJ | 25 | 25 (24 avec l’authentification) |
Adresse de destination | 255.255.255.255 | 224.0.0.9 |
Authentification | Non | Oui |
RFC | RFC 1058 | RFC2453 |
1.8. Cinq différences protocolaires entre RIPv1 et RIPv2
- Transmission d’un masque de sous-réseau avec les routes. Cette fonctionnalité permet à RIPv2 de supporter le VLSM (masque à longueur variable).
- Authentification.L’authentification d’une mise à jour de routage peut se faire en clair ou de manière cryptée (MD5). La première est prévue dans la RFC et l’autre a été ajoutée par Cisco
- Inclusion l’adresse IP du prochain saut dans la mise à jour de routage.Un routeur peut annoncer une route mais diriger tous les autres routeurs à l’écoute vers un différent routeur vers un même sous-réseau. Cette fonction est uniquement utilisée lorsqu’un routeur dispose d’une meilleure route.
- Emploi d’indicateurs de routes externes (route tag). RIP peut transmettre des informations sur les routes découvertes par le biais d’une source externe et redistribuées dans RIP.
- Envoi de mises à jour de routage à une adresse Multicast. Au lieu d’envoyer des mises à jour avec l’adresse de diffusion (Broadcast)
255.255.255.255
, RIPv2 les envoie vers l’adresse de Multicast224.0.0.9
. Cette fonctionnalité réduit la charge de traitement requise sur les hôtes qui ne prennent aucune des deux versions de RIP en charge au sein d’un même réseau.
1.9. Champs RIPv1/RIPv2
Capture RIP : https://www.cloudshark.org/captures/0d0fb368dfb9
1.10. Paquet RIPv2
Mise à jour de R1 sur son réseau 192.168.1.0/24
.
1.11. Limites de RIP
La croissance rapide et l’expansion des réseaux a poussé RIP à ses limites. RIP comporte certaines restrictions qui peuvent causer des problèmes dans les réseaux larges.
RIP a une limite de 15 sauts. Un réseau qui comporte plus de 15 sauts (15 routeurs) est considéré comme inaccessible.
RIPv1 ne supporte pas les masques à longueur variable (VLSM : “Variable Length Subnet Mask”). Compte tenu du manque d’adresses IP et de sa flexibilité, le VLSM comporte des avantages considérables dans les plans d’adressage.
L’envoi périodique de l’entièreté des tables de routage en diffusion (Broadcast) ou Multicast consomme une grande quantité de bande passante. RIP converge plus lentement qu’OSPF. Dans les très grands réseaux, la convergence doit être rapide.
RIP ne prend pas en compte les paramètres de délai et de coût. Les décisions de routage sont uniquement basées sur le nombre de sauts quelque soit la bande passante ou les délais des lignes.
Les réseaux RIP sont des réseaux plats. Il n’y a pas de concept d’area (zone) ou de boundarie (frontière). Avec l’introduction du routage sans classe (classless) et l’utilisation intelligente de l’agrégation et de la “summarization” des routes, les réseaux RIP ont moins de succès.
RIP est sensible aux boucles de routage.
Mais il reste néanmoins facile à déployer et léger et, surtout dans le cadre qui nous occupe, utile au bon apprentissage des principes des protocoles de routage.
Certaines améliorations ont été introduites dans une version nouvelle de RIP appelée RIPv2. RIPv2 supporte le VLSM, permet l’authentification et les mises à jour de routage en Multicast. Toutefois, ces améliorations restent faibles car RIPv2 est encore limité par le nombre de sauts et une convergence lente qui conviennent mal aux réseaux étendus.
2. Mise en oeuvre de RIPv2
2.1. Topologie RIPv2 VLSM
Le réseau 192.168.1.0/24
a été découpé en 6 sous-réseaux.
Initialisation de R1
hostname R1
!
interface GigabitEthernet0/0
ip address 192.168.1.1 255.255.255.128
no shutdown
!
interface GigabitEthernet0/2
ip address 192.168.1.225 255.255.255.252
no shutdown
!
interface GigabitEthernet0/3
ip address 192.168.1.229 255.255.255.252
no shutdown
!
ip dhcp pool LAN_R1
network 192.168.1.0 255.255.255.128
default-router 192.168.1.1
!
end
Initialisation de R2
hostname R2
!
interface GigabitEthernet0/0
ip address 192.168.1.129 255.255.255.192
no shutdown
!
interface GigabitEthernet0/1
ip address 192.168.1.226 255.255.255.252
no shutdown
!
interface GigabitEthernet0/3
ip address 192.168.1.233 255.255.255.252
no shutdown
!
ip dhcp pool LAN_R2
network 192.168.1.128 255.255.255.192
default-router 192.168.1.129
!
end
Initialisation de R3
hostname R3
!
interface GigabitEthernet0/0
ip address 192.168.1.193 255.255.255.224
no shutdown
!
interface GigabitEthernet0/1
ip address 192.168.1.230 255.255.255.252
no shutdown
!
interface GigabitEthernet0/2
ip address 192.168.1.234 255.255.255.252
no shutdown
!
ip dhcp pool LAN_R3
network 192.168.1.192 255.255.255.224
default-router 192.168.1.193
!
end
2.2. Activation du routage RIPv2
Pour activer RIPv2,
- on se place dans le mode de configuration du routage RIP
- on active RIP version 2,
- on déclare les réseaux (les interfaces qui participent au routage)
- on empêche l’envoi de mises-à-jour sur l’interface LAN
Configuration RIPv2
Sur chaque routeur R1, R2 et R3, la configuration est identique :
router rip
version 2
network 192.168.1.0
passive-interface G0/0
Commande router
La commande router rip
permet d’accéder au mode de configuration de RIP. Par défaut, il envoie ses MàJ en RIPv1 mais est capable d’interpréter des messages RIPv2 :
# show ip protocols
Default version control: send version 1, receive any version
Interface Send Recv Triggered RIP Key-chain
GigabitEthernet0/1 1 1 2
GigabitEthernet0/2 1 1 2
La commande version 2
La commande version 2
active seulement les messages dans cette version sur les interfaces concernées :
# show ip protocols
Default version control: send version 2, receive version 2
Interface Send Recv Triggered RIP Key-chain
GigabitEthernet0/1 2 2
GigabitEthernet0/2 2 2
Effets de la commande network
La commande network
dispose de deux effets :
- Elle fait de la publicité, des annonces pour les segments réseaux concernés
- Elle active l’émission et la réception de messages de protocole de routage sur les interfaces adressées dans ces réseaux
Réseaux à déclarer
Il faut déclarer tous les réseaux qui doivent participer au routage, soit, par exemple sur R1 :
- GigabitEthernet0/0 : 192.168.1.0/25
- GigabitEthernet0/1 : 192.168.1.224/30
- GigabitEthernet0/2 : 192.168.1.228/30
Mais comme RIP est d’abord un protocole classful, on déclare uniquement le réseau de classe C, sans masque :
router rip
version 2
network 192.168.1.0
Toutes les interfaces dans le réseau de la classe déclarée participent au routage. Cette commande network
est également utilisée de manière plus fine en OPSFv2 et en EIGRP. On la retrouvera aussi dans la configuration du protocole BGP.
Interfaces passives
Parce que la commande network
active la capacité des interfaces à envoyer des mises-à-jour, l’interface qui connecte le LAN (G0/0) envoie inutilement des messages toutes les 30 secondes en 224.0.0.9.
La commande passive-interface
suivie du nom de l’interface désactive ce comportement polluant.
Authentification
On notera que si la commande passive-interface
désactive l’envoi de messages de routage, l’interface peut toujours en accepter de manière crédule, même venant d’un LAN.
Pour sécuriser le trafic en entrée des interfaces, on acceptera uniquement le trafic de confiance en activant l’authentification des informations de routage.
2.3. Vérification de la configuration
On vérifiera le déploiement de RIPv2 avec sur les routeurs :
show ip protocols
show ip route
debug ip rip
et sur les hôtes terminaux pour vérifier la connectivité de bout en bout :
ping
-
traceroute
/tracert
show ip protocols
R1# show ip protocols
Routing Protocol is "rip"
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
Sending updates every 30 seconds, next due in 21 seconds
Invalid after 180 seconds, hold down 180, flushed after 240
Redistributing: rip
Default version control: send version 2, receive version 2
Interface Send Recv Triggered RIP Key-chain
GigabitEthernet0/2 2 2
GigabitEthernet0/3 2 2
Automatic network summarization is in effect
Maximum path: 4
Routing for Networks:
192.168.1.0
Passive Interface(s):
GigabitEthernet0/0
Routing Information Sources:
Gateway Distance Last Update
192.168.1.226 120 00:00:23
192.168.1.230 120 00:00:13
Distance: (default is 120)
show ip route
R2#show ip route
192.168.1.0/24 is variably subnetted, 9 subnets, 5 masks
R 192.168.1.0/25
[120/1] via 192.168.1.225, 00:00:11, GigabitEthernet0/1
C 192.168.1.128/26 is directly connected, GigabitEthernet0/0
L 192.168.1.129/32 is directly connected, GigabitEthernet0/0
R 192.168.1.192/27
[120/1] via 192.168.1.234, 00:00:03, GigabitEthernet0/3
C 192.168.1.224/30 is directly connected, GigabitEthernet0/1
L 192.168.1.226/32 is directly connected, GigabitEthernet0/1
R 192.168.1.228/30
[120/1] via 192.168.1.234, 00:00:03, GigabitEthernet0/3
[120/1] via 192.168.1.225, 00:00:11, GigabitEthernet0/1
C 192.168.1.232/30 is directly connected, GigabitEthernet0/3
L 192.168.1.233/32 is directly connected, GigabitEthernet0/3
debug ip rip
La commande debug rip lance les logs RIP dans la console par défaut :
#debug ip rip ?
bfd RIP BFD Events
database RIP database events
events RIP protocol events
trigger RIP trigger extension
<cr>
Pour désactiver tout debug :
#undebug all
Connectivité de bout en bout
de PC2 à PC3 :
[root@pc2 ~]# ping -c 1 192.168.1.193
PING 192.168.1.193 (192.168.1.193) 56(84) bytes of data.
64 bytes from 192.168.1.193: icmp_seq=1 ttl=254 time=9.64 ms
--- 192.168.1.193 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 9.643/9.643/9.643/0.000 ms
[root@pc2 ~]# traceroute 192.168.1.193
traceroute to 192.168.1.193 (192.168.1.193), 30 hops max, 60 byte packets
1 gateway (192.168.1.129) 3.210 ms 20.521 ms 20.631 ms
2 192.168.1.234 (192.168.1.234) 5.811 ms * *
Si la liaison entre R2 et R3 tombe
Table de routage sur R2 :
R 192.168.1.0/25
[120/1] via 192.168.1.225, 00:00:24, GigabitEthernet0/1
C 192.168.1.128/26 is directly connected, GigabitEthernet0/0
L 192.168.1.129/32 is directly connected, GigabitEthernet0/0
R 192.168.1.192/27
[120/2] via 192.168.1.225, 00:00:24, GigabitEthernet0/1
C 192.168.1.224/30 is directly connected, GigabitEthernet0/1
L 192.168.1.226/32 is directly connected, GigabitEthernet0/1
R 192.168.1.228/30
[120/1] via 192.168.1.225, 00:00:24, GigabitEthernet0/1