Anycast vs Unicast: quel est le meilleur choix dans chaque cas

Beaucoup ont probablement entendu parler d'Anycast. Avec cette méthode d'adressage et de routage réseau, une seule adresse IP est attribuée à plusieurs serveurs sur le réseau. Ces serveurs peuvent même être situés dans des centres de données éloignés les uns des autres. L'idée derrière Anycast est que, en fonction de l'emplacement de la source de la demande, les données sont envoyées au serveur le plus proche (selon la topologie du réseau, plus précisément - le protocole de routage BGP). Ainsi, vous pouvez réduire le saut et la latence.



Essentiellement, le même itinéraire est annoncé à partir de plusieurs centres de données à travers le monde. Ainsi, les clients seront envoyés vers le «meilleur» et le «plus proche» en fonction des itinéraires BGP, du centre de données. Pourquoi Anycast? Pourquoi utiliser Anycast au lieu de Unicast?





Unicast est vraiment bon pour un site avec un serveur Web et un trafic modéré. Cependant, si un service compte des millions d'abonnés, il utilise généralement de nombreux serveurs Web, chacun avec la même adresse IP. Ces serveurs sont répartis géographiquement pour répondre de manière optimale aux demandes.



Dans ce scénario, Anycast améliorera les performances (le trafic est dirigé vers l'utilisateur avec une latence minimale), garantira la fiabilité du service (grâce à des serveurs redondants) et l'équilibrage de charge - le routage vers plusieurs serveurs répartira efficacement la charge entre eux, améliorant la vitesse du site.



Les opérateurs proposent à leurs clients différents types d'équilibrage de charge basés sur Anycast et DNS. Les clients peuvent spécifier les adresses IP auxquelles les demandes seront envoyées en fonction de l'emplacement géographique du site. Cela permet de distribuer de manière plus flexible les demandes des utilisateurs.



Supposons qu'il existe plusieurs sites entre lesquels vous devez répartir la charge (utilisateurs), par exemple, une boutique en ligne avec 100 000 demandes par jour ou un blog populaire. Pour restreindre la région à partir de laquelle les utilisateurs accèdent à un site spécifique, vous pouvez utiliser l'option Communauté géographique. Il vous permet de limiter la région dans laquelle l'opérateur annoncera l'itinéraire.









Anycast vs Unicast: Différences



Anycast est souvent utilisé dans des applications telles que DNS (Domain Name System) et CDN (Content Delivery Networks), permettant de prendre des décisions de routage qui améliorent les performances du réseau. Les réseaux de diffusion de contenu utilisent Anycast, car ils traitent de gros volumes de trafic, et Anycast offre un certain nombre d'avantages dans ce cas (plus d'informations ci-dessous). Dans DNS, Anycast peut augmenter considérablement le niveau de fiabilité et de tolérance aux pannes du service.





Dans Anycast IP, lors de l'utilisation de BGP, il existe plusieurs routes vers un hôte spécifique. Il s'agit en fait de copies d'hôtes sur plusieurs centres de données utilisées pour établir des connexions à faible latence.



Ainsi, dans le réseau Anycast, la même adresse IP est annoncée à partir d'emplacements différents, et le réseau décide où diriger la demande de l'utilisateur en fonction du «coût» de l'itinéraire. Par exemple, BGP est souvent utilisé pour déterminer l'itinéraire le plus court pour la transmission de données. Lorsqu'un utilisateur envoie une demande Anycast, BGP détermine le meilleur itinéraire pour les serveurs Anycast disponibles sur le réseau.



Avantages Anycast

Réduire la latence Anycast , . «» ( ) DNS-. Anycast . , .


, , , , .



IP, . Anycast //. 



, , , Anycast, , DNS. DNS - . Anycast , . 



Anycast . , , . , , . .

DoS- 

Anycast – DDoS. DDoS- Anycast, . 



DDoS- , , . Anycast , «» , . « », , .



Anycast . , Anycast, , . . 



, . , . , . , , , . . 



, 10 25 /. 100 IP- .



, Anycast — DNS. DNS-, DNS-. , , . DNS-. , , DNS- , , DNS- .



Anycast , , , . .



Aucun serveur, réseau ou composant spécial n'est requis pour utiliser la technologie Anycast du côté client. Mais Anycast a ses inconvénients. On pense que sa mise en œuvre est une tâche difficile qui nécessite un équipement supplémentaire, des fournisseurs fiables et un routage correct du trafic.



