Objectifs de certification

ENCOR 350-401

  • 3.2 Layer 3 : 3.2.a Compare routing concepts of EIGRP and OSPF (advanced distance vector vs. linked state, load balancing, path selection, path operations, metrics)


Protocole EIGRP

Le protocole de routage dynamique propriétaire EIGRP est la solution préférée dans les infrastructures Cisco Systems. EIGRP est un protocole de routage dynamique intérieur hautement fonctionnel. Il converge très rapidement et il est multi-protocoles IPv4/IPv6. Il permet de contrôler finement la métrique de manière à influencer les entrées de la table de routage. EIGRP est alors capable de répartir la charge de trafic sur des liaisons à coûts inégaux.

1. Présentation du protocole EIGRP

  • Protocole de routage à vecteur de distance avancé propriétaire (IP88).
  • Utilisant l’algorithme DUAL, Diffusing Update Algorithm mentionné comme “Loop-Free Routing Using Diffusing Computations”, (Garcia-Luna-Aceves 1993, SRI International).
  • Préféré dans les infrastructures homogènes Cisco, il est concurrent au standard IETF OSPF.
  • Performant et évolutif.
  • RFC 7868 informational (mai 2016), Cisco’s Enhanced Interior Gateway Routing Protocol (EIGRP)1.

1.1. Fonctionnalités

Le protocole EIGRP dispose de caractéristiques fonctionnelles modernes :

  • Établit des relations de voisinage.
  • Mises à jour opportunes, incrémentielles, partielles avec des demandes, des réponses et des accusés de réception (économie de bande passante).
  • Il est multi-protocoles : il supporte aussi bien qu’IPv4/IPv6.
  • Il utillise l’Unicast et le Multicast 224.0.0.10 et FF02::A, Il est directement embarqué dans IP (protocole IP 88).
  • Convergence très rapide par nature.
  • Calcul anticipé de routes alternatives sans boucle (algorithme DUAL).
  • Métrique fine “composite” (c’est-à-dire composées de plusieurs éléments dans une formule de calcul).
  • Répartition de charge égale des routes, mais aussi répartition de charge inégale de routes.
  • Redistribution de routes.
  • “Summarization” automatique/manuelle des routes.
  • Authentification des messages de routage.

1.2. Composants clés d’EIGRP

  • EIGRP découvre les routeurs voisins et prend en charge la maintenance des relations de voisinage avec des paquets Hello envoyés périodiquement.
  • Une machine à état quelques fois déjà nommée “RTP” (pour Reliable Transport Protocol) assure le contrôle, l’envoi, le suivi et assure la fiabilité des messages EIGRP.
  • L’algorithme d’optimisation des routes est “Diffusing Update Algorithm” (DUAL) qui détermine le meilleur chemin sans boucle.

1.3. Tables EIGRP

EIGRP gère trois tables :

  1. Neighbor Table : une table de voisinage est utilisée pour une livraison fiable des messages.
  2. Topology Table : une table topologique qui contient toutes les routes EIGRP sans boucles.
  3. La table de routage pouvant contenir les meilleures routes EIGRP.

2. Configuration EIGRP en IPv4 et en IPv6

Chaque routeur est identifié par un routeur ID, même s’il est conseillé qu’il soit unique, cet élément est moins critique dans les calculs EIGRP (en comparaison au router ID OSPF), sauf pour les routes externes2. Il s’agit d’un mot de 32 bits qu’il est obligatoire de configurer manuellement en IPv6. Comme en OSPF, l’adresse IPv4 d’une interface de loopback peut prévaloir pour déterminer cet identifiant.

2.1. Topologie d’étude

Topologie d'étude EIGRP en IPv4 et en IPv6

2.2. Configuration de base IPv4

hostname R1
!
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
!
interface GigabitEthernet0/0
 no shutdown
 ip address 192.168.1.1 255.255.255.0
!
interface GigabitEthernet0/2
 no shutdown
 ip address 192.168.225.1 255.255.255.0
!
interface GigabitEthernet0/3
 no shutdown
 ip address 192.168.226.1 255.255.255.0

2.3. Configuration du routage IPv4

router eigrp 1
 passive-interface GigabitEthernet0/0
 eigrp router-id 1.1.1.1
 network 192.168.1.0
 network 192.168.225.0
 network 192.168.226.0

Note sur la commande network, il est possible de préciser un masque pour choisir des interfaces participantes :

R1(config-router)#network ?
  A.B.C.D  Network number

