Un nouveau jouet !

http://www.bortzmeyer.org/7854.html

----------------------------

Auteur(s) du RFC: J. Scudder (Juniper
  Networks), R. Fernando
  (Cisco), S. Stuart (Google)

Chemin des normes

----------------------------


    Ce nouveau protocole *BMP* ("BGP Monitoring Protocol") va faciliter le 
travail des administrateurs réseaux qui font du BGP. Il permet 
d'obtenir sous une forme structurée les tables BGP. Avant, la solution 
la plus répandue était d'utiliser l'interface en ligne de commande du 
routeur (show ip bgp routes sur un Cisco), et d'analyser le résultat 
depuis son programme, une méthode qui est très fragile, le format de 
sortie ayant été conçu pour des humains et pas pour des programmes.

    Les tables convoitées sont bien sûr la RIB mais aussi des informations 
comme les mises à jour de routes reçues. BMP donne accès à une table 
BGP nommée Adj-RIB-In, « "Adjacent [peers] Routing Information Base - 
Incoming" », définie dans le RFC 4271, section 1.1. Elle stocke les 
informations brutes (avant les décisions par le routeur) transmises par 
les pairs BGP.

    BMP fonctionne (section 3) en établissant une connexion TCP avec le 
routeur convoité. Celui-ci envoie ensuite l'information qu'il veut. Il 
n'y a pas de négociation ou de discussion au début. Dès que la 
connexion est établie, le routeur transmet. Il envoie d'abord des 
messages "Peer Up" pour chacun de ses pairs, puis des messages "Route 
Monitoring" pour toute sa base de routes (la section 5 les décrit plus 
en détails). Une fois que c'est fait, le routeur transmet des messages 
indiquant les changements : "Route Monitoring" en cas d'annonce ou de 
retrait d'une route, "Peer Up" ou "Peer Down" s'il y a des changements 
chez les pairs. Autres messages possibles : "Stats Report" pour envoyer 
des statistiqes globales (voir les sections 4.8 et 7), "Initiation" et 
"Termination" pour les débuts et fins de sessions, "Route Mirroring" 
pour envoyer verbatim les annonces BGP reçues (c'est une vision de plus 
bas niveau que "Route Monitoring" et cela permet, par exemple, 
d'analyser des annonces BGP syntaxiquement incorrectes, cf. section 6).

    Le client BMP ne transmet jamais de message au serveur (au routeur), à 
tel point que le routeur peut parfaitement fermer la moitié de la 
connexion TCP, ou mettre sa fenêtre d'envoi à zéro (ou encore, jeter 
tous les messages qui seraient envoyés). Toute la configuration est 
dans le routeur.

    Le format des messages est décrit en section 4. C'est du classique. On 
trouve dans le message un numéro de version (actuellement 1), la 
longueur du message, le type du message (la liste des types est 
indiquée plus haut) représentée par un entier (0 pour "Route 
Monitoring", 1 pour "Stats Report" (ou "Statistics Report"), etc), puis 
les données. À noter que le type arrive après la longueur, alors que 
c'est en général le contraire (encodage TLV).

    Pour la plupart des messages BMP, il y aura un second en-tête, 
rassemblant les informations sur le pair (son adresse IP, son AS, etc).

    Les différents paramètres numériques sont désormais stockés dans un 
registre IANA 
<https://www.iana.org/assignments/bmp-parameters/bmp-parameters.xml>.

    Quelques petits mots sur la sécurité pour finir. Pour économiser ses 
ressources, le routeur peut évidemment (section 3.2) restreindre 
l'ensemble des adresses IP autorisées à se connecter en BMP à lui, tout 
comme il peut limiter le nombre de sessions BMP (par exemple, une au 
maximum par adresse IP, cinq au total). Il peut aussi y avoir des 
questions de confidentialité (section 11). Bien sûr, la liste des 
routes dans la DFZ est publique, mais ce n'est pas forcément le cas des 
"peerings" privés ou de VPN utilisant BGP comme ceux du RFC 4364. Donc, 
attention à bien restreindre l'accès.

    BMP est en cours d'élaboration depuis pas mal de temps déjà. Résultat, 
des mises en œuvre ont eu le temps d'apparaitre. Wireshark sait 
analyser le BMP <https://code.wireshark.org/review/#/c/7192/>. Et il 
existe deux récepteurs (clients) libre, BMPreceiver 
<https://code.google.com/p/bmpreceiver> et OpenBMP 
<http://www.openbmp.org/>. Côté serveur (routeur), Cisco et Juniper 
savent envoyer du BMP.


---------------------------
Liste de diffusion du FRnOG
http://www.frnog.org/

Répondre à