Comprendre l'Agrégation de routes dans BGP

Slides:



Advertisements
Présentations similaires
Border Gateway Protocol BGP4 et MP-BGP4 Section 2
Advertisements

1 Border Gateway Protocol BGP4 et MP-BGP4 Section 1 AfNOG 2008 Rabat, Mai 2008
Border Gateway Protocol BGP4 David LOPOI BGP. David LOPOI  Une interface réseau  Une adresse IP Besoins pour communiquer sur un réseau IP Adressage.
Border Gateway Protocol BGP4 David LOPOI BGP. David LOPOI RAPPEL Filtrage des adresses locales: - Ne pas transmettre - Bloquer la réception /8.
1 Border Gateway Protocol (BGP4) AFNOG 2001, 2002, 2004, 2005,2006, 2007.
MPLS - Configuration de VPN MPLS de couche 3
bgp always-compare-med
MPLS - Configuration d'un VPN MPLS basique
BGP - Etude de BGP ccnp_cch ccnp_cch.
Hot Standby Router Protocol (HSRP) - Partage de charge
OSPF - Comment OSPF génère les routes par défaut
QoS - Propagation de la Politique de QoS via BGP
Configurer NAT et PAT statique pour support d'un serveur Web interne
CCNP Routage Chapitre 8 - Questionnaire N°1
Border Gateway Protocol (BGP4)
CCNP Routage Chapitre 8 - Questionnaire N°1
Configuration EIGRP et IGRP
pleine Classe et sans Classe
Comment les routeurs BGP utilisent l'attribut Multi-Exit-Discriminator
Configuration BGP - avec deux FAI différents (Multihoming)
BGP - Configuration iBGP et eBGP avec ou sans adresse de Loopback
Configuration sessions IBGP et EBGP
Configuration BGP de base
Comprendre la politique
Configuration BGP avec routage par défaut
OSPF - Configuration initiale sur Liaisons Non-Broadcast
Comportement de RIP & IGRP avec les mises à jour de Routage
Paris S0/0 500 Kb/s S0/0 Switch S0/2 S0/1 128 Kb/s 128 Kb/s S0/0 S0/0
OSPF Sham-link pour VPN MPLS
dans des environnements
MPLS - Accès Internet à partir d'un VPN MPLS
BGP - Support de Route-Map Policy list
Sous-résaux LAN dupliqués
Hot Standby Router Protocol standby preempt et standby track
Commande show ip route ccnp_cch ccnp_cch.
Configuration d'une Passerelle par défaut avec les commandes IP
Sécurité - Configuration de
Commande show ip eigrp topology
BGP - Algorithme de sélection du meilleur chemin
Configuration d'un - VPN MPLS de base.
Intégration de NAT avec les VPNs MPLS
BGP - Redondance dans un réseau Multihomed avec HSRP
Proxy ARP ccnp_cch ccnp_cch.
Configuration NAT Utilisation de la commande outside source list
BGP - Filtrage de routes en sortie basé sur le préfixe
Réduction de l'utilisation Mémoire
OSPF - Commande show ip ospf neighbor.
MPLS - Configuration d'un
Configuration Routeur SOHO77
Pile IGMPv3 de Host.
RIP - Configuration des Extensions.
IS-IS - Utilisation du Bit Overload
trois réseaux internes
Configuration OSPF Virtual Link
Sécurité - Configuration d'un
BGP - Dimensionnement & Evolutivité
Comment Résoudre des Problèmes VPN MPLS
OSPF - Routage Inter-Area
MPLS - Flux de Paquets dans un VPN MPLS
Configuration EIGRP - Agrégation de routes
entre trois routeurs utilisant des
IOS Firewall - Blocage d'applets Java
Configuration BGP - Attribut AS_Path
MPLS - Flux de Paquets dans un VPN MPLS
BGP - (Border Gateway Protocol)
Quand les routes BGP ne sont pas annoncées
Configuration NAT Statique
OSPF - Redistribution des réseaux directement connectés
Ccnp_cch 1 BGP - Etude de BGP. ccnp_cch 2 Sommaire - Introduction - BGP Etude partie 1 - Comment BGP fonctionne-t-il? - eBGP et iBGP - Validation du routage.
Formation CCNA 16 - Routage Classless VLSM/CIDR. Sommaire 1)Introduction au routage classless 2)CIDR* 3)VLSM** 4)Configuration * Classless Inter-Domain.
Transcription de la présentation:

Comprendre l'Agrégation de routes dans BGP ccnp_cch

Sommaire • Introduction • Schéma du réseau • Agrégation sans l'argument as-set • Agrégation avec l'argument as-set • Changer les attributs de la route agrégée • Utilisation de "advertise-map" pour agréger des sous-ensembles de routes ccnp_cch

