
« Nous avons établi une liaison 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 : « Vous voyez le L ? »
« Oui, nous voyons le L », fut 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 a plantĂ© »...Et pourtant, une rĂ©volution avait commencĂ©âŠ
Le début d'Internet.
Bonjour Ă tous!
Je m'appelle Alexander et je suis ingénieur réseau chez Linxdatacenter. Dans l'article d'aujourd'hui, je parlerai des points d'échange Internet (IXP) : leurs origines, les tùches qu'ils accomplissent et leur conception. Je vous montrerai également le fonctionnement d'un IXP grùce à la plateforme EVE-NG et au routeur logiciel BIRD, afin que vous puissiez comprendre son fonctionnement interne.
Un peu d'histoire
Si vous regardez , on constate que la croissance rapide du nombre de points d'Ă©change de trafic a dĂ©butĂ© en 1993. Cela s'explique par le fait que la majeure partie du trafic des opĂ©rateurs tĂ©lĂ©coms de l'Ă©poque transitait par le rĂ©seau dorsal amĂ©ricain. Par exemple, lorsque le trafic passait d'un opĂ©rateur français Ă un opĂ©rateur allemand, il allait d'abord de la France vers les Ătats-Unis, puis seulement des Ătats-Unis vers l'Allemagne. Le rĂ©seau dorsal servait alors de point de transit entre la France et l'Allemagne. MĂȘme le trafic intra-pays transitait souvent indirectement, via les rĂ©seaux dorsaux des opĂ©rateurs amĂ©ricains.
Cette situation a eu des rĂ©percussions non seulement sur le coĂ»t de l'acheminement du trafic de transit, mais aussi sur la qualitĂ© des canaux et la latence. Le nombre d'utilisateurs d'Internet augmentait, de nouveaux opĂ©rateurs Ă©mergeaient, le volume de trafic augmentait et Internet gagnait en maturitĂ©. Les opĂ©rateurs du monde entier ont commencĂ© Ă comprendre la nĂ©cessitĂ© d'une approche plus rationnelle de l'organisation des interactions entre opĂ©rateurs. « Pourquoi devrais-je, en tant qu'opĂ©rateur A, payer pour transiter par un autre pays afin d'acheminer du trafic vers l'opĂ©rateur B, situĂ© juste en face ? » C'Ă©tait en gros la question que se posaient les opĂ©rateurs de tĂ©lĂ©communications Ă l'Ă©poque. Ainsi, des points d'Ă©change de trafic ont commencĂ© Ă apparaĂźtre dans diverses rĂ©gions du monde, lĂ oĂč les opĂ©rateurs Ă©taient concentrĂ©s :
- 1994 â LINX Ă Londres,
- 1995 â DE-CIX Ă Francfort,
- 1995 â MSK-IX, Ă Moscou, etc.
Internet et le présent
Conceptuellement, lâarchitecture de lâInternet moderne est un ensemble de systĂšmes autonomes (AS) et un ensemble de connexions entre eux, Ă la fois physiques et logiques, qui dĂ©terminent le chemin du trafic dâun AS Ă un autre.
Les AS incluent généralement les opérateurs télécoms, les fournisseurs d'accÚs à Internet, les CDN, les centres de données et les grandes entreprises. Ils établissent généralement des relations d'appairage logique entre eux grùce au protocole BGP (Border Gateway Protocol).
La maniÚre dont les systÚmes autonomes organisent ces connexions est déterminée par un certain nombre de facteurs :
- géographique,
- économique,
- politique,
- accords et intĂ©rĂȘts communs entre les propriĂ©taires d'AS,
- etc.
Bien sûr, ce systÚme présente une certaine structure et une certaine hiérarchie. Les opérateurs sont répartis en trois catégories : Tier 1, Tier 2 et Tier 3. Alors que les clients d'un fournisseur d'accÚs Internet local (Tier 3) sont généralement des utilisateurs ordinaires, les clients des opérateurs de Tier 1 sont, par exemple, d'autres opérateurs. Les opérateurs de Tier 3 agrÚgent le trafic de leurs abonnés, les opérateurs de Tier 2 agrÚgent à leur tour le trafic des opérateurs de Tier 3, et les opérateurs de Tier 1 agrÚgent l'ensemble du trafic Internet.
SchĂ©matiquement, cela peut ĂȘtre reprĂ©sentĂ© ainsi :

