Vous êtes sur la page 1sur 23

[CISCO] : Configuration de l’EIGRP

février 27, 2017Cisco

L’EIGRP pour Enhanced Interior Gateway Routing Protocol est un protocole routage
dynamique propriétaire Cisco.Il s’agit d’un protocole de routage interne (IGP) à l’inverse de
l’eBGP qui est un protocole de routage externe.

Un IGP (OSPF,EIGRP,RIP) est un protocole de routage dynamique qui assure le routage dans
un AS.
Un EGP (eBGP) est un protocole de routage dynamique qui assurage le routage entre
plusieurs AS.
Un AS pour Autonomous System peut être défini comme une organisation (entreprise,
administration ect)

Ces avantages :

 Convergence rapide
 Utilisation faible de la bande passante
 Summarization
 LoadBalancing

Il utilise le protocole RTP (Reliable Transport Protocol) pour échanger des informations avec
les autres routeurs EIGRP qui sont dans son AS.

Contents [masquer]

 1/ Présentation de l’architecture
o 1.1/ Schéma d’architecture :
o 1.2/ Plan d’adressage :
 2/ : Configuration de base
o 2.1/ Activation de l’EIGRP
 3 / Passive-interface
 4/ Route summary
 5/ EIGRP Stub routing
 6 / Unequal cost load-balancing
o
 6.2/ Distribute-list
 6.3 / IP OFFSET-LIST :
 6.4 / Modification fonctionnement CEF
 Bonus :

1/ Présentation de l’architecture

1.1/ Schéma d’architecture :

1.2/ Plan d’adressage :


2/ : Configuration de base

Vous trouverez ici le lab associé avec l’adressage des interfaces pré-configurés. Il s’agit d’un
lab réalisé sous UnetLab.

L’objectif de ce tutoriel est :

 la communication du client du site distant (PC1) avec le serveur (SERVER1) en


datacenter.
 De configurer le loadbalancing EIGRP,
 de summarizer les réseaux du site client.

2.1/ Activation de l’EIGRP

Nous allons commencer ce tutorial par l’activation de l’EIGRP sur les deux routeurs d’interco
du datacenter R1 et R2.
[sh]
router eigrp autonomous-system
network network-number
[/sh]

La commande router eigrp 1 permet d’activer le process EIGRP et de définir l’AS (1) dans
lequel il va fonctionner.
L’AS entre l’ensemble des routeurs doit être identique si nous souhaitons qu’ils puissent
communiquer
La commande network permet d’activer et d’associer les interfaces à un process EIGRP.

Sur R1 :

[sh]
R1(config)#router eigrp 1
R1(config-router)#network 172.16.1.4 0.0.0.3
R1(config-router)#network 172.16.1.8 0.0.0.3
R1(config-router)#network 172.16.1.0 0.0.0.3
R1(config-router)#
[/sh]

Nous pouvons valider avec la commande show ip protocols que l’EIGRP est bien activé :

[sh]
R1#show ip protocols
*** IP Routing is NSF aware ***

Routing Protocol is « application »


Sending updates every 0 seconds
Invalid after 0 seconds, hold down 0, flushed after 0
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
Maximum path: 32
Routing for Networks:
Routing Information Sources:
Gateway Distance Last Update
Distance: (default is 4)

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: 172.16.1.9
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:
172.16.1.0/30
172.16.1.4/30
172.16.1.8/30
Routing Information Sources:
Gateway Distance Last Update
Distance: internal 90 external 170
[/sh]

Une fois l’EIGRP activé, le routeur va commencer à envoyer des « HELLO PACKET » sur
l’adresse multicast 224.0.0.10 pour découvrir les autres routeurs EIGRP et essayer d’établir
un « neighbor relationship » (une relation de voisinage)

Nous activons maintenant l’eigrp sur R2 :

[sh]
R2(config)#router eigrp 1
R2(config-router)#network 172.16.1.12 0.0.0.3
R2(config-router)#network 172.16.1.4 0.0.0.3
R2(config-router)#
[/sh]

Sur R1 j’ai activé le debug eigrp avec la commande debug ip eigrp neighbor
Nous pouvons voir dans les logs qu’une nouvelle « adjacency » c’est formé entre R1 et R2.

R1#debug ip eigrp neighbor


*Nov 29 17:45:07.359: EIGRP: New peer 172.16.1.6
R1#
*Nov 29 17:45:07.359: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.1.6
(Ethernet0/0) is up: new adjacency

La commande show ip eigrp neighbors nous renvoi la liste des routeurs avec lequel une
adjacency existe :