R1(config-router)#network 192.168.0.0 ?
  A.B.C.D  EIGRP wild card bits
  <cr>

R1(config-router)#network 192.168.0.0 0.0.0.255 ?
  <cr>

Sans masque générique, c’est le réseau de classe (classful) qui est pris en compte.

2.4. Vérification de la configuration IPv4

R1#show ip protocols | begin eigrp
Routing Protocol is "eigrp 1"
  Outgoing update filter list for all interfaces is not set
  Incoming update filter list for all interfaces is not set
  Default networks flagged in outgoing updates
  Default networks accepted from incoming updates
  EIGRP-IPv4 Protocol for AS(1)
    Metric weight K1=1, K2=0, K3=1, K4=0, K5=0
    Soft SIA disabled
    NSF-aware route hold timer is 240
    Router-ID: 1.1.1.1
    Topology : 0 (base)
      Active Timer: 3 min
      Distance: internal 90 external 170
      Maximum path: 4
      Maximum hopcount 100
      Maximum metric variance 1
  Automatic Summarization: disabled
  Maximum path: 4
  Routing for Networks:
    192.168.1.0
    192.168.225.0
    192.168.226.0
  Passive Interface(s):
    GigabitEthernet0/0
  Routing Information Sources:
    Gateway         Distance      Last Update
    192.168.225.2         90      00:04:29
  Distance: internal 90 external 170

2.5. Configuration de base IPv6

hostname R1
!
interface GigabitEthernet0/0
 no shutdown
 ipv6 address FE80::1 link-local
 ipv6 address FD00:FD00:FD00:1::1/64
!
interface GigabitEthernet0/2
 no shutdown
 ipv6 address FE80::1 link-local
!
interface GigabitEthernet0/3
 no shutdown
 ipv6 address FE80::1 link-local

2.6. Configuration du routage IPv6

ipv6 unicast-routing
!
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
!
ipv6 router eigrp 1
 eigrp router-id 1.1.1.1
 passive-interface GigabitEthernet0/0
!
interface GigabitEthernet0/0
 ipv6 eigrp 1
!
interface GigabitEthernet0/2
 ipv6 eigrp 1
!
interface GigabitEthernet0/3
 ipv6 eigrp 1

Note : La configuration administrative du router-id est obligatoire en EIGRP IPv6.

2.7. Vérification de la configuration IPv6

R1#sh ipv6 protocols | begin eigrp
IPv6 Routing Protocol is "eigrp 1"
EIGRP-IPv6 Protocol for AS(1)
  Metric weight K1=1, K2=0, K3=1, K4=0, K5=0
  Soft SIA disabled
  NSF-aware route hold timer is 240
  Router-ID: 1.1.1.1
  Topology : 0 (base)
    Active Timer: 3 min
    Distance: internal 90 external 170
    Maximum path: 16
    Maximum hopcount 100
    Maximum metric variance 1
  Interfaces:
    GigabitEthernet0/2
    GigabitEthernet0/3
    GigabitEthernet0/0 (passive)
  Redistribution:
    None

2.8. Commandes de configuration EIGRP

On reconnaîtra les commandes :

  • router eigrp 1 où le chiffre signifie le numéro de système autonome (AS).
  • passive-interface qui empêche l’envoi d’informations de routage à travers l’interface désignée.
  • router-id qui fixe l’identifiant du routeur EIGRP (obligatoire en IPv6)

2.9. Déclaration des réseaux

Pour déclarer des réseaux dans le processus de routage EIGRP IPv4, on utilisera habituellement la commande network avec ou sans masque générique (réseau de classe pris en compte), selon le niveau de précision dans le choix des interfaces qui participent au routage :

R1(config)#router eigrp 1
R1(config-router)#network 192.168.1.0 0.0.0.255
R1(config-router)#network 192.168.225.0
R1(config-router)#network 192.168.226.0

Pour déclarer des réseaux dans le processus de routage EIGRP IPv6, on indique qu’une interface participe au routage:

R1(config)#interface G0/0
R1(config-if)#ipv6 eigrp 1

3. Voisinage EIGRP

3.1. Cinq types de paquets EIGRP

EIGRP cinq types de paquets :

  • Hello : identifie les voisins et sert de mécanisme de “keepalive”.
  • Update : Envoie des informations de routage de manière fiable
  • Query : Demande des informations de routage de manière fiable
  • Reply : Répond à un Query de manière fiable
  • ACK : Accusé de réception

