00:00Ok, bonjour à tous.
00:03Je viens de Strasbourg, de l'Université Strasbourg.
00:05J'étais là il y a un an.
00:11Aujourd'hui, je vais parler de BGP, de BGP Monitoring et de BMP.
00:16BGP, c'est le protocole principal qui est utilisé dans l'Internet
00:19pour le routage entre les réseaux.
00:22Et du coup, c'est essentiel d'avoir des plateformes
00:25qui viennent se connecter à des routeurs BGP
00:27pour venir collecter leurs routes
00:28afin qu'on puisse monitorer l'Internet.
00:31Donc typiquement, ça c'est utile pour détecter des erreurs de configuration,
00:34identifier par exemple quand des préfixes IP ne sont plus visibles,
00:38détecter des attaques de routage.
00:40C'est aussi utile pour les chercheurs pour cartographier l'Internet par exemple.
00:46Et donc, j'étais là l'année dernière à FRNoc 40
00:48et j'ai présenté une plateforme de collecte de routes BGP
00:52qu'on a développée à l'Université de Strasbourg
00:54qui s'appelle bgproutes.io.
00:56Et donc, à ce moment-là, quand j'étais là l'année dernière,
01:00c'était vraiment le début, on venait juste de la sortie.
01:03Donc on avait un site, mais c'était très rudimentaire.
01:05On avait moins de 10 peer, c'était essentiellement nos collaborateurs
01:08et on faisait juste de la collecte de données,
01:11on n'avait pas de services en plus.
01:13Donc aujourd'hui, dans un premier temps,
01:14j'aimerais bien faire un petit recap sur comment ça a évolué depuis un an.
01:18Donc on a fait pas mal d'améliorations.
01:21Donc d'abord, on a un nouveau site Internet qui est beaucoup plus sympa à naviguer.
01:27On explique aussi plus en détail nos objectifs.
01:31Et aussi, on a essayé de simplifier un maximum la connexion avec la plateforme.
01:35Ça, je vais revenir dessus un petit peu plus tard.
01:39Donc aujourd'hui, en termes de points de vue,
01:41donc un point de vue, c'est par exemple un routeur BGP
01:43avec lequel on se connecte pour récupérer ces données.
01:46Donc on a 94 points de vue.
01:48On a 54 full feeders,
01:50qui nous annoncent l'entièreté de la table de routage.
01:54Donc on en a 58 qui sont en IPv4 et 36 en IPv6.
01:59L'un des objectifs de cette plateforme,
02:02c'est d'essayer de collecter un maximum de données
02:04pour que nos outils de monitoring BGP soient les plus précis possibles.
02:09Et donc ce qu'on a fait aussi,
02:10c'est qu'on est venu se connecter à toutes les plateformes
02:12qui existent déjà et qui partagent les données de manière publique.
02:17Donc c'est RIPRIS, Routviews, PCH et CGTF.
02:20Peut-être que vous les connaissez déjà.
02:21Donc on est venu se connecter à ces plateformes,
02:23mais on récupère leurs données
02:24et on les met dans notre base de données.
02:27Donc en fait, aujourd'hui,
02:28c'est comme si on collectait les données depuis plus de 5000 points de vue.
02:32Et donc on a une page sur notre site internet
02:34qui résume un petit peu la situation.
02:37Vous pouvez aller la consulter si vous souhaitez.
02:39Si vous voulez utiliser les données,
02:42c'est possible, ils sont publics.
02:44Donc vous pouvez le faire soit via une archive MRT,
02:47donc ça c'est un peu la méthode classique.
02:49Mais sinon, on a aussi implémenté une API
02:51qui vous permet de récupérer les données
02:53de manière rapide et flexible.
02:55Ça, c'est assez unique.
02:57Et si vous voulez les donner aussi en real-time,
02:59vous pouvez vous connecter à notre WebSocket Stream.
03:02L'idée, en fait, c'est que si vous voulez développer
03:05vos propres outils de monitoring interne,
03:07vous pouvez assez facilement.
03:09On a même fait des librairies en Python, par exemple.
03:12Donc vous pouvez les utiliser.
03:14Et par exemple, ici, en quelques lignes de code,
03:17vous pouvez faire, par exemple, une Looking Glass géante.
03:19Ici, par exemple, vous importez notre librairie en Python.
03:22Vous récupérez les points de collecte que vous voulez
03:24depuis les plateformes que vous voulez.
03:25Et ensuite, vous pouvez récupérer le statut de la RIB
03:30pour ces 20 touchpoints,
03:32pour certains préfixes à un moment donné.
03:34Et vous aurez la réponse en quelques secondes.
03:37Voilà, donc ça, c'est juste un petit exemple.
03:40Bon, bien sûr, peut-être que vous n'avez pas envie
03:43de faire du code et ça peut se comprendre.
03:45Donc on est aussi en train de mettre en ligne des dashboards.
03:48Donc là, par exemple, on a trois dashboards
03:50et on va réussir d'en mettre plus avec le temps.
03:53Donc je ne vais pas présenter ces dashboards précisément aujourd'hui,
03:57mais si vous êtes intéressé,
03:58vous pouvez aller sur le site
03:59et voir un petit peu ce qu'ils font.
04:02Voilà.
04:05Donc ça, c'était pour le petit recap
04:06juste de ce qu'on a fait pendant un an.
04:08Et maintenant, j'aimerais plus précisément parler
04:10d'une nouvelle fonctionnalité qu'on a mis en place
04:12il y a à peu près un mois.
04:13Et je pense qu'elle est assez intéressante
04:15et assez nouvelle aussi.
04:17Donc là, on va parler de BMP.
04:18Donc ça, c'est le plan pour le reste de cette présentation.
04:23Donc d'abord, je vais vous expliquer
04:24pourquoi c'est difficile aujourd'hui,
04:26quand on est une plateforme de collecte
04:27comme jproutes.io,
04:29en fait, d'avoir plus de points de vue
04:30et de collecter plus de données.
04:33Et ensuite, je vais vous expliquer
04:34pourquoi BMP ici peut t'aider.
04:36Et finalement, je vais vous expliquer
04:38que si vous voulez,
04:39vous pouvez vous connecter à la plateforme
04:40très facilement
04:41et vous pouvez aussi superviser vos sessions.
04:43Alors, aujourd'hui,
04:47pourquoi c'est difficile
04:48de collecter plus de données ?
04:51Alors d'abord, parce que c'est difficile
04:52de motiver les opérateurs
04:53à venir se connecter
04:54à des plateformes de collecte.
04:55Donc c'est aussi pour ça
04:56que je suis là aujourd'hui.
04:57Mais même quand on a convaincu
04:59un opérateur de venir se connecter
05:01à une plateforme
05:02comme bjproutes.io,
05:03le problème, c'est que cet opérateur
05:04va venir se connecter
05:05avec une session BGP.
05:07Et BGP, typiquement,
05:09cache des routes.
05:10Donc on ne va pas voir malheureusement
05:11toutes les routes.
05:12Et là, j'aimerais m'arrêter
05:13juste un instant là-dessus.
05:14Donc si on prend par exemple
05:15cet exemple,
05:16donc on considère que ça,
05:17c'est un routeur BGP.
05:19Et ce routeur BGP,
05:21par exemple,
05:22il a trois pires
05:24dans l'AS1, AS2 et AS3.
05:26Donc il va recevoir
05:26des mises à jour de routes
05:27de ces trois AS.
05:30Ces mises à jour de routes
05:31vont arriver dans le routeur
05:32et d'abord, peut-être,
05:32elles vont être filtrées
05:33par les filtres d'entrée.
05:35Les routes qui sont acceptées
05:36vont ensuite aller
05:37dans le décision de process
05:38et ensuite,
05:39la RIB va être calculée
05:41et les meilleures routes
05:42vont ensuite être annoncées
05:44au pire
05:44si elles ne sont pas
05:46filtrées par les filtres
05:47de sortie.
05:49Donc ça,
05:49c'est le pipeline typique
05:50dans un routeur BGP.
05:54Donc maintenant,
05:54si on imagine
05:55que ce routeur
05:55se connecte
05:56à une plateforme de collecte
05:57comme bgproutes.io,
05:59ici,
05:59avec une session BGP,
06:01ce qui est le standard,
06:01c'est une bonne nouvelle
06:04parce qu'on va voir
06:04effectivement les meilleures routes
06:06qui n'ont pas été filtrées
06:08parce que ça,
06:08c'est ce que BGP annonce
06:10dans une session BGP.
06:13Malheureusement,
06:13on ne va pas voir
06:14toutes les routes
06:14qui ont été refusées
06:15par les filtres
06:16et aussi toutes les routes
06:17alternatives.
06:18Ces routes-là
06:19ne sont pas annoncées
06:20sur la session BGP,
06:21donc on ne va pas les collecter
06:22et ça, c'est vraiment dommage
06:23parce que peut-être
06:23que dans ces routes,
06:25il y a des BGP hijacks,
06:26il y a des liens
06:27entre des AS
06:27qu'on pourrait voir
06:28mais qu'on ne voit pas,
06:29etc.
06:29Donc,
06:31maintenant,
06:33je vais vous expliquer
06:33pourquoi BMP peut aider.
06:35Alors,
06:35qu'est-ce que c'est BMP ?
06:36BMP,
06:37ça veut dire
06:37le BGP Monitoring Protocol.
06:39Donc,
06:39c'est vraiment un protocole
06:40qui est dédié
06:40à monitorer BGP
06:42et il a deux avantages
06:43fondamentaux
06:44par rapport à utiliser
06:46une session BGP classique
06:47quand on fait du monitoring.
06:49D'abord,
06:50il permet d'exporter
06:51toutes les mises à jour
06:52de routes
06:52pour chaque peer
06:53et il permet aussi
06:55d'exporter
06:56les mises à jour de routes
06:57à toutes les étapes
06:58dans le processus BGP
06:59du routeur.
07:00Et en plus,
07:01c'est très simple
07:02à configurer.
07:03Alors,
07:03visuellement,
07:04qu'est-ce que ça veut dire
07:05tout ça ?
07:06Reprenons l'exemple précédent.
07:07En fait,
07:08on se rend compte ici
07:08dans le pipeline BGP,
07:10il y a cinq étapes principales.
07:12Il y a d'abord
07:13la première étape
07:13ici à gauche
07:14avant les filtres d'entrée.
07:16Donc,
07:16ça,
07:16c'est vraiment
07:16toutes les mises à jour
07:18de routes
07:18qu'on va recevoir.
07:19Il y a une deuxième étape
07:21ensuite après
07:21les filtres d'entrée.
07:23Ensuite,
07:23il y a une troisième étape
07:24qui s'appelle
07:24la locale RIB.
07:26Et finalement,
07:26il y a deux autres étapes
07:28avant et après
07:28les filtres de sortie.
07:31Donc,
07:32si maintenant,
07:32ce routeur BGP
07:33se connecte
07:34à une plateforme
07:35de collecte
07:35avec BMP,
07:37l'opérateur ici
07:38peut vraiment configurer
07:40dans le routeur
07:40pour quelle étape
07:42il souhaite exporter
07:43les données.
07:44Ça peut être une étape
07:45ou ça peut être
07:45plusieurs étapes.
07:46Tout est possible.
07:50Dans le contexte
07:51de bgproutes.io,
07:52ici,
07:53nous,
07:53ce qu'on recommande
07:53de faire,
07:54c'est d'exporter
07:54les données
07:56à l'étape
07:56EdgeInPray seulement.
07:58Donc,
07:59en fait,
07:59c'est l'étape
07:59ici tout à gauche.
08:01Pourquoi ?
08:02Parce que
08:02c'est à cette étape
08:04qu'on va avoir
08:04un maximum de données
08:06parce qu'à ce moment-là,
08:07ils ne sont pas encore filtrés.
08:08Et en plus de ça,
08:09ça va empêcher
08:10les utilisateurs
08:10d'inférer
08:11vos politiques de routage
08:12parce qu'effectivement,
08:12si vous exportez
08:14par exemple
08:14l'étape
08:16EdgeInPray
08:16et l'étape
08:17LocalRIB,
08:18il suffit de faire
08:18la différence
08:19pour savoir
08:19quelle route
08:20vous avez filtrée.
08:22C'est probablement
08:22quelque chose
08:23que vous ne souhaitez pas
08:24que les utilisateurs
08:25puissent faire.
08:25Donc,
08:25c'est pour ça que nous,
08:26on recommande juste
08:27d'exporter
08:28les routes
08:29à l'étape
08:30ici tout à gauche
08:31avant les filtres d'entrée.
08:33Donc,
08:34maintenant,
08:34qu'est-ce qui se passe
08:35si un opérateur
08:36fait ça ?
08:37Donc,
08:37ici,
08:38la bonne nouvelle,
08:39c'est qu'on va vraiment
08:40voir les routes
08:41telles qu'elles arrivent
08:42depuis AS1,
08:43AS2 et AS3
08:44comme si on s'était
08:45connecté en BGP
08:46directement avec ces AS.
08:48Mais au lieu
08:49de se connecter en BGP
08:50avec ces AS,
08:51on a seulement une session
08:52BMP depuis le routeur.
08:53Donc là,
08:53on voit qu'en fait,
08:54c'est moins d'efforts
08:55pour les opérateurs
08:56parce qu'on a juste besoin
08:57d'une session BMP,
08:58mais c'est plus de données
09:00pour les utilisateurs
09:01parce que c'est comme
09:02si on s'était connecté
09:02trois fonds en BGP
09:03à trois AS différents.
09:05Et c'est là
09:05qu'on voit vraiment
09:06le gain de BMP.
09:08Donc,
09:09si vous êtes convaincu,
09:10maintenant,
09:11vous pouvez vous connecter
09:12à la plateforme.
09:13C'est très facile.
09:14Donc,
09:14vous pouvez aller
09:15sur le site internet,
09:17vous cliquez sur
09:18Logging
09:18en haut à droite.
09:19Donc là,
09:20vous pouvez vous logguer
09:21avec PeeringDB.
09:22comme ça,
09:23on va directement savoir
09:24quel AS number
09:25vous avez.
09:27Ensuite,
09:27vous cliquez sur le bouton
09:28Start Peering with Us.
09:30Il y a un petit formulaire
09:32à remplir.
09:32C'est extrêmement simple.
09:33Il y a juste une adresse
09:34IP à donner
09:35et puis vous cliquez
09:36sur Submit.
09:37Et ensuite,
09:37vous avez juste besoin
09:38de configurer BMP
09:39dans votre routeur.
09:40On fournit des exemples
09:41pour vous aider.
09:41et c'est terminé.
09:45Et vous allez vous connecter
09:46à la plateforme
09:47et les données
09:47seront directement disponibles
09:49pour les utilisateurs.
09:51Vous pouvez aussi
09:52superviser vos sessions.
09:53Donc là,
09:54en haut à droite,
09:54vous avez le bouton
09:55Your VPs.
09:56Vous pouvez cliquer dessus.
09:58Et ça,
09:58typiquement,
09:59c'est ce que vous voyez.
09:59Donc ça,
09:59c'est ce que voit
10:00nos collaborateurs,
10:01par exemple,
10:01qui a des sessions BGP
10:03avec nous.
10:04Mais aujourd'hui,
10:04on est plutôt intéressé
10:05par les sessions BMP
10:07en bas ici.
10:08Donc,
10:08on voit que ce collaborateur
10:09a deux sessions BMP
10:11avec nous.
10:12Et il y a une colonne
10:12qui est particulièrement
10:14intéressante,
10:15c'est celle-ci.
10:16On voit vraiment
10:17le nombre de points de collecte
10:19qui sont créés
10:20par chaque session BMP.
10:21Et là,
10:21par exemple,
10:22on voit que la session BMP
10:23du bas,
10:23elle crée en fait
10:24dix points de vue.
10:26Donc,
10:26c'est une session BMP
10:27et dix points de vue.
10:28Et ça,
10:28c'est vraiment utile.
10:30Voilà.
10:30Donc ça,
10:31ça a conclu ma présentation.
10:32Merci.
10:33Et si vous avez des questions,
10:34laissez-la.
10:36Merci.
10:38Allez,
10:38on va prendre une question.
10:39On est un peu à la bourre,
10:40mais bon.
10:41comme d'hab.
10:47Petite question.
10:50Est-ce que tu as pensé,
10:51par exemple,
10:52à la fonctionnalité
10:53AdPath
10:53de BGP,
10:54justement,
10:55parce qu'au lieu d'implémenter,
10:56BMP résout plus de problématiques,
10:59mais AdPath plus,
11:02la majorité des gros constructeurs
11:04supportent ça.
11:05Et aussi,
11:07l'usage des communautés,
11:08parce que les gens qui,
11:09tu reject tes routes en entrée,
11:11la majorité des routeurs
11:12les suppriment en RIB,
11:13pardon,
11:14en FIB,
11:14mais les suppriment pas en RIB.
11:15donc tu peux très bien
11:16les réexporter.
11:17Il suffit juste que ton desktop
11:18soit pas bon,
11:20mais deux fonctionnalités
11:21qui permettraient
11:22de pallier à BMP
11:24pour ceux qui ne peuvent pas
11:25implémenter BMP.
11:26C'est une très bonne question.
11:30Donc,
11:30effectivement,
11:31alors,
11:32globalement,
11:32on a fait pas mal de tests.
11:33BMP,
11:34c'est quand même assez bien supporté.
11:35C'est juste que chacun
11:36a un peu son implème,
11:37etc.
11:38Donc,
11:38c'est vrai que je suis d'accord
11:39là-dessus sur ce point
11:40que c'est encore une nouvelle
11:41technologie,
11:42etc.
11:43Par rapport à AdPath,
11:44alors,
11:45malheureusement,
11:45j'avais 10 minutes,
11:46donc je n'ai pas pu rentrer
11:47là-dedans,
11:48mais c'est une très bonne question.
11:49C'est une très bonne remarque.
11:50En fait,
11:50le problème de AdPath,
11:51c'est qu'on peut voir
11:52les routes alternatives.
11:55Le problème,
11:55c'est qu'on ne sait pas précisément
11:56de quel peer elles proviennent.
11:59Et ça,
11:59c'est un problème,
12:00par exemple,
12:01pour des chercheurs
12:02ou pour des opérateurs,
12:02c'est que quand on a des données,
12:04ce qui est bien,
12:05c'est de savoir exactement
12:06de quel peer
12:07ces données proviennent.
12:08On a cette information
12:09avec BMP,
12:10on peut exactement dire
12:11cette route provient
12:12de cette peer.
12:13Avec BGP AdPath,
12:15ce n'est pas forcément le cas.
12:16Et c'est pour ça qu'aujourd'hui,
12:17on pourrait supporter AdPath,
12:18mais on ne le fait pas
12:19pour cette raison.
12:20On préfère BMP
12:21pour savoir exactement
12:22d'où viennent les données
12:23et d'avoir un dataset
12:24qui est accurate.
12:25Voilà.
12:27Merci.
12:29N'hésitez pas,
12:30il sera à la pause.
12:32Donc,
12:32n'hésitez pas à le recontacter.
12:33Merci.
12:37Merci.