TR2 : Technologies de l'internet Chapitre IX Routage extérieur Protocole BGP Politique de routage Interconnexion entre opérateurs 1
Routage Extérieur Les différents systèmes autonomes (AS) composant l internet doivent échanger des informations sur les réseaux accessibles Routeurs de bordure : Assurent la connexion vers une autre AS Informe l autre AS des réseaux qu il sait atteindre Autonomie des AS : protocoles intérieurs différents. Pas de «plus court chemin» global Confiance : des AS peuvent ne pas se faire confiance mutuellement pour propager de «bonnes routes. Opérateurs concurrents, nation en guerre Politiques : objectifs différents pour chaque AS Router en peu de sauts, utiliser un provider précis 2
Schéma de principe AS 65001 AS 65002 BGP BGP Utilise un IGP Utilise un IGP AS 65000 3
Routage inter domaine AS 1307 (OSPF) Système autonome EGP AS 1017 (RIP) Système autonome 3 étapes Du réseau source vers le routeur de bordure de l AS Du routeur de bordure de l AS 1307 à l autre AS 1017 Du routeur de bordure de l AS 1017 au réseau destination EGP doit transmettre les réseaux accessibles à l extérieur, ainsi que le coût 4
Routage inter domaine AS 1307 (OSPF) EGP AS 1017 (RIP) Système autonome Système autonome Le routeur de bordure du système autonome 1307 annonce à celui du système autonome 1017 les listes d accessibilités acquises par le protocole OSPF. Problèmes à résoudre par le routeur politique de routage (que veut on laisser entrer, que veut on laisser voir) métrique (quelle métrique annoncer à l intérieur?) car les protocoles sont différents 5
BGP : Border Gateway Protocol Objectifs : Échanger des routes entre organismes indépendants (opérateurs, gros sites, ) Implémenter la politique de routage de chaque organisme Respect des contrats entre organismes Sureté de fonctionnement Être indépendant des protocoles intérieurs (IGP) de l organisme Supporter le passage à l échelle de l internet Minimiser le trafic sur les liens Donner une bonne stabilité au routage 6
BGP : Caractéristiques (1) BGP : pour le routage moderne inter AS (existe aussi en interne) BGP 4 remplace petit a petit EGP sur Internet Pour résoudre les limitations d'egp (détection des boucles de routages) Routeur interne à un AS connaît le routeur vers d'autres AS Supporte CIDR : Classless InterDomain Routing (préfixe IP annoncé + résumé de route) Chaque entité est identifiée par un numéro d AS La granularité du routage est l AS Le support de la session BGP est TCP:179 Garantie fiabilité des transmission d informations Envoi initial, puis mise à jour 7
BGP : Caractéristiques (2) Métriques de BGP Degré de préférence pour un chemin donné Par expl fonction du nombre d'as traversé, de la vitesse des liens, de leur fiabilité... Politique de routage Filtrage des routes apprises et annoncées Annoncer une route vers un réseau c est accepter du trafic à destination de ce réseau Sessions BGP établies entre routeurs de bord d AS devant être directement connectés Liaison symétrique point à point LAN partagé 8
BGP : Caractéristiques (3) Communication entre routeurs BGP : même réseau et même AS Maillage complet entre routeurs BGP du même AS Le protocole IGP (rip, ospf) de l'as est utilisé pour trouver les routes entre chaque routeur de l AS A l initialisation, comparaison des tables Détermination de l AS Router Border (ASBR) (routeur vers les autres AS) AS lieu de passage entre autres AS les updates BGP consistent en une liste de paires de N réseau/n AS Le chemin vers l AS contient la liste des AS à traverser et les réseaux à utiliser 9
Exemple de connexion BGP (1) Client connecté à deux FAI faire passer tout son trafic par FAI1 (AS 200) et garder sa liaison vers FAI2 (AS 300) en secours Équilibrer son trafic entre FAI1 et FAI2. Cas typique qui amène à utiliser le protocole BGP pour réagir dynamiquement en cas de défaillance d un lien. 10
Exemple de connexion BGP (2) Client connecté à deux FAI par 2 routeurs protection contre la défaillance de l'un d'entre eux ou de l un de ses routeurs Connexion BGP entre les routeurs de bord de l AS 100. maintenir la cohérence entre les 2 routeurs qui doivent posséder les mêmes informations de routage En BGP la granularité du routage est l AS! 11
Règles pour les AS multi-connectés Les routeurs de bord d un même AS échangent leurs informations de routage en I-BGP Les connexions en I-BGP forment un maillage complet sur les routeurs de bord d un AS Ce sont les IGP internes à l AS qui assurent et maintiennent la connectivité entre les routeurs de bord qui échangent des informations de routage en I-BGP Le numéro d AS est un numéro officiel (si connexions vers 2 AS différents) Dans un même AS, c'est bien l'igp (ou le routage statique) qui est responsable de la connectivité interne de l'as. Si un routeur de bord ne peut pas atteindre une route de son AS (qui lui a été annoncée par un voisin interne par exemple), il ne la propagera pas à ses voisins BGP (externes ou internes). 12
Exemple d AS multi-connectés Client connecté à 3 FAI avec redondance sur l un Maillage complet de sessions I-BGP Pour les autres AS, les 4 routeurs de bord de l AS 100 sont vus, du point de vue fonctionnel comme un seul routeur (avec 4 interfaces). 13
Les composants d un annonceur BGP Une description des politiques de routage entrée et sortie Des tables où sont stockées les informations de routage En entrée : table Adj-RIB-in Informations reçues (sans calcul) En sortie : table Adj-RIB-out Informations à envoyer, classées par routeur destination En interne : table Loc-RIB Sélection des routes par le routeur (calcul) Un automate implémentant le processus de décision Des sessions avec ses voisins pour échanger les informations de routage 14
Schéma fonctionnel du processus BGP 15
La vie du processus BGP Automate à 6 états, réagit sur 13 événements Interagit avec les autres processus BGP par échange de 4 types de messages : OPEN KEEPALIVE NOTIFICATION UPDATE Taille des messages de 19 à 4096 octets Éventuellement sécurisés par MD5 16
Automate simplifié du processus BGP 17
Le message OPEN 1er message envoyé après l ouverture de la session TCP. Informe son voisin de : Sa version de BGP, son numéro d'as Un numéro identifiant le processus BGP Propose une valeur de temps de maintien de la session (valeur suggérée : 90s) Hold-timer : temps maximum (sec) entre 2 KEEPALIVE => routeur H.S. Si 0 : maintien sans limite de durée Le voisin répond par un message OPEN Ensuite ne sont envoyés que des messages KEEPALIVE et UPDATE 18
Le message KEEPALIVE Confirme un OPEN Réarme le minuteur contrôlant le temps de maintien de la session Si temps de maintien non égal à 0, réémis toutes les 30 secondes (suggéré) Message de taille minimum (19 octets) En cas d'absence de modification de leur table de routage, les routeurs ne s'échangent plus que des messages KEEPALIVE toutes les 30 secondes, ce qui génère un trafic limité à environ 5bits/s au niveau BGP. 19
Le message NOTIFICATION Ferme la session BGP et aussi la session TCP Fournit un code indiquant la la raison normal, erreur, Peut être émis sur incidents : Pas de KEEPALIVE pendant 90s (<hold time>) Message incorrect Problème dans le processus BGP Annule toutes les routes apprises par BGP peut provoquer des instabilités de routage injustifiées un incident ne veut pas forcément dire que toutes les routes apprises sont devenues fausses 20
Le message UPDATE Sert à échanger les informations de routage Ensemble des réseaux accessibles (NLRI) Chaque réseau est défini par (préfixe, longueur Propositions de routes, routes à éliminer Une proposition de route est décrite par : L identification des destinations On peut inclure l adresse de plusieurs réseaux en utilisant des techniques d agrégation d adresses Des attributs décrivant les propriétés de la route Envoyé uniquement si changement Active le processus BGP Modification des RIB (Routing Informations Base): Update, politique de routage, conf. 21
Attributs de route obligatoires ORIGIN : donne l état de la route IGP (i) : si le réseau est interne à l'as EGP (e) : si l'information apprise par EGP (peu de poids) Incomplète (?) : origine inconnue ou apprise par un autre moyen (redistribution des routes statiques ou connectées dans BGP par exemple) AS path : donne la route vers un réseau sous forme d une liste de segments d AS (ordonnés ou non) Chaque routeur rajoute son numéro d AS aux AS_PATH des routes qu il a apprises avant de les ré-annoncer Les segments d AS non ordonnés sont formés par un routeur qui a fait une opération d'agrégation. regroupe dans un ensemble non ordonné tous les AS associés aux routes qu'il a agrégées et permet aux autres routeurs de détecter d'éventuelles boucles concernant ces routes. Next hop : @IP du prochain routeur à utiliser (évite un rebond si plusieurs routeurs BGP sur un même réseau local) 22
Agrégation de routes (1) Permet de réduire le nombre d annonces de routes n2 n4 AS1 annonce 197.8.2.0/24 : AS_PATH 1 AS2 annonce 197.8.3.0/24 : AS_PATH 2 AS3 annonce 197.8.0.0/22 : AS_PATH 3 {1 2} 2 routes sont injectées dans les tables de AS4 Comment AS3 annonce-t-il 197.8.0.0/22? (comment sont routés les paquets de n4 vers n2?) 23
Agrégation de routes (2) n2 n4 AS2 reçoit 197.8.0.0/24 : AS_PATH 3 {1 2} 197.8.3.0/24 : AS_PATH 6 5 2 2 routes sont reçues dans les tables de AS4 Seul les plus courtes sont injectées dans les tables de AS4 Comment sont routés les paquets de n4 vers n2? 24
Exemple 1 : tables Adj-RIB-in 25
Exemple 1 : configuration sur IOS 26
Exemple 2 : tables Adj-RIB-in 27
Exemple 2 : configuration sur IOS 28
Exemple 3 : tables Adj-RIB-in 29
Exemple 3 : configuration sur IOS 30
Attribut Next Hop Annonces de R3? Annonces de R6? 31
Attributs de route optionnels (1) LOCAL_PREF (non transitif, discretionary) Pondère la priorité donnée aux routes en interne à l AS Non obligatoire mais reconnu par tous les processus BGP Jamais annoncé en E-BGP (en interne donc!) Pris en compte avant la longueur de AS_PATH ATOMIC_AGGREGATE (transitif, discretionary) Indicateur d agrégation Quand des routes plus précises ne sont pas annoncées Retransmis aux voisins BGP qui le reconnaissent AGGREGATOR (transitif) Donne l AS qui a formé la route agrégée L'adresse IP du routeur qui a fait l agrégation 32
Attribut LOCAL_PREF Utilisé dans un AS pour préciser le meilleur chemin pour sortir de l AS afin d atteindre un réseau donné Propagé sans changement par I-BGP Cisco : bgp default local-preference <pref-value> R6 associe pref=100, R2 pref=10 R1 choisit la plus grande préférence 33
Attributs de route optionnels (2) MULTI_EXT_DISC ou MED (non transitif) Permet de préciser à un routeur E-BGP externe à un AS le meilleur chemin pour joindre un réseau de l AS en cas de plusieurs chemins possibles WEIGHT (non transitif, spécifique Cisco) Pondère localement (au routeur) la priorité des routes BGP COMMUNITY (transitif) Pour un ensemble de routeurs ayant une même destination Une même destination peut être membre de plusieurs communautés L'attribut de communauté est conservé lors de la traversée des AS 34
Attribut MED (Multi-Exit Discriminator) Meilleur chemin pour joindre un réseau de l AS Non retransmis par le routeur E-BGP qui reçoit l info Valeur la plus faible préférée pour une même destination Si AS 200 accepte les MEDs, le traffic va dans chaque cas vers le lien privilégié par l AS 300 sous Cisco, l attribut MED s appelle metric (métrique externe) 35
Attribut COMMUNITY Communauté identifié par un numéro <n AS> : <n communauté> 0 à 4.10 9 Permet grâce aux route-maps d'appliquer des décisions de routage : "accept", "prefer", "redistribute", etc. 36
Portée de quelques attributs de route 37
Le processus de décision 3 phases, enclenché par une annonce de route Calcul du degré de préférence de chaque route apprise Choix des meilleures routes à installer dans RIB-Loc Choix des routes qui vont être annoncées Applique des traitements aux informations de routage Techniques : suppression boucles, optimisations Administratifs : politique de routage de l AS. Une annonce de route doit avoir son NEXT_HOP routable. Une route interne n est annoncée par un routeur que s il sait la joindre. Une route externe n est annoncée par un routeur que s il sait joindre le NEXT_HOP. Une route dont l attribut NEXT_HOP est l adresse IP du voisin n est pas annoncée à ce voisin 38
Critères de choix entre 2 routes WEIGHT (propriétaire Cisco, plus grand préféré) LOCAL_PREF le plus grand Route initiée par le processus BGP local AS_PATH minimum ORIGIN minimum (IGP -> EGP -> Incomplete) MULTI_EXT_DISC minimum Route externe préférée à une route interne à l AS Route vers le plus proche voisin local (au sens de l IGP) Route vers le routeur BGP d adresse IP minimum 39
Différences entre E-BGP et I-BGP Une annonce reçue en I-BGP n est pas réannoncée en I-BGP L attribut LOCAL_PREF n est annoncé qu en I-BGP Seuls les voisins E-BGP doivent être directement connectés Les annonces I-BGP ne modifient pas l AS_PATH Les annonces I-BGP ne modifient pas le NEXT_HOP Le MED n est pas annoncé en I-BGP 40
Interaction BGP IGP Redistribution Routes apprises par BGP IGP (OSPF) OSPF propage les routes via des LSAs type 4 à tous les routeurs du nuage OSPF Grand nombre de routes /entrées dans IGP Accroît le temps de convergence après panne Injection Route apprise par BGP sont écrites dans la table de routage du routeur. Pas de propagation (cela n aide que le routeur) Synchronisation 41
Annonce des routes internes d un AS Statique Pas d instabilité de routage, mais trous noirs possibles redistribute [static connected] ORIGIN: Incomplete network <adresse réseau> ORIGIN: IGP Dynamique Suit au mieux l état du réseau nécessite du filtrage redistribute <paramètres de l IGP> ORIGIN: IGPz 42
Politique de routage Elle peut influencer : Le traitement des routes reçues Le traitement des routes annoncées L'interaction avec les IGP de l AS En pratique elle s exprime par : Du filtrage de réseaux annoncés Du filtrage de routes (AS_PATH) De la manipulation d attributs de routes 43
Input Policy Engine Le filtrage en entrée contrôle le trafic en sortie Les filtres routent les mises à jour reçues des autres routeurs Filtrage basé sur les préfixes IP, l AS-PATH, la communauté Refuser un préfixe signifie que BGP ne veut pas atteindre ce préfixe via le routeur qui a envoyé l annonce Accepter un préfixe signifie que le trafic vers ce préfixe peut être transmis au routeur qui a envoyé l annonce Manipulation d attributs Positionnement d attributs pour les routes acceptées Exemple : spécifier LOCAL_PREF pour établir des priorités entre plusieurs pairs qui peuvent atteindre une destination donnée 44
Output Policy Engine Le filtrage de sortie contrôle le trafic entrant Transmettre une route signifie que les autres peuvent choisir d atteindre un préfixe en passant par nous Ne pas transmettre une route signifie que les autres doivent utiliser un autre route pour atteindre le préfixe Cela peut dépendre sur le fait qu il s agit d un pair E- BGP ou I-BGP Exemple : si ORIGIN=EGP et que vous êtes un AS non-transit et que le pair BGP n est pas client, alors pas de transmission Manipulation d attributs Fixe les attributs tels que AS_PATH et MED 45
Filtrage de réseau annoncé On associe une access list à un voisin neighbor <ID> distribute-list <num> [in/out] Expl : AS100 ne veut pas servir d AS de transit pour le réseau 194.10.3.0/24 de l AS300 46
Filtrage de réseau annoncé Le filtrage d annonces peut s effectuer en entrée depuis un routeur ou en sortie vers un autre Expl : Idem mais en plus l AS100 ne connaît plus 194.10.3.0/24 de l AS300 47
Filtrage de route (AS_PATH) On défini une filter list que l on associe à un voisin pour filtrer les AS_PATH reçus ou annoncés ip as-path access-list <num> [deny/permit] <regexpr> neighbor <ID> filter-list <num> [in/out] regexpr est une expression régulière ^ : début du chemin _ : ^ $ ( ) ou espace $ : fin du chemin * : toute répétition. : tout caractère + : au moins une? : un caractère répétition Expl : ^$ route locale seulement (AS_PATH vide) ^300_ toutes les routes en provenance de 300 _300$ toutes les routes originaires de 300 _300_ toutes les routes passant par 300 48
Filtrage de route (AS_PATH) Expl : AS100 ne veut pas servir d AS de transit pour tous les réseaux internes d AS300 ^300_ AS_PATH = 300.* toutes les routes 49
Manipulation d attributs de routes On défini une route-map pour définir ou modifier les attributs les attributs d une route et on l associe à un voisin en réception ou en émission route-map <nom> [permit deny] <no-regle> match <condition> set <attribut> <valeur> neighbor <ID> route <nom> [in/out] Expl : route-map changemed permit 10 match ip address 1 set metric 200 attribut MED route-map changemed permit 20 set metric 300 access-list 1 permit 194.10.3.0 0.0.0.255 neighbor @IP route changemed out 50
Manipulation d attributs de routes AS100 privilégie la route par défaut annoncée par AS300 On modifie l attribut LOCAL_PREF 51
Bilan : utiliser BGP lorsque nécéssaire Non nécessaire Si votre AS est connecté par un seul point Et vous ne transmettez pas d'information de routage en aval Vous utilisez une route par défaut! Nécessaire Pour le routage inter-as si l AS est multi-connectée Pour fournir un routage complet ou partiel à un client en aval Si une info sur le chemin vers un AS est nécessaire Pour implémenter une politique de routage 52