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

Routage Statique



Routage statique ou dynamique?

Pour le routage statique, les tables sont remplies manuellement. Il est utilisé sur des petits réseaux ou sur des réseaux d'extrémité. Avec le routage dynamique, les tables sont remplies automatiquement. On configure un protocole qui va se charger d'établir la topologie et de remplir les tables de routage. On utilise un protocole de routage dynamique sur des réseaux plus importants. Le routage dynamique permet également une modification automatique des tables de routage en cas de rupture d'un lien sur un routeur. Il permet également de choisir la meilleure route disponible pour aller d'un réseau à un autre.
Exemple de protocole de routage : BGP (utilisé sur l'Internet), RIP, OSPF, IS-IS

Rappel: Configuration d'une route par défaut

La passerelle par défaut dans l'exemple suivant est : 192.168.3.1
R4(config)#ip route 0.0.0.0 0.0.0.0 192.168.3.1

Suppression de la route par défaut

R4(config)#no ip route 0.0.0.0 0.0.0.0 192.168.3.1

Configuration d'une route statique

Dans la commande suivante, le réseau à atteindre est le réseau 192.168.2.0/24 et l'interface utilisée pour joindre le réseau est ethernet 1/0.
On peut aussi utiliser l'adresse IP du prochain routeur.
R4(config)#ip route 192.168.2.0 255.255.255.0 ethernet 1/0
R4(config)#
Autre possibilité:
R4(config)#ip route 192.168.2.0 255.255.255.0 10.0.0.2
R4(config)#

Suppression de la route statique

R4(config)#no ip route 192.168.2.0 255.255.255.0 ethernet 1/0
R4(config)#

Affichage de la table de routage

R4#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route

Gateway of last resort is 192.168.3.1 to network 0.0.0.0

10.0.0.0/24 is subnetted, 1 subnets
C 10.0.0.0 is directly connected, Ethernet1/0
S 192.168.2.0/24 [1/0] via 10.0.0.2
C 192.168.3.0/24 is directly connected, FastEthernet2/0
S* 0.0.0.0/0 [1/0] via 192.168.3.1
R4#
On remarque sur cette sortie de commande les réseaux directement connectés (C), les routes statiques (s) et la route par défaut.

Exemple de configuration


Extrait du fichier de configuration de R4 et R5

R4#sh run
Building configuration...

interface Ethernet1/0
ip address 10.0.0.1 255.255.255.0
duplex half
!
interface FastEthernet2/0
ip address 192.168.3.2 255.255.255.0
duplex auto
speed auto
!
ip route 0.0.0.0 0.0.0.0 192.168.3.1
ip route 192.168.2.0 255.255.255.0 10.0.0.2

R5#sh run
Building configuration...

interface Ethernet1/0
ip address 10.0.0.2 255.255.255.0
duplex half

interface FastEthernet2/0
ip address 192.168.2.1 255.255.255.0
duplex auto
speed auto
!
ip route 0.0.0.0 0.0.0.0 10.0.0.1

Affichage des tables de routage

R4#show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route

Gateway of last resort is 192.168.3.1 to network 0.0.0.0

10.0.0.0/24 is subnetted, 1 subnets
C 10.0.0.0 is directly connected, Ethernet1/0
S 192.168.2.0/24 [1/0] via 10.0.0.2
C 192.168.3.0/24 is directly connected, FastEthernet2/0
S* 0.0.0.0/0 [1/0] via 192.168.3.1
R4#
R5(config)#do show ip route
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
ia - IS-IS inter area, * - candidate default, U - per-user static route
o - ODR, P - periodic downloaded static route

Gateway of last resort is 10.0.0.1 to network 0.0.0.0

10.0.0.0/24 is subnetted, 1 subnets
C 10.0.0.0 is directly connected, Ethernet1/0
C 192.168.2.0/24 is directly connected, FastEthernet2/0
S* 0.0.0.0/0 [1/0] via 10.0.0.1
R5(config)#

Configuration de la qos pour la voip

Configuration automatique de la qos dédiée à la voip.
Les commandes suivantes ont été testées sur des switchs série 2950, 2960 et 3750.


Des commandes permettent de configurer la qualité de service automatiquement pour les ports d'accès (sur lesquels sont reliés les téléphones) et pour les ports d'uplink (liaison entre les switches).

Activation de la qos pour les switchs séries 3750 et 2960

Port d'accès:
3750(config)#int fastEthernet 0/1
3750(config-if)#auto qos voip cisco-phone
3750(config-if)#end

Affichage de la configuration du port (les commandes de qualité de service ont été ajoutées):
3750#sh run int fastEthernet 1/0/1
Building configuration...

Current configuration : 295 bytes
!
interface FastEthernet1/0/1
switchport access vlan 4
switchport mode access
switchport voice vlan 10
srr-queue bandwidth share 10 10 60 20
srr-queue bandwidth shape 10 0 0 0
mls qos trust device cisco-phone
mls qos trust cos
auto qos voip cisco-phone
spanning-tree portfast
end

Port de liaison, trunk ou uplink, switch série 2960 et 3750
3750(config)#int gi 0/1
3750(config-if)#auto qos voip trust
3750(config-if)#end

Activation de la qualité de service pour un port uplink série 6500


Activation générale
6500(config)#mls qos
Activation pour un port uplink (concerne la qos appliquée sur le niveau 2)
6500(config)#int gi 0/1
6500(config-if)#mls qos trust cos

Configuration du protocole ssh

Quel protocole choisir pour l'administration du switch, configuration du protocole ssh.
Les commandes suivantes ont été testées sur des switchs série 3750 et 2960.

Quel protocole d'administration à distance choisir?

En général, il y a le choix entre l'administration web sécurisée ou pas (protocole http ou https) et/ou l'administration en ligne de commande sécurisée ou pas (telnet ou ssh).
L'administration du switch en utilisant une interface web peut être pratique. Mais nous choisirons en priorité l'administration du switch en utilisant la ligne de commande pour les raisons suivantes:
  • En cas de coupure réseau, il nous faudra intervenir directement sur le switch, donc autant être habitué à travailler en ligne de commande,
  • L'interface web peut être moins stable que l'interface en ligne de commande (CLI),
  • Les configurations avancées sont souvent disponibles uniquement au travers de la ligne de commande,
  • Je vous laisse trouver d'autres arguments...

Pour avoir un compte rendu graphique des objets du switch, nous nous tournerons vers une solution de supervision du réseau qui allie les avantages de la ligne de commande à une présentation graphique des objets du réseau. En général, ces logiciels fonctionnent grace au protole SNMP.

Ainsi (revenons au sujet) les interfaces web seront désactivées.
Il nous reste à choisir entre telnet et ssh. Le second étant nettement plus sécurisé que le premier, il est préférable (quand cela est possible) d'activer uniquement ssh sur le switch.

Activation / désactivation des interfaces d'administration web

Les commandes suivantes active puis désactive l'administration web non sécurisée et sécurisée.
2960-RG(config)#ip http server
2960-RG(config)#ip http secure-server
2960-RG(config)#no ip http server
2960-RG(config)#no ip http secure-server

Configuration du protocole ssh pour le switch

  • Vérification de la prise en compte du protocole ssh par l'IOS
  • Tout d'abord, il faut vérifier que l'IOS du switch supporte ssh. La mention k9 (crypto) doit figurer dans le nom de l'IOS.
    La commande pour vérifier la version de l'IOS est:
    2960-RG#show version
    Cisco IOS Software, C2960 Software (C2960-LANBASEK9-M), Version 12.2(55)SE, RELEASE SOFTWARE (fc2)
    Technical Support: http://www.cisco.com/techsupport
    Copyright (c) 1986-2010 by Cisco Systems, Inc.
    Compiled Sat 07-Aug-10 23:04 by prod_rel_team
  • Configuration du nom d'hote et du nom de domaine.
  • Le nom du switch ainsi que le nom de domaine doivent avoir été configurés.
  • Création de la clé
  • 2960-RG(config)#crypto key generate rsa general-keys modulus 1024
    The name for the keys will be: 2960-RG.mondomaine.fr
    % The key modulus size is 1024 bits
    % Generating 1024 bit RSA keys, keys will be non-exportable...[OK]

    2960-RG(config)#
    *Mar 1 00:42:43.625: %SSH-5-ENABLED: SSH 1.99 has been enabled
  • Activation de ssh

  • 2960-RG(config)#ip ssh version 2
  • Options ajoutées au service ssh
  • - les évènements associés aux connexions ssh sont enregistrés.
    - Un timeout de 60 secondes est ajouté pour les sessions ssh en cas d'inactivité .
    - Nous laissons trois essais pour la connexion au switch.

    clem(config)#ip ssh logging events
    clem(config)#ip ssh time-out 60
    clem(config)#ip ssh authentication-retries 3
  • Configuration de l'authentification et ajout d'un compte administrateur
  • clem(config)#aaa new-model
    clem(config)#aaa authentication login default local
    clem(config)#username admin secret P@55w0rd
  • Désactivation de telnet pour l'accès au switch
  • clem(config)#line vty 0 15
    clem(config-line)#login local
    clem(config-line)#transport input ssh
  • Vérification de la configuration
  • 2960-RG#show ip ssh
    SSH Enabled - version 2.0
    Authentication timeout: 60 secs; Authentication retries: 3
SSH est maintenant activé. nous pouvons accéder au switch avec un client ssh (par exemple putty pour windows).

Suppression de ssh

La suppression de la clé entraine la désactivation de ssh.
2960-RG(config)#crypto key zeroize rsa
% All RSA keys will be removed.
% All router certs issued using these keys will also be removed.
Do you really want to remove these keys? [yes/no]: yes
2960-RG(config)#
Vérification:
2960-RG#sh ip ssh
SSH Disabled - version 2.0
%Please create RSA keys to enable SSH (of atleast 768 bits size) to enable SSH v2.
Authentication timeout: 60 secs; Authentication retries: 3

Filtrer les connexions ssh avec une liste de contrôle d'accès

La liste de contrôle d'accès va nous permettre de filtrer l'accès ssh en utilisant l'adresse IP source.
Dans la commande suivante, la liste de controle d’accès a le numéro 10 et le réseau autorisé à se connecter en ssh est 192.168.100.0/24.
Switch(config)#access-list 10 permit 192.168.100.0 0.0.0.255
Ensuite, on autorise la connection exclusive de ce réseau sur les terminaux virtuel avec la commande access-class:

Switch(config)#line vty 0 15
Switch(config-line)#access-class 10 in
Switch(config-line)#

Commande de diagnostique sur des routeurs Cisco

Ces commandes permettent d'afficher les voisins, d'afficher différentes statistiques, de faire un ping vers une interface ou encore de vérifier l'état des processus.

Activer/désactiver les notifications (par défaut en mode console)

R2#terminal monitor
R2#
R2#terminal no monitor
R2#

Comment afficher les voisins?

Il peut être utile d'afficher les voisins (en général d'autre routeur relié). Cisco utilise le protocole CDP (cisco discovery protocol) pour afficher les informations sur les voisins. Il faut donc pour que la commande fonctionne que le protocole cdp soit activé sur les routeurs.
La commande suivante active le protocole cdp puis affiche les voisins.
R2(config)#cdp run
R2(config)#exit
R2#show cdp neighbors
Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater

