Question Qu'est-ce que “anycast” et en quoi est-ce utile?


Je n'avais jamais entendu parler d'anycast jusqu'à ce que je lise il y a quelques secondes "Quels sont certains trucs sympas ou utiles sur les serveurs / réseaux?".

Le wikipedia "Anycast"Cet article est assez formel et n’évoque pas vraiment la manière dont il serait utilisé.

Quelqu'un peut-il expliquer en quelques phrases informelles ce qu'est "anycast", comment le configurer (au sens général) et quels sont ses avantages (qu'est-ce que cela rend plus facile)?


78
2018-05-29 18:54


origine




Réponses:


Anycast est une technique de réseau dans laquelle le même préfixe IP est annoncé à partir de plusieurs emplacements. Le réseau décide ensuite de l'emplacement vers lequel une demande d'utilisateur doit être routée, en fonction des coûts du protocole de routage et éventuellement de la "santé" des serveurs de publicité.

Anycast présente plusieurs avantages. Premièrement, à l'état stable, les utilisateurs d'un service anycast (le DNS est un excellent exemple) se connecteront toujours au serveur DNS le plus proche (du point de vue du protocole de routage). Cela réduit le temps de latence, tout en fournissant un niveau d'équilibrage de la charge (en supposant que vos clients soient répartis de manière égale sur votre réseau).

Un autre avantage est la facilité de gestion de la configuration. Plutôt que de devoir configurer différents serveurs DNS en fonction du lieu où un serveur / poste de travail est déployé (Asie, Amérique, Europe), vous avez une adresse IP configurée à chaque emplacement.

Selon la manière dont anycast est implémenté, il peut également fournir un niveau de haute disponibilité. Si la publication de la route anycast est conditionnelle à une sorte de vérification de l'état de santé (par exemple, une requête DNS pour un domaine bien connu, dans cet exemple), alors, dès qu'un serveur échoue, sa route peut être supprimée. Une fois le réseau reconvergé, les demandes des utilisateurs seront transmises de manière transparente à l'instance DNS la plus proche, sans intervention manuelle ni reconfiguration.

Un dernier avantage est celui de la mise à l'échelle horizontale; Si vous constatez qu'un serveur est surchargé, déployez-en simplement un autre dans un emplacement lui permettant de prendre une certaine proportion des demandes du serveur surchargé. Là encore, aucune configuration client n'étant requise, cela peut être fait très rapidement.


83
2018-05-29 19:22



Anycast utilise-t-il plus de bande passante que l'unicast? Imaginez que nous ayons un millier de serveurs partageant la même adresse IP lorsque nous envoyons un paquet à cette adresse, ne prendrait-il pas plus de bande passante que par rapport à la monodiffusion? - Pacerier
Non - le trafic envoyé à une adresse anycast n'arrivera qu'à un seul emplacement annonçant l'adresse. Vous pensez peut-être à multidiffusion, où les paquets envoyés à une adresse de groupe de multidiffusion sont envoyés à tous les hôtes intéressés par ce groupe. - Murali Suriar
Le problème de "Plutôt que de devoir configurer différents serveurs DNS en fonction du lieu où un serveur / poste de travail est déployé"Résolu par les noms de domaine? Alors, quel est l'intérêt de anycast quand il s'agit simplement de dupliquer ce que les noms de domaine font déjà?" - Pacerier
@ Pacerier - vous ne pouvez pas utiliser de noms de domaine pour trouver votre serveur DNS - c'est une dépendance circulaire. Exemple: configurez dns.foo.com. en tant que votre serveur DNS. À quelle adresse IP dois-je envoyer des demandes à dns.foo.com? Je sais, je vais chercher dans DNS. etc. - Murali Suriar


Une des choses qui me confondent souvent dans la compréhension de "anycast" est que, bien qu'il s'agisse d'un terme de haut niveau, sa mise en œuvre pratique se résume généralement à deux exemples:

  1. Routeurs utilisant BGP pour annoncer le même bloc IP via plusieurs COMME chemins comme moyen approximatif de diriger les utilisateurs vers un site "plus proche". Dans le même temps, il assure un basculement presque transparent vers les autres sites en retirant simplement les itinéraires d'un site en difficulté. Cela peut être utile pour presque tous les protocoles, bien que cela pose évidemment de nombreux problèmes de synchronisation des données dorsales.

  2. Publicité du même service IP depuis plusieurs points de votre propre réseau (via routage statique, OSPF, EIGRP, ou peu importe). Si les itinéraires sont pondérés différemmentil agit comme un mécanisme de basculement. Si les itinéraires sont pondérés uniformément Il peut tirer parti des fonctionnalités d'équilibrage de charge par paquet ou par flux de la plupart des routeurs de marque. Vous devez faire attention que le couche d'application protocole est à l'aise avec cela, c'est pourquoi vous en entendez presque toujours parler utilisé avec DNS où une demande est toujours un paquet et que tout est sans état. Personnellement, j’estime qu’il s’agissait d’une intrusion inflexible dans la couche réseau des préoccupations de la couche application, alors qu’une combinaison de DNS et d’équilibreurs de charge appropriés constituerait presque toujours une meilleure solution.


31
2018-05-30 04:24



+1 pour mentionner un paquet et l'apatridie - nponeccop
Le problème avec DNS est que l'on peut utiliser Google ou un autre résolveur distant. Le serveur le plus proche peut être différent du résolveur que de l'utilisateur. Bien sûr, cela n’est valable qu’Anycast s’applique à un usage autre que DNS (par exemple, TCP anycast ou un autre usage). - akostadinov
@cagenut, HTTP serait-il cassé dans le cas de l'équilibrage de charge par paquet (en raison de poids égaux ou autrement)? - Pacerier


Principalement utilisé pour les services basés sur UDP tels que DNS. Fondamentalement, vous annoncez le même itinéraire à partir de plusieurs centres de données à travers le monde. De cette façon, vos clients seront envoyés au "meilleur" et au "centre de données le plus proche" basé sur les routes BGP. Je mets "mieux" et "le plus proche" entre guillemets car les fournisseurs de réseau peuvent jouer à des jeux et router le trafic de certains réseaux différemment. En règle générale, les résultats sont optimaux avec anycast, mais ce n'est pas une garantie.

Un exemple de ceci serait de lister vos serveurs DNS comme 1.2.3.4 et 1.2.3.5. Vos routeurs annonceraient un itinéraire pour 1.2.3 / 24 sur plusieurs datacenters. Si vous êtes au Japon et que vous avez un centre de données là-bas, il y a de fortes chances que vous vous y retrouviez. Si vous êtes aux États-Unis, vous serez envoyé à votre centre de données américain. Encore une fois, il est basé sur le routage BGP et non sur le routage géographique réel, mais c'est généralement ainsi que les choses se passent mal.


16
2018-05-29 19:01



Comment les conflits sont-ils évités alors? - Pacerier
Je ne suis pas sûr de ce que vous entendez par conflits. BGP ne permet pas vraiment de conflits. Il choisit juste un itinéraire. Un problème (souvent ignoré) avec anycast est légal. Techniquement, toute diffusion est couverte par différents brevets. Personne ne l'applique, mais différents types de trafic (CDN, DNS, TCP vs UDP) sont couverts par différents brevets. Ce paragraphe devrait être couvert avec IANAL. - diq
Donc, vous voulez dire que ces services ip2location sont inexacts? Parce qu’il n’ya pas d’emplacement officiel pour un IP et que cela pourrait être nulle part en fonction de quel ordinateur BGP vous parlez? - Pacerier


Conformément à ma réponse initiale, je viens de publier deux autres articles sur mon blog intitulé: Anycast DNS - Partie 3, Utiliser RIP et Anycast DNS - Partie 3, Utiliser RIP (suite). Ce dernier va plus en détail, mais à www.netlinxinc.com/netlinx-blog.html vous trouverez des recettes sur la façon de configurer les routeurs Cisco et le logiciel de routage Open Source Quagga basé sur l'hôte pour Anycast DNS à l'aide de RIP.

Je travaille actuellement sur l'écriture du quatrième article de la série. Cela fournira des informations sur la manière de déployer le DNS Anycast à l'aide de OSPF. Dernier de la série, je montrerai des recettes pour déployer Anycast DNS à l’aide de BGP.

Anycast DNS - Partie 1, Présentation

Anycast DNS - Partie 2, Utiliser des routes statiques

Anycast DNS - Part 3, Utiliser le RIP 

Anycast DNS - Partie 3, Utiliser le protocole RIP (suite) 


8
2018-05-31 16:32



Donc, est-il vrai que, grâce à anycast, il est possible que quelqu'un d'autre sur Internet à travers le monde ait la même adresse IP publique que celle que votre fournisseur de services Internet vous a fournie? - Pacerier
N'est-il pas vrai que seuls les FAI sont capables de déployer des serveurs anycast? - Pacerier
En fait, vous devez posséder plusieurs Les FAI doivent faire anycast. - Pacerier


Étant donné qu'il s'agit principalement de DNS pour le moment ...

De manière informelle, il rend votre service plus résilient et offre un meilleur accès / latence / vitesse réseau en vous permettant d’installer le même service dans plusieurs endroits du monde en utilisant tous la même adresse. Lorsque quelqu'un demande l'adresse, il se voit indiquer l'itinéraire le plus proche / le meilleur.

Du point de vue du serveur:

Si la monodiffusion est destinée à une seule personne et si vous diffusez à plusieurs, et diffusée à toutes les personnes, alors toute diffusion est schitzophrénique et comporte de multiples personnalités où la personnalité la mieux adaptée à chaque personne se connecte à elles. Hmm. Pas la meilleure analogie.


4
2018-05-29 19:19





Le DNS est une utilisation vraiment intéressante d'anycast. Vous pouvez placer 5 serveurs DNS différents dans divers emplacements physiques et réseau, mais partager une seule adresse (ou parfois les adresses DNS principale et secondaire). Selon l’emplacement de la source, ils sont acheminés vers le nœud le plus proche. Cela permet d’équilibrer le trafic et d’assurer la redondance si un serveur DNS meurt.


3
2018-05-29 19:03



Mais la redondance n'est-elle pas déjà fournie par le système DNS? - Pacerier


Selon un de mes collègues, il est également utile comme technique d'atténuation des attaques par déni de service, car les utilisateurs ne peuvent attaquer que l'adresse IP anycast "la plus proche". Par conséquent, s'il y a beaucoup de zombines aux États-Unis, votre site en Euro serait la plupart du temps non affectés, car ils ne peuvent pas réellement envoyer de paquets.

En outre, il peut également être utilisé comme un moyen (quelque peu naïf) de filtrer les paquets falsifiés s'ils proviennent manifestement d'un endroit peu susceptible d'être annoncé dans BGP comme étant la route correcte (par exemple, les paquets arrivant en Europe lorsque l'ASN indique un numéro américain). bloc).