Pour que deux routeurs deviennent neighbors (voisins) EIGRP ils doivent remplir les
conditions suivantes:

 Fonctionner dans le même AS (Autonomous System), donc être configuré avec le


même ASN.
 L’interface concernée ne doit pas être configurée comme passive.
 Les valeurs K (valeurs qui définissent le calcul de la métrique) doivent correspondre.
Une fois l’adjacency entre les deux routeurs créés, ils commencent à échanger leur table de
routage (update) pour lesquelles il a une interface active (UP) et configuré dans le process
EIGRP (network command).

La table de routage est envoyé qu’une seul fois lors de la création de l’adjacency. Par la suite
seuls des updates sont envoyés par les routeurs lors d’une modification. Cela permet
d’économiser la bande passante et d’alléger le traitement par les routeurs.

Des hellos sont ensuite envoyé à intervalle régulier (hello interval timer) entre les deux
routeurs pour détecter la perte d’une interface ou d’un routeur lorsque la durée de vie du hello
est dépassé (hold timer) :

Par défaut sur une connexion Ethernet, le hello interval timer est à 5 secondes et le hold timer
est à 15 secondes

Nous pouvons manuellement modifier ces valeurs sur l’interface d’interconnexion avec le
routeur distant :

Sur R1 nous configurons dans l’AS 1 un hello-interval à 2 secondes et un hold-timer à 6


secondes entre R1 et R2

[sh]R1(config)#interface Eth 0/0


R1(config-if)#ip hello-interval eigrp 1 2
R1(config-if)#ip hold-time eigrp 1 6[/sh]

Sur R2 nous configurons dans l’AS 1 un hello-interval à 2 secondes et un hold-timer à 6


secondes entre R2 et R1

[sh]R2(config)#interface Et0/0
R2(config-if)#ip hello-interval eigrp 1 2
R2(config-if)#ip hold-time eigrp 1 6[/sh]

C’est valeur peuvent être différentes entre les routeurs.

Allons maintenant jeter un œil à la table de routage de R1 et R2.


Nous utilisons la commande show ip route eigrp qui affiche les routes apprises en EIGRP.

Voici la table de routage de R1 :


R1 a appris le réseau d’interco 172.16.1.12/30 entre R2 et R3 connu par R2 (interface e0/2).
Les valeurs [90/307200] nous indique dans l’ordre, la distance administrative par défaut
d’EIGRP (90) et la metric calculer par l’algorithme DUAL correspondant à la Feasable
Distance (307200) dans la table de topologie EIGRP .

L’algorithme DUAL est utilisé par EIGRP pour calculer la meilleur route pour joindre un
réseau, il se base sur la table de topologie pour effectuer ses calculs.

Nous pouvons afficher la table de topologie avec la commande show ip eigrp topology

Dans
la table de topologie nous retrouvons toutes les routes apprises en EIGRP, dont celle qui a été
ajouté à la table de routage (172.16.1.12/30).

La valeur 307200 correspond à la Feasability Distance (FD)


La valeur 281600 correspond à la Realiability Distance (RD)

La Feasability Distance correspond à la metric calculer depuis le routeur, ici R1

La Realiability Distance correspond à la FD annoncé par le routeur distant, ici il s’agit de la


FD du routeur R2 pour la route du réseaux 172.16.1.12/30

Vérifions cela dans la table de topologie de R2 :


Ci-
dessus nous retrouvons en vert la FD pour joindre le réseau 172.16.1.12/30 depuis R2
correspondant bien à la RD visible sur R1.

Voici la table de routage de R2 :

R2 a appris le réseau d’interco 172.16.1.0/30 entre R1 et R5 connu par R1 (interface e1/1) et


le réseau d’interco 172.16.1.8/30 entre R1 et R3 connu par R1 (interface e0/1).

Nous allons maintenant activer EIGRP sur le routeur R4 pour rendre accessible depuis R1 le
réseau 192.168.100.0/24 et ainsi joindre le serveur.

Nous activons sur R4, l’EIGRP sur l’ensemble de ses interfaces.


[sh]
R4(config)#router eigrp 1
R4(config-router)# network 172.16.1.12 0.0.0.3
R4(config-router)# network 172.16.1.16 0.0.0.3
R4(config-router)# network 192.168.100.0 0.0.0.255
[/sh]

R4 va devenir neighbor avec R2 et annoncer le réseau 192.168.100.0/24 à R2 qui va


l’annoncer à R1.

Allons vérifier que le réseau 192.168.100.0/24 est bien présent dans la table de routage de R1
:

La route a bien été rajouté à la table de routage de R1.

Le serveur répond bien au ping depuis R1

[sh]R1#ping 192.168.100.10
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.100.10, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms[/sh]

