Correction CCNA Version 7

Correction CCNA Version 7

Correction CCNA 1

Correction CCNA 1

Cisco - CCNA version 6 Answes

Cisco - CCNA 4 version 6 Answe

Correction CCNA 3

Correction CCNA 2

Introduction à Border Gateway Protocol (BGP)

1) Caractéristiques de base

Il existe 2 types de protocole de routage : les IGP (Interior Gateway Protocol) et les EGP (Exterior Gateway Protocol).
Les IGP assurent le routage au sein des AS (Autonomous System). Par exemple : RIP, EIGRP, OSPF.
Les EGP assurent le routage entre les AS.
BGP est du type EGP. C’est d’ailleurs le seul protocole de ce type.

Pour rappel, un AS est un ensemble de réseaux sous une même autorité. Par exemple, un réseau d’entreprise est un AS. BGP permet de connecter cet AS à internet, et donc à d’autres AS.

Il est utile de connaitre le fonctionnement de BGP pour :
  • Travailler chez un opérateur internet
  • Gérer un point d’échange entre opérateurs
  • Se connecter à plusieurs FAI
  • Le mettre en place dans le cœur de réseau d’une très grande entreprise

BGP est du type Path Vector. C’est un dérivé du type vecteur de distance.
La métrique utilisée est très complexe, et l’administrateur de l’AS pourra en quelque sorte choisir la métrique à utiliser. Il ne s’agit pas d’une métrique simple, mais d’une liste d’attributs associés à la route. Nous verrons les détails plus tard.
BGP utilise TCP sur le port 179. C’est donc TCP qui se charge d’envoyer les Ack.
La convergence sur un réseau BGP est très lente.
Imaginez ce qui se passerait sur internet avec une convergence rapide.
Le moindre changement serrait immédiatement répliqué dans le monde entier !

Aussi, les MAJ de routage sont envoyées quand il y a du changement, et seulement ce qui a changé est envoyé.

2)  Relation de voisinage BGP


Pour établir une relation de voisinage BGP entre 2 routeurs, il faut la configurer manuellement sur les deux routeurs.
Contrairement à d’autres protocoles où les voisins se détectent automatiquement, en BGP il faut renseigner l’adresse du voisin, de manière à établir la connexion.
Comme dit précédemment, la session utilise le protocole TCP.
Voici les états d’une connexion :
  • Idle : Premier stade d’une session BGP. Quand une ouverture de session est demandée (configuration, démarrage du routeur), le routeur initie une session TCP, puis passe en mode Connect (pour attendre la réponse)
  • Connect : Le routeur attend une réponse (TCP Syn-Ack) du voisin ou une demande d’établissement de connexion TCP. En effet, les deux routeurs vont vouloir établir une session en même temps. Une seule session sera conservée (celle initiée par le routeur avec le plus haut ID). Il y aura donc un routeur « chef » de la relation de voisinage. Quand la session est établie, on envoie le message Open et on passe en mode Open Sent
  • Active (facultatif): La tentative de connexion avec le voisin a échoué (Timeout). Le routeur fait une nouvelle tentative. En cas d’échec, il retombe en mode Idle. En cas de succès, on passe en mode Open Sent. Ce statut n’est donc atteint qu’en cas d’échec en mode Connect.
  • Open Sent : Le message Open a été envoyé. Il contient diverses infos (version BGP, ID du routeur, numéro d’AS, Hold Down Timer). A la réception du message Open du voisin, si tout convient, le routeur envoie un KeepAlive au et passe en Open Confirm.
  • Open Confirm : Attente du KeepAlive du voisin, avant de passer en Established.
  • Established : La relation de voisinage est établie. Les routeurs peuvent s’échanger des routes.

Voici un petit schéma résumant le processus (sans le passage en mode Active)  :

3)  Types de messages BGP


