Point d'échange de trafic: des débuts à la création de votre propre IX



"Nous avons établi une connexion téléphonique entre nous et les gars du SRI ...", a déclaré Kleinrock dans une interview:
"Nous avons tapé le L et nous avons demandé au téléphone," Voyez-vous le L? ""
"Oui, nous voyons le L", répondit la réponse.
"Nous avons tapé le O, et nous avons demandé:" Voyez-vous le O. ""
"Oui, nous voyons le O."
"Ensuite, nous avons tapé le G, et le systÚme s'est écrasé" ...

Pourtant, une révolution avait commencé ...

Le début d'Internet.

Bonjour Ă  tous!

Je m'appelle Alexander, je suis ingénieur réseau chez Linxdatacenter. Dans l'article d'aujourd'hui, nous parlerons des points d'échange de trafic (Internet Exchange Point, IXP): ce qui a précédé leur apparition, quelles tùches ils résolvent et comment ils sont construits. Dans cet article, je vais également montrer comment fonctionne IXP à l'aide de la plate-forme EVE-NG et du routeur logiciel BIRD, afin que vous puissiez comprendre comment il fonctionne «sous le capot».

Un peu d'histoire


Si vous regardez ici , vous pouvez voir que la croissance rapide du nombre de points d'Ă©change de trafic a commencĂ© en 1993. Cela est dĂ» au fait que la majeure partie du trafic des opĂ©rateurs de tĂ©lĂ©communications existant Ă  l'Ă©poque passait par le rĂ©seau fĂ©dĂ©rateur amĂ©ricain. Ainsi, par exemple, lorsque le trafic est passĂ© de l'opĂ©rateur en France Ă  l'opĂ©rateur en Allemagne, il est d'abord venu de la France vers les États-Unis, puis seulement des États-Unis vers l'Allemagne. Dans ce cas, le rĂ©seau fĂ©dĂ©rateur faisait office de transit entre la France et l'Allemagne. MĂȘme le trafic Ă  l'intĂ©rieur d'un pays passait souvent non directement, mais Ă  travers les principaux rĂ©seaux d'opĂ©rateurs amĂ©ricains.

Cet état de choses a affecté non seulement le coût de livraison du trafic de transit, mais aussi la qualité des canaux et le retard. Le nombre d'utilisateurs d'Internet a augmenté, de nouveaux opérateurs sont apparus, le volume de trafic a augmenté, Internet a augmenté. Les opérateurs du monde entier ont commencé à réaliser qu'une approche plus rationnelle de l'organisation de l'interaction inter-opérateurs était nécessaire. "Pourquoi devrais-je, l'opérateur A, payer le transit à travers un autre pays afin de livrer le trafic à l'opérateur B, qui est situé dans une rue voisine?" Quelque chose comme ça a été demandé par les opérateurs de télécommunications à l'époque. Ainsi, dans différentes parties du monde, des points d'échange de trafic ont commencé à apparaßtre aux points de concentration des opérateurs:

  • 1994 - LINX Ă  Londres,
  • 1995 - DE-CIX Ă  Francfort,
  • 1995 - MSK-IX, Ă  Moscou, etc.

Internet et aujourd'hui


Conceptuellement, l'architecture de l'Internet moderne est un ensemble de systÚmes autonomes (systÚmes autonomes, AS) et de nombreuses connexions entre eux, à la fois physiques et logiques, qui déterminent le chemin du trafic d'un AS à un autre.

Les AS sont généralement des opérateurs de télécommunications, des fournisseurs d'accÚs Internet, des CDN, des centres de données, des entreprises du segment des entreprises. Les AS organisent le peering entre eux, en rÚgle générale, en utilisant le protocole BGP.

La façon dont les systÚmes autonomes organisent ces relations est déterminée par un certain nombre de facteurs:

  • gĂ©ographique
  • Ă©conomique
  • politique
  • les accords et les intĂ©rĂȘts communs entre les propriĂ©taires de SA,
  • etc.