Et un traceroute depuis R1 nous montre que nous passons bien par R2 et R4 pour joindre le
serveur :

Dans notre table de topologie nous


avons actuellement qu’une seule route possible pour joindre le serveur (R1 – R2 – R4)

Nous allons donc intégré maintenant le routeur R3 à la topologie EIGRP. Comme vous
pouvez le voir sur le schéma il est lui même interconnecté à R1 et R4. Une fois EIGRP
configuré nous aurons donc une route de secours (R1 – R3 – R4) en cas perte du routeur R2
par exemple.
[sh]R3(config)#router eigrp 1
R3(config-router)#network 172.16.1.10 0.0.0.3
R3(config-router)#network 172.16.1.17 0.0.0.3[/sh]

En faisant un show ip eigrp neighbors nous validons que R3 est bien devenu neighbor avec
R1 et R4

Il devrait maintenant y avoir dans la topologie EIGRP de R1 les deux routes pour joindre le
réseau 192.168.100.0/24

On peut voir ici que le réseau 192.168.100.0/24 dispose d’un Successor ( 172.16.1.6 ) et d’un
Feasable Successor (172.16.1.10)

Un Successor est la route disposant de la meilleur metric pour joindre un réseau; cette route
sera placer dans la table de routage

Un Feasible Successor est une route alternative pour joindre un réseau; Si la meilleur route
venait à tomber elle serait remplacer par la route qui été Feasible Successor.
Pour être Feasible Successor, un routeur pour une destination donnée doit avoir une RD
strictement inférieur à la FD du Successor.

Ex :P 192.168.100.0/24, 1 successors, FD is 332800


via 172.16.1.6 (332800/307200), Ethernet0/0
via 172.16.1.10 (2636800/307200), Ethernet0/1
Ici le Successors (172.16.1.6) a une FD égal à 332800, le routeur 172.16.1.10 quant à lui à
une RD égal à 307200. La condition est donc bien respecter le routeur 172.16.1.10 devient
Feasible Successor pour joindre la destination 192.168.100.0/24.

La table de routage de R1 n’a quand à elle pas changé car c’est la route qui dispose de la plus
petite FD qui est ajoutée (332800 < 2636800) :

Nous allons maintenant simuler la perte du routeur R2. La table de routage de R1 devrait
changer est routé les flux à destinations du serveur par le biais du next-hop 172.16.1.10

J’en profite pour activer sur R1 le debug ip routing et le debug ip eigrp neighbor,

 debug ip routing : commande permettant de voir l’ensemble des changements


effectués dans la table de routage (suppression, ajout de route).
 debug ip eigrp neighbor : commande qui nous montre les changements d’état d’un
neighbor

[sh]R1#debug ip routing
R1#debug ip eigrp neighbor[/sh]

debug ip eigrp neighbor :

R1#
*Dec 2 12:18:08.913: EIGRP: Holdtime expired
*Dec 2 12:18:08.913: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.1.6
(Ethernet0/0) is down: holding time expired
R1#
*Dec 2 12:18:08.913: Going down: Peer 172.16.1.6 total=1 stub 0, iidb-stub=0 iid-all=0
*Dec 2 12:18:08.913: EIGRP: Handle deallocation failure [0]
*Dec 2 12:18:08.913: EIGRP: Neighbor 172.16.1.6 went down on Ethernet0/0
R1 détecte la perte de R2 à l’expiration de son holdtimer EIGRP.

debug ip routing :

R1#
*Dec 1 18:49:03.107: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.1.6
(Ethernet0/0) is down: holding time expired
*Dec 1 18:49:03.107: RT: delete route to 192.168.100.0 via 172.16.1.6, eigrp metric
[90/332800]
*Dec 1 18:49:03.107: RT: no routes to 192.168.100.0, delayed flush
*Dec 1 18:49:03.107: RT: delete network route to 192.168.100.0/24
R1#updating eigrp 192.168.100.0/24 (0x0) :
via 172.16.1.10 Et0/1 0 1048578
*Dec 1 18:49:03.107: RT: add 192.168.100.0/24 via 172.16.1.10, eigrp metric [90/2636800]

R1 supprime la route vers R2 pour joindre le réseau 192.168.100.0/24 de la table de routage


R1 rajoute la route vers R3 pour joindre le réseau 192.168.100.0/24 de la table de routage

Affichons maintenant la table de routage pour le réseau 192.168.100.0/24 :

R1#show ip route | s 192.168.100.0/24


D 192.168.100.0/24 [90/2636800] via 172.16.1.10, 00:10:05, Ethernet0/1

Le next-hop a changé dans la table de routage, il s’agit maintenant de R3.

