• avant-hier
FRnOG 41 - Andrey Slastenov : eBPF in modern networks

Catégorie

🤖
Technologie
Transcription
00:00Bonjour à tous, je comprends que tout le monde est déjà fatigué
00:06donc je vais essayer d'être assez rapide avec ma présentation
00:11Je m'appelle André Slastono et aujourd'hui nous allons parler de l'EBPF dans les réseaux modernes
00:19à partir de la perspective de notre expérience
00:25Parce que c'est la première fois que nous nous rencontrons, je vais m'introduire
00:29Je suis le manager de produits de sécurité à G-Core
00:32J'ai plus de 25 ans d'expérience dans l'industrie de la télécom
00:38J'ai beaucoup d'expertise dans les réseaux, les employés et les solutions de sécurité
00:47Pour commencer à parler de l'EBPF
00:56D'abord, nous allons parler un peu de l'évolution de la réseau G-Core et des défis que nous avons rencontrés
01:02et comment nous sommes arrivés à la solution d'EBPF, comment nous l'utilisons pour notre réseau
01:07Au début, G-Core était un fournisseur CDN
01:13plus tard, nous avons apporté de plus en plus de services, hostings, cloud, AI et streaming
01:22et dès que nous avons apporté les services hostings et cloud, nous avons rencontré des attaques de DDoS très volumétriques et intensives
01:31Pour vous donner une idée de la magnitude de ces attaques
01:39il y a les plus récentes données de notre réseau pour les dernières années
01:48Comme vous pouvez le voir, la taille des attaques de DDoS est en train de grandir
01:54et le nombre d'attaques de DDoS est aussi en train de grandir
01:59A ce stade, nous avons décidé de construire un système de protection contre le DDoS
02:10et comme je pense que beaucoup de compagnies qui commencent à se battre contre le DDoS, nous commençons avec une solution très simple
02:20Au début, nous avons commencé avec l'RTBH et plus tard, nous avons adopté la solution FlowSpec
02:29et ces solutions ont résolu nos problèmes avec l'infrastructure
02:35Nous avons donc effectivement mitigé les attaques de DDoS
02:40Blackhole, nos clients, ou Great Limit, nos clients, mais malheureusement, nos clients n'étaient pas très heureux avec cela
02:50Alors, bien sûr, nous avons commencé à chercher des solutions plus intelligentes qui nous aident à filtrer les attaques de DDoS
03:06Nous avons donc essayé plusieurs vendeurs de sortes de parties et après cela, nous avons rencontré un autre problème
03:15et c'est que malheureusement, dans les circonstances actuelles, la capacité d'un centre de données n'est pas assez pour filtrer les attaques de DDoS modernes
03:27Donc, lorsque vous rencontrez des attaques de DDoS sur plusieurs terabits par seconde, les attaques de DDoS n'arrêtent pas vos uplinks et le trafic n'arrive même pas à votre centre de données pour être filtré
03:40Donc, à ce point, nous comprenons que la solution doit être distribuée et doit être assez résiliente
03:48Un autre problème que nous avons rencontré, c'est que les attaques de DDoS se développent chaque année, nous devons donc beaucoup investir dans notre infrastructure de protection de DDoS
03:58Nous devons donc acheter de nouvelles applications, nous devons acheter de nouvelles licences, et oui, c'est assez cher
04:08Pour conclure, à ce point, nous comprenons que nous avons besoin d'une solution distribuée de haute performance, que nous pouvons utiliser comme infrastructure de protection de DDoS
04:25Et en fait, dans notre réseau, nous trouvons cette infrastructure qui est très distribuée, qui est très performante, et qui peut être reutilisée pour la protection de DDoS
04:39Et bien sûr, parce que cette infrastructure a déjà été construite, notre réseau CDN était presque gratuit
04:48Et si vous regardez les modèles de trafics pour le CDN, la plupart du trafic vient du CDN Network, parce que les utilisateurs viennent pour les ressources du CDN Network
04:58Donc, ils téléchargent quelque chose, et le trafic d'entrée est assez petit
05:03Donc, nous avons assez de capacité, nous avons une infrastructure distribuée, et nous commençons à travailler sur la solution de protection de DDoS
05:13Donc, malheureusement, à ce moment-là, il n'y avait pas de solution 3 parties qui pouvait être facilement intégrée dans notre CDN Network, dans notre infrastructure CDN
05:22C'est pourquoi nous avons décidé de construire quelque chose de notre propre, et de construire notre solution en maison
05:29Donc, nous avons trois options pour construire la solution qui peut filtrer le trafic à ce moment-là
05:37La première, c'est un filtrage Linux natif, avec des outils Linux standard, avec des tables IP et des tables NF
05:46À l'initiative, nous avons quitté cela, parce que la performance était assez faible
05:55C'était 1 ou 2 millions de paquets par seconde à ce moment-là, et ce n'était pas adéquat pour la protection de DDoS efficace
06:04La prochaine solution était très adoptée dans l'industrie, il y avait beaucoup de solutions de protection de DDoS, et beaucoup de produits ont été construits sur ce cadre
06:14DPDK, par exemple, T-Rex, les générateurs de trafic construits sur le DPDK, OVS, Switch, construits sur la solution DPDK
06:25Mais malheureusement, c'était une performance élevée, mais cela fonctionnait plutôt mal dans l'environnement mixé
06:33Donc, quand vous avez besoin d'avoir sur le même node la solution de filtration et, par exemple, le CDN en même temps
06:43Parce que pour le DPDK, vous avez besoin d'allocuer les nodes CPU, et vous ne pouvez pas partager les nodes CPU avec d'autres applications
06:57Et enfin, il y avait une nouvelle solution d'EBPF, qui n'était pas aussi efficace que le DPDK
07:05Mais c'était une partie du kernel Linux, c'était facilement intégré, et c'est quelque chose que nous choisissons d'intégrer avec notre réseau CDN
07:16Et les premiers résultats de nos tests que nous conduisons
07:23Le premier test, le premier contre-measurement que nous avons fait, c'était la filtration TCP
07:31Donc, nous filtrons simplement le trafic TCP en basant sur la combinaison des différentes flèches
07:38Et pour la configuration de deux XEON Intel, la troisième génération de XEON
07:46Nous avons atteint leur performance de 144 millions de paquets par seconde
07:53Et c'était impressionnant pour nous, donc nous avons décidé de passer plus loin et de développer d'autres contre-measures en utilisant la solution d'EBPF
08:03Nous avons donc construit beaucoup de contre-measures, TCP, GOIP, des limites de prix
08:13Mais enfin, il y avait une manque de flexibilité dans notre solution
08:20Notre solution était basée sur les parseurs de paquets
08:25Donc, il y avait les contre-measures qui processaient le trafic et le filtraient en basant sur des filtres en écrit
08:36Et malheureusement, cela nécessitait des travaux de programmation de notre équipe de développement
08:43Et nous ne pouvions pas adopter le trafic très rapidement
08:47Donc, nous avons décidé d'intégrer la solution d'EBPF avec HyperScan
08:55HyperScan est une librairie d'expression régulière de haute performance développée par l'Intel
09:04Et qui peut procéder aux données avec des expressions régulières très rapidement
09:14En intégrant ces deux composants, EBPF et HyperScan, nous avons résolu deux problèmes
09:19La première, c'est la réaction à l'attaque
09:21Nous avons un système analytique qui peut analyser le trafic, trouver des pattes d'attaque
09:28Construire l'expression régulière qui peut bloquer une certaine attaque
09:35Et appliquer automatiquement cette expression régulière à notre système de filtrage
09:40Une autre façon d'utiliser cette intégration, c'est l'application de la filtration
09:47Nous pouvons utiliser l'expression régulière pour vérifier les paquets jusqu'à la couche 7
09:54Et pour certaines applications, nous pouvons très facilement prototyper les nouvelles mesures contre
10:00Ou pour certaines applications avec des outils analytiques automatiques
10:04Et construire les expressions régulières qui passent seulement le trafic d'application et bloquent le reste du trafic
10:12C'est aussi très efficace
10:18Et voici les résultats de la performance
10:21Nous avons fait deux types de tests
10:26Le premier, lorsque nous passons le trafic par les expressions régulières
10:32Et finalement, nous arrêtons le trafic parce qu'il n'y avait pas grand chose dans les expressions régulières
10:39Et le deuxième, c'est lorsque nous générons le trafic qui correspond à l'expression régulière
10:46Dans ces tests de performance, ils sont assez compliqués
10:51La raison pour laquelle c'est que la performance dépend énormément de l'expression régulière
10:56Et aussi de l'optimisation qui est faite par HyperScanLibrary
11:05Parce qu'ils compilent ces règles de l'expression régulière dans le code
11:11Enfin, ce que nous avons fait, c'est d'obtenir l'un des clients en vie
11:17Et les expressions régulières que nous utilisons pour ce client pour faire ces tests de performance
11:22C'est un test de performance plus proche du cas réel qu'un test synthétique
11:30Dans les deux cas, nous avons obtenu environ 100 millions de paquets par seconde de capacité de filtrage
11:43Après avoir développé cette intégration entre HyperScan et eBPF, nous avons décidé de la partager avec la communauté
11:53Si vous voulez construire votre propre système DPI basé sur les expressions régulières
12:01Voici le modèle Linux-Regex qui peut coller eBPF et HyperScan ensemble
12:08Vous pouvez donc appeler la librairie HyperScan d'eBPF
12:13Et la dernière chose, comme je l'ai dit avant, nous avons décidé d'utiliser notre infrastructure CDN pour nettoyer le trafic
12:24Et un autre problème s'est évoqué
12:27Le problème était que nous devions délivrer le trafic de la CDN, qui est un réseau mondial, à la destination finale, au réseau client ou à nos centres de données
12:39Et nous avons résolu ce problème avec eBPF aussi
12:42Ce que nous avons fait avec eBPF, c'est qu'après avoir processé le trafic sur nos notes clientes, sur notre code client
12:54Nous avons ajouté le header GRE sur le trafic et l'a envoyé à la destination finale
13:00Ce qui est plus intéressant ici, c'est que nous pouvons facilement supprimer l'adresse IP de source de ce trafic GRE
13:08Ce qui signifie que pour le client, virtuellement, le trafic ressemble à l'adresse IP de source
13:16Dans ce cas particulier, le client a simplement créé le tunnel GRE, éteint le keepalives et a mis l'adresse IP de destination, l'adresse IP virtuelle de notre header GRE
13:36Pour conclure, d'abord, la protection de DDoS a besoin d'une haute scalabilité
13:45Parce que même si vous avez la solution la plus efficace, si vous ne pouvez pas la scaler, dans la plupart des cas, c'est inutile
13:54Deuxièmement, vous pouvez construire votre propre protection de DDoS, si vous êtes plus ou moins familier avec l'eBPF Stack
14:02Surtout dans les cas où vous avez besoin de protéger une application spécifique, vous pouvez facilement construire la filtration vous-même
14:12Et bien sûr, vous pouvez utiliser notre intégration avec le Hyperscan pour la rendre plus flexible
14:20Et bien sûr, la globalisation
14:23Donc, vous devez optimiser le trafic, vous devez conduire le trafic entre vos centres de données, entre vos appareils de nettoyage
14:33Pour effectivement protéger vos réseaux de DDoS
14:38Donc, je pense que c'est tout
14:42C'est la dernière slide
14:45Je veux juste souligner qu'on travaille actuellement sur l'intégration AI
14:51Et c'est une solution assez compliquée
14:55La raison, c'est que si vous voulez utiliser l'AI, vous ne pouvez pas l'utiliser en temps réel
15:01Parce que vous ne pouvez pas juste envoyer des centaines de gigabits par seconde de trafic à l'AI
15:06Et attendre qu'elle le processe sur la ligne
15:10Donc, je pense que c'est le sujet pour la prochaine présentation
15:14De moi, plus tard
15:17Merci beaucoup pour votre temps

Recommandations