3.2. Hello EIGRP

Les routeurs EIGRP s’annoncent dans des paquets Hello envoyés aux adresses 224.0.0.10 et FF02::A toutes les 5 secondes sur des liaisons rapides et 60 secondes sur des connexions série. Des délais différents sur les interfaces n’empêchent pas les relations de voisinage EIGRP. Toutefois,

  • L’adresse source doit être dans le même réseau que le voisin.
  • Le poids des métriques doit correspondre.
  • Le processus EIGRP doit être dans le même système autonome.

On configure le délai des “Hello” en configuration d’interface :

(config-if)#ip hello-interval eigrp <instance-tag> <seconds>

Le délai Hold Time est celui après lequel un voisin est considéré comme injoignable (down). On le configure sur une interface :

(config-if)#ip hold-time eigrp <instance-tag> <seconds>

3.3. Paquet EIGRP Hello IPv4

Paquet EIGRP Hello IPv4

3.4. Relations de voisinage

R1#show ipv6 eigrp neighbors
EIGRP-IPv6 Neighbors for AS(1)
H   Address                 Interface              Hold Uptime   SRTT   RTO  Q  Seq
                                                   (sec)         (ms)       Cnt Num
1   Link-local address:     Gi0/3                    10 00:20:28  231  1386  0  5
    FE80::3
0   Link-local address:     Gi0/2                    13 00:20:40  933  5000  0  6
    FE80::2
R1#show ip eigrp neighbors
EIGRP-IPv4 Neighbors for AS(1)
H   Address                 Interface              Hold Uptime   SRTT   RTO  Q  Seq
                                                   (sec)         (ms)       Cnt Num
0   192.168.225.2           Gi0/2                    14 00:15:58  520  3120  0  6
1   192.168.226.2           Gi0/3                    13 00:21:57   14   100  0  12

La valeur dans la colonne “Hold” de la sortie ne doit jamais excéder le “Hold Time” et ne doit jamais être inférieure au “Hello Interval”. La colonne “Hold” comprend des valeurs normales entre 10 et 15 secondes si le “Hold Time” est de 15 secondes et si le “Hello Interval” est de 5 secondes. La valeur normale sera comprise entre 120 et 180 secondes si le “Hello Interval” est de 60 secondes avec un “Hold Time” de 180 secondes. En cas de discordance, il y a lieu de vérifier les interfaces voisines, voire de configurer manuellement les délais.

On trouvera ici la signification des colonnes.

  • H : liste les voisins dans l’ordre appris par le routeur.
  • Address : L’adresse IP des voisins.
  • Interface : l’interface de laquelle le paquet Hello a été reçu.
  • Hold (sec) : le temps restant avant lequel le voisin est considéré comme “down”.
  • Uptime : le temps depuis lequel l’adjacence a été établie.
  • SRTT (Smooth Round Trip Timer) : le temps moyen en millisecondes entre la transmission d’un paquet à un voisin et la réception d’un accusé de réception.
  • RTO (Retransmission Timeout) : si la livraison Multicast échoue, alors la livraison Unicast est utilisée ; le RTO est le temps en millisecondes que le routeur patiente pour recevoir un accusé de réception à des messages livrés en Unicast.
  • Q Cnt (Queue count) : le nombre de paquets EIGRP mis en file d’attente. 0 est la meilleure valeur. Toute valeur supérieure à 0 est problématique.
  • Seq Num (Sequence Number) : le numéro de séquence du dernier message de mise-à-jour EIGRP (chaque message EIGRP dispose d’une numéro de séquence incrémenté).

3.5. EIGRP Update/ACK

EIGRP connaît un échange de messages dès que le voisinage est établi. Les routes sont transmises dans messages EIGRP Update adressés en multicast/unicast confirmés par des Hello ACK adressés en Unicast. Leur point commun est le numéro de séquence et le numéro “ack”.

EIGRP Update/ACK

On trouve aussi des paquets Update avec un flag “init” en Unicast préalables à l’échange des routes.

3.6. Message GOODBYE

Un message “Goodbye” est une fonctionnalité conçue pour améliorer la convergence EIGRP. Ce message informe immédiatement les voisins de la fin d’un processus de routage EIGRP et d’un changement dans la topologie. Cette fonctionnalité permet aussi aux voisins EIGRP de se synchroniser et de recalculer leurs relations de voisinage de manière plus efficace qu’au terme de l’expiration d’un compteur de retenue (“Hold Time”).