En effectuant un traceroute nous notons bien que la nouvelle route (R1 – R3 – R4) est bien
utilisé pour joindre le serveur :

Je vais maintenant intégrer le dernier routeur ( R5 ) à la topologie EIGRP, il s’agit du routeur


du site distant qui porte les réseaux clients : 192.168.1.0/24, 192.168.2.0/24, 192.168.3.0/24.

[sh]R5(config)#router eigrp 1
R5(config-router)#network 192.168.0.0 0.0.3.255
R5(config-router)#network 172.16.1.1 0.0.0.3[/sh]

Dans la table de routage R1, nous retrouvons nos réseaux du site nos réseaux du site distant.

[sh]R1#show ip route | s 192.168


D 192.168.1.0/24 [90/307200] via 172.16.1.1, 00:30:24, Ethernet1/1
D 192.168.2.0/24 [90/307200] via 172.16.1.1, 00:30:24, Ethernet1/1
D 192.168.3.0/24 [90/307200] via 172.16.1.1, 00:30:24, Ethernet1/1[/sh]

Sur R4 qui porte le réseau 192.168.100.0/24, nous retrouvons aussi nos réseaux du site distant
[sh]R4#show ip route | s 192.168
D 192.168.1.0/24 [90/358400] via 172.16.1.13, 00:32:06, Ethernet0/1
D 192.168.2.0/24 [90/358400] via 172.16.1.13, 00:32:06, Ethernet0/1
D 192.168.3.0/24 [90/358400] via 172.16.1.13, 00:32:06, Ethernet0/1[/sh]

Ainsi que sur l’ensemble des routeurs d’interco (R2 – R3)

Depuis le poste 192.168.1.10 nous devrions donc être à même de pouvoir joindre le serveur
en 192.168.100.10

[sh]PC1#ping 192.168.100.10
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.100.10, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms[/sh]

3 / Passive-interface

Une interface passive est une interface pour laquelle le protocole EIGRP est activé mais qui
n’enverra ni recevra d’update et qui désactivera l’envoi de Hello Packet.
Cela permet de prévenir la création d’une relation EIGRP avec un routeur malicieux sur des
interfaces dites end-to-end.
Dans notre cas nous pouvons activer le mode passif sur les interfaces e0/0 – e0/1 – e0/2 du
routeur R5 et sur l’interface e0/1 du routeur R4 qui correspondent respectivement aux réseaux
utilisateurs et au réseau serveur.

Sur R5 nous allons par défaut configurer l’ensemble des interfaces en passive-interface et
seulement activer l’envoi de packet EIGRP sur l’interface d’interconnexion (e1/1) avec le
routeur R1.

R5(config)#router eigrp 1
R5(config-router)#passive-interface default
*Dec 6 15:47:20.756: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.1.2
(Ethernet1/1) is down: interface passive
R5(config-router)#no passive-interface Ethernet1/1
*Dec 6 15:47:31.230: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.1.2
(Ethernet1/1) is up: new adjacency

La commande passive-interface default configure l’ensemble des interfaces du routeur en


mode passif. La relation de voisinage entre R5 et R1 tombe puisque R5 ne répond plus au
Hello Packet de R1. La commande no passive-interface Ethernet1/1 réactive l’envoi de
message EIGRP, la relation de voisinage entre R5 et R1 remonte.

Nous pouvons valider l’activation du mode passif sur les interfaces avec la commande
suivante :

[sh]show ip protocols | s Passive


Passive Interface(s):
Ethernet0/0
Ethernet0/1
Ethernet0/2[/sh]

Sur R4 nous allons procéder de la même manière mais nous allons activer le mode passive
interface que sur l’interface e1/0

[sh]R4(config)#router eigrp 1
passive-interface ethernet 1/0
[/sh]

Nous pouvons valider l’activation du mode passif sur l’interface e1/0 sur R4

[sh]R4#show ip protocols | s Passive


Passive Interface(s):
Ethernet1/0[/sh]

4/ Route summary

Suite à l’ajout du routeur R5 nous notons l’apparition de 3 nouveaux réseaux dans la table de
routage que nous pourrions résumer par une seule route à destination du réseau
192.168.0.0/22 permettant ainsi de réduire la table de routage et par la même occasion
l’utilisation des ressources des routeurs.

EIGRP propose cette fonctionnalité par le biais de la route summarization. Nous allons donc
forcer EIGRP à annoncer le réseau 192.168.0.0/22 depuis le routeur R5 vers le datacenter.

Nous allons pour se faire utiliser la commande ip summary-address eigrp AS n.n.n.n s.s.s.s.s
sur l’interface d’interteconnexion du routeur (R5) portant les réseaux que nous souhaitons
summarizer.