Voyons les différents types de messages qui existent en BGP.
Nous avons déjà abordé certains d’entre eux.
  •  Open packet : Il permet de démarrer une relation de voisinage. C’est le premier message envoyé après qu’une session TCP soit établie. Il contient entre autre la version BGP, l’ID du routeur (l’IP d’une des interfaces), le numéro de l’AS local, et le Hold Down Timer (temps max entre deux messages BGP avant de clore la session). Le message Open peut aussi contenir des informations additionnelles.
  • Keep Alive : Permet de maintenir la relation BPG. Comme BGP n’envoie des MAJ que lors ce que c’est nécessaire (après un changement), il est fort probable que les routeurs ne discutent pas pendant longtemps (si il n’y a pas de changement). Pour s’assurer que la relation de voisinage tient toujours (et que le voisin est toujours là), des Keep Alive sont envoyés. En générale, le temps entre deux Keep Alive représente 1/3 du Hold Down Timer Max. Si on ne reçoit pas de Keep Alive ou de Update, et que le Hold Down Timer est atteint, la relation est arrêtée. Par défaut le Hold Down Timer est de 180 secondes chez Cisco. Donc 60 secondes entres les Keep Alive.
  • Update : Permet d’annoncer de nouvelles routes, ou d’en retirer. Quand on annonce une nouvelle route, on donne l’AS Path avec. Il s’agit du chemin que va emprunter le paquet pour arriver à destination. Si le routeur qui reçoit la route pour une destination voit son propre AS dans l’AS Path, il va refuser la route (car cela causerait une boucle de routage).
  • Notification : Informe le voisin qu’il y a un problème. La relation BGP est arrêtée (ainsi que la session TCP) et le routeur repasse en mode Idle.

4)  Types de tables BGP

BGP utilise 3 tables pour fonctionner.
Neighbor Table : contient la liste des voisins à qui on est connecté. Les relations sont établies à la main.
Voici un exemple de table de voisinage :
Les champs contenus dans la table sont les suivants :
  • Neighbor : l’ID du voisin
  • V : la version BGP
  • AS : le numéro de l’Autonomous System du voisin
  • MsgRcvd : nombre de messages reçus (Update, KeepAlive)
  • MsgSent : nombre de messages envoyés
  • TblVer : dernière version de la table de routage envoyée (à comparer avec la version locale)
  • InQ : nombre de messages en file d’attente venant du voisin
  • OutQ : nombre de message en file d’attente, à envoyer chez le voisin
  • Up/Down : depuis combien de temps la relation est UP
  • State/PfxRcd : nombre de préfixes reçus par le voisin
La deuxième table est la BGP Table. Elle contient la liste de toutes les routes reçus, et ce depuis tous les voisins. En effet, si l’on a plusieurs voisins, il se peut que l’on reçoive plusieurs fois la même route (mais venant d’un voisin différent).
Voici un exemple :
es champs contenus dans la table sont les suivants :
  • * : l’étoile signifie que la route est valide
  • > : le chevron signifie que c’est la meilleure route disponible pour cette destination (ici nous n’avons qu’une route, donc il n’y a pas le choix)
  • Network : le réseau de destination
  • Next Hop : prochain saut pour joindre la destination
  • Metric : un des attributs constituant la métrique totale
  • LocPrf : un des attributs constituant la métrique totale
  • Weight : un des attributs constituant la métrique totale
  • Path : les AS par lesquels il faudra passer (ici il n’y en a que 1 : le 200)
La troisième table est la table de routage, ce qui est logique. Son fonctionnement ne change pas de d’habitude.
Pour chaque destination apprise par BGP, la meilleure route sera placée dans la table de routage.

5)     Multihoming

Le principe du Multihoming c’est d’être connecté à plusieurs FAI.

