User Tools

Site Tools


informatique:cisco:bgp

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revisionBoth sides next revision
informatique:cisco:bgp [2008/12/14 19:17] – créée pteuinformatique:cisco:bgp [2012/06/19 06:37] pteu
Line 3: Line 3:
 ======BGP====== ======BGP======
  
-BGP est un protocole de routage standart inter-domaine.+BGP (Border Gateway Protocol) est le protocole de routage standard inter-domaine (**EGP**, Exterior Gateway Protocol) qui utilise le port tcp/179 pour établir des communications entre routeurs voisins. 
 + 
 +Le BGP permet un routage administratif basé sur la méfiance de ses voisins, ce qui signifie qu'à la différence des protocoles de routage **IGP** (Interior Gateway Protocol) comme l'OSPF, RIP ou EIGRP qui font confiance à leurs voisins et cherchent le chemin le plus court, le BGP permet de contrôler la façon de router les paquets entrant et sortant.
  
   * 2 déclinaisons du BGP   * 2 déclinaisons du BGP
     * iBGP pour le routage intra-domaine     * iBGP pour le routage intra-domaine
-    * EBGP pour le routage inter-domaine+    * eBGP pour le routage inter-domaine
   * 3 tables   * 3 tables
     * table des voisins     * table des voisins
Line 14: Line 16:
   * 4 types de messages :   * 4 types de messages :
     * Open     * Open
-    * Keepalive+    * Keepalive (périodiques toutes les 60s)
     * Update     * Update
     * Notification     * Notification
-  * la **synchronisation**, si elle est activée, invalide un préfix annoncé en IBGP mais dont la route est inconnue en IGP : il ne sera pas annoncé dans EBGP. L asynchro peut être désactivée si on utilise de l'IBGP full-mesh. +  * la **synchronisation**, si elle est activée, invalide un préfixe annoncé en IBGP mais dont la route est inconnue en IGP : il ne sera pas annoncé dans EBGP. La synchro peut être désactivée si on utilise de l'IBGP full-mesh. 
-  * une **communauté** est un groupe de destinations qui partagent certaine propriétés ; elles utilisent un tag ; celà permet un filtrage cohérent+  * une **communauté** est un groupe de destinations qui partagent certaine propriétés ; elles utilisent un tag ; cela permet un filtrage cohérent 
 +  * les numéros d'AS vont de 1 à 65535, les numéros de 64512 à 65535 son réservé pour un usage privé
  
 =====Les attributs===== =====Les attributs=====
  
-Les attributs BGP ont différentes caractéritiques :+Les attributs BGP ont différentes caractéristiques :
   * **well-known** qui doivent être reconnus par toutes les implémentations de BGP car ils sont transmis aux peers BGP.   * **well-known** qui doivent être reconnus par toutes les implémentations de BGP car ils sont transmis aux peers BGP.
     * **mandatory** (AS-path, next-hop, origin) : ils sont présents dans chaque //update message//     * **mandatory** (AS-path, next-hop, origin) : ils sont présents dans chaque //update message//
Line 31: Line 34:
  
 Ils peuvent être annoncés dans les //routing update// sauf le //weight//. Ils peuvent être annoncés dans les //routing update// sauf le //weight//.
-    * **AS-path** : c'est un "traceroute" d'AS intégré à chaque //route update// : il contient la liste des ASs traversés+    * **AS-path** ou AS_Sequence (type code 2) : c'est un "traceroute" d'AS intégré à chaque //route update// : il contient la liste des ASs traversés, dernier traversé en premier ; l'AS-Path assure une topologie sans boucle
     * **next-hop**     * **next-hop**
-    * **origin** : indque l'origine de la route (IGP, EGP ou incomplete+      * en EBGP, le next-hop est le routeur qui annonce la route 
-    * **local preference** +      * en IBGP c'est le voisin qui annonce la route sauf qui la route est apprise par EBGP, auquel cas le next-hop sera le même que celui d'EBGP (donc le routeur qui a annoncé la route) 
-    * **MED** (Multi-Exit Discriminator) : ~ métrique +    * **origin** (type code 1) indique l'origine de la route (IGP, EGP ou incomplète (redistribution)
-    * **weight** : celui-là est propriétaire Cisco et est local (pas annoncé aux voisins)+    * **local preference** (type code 5) échangé au sein de l'AS en IBGP uniquement, une valeur supérieure est préférée (vaut 100 par défaut) 
 +    * **MED** (Multi-Exit Discriminator) (type code 4) : ~ métrique => la plus faible est la meilleure ; indique le point d'entrée préféré pour un AS multi-homed (plusieurs connexions à des AS externes) 
 +    * **weight** : celui-là est propriétaire Cisco ; il est local au routeur (pas annoncé aux voisins) 
 + 
 +La priorité pour choisir un chemin est : weight > local pref > originate route > AS-Path > MED 
 + 
 + 
 +=====Machine d'état BGP===== 
 + 
 +6 états différents : 
 +  * **Idle** : le routeur est prêt à établir une session BGP. 
 +  * **Connect** : la connexion est établie. Il envoie un message //Open// et passe à l'état **Open Sent** 
 +  * **Active** : une connexion est établie par un peer ; il envoie un message //Open// et passe à l'état **Open Sent** 
 +  * **Open Sent** : attente de réception d'un message open du peer ; sur réception, envoie un //Keep alive// et passe à l'état **Open Confirm** 
 +  * **Open confirm** attente d'un //Keep Alive// venant du peer, puis passe à l'état **Established**. 
 +  * **Established** communication bidirectionnelle établie ; commence à envoyer des //updates// et des //Keep alive//.
  
  
