Auteur Sujet: Redondance de connexion à un IXP / aux route servers  (Lu 1103 fois)

0 Membres et 1 Invité sur ce sujet

patrick_01

  • Abonné MilkyWan
  • *
  • Messages: 328
  • 01
Redondance de connexion à un IXP / aux route servers
« le: 22 novembre 2022 à 21:44:28 »
Bonsoir,

Une question à ceux qui on des connaissance des IXP et de leurs bonnes pratiques. Si c'est hors sujet, à déplacer éventuellement dans le forum voisin BGP ?

Quand on se connecte sur un IXP, j'imagine que si on veut de la redondance, c'est possible d'arriver avec deux routeurs. Juste ou faux ?
Si c'est correct, alors comment est-ce qu'on met ça en place ?
- Comment les peerings sont établis avec les autres membres, ou avec les route-servers ? Chacun des deux routeurs monte les mêmes sessions (par exemple, chacun se connecte aux deux (ou plus) RS ?
- Sur quel critère de l'algo BGP est-ce que la meilleure route est choisie ? Quelles sont les pratiques courantes ? On utilise du MED, AS-Prepend ou autre chose pour recevoir le trafic sur le routeur préféré ?

Sur la plupart des listes de membres des IXP, on n'a qu'une adresse par AS, est-ce que ça veut dire que chacun n'a qu'un routeur, ou bien c'est une adresse virtuelle (VRRP ?) avec deux ou plusieurs routeurs derrière ?

Merci à ceux qui arrivent à m'éclairer sur le sujet...

Hugues

  • AS2027 MilkyWan
  • Modérateur
  • *
  • Messages: 12 425
  • Lyon (69) / St-Bernard (01)
    • Twitter
Redondance de connexion à un IXP / aux route servers
« Réponse #1 le: 22 novembre 2022 à 21:57:36 »
Tu mets deux routeurs, tu as deux ip, tu fais toutes les sessions en double :)

Sur la plupart des listes de membres des IXP, on n'a qu'une adresse par AS, est-ce que ça veut dire que chacun n'a qu'un routeur
Oui mais redonder un IXP c'est clairement pas indispensable, bgp est fait pour prendre plusieurs chemins

Optix

  • AS41114 - Expert OrneTHD
  • Abonné Orne THD
  • *
  • Messages: 4 644
  • WOOHOO !
    • OrneTHD