Cela permet d’avoir de la redondance (haute disponibilité), et de faire de la répartition de charge.
Cela à un intérêt sur les paquets entrants et sortants :
Paquet sortant : nous pouvons répartir la charge sur les deux FAI. Nous pourrons alors profiter de nos deux lignes internet. De plus, selon le réseau de destination à joindre (sur Internet), il est possible qu’un FAI offre une meilleure route. Nous pourrons alors le favoriser dans le choix du Next Hop.
Sans BGP, nous pouvons tout de même faire de la répartition de charge, par contre, nous ne pouvons pas savoir quel FAI offre le meilleur chemin (il faudra choisir au hasard).
Paquet entrant : nous pouvons aussi répartir la charge en entrée en annonçant la moitié de nos sous réseaux internes à un FAI, et l’autre moitié au deuxième FAI.
Dans l’exemple donnée, nous pouvons annoncer 170.50.2.0 /25 au FAI 1, et 170.50.2.128 /25 au FAI 2.
Si nous avons deux routeurs qui font face à internet, nous pouvons privilégier l’un ou l’autre en fonction du réseau interne à joindre. Ainsi, un paquet venant d’internet sera automatiquement dirigé vers le routeur (d’entrée sur notre réseau) offrant le meilleur chemin.
Voyons maintenant les 3 façons d’implémenter BGP pour se connecter à Internet

Cas No 1 : route par défaut

Ici nous avons deux FAI, qui nous envoient chacun une route par défaut.
Il n’est donc pas possible de favoriser un FAI ou un autre en fonction du réseau à joindre.
Par contre, nous pouvons tout de même utiliser les deux FAI simultanément (répartition de charge), ou en garder un en secours.
Nous pouvons aussi influencer le choix du FAI pour les paquets entrants (voir précédemment), selon les réseaux (internes) que l’on annonce aux FAI.
Cette solution ne consomme que très peu de ressource.

Cas No 2 : MAJ partielles

Ici les FAI nous envoient une partie de leur table de routage (table de routage de tout internet).
Nous pouvons choisir les routes (pour quelles destinations) que nous souhaitons recevoir.
Par exemple, si nous avons des bureaux distants ou des serveurs dans un Data Center, nous y enverrons régulièrement du trafic. Nous souhaitons donc savoir quel FAI nous offre le meilleur chemin vers ces destinations favorites.
Pour les autres destinations, nous choisirons aléatoirement un des FAI.

Cas No 3 : MAJ complètes

Ici les 2 (ou plus) FAI nous envoient chacun leur table de routage complète (table de routage de tout internet).
Nous pourrons donc choisir le meilleur FAI pour chaque paquet sortant.
Cette solution consomme beaucoup de ressource. Surtout beaucoup de RAM (plusieurs centaines de MO)

configuration EtherChannel


Etherchannel est une technique permettant l’agrégation de lien. Il est souvent utilisé pour augmenter la bande passante entre deux switchs.
Voyons ensemble comment ce protocole fonctionne, puis comment le mettre en place.

1) Utilité de l’Etherchannel

Comme nous venons de le dire, l’Etherchannel consiste en une agrégation de lien.
Le principe est simple. Il s’agit de combiner plusieurs liens pour obtenir un lien virtuel de meilleure capacité.
Prenons l’exemple suivant :
Topologie
Nous avons ici des switchs avec des ports 100 Mbps. Il y a un lien entre les switch. Ces derniers pourront donc communiquer à une vitesse de 100 Mbps.
Pour bénéficier d’une meilleure bande passante, nous pouvons faire une agrégation de lien.
Nous aurions alors une topologie de ce type :
L2 Etherchannel
Bien entendu, sans aucune configuration, Spanning Tree se chargerait de désactiver l’un des liens.
En configurant l’Etherchannel, les deux switchs ne verront plus qu’un seul lien virtuel.
Ce lien virtuel aura une capacité de 200 Mbps.
L’Etherchannel peut regrouper jusqu’à 8 liens. 
Autre avantage de l’agrégation de lien, la redondance.
Si l’un des liens tombe en panne, les autres seront toujours là pour assurer la connectivité.
La bande passante sera simplement réduite.

2) Négociation de l’agrégation

Il existe deux manières de créer une agrégation de lien :
  • En forçant l’agrégation
  • En utilisant un protocole de négociation
Le fonctionnement peut rappeler la négociation de Trunk.
Soit le Trunk est créé à la main, soit les switchs se chargent de le négocier.
Pour la négociation de l’agrégation, il existe deux protocoles :
  • PAGP – Port Agregation Protocol
  • LACP – Link Agregation Control Protocol

PAGP – Port Agregation Protocol