Cette image montre 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 des AS d'importance à peu prÚs égale.
Un Ă©lĂ©ment essentiel et, en mĂȘme temps, un inconvĂ©nient de ce systĂšme rĂ©side dans la nature quelque peu dĂ©sorganisĂ©e des connexions entre les systĂšmes autonomes situĂ©s Ă proximitĂ© de l'utilisateur final au sein d'une mĂȘme zone gĂ©ographique. ConsidĂ©rez l'image ci-dessous :

Supposons que dans une grande ville il y ait 5 opérateurs de télécommunications, entre lesquels le peering, pour une raison ou une autre, est organisé comme indiqué ci-dessus.
Si l'utilisateur Petya, connecté au fournisseur d'accÚs Internet Go, souhaite accéder à un serveur connecté au fournisseur ASM, le trafic entre eux devra transiter par cinq systÚmes autonomes. Cela augmente la latence, car le nombre de périphériques réseau par lesquels le trafic doit transiter augmente, tout comme le volume de trafic transitant sur les systÚmes autonomes entre Go et ASM.
Comment réduire le nombre de points d'échange de trafic que le trafic doit traverser ? La solution est un point d'échange de trafic.
Aujourdâhui, lâĂ©mergence de nouveaux IXP est motivĂ©e par les mĂȘmes besoins quâau dĂ©but des annĂ©es 90 et 2000, mais Ă une Ă©chelle plus rĂ©duite, en rĂ©ponse au nombre croissant dâopĂ©rateurs tĂ©lĂ©coms, dâutilisateurs et de trafic, et Ă la quantitĂ© croissante de contenu gĂ©nĂ©rĂ© par les rĂ©seaux CDN et les centres de donnĂ©es.
Qu'est-ce qu'un point d'échange de trafic ?
Un point d'Ă©change de trafic (TIP) est un emplacement dotĂ© d'une infrastructure rĂ©seau dĂ©diĂ©e oĂč les parties intĂ©ressĂ©es par l'Ă©change de trafic Ă©tablissent des relations d'appairage. Les principaux acteurs des TIP sont les opĂ©rateurs tĂ©lĂ©coms, les fournisseurs d'accĂšs Ă Internet, les fournisseurs de contenu et les centres de donnĂ©es. Les parties se connectent directement entre elles grĂące Ă ces TIP. Cela permet d'accomplir les tĂąches suivantes :
- réduire la latence,
- réduire le volume du trafic de transit,
- optimiser le routage entre AS.
Ătant donnĂ© que les IXP sont prĂ©sents dans de nombreuses grandes villes du monde, cela a un effet positif sur Internet dans son ensemble.
Si nous résolvons la situation décrite ci-dessus avec Petya en utilisant IXP, cela ressemblera à ceci :