L’interface d’interconnexion entre R5 et R1 est l’interface Ethernet1/1 :

[sh]R5(config)#interface Ethernet1/1
R5(config-if)#ip summary-address eigrp 1 192.168.0.0 255.255.252.0
*Dec 2 17:38:34.612: %DUAL-5-NBRCHANGE: EIGRP-IPv4 1: Neighbor 172.16.1.2
(Ethernet1/1) is resync: summary configured
[/sh]

Nous validons la bonne prise en compte de la commande :

[sh]R5#show ip protocols | s Address Summ


Address Summarization:
192.168.0.0/22 for Et1/1
Summarizing 3 components with metric 281600[/sh]

Faisons maintenant un tour dans la table de routage de R1 :

[sh]R1#show ip route eigrp | s 192.168.


D 192.168.0.0/22 [90/307200] via 172.16.1.1, 00:00:53, Ethernet1/1[/sh]
Nous remarquons maintenant que seul le réseau 192.168.0.0/22 est annoncé.

Avant :

[sh]R1#show ip route | s 192.168


D 192.168.1.0/24 [90/307200] via 172.16.1.1, 00:30:24, Ethernet1/1
D 192.168.2.0/24 [90/307200] via 172.16.1.1, 00:30:24, Ethernet1/1
D 192.168.3.0/24 [90/307200] via 172.16.1.1, 00:30:24, Ethernet1/1[/sh]

Après :

[sh]R1#show ip route eigrp | s 192.168.


D 192.168.0.0/22 [90/307200] via 172.16.1.1, 00:00:53, Ethernet1/1[/sh]

5/ EIGRP Stub routing

Le stub routing est une fonctionnalité supportée par EIGRP qui permet d’améliorer la stabilité
et de réduire l’utilisation des ressources des équipements. Il évite l’envoi de « Query » de la
part des autre routeurs de l’AS lorsqu’ils perdent une route .
Un routeur stub est un routeur connecté à un seul neighbor (voisin), dans notre topologie R5
est un routeur stub.

Pour activer cette fonctionnalité nous utilisons la commande eigrp stub

[sh]R5(config)#router eigrp 1
R5(config-router)#eigrp stub[/sh]

Par défaut cela active la propagation des routes connectées et résumées (summary route).

D’autres options existent :

R5(config-router)#eigrp stub ?
connected Do advertise connected routes
leak-map Allow dynamic prefixes based on the leak-map
receive-only Set receive only neighbor
redistributed Do advertise redistributed routes
static Do advertise static routes
summary Do advertise summary routes

Pour vérifier qu’un routeur distant est stub nous pouvons utiliser la commande suivante :

R1#show ip eigrp neighbors detail


EIGRP-IPv4 Neighbors for AS(1)
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
0 172.16.1.1 Et1/1 13 00:05:46 12 100 0 8
Version 18.0/2.0, Retrans: 0, Retries: 0, Prefixes: 1
Topology-ids from peer – 0
Stub Peer Advertising (CONNECTED SUMMARY ) Routes
R1 ne recevra plus de « Query » de la part des autres routeurs lorsque ceux-ci perdrons une
route.

Pour mieux comprendre le concept de Query je vous invite à lire cet article.

6 / Unequal cost load-balancing

Avec EIGRP nous pouvons faire du load-balancing entre deux liens qui non pas la même
metric. Cela permet d’utiliser la bande passante de deux liens simultanément. Pour pouvoir
utiliser le load-balancing il faut que le chemin secondaire soit un feasible successor, il doit
donc être présent dans le retour de la commande show ip eigrp topology.

Nous activons le load-balancing avec la commande variance

La variance défini un multiplicateur compris entre 1-128 il permet d’augmenter la métric


minimal d’ajout à la table de routage en se basant sur la FD du successor.

R1#show ip eigrp topology | s 192.168.100.0


P 192.168.100.0/24, 1 successors, FD is 332800
via 172.16.1.6 (332800/307200), Ethernet0/0
via 172.16.1.10 (2636800/307200), Ethernet0/1

On note que la FD du Feasible successor est égal à 2636800. Pour que ce chemin soit rajouté
à la table de routage il faut augmenter la métric minimum qui ce base sur la FD du successors
: 8*332800 = 2662400. La métric est multiplié par 8 elle est maintenant supérieur à la FD du
FS 2662400 > 2636800.

[sh]R1(config)#router eigrp 1
R1(config-router)#variance 8[/sh]

La route pour joindre le réseau 192.168.100.0/24 avec pour nexthop la 172.16.1.10 doit
maintenant être intégré à la table de routage :