PAGP est le protocole de négociation propriétaire Cisco.
En choisissant ce protocole, il est possible de configurer les ports dans 2 modes différents :
  • Auto
  • Desirable
A noter que si nous ne voulons pas utiliser de protocole de négociation, le port devra être mis en mode ON, pour forcer l’agrégation de lien.
Avec PAGP, si le port est en mode Auto, une agrégation de lien sera créée si le port d’en face est en mode Desirable. Si le port d’en face est en mode Auto, aucune agrégation n’est créée.
Si le port est configuré en mode Desirable, une agrégation sera créée à condition que le port d’en face soit en mode Auto ou Desirable.
Attention, il n’est pas possible d’avoir un port en mode ON d’un côté, et d’utiliser un protocole de négociation (PAGP ou LACP) de l’autre côté d’une agrégation.
A partir du moment où nous utilisons le mode ON pour créer une agrégation de lien, aucun protocole de négociation ne sera utilisé. Les ports en face devrons donc être en mode ON eux aussi.

LACP – Link Agregation Control Protocol

LACP est un protocole standard (802.3AD) très similaire à PAGP.
La seule différence est le nom des modes de port.
Nous retrouvons donc deux modes de ports :
  • Passive
  • Active
Passive correspond au mode Auto de PAGP : création d’une agrégation si le port en face est en Active.
Active correspond au mode Desirable de PAGP : création d’une agrégation si le port d’en face est en Passive ou Active.
Il conviendra donc de choisir un protocole de négociation (de préférence LACP car il est standard) puis de choisir le mode des ports.
Par sécurité, le mieux est d’utiliser le mode Disirable (ou Active) des deux côtés.
Il est aussi tout à fait possible de se passer de protocole de négociation, en utilisant le mode ON.
Attention, en cas de mauvaise configuration, cela peut parfois mener à des boucles réseau, que même Spanning Trre ne pourra empêcher.
Le mode ON est donc à utiliser avec précaution.

3) Configuration

Voyons maintenant comment configurer une agrégation de lien.
Prenons la topologie suivante :
L2 Etherchannel
Nous allons commencer par forcer l’agrégation de lien sur les deux switchs.
Switch-1(config)#interface range fastEthernet 0/1 – 2
Switch-1(config-if-range)#channel-group 1 mode on
Creating a port-channel interface Port-channel 1
De même pour S2 :
Switch-2(config)#interface range fastEthernet 0/1 - 2
Switch-2(config-if-range)#channel-group 1 mode on
Creating a port-channel interface Port-channel 1
Une fois cela fait, une interface virtuelle a été créée :
Show Ip Interface Brief
Voici le détail de cette interface :
Show Interface Port-Channel 1
Jusqu’ici, l’agrégation de lien a été forcée.
Utilisons maintenant un protocole de négociation.
Avant toute chose, supprimez la configuration précédente :
Switch-1(config-if-range)#no channel-group 1
Switch-2(config-if-range)#no channel-group 1
Switch-1(config)#interface range fastEthernet 0/1 - 2
Switch-1(config-if-range)#channel-protocol lacp
Switch-1(config-if-range)#channel-group 1 mode active
Switch-2(config)#interface range fastEthernet 0/1 - 2
Switch-2(config-if-range)#channel-protocol lacp
Switch-2(config-if-range)#channel-group 1 mode active
La négociation s’est bien passée :
Show Interface Port-Channel 1
Faisons un test avec le mode Passive d’un côté :
Switch-1(config-if-range)#no channel-group 1
Switch-1(config-if-range)#channel-group 1 mode passive
Show Interface Port-Channel 1
Et avec le mode passive des deux côtés ?
Switch-2(config-if-range)#no channel-group 1
Switch-2(config-if-range)#channel-group 1 mode passive
Show Interface Port-Channel 1
Réactivons l’agrégation avant de passer à la suite :
Switch-2(config-if-range)#no channel-group 1
Switch-2(config-if-range)#channel-group 1 mode active

4) Load Ballancing

