91 votes

Qu'est-ce que le "anycast" et en quoi est-il utile ?

Je n'avais jamais entendu parler d'anycast jusqu'à il y a quelques secondes quand j'ai lu " Quelles sont les astuces cool ou utiles pour les serveurs/réseaux ? ".

La wikipedia " Anycast "L'article sur le sujet est assez formel et ne permet pas vraiment de se faire une idée de la façon dont il serait utilisé.

Quelqu'un peut-il expliquer en quelques phrases informelles ce qu'est "anycast", comment le configurer (de manière générale) et quels sont ses avantages (ce qu'il facilite) ?

93voto

Davide Gualano Points 804

L'Anycast est une technique de mise en réseau où le même préfixe IP est annoncé à partir de plusieurs endroits. Le réseau décide alors de l'emplacement vers lequel acheminer la demande d'un utilisateur, en fonction des coûts du protocole de routage et éventuellement de la "santé" des serveurs d'annonce.

L'anycast présente plusieurs avantages. Tout d'abord, en régime permanent, les utilisateurs d'un service anycast (le DNS en est un excellent exemple) se connecteront toujours au serveur DNS le plus "proche" (du point de vue du protocole de routage). Cela réduit la latence et permet un certain équilibrage de la charge (en supposant que les utilisateurs soient répartis de manière égale sur le 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 de l'endroit où un serveur/poste de travail est déployé (Asie, Amérique, Europe), vous disposez d'une adresse IP qui est configurée dans chaque lieu.

En fonction de la manière dont l'anycast est mis en œuvre, il peut également fournir un niveau de haute disponibilité. Si l'annonce de la route anycast est conditionnée par une sorte de contrôle de santé (par exemple, une requête DNS pour un domaine bien connu, dans cet exemple), alors dès qu'un serveur tombe en panne, sa route peut être supprimée. Une fois le réseau rétabli, les demandes des utilisateurs seront transmises de manière transparente à l'instance de DNS la plus proche, sans nécessiter d'intervention manuelle ou de reconfiguration.

Un dernier avantage est celui de la mise à l'échelle horizontale ; si vous constatez qu'un serveur est surchargé, il suffit d'en déployer un autre à un endroit qui lui permettra de prendre une certaine proportion des demandes du serveur surchargé. Là encore, comme aucune configuration client n'est requise, cette opération peut être réalisée très rapidement.

36voto

cagenut Points 4828

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

  1. Routeurs utilisant BGP pour annoncer le même bloc d'adresses IP via de multiples AS comme un moyen approximatif de diriger les utilisateurs vers un site "plus proche". En même temps, il permet un basculement presque transparent vers les autres sites en retirant simplement les routes d'un site en difficulté. Cela peut être utile pour presque n'importe quel protocole, bien que cela soulève évidemment de nombreux problèmes de synchronisation des données en arrière-plan.

  2. Annoncer le même service IP à partir de plusieurs points de votre propre réseau (par le biais de routage statique , OSPF , EIGRP ou autre). Si les routes sont pondérées différemment il agit comme un mécanisme de basculement. Si les routes sont pondérées de manière égale il peut tirer parti des capacités d'équilibrage de charge par paquet ou par flux de la plupart des routeurs de marques connues. Vous devez faire attention à ce que le couche application est à l'aise avec cela, c'est pourquoi vous l'entendez presque toujours utilisé avec DNS où une demande est toujours un paquet et où tout est sans état. Personnellement, je considère qu'il s'agit d'une intrusion de la couche applicative dans la couche réseau alors qu'une combinaison de DNS et d'équilibreurs de charge appropriés sera presque toujours une meilleure solution.

18voto

warren Points 12172

Principalement utilisé pour les services basés sur UDP comme le DNS. En gros, vous annoncez la même route à partir de plusieurs centres de données dans le monde. De cette façon, vos clients seront envoyés vers le "meilleur" et le "plus proche" centre de données basé sur les routes BGP. Je mets "le meilleur" et "le plus proche" entre guillemets car les fournisseurs de réseaux peuvent jouer le jeu et acheminer le trafic de certains réseaux différemment. En général, les choses se passent au mieux 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 une route pour 1.2.3/24 à partir de plusieurs centres de données. Si vous êtes au Japon et que vous avez un centre de données dans ce pays, il y a de fortes chances pour que vous vous retrouviez là-bas. Si vous êtes aux États-Unis, vous serez envoyé vers votre centre de données américain. Là encore, il s'agit d'un routage BGP et non d'un routage géographique réel, mais c'est généralement ainsi que les choses se passent.

9voto

netlinxman Points 477

Suite à ma réponse initiale, je viens de publier deux autres articles sur mon blog intitulé : Anycast DNS - Partie 3, Utilisation de RIP et Anycast DNS - Partie 3, Utilisation de RIP (suite). Ce dernier article entre dans les détails, mais à l'adresse www.netlinxinc.com/netlinx-blog.html vous trouverez des recettes réelles 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 en utilisant RIP.

Je travaille actuellement à la rédaction du quatrième article de la série. Il fournira des recettes sur la façon de déployer Anycast DNS en utilisant OSPF. Le dernier article de la série présentera des recettes pour déployer Anycast DNS en utilisant BGP.

Anycast DNS - Partie 1, Vue d'ensemble

Anycast DNS - Partie 2, Utilisation de routes statiques

Anycast DNS - Partie 3, Utilisation de RIP

Anycast DNS - Partie 3, Utilisation de RIP (suite)

4voto

Brannon Points 12633

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

De manière informelle, cela rend votre service plus résilient et avec un meilleur accès réseau/latence/vitesse en vous permettant d'installer le même service dans plusieurs endroits à travers le monde en utilisant la même adresse. Lorsque quelqu'un demande cette adresse, il reçoit la route la plus proche/la meilleure.

Du point de vue du serveur :

Si l'unicast est le fait d'aller vers une seule personne, le multicast est le fait d'aller vers plusieurs, et le broadcast est le fait d'aller vers tout le monde, alors l'anycast est le fait d'être schitzophrène et d'avoir plusieurs personnalités où la personnalité la mieux adaptée à chaque personne se connecte avec elle. Hmm. Ce n'est pas la meilleure analogie.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X