chapitre ix - demay.iut.lr.free.frdemay.iut.lr.free.fr/doc/2a/reseaux/tr2 - technologies...

52
TR2 : Technologies de l'Internet Chapitre IX Routage extérieur Protocole BGP Politique de routage Interconnexion entre opérateurs 1

Upload: truongdung

Post on 15-Sep-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

TR2 : Technologies de l'Internet

Chapitre IXRoutage extérieurProtocole BGPPolitique de routageInterconnexion 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 65000

AS 65002

BGP BGP

Utilise un IGPUtilise un IGP

3

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

AS 1307(OSPF)

AS 1017(RIP)

EGP

Système autonome Système autonome

Routage inter domaine

4

Routage inter domaine

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

AS 1307(OSPF)

AS 1017(RIP)

EGP

Système autonome Système autonome

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 BGPModification 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

AS1 annonce 197.8.2.0/24 : AS_PATH 1AS2 annonce 197.8.3.0/24 : AS_PATH 2AS3 annonce 197.8.0.0/22 : AS_PATH 3 {1 2}

2 routes sont injectées dans les tables de AS4Comment AS3 annonce-t-il 197.8.0.0/22 ? (comment sont routés les paquets de n4 vers n2 ?)

n2 n4

23

Agrégation de routes (2)

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 AS4Seul les plus courtes sont injectées dans les tables de AS4Comment sont routés les paquets de n4 vers n2 ?

n4n2

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 Jamais annoncé en E-BGP (en interne donc !) Pris en compte avant la longueur de AS_PATH

ATOMIC_AGGREGATE (transitif, discretionary) Indicateur d’agrégationQuand des routes plus précises ne sont pas

annoncées

AGGREGATOR (transitif)Donne l’AS qui a formé la route agrégée L'adresse IP du routeur qui a fait l’agrégation

Non obligatoire mais reconnu par tous les processus BGP

Retransmis aux voisins BGP qui le reconnaissent

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=10R1 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 trafficva dans chaque casvers le lien privilégiépar l’AS 300

sous Cisco, l’attributMED s’appelle metric (métrique externe)

35

Attribut COMMUNITY

Communauté identifié par un numéro<n°AS> : <n°communauté> 0 à 4.109

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 minimumORIGIN 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

StatiquePas d’instabilité de routage, mais trous noirs

possibles

redistribute [static|connected]

ORIGIN: Incomplete

network <adresse réseau>

ORIGIN: IGP

DynamiqueSuit au mieux l’état du réseaunécessite du filtrage

redistribute <paramètres de l’IGP>

ORIGIN: IGPz

42

Politique de routage

Elle peut influencer :Le traitement des routes reçuesLe traitement des routes annoncéesL'interaction avec les IGP de l’AS

En pratique elle s’exprime par :Du filtrage de réseaux annoncésDu 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

route-map changeMED permit 20 set metric 300

access-list 1 permit 194.10.3.0 0.0.0.255neighbor @IP route changeMED out

attribut MED

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