Device ID Local Intrfce Holdtme Capability Platform Port ID
R1 Eth 1/0 125 R 7206VXR Eth 1/0
R2#

Il est aussi possible d'afficher les détails sur le voisin, notamment l'adresse IP et le modèle de ce dernier en filtrant sur un port ou sur le nom d'un voisin.
R2#show cdp neighbors ethernet 1/0 detail
-------------------------
Device ID: R1
Entry address(es):
IP address: 192.168.100.1
Platform: Cisco 7206VXR, Capabilities: Router
Interface: Ethernet1/0, Port ID (outgoing port): Ethernet1/0
Holdtime : 124 sec

Version :
Cisco IOS Software, 7200 Software (C7200-IPBASEK9-M), Version 12.4(22)T, RELEASE SOFTWARE (fc1)
Technical Support: http://www.cisco.com/techsupport
Copyright (c) 1986-2008 by Cisco Systems, Inc.
Compiled Fri 10-Oct-08 10:10 by prod_rel_team

advertisement version: 2
Duplex: half

R2#
R2#
R2#
R2#show cdp entry R1
-------------------------
Device ID: R1
Entry address(es):
IP address: 192.168.100.1
Platform: Cisco 7206VXR, Capabilities: Router
Interface: Ethernet1/0, Port ID (outgoing port): Ethernet1/0
Holdtime : 173 sec
Pour des raisons de sécurité, certain préfère désactiver le protocole.
R1(config)#no cdp run
R1(config)#end
R1#
R1#sh cdp neighbors
% CDP is not enabled
R1#