D'une source pure Ă  un beau lointain



Bien qu'Anycast achemine les utilisateurs en fonction du moins de sauts, cela ne signifie pas nécessairement le moins de latence. La latence est une métrique plus complexe, car une transition peut en avoir plus de dix.





Exemple: les communications intercontinentales peuvent impliquer un saut de latence très élevée.



Anycast est principalement utilisé pour les services basés sur UDP comme DNS. Les demandes des utilisateurs sont dirigées vers les centres de données «meilleurs» et «les plus proches» en fonction des itinéraires BGP.





Exemple: un poste de travail client DNS avec l'adresse IP DNS Anycast 123.10.10.10, effectue la résolution DNS pour le plus proche des trois serveurs de noms DNS déployés à l'aide de la même adresse IP Anycast. Si le routeur R1 ou le serveur A échoue, les paquets du client DNS seront automatiquement transférés au serveur DNS suivant le plus proche via R2 et R3. De plus, la route vers notre serveur A sera supprimée des tables de routage, empêchant toute utilisation ultérieure de ce serveur de noms.



Scripts de déploiement



Il existe deux schémas généraux utilisés pour déterminer à quel serveur un utilisateur se connecte:



  • Couche rĂ©seau Anycast . Connecte l'utilisateur au serveur le plus proche. Le chemin rĂ©seau de l'utilisateur au serveur est ici important.
  • Anycast . , , , . . , .


CDN Anycast



Revenons maintenant à l'utilisation d'Anycast dans les réseaux de diffusion de contenu. Anycast est certainement un concept de réseau intéressant et est de plus en plus accepté par les fournisseurs de CDN de nouvelle génération.



CDN est un réseau distribué de serveurs qui fournissent du contenu aux utilisateurs finaux avec une haute disponibilité et une faible latence. Les réseaux de diffusion de contenu jouent aujourd'hui un rôle important en tant que colonne vertébrale de nombreux services multimédias en ligne, et les consommateurs sont de moins en moins tolérants aux vitesses de téléchargement lentes. Les applications vidéo et vocales sont particulièrement sensibles à la gigue et à la latence du réseau.



CDN rassemble tous les serveurs dans un seul réseau et accélère le chargement du contenu. Parfois, il est possible de réduire le temps d'attente de l'utilisateur de 5 à 6 secondes. Le but d'un CDN est d'optimiser la diffusion en diffusant le contenu du serveur le plus proche de l'utilisateur final. Ceci est très similaire à Anycast, où le serveur le plus proche est sélectionné en fonction de l'emplacement de l'utilisateur final. Il semblerait que chaque fournisseur de CDN utilisera Anycast par défaut, mais en réalité ce n'est pas le cas.



Les applications utilisant des protocoles tels que HTTP / TCP dépendent de la connexion établie. Si un nouveau nœud Anycast est sélectionné (par exemple, si le serveur échoue), le service peut être interrompu. C'est pourquoi Anycast était auparavant recommandé pour les services sans connexion tels que UDP et DNS. Cependant, Anycast fonctionne bien pour les protocoles orientés connexion, par exemple TCP fonctionne correctement en mode Anycast.



Certains fournisseurs de CDN utilisent le routage Anycast, d'autres préfèrent le routage DNS: le serveur le plus proche est choisi en fonction de l'emplacement du serveur DNS de l'utilisateur.



Les infrastructures hybrides et multi-centres de données sont un autre cas d'utilisation d'Anycast. L'adresse IP d'équilibrage de charge reçue du fournisseur vous permet de répartir la charge entre les adresses IP de différents services client dans le centre de données du fournisseur. Avec n'importe quelle technologie d'adressage de périphérique, il offre de meilleures performances avec un trafic important, une tolérance aux pannes et permet d'optimiser les temps de réponse pour un grand nombre d'utilisateurs.



Dans les infrastructures hybrides multi-centres de données, vous pouvez répartir le trafic sur des serveurs ou même des machines virtuelles sur des serveurs dédiés.



Ainsi, il existe un vaste choix de solutions techniques pour la construction d'infrastructures. Vous pouvez également configurer l'équilibrage de charge IP sur plusieurs centres de données, en utilisant n'importe quel appareil du groupe pour optimiser les performances du site.



Vous pouvez répartir le trafic selon vos propres règles, en définissant le «poids» de chacun des serveurs distribués dans chaque centre de données. Cette configuration est particulièrement utile lorsque vous disposez d'un parc de serveurs distribué et que les performances des services ne sont pas uniformes. Cela vous permettra de répartir le trafic plus souvent pour améliorer les performances du serveur.