Comment fonctionne un point d'échange de trafic ?
En rĂšgle gĂ©nĂ©rale, un IXP est un AS distinct avec son propre bloc dâadresses IPv4/IPv6 publiques.
Un rĂ©seau IXP est gĂ©nĂ©ralement constituĂ© d'un seul domaine de couche 2. Il s'agit parfois simplement d'un VLAN contenant tous les clients IXP. Cependant, pour les IXP plus importants et gĂ©ographiquement dispersĂ©s, des technologies telles que MPLS, VXLAN et autres peuvent ĂȘtre utilisĂ©es pour organiser le domaine de couche 2.
ĂlĂ©ments IXP
- SKS. Il n'y a rien d'inhabituel ici : racks, croix optiques, panneaux de brassage.
- Commutateurs â la base d'un IXP. Un port de commutation constitue le point d'entrĂ©e du rĂ©seau IXP. Les commutateurs assurent Ă©galement des fonctions de sĂ©curitĂ©, filtrant le trafic indĂ©sirable qui ne devrait pas ĂȘtre prĂ©sent sur le rĂ©seau IXP. Les commutateurs sont gĂ©nĂ©ralement sĂ©lectionnĂ©s en fonction d'exigences fonctionnelles, telles que la fiabilitĂ©, les dĂ©bits de port pris en charge, les fonctionnalitĂ©s de sĂ©curitĂ©, la prise en charge de sFlow, etc.
- Serveur de routage (RS) Un RS est un composant essentiel et indispensable de tout point d'Ă©change de trafic moderne. Son principe de fonctionnement est trĂšs similaire Ă celui d'un rĂ©flecteur de route dans iBGP ou d'un routeur dĂ©signĂ© dans OSPF, et il rĂ©sout les mĂȘmes problĂšmes. Ă mesure que le nombre de participants au point d'Ă©change de trafic augmente, le nombre de sessions BGP que chaque participant doit prendre en charge augmente, ressemblant Ă une topologie en maillage complet classique dans iBGP. RS rĂ©sout ce problĂšme de la maniĂšre suivante : il Ă©tablit une session BGP avec chaque participant IXP intĂ©ressĂ©, et ce participant devient un client RS. DĂšs rĂ©ception d'une mise Ă jour BGP de l'un de ses clients, RS la distribue Ă tous ses autres clients, Ă l'exception, bien sĂ»r, de celui d'oĂč provient la mise Ă jour. Ainsi, RS Ă©limine la nĂ©cessitĂ© d'Ă©tablir un maillage complet entre tous les participants IXP et rĂ©sout avec Ă©lĂ©gance le problĂšme d'Ă©volutivitĂ©. Il est important de noter que le serveur de routes propage les routes de maniĂšre transparente d'un AS Ă l'autre, sans modifier les attributs BGP transmis ; par exemple, il n'ajoute pas son numĂ©ro d'AS au chemin d'accĂšs AS. RS effectue Ă©galement un filtrage de route de base : par exemple, RS n'accepte pas les rĂ©seaux martiens ou les prĂ©fixes de l'IXP lui-mĂȘme.
Le routeur logiciel open source BIRD (bird internet routing daemon) est souvent utilisé comme serveur de routage. Ses avantages incluent sa gratuité, sa rapidité de déploiement sur la plupart des distributions Linux, la flexibilité de configuration des politiques de routage/filtrage et sa faible consommation de ressources. Un routeur matériel ou virtuel de Cisco, Juniper ou d'autres fournisseurs similaires peut également servir de serveur de routage.
- SĂ©curitĂ©. Puisqu'un rĂ©seau IXP regroupe un grand nombre d'AS, la politique de sĂ©curitĂ© Ă laquelle tous les participants doivent se conformer doit ĂȘtre clairement dĂ©finie. GĂ©nĂ©ralement, les mĂȘmes mĂ©canismes que ceux utilisĂ©s pour Ă©tablir des relations de voisinage BGP entre deux homologues BGP distincts extĂ©rieurs Ă un IXP sont Ă©galement appliquĂ©s, avec quelques mesures de sĂ©curitĂ© supplĂ©mentaires.
Par exemple, une bonne pratique consiste Ă n'autoriser le trafic qu'en provenance d'une adresse MAC spĂ©cifique d'un membre IXP, nĂ©gociĂ©e au prĂ©alable. Il est Ă©galement recommandĂ© de refuser le trafic dont les champs ethertype sont autres que 0x0800 (IPv4), 0x08dd (IPv6) ou 0x0806 (ARP) ; cette mesure permet de filtrer le trafic non autorisĂ© par le peering BGP. Des mĂ©canismes tels que GTSM, RPKI et autres peuvent Ă©galement ĂȘtre utilisĂ©s.
Les éléments ci-dessus constituent sans doute les composants clés de tout IXP, quelle que soit sa taille. Bien entendu, les IXP de plus grande taille peuvent utiliser des technologies et des solutions supplémentaires.
Parfois, les IXP fournissent également à leurs membres des services supplémentaires :
- héberger des serveurs DNS sur les TLD IXP,
- installer des serveurs NTP matériels, permettant aux participants de synchroniser l'heure avec précision,
- fournir une protection contre les attaques DDoS, etc.
Comment ça marche?
Nous explorerons le principe de fonctionnement d'un point d'échange de trafic à l'aide d'un IXP simple modélisé avec EVE-NG, puis aborderons la configuration de base du routeur logiciel BIRD. Pour simplifier le schéma, nous omettrons des aspects 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 Internet et que nous fournissions les options de peering suivantes :
- peering public,
- peering privé,
- peering via serveur de route.
Notre numéro AS est 555, nous possédons un bloc d'adresses IPv4 - 50.50.50.0/24, à partir duquel nous émettons des adresses IP à ceux qui souhaitent se connecter à notre réseau.
50.50.50.254 â Adresse IP configurĂ©e sur l'interface du serveur de route ; les clients Ă©tabliront une session BGP avec cette IP en cas de peering via RS.
Nous avons également développé une politique de routage communautaire BGP simple pour le peering RS, qui permet aux participants IXP de contrÎler quelles routes sont envoyées à qui :
Communauté BGP
Description
LOCAL_AS:PEER_AS
Transmettre les préfixes uniquement à PEER_AS
LOCAL_AS:IXP_AS
Transférer les préfixes à tous les participants IXP
Trois clients, par exemple des fournisseurs d'accÚs à Internet, souhaitent se connecter à notre IXP et échanger du trafic. Ils souhaitent tous établir un peering via un serveur de routage. Le schéma ci-dessous illustre les paramÚtres de connexion des clients :
Client
Numéro AS du client
Préfixes annoncés par le client
Adresse IP attribuée au client pour la connexion à l'IXP
FAI n°1
AS 100
1.1.0.0/16
50.50.50.10/24
FAI n°2
AS 200
2.2.0.0/16
50.50.50.20/24
FAI n°3
AS 300
3.3.0.0/16
50.50.50.30/24
Configuration BGP de base sur le 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 « no bgp enforce-first-as » est important Ă noter. Par dĂ©faut, BGP exige que le chemin d'accĂšs d'une mise Ă jour BGP reçue inclue le numĂ©ro du chemin d'accĂšs du pair BGP d'oĂč provient la mise Ă jour. Cependant, comme le serveur de routage ne modifie pas le chemin d'accĂšs, son numĂ©ro sera absent et la mise Ă jour sera ignorĂ©e. Ce paramĂštre permet de forcer le routeur Ă ignorer cette rĂšgle.
Nous voyons également que le client a défini 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 des autres clients, la configuration 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 de l'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 le peering et 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 est important de noter qu'il est courant pour un serveur de routage de combiner les routes de différents homologues dans des RIB distincts. BIRD le permet. Dans notre exemple, par souci de simplicité, toutes les mises à jour reçues de tous les clients sont regroupées dans un seul RIB partagé.
Alors, vérifions ce que nous avons.
Sur le serveur de route, nous voyons quâune session BGP a Ă©tĂ© Ă©tablie avec les trois clients :

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

