User Tools

Site Tools


informatique:cisco:bgp

This is an old revision of the document!


réseau protocole routage

BGP

BGP est un protocole de routage standart inter-domaine qui utilise le port tcp/179 pour établir des communications entre routeurs voisins.

  • 2 déclinaisons du BGP
    • iBGP pour le routage intra-domaine
    • EBGP pour le routage inter-domaine
  • 3 tables
    • table des voisins
    • table de topologie
    • table d'attributs BGP
  • 4 types de messages :
    • Open
    • Keepalive (périodiques toutes les 60s)
    • Update
    • 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.
  • 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 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.
    • mandatory (AS-path, next-hop, origin) : ils sont présents dans chaque update message
    • discretionary (local preference, atomic aggregate) : ils peuvent être présents dans les update message
  • optional : ils ne sont pas forcément reconnus par toutes les implémentations de BGP ; ceux reconnus sont transmis aux peers
    • transitive (aggregator, communities) s'ils ne sont pas reconnus ils sont marqués “partiel”, puis propagés aux voisins
    • nontransitive (MED) ; ils sont droppés s'ils ne sont pas reconnus

Ils peuvent être annoncés dans les routing update sauf le weight.

  • 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
    • en EBGP, le next-hop est le routeur qui annonce la route
    • 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)
  • origin (type code 1) : indique l'origine de la route (IGP, EGP ou incomplète (redistribution))
  • 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.

IBGP

  • les routes apprises par IBGP ne sont jamais transmises à d'autres peers IBGP : cela implique l'utilisation d'une réseau IBGP full-mesh
  • les route reflector sont des routeurs qui annoncent leurs routes à leurs voisins IBGP ; ils permettent de réduire les relations d'adjacence nécessaires avec IBGP

Déclarer le processus de routage avec le numéro d'AS 65001 :

router bgp 65001

Déclarer la Loopback0 comme IP source :

(config-router)#neighbor 10.10.10.2 update-source loopback0

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

Vérifications

Lister les annonces BGP sur un routeur

show bgp ipv4 unicast

Lister les voisins

show ip bgp neighbors

Pour redémarrer toutes les sessions BGP

clear bgp all
clear ip bgp *

ou

clear ip bgp 192.168.0.0

Voir la liste de préfixes :

show ip prefix-list
informatique/cisco/bgp.1229364182.txt.gz · Last modified: 2013/10/14 20:51 (external edit)