EIGRP : Enhanced Interior Gateway Routing Protocol
EIGRP est l'acronyme de Enhanced Interior Gateway Routing Protocol. C'est un protocole de routage propriétaire. Il a été développé par Cisco afin de pallier les manques de IGRP.
Sa distance administrative est de 90. Son numéro de protocole est 88, et la lettre dans la table de routage pour une route apprise via EIGRP est la lettre 'D' (Le 'E' était déjà pris par les routes externes).
C'est un protocole de routage hybride. C'est à dire qu'il n'est ni un protocole à vecteur de distance (RIPv2), ni un protocol à état de liens (type OSPF). L'abscence de boucle dans le réseau est garanti par l'utilisation de l'algorithme DUAL (Diffusing Update Algorithm). De plus, il ne se base pas sur une topologie globale du réseau(OSPF) afin de pallier (si possible) à un changement de topologie. Il se base sur un "successeur" de secours (Feasible successor(vu plus loin)). Il n'utilise pas intensément le processeur et mémoire comme peut le faire OSPF en recalculant sa topologie par l'algorithme SPF, et donc mettre à jour sa table de routage en conséquence.
Pourquoi utiliser EIGRP ?
- Se base sur la bande passante et délai des liens parcourus
- Car il maintient en permanance (si possible) une route de secours
- Simple de configuration
- Flexible au niveau des résumés de routes
- Egal ou inégal load-balancing
- Supporte plusieurs protocole réseau (Apple Talk, IP, IPX)
EIGRP maintient trois tables :
- Une table de ses voisins (Neighbor)
- Une table contenant sa topologie (topology)
- La table de routage
1. Neighbors
EIGRP tout comme OSPF utilise un protocole "Hello" afin de découvrir ses voisins (Neighbor), mais aussi afin de détecter des changements de topologie. Il utilise le groupe multicast 224.0.0.10 dans ce but. Les message 'Hello' sont envoyés tous les 5s(Hello Timer). Une relation de voisinage est décidée rompue au bout de 15s (Hold Timer).
Pour devenir voisins, il est nécessaire de :
- Passer le processus d'authentification
- Faire partie du même système autonome
- Que les interfaces des deux voisins fassent parti du même subnet
Pour dérouler les processus de mise en relation des voisins, échanges de topologie, routes, EIGRP utilise des paquets de différents types qui sont :
- Hello/Acks
- Updates: Mise à jour de table, topologie, voisins
- Queries: Requêtes pour avoir des informations
- Replies: Réponses aux queries
- Requests: Requêtes pour avoir des informations sur un neighbor
2. Topology
Une fois la ou les relations de voisinage découverte, l'échange de topologie peut avoir lieu. Il se base sur RTP (Reliable Transport Protocol et NON Real Time Protocol) pour les Full update. EIGRP peut s'échanger ses routes au moyen de :
- Full update: Toutes les routes connues sont fournies.
- Partial update: ne fournit que les routes nouvellement changées.

3. Table de routage
EIGRP met dans la table de routage les routes dont la métrique est la plus basse. Celle-ci se décrit de la manière suivante :

Les valeurs par défaut de K1, K2, K3, K4, K5 sont :
- K1 = 1
- K2 = 0
- K3 = 1
- K4 = 0
- K5 = 0
BP est défini comme 10^7 kbit/s divisé par la bande passante la plus faible le long du chemin. Charge et Fiabilité sont des valeurs entières de 0 à 255 déterminée en fonction de la performance du lien. Délai est la somme des délais en dizaines de microsecondes. Ce délai est fixé arbitrairement à 20 000 s pour les connexions série et à 1 000 s pour les connexions Ethernet.
On se retrouve donc avec la formule suivante afin de calculer les métriques :