La question que vous vous posez surement, comment la charge est répartie entre les différents liens ?
Cela dépend du niveau de fonctionnalité du switch.
Sur les switchs basiques, l’adresse Mac source et destination est utilisée.
Certains équipements sont capables d’utiliser l’adresse IP ainsi que le port.
Prenons l’exemple des adresses Mac.
Le switch peut se baser sur l’adresse source ou destination.
Si nous choisissons d’utiliser l’adresse source (choix par défaut), le switch enverra sur le même lien tous les frames ayant la même adresse Mac source. Et inversement avec l’adresse Mac de destination.
Les frames ne sont donc pas envoyées de manière aléatoire sur l’un des liens de l’agrégation.
Dans aucun cas la charge ne sera parfaitement répartie sur les différents liens.
Des problèmes peuvent survenir si deux adresses Mac sont associées au même lien, et que les machines associés aux adresses effectuent de gros transferts.
Nous aurons donc un lien saturé, alors que les autres seront libres. 
Faut-il choisir de se baser sur l’adresse Mac source ou destination ?
Cela dépend du rôle du switch.
Voici un schéma pour démontrer l’intérêt de chacun des choix :
L3 Etherchannel
Sur le switch, il sera plus judicieux de se baser sur l’adresse Mac source.
Ainsi, chaque PC sera « associé » à l’un des liens de l’agrégation.
Si nous nous basons sur l’adresse Mac de destination, les frames seront toujours envoyées sur le même lien. En effet pour sortir du sous réseau, l’adresse Mac de destination sera toujours celle du routeur.
Pour le routeur, si nous utilisons l’adresse source, les frames venant des réseaux distants, seront toujours envoyées sur le même lien.
En effet, lors du passage dans un routeur, les adresses Mac sont changées.
Lorsque le routeur va envoyer les frames vers les PC, il va utiliser sa propre adresse Mac comme adresse source.
L’adresse source ne va donc jamais changer. Il n’y aura donc pas de réparation de charge.
Sur le routeur, il convient donc d’utiliser l’adresse Mac de destination pour la répartition de charge.
Voici comment paramétrer le Load Ballancing :
Port-channel Load Ballance

5) Agrégation de niveau 3

Sur les switchs de niveau 3, il est possible de faire une agrégation de lien et d’assigner une seule IP aux deux ports.
Pour cela, il faut commencer par désactiver le mode switchport sur les ports concernés :
Switch-1(config)#interface range fastEthernet 0/1 - 2
Switch-1(config-if-range)#no switchport
Puis de même sur l’interface virtuelle :
Switch-1(config)#interface port-channel 1
Switch-1(config-if)#no switchport
Nous pouvons ensuite assigner une IP à cette interface :
Switch-1(config-if)#ip address 10.0.0.1 255.255.255.0

Nous pouvons alors connecter un routeur (ou switch de niveau 3) en face, sur lequel une agrégation de lien avec IP aura été créée.
Nous aurons alors une agrégation de lien inter-routeur.
Nous pouvons aussi laisser un switch avec une agrégation de lien de niveau 2 en face.
Nous aurons alors une agrégation de lien Routeur – Switch.

6) Bonnes pratiques

Avant de finir, parlons des bonnes pratiques.
Premièrement, dans une agrégation de lien, il faut toujours utiliser des ports de même bande passante.
Ensuite, il est important que les ports qui composent l’agrégation, soient dans le même VLAN, ou à défaut, que le mode Trunk soit configuré.
Aussi, lors de l’utilisation de mode ON sur les ports (donc sans protocole de négociation), les ports aux deux extrémités doivent être en mode ON.
Des problèmes (voir des boucles réseau) peuvent survenir si cette condition n’est pas respectée.
Enfin, il n’est pas recommandé de faire du SPAN sur les ports d’une agrégation.

7) Conclusion

Nous voici arrivé au terme de notre aperçu de l’agrégation de lien.
Vous avez eu l’occasion de voir qu’il est très simple d’augmenter la bande passante entre deux switchs ou routeurs.
Il est important de penser à configurer le Load Ballancing en fonction du rôle du switch.
Quant à la négociation, le mieux est encore (si possible) d’utiliser LACP avec le mode Active.
A savoir, certains serveurs supportent aussi le protocole LACP.