Line 51: Line 69:
 Déclarer la Loopback0 comme IP source : Déclarer la Loopback0 comme IP source :
  
-   (config-router)#neighbor 10.10.10.2 update-source loopback0+  (config-router)#neighbor 10.10.10.2 update-source loopback0
  
-Déclarer des réseaux :+Déclarer le réseau 10.10.10.0/24 (le masque doit matcher pour que le réseau soit effectivement annoncé) : 
 + 
 +  network 10.10.10.0 mask 255.255.255.0 
 + 
 + 
 +=====Configuration avancée===== 
 + 
 +====Peer group==== 
 + 
 +Local à chaque routeur, permet de factoriser la configuration de peers. 
 + 
 +====Annoncer un préfixe==== 
 + 
 +Annoncer les réseaux de 207.0.0.0/10 à 207.0.0.0/18 : 
 +  ip prefix-list 207.0.0.0/8 ge 10 le 18 
 +(**ge** = Greater or Equal != **le** pour Less or Equal) 
 + 
 +====Agréger des routes==== 
 + 
 +On utilise la commande ''aggregate-address''
 + 
 +  router bgp 300 
 +   network 200.52.1.192 mask 255.255.255.224 
 +   aggregate-address 200.52.1.0 255.255.255.0 
 + 
 +Dans le cas ci-dessus le routeur annoncera les 2 réseaux 200.52.1.192/27 ET 200.52.1.0/24. Si on ne veux annoncer que les agrégats de route on doit utiliser la commande ''summary-only''
 +  aggregate-address 200.52.1.0 255.255.255.0 summary-only 
 + 
 +====route-reflector==== 
 + 
 +Sur le router "route-reflector, on doit déclarer le voisin, puis déclarer que c'est un //client-reflector//
 +  router bgp 64000 
 +   neighbor 165.50.12.2 remote-as 64000 
 +   neighbor 165.50.12.2 route reflector-client 
 + 
 +====Communauté==== 
 + 
 +Pour partager une communauté avec le voisin 10.0.0.1 
 +  neighbor 10.0.0.1 send-community 
 + 
 +====Load Sharing==== 
 + 
 +Le load sharing permet de faire de la répartition de charge sur 2 liens WANs différents (vers un ou plusieurs opérateurs). 
 + 
 +===Double raccordement au même ISP=== 
 + 
 +On considère un router WAN relié en eBGP à 2 routeurs d'un même ISP. Il faut monter les adjacences eBGP et ajouter la commande ''maximum-paths 2'' pour installer jusqu'à 2 paths dans la table de routage. 
 + 
 +Exemple : notre AS=100 et l'AS de notre ISP=200. Configuration de notre routeur : 
 +<code> 
 +                     R1 
 +                   / 
 +AS=100  Router_WAN         AS=200       
 +                   \ 
 +                     R2 
 +</code> 
 + 
 +<code bash> 
 +interface Loopback0 
 + ip address 10.0.0.1 255.255.255.0 
 +
 +interface FastEthernet0/
 + description vers ISP_R1 
 + ip address 100.0.1.1 255.255.255.0 
 +
 +interface FastEthernet0/
 + description vers ISP_R2 
 + ip address 100.0.2.1 255.255.255.0 
 +
 +router bgp 100 
 + neighbor 100.0.1.2 remote-as 200 
 + neighbor 100.0.2.2 remote-as 200 
 + network 10.0.0.0 
 + ! détermine le nombre de path différents à installer dans la table de routage 
 + maximum-paths 2 
 +</code> 
 +=====Vérifications=====
  
-   network 10.10.10.0 mask 255.255.255.0 
-   
 Lister les annonces BGP sur un routeur Lister les annonces BGP sur un routeur
-  sh bgp ipv4 unicast+<code bash> 
 +show bgp ipv4 unicast 
 +</code>
  
 Lister les voisins Lister les voisins
-  sh ip bgp neighbors+<code bash> 
 +show ip bgp neighbors 
 +</code>
  
 Pour redémarrer toutes les sessions BGP Pour redémarrer toutes les sessions BGP
-  clear bgp all+<code bash> 
 +clear bgp all 
 +clear ip bgp * 
 +</code> 
 +ou 
 +<code bash> 
 +clear ip bgp 192.168.0.0 
 +</code> 
 + 
 +Voir la liste de préfixes : 
 +<code bash> 
 +show ip prefix-list 
 +</code> 
 + 
 + 
 +=====Liens utiles=====
  
 +  * [[http://www.cisco.com/en/US/docs/ios/12_2/ip/configuration/guide/1cfbgp.html|Configuring BGP (cisco.com)]]
 +  * [[http://www.cisco.com/en/US/tech/tk365/technologies_configuration_example09186a00800945bf.shtml|Load Sharing with BGP in Single and Multihomed Environments: Sample Configurations]]
informatique/cisco/bgp.txt · Last modified: 2013/10/14 20:44 by 127.0.0.1