R1#show ip route | s 192.168.100.0


D 192.168.100.0/24 [90/2636800] via 172.16.1.10, 20:34:30, Ethernet0/1
D [90/332800] via 172.16.1.6, 20:34:30, Ethernet0/0

Par défaut il est possible d’ajouter au maximun 4 routes différentes pour joindre un même
réseau :

R1#show ip protocols
—— Ignored lines ——
Automatic Summarization: disabled
Maximum path: 4
—— Ignored lines ——

Nous pouvons toutefois modifier cette limite avec la commande maximum-paths.


EX :
[sh]router eigrp 1
maximun-path 2[/sh]

Le trafic est proportionnellement répartit entre les chemins (R1 – R2 – R4 & R1 – R3 -R4)
par rapports aux métriques qui sont associées aux deux routes :

R1#show ip route 192.168.100.0


Routing entry for 192.168.100.0/24
—— Ignored lines ——
Routing Descriptor Blocks:
* 172.16.1.10, from 172.16.1.10, 17:26:23 ago, via Ethernet0/1
Route metric is 2636800, traffic share count is 1
—— Ignored lines ——
172.16.1.6, from 172.16.1.6, 17:26:23 ago, via Ethernet0/0
Route metric is 332800, traffic share count is 8
—— Ignored lines ——

Il faut maintenant faire la même chose sur R4 car actuellement le flux de retour passe
uniquement par le next-hop 172.16.1.13,.

[sh]R4#show ip route | i 192.168.0.0


D 192.168.0.0/22 [90/358400] via 172.16.1.13, 4d03h, Ethernet0/1[/sh]

Dans la table de topology il n’existe qu’un seul chemin pour joindre le réseau 192.168.0.0/22
(R4 – R2 – R1 – R5)

[sh]R4#show ip eigrp topology | s 192.168.0.0


P 192.168.0.0/22, 1 successors, FD is 358400
via 172.16.1.13 (358400/332800), Ethernet0/1[/sh]

Si nous regardons le schéma il devrait y avoir un second chemin par (R4 – R3 – R1 – R5)

Le réseau 192.168.0.0/22 est pourtant annoncé sur R3 :

[sh]R3#show ip eigrp topology all-links | s 192.168.0.0


P 192.168.0.0/22, 1 successors, FD is 384000, serno 11
via 172.16.1.18 (384000/358400), Ethernet0/2
via 172.16.1.9 (2636800/307200), Ethernet0/1[/sh]

En regardant la configuration de l’interface E0/2 sur R4 nous notons que le split-horizon est
activé :

R3#show ip eigrp 1 interfaces detail ethernet 0/2


EIGRP-IPv4 Interfaces for AS(1)
Xmit Queue PeerQ Mean Pacing Time Multicast Pending
Interface Peers Un/Reliable Un/Reliable SRTT Un/Reliable Flow Timer Routes
Et0/2 1 0/0 0/0 4 0/2 50 0
Hello-interval is 5, Hold-time is 15
Split-horizon is enabled
—— Ignored lines ——

Le split-horizon est une fonctionnalité qui évite les boucles de routage en empêchant
l’annonce d’une route par l’interface par laquelle elle a déjà été apprise.

Dans notre cas R3 apprend par ses interfaces Ethernet0/1 et Ethernet0/2 le réseau
192.168.0.0/22 respectivement par les routeur R1 et R4. R3 n’annoncera donc pas le réseau
192.168.0.0/22 par le biais de son interface Ethernet0/2 car ce réseau a été appris par celle-ci.

Deux solutions s’offre à nous pour pallier à ce problème : désactiver le split-horizon ce qui
dans notre cas n’est pas recommandé car nous irions droit vers une boucle de routage ou alors
bloquer l’annonce du réseau 192.168.0.0/22 par l’interface ethernet0/2 du routeur R4. Pour se
faire nous allons utiliser les distribute-list qui permettent de bloquer l’annonce de réseau dans
EIGRP

6.2/ Distribute-list

Nous créons d’abord une access-list qui va nous permettre de définir les réseaux que nous
souhaitons bloquer.

Ici nous bloquons le réseau 192.168.0.0/22 (deny) et nous autorisons tous les autres réseaux

[sh]R4(config)#ip access-list standard Network_Block_out


R4(config-std-nacl)#deny 192.168.0.0 0.0.0.3
R4(config-std-nacl)#permit any
R4(config-std-nacl)#end[/sh]

Il ne nous reste plus qu’à l’appliquer sur le process EIGRP 1 en sortie des interfaces :