Un message “Goodbye” reçu par un routeur :

*Apr 26 13:48:42.523: %DUAL-5-NBRCHANGE: IP-EIGRP(0) 1: Neighbor 10.1.1.1 (Ethernet0/0) is down: Interface Goodbye received

Reference: http://www.cisco.com/c/en/us/td/docs/ios/12_2/ip/configuration/guide/fipr_c/1cfeigrp.html

4. Tables de routage EIGRP

4.1. Formule de métrique EIGRP

La métrique EIGRP est obtenue à partir d’une formule mathématique où \(k\) est un poids qui permet d’inclure les composantes suivantes :

  • bande passante (bandwidth, BW) : \(({10^7/bandwidth_i}) \times 256\)
  • délais (delay) : \(delay_i \times 256\)
  • charge (load)
  • fiabilité (reliability)
\[Metric = \Bigg[\Big({k1 \times BW_m + {k2 \times BW_m \over 256 - load}} + k3 \times delay\Big) \times {k5 \over k4 + reliability}\Bigg] \times 256\]

Où la bande passante minimum est \(BW_m = {10^7 \over least\_bandwidth}\)

Si la bande passante et le délai sont seulement activés par défaut comme l’indique la commande show ip protocols :

Metric weight K1=1, K2=0, K3=1, K4=0, K5=0
\[Metric = \Bigg[\Big({10^7 \over least\_bandwidth}\Big) + cumultative\_delay\Bigg] \times 256\]

4.2. Table de routage IPv4

R1#show ip route eigrp | begin Gateway
Gateway of last resort is not set
D     192.168.33.0/24
           [90/3072] via 192.168.225.2, 00:43:43, GigabitEthernet0/2
D     192.168.65.0/24
           [90/3072] via 192.168.226.2, 00:43:43, GigabitEthernet0/3
D     192.168.227.0/24
           [90/3072] via 192.168.226.2, 00:43:43, GigabitEthernet0/3
           [90/3072] via 192.168.225.2, 00:43:43, GigabitEthernet0/2

On constate que le réseau 192.168.227.0/24 entre R2 et R3 est joignable via R2 ou R3. Les deux routes disposent d’une valeur de métrique équivalente (3072). Le routeur répartira la charge sur les deux liaisons pour du trafic pour cette destination.

4.3. Table de routage IPv6

R1#show ipv6 route eigrp | begin 90
D   FD00:FD00:FD00:2::/64 [90/3072]
     via FE80::2, GigabitEthernet0/2
D   FD00:FD00:FD00:3::/64 [90/3072]
     via FE80::3, GigabitEthernet0/3

4.4. Diagnostic EIGRP

On retiendra les commandes de diagnostic suivante et la signification de leur sortie.

Pour IPv4 :

show ip protocols
show ip eigrp neighbors
show ip route eigrp
show ip eigrp interface <interface>
show ip eigrp topology

Pour IPv6 :

show ipv6 protocols
show ipv6 eigrp neighbors
show ipv6 route eigrp
show ipv6 eigrp interface <interface>
show ipv6 eigrp topology

5. Algorithme DUAL

La table topologique EIGRP contient toutes les routes sans boucles calculées grâce à l’algorithme DUAL. Les routes Actives sont celles qui sont en cours d’apprentissage et les routes Passives sont des routes apprises et valides.

La notion de “successor” correspond à celle de passerelle, soit le routeur disposant d’un chemin sans boucle pour un réseau de destination.

La Feasible Distance (FD) est la meilleure métrique pour cette destination.

Par défaut EIGRP installe un “successor” avec la “feasible distance”, soit la meilleure route sans boucle.

5.1. Condition de faisabilité

Une route alternative pour une destination pourrait être apprise d’avance alors qu’elle n’aurait pas la meilleure métrique à condition que sa distance reportée (Reported Distance) soit inférieure à la meilleure métrique (Feasible Distance) locale.

On trouve la “reported distance” à côté de la métrique calculée.

La Reported Distance est la meilleure métrique du “successor” potentiel pour la même destination.

Si cette valeur est inférieure à la FD locale, le chemin est certainement sans boucle.

On vérifie ces valeurs dans la table topologique EIGRP

5.2. Table topologique

R1#show ip eigrp topology
EIGRP-IPv4 Topology Table for AS(1)/ID(1.1.1.1)
Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - reply Status, s - sia Status