Sans commentaire

R2#ping
Protocol [ip]:
Target IP address: 192.168.1.1
Repeat count [5]:
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.100.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 1/1/1 ms
R2#

Affichage de l'inventaire du matériel

R1#show inventory
NAME: "Chassis", DESCR: "Cisco 7206VXR, 6-slot chassis"
PID: CISCO7206VXR , VID: , SN: 4279256517

NAME: "NPE400 0", DESCR: "Cisco 7200VXR Network Processing Engine NPE-400"
PID: NPE-400 , VID: , SN: 11111111

NAME: "module 0", DESCR: "I/O FastEthernet (TX-ISL)"
PID: C7200-IO-FE-MII/RJ45=, VID: , SN: 4294967295

Affichage de l'utilisation de la mémoire et du processeur

R1#show processes memory
Processor Pool Total: 150516196 Used: 23573320 Free: 126942876
I/O Pool Total: 16777216 Used: 2737120 Free: 14040096
Transient Pool Total: 16777216 Used: 21636 Free: 16755580

PID TTY Allocated Freed Holding Getbufs Retbufs Process
0 0 39544288 16210268 20763096 0 0 *Init*
0 0 12052 73028 12052 0 0 *Sched*
0 0 22660 317548 412 183104 183104 *Dead*
R1#
R1#
R1#show processes cpu
CPU utilization for five seconds: 1%/100%; one minute: 1%; five minutes: 1%
PID Runtime(ms) Invoked uSecs 5Sec 1Min 5Min TTY Process
1 12 64 187 0.00% 0.00% 0.00% 0 Chunk Manager
2 0 240 0 0.00% 0.00% 0.00% 0 Load Meter
3 5280 445 11865 0.23% 0.25% 0.22% 0 Exec
4 0 1 0 0.00% 0.00% 0.00% 0 EDDRI_MAIN
5 800 145 5517 0.00% 0.06% 0.05% 0 Check heaps
6 0 1 0 0.00% 0.00% 0.00% 0 Pool Manager
7 0 2 0 0.00% 0.00% 0.00% 0 Timers