[sh]R4(config)#router eigrp 1
R4(config-router)#distribute-list Network_Block_out out[/sh]

R3 ne connais plus qu’un chemin pour joindre le réseau 192.168.0.0/22

[sh]R3#show ip eigrp topology all-links | s 192.168.0.0


P 192.168.0.0/22, 1 successors, FD is 384000, serno 12
via 172.16.1.9 (2636800/307200), Ethernet0/1[/sh]

N’apprenant plus le chemin par le biais de R4 il l’a annoncé à celui-ci :

R4#show ip eigrp topology all-links | s 192.168.0.0


P 192.168.0.0/22, 1 successors, FD is 358400, serno 8
via 172.16.1.13 (358400/332800), Ethernet0/1
via 172.16.1.17 (2662400/2636800), Ethernet0/2

A noter que le chemin par le next-hop 172.16.1.17 (R3) n’est pas un Feasible Successor car sa
RD est inférieur à la FD du successor. Nous pouvons le vérifier en jetant un oeil à la table de
topologie qui affiche seulement les Successor et les Feasible Successor :
[sh]R4#show ip eigrp topology | s 192.168.0.0
P 192.168.0.0/22, 1 successors, FD is 358400
via 172.16.1.13 (358400/332800), Ethernet0/1[/sh]

Nous ne pouvons donc pas encore utiliser le load-balancing sur R4 car le chemin par le next-
hop 172.16.1.17 n’est pas un FS. Nous allons devoir joueur avec les métriques EIGRP pour
modifier leurs valeurs. Cela est rendu possible grâce aux OFFSET-LIST.

6.3 / IP OFFSET-LIST :

Les OFFSET-LIST nous permettent d’agir sur la FD et la RD. Nous allons depuis R2 annoncé
une metric supérieur pour joindre le réseau 192.168.0.0/22 depuis l’interface ethernet0/1.

Nous créons d’abord un accest-list pour définir le réseau sur lequel nous souhaitons agir :

[sh]R2(config)#ip access-list standard OFFSET


R2(config-std-nacl)#permit 192.168.0.0 0.0.0.3[/sh]

Pour rappel voici les valeurs des FD et RD avant le passage de la commande :

R4#show ip eigrp topology all-link | s 192.168.0.0


P 192.168.0.0/22, 1 successors, FD is 358400, serno 38
via 172.16.1.13 (358400/332800), Ethernet0/1
via 172.16.1.17 (2662400/2636800), Ethernet0/2

On va maintenant annoncer une valeur additionnel entre R2 et R4 (ethernet0/1) suffisamment


grande pour que la FD du chemin passant par le chemin 172.16.1.13 soit supérieur à la RD du
chemin passant par la 172.16.1.17.

[sh]R2(config)#router eigrp 1
R2(config-router)#offset-list OFFSET out 2278402 ethernet 0/1[/sh]

La FD du chemin passant par 172.16.1.13 a été augmenté de 2278402, elle est maintenant
supérieur à la RD du chemin passant par 172.16.1.17. Il est donc maintenant un Feasible
Successor.

R4#show ip eigrp topology | s 192.168.0.0


P 192.168.0.0/22, 1 successors, FD is 2636802
via 172.16.1.13 (2636802/2611202), Ethernet0/1
via 172.16.1.17 (2662400/2636800), Ethernet0/2

Nous pouvons maintenant activer le load-balancing sur R4 :

[sh]R4(config)#router eigrp 1
R4(config-router)#variance 2[/sh]

Les deux routes sont maintenant présentes dans la table de routage :


[sh]R4#show ip route | s 192.168.0.0
D 192.168.0.0/22 [90/2662400] via 172.16.1.17, 00:00:04, Ethernet0/2
D [90/2636802] via 172.16.1.13, 00:00:04, Ethernet0/1[/sh]

6.4 / Modification fonctionnement CEF

Nous allons maintenant lancer un ping depuis le PC1 (192.168.1.10) vers le SERVER1
(192.168.100.10) en lançant une capture Wireshark sur l’interface Ethernet0 & Ethernet1

Pou rappel voici les routes pour joindre le réseau 192.168.100.0/24 depuis R1.

R1#show ip eigrp topology | s 192.168.100.0


P 192.168.100.0/24, 1 successors, FD is 332800
via 172.16.1.6 (332800/307200), Ethernet0/0
via 172.16.1.10 (2636800/307200), Ethernet0/1

Nous lançons donc le ping depuis PC1 :

[sh]PC1#ping 192.168.100.10
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.100.10, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms[/sh]

Capture Wireshark R1 ethernet0/0

Capture Wireshark R1 ethernet0/1