Introduction BGP (Border Gateway Protocol) autorise l'agrégation de routes données en une seule route en utilisant la commande aggregate-address address-mask [as-set] [summary- only] [suppress-map map-name] [advertise-map map-name] [attribute-map map- name]. Quand vous utilisez la commande aggregate-address sans aucun argument, il n'y a pas héritage des attributs (tels AS_PATH ou community) des routes individuelles, ce qui entraine une perte de granularité. L'objectif de ce document est d'illustrer comment manipuler les différents attributs quand on utilise la commande aggregate- address et comment influencer leur propagation. Schéma du réseau Routeur A Routeur C Routeur B Routeur D AS 400 AS 200 AS 300 AS 100 160.20.0.0/16 160.10.0.0/16 2.2.2.0/8 3.3.3.0/8 4.4.4.0/8 ccnp_cch

Agrégation sans l'argument as-set L'utilisation de l'argument as-set crée une adresse agrégée avec un ensemble (mathé- matique) de systèmes autonomes. Cet argument as-set agrège les attributs AS_PATH de toutes les routes individuelles. Nous allons utiliser l'exemple de configuration ci-dessous pour examiner cette fonctionnalité et voir comment cela aide BGP à détecter et à éviter les boucles. Routeur A Current configuration hostname RouteurA ! interface Serial1 ip address 2.2.2.2 255.0.0.0 ! router bgp 100 network 160.20.0.0 !-- Réseau 160.20.0.0/16 annoncé par le Routeur A neighbor 2.2.2.1 remote-as 300 ! end Routeur B Current configuration hostname RouteurB ! interface Serial0 ip address 3.3.3.3 255.0.0.0 ! router bgp 200 network 160.10.0.0 !-- Réseau 160.10.0.0/16 annoncé par le Routeur B neighbor 3.3.3.1 remote-as 300 ! end ccnp_cch

Routeur C Current configuration hostname RouteurC ! interface Serial0 ip address 2.2.2.1 255.0.0.0 ! interface Serial1 ip address 3.3.3.1 255.0.0.0 ! interface Serial2 ip address 4.4.4.1 255.0.0.0 ! router bgp 300 neighbor 2.2.2.2 remote-as 100 neighbor 3.3.3.3 remote-as 200 neighbor 4.4.4.4 remote-as 400 aggregate-address 160.0.0.0 255.0.0.0 summary-only ! !-- Le réseau est agrégé et seul 160.0.0.0/8 est annoncé end Routeur D Current configuration hostname RouteurD ! interface Serial0 ip address 4.4.4.4 255.0.0.0 ! router bgp 400 neighbor 4.4.4.1 remote-as 300 ! end ccnp_cch

Le routeurC (AS 300) agrège les routes 160. 20. 0/16 et 160. 10 Le routeurC (AS 300) agrège les routes 160.20.0.0/16 et 160.10.0.0/16 venant respec- tivement de l'AS 100 et de l'AS 200. Ceci est du à l'argument summary-only configuré sur le RouteurC. Seule la route 160.0.0.0/8 (Classless InterDomain Routing - CIDR) est annoncée au routeur D. Les routes spécifiques 160.20.0.0/16 et 160.10.0.0/16 sont supprimées comme le montre la table BGP du routeur C ci-dessous: RouteurC#show ip bgp BGP table version is 6, local router id is 4.4.4.1 Status codes: s suppressed, d damped, h history, * valid, > best, i -internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 160.0.0.0/8 0.0.0.0 32768 i s> 160.10.0.0 3.3.3.3 0 0 200 i s> 160.20.0.0 2.2.2.2 0 0 100 i Maintenant examinons la table BGP du routeur D pour observer l'information de chemin de la route agrégée. RouteurD#show ip bgp BGP table version is 6, local router id is 4.4.4.4 Status codes: s suppressed, d damped, h history, * valid, > best, i -internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 160.0.0.0/8 4.4.4.1 0 300 i La route agrégée 160.0.0.0/8 est considéré comme issue de l'AS 300 avec "Origin Code" IGP et a perdu les informations individuelles des préfixes AS_PATH 160.10.0.0 /16 (AS 200) et 160.20.0.0/16 (AS 100) ccnp_cch