Affichage de l'état des interfaces

R1#show interfaces
FastEthernet0/0 is down, line protocol is down
Hardware is DEC21140, address is ca03.0bc0.0000 (bia ca03.0bc0.0000)
MTU 1500 bytes, BW 100000 Kbit/sec, DLY 100 usec,
reliability 255/255, txload 1/255, rxload 1/255
Encapsulation ARPA, loopback not set
Keepalive set (10 sec)
Half-duplex, 100Mb/s, 100BaseTX/FX
Il est possible d'afficher l'état d'une interface en particulier en faisant suivre la commande du numéro de l'interface (R1#show interfaces ethernet 1/0).

Affichage des statistiques pour les interfaces

R1#show interfaces stats
FastEthernet0/0
Switching path Pkts In Chars In Pkts Out Chars Out
Processor 0 0 0 0
Route cache 0 0 0 0
Total 0 0 0 0
Ethernet1/0
Switching path Pkts In Chars In Pkts Out Chars Out
Processor 39 9346 165 17188
Route cache 0 0 0 0
Total 39 9346 165 17188

Mise à zéro des compteurs pour les interfaces

R1#clear counters
Clear "show interface" counters on all interfaces [confirm]
R1#

Affichage de la température et de l'état des alimentations électriques

R1#show environment all
Power Supplies:
Power Supply 1 is AC Power Supply. Unit is on.
Power Supply 2 is AC Power Supply. Unit is on.

Temperature readings:
I/O Cont Inlet measured at 22C/71F
I/O Cont Outlet measured at 22C/71F
NPE Inlet measured at 22C/71F
NPE Outlet measured at 22C/71F

Fourniture d'un rapport complet sur le routeur (ça peut être long ...)

R1#show tech-support

Affichage des statistiques IP

R1#sh ip traffic
IP statistics:
Rcvd: 14 total, 14 local destination
0 format errors, 0 checksum errors, 0 bad hop count
0 unknown protocol, 0 not a gateway
0 security failures, 0 bad options, 0 with options
Opts: 0 end, 0 nop, 0 basic security, 0 loose source route

Afficher les protocoles configurés

R1#show protocols
Global values:
Internet Protocol routing is enabled
FastEthernet0/0 is up, line protocol is up
Internet address is 192.168.0.1/24
Serial0/0 is administratively down, line protocol is down
FastEthernet0/1 is up, line protocol is up
Internet address is 192.168.100.1/24
Serial0/1 is administratively down, line protocol is down

Afficher l'état des protocoles de routage actif

R1#sh ip protocols
Routing Protocol is "ospf 100"
Outgoing update filter list for all interfaces is not set
Incoming update filter list for all interfaces is not set
Router ID 172.16.0.1
Number of areas in this router is 1. 1 normal 0 stub 0 nssa
Maximum path: 4
Routing for Networks:
10.0.0.0 0.0.0.255 area 0
10.0.3.0 0.0.0.255 area 0
Reference bandwidth unit is 100 mbps
Routing Information Sources:
Gateway Distance Last Update
172.16.0.2 110 00:04:42
172.16.0.3 110 00:04:42
Distance: (default is 110)

Configuration de l'accès aux services syslog, NTP et SNMP

Configuration de l'accès aux services syslog, NTP et SNMP.

Commande pour afficher les logs

routeur-cisco#show logging
Syslog logging: enabled (0 messages dropped, 0 messages rate-limited,
0 flushes, 0 overruns, xml disabled, filtering disabled)

No Active Message Discriminator.

Configuration du service syslog

Le pré-requis est d'avoir installé un serveur type syslog (adresse 192.168.0.123 dans l'exemple).