Aucun flux ne passe par l’interface ethernet 0/1 de R4 pourtant le load-balancing est bien
activé et la route est bien présente dans la table de routage.

Cela vient de la fonction Cisco Express Forwarding (CEF) des routeurs qui permet
d’optimiser le routage des packets, il s’agit d’une fonctionnalité activé par défaut sur
l’ensemble des routeurs Cisco.

Il existe deux modes de fonctionnement du load-balancing avec CEF « per-destination load


balancing « & » per-packet load balancing « .

 Per-Destination Load Balancing : L’équilibrage de charge par destination transfère les


paquet en fonction du chemin d’accès à la destination. En gros l’ensemble des paquets
qui auront une destination A prendront le chemin 1 et l’ensemble des paquets qui
auront une destination B prendront le chemin 2.
 Per-Paquet Load Balancing : L’équilibrage de charge par paquet va transférer un
paquet par le chemin 1 puis un second paquet par le chemin 2 pour une même
destination. Cela assure un équilibrage de charge égal sur les deux liens mais cette
fonctionnalité est plus gourmande en utilisation du processeur.

Par défaut le mode « Per-Destination Load Balancing » est activé

Pour les besoins du tuto nous allons activer le Per-Paquet Load Balancing :

[sh]R1(config)#interface range e0/0-1


R1(config-if-range)#ip load-sharing per-packet[/sh]

[sh]R4(config)#interface range Ethernet0/1-2


R4(config-if-range)#ip load-sharing per-packet[/sh]

Nous allons maintenant effectuer le même test que précédemment :

[sh]PC1#ping 192.168.100.10
Sending 8, 100-byte ICMP Echos to 192.168.100.10, timeout is 2 seconds:
!!!!!!!!
Success rate is 100 percent (8/8), round-trip min/avg/max = 1/1/1 ms
[/sh]

Capture Wireshark R1 Ethernet 0/0

Capture Wireshark R1 Ethernet 0/1

On peut maintenant voir des paquets circuler sur les deux liens. Ils sont répartis de manière
promotionnel en fonction des la bande passantes des liaisons (R1 – R2 100Mbit/s & R1 – R3
10Mbit/s)

Pour rappel nous pouvons en amont voir la répartition qui sera effectué en fonction d’une
destination avec la commande suivante :

R1#show ip route 192.168.100.0


Routing entry for 192.168.100.0/24
—— Ignored lines ——
Routing Descriptor Blocks:
* 172.16.1.10, from 172.16.1.10, 17:26:23 ago, via Ethernet0/1
Route metric is 2636800, traffic share count is 1
—— Ignored lines ——
172.16.1.6, from 172.16.1.6, 17:26:23 ago, via Ethernet0/0
Route metric is 332800, traffic share count is 8
—— Ignored lines ——

Bonus :

Pour y voir un peu plus clair dans le routage EIGRP on peut bloquer l’annonce du réseau
d’interconnexion des routeurs (172.16.1.0/24).

Pour se faire nous appliquons une distribute-list sur l’ensemble des routeurs qui interdit en
entré des interfaces l’apprentissage en eigrp du réseau 172.16.1.0/24

[sh]ip access-list standard Network_Block


deny 172.16.1.0 0.0.0.255
permit any
router eigrp 1
distribute-list Network_Block in[/sh]

Pour finir vous trouverez ici le lab complété avec l’ensemble des commandes passées dans
l’article et en bonus un petit aide mémoire des différentes commandes EIGRP.

Navigation des articles


← PFsense : Deux IPs sur une interface WAN [CISCO] : EIGRP Authentification →

3 réflexions sur « [CISCO] : Configuration de l’EIGRP »


1. Maxime

mai 20, 2019 à 22 h 04 min

Hello, je remarques quelques erreurs :

Nous terminons par la configuration de l’area 2 sur le router R1 et R6 qui propagera le


réseau serveur 192.168.100.0/24 :

> Je ne vois pas de réseau en 100 dans la topologie, même en loopback

R1(config)#router ospf 1
R1(config-router)#network 172.16.1.16 0.0.3.255 area 2

> Je suis débutant mais je ne comprend pas pourquoi annoncer le réseau 172.16.1.16
depuis R1. De plus, je crois qu’il y a une coquille dans le masque, c’est un /22 pour un
un réseau normalement en /30

R6(config-router)#router-id 6.6.6.6
R6(config-router)#network 172.16.1.16 0.0.3.255 area 2
> Même soucis sur la config R6

Je dis peut être des conneries mais je pense que ça vaut le coup de vérifier, merci pour
ton travail en tous cas, très bien expliqué et détaillé ! :)

Vous aimerez peut-être aussi