P 192.168.225.0/24, 1 successors, FD is 2816
        via Connected, GigabitEthernet0/2
P 192.168.227.0/24, 2 successors, FD is 3072
        via 192.168.225.2 (3072/2816), GigabitEthernet0/2
        via 192.168.226.2 (3072/2816), GigabitEthernet0/3
P 192.168.33.0/24, 1 successors, FD is 3072
        via 192.168.225.2 (3072/2816), GigabitEthernet0/2
P 192.168.1.0/24, 1 successors, FD is 2816
        via Connected, GigabitEthernet0/0
P 192.168.226.0/24, 1 successors, FD is 2816
        via Connected, GigabitEthernet0/3
P 192.168.65.0/24, 1 successors, FD is 3072
        via 192.168.226.2 (3072/2816), GigabitEthernet0/3

6. Manipuler les distances

6.1. Deuxième topologie EIGRP

Seconde topologie EIGRP

Dans cette topologie la bande passante est fixée de manière administrative à 200 Mbps entre R1 et R2.

6.2. Manipuler les distances

On peut manipuler la métrique EIGRP en fixant une bande passante administrative en Kbps sur les interfaces respectives, ici 200 Mbps entre R1 et R2 :

R1(config)#interface G0/2
R1(config-if)#bandwidth 200000
R2(config)#interface G0/1
R2(config-if)#bandwidth 200000

6.3. Seconde table de routage IPv4

La meilleure route pour le réseau 192.168.227.0/24 passe par R3 seulement (G0/3) :

R1#sh ip route eigrp | begin Gateway
Gateway of last resort is not set

D     192.168.33.0/24
           [90/3328] via 192.168.226.2, 00:04:28, GigabitEthernet0/3
D     192.168.65.0/24
           [90/3072] via 192.168.226.2, 00:04:28, GigabitEthernet0/3
D     192.168.227.0/24
           [90/3072] via 192.168.226.2, 00:04:28, GigabitEthernet0/3

6.4. Seconde table topologique

La meilleure route pour la destination 192.168.227.0/24 dispose d’une FD de 3072. Elle passe par R3 (G0/3).

Une route alternative pour cette même destination 192.168.227.0/24 passe par R2 (G0/2) avec une métrique calculée à 13312. Elle ne peut pas être incluse dans la table de routage car cette valeur est plus élevée que la meilleure métrique.

La “Reported Distance” 2816 de la route alternative est inférieure à la FD 3072 : c’est une route sans boucle.

R1#sh ip eigrp topology
P 192.168.227.0/24, 1 successors, FD is 3072
        via 192.168.226.2 (3072/2816), GigabitEthernet0/3
        via 192.168.225.2 (13312/2816), GigabitEthernet0/2

6.5. Unequal Load balancing

Il est possible d’inclure une route alternative à métrique plus élevée dans la table de routage pour une réparation de charge proportionnelle, “inégale” (unequal load balancing) si :

  • la route répond à la condition de faisabilité
  • la variance permet d’inclure cette route

6.6. Variance

La variance est le multiplicateur de la meilleure métrique qui permet d’inclure des routes sans boucles à métriques plus élevées. Par défaut, la variance fixée à 1 n’autorise que la prise en charge de la meilleure route. C’est un donc un rapport exprimé en nombre entier.

En divisant la métrique de la route alternative 13312 par la FD 3072, on obtient la valeur de la variance nécessaire à l’inclusion de notre route alternative, soit 5.

Il sera nécessaire d’exécuter la commande sur tous les routeurs pour assurer un routage cohérent :

(config)#router eigrp 1
(config-router)#variance 5

6.7. Troisième table de routage

R1#show ip route eigrp | begin Gateway
Gateway of last resort is not set

D     192.168.33.0/24
           [90/3328] via 192.168.226.2, 00:00:54, GigabitEthernet0/3
           [90/13312] via 192.168.225.2, 00:00:54, GigabitEthernet0/2
D     192.168.65.0/24
           [90/3072] via 192.168.226.2, 00:00:54, GigabitEthernet0/3
D     192.168.227.0/24
           [90/3072] via 192.168.226.2, 00:00:54, GigabitEthernet0/3
           [90/13312] via 192.168.225.2, 00:00:54, GigabitEthernet0/2

7. Captures et documentation EIGRP

  1. Le démon de routage Open Source FRRouting version 4 (22/03/2018) supporte nativement EIGRP en implémentant son RFC 7868. 

  2. Preventing Duplicate EIGRP Router IDs