2
2018-05-31 17:16



Eh bien, même dans le cas simple qui n’arrêterait que les personnes dont le chemin AS accède à ce serveur --- par exemple. vous pouvez empêcher les personnes qui vous atteignent de Comcast, mais pas AT & T. Si vous avez configuré "correctement" le basculement (suivez le service L7, arrêtez d'annoncer quand il tombe en panne), il est en fait beaucoup plus difficile de gérer les attaques par déni de service car il va détruire un serveur, puis passer au suivant. les annonces sont prises ... - James Cape
@ JamesCape, Intéressant, mais quand ils passent à la suivante, le dos a échoué car les gens ne peuvent pas se connecter, n'est-ce pas? - Pacerier
@Pacerier Dans le cas le plus simple, où vous publiez simplement la même adresse IP partout sans aucune intelligence, oui. Cependant, si vous essayez de faire preuve d'intelligence et de retirer la publicité aux États-Unis parce que le service ne répond pas, la seule publicité restante sera celle d'Europe. Ainsi, tous les zombies américains attaqueront le prochain serveur disponible et le tueront également. - James Cape


Il est également bon de noter qu'Anycast n'est ni bon ni fiable pour certaines connexions TCP qui ne peuvent pas survivre à une réinitialisation ou à une conversation longue.

Les IP Anycast, utilisant BGP, indiquent à Internet qu'il existe 2, 3 chemins ou plus vers un hôte spécifiqueCependant, en réalité, ils sont PAS le même hôte, ce sont des répliques exactes des hôtes annoncés dans plusieurs centres de données afin d’obtenir des connexions à latence inférieure.

Par exemple, trois serveurs effectuant une redirection 301 non www pour 198.251.86.133, si vous envoyez une requête ping à cet hôte, vous pouvez obtenir des réponses DUPLICATE, voire même des baisses selon votre lieu de résidence, car mes serveurs sont situés aux États-Unis, aux États-Unis. -Ouest et EUR. pour les connexions temporisées courtes (comme les 301 qui sont en cache avec le navigateur), cela donne une réponse rapide par un serveur local dans le centre de données le plus proche.

En ce qui concerne la redondance, anycast n’est pas intégré dans anycast; vous auriez quand même besoin d’une redondance indépendante sur chaque site, car cette adresse IP (dans des scénarios typiques) pointera toujours vers ces centres de données.


2
2017-10-13 12:58



Re "ping"; Ping n'est pas une connexion UDP? - Pacerier
Re "comme cette adresse IP (dans des scénarios typiques) pointera toujours vers ces datacenters"; êtes-vous sûr? Si ce serveur est en panne, ils commenceraient à pointer vers le prochain serveur le plus proche, n'est-ce pas? - Pacerier