Agrégation avec l'argument as-set Maintenant configurons l'argument as-set dans la commande aggregate-address sur le routeur C. La nouvelle configuration est montrée ci-dessous: Routeur C Current configuration hostname RouteurC ! interface Serial0 ip address 2.2.2.1 255.0.0.0 ! interface Serial1 ip address 3.3.3.1 255.0.0.0 ! interface Serial2 ip address 4.4.4.1 255.0.0.0 ! router bgp 300 neighbor 2.2.2.2 remote-as 100 neighbor 3.3.3.3 remote-as 200 neighbor 4.4.4.4 remote-as 400 aggregate-address 160.0.0.0 255.0.0.0 summary-only as-set ! end Maintenant regardons l'influence de cet argument dans la sortie de la commande show ip bgp sur le routeur D. RouteurD#show ip bgp BGP table version is 6, local router id is 4.4.4.4 Status codes: s suppressed, d damped, h history, * valid, > best, i -internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 160.0.0.0/8 4.4.4.1 0 300 {200,100} i En utilisant l'argument as-set, l'information de chemin dans la table BGP change pour inclure l'ensemble 300 {200,100}. Ceci indique que l'agrégation a agrégé les routes qui sont passées dans l'AS 100 et l'AS 200. L'information as-set devient importante pour éviter les boucles car elle indique d'où viennent ces routes. Dans tout réseau cette information d'agrégation est propagée par BGP en retour vers un AS de la liste dans as-set, pouvant ainsi créer des boucles. Le principe de détection de boucle de BGP note que son propre numéro d'AS est présent dans l'as-set de la mise à jour par conséquent la mise à jour est éliminée et une boucle de routage est évitée. ccnp_cch

Note: l'argument as-set contient des informations sur chaque route individuelle et des changements dans une route individuelle entraine une mise à jour de l'agréga- tion. Dans notre exemple, si la route 160.10.0.0/16 passe hors service, l'information de chemin de l'agrégation change de 300 {200,100} à 300 {200} et elle est mise à jour. Si l'agrégation agrège 10 ou 100 routes, elle peut être constamment en train de chan- ger si les routes formant l'agrégation sont instables. Changer les attributs d'une route agrégée Dans la configuration ci-dessus nous avons vu comment utiliser as-set pour garder les attributs AS_PATH d'une route spécifique. Dans certains cas, vous aurez peut-être besoin de changer des attributs (tels la métrique, la communauté, origin...) d'une route agrégée. Pour comprendre comment vous pouvez utiliser l'argument attribute-map pour mani- puler les attributs de aggregate-address, prenons un cas dans lequel une ou plusieurs routes agrégées particulières sont configurées avec l'attribut no export community. Le RrouteurA marque l'attribut no-export pour le réseau 160.20.0.0/16 et l'annonce au RouteurC. Le RouteurC hérite de l'attribut no-export lors de l'agrégation de la route 160.0.0.0/8 et par conséquent cette route ne sera pas annoncée au RouteurD. Les configurations des routeurs B, C et D restent inchangées. Ci-dessous se trouve la configuration du RouteurA: RouteurA Current configuration hostname RouteurA ! interface Serial1 ip address 2.2.2.2 255.0.0.0 ! router bgp 100 network 160.20.0.0 !-- Réseau 160.20.0.0/16 annoncé par le RouteurA neighbor 2.2.2.1 remote-as 300 neighbor 2.2.2.1 send-community neighbor 2.2.2.1 route-map SET-NO-EXPORT out ! access-list 1 permit 160.20.0.0 0.0.255.255 ! route-map SET_NO_EXPORT permit 10 match ip address 1 set community no-export ! !-- L'attribut community est fixé à no-export sur ce !-- routeur pour la route 160.2.0.0/16 ! end ccnp_cch

Maintenant regardons la table BGP du routeur C pour 160 Maintenant regardons la table BGP du routeur C pour 160.0.0.0/8 RouteurC#show ip bgp 160.0.0.0 BGP routing table entry for 160.0.0.0/8, version 9 Paths: (1 available, best #1, not advertised to EBGP peer) Not advertised to any peer {200,100}, (aggregated by 300 4.4.4.1) 0.0.0.0 from 0.0.0.0 (4.4.4.1) 0rigin IGP, localpref 100, weight 32768, valid, aggregated, local, atomic- aggregate, best, ref 2 Community: no-export L'attribut community no-export empêche le routeur C d'annoncer la route agrégée vers le routeur D son voisin eBGP. Le routeur D montre qu'il n'a pas appris 160.0.0.0 du Routeur C: RouteurD# show ip bgp 160.0.0.0 % Network not in table En configurant l'argument attribute-map sur le routeur C, nous manipulons l'attribut community de la route agrégée de no-export à none et ainsi nous permettons à la route agrégée d'être annoncée au routeur D. Routeur C Current configuration hostname RouteurC ! interface Serial0 ip address 2.2.2.1 255.0.0.0 ! interface Serial1 ip address 3.3.3.1 255.0.0.0 ! interface Serial2 ip address 4.4.4.1 255.0.0.0 ! router bgp 300 neighbor 2.2.2.2 remote-as 100 neighbor 3.3.3.3 remote-as 200 neighbor 4.4.4.4 remote-as 400 aggregate-address 160.0.0.0 255.0.0.0 summary-only as-set attribute-map Map ! !-- L'argument attribut-map permet de changer la !-- communauté de l'agrégation ! route-map Map permit 10 set community none ! !-- l'agrégation de communauté est fixée à "none" end ccnp_cch