Pour créer un système de surveillance à l'aide de la commande ping, il est possible de configurer des sondes. Cela permet à l'administrateur de définir ses propres procédures de surveillance et d'obtenir une vue plus claire de la santé de chaque composant de l'infrastructure. De cette manière, des critères d'accessibilité peuvent être définis.



Il existe une possibilité de construire une infrastructure hybride: il est parfois pratique de quitter le back-office dans le réseau de l'entreprise et de transférer la partie frontale vers l'externalisation chez le fournisseur.



Il est possible d'ajouter des certificats SSL pour l'équilibrage de charge, le cryptage des données transmises et la sécurité de la communication entre les visiteurs du site et l'infrastructure de l'entreprise. Dans le cas de l'équilibrage de charge entre les centres de données, SSL peut également être utilisé.



Le service d'équilibrage de charge d'adresses Anycast est disponible auprès de votre FAI. Cette fonctionnalité aidera à améliorer la façon dont les utilisateurs interagissent avec les applications en fonction de l'emplacement. Il suffit de déclarer les services disponibles dans le centre de données et le trafic sera redirigé vers l'infrastructure la plus proche. S'il existe des serveurs dédiés, par exemple en France ou en Amérique du Nord, les clients seront dirigés vers le serveur le plus proche du réseau.



Un cas d'utilisation pour Anycast est le choix optimal du point de présence de l'opérateur (PoP). Donnons un exemple... LinkedIn (bloqué en Russie) cherche non seulement à améliorer les performances et la vitesse de ses produits - applications mobiles et Web, mais aussi à améliorer l'infrastructure réseau pour accélérer la diffusion de contenu. Pour cette diffusion de contenu dynamique, LinkedIn utilise activement les PoP, des points de présence. Anycast est appliqué pour diriger les utilisateurs vers le PoP le plus proche.



La raison en est que dans le cas d'Unycast, chaque PoP sur LinkedIn a une adresse IP unique. Les utilisateurs se voient ensuite attribuer des PoP en fonction de leur emplacement géographique à l'aide du DNS. Le problème est que lors de l'utilisation du DNS, environ 30% des utilisateurs aux États-Unis ont été redirigés vers un PoP sous-optimal. Avec la mise en œuvre progressive d'Anycast, l'attribution de PoP sous-optimale est passée de 31% à 10%.





, Y — PoP. «» Anycast PoP.



Anycast



En théorie, les réseaux Anycast sont simples: plusieurs serveurs physiques se voient attribuer la même adresse IP que BGP utilise pour déterminer l'itinéraire. Mais la mise en œuvre et la conception des plates-formes Anycast sont complexes, et les réseaux à tolérance de pannes Anycast sont particulièrement réputés pour cela. Encore plus difficile est la surveillance efficace du réseau Anycast pour identifier et isoler rapidement les défauts.



Si les services utilisent un fournisseur CDN tiers pour diffuser leur contenu, il est très important pour eux de surveiller et de vérifier les performances du réseau. La surveillance CDN basée sur Anycast se concentre sur la mesure de la latence de bout en bout et des performances de l'avant-dernier saut pour comprendre quel centre de données dessert le contenu. L'analyse des en-têtes du serveur HTTP est un autre moyen de déterminer d'où proviennent les données.





Exemple: en-têtes de réponse HTTP indiquant l'emplacement du serveur CDN.



Par exemple, CloudFlare utilise son propre en-tête CF-Ray dans les messages de réponse HTTP, qui comprend une indication du centre de données vers lequel la demande a été effectuée. Dans le cas de Zendesk, l'en-tête CF-Ray pour la région de Seattle est CF-RAY: 2a21675e65fd2a3d-SEA, et pour Amsterdam, c'est CF-RAY: 2a216896b93a0c71-AMS. Vous pouvez également utiliser les en-têtes HTTP X de la réponse HTTP pour déterminer où se trouve le contenu.



Autres méthodes d'adressage



Il existe d'autres méthodes d'adressage pour acheminer les demandes des utilisateurs vers un point de terminaison réseau spécifique:
Unicast

La plupart des internautes utilisent aujourd'hui cette mĂ©thode. Unicast - transmission unicast, l'adresse IP est associĂ©e Ă  un seul nĹ“ud spĂ©cifique sur le rĂ©seau. C'est ce qu'on appelle une correspondance individuelle. 

