# Enhanced Interior Gateway Routing Protocol

Enhanced Interior Gateway Routing Protocol (EIGRP) est un protocole de routage propriétaire développé par Cisco à partir de leur protocole original IGRP. De ce fait, EIGRP ne pouvait être utilisé que sur des équipements Cisco, mais est devenu un protocole partiellement ouvert en 2013, permettant aux fabricants de routeurs de l'utiliser. Il est depuis décrit dans la RFC 7868.
EIGRP est un protocole de routage à vecteur de distance IP, avec une optimisation permettant de minimiser l'instabilité de routage due aussi bien au changement de topologie qu'à l'utilisation de la bande passante et la puissance du processeur du routeur.
Certaines de ces optimisations sont basées sur le Diffusing Update Algorithm (DUAL) développé par SRI, qui garantit l'absence de boucle. En particulier, DUAL évite les « sauts à l'infini » (voir métrique (routage)) en les limitant à 224.

## Métriques multiples

EIGRP calcule les métriques sur base de 5 paramètres combinés à 5 coefficients K :
* K1 Bande passante
* K2 Charge
* K3 Délai
* K4 Fiabilité
* K5 MTU
La formule est :
$m=256\cdot (K1\cdot BP+{\frac {K2\cdot BP}{256-Charge}}+K3\cdot Delai)\cdot {\frac {K5}{Fiabilite+K4}}$ soit 256 fois la formule pour la métrique d'IGRP
où :
* 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ées 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.
* les constantes (K1 à K5) peuvent être modifiées par l'utilisateur pour obtenir des comportements différents. Si K5 est à zéro, le rapport K4/K5 n'est pas utilisé (par exemple valorisé à 1).
Par défaut, K1 et K3 sont à 1, et le reste à zéro, réduisant la formule à :
$m=256\cdot ({\frac {{10}^{7}}{min(bandwidth)}}+\sum {\frac {delais}{10}})$
où :
* min(bandwidth) est la bande passante minimale le long du chemin, exprimée en kbit/s
* les délais sont exprimés en microsecondes.
Par exemple, la métrique correspondant à un lien série de 768 kbit/s suivi par une connexion Ethernet de 10 Mbit/s sera :
$m=256\cdot ({\frac {{10}^{7}}{768}}+{\frac {20000+1000}{10}})=256\cdot (13020+2100)=3870720$
Les constantes K1…K5 doivent être de même valeur sur tous les routeurs d'un même système EIGRP, dans le cas contraire des adjacences ne peuvent pas se former. Il n'y a aucun bénéfice connu à modifier les valeurs par défaut de K1…K5 et Cisco déconseille de modifier ces valeurs.

## Distance administrative

Pour les routeurs Cisco :
* en interne, la distance administrative (AD) de EIGRP est de 90. Cisco privilégie son protocole de routage par rapport aux autres avec un AD plus faible
* en externe, la distance administrative (AD) de EIGRP est de 170

## Détails techniques
### Fonctionnalités

- EIGRP gère le routage inter-domaine sans classe permettant l'utilisation de masques de sous-réseaux à longueur variable, ce qui était impossible pour son prédécesseur, IGRP.
- L'utilisation de l'algorithme DUAL fait d'EIGRP un des protocoles de routage dont la convergence est des plus rapides
- EIGRP permet de gérer l’équilibrage de charge sur des chemins différents grâce à son système de successeurs
- EIGRP est multi-protocole : il peut exécuter différents processus de routage, et donc construire différentes routes pour IP, IPX et AppleTalk.
- EIGRP permet l’utilisation de hash comme MD5 et SHA-2 pour la communication entre deux routeurs, permettant de rester confidentiel même en cas de reniflement de paquet sur le réseau
- EIGRP permet de spécifier des heures pendant lesquelles les authentifications EIGRP entre routeurs sont valides

### Successeur et successeur possible

Ces deux termes sont utilisés par EIGRP (successor et feasible successor en anglais). Le successeur est la route ayant la meilleure métrique pour atteindre la destination donnée. Le successeur possible est une route de secours permettant d’atteindre la même destination, mais avec une distance plus importante, donc moins optimale que le successeur. La condition à respecter pour être choisi comme successeur possible est d’avoir une distance possible (Feasible Distance en anglais) plus grande que la distance annoncée (Advertised Distance en anglais). Si le successeur devait devenir indisponible, le successeur possible devient alors la route choisie. Ce mécanisme permet l’équilibrage de charge entre des chemins différents. Une route possède un successeur, et jusqu’à 4 successeurs possibles par défaut

### Routes actives et passives

Une route peut avoir 2 états : active ou passive
Une route dite passive est une route qui est atteignable et quand EIGRP a complètement convergé. Un réseau EIRGP est considéré comme stable une fois que toutes ses routes sont dans un état passif. Si le successeur ne répond pas, mais qu’il existe un successeur possible disponible, la route reste dans l’état passif.
Une route passe en mode actif quand le successeur et tous les successeurs possibles ne peuvent pas atteindre la destination. EIGRP envoie alors des paquets de requête et doit re-converger.
Une route peut acquérir le statut de « bloqué en actif » (Stuck In Active en anglais) si un nœud EIGRP ne reçoit pas de paquet réponse pendant trois minutes suivant sa requête, l’empêchant de re-converger. Le routeur local va ensuite mettre à jour sa table d’adjacence en enlevant tous les routeurs qui n’ont pas répondu, et placer les routes passant par ceux-ci en mode actif.