Redondance de connexion à un IXP / aux route servers
« Réponse #2 le: 22 novembre 2022 à 23:11:01 »
Autre possibilité : faire un aggrégat de 2 liens en LACP (ce qu'on fait, 2x10G).

Mais comme dit Hugues, si ton port IXP tombe (ce qui m'est arrivé qu'une seule fois en 4 ans), pas grave, ça passera via un transitaire ou autre.

A la limite, il vaut mieux "redonder" avec un autre IXP, comme ça tu choppes d'autres ASN en direct par la même occasion.

Sur la plupart des listes de membres des IXP, on n'a qu'une adresse par AS, est-ce que ça veut dire que chacun n'a qu'un routeur, ou bien c'est une adresse virtuelle (VRRP ?) avec deux ou plusieurs routeurs derrière ?
Qu'un routeur.

Squalala

  • Expert France-IX
  • Expert
  • *
  • Messages: 57
  • 75020
Redondance de connexion à un IXP / aux route servers
« Réponse #3 le: 22 novembre 2022 à 23:23:34 »
Bonsoir Patrick,

Je pense que t'es bien dans la bonne section, mais je laisse les modo/admins en juger et nous déplacer si besoin ;)

L'explication qui suit est une version simplifiée, il y a de nombreuses subtilités que les puristes ici ne manqueront pas de relever.

Il faut voir un IXP comme un swicth réparti (ou non, ça peut juste être un seul switch en fait) sur plusieurs datacenter (ou pas non plus).
Tout ce que tu dois voir en tant que peer ("client" du point d'échange), c'est un Layer 2, avec les adresses MAC de tous les autres peers de l'IXP.
Toute la complexité mise en place par un IXP pour la redondance *entre* les différents équipements où les peers sont connectés (virtualisation du L2 pour permettre sa redondance au travers de MPLS/VPLS/VxLAN/EVPN/Whatever), tu ne la vois pas, tu n'as aucune configuration à faire pour ça.

Ce que le peer doit faire c'est monter des sessions BGP au dessus de cette infrastructure L2, en annonçant ses préfixes (ou pas, selon si tu veux ou non recevoir du trafic) et recevoir des préfixes des autres membres (ou les drop, si tu ne veux pas envoyer de trafic aux autres membres).

Le nombre de sessions à monter pour s'interconnecter en direct avec tous les peers suit l'équation suivante x=(n*n-1)/2 où n est le nombre de peers sur l'IXP, et x le nombre de sessions BGP au total sur l'IXP.
On voit que le nombre de sessions croît énormément, et qu'il est difficilement viable de faire du full-mesh à grande échelle pour tous les membres (mais certains le font tout de même, pour pleins de raisons techniques différentes, et puis bon avec l'automatisation, c'est pas forcément si embêtant).
Pour éviter à tous les membres de devoir monter 99 sessions s'il y a 100 membres sur l'IXP, les gens qui opèrent ces IXP mettent en place des RS. Le but du RS est de redistribuer toutes les routes qui lui sont annoncées par les membres (en applicant ou non du filtrage sur des critères qu'on de détaillera pas ici, parce que y'aura déjà 80% de gens ici qui seront en TL;DR) aux autres membres.
Les RS ne font *que* de la signalisation BGP, ils ne routent pas les paquets entres les membres. Pour se faire, dans les ré-annonces qu'il fait, un RS renvoie un next-hop de route tel que reçu par le membre qui lui a envoyé le préfixe et qui est sélectionné comme étant la meilleure route BGP. L'AS des RS de l'IXP n'est pa ajouté à l'AS_PATH.

Puisque le RS permet cette signalisation, il est généralement doublé (il y a deux RS distinct, ça peut être deux VM sur deux hyperviseurs qui sont sur deux DC différents), afin que la perte de cette seule machine ne cause pas la perte de tout le trafic en cas de problème.
Pour cela donc, les peers montent des sessions avec les deux RS (et c'est donc de l'actif-actif comme redondance, faut pas monter RS2 quand RS1 est down, c'est trop tard), et puisque c'est uniquement de la ré-annonce protocolaire, il n'y a aucun impact en cas de perte d'un RS pour peu que les gens annoncent strictement la même chose aux deux (non, ça n'est pas si évident).
Ça n'est pas du tout antinomique au fait d'avoir des sessions directes avec d'autres membres identifiés comme plus critiques/importants, d'autant que certaines routes ne sont parfois annoncées qu'à travers ces sessions BGP directes (qui ne passent pas par les RS donc).

Du coup, comment les peerings sont établis ? Soit les gens sont déjà sur les RS et c'est automagique (woooaaaaah !), soit ils n'y sont pas et faut leur envoyer des mails ou des missive par coursier équestres (bouuuuuuh). Je troll à peine pour certains acteurs.
Ça dépend de leur politique, de leur humeur, de leurs critères techniques et du nombre de bières (ou tout autre boisson qu'ils affectionnent) que tu as pu leur payer. Personne n'est jamais obligé de peerer avec toi.
Si jamais tu ne connais pas, il y a pas mal de gens sur https://www.peeringdb.com/ avec des détails.

Les vraies questions que tu dois te poser sont : Pour quel usage je suis sur un IXP ? A quelle panne je veux faire face ?

De manière générale, les gens vont sur les IXP pour les raisons suivantes :
- La qualité de service (faible latence via la régionalisation du trafic, infrastructure globalement très robuste, la gestion par des palmipèdes aux plumes lustrées) ;
- Le coût (possiblement moins cher que du transit, mais ça n'est pas un produit équivalent, un transit te donne accès à tout internet, un IXP à une liste de peer, tu ne peux donc échanger du trafic qu'avec eux, tout un débat) ;
- La possibilité de pouvoir sélectionner les routes envoyées et reçues de manière très fine, littéralement peer par peer, ce qu'un transitaire ne propose pas ;
- Il n'y a personne au milieu pour changer ta décision de routage (là où chez un transitaire, rien ne te garanti que le trafic de va passer que par lui, avec qui tu as un contrat).

A nouveaux, sur les arguments cités plus haut, il y a plein de débats et de cas particuliers, tous les IXP sont différents, avec des typologie de membres qui ne sont pas équivalentes et évoluent.
Comme dit au dessus, tu aura *toujours* besoin d'un transitaire (ou plusieurs), un IXP ne te donnant qu'une vision partielle des routes présentes dans la Default-Free Zone.
Si les raisons pour lesquelles tu es sur IXP sont importantes/interessantes mais pas critiques, tu peux tout à fait décider de ne pas redonder un IXP (c'est le cas de la majorité des membres).

En revanche, certains membres (fournisseurs de contenus, hébergeurs, FAI entreprise) peuvent avoir besoin de garder autant que faire se peut cette qualité de service (parce que du trafic Paris-Paris qui passe par Londres, Madrid ou Francfort c'est cool pour que les paquets voient du pays, mais moins cool pour la latence).
Dans ce cas-là ils ont plusieurs connexions à l'IXP, généralement sur plusieurs points de présence afin de faire face à la plus grande diversité de coupure de service possible (coup de pelleteuse sur multiples fibres vers un PoP, perte électrique complète de la baie de l'IXP au sein d'un datacenter parce que un technicien à débranché la mauvaise voie suite à une maintenance électrique, attaque de castors zombies, upgrade/migration des équipements de l'IXP, palmipède fatigué, hébergement au sein d'un DC ayant des notions de qualité de MMR qui lui sont propre, optique qui décide qu'au bout de 34701364258347 paquets hop, elle fait des FCS tout les 100 paquets (rayez les mentions inutiles)).

En fonction de ce que tu veux éviter tu peux avoir :
- une seule connexion vers l'IX dans un seul DC ;
- deux connexions qui partent de ton routeur et qui vont vers deux routeurs/deux PoP de l'IXP (via des xCo étendus par exemple). Cette option est discutable puisqu'elle implique d'avoir deux IPs de peering sur le même équipement, ce qui n'est pas exactement le cas de plus simple ;
- deux connexions qui partent de deux routeurs du même DC chez toi (dans deux baies d'une même salle), vont sur un seul routeur de l'IXP en face mais via deux MMR ;
- deux connexions qui partent de deux routeurs dans deux DC chez toi pour aller vers deux routeurs de deux PoP de l'IXP (solution la plus redondantes parmi celles présentées ici).

On peut multiplier/mixer les cas, par exemple deux routeurs chez toi (A et B), avec chacun deux liens vers deux routeurs de l'IXP (C et D), pour avoir encore plus de chance d'éviter les aléas du metier (A->C, A->D, B->C, B->D).

On pourrait aussi parler des LAG, mais de la même manière que RAID is NOT backup, LAG is NOT backup (en plus vous savez pas si chez l'IXP c'est sur deux linecard, le même trunk MTP du DC, bref, SPOF-Land).

Arriver avec deux routeurs sur deux PoP c'est super, très propre, mais ça demande de l'argent et des compétences pour avoir un réseau suffisamment bien fait pour répartir/reprendre le trafic quand ça casse. Qu'est-ce qui fait sens pour toi ?
Si tu as deux routeurs, l'IXP va te donner deux IPs différentes (pas de VRRP sur mon LAN de peering, goujat !), et idéalement, toutes les sessions sont doublées sur ces deux IPs pour être à ISO.
BGP choisi comme d'habitude, en fonction de ses critères (https://www.juniper.net/documentation/us/en/software/junos/vpn-l2/bgp/topics/concept/routing-protocols-address-representation.html ou https://www.cisco.com/c/en/us/support/docs/ip/border-gateway-protocol-bgp/13753-25.html j'ai pas de religion sur le constructeur qui explique le truc à peu près normalisé, ou si tu as plus de temps https://www.rfc-editor.org/rfc/rfc4271#section-9.1).
Tu peux jouer avec cette selection (par exemple en annonçant un subset de subnet sur chaque connexion à l'IXP, en annonçant aussi les supernet pour avoir toujours les annonces en cas de perte d'un des liens).
Il y a tout un tas de manière de le faire, plus ou moins propres (on évite de trop désagréger, c'est pas gentil pour la RIB/FIB des autres).
L'IXP peut aussi te permettre de faire de la sélection supplémentaire au travers des RS (je vais mettre l'exemple que je connais vaguement mais il y en a d'autres : https://apps.db.ripe.net/db-web-ui/lookup?source=ripe&key=AS51706&type=aut-num)

Coinrdialement,

PS : Je vois que Hugues à fait une version TL;DR avant même que je poste, terrible ces licornes !

Hugues

  • AS2027 MilkyWan
  • Modérateur
  • *
  • Messages: 12 425
  • Lyon (69) / St-Bernard (01)
    • Twitter
Redondance de connexion à un IXP / aux route servers
« Réponse #4 le: 22 novembre 2022 à 23:55:32 »
Ta version est très bien, la mienne était peut-être un peu trop résumée :)

Et oui c'est la bonne section, pas de souci !

patrick_01

  • Abonné MilkyWan
  • *
  • Messages: 328
  • 01
Redondance de connexion à un IXP / aux route servers
« Réponse #5 le: 23 novembre 2022 à 23:49:16 »
Ouah, quelle mine d'information. Squalala, vraiment cool d'avoir pris le temps pour une réponse aussi détaillée...
Merci aussi Optix et Hugues, qui vont directement à l'essentiel :)

Quelques questions sur tes explications, si tu me permets :

Le but du RS est de redistribuer toutes les routes qui lui sont annoncées par les membres (en applicant ou non du filtrage sur des critères qu'on de détaillera pas ici, parce que y'aura déjà 80% de gens ici qui seront en TL;DR) aux autres membres.
Heu non, certainement pas TLDR, c'est quel genre de filtrage que fait le route-server ? Ajouter des community ? Ou virer les martians, ce genre de trucs ?

Pour se faire, dans les ré-annonces qu'il fait, un RS renvoie un next-hop de route tel que reçu par le membre qui lui a envoyé le préfixe et qui est sélectionné comme étant la meilleure route BGP.
La réponse me semble presque évidente en écrivant ça, mais est-ce que ça veut bien dire que si deux AS annoncent le même préfixe, c'est le RS qui décide lequel sera annoncé aux autres membres qui peer avec le RS ? Et si les choix faits par le RS ne plaisent pas à un membre, il peer direct avec un autre membre pour forcer le routage qui l'intéresse ?

Il n'y a aucun impact en cas de perte d'un RS pour peu que les gens annoncent strictement la même chose aux deux (non, ça n'est pas si évident).
Pas évident de faire respecter la règle, pour celui qui exploite l'IXP ?
Ou pas évident pour un membre de faire les mêmes annonces aux deux RS ? Et dans ce cas, pourquoi ? Il suffit de mettre la même config sur les deux peerings, non ?

Les vraies questions que tu dois te poser sont : Pour quel usage je suis sur un IXP ? A quelle panne je veux faire face ?
Parce que je vais coonstruire un IXP dans mon garage (et probablement même dans deux garages géographiquement distribués...), pour un usages privé et expérimental (DN42, réseaux radioamateurs, ...). Pas de risque de me voir mettre le souk chez FranceIX, ou ailleurs :)

hébergement au sein d'un DC ayant des notions de qualité de MMR qui lui sont propre
MMR kezako ? Meet-me room ?

[...]
On peut multiplier/mixer les cas, par exemple deux routeurs chez toi (A et B), avec chacun deux liens vers deux routeurs de l'IXP (C et D), pour avoir encore plus de chance d'éviter les aléas du metier (A->C, A->D, B->C, B->D).
Quand tu écris "routeurs de l'IXP", tu parles des routeurs que le membre a installé chez l'IXP, ou de port LAN mis à disposition des membres sur un routeur géré par l'IXP ? Et dans ce cas, c'est plutôt des switches que des routeurs, non, puisqu'un IXP est un LAN (enfin, du point de vue du membre...)


Merci encore pour ces explications détaillées :)

Squalala

  • Expert France-IX
  • Expert
  • *
  • Messages: 57
  • 75020
Redondance de connexion à un IXP / aux route servers
« Réponse #6 le: 24 novembre 2022 à 10:50:15 »
Ouah, quelle mine d'information. Squalala, vraiment cool d'avoir pris le temps pour une réponse aussi détaillée...

Pas de quoi  ;)

Quelques questions sur tes explications, si tu me permets :

Je te permet !

Heu non, certainement pas TLDR, c'est quel genre de filtrage que fait le route-server ? Ajouter des community ? Ou virer les martians, ce genre de trucs ?

La réponse me semble presque évidente en écrivant ça, mais est-ce que ça veut bien dire que si deux AS annoncent le même préfixe, c'est le RS qui décide lequel sera annoncé aux autres membres qui peer avec le RS ? Et si les choix faits par le RS ne plaisent pas à un membre, il peer direct avec un autre membre pour forcer le routage qui l'intéresse ?

Alors ça dépend des IXP. Dans le cas que je maitrise le mieux (France-IX Paris/Marseille/Toulouse/Lille), il y a plusieurs phases de filtrage (je la fais en version courte) :

En entrée :

- On commence par de l'assainissement de routes : vérification que le premier AS dans le path est bien le peer qui l'annonce, drop des routes  qui ont des private ASN dans le path, Martian v4/v6 (le fait de faire des extended bogons est un débat), les range de tous nos LAN de peering histoire d'éviter que des typo chez certains ne puissent se transformer en cataclysme ;
- vérification de la taille des préfixes (pas en dessous de /24 par ex, sauf BH) ;
- clean des communautés, drop des routes avec des AS qui sont annoncés comme never via RS ;
- vérification du next-hop ;
- Tagging de IRR/ROA avec les commu ;
- Vérif liés au BH.

En sortie (traité pour chaque membre indépendamment) :
- Traitement de la commu de BH ;
- drop des IRR/ROA en fonction des commu set précédemment ;
- drop des routes annoncés par un membre physiquement en remote vers un autre remote, par exemple un membre à Paris vers un autre membre physiquement à Paris au travers des RS de MRS s'ils ont tout les deux du remote peering. Ça serait un peu dommage de rajouter des dizaines de ms juste pour ça ; 
- traitement des do-not-announce-to ;
- application des commu de tuning (prepend, MED) ;
- Selection de la best.

A savoir qu'on annonce UNE best, et qu'on fait en sorte que si la best normalement sélectionné par BGP est drop par des commu DNA, on prends la route qui vient après, et ce récursivement.

Il y a quelques petites choses en plus, mais je ne peux pas tout dire :)

Si la best sélectionnée par le RS ne convient pas et que le membre a des sessions directes, libre à lui de faire du tuning pour préférer les routes des sessions directes (c'est ce qui est généralement fait).

Pas évident de faire respecter la règle, pour celui qui exploite l'IXP ?
Ou pas évident pour un membre de faire les mêmes annonces aux deux RS ? Et dans ce cas, pourquoi ? Il suffit de mettre la même config sur les deux peerings, non ?

En tant qu'exploitant de l'IXP. Tu as beau faire des annonces, traquer les sessions down, tu finis toujours avec des nombre de routes légèrement différent entre tes deux RS : https://lg.franceix.net/welcome/RS1-PAR+RS2-PAR+RS1-MRS+RS2-MRS/ipv4

Parce que je vais coonstruire un IXP dans mon garage (et probablement même dans deux garages géographiquement distribués...), pour un usages privé et expérimental (DN42, réseaux radioamateurs, ...). Pas de risque de me voir mettre le souk chez FranceIX, ou ailleurs :)

Bonne chance ! C'est très instructif comme type d'infra, on peut voir plus de choses qu'on ne pourrait penser au premier abord en se disant que c'est juste un switch...
Tu peux essayer de mettre le souk chez nous (ou d'autres !), l'infra est censée être faite pour que ça n'ai pas d'effets chez les autres. Je ne prétends pas qu'on est parfait, attention, mais je pense qu'on est loin d'être les plus mauvais. Je ne t'encourage pas à pourrir les LAN de peering pour autant :p
De toute manière c'est comme faire de la sécurité, "l'attaquant" a toujours l'avantage.
On ne peut pas égaler la créativité de certains peers ou de certains OS codés de manière disons, discutable. Le tests de quarantaine avant la mise en production des membres sont là pour essayer d'identifier ces manières créatives de pourrir un LAN de peering, mais il y a des choses qui ne sont identifiables qu'une fois un certain nombre de conditions réunies. Et il faut dire qu'avec plusieurs centaines de membre, ça peut amplifier les possibilités avec la diversité de bug/hardware/configuration.
Et bien évidemment, les configurations changent, les OS sont upgrade, donc il faut parfois tracker les changement de comportement sur le LAN ;)

MMR kezako ? Meet-me room ?

Tout à fait !

Quand tu écris "routeurs de l'IXP", tu parles des routeurs que le membre a installé chez l'IXP, ou de port LAN mis à disposition des membres sur un routeur géré par l'IXP ? Et dans ce cas, c'est plutôt des switches que des routeurs, non, puisqu'un IXP est un LAN (enfin, du point de vue du membre...)

Je parle du routeur géré par l'IXP, qui agrège les membres. C'est bien des routeurs sur les gros IXP, même si tu ne vois que des fonctions de switching à ton niveau.
Dans le cas de France-IX Paris par exemple, la majorité du hardware c'est des Nokia 7750 SR (Service Router), qui sont capables de faire beaucoup de choses, et de bien les faire. Le LAN de Paris est un VPLS, avec un IGP, du LDP, et tout plein de fonctionnalités de filtrage qu'on a pas forcément sur du switch pur.