Multicast

Multicast « » « ». . ( ). Multicast Anycast, , Anycast , .

Broadcast

, . , ( ).

Geocast

Geocast Multicast: . , . .



(Geo Router) . , , . .









Monodiffusion, multidiffusion et diffusion.



L'utilisation de la technologie Anycast augmente le niveau de fiabilité, de résilience et de sécurité du DNS. Grâce à cette technologie, les opérateurs proposent à leurs clients des services pour différents types d'équilibrage de charge DNS. Dans le panneau de contrôle, vous pouvez spécifier les adresses IP auxquelles les demandes seront envoyées en fonction de l'emplacement géographique. Cela donnera aux clients la possibilité de distribuer de manière plus flexible les demandes des utilisateurs.



Certains opérateurs utilisent la surveillance des itinéraires POP: le système analyse automatiquement les itinéraires locaux et mondiaux les plus courts pour les points de présence et les redirige vers des emplacements géographiques avec la latence la plus faible sans temps d'arrêt.



À l'heure actuelle, Anycast est la solution la plus stable et la plus fiable pour créer des services DNS hautement chargés, soumis à des exigences élevées de stabilité et de fiabilité.



Le domaine .ru prend en charge 35 serveurs DNS Anycast, regroupés en 20 nœuds, répartis sur cinq clouds Anycast. Dans ce cas, le principe de la construction sur une base géographique est utilisé, c'est-à-dire Geocast. Lors du placement des nœuds DNS, il est prévu de les déplacer vers des emplacements géographiquement dispersés à proximité des utilisateurs les plus actifs, de la concentration maximale de fournisseurs russes sur le site du nœud, ainsi que de la disponibilité de capacités gratuites et de la facilité d'interaction avec le site.



Comment créer un CDN?



CDN est un réseau de serveurs qui accélère la livraison de contenu aux utilisateurs. Le réseau de distribution de contenu connecte tous les serveurs en un seul réseau et permet un chargement de contenu plus rapide. La distance entre le serveur et l'utilisateur joue un rôle important dans la vitesse de téléchargement.



CDN vous permet d'utiliser des serveurs les plus proches de votre public cible. Cela réduit le temps d'attente, permet d'accélérer le chargement du contenu du site pour tous les visiteurs, ce qui est particulièrement critique pour les sites contenant des fichiers volumineux ou des services multimédias. Les applications CDN typiques sont le commerce électronique et le divertissement.



Le réseau de serveurs supplémentaires créés dans l'infrastructure CDN, situés aussi près que possible des utilisateurs, contribue à une livraison de données plus stable et plus rapide. Selon les statistiques, l'utilisation d'un CDN réduit la latence lors de l'accès à un site de plus de 70% par rapport aux sites sans CDN.



Comment créer un CDN en utilisant DNS? La configuration d'un CDN à l'aide de votre propre solution Anycast peut être un projet assez coûteux, mais il existe des options moins chères. Par exemple, vous pouvez utiliser GeoDNS et des serveurs réguliers avec des adresses IP uniques. Avec les services GeoDNS, vous pouvez créer un CDN géolocalisé où les décisions sont prises en fonction de l'emplacement réel du visiteur, et non de l'emplacement du résolveur DNS. Vous pouvez configurer votre zone DNS pour afficher les adresses IP des serveurs américains aux visiteurs des États-Unis, et les visiteurs européens verront l'adresse IP de l'Europe.



Avec GeoDNS, il est possible de renvoyer différentes réponses DNS en fonction de l'adresse IP de l'utilisateur. Pour ce faire, le serveur DNS est configuré pour renvoyer différentes adresses IP en fonction de l'adresse IP d'origine de la demande. En règle générale, la base de données GeoIP est utilisée pour déterminer la région à partir de laquelle la demande est faite. La géolocalisation à l'aide de DNS vous permet d'envoyer du contenu aux utilisateurs à partir d'un site à proximité.



GeoDNS définit l'adresse IP du client qui a effectué la demande DNS, ou l'adresse IP du serveur DNS récursif du FAI, qui est utilisée pour traiter la demande du client. Le pays / la région est déterminé par l'IP et la base GeoIP du client. Le client obtient alors l'adresse IP du serveur CDN le plus proche. Vous pouvez en savoir plus sur la configuration de GeoDNS ici .



Anycast ou GeoDNS?