Il existe deux types de distance en EIGRP :
- Feasible Distance (FD): Route dont la metric est la plus basse vers le subnet 'x'i => Donc la meilleure route vers 'x'..
- Reported Distance (RD): Route apprise depuis un voisin par un 'update EIGRP' (Sans l'inférence de bande passante et délai entre notre routeur et son voisin) vers le subnet 'x'.
Le next-hop (routeur) de la Feasible Distance est appelé le 'successor'. Le sucessor est donc le routeur vers qui ont enverra les paquets vers le subnet 'x', vu que c'est la meilleure route vers ce subnet. Un moyen mémothechnique : un SUCCESSor a meilleur succès pour aller vers 'x'.
EIGRP tient à jour une route de secours. Celle-ci utilisera donc le routeur dont le nom est : 'Feasible successor'. On définit le Feasible successor de la manière suivante :
Si une route non successor vers 'x' a un RD inférieur au FD, alors la route est une 'Feasible Successor route'.
Néanmoins, il se peut qu'il n'existe pas de Feasible Successor, alors EIGRP utilise l'algorithme DUAL (Diffusing Update Algorithm) afin de trouver alors une route sans boucle vers 'x'. Il procède en demandant à ses voisins s'ils ont des routes vers 'x' et vérifie qu'il n'y a pas de boucle.
On voit donc que le temps de convergence est très rapide dans le cas où il y a une route 'Feasible Sucessor' et dans le cas où il n'y en a pas, le processus dure un peu plus longtemps.
| Feasible Successor | Temps |
| oui | <2s |
| non | <10s |
4. Comparaison OSPF/EIGRP
| Fonctionnalités | ||
| Converge rapidement | ||
| Prévention des boucles inclus dans le protocole | ||
| Mise à jour partielle de la table de routage: Nouvelles infos ou chgt | ||
| Classless: Manual summarization / VLSM | ||
| Permet le manual summarization | ||
| Utilise le multicast pour les infos de routage | ||
| Utilise le concept de Designated Router | ||
| Architecture flexible sans besoin du concept d'aire | ||
| Supporte du load-balancing avec des metric égales ou non | ||
| Metric robuste basé sur la bande passante et délai | ||
| Peut annoncer de l'IP, IPX, Appletalk | ||
| Standard public |
5. Configuration standard du process eigrp
La configuration standard du processus eigrp sur un routeur Cisco est telle que :
R(config)# router eigrp as-number R(config-router)# network subnet [wildcard] R(config-router)# maximum-paths number (optionnel) R(config-router)# variance multiplier (optionnel) R(config-if)# ip hello-interval eigrp asn time (optionnel) R(config-if)# ip hold-time eigrp asn time (optionnel) R(config-if)# bandwidth delay (optionnel) R(config-if)# delay (optionnel)
La configuration de l'authentification se fait de la manière suivante :
R(config)#key ch R(config)#key chain ? WORD Key-chain name R(config)#key chain toto R(config-keychain)#key 1 R(config-keychain-key)#? Key-chain key configuration commands: accept-lifetime Set accept lifetime of key default Set a command to its defaults exit Exit from key-chain key configuration mode key-string Set key string no Negate a command or set its defaults send-lifetime Set send lifetime of key R(config-keychain-key)#ke R(config-keychain-key)#key-string titi R(config-keychain-key)#^Z R#conf t R(config)# int fa0/0 R(config-if)# ip authentication mode eigrp 10 md5 R(config-if)# ip authentication key-chain eigrp 1 toto
Il est possible de supprimer l'autosummarization (no auto-summary) bien évidemment. Il est aussi possible de faire du résumé de route uniquement sur telle ou telle interface suivant votre choix. Par exemple :
R(config-if)# ip summary-address eigrp as-number 172.30.0.0 255.255.240.0
6. Outils de debug
Les outils de debug à notre disposition sont :
R# show ip eigrp neighbor R# show ip eigrp topology [summary] R# show ip route R# debug eigrp ? fsm EIGRP Dual Finite State Machine events/actions neighbors EIGRP neighbors packets EIGRP packets transmit EIGRP transmission events
7. Variance et load-balancing
Le paramètre de 'variance' permet dans certains cas d'ajouter plusieurs routes vers le même subnet 'x'. Cette valeur comprise entre 1 et 128 se multiplie avec FD, dans le but de rendre possible l'ajout de la route dans la table de routage dans le cas où 'maximun-paths' est supérieur à 1. Ceci est possible si :
- 'maximum-paths' > 1
- 'FS' < 'variance' * 'FD'
Une voisin ayant connaissance vers le subnet 'x' qui n'est ni un successor, ni un feasible successor ne peut être ajoutée dans la table de routage relativement à la variance.
8. Expérimentations
J'avoue m'être beaucoup amusé avec le lab suivant :

Les configuration si cela peut aider :
- http://odie.mcom.fr/~clucas/images/blog/eigrp/Router0_startup-config.txt
- http://odie.mcom.fr/~clucas/images/blog/eigrp/Router1_startup-config.txt
- http://odie.mcom.fr/~clucas/images/blog/eigrp/Router2_startup-config.txt
Christophe Lucas - http://odie.mcom.fr/~clucas/blog/
Delicious


Commentaires
bonjour,
SVP, je voulais savoir c'est quoi les avantages du protocole EIGRP??
Tres tres rapide convergence (utilisation d'un chemin de backup), moins d'utilisation des ressources système du au fait que eigrp est un protocole a vecteur de distance, metric composite (bande passante, délai, mtu, ... pris en compte dans le calcul de la metric), tres simple a mettre en oeuvre, flexible dans le résumé de route.