Bien sĂ»r, dans ce schĂ©ma, il existe une certaine structure et une certaine hiĂ©rarchie. Ainsi, les opĂ©rateurs sont divisĂ©s en niveaux 1, 2 et 3, et si les clients du fournisseur Internet local (niveau 3) sont gĂ©nĂ©ralement des utilisateurs ordinaires, alors, par exemple, pour les opĂ©rateurs de niveau 1 d'autres opĂ©rateurs. Les opĂ©rateurs de niveau 3 agrĂ©gent le trafic de leurs abonnĂ©s sur eux-mĂȘmes, les opĂ©rateurs de tĂ©lĂ©communications de niveau 2, Ă  leur tour, agrĂ©gent le trafic des opĂ©rateurs de niveau 3 et de niveau 1 - tout le trafic Internet.

SchĂ©matiquement, cela peut ĂȘtre reprĂ©sentĂ© comme suit:


Sur cette image, vous pouvez voir que le trafic est agrégé de bas en haut, c'est-à-dire des utilisateurs finaux aux opérateurs de niveau 1. Il existe également un échange de trafic horizontal entre les AS à peu prÚs équivalents les uns aux autres.

Une partie intĂ©grante et en mĂȘme temps un inconvĂ©nient de ce schĂ©ma est un certain dĂ©sordre de connexions entre des systĂšmes autonomes situĂ©s plus prĂšs de l'utilisateur final, dans la zone gĂ©ographique. ConsidĂ©rez l'image ci-dessous:



Supposons que dans une grande ville il y ait 5 opérateurs de communication, qui se scrutent entre lesquels, pour une raison ou une autre, sont organisés comme indiqué ci-dessus.
Si l'utilisateur Petya, connecté au fournisseur Internet Go, veut avoir accÚs au serveur connecté au fournisseur ASM, alors le trafic entre eux sera obligé de passer par 5 systÚmes autonomes. Cela augmente le délai, car augmenter le nombre de périphériques réseau à travers lesquels le trafic passera, ainsi que la quantité de trafic de transit sur les systÚmes autonomes entre Go et ASM.
Comment réduire le nombre d'AS de transit obligés de passer le trafic? C'est vrai - un point d'échange de trafic.

De nos jours, l'apparition de nouveaux IXP est due aux mĂȘmes besoins qu'au dĂ©but des annĂ©es 90-2000, mais Ă  plus petite Ă©chelle, en rĂ©ponse au nombre croissant d'opĂ©rateurs de tĂ©lĂ©communications, d'utilisateurs et de trafic, Ă  la quantitĂ© croissante de contenu gĂ©nĂ©rĂ© par les rĂ©seaux CDN. et centres de donnĂ©es.

Qu'est-ce qu'un point d'Ă©change de trafic?


Un point d'Ă©change de trafic est un endroit dotĂ© d'une infrastructure de rĂ©seau spĂ©ciale oĂč les participants intĂ©ressĂ©s par l'Ă©change de trafic mutuel organisent des Ă©changes mutuels. Les principaux acteurs des points d'Ă©change de trafic: opĂ©rateurs tĂ©lĂ©coms, fournisseurs d'accĂšs Internet, fournisseurs de contenu et centres de donnĂ©es. Aux points d'Ă©change de trafic, les participants sont directement connectĂ©s les uns aux autres. Cela vous permet de rĂ©soudre les problĂšmes suivants:

  • rĂ©duire le retard
  • rĂ©duire le trafic de transit,
  • Optimisez le routage entre les AS.

Étant donnĂ© que les IXP sont prĂ©sents dans de nombreuses grandes villes du monde, tout cela affecte favorablement Internet dans son ensemble.

Si la situation décrite ci-dessus avec Petya est résolue avec l'aide d'IXP, cela se traduira par quelque chose comme ceci:



Comment est organisé le point d'échange de trafic?


En rÚgle générale, IXP est un AS séparé avec son propre bloc d'adresses IPv4 / IPv6 publiques.

Le rĂ©seau IXP est le plus souvent un domaine L2 continu. Parfois, c'est juste un VLAN qui hĂ©berge tous les clients IXP. En ce qui concerne les IXP plus grands et gĂ©ographiquement distribuĂ©s, des technologies telles que MPLS, VXLAN, etc. peuvent ĂȘtre utilisĂ©es pour organiser le domaine L2.