Sur le routeur 100, nous voyons qu'avec une seule session BGP avec le serveur de route, nous recevons des préfixes à la fois de 200 et de 300, alors que les attributs BGP n'ont pas changé, comme si le peering entre les clients était effectué directement :

Ainsi, nous voyons que la prĂ©sence dâun serveur de route simplifie considĂ©rablement lâorganisation du peering sur les IXP.
J'espÚre que cette démonstration vous a aidé à mieux comprendre le fonctionnement des IXP et le fonctionnement du serveur de route sur un IXP.
Linxdatacenter IX
Chez Linxdatacenter, nous avons construit notre propre IXP basé sur une infrastructure tolérante aux pannes composée de deux commutateurs et de deux serveurs de routage. Notre IXP est actuellement en phase de test et nous invitons chacun à se connecter à Linxdatacenter IX et à participer aux tests. Une fois connecté, vous bénéficierez d'un port 1 Gbit/s, de fonctionnalités de peering via nos serveurs de routage et d'un accÚs à votre compte portail IX, accessible à l'adresse suivante : .
Ăcrivez dans les commentaires ou les messages privĂ©s pour accĂ©der aux tests.
conclusion
Les points d'échange de trafic sont apparus à l'aube d'Internet pour résoudre le problÚme de flux de trafic sous-optimal entre les opérateurs télécoms. Aujourd'hui, avec l'émergence de nouveaux services mondiaux et l'augmentation du trafic CDN, les points d'échange continuent d'optimiser les performances des réseaux mondiaux. La multiplication des IXP dans le monde profite aux utilisateurs finaux, aux opérateurs télécoms, aux fournisseurs de contenu et à d'autres acteurs. Pour les participants aux IXP, les avantages comprennent la réduction des coûts de mise en place de peering externe, la réduction des coûts de trafic supportés par les opérateurs en amont, l'optimisation du routage et la possibilité de se connecter directement aux fournisseurs de contenu.
Liens utiles
- Consultez la carte des points d'échange de trafic :
- Afficher les statistiques détaillées du peering BGP, y compris la présence IXP :
Source: habr.com
