RFCs | Contact | Bibliographie
BGP et multihoming



Vocabulaire :

BGP : Border Gateway Protocol
EGP : Exterior Gateway Protocol.
Système autonome : est un ensemble de réseaux IP sous le contrôle d'une seule et même entité, typiquement un fournisseur d'accès à Internet ou une plus grande organisation.


BGP est l'EGP supporté par IPv6. Les extensions BGP pour IPv6 supportent les mêmes fonctionnalités que BGP pour IPv4. Les différences résident dans le support des adresses IPv6 et de l'extension " next hop " (le routeur suivant dans le chemin jusqu'à la destination) qu'utilisent les adresses IPv6.
Cette page a pour fonction de présenter l'implantation concrète d'un site multihoming en IPv6 avec 2 providers différents en utilisant BGP.
Bien sûr, cette configuration, impliquant la présence d'un routeur BGP, n'est pas adaptée à un particulier. Mais nous avons souhaité développer son fonctionnement car c'est actuellement cette solution qui fournit un accès multihoming réel et administrée par le système autonome.

  • Rappels sur BGP

  • Border gateway protocol (BGP) est l'un des protocole de routage qui forme notamment le cœur du réseau Internet. Son objectif est d'échanger des informations sur la disponibilité de réseaux. Pour cela le protocole maintient une liste de systèmes autonomes (AS) de laquelle peuvent être exclus les boucles ou certains AS.
    BGP supporte le routage sans classe et utilise l'agrégation de routes afin de limiter la taille de la table de routage.

    Outre Internet, de très grands réseaux IP privés peuvent utiliser BGP, par exemple pour relier des réseaux locaux utilisant OSPF. La plupart des utilisateurs ne sont pas connectés à Internet directement par BGP mais passent par un prestataire comme un FAI qui se charge d'établir des connexions BGP avec les autres réseaux d'Internet.
    Les connexions entre voisins BGP (neighbours ou peers) sont configurées manuellement entre deux routeurs. Ils communiquent alors entre eux via une session TCP sur le port 179. BGP est le seul protocole de routage a utiliser TCP comme protocole de transport.
    Ces deux systèmes s'échangent des informations sur les réseaux, qu'ils connaissent ou sur le moyen de les atteindre. Ils ne connaissent pas l'intégralité du réseau mais juste leurs voisins. BGP est constitué de deux parties : Interior BGP (iBGP) et Exterior BGP (eBGP). iBGP est utilisé à l'intérieur d'un système autonome alors qu'eBGP est utilisé pour relier deux ASs.

    Qu'est-ce qui différencie les protocoles EGP, comme BGP, des protocoles utilisés à l'intérieur des AS, les IGP (Interior Gateway Protocol) comme OSPF ? La différence essentielle n'est pas technique. Elle est administrative.

    On n'utilise les IGP qu'à l'intérieur d'une entité (entreprise, association, etc), où des décisions (comme la suppression ou bien l'ajout d'une ligne) peuvent être prises par un service unique. Le but des IGP est donc de trouver la route la plus efficace, en faisant confiance aux autres routeurs.
    Au contraire, les EGP comme BGP s'utilisent entre entités distinctes (et même souvent concurrentes). Il n'y a plus de possibilité de prendre une décision qui s'imposera à tous. On n'est souvent même pas prévenu de ce que vont faire les pairs avec lequels on parle BGP. En conséquence de quoi, les EGP reposent sur l'idée de méfiance : le but n'est pas de trouver la meilleure route mais au contraire d'empêcher les routeurs de choisir une route dont on ne voudrait pas.
    Concrètement, BGP est basé sur la définition d'une métrique. Cette métrique est fait d'un nombre arbitraire qui spécifie le degré de préférence d'un lien. La mesure est normalement assignée à chaque lien par un administrateur réseau. La valeur assignée à un lien peut être basée sur n'importe quel nombre de caractéritiques, y compris le nombre de systèmes autonomes qui passent par le chemin, la stabilité, la vitesse, les délais et le coût.

  • Le partage de charge

  • Dans ce scénario de type "multihoming", la répartition de charge n'est pas une option. BGP sélectionne seulement le meilleur chemin parmi les différentes routes apprises par l'intermédiaire des différents AS. L'idée est de fixer la meilleure métrique pour les routes apprises par l'intermédiaire du FAI(A) et de même pour le FAI(B). Ainsi, on peu espérer que selon la destination, un paquet empruntera tantôt un chemin du FAI(A), tantôt un chemin du FAI(B).


  • Implications directes pour le réseau

  • BGP est un protocole clé pour le fonctionnement de la redondance des liens de l'Internet. Le multihoming comprend aussi cet aspect de redondance avec la sélection du meilleur chemin qu'offre chaque provider pour accéder à une ressource. Le problème est ici que lorsque l'on utilise BGP avec plus d'un provider, on prend le risque de transformer notre système autonome en système autonome de transit , ce qui aurait pour effet de faire transiter le trafic de l'internet par notre AS et de consommer notre bande passante et les ressources CPU de notre routeur.



    A titre indicatif, voilà un exemple de configuration sur routeur cisco pour éviter de devenir AS de transit.

    Router A
    Current configuration:

    router bgp 300
    network 2001:3000::0
    network 2001:4000::0


    neighbor 2001:5000::0 remote-as 100
    neighbor 2001:5000::0 route-map localonly out

    !--- Outgoing policy route-map that filters routes to service provider A (SP-A).


    neighbor 2001:6000::0 remote-as 200
    neighbor 2001:6000::0 route-map localonly out

    !--- Outgoing policy route-map that filters routes to service provider B (SP-B).


    end


    La clé de cette configuration est l'option route map localonly. Cette option permet de ne communiquer que les routes générées localement. Cela à pour conséquence de filtrer les routes Internet d'un provider à l'autre et ainsi, d'éviter de devenir un AS de transit.