ÉlĂ©ments IXP


  • SCS. Il n'y a rien d'inhabituel ici: racks, optiques cross-country, panneaux de brassage.
  • Les commutateurs sont le fondement d'IXP. Le port du commutateur est le point d'entrĂ©e du rĂ©seau IXP. Les commutateurs remplissent Ă©galement une partie des fonctions de sĂ©curitĂ© - filtrent le trafic indĂ©sirable qui ne devrait pas ĂȘtre prĂ©sent sur le rĂ©seau IXP. En rĂšgle gĂ©nĂ©rale, les commutateurs sont sĂ©lectionnĂ©s en fonction des exigences fonctionnelles - fiabilitĂ©, vitesse de port prise en charge, fonctionnalitĂ©s de sĂ©curitĂ©, prise en charge sFlow, etc.
  • Le serveur de routage (RS) fait partie intĂ©grante et nĂ©cessaire de tout point d'Ă©change de trafic moderne. Il fonctionne trĂšs bien comme un rĂ©flecteur de route dans iBGP ou un routeur dĂ©signĂ© dans OSPF et rĂ©sout les mĂȘmes problĂšmes. À mesure que le nombre de participants dans un point d'Ă©change de trafic augmente, le nombre de sessions BGP augmente, que chaque participant doit prendre en charge, c'est-Ă -dire il ressemble Ă  la topologie classique Ă  maillage complet dans iBGP. RS rĂ©sout le problĂšme comme suit: Ă©tablit une session BGP avec chaque participant IXP intĂ©ressĂ©, et il devient client de RS. En acceptant une mise Ă  jour BGP de l'un de ses clients, RS envoie cette mise Ă  jour Ă  tous ses autres clients, bien sĂ»r, Ă  l'exception de celui Ă  partir duquel cette mise Ă  jour a Ă©tĂ© reçue. Ainsi, RS Ă©limine le besoin d'installer un maillage complet entre tous les participants IXP et rĂ©sout avec Ă©lĂ©gance le problĂšme d'Ă©volutivitĂ©. Il convient de noter que le serveur de routage transfĂšre de maniĂšre transparente les routes d'un AS Ă  un autre, sans apporter de modifications aux attributs BGP transmis, par exemple, n'ajoute pas de numĂ©ro dans son AS au chemin AS. De plus, le filtrage de base des routes se produit sur RS: par exemple, RS n'accepte pas les rĂ©seaux martiens et les prĂ©fixes IXP.

    Un routeur logiciel open source, BIRD (bird internet routing daemon), est souvent utilisĂ© comme solution de serveur de routage. Il est bon car il est gratuit, rapidement dĂ©ployĂ© sur la plupart des distributions Linux, dispose d'un mĂ©canisme flexible pour dĂ©finir des politiques de routage / filtrage et ne demande pas de ressources informatiques. De plus, le routeur matĂ©riel / virtuel de Cisco, Juniper, etc. peut ĂȘtre sĂ©lectionnĂ© comme RS.
  • La sĂ©curitĂ© Le rĂ©seau IXP Ă©tant une concentration d'un grand nombre d'AS, la politique de sĂ©curitĂ© que tous les participants doivent suivre doit ĂȘtre bien dĂ©finie. En rĂšgle gĂ©nĂ©rale, les mĂȘmes mĂ©canismes qui sont utilisĂ©s pour Ă©tablir un voisinage BGP entre deux homologues BGP distincts en dehors d'IXP sont appliquĂ©s ici, ainsi que certaines fonctionnalitĂ©s de sĂ©curitĂ© supplĂ©mentaires.

    Par exemple, il est recommandĂ© d'autoriser uniquement le trafic provenant d'une adresse MAC IXP spĂ©cifique, qui est nĂ©gociĂ©e Ă  l'avance. Refuser le trafic avec des champs de type Ă©ther autres que 0x0800 (IPv4), 0x08dd (IPv6), 0x0806 (ARP); ceci est fait afin de filtrer le trafic qui n'a pas de place pour le peering BGP. Des mĂ©canismes tels que GTSM, RPKI, etc. peuvent Ă©galement ĂȘtre utilisĂ©s.