Configuration du niveau d'information demandé: dans l'exemple, on demande le maximum d'information.
routeur-cisco(config)#logging trap ?
<0-7> Logging severity level
alerts Immediate action needed (severity=1)
critical Critical conditions (severity=2)
debugging Debugging messages (severity=7)
emergencies System is unusable (severity=0)
errors Error conditions (severity=3)
informational Informational messages (severity=6)
notifications Normal but significant conditions (severity=5)
warnings Warning conditions (severity=4)


routeur-cisco(config)#logging trap debugging
routeur-cisco(config)#

Puis on configure l'étiquette associée à chaque message (ici local4),l'adresse IP du serveur syslog et on active.
routeur-cisco(config)#logging facility local4
routeur-cisco(config)#logging 192.168.0.123
routeur-cisco(config)#logging on
routeur-cisco(config)#

Configuration du service NTP

Synchronisons maintenant les informations horaires du switch à un serveur NTP (network time protocol).
Nous indiquons dans un premier temps l'adresse IP du serveur NTP, puis on configure le fuseau horaire ainsi que le moment de passer à l'heure d'été (dans l'exemple: pour la France).
routeur-cisco(config)#ntp server 192.168.0.124
routeur-cisco(config)#clock timezone cet 1
routeur-cisco(config)#clock summer-time cest recurring last Sun Mar 3:00 last Sun Oct 3:00

Quelques commandes de vérification: les associations avec le serveur ntp et l'affichage de la date et de l'heure courante:
routeur-cisco#show ntp associations

address ref clock st when poll reach delay offset disp
~192.168.0.124 .INIT. 16 - 64 0 0.000 0.000 15937.
* sys.peer, # selected, + candidate, - outlyer, x falseticker, ~ configured
routeur-cisco#
routeur-cisco#show clock
*22:39:31.771 cest Fri Jul 29 2011
routeur-cisco#show ntp status

Configuration du service SNMP

Voyons maintenant comment configurer l'accès du routeur à un serveur de supervision basé sur le protocole SNMP.

Nous configurons tout d'abord une liste d'accès pour autoriser uniquement la connexion du serveur de management SNMP, puis nous indiquons le nom de la communauté SNMP ainsi que les droits associés (lecture (ro) ou lecture/écriture (rw)).
routeur-cisco(config)#access-list 10 permit 192.168.1.2
routeur-cisco(config)#snmp-server community macomm ro 10
routeur-cisco(config)#exit
routeur-cisco#show snmp community

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)