Bien qu'Anycast soit un excellent moyen de diffuser du contenu à l'échelle mondiale, il manque de spécificité. C'est là que GeoDNS entre en jeu. Ce service vous permet de créer des règles qui envoient les utilisateurs vers des points de terminaison uniques en fonction de leur emplacement.





Exemple: les utilisateurs européens sont dirigés vers un autre point de terminaison.



Vous pouvez également refuser l'accès aux domaines en supprimant toutes les demandes. C'est, en particulier, un moyen rapide de couper les intrus.



GeoDNS fournit des réponses plus précises que Anycast. Alors que dans le cas d'Anycast, l'itinéraire le plus court est déterminé par le nombre de sauts, dans GeoDNS, le routage pour les utilisateurs finaux est basé sur leur emplacement physique. Cela réduit la latence et améliore la précision lors de la création de règles de routage granulaires.



Lors du passage à un domaine, le navigateur contacte le serveur DNS le plus proche, qui, selon le domaine, émet une adresse IP pour le chargement du site. Supposons qu'une boutique en ligne soit populaire aux États-Unis et en Europe, et que ses serveurs DNS ne se trouvent qu'en Europe. Ensuite, les utilisateurs des États-Unis qui souhaitent utiliser les services du magasin devront envoyer une demande au serveur le plus proche, et comme il est très loin, il faudra beaucoup de temps pour attendre une réponse - le site ne se chargera pas rapidement.



Lorsqu'un serveur GeoDNS est situé aux États-Unis, les utilisateurs y font déjà référence. La réponse sera rapide, ce qui affectera la vitesse de chargement du site.



Dans une situation avec un serveur DNS existant aux États-Unis, lorsqu'un utilisateur des États-Unis se rend sur ce domaine, il contactera le serveur le plus proche qui lui donnera l'adresse IP souhaitée. L'utilisateur sera dirigé vers le serveur qui contient le contenu du site, mais comme les serveurs avec le contenu sont éloignés, il ne le recevra pas rapidement.



Si nous plaçons des serveurs CDN avec des données en cache aux États-Unis, lors du chargement, le navigateur du client enverra une demande au serveur DNS le plus proche, qui renverra l'adresse IP correcte. Le navigateur avec les adresses IP obtenues adresse le serveur CDN le plus proche et le serveur principal, et le serveur CDN envoie le contenu mis en cache au navigateur. Pendant le chargement du contenu mis en cache, les fichiers manquants pour charger le site complet sont reçus du serveur principal. En conséquence, le temps de chargement du site est réduit, car beaucoup moins de fichiers sont envoyés depuis le serveur principal.



Déterminer l'emplacement exact d'une adresse IP spécifique n'est pas toujours une tâche facile: de nombreux facteurs sont en jeu, et les propriétaires de la plage d'adresses IP peuvent décider de l'annoncer à l'autre bout du monde (il faut alors attendre que la base de données se mette à jour pour obtenir l'emplacement correct). Parfois, les fournisseurs de VPS attribuent des adresses que l'on pense être aux États-Unis pour un VPS à Singapour.



Contrairement à l'utilisation des adresses Anycast, la distribution est effectuée pendant la résolution du nom, pas lors de la connexion au serveur de mise en cache. Si le serveur récursif ne prend pas en charge les sous-réseaux clients EDNS, alors l'emplacement de ce serveur récursif est utilisé, et non l'utilisateur qui se connectera au serveur de cache.



Client Subnets in DNS est une extension DNS (RFC7871) qui définit comment les serveurs DNS récursifs peuvent envoyer des informations client à un serveur DNS, en particulier des informations réseau qu'un serveur GeoDNS peut utiliser pour localiser plus précisément un client.



La plupart utilisent les serveurs DNS de leur FAI ou les serveurs DNS qui sont géographiquement proches d'eux, mais si quelqu'un aux États-Unis, pour une raison quelconque, décide d'utiliser un résolveur DNS situé en Australie, il obtiendra très probablement une adresse IP. l'adresse du serveur le plus proche de l'Australie.



Si vous souhaitez utiliser GeoDNS, il est important de connaître ces fonctionnalités, car dans certains cas, cela peut augmenter la distance entre les serveurs de mise en cache et le client.



Résumé: si vous souhaitez combiner plusieurs VPS dans un CDN, la meilleure option de déploiement consiste à utiliser un ensemble de serveurs DNS avec la fonction GeoDNS + Anycast prête à l'emploi.






All Articles