Peut-ĂȘtre que ce qui prĂ©cĂšde sont les principaux composants de tout IXP, quelle que soit son Ă©chelle. Bien sĂ»r, les grands IXP peuvent utiliser des technologies et des solutions supplĂ©mentaires.
Il arrive que IXP offre également à ses membres des services supplémentaires:

  • hĂ©bergĂ© sur le serveur DNS IXP TLD,
  • Installer des serveurs NTP matĂ©riels, permettant aux participants de synchroniser prĂ©cisĂ©ment l'heure,
  • fournir une protection contre les attaques DDoS, etc.

Principe de fonctionnement


Nous analyserons le principe de fonctionnement d'un point d'échange de trafic en utilisant l'IXP le plus simple simulé par EVE-NG comme exemple, puis nous considérerons la configuration de base du routeur logiciel BIRD. Pour simplifier le schéma, nous omettons des éléments importants tels que la redondance et la tolérance aux pannes.

La topologie du réseau est illustrée dans la figure ci-dessous.



Supposons que nous administrions un petit point d'Ă©change de trafic et fournissions les options d'appairage suivantes:

  • peering public
  • peering privĂ©
  • peering via le serveur de routage.

Notre numéro AS est 555, nous possédons un bloc d'adresse IPv4 - 50.50.50.0/24, à partir duquel nous émettons des adresses IP, pour ceux qui veulent se connecter à notre réseau.

50.50.50.254 - L'adresse IP configurée sur l'interface du serveur de routage, avec cette adresse IP, les clients établiront une session BGP en cas d'appairage via RS.

Également pour le peering via RS, nous avons dĂ©veloppĂ© la politique de routage la plus simple basĂ©e sur la communautĂ© BGP, qui permet aux participants IXP de rĂ©glementer Ă  qui et quelles routes envoyer:
Communauté BGPLa description
LOCAL_AS: PEER_ASNe passer que les préfixes PEER_AS
LOCAL_AS: IXP_ASPasser des préfixes à tous les membres IXP

3 clients souhaitent se connecter et Ă©changer du trafic avec notre IXP; disons que ce sont des fournisseurs Internet. Ils veulent tous organiser le peering via le serveur de routage. Voici un diagramme avec les paramĂštres de connexion client:
ClientNuméro AS clientPréfixes annoncés par le clientadresse IP délivrée au client pour se connecter à IXP
FAI # 1AS 1001.1.0.0/1650.50.50.10/24
FAI # 2AS 2002.2.0.0/1650.50.50.20/24
FAI # 3AS 3003.3.0.0/1650.50.50.30/24

Configuration BGP de base sur un routeur client:


router bgp 100 no bgp enforce-first-as bgp log-neighbor-changes neighbor 50.50.50.254 remote-as 555 address-family ipv4 network 1.1.0.0 mask 255.255.0.0 neighbor 50.50.50.254 activate neighbor 50.50.50.254 send-community both neighbor 50.50.50.254 soft-reconfiguration inbound neighbor 50.50.50.254 route-map ixp-out out exit-address-family ip prefix-list as100-prefixes seq 5 permit 1.1.0.0/16 route-map bgp-out permit 10 match ip address prefix-list as100-prefixes set community 555:555 

Le paramÚtre ici n'est pas bgp enforce-first-as. Par défaut, BGP requiert que le numéro as bgp de l'homologue à partir duquel cette mise à jour a été reçue soit présent dans le chemin as de la mise à jour BGP reçue. Mais comme le serveur de routage n'apporte pas de modifications à as-path, son numéro sera absent de as-path et la mise à jour sera rejetée. Ce paramÚtre est utilisé pour que le routeur ignore cette rÚgle.

Nous voyons également que le client a installé la communauté bgp 555: 555 sur ce préfixe, ce qui, selon notre politique, signifie que le client souhaite annoncer ce préfixe à tous les autres participants.

Pour les routeurs d'autres clients, le paramĂštre sera similaire, Ă  l'exception de leurs paramĂštres uniques.

Exemple de configuration BIRD:


 define ixp_as = 555; define ixp_prefixes = [ 50.50.50.0/24+ ]; template bgp RS_CLIENT { local as ixp_as; rs client; } 

Ce qui suit dĂ©crit un filtre qui n'accepte pas les prĂ©fixes martiens, ainsi que les prĂ©fixes IXP lui-mĂȘme:

 function catch_martians_and_ixp() prefix set martians; prefix set ixp_prefixes; { martians = [ 0.0.0.0/8+, 10.0.0.0/8+, 100.64.0.0/10+, 127.0.0.0/8+, 169.254.0.0/16+, 172.16.0.0/12+, 192.0.0.0/24+, 192.0.2.0/24+, 192.168.0.0/16+, 198.18.0.0/15+, 198.51.100.0/24+, 203.0.113.0/24+, 224.0.0.0/4+, 240.0.0.0/4+ ]; if net ~ martians || net ~ ixp_prefixes then return false; return true; } 

Cette fonction implémente la politique de routage que nous avons décrite précédemment.

 function bgp_ixp_policy(int peer_as) { if (ixp_as, ixp_as) ~ bgp_community then return true; if (ixp_as, peer_as) ~ bgp_community then return true; return false; } filter reject_martians_and_ixp { if catch_martians_and_ixp() then reject; if ( net ~ [0.0.0.0/0{25,32} ] ) then { reject; } accept; } 

Nous configurons l'homologation, appliquons des filtres et des politiques appropriés.

 protocol as_100 from RS_CLIENT { neighbor 50.50.50.10 as 100; ipv4 { export where bgp_ixp_policy(100); import filter reject_martians_and_ixp; } } protocol as_200 from RS_CLIENT { neighbor 50.50.50.20 as 200; ipv4 { export where bgp_ixp_policy(200); import filter reject_martians_and_ixp; } } protocol as_300 from RS_CLIENT { neighbor 50.50.50.30 as 300; ipv4 { export where bgp_ixp_policy(300); import filter reject_martians_and_ixp; } } 

Il convient de noter que sur le serveur de routage, il est bon d'ajouter des itinéraires de différents homologues à différents RIB. BIRD vous permet de le faire. Dans notre exemple, par souci de simplicité, toutes les mises à jour reçues de tous les clients sont ajoutées à un RIB commun.

Alors, vérifions ce que nous avons.

Sur le serveur de routage, nous voyons qu'avec les trois clients, une session BGP est installée:



Nous constatons que nous recevons des préfixes de tous les clients:



Sur le routeur as 100, nous voyons que s'il n'y a qu'une seule session BGP avec le serveur de routage, nous obtenons des préfixes à la fois 200 et 300, tandis que les attributs BGP n'ont pas changé, comme si le peering entre les clients était effectué directement:



Ainsi, on voit que la présence d'un serveur de routage simplifie grandement l'organisation du peering sur IXP.

J'espÚre que cette démonstration vous a aidé à mieux comprendre comment les points d'échange de trafic sont organisés et comment le serveur de routage sur IXP est implémenté.

Linxdatacenter ix


Chez Linxdatacenter, nous avons construit notre propre IXP basé sur une infrastructure à tolérance de pannes de 2 commutateurs et 2 serveurs de routage. Maintenant, notre IXP est lancé en mode test, et nous invitons tout le monde à se connecter à Linxdatacenter IX et à participer aux tests. Lors de la connexion, vous disposerez d'un port avec une bande passante de 1 Gbit / s, la possibilité de regarder à travers nos serveurs de route, ainsi que l'accÚs au compte personnel du portail IX, disponible sur ix.linxdatacenter.com .

Écrivez des commentaires ou des messages privĂ©s pour accĂ©der aux tests.

Conclusion


Les points d'échange de trafic sont apparus à l'aube d'Internet comme un outil pour résoudre le problÚme du flux de trafic non optimal entre les opérateurs de télécommunications. Désormais, avec l'avÚnement de nouveaux services mondiaux et l'augmentation du trafic CDN, les points d'échange continuent également d'optimiser le fonctionnement du réseau mondial. L'augmentation du nombre d'IXP dans le monde est bénéfique tant pour l'utilisateur final du service que pour les opérateurs télécoms, les opérateurs de contenu, etc. Pour les participants IXP, l'avantage s'exprime par une réduction du coût d'organisation des services peer-to-peer externes, une réduction de la quantité de trafic qui coûte plus cher aux opérateurs, l'optimisation du routage et la possibilité d'avoir une interface directe avec les opérateurs de contenu.

Liens utiles


Source: https://habr.com/ru/post/fr478832/


All Articles