Maintenant examinons la table BGP du RouteurC pour 160. 0/8 Maintenant examinons la table BGP du RouteurC pour 160.0.0.0/8. Comme il n'y a pas d'attribut community pour la route agrégée, le routeur C annonce 160.0.0.0/8 au RouteurD. RouteurC#show ip bgp 160.0.0.0 BGP routing table entry for 160.0.0.0/8, version 6 Paths: (1 available, best #1) Advertised to non-peer-group peers: 2.2.2.2 3.3.3.3 4.4.4.4 {200,100}, (aggregated by 300 4.4.4.1) 0.0.0.0 from 0.0.0.0 (4.4.4.1) 0rigin IGP, localpref 100, weight 32768, valid, aggregated, local, atomic- aggregate, best, ref 2 La sortie de la commande show ip bgp 160.0.0.0 sur le RouteurD montre qu'il a appris la route agrégée 160.0.0.0/8 du RouteurC. RouteurD#show ip bgp 160.0.0.0 BGP routing table entry for 160.0.0.0/8, version 10 Paths: (1 available, best #1, table Default-IP-Routing-Table) Not Advertised to any peer 300 {200,100}, (aggregated by 300 4.4.4.1) 4.4.4.1 from 4.4.4.1 (4.4.4.1) 0rigin IGP, localpref 100, external, best ccnp_cch

Utilisation de "advertise-map" pour agréger un sous-ensemble spécifique de routes Avoir le contrôle sur les préfixes individuels qui forment la route agrégée est utile pour décider quels sont les attributs que la route agrégée doit transporter. Dans l'exemple précédent, si nous excluons le préfixe 160.20.0.0 de la route agrégée, la route agrégée 160.0.0.0/8 n'héritera pas de l'attribut community no-export. Nous allons réaliser cela en configurant l'argument advertise-map sur le routeur C. Routeur C Current configuration hostname RouteurC ! interface Serial0 ip address 2.2.2.1 255.0.0.0 ! interface Serial1 ip address 3.3.3.1 255.0.0.0 ! interface Serial2 ip address 4.4.4.1 255.0.0.0 ! router bgp 300 neighbor 2.2.2.2 remote-as 100 neighbor 3.3.3.3 remote-as 200 neighbor 4.4.4.4 remote-as 400 aggregate-address 160.0.0.0 255.0.0.0 as-set summary-only advertise-map SELECT_SP_ROUTE ! !-- Exclusion d'un préfixe en utilisant advertise-map ! access-list 1 permit 160.10.0.0 0.0.255.255 ! route-map SELECT_SP_ROUTE permit 10 match ip address 1 ! end ccnp_cch

Maintenant examinons la table BGP du routeur C pour 160. 0/8 Maintenant examinons la table BGP du routeur C pour 160.0.0.0/8. RouteurC#show ip bgp 160.0.0.0 BGP routing table entry for 160.0.0.0/8, version 15 Paths: (1 available, best #1) Advertised to non-peer-group peers: 2.2.2.2 4.4.4.4 200, (aggregated by 300 2.2.2.1) 0.0.0.0 from 0.0.0.0 (2.2.2.1) 0rigin IGP, localpref 100, weight 32768, valid, aggregated, local, atomic- aggregate, best, ref 2 Seul l'AS 200 fait partie de l'information AS_PATH de l'agrégation, pas l'AS 100. Aussi la communauté no-export n'est pas héritée de 160.20.0.0/16. Cependant la route agrégée est annoncée au routeur D comme le montre la sortie de la commande show ip bgp160.0.0.0. RouteurD#show ip bgp 160.0.0.0 BGP routing table entry for 160.0.0.0/8, version 7 Paths: (1 available, best #1, table Default-IP-Routing-Table) Not advertised to any peer 300 200, (aggregated by 300 4.4.4.1) 4.4.4.1 from 4.4.4.1 (4.4.4.1) 0rigin IGP, localpref 100, valid, external, atomic-aggregate, best ip bgp 160.0.0.0 Il faut également noter que comme l'as-set agrégé contient uniquement l'AS 200, le routeur A (dans l'AS 100) accepte la route agrégée et l'installe dans sa table de rou- tage. Ceci est du au fait que le système de détection de boucle de BGP ne détecte pas son propre AS (AS 100) dans l'as-set. RouteurA#show ip bgp BGP table version is 3, local router ID is 160.20.0.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPref Weight Path *> 160.0.0.0/8 2.2.2.1 0 300 200 i *> 160.20.0.0 0.0.0.0 0 32768 i ccnp_cch