• Aucun résultat trouvé

Haute disponibilité

4.2 Présentation de l’anycast

autre puisse prendre le relai. Ceci permet d’avoir une redondance du ser-vice et donc une tolérance aux pannes. Il existe plusieurs moyens pour le faire dont :

— La reconfiguration des clients, en modifiant la liste des serveurs récur-sifs des clients (dans le fichier /etc/resolv.conf ) chaque fois qu’un ser-veur tombe en panne (en le supprimant en fait de la liste). Un moyen d’automatiser la diffusion de cette reconfiguration de la liste des ser-veurs est d’utiliser un service DHCP

— DNS anycast,

— L’utilisation de protocole de redondance spécifique tels que VRRP, Heart-beat, etc... [11]

Nous avons donc opté pour la mise en place de l’anycast qui, non seule-ment, permet à la fois de disposer de serveurs proches des utilisateurs (performance) et qui sont redondants entre eux (disponibilité) mais égale-ment de faire de la distribution de charges et de résister aux attaques DoS et DDoS

4.2 Présentation de l’anycast

La plupart des adresses IP que l’on manipule sont des adresses unicast, c’est à dire des adresses qui désignent un unique destinataire. À chaque fois que vous envoyez un paquet vers une adresse de ce type, celui-ci sera routé vers un unique destinataire(Figure 4.2).

Il existe aussi des adresses multicast (qui comprennent les adresses broadcast) pour lesquelles plusieurs destinataires reçoivent une copie du paquet(Figure 4.3 et Figure 4.4).

Les adresses anycast quant à elles permettent d’envoyer le paquet à un destinataire parmi plusieurs. Il n’y a donc pas de copie, mais pas de destinataire unique. Idéalement, le paquet parvient au destinataire le plus proche(Figure 4.5).

L’anycast représente le moyen de pouvoir utiliser la même adresse IP sur différents serveurs. C’est fondamentalement un schéma de routage. Sa

Réalisé par Ulrich N. A. AZONHOU 29

Chapitre 4. CHOIX TECHNIQUES POUR GARANTIR LA PERFORMANCE ET LA DISPONIBILITÉ DU SERVICE

mise en œuvre est plus centrée sur la configuration des routeurs que des serveurs eux-mêmes.

Figure 4.2 – Unicast[4] Figure 4.3 – Broadcast[4]

Figure 4.4 – Multicast[4] Figure 4.5 – Anycast[4]

4.2.1 Les propriétés d’anycast

— Chaque paquet que l’on envoie à une adresse anycast est susceptible d’aller vers un serveur différent ;

— Les paquets sont routés vers l’adresse IP possédant la meilleure mé-trique réseau. C’est souvent le serveur le plus proche, mais pas tou-jours. Les métriques peuvent être définis en fonction d’autres facteurs tels que la bande passante, le coût, la charge ou encore la fiabilité ;

— Les serveurs possédant des adresses anycast doivent également avoir une adresse unicast.

Réalisé par Ulrich N. A. AZONHOU 30

4.2 Présentation de l’anycast

4.2.2 Les cas d’utilisation d’anycast

L’anycast peut être utilisé de façon locale pour :

— Faire de la répartition de charge sur plusieurs serveurs situés sur le même sous-réseau ;

— Eliminer le besoin d’utiliser un équilibreur de charge en laissant le réseau (routeur) distribuer le trafic.

Figure 4.6 – Utilisation d’anycast pour faire de la répartition de charge [5]

La décision du serveur vers lequel envoyer les données est basée sur le flux de routage ECMP. Le fait qu’il n’y ait qu’une seule route réduit les ques-tions de routage. L’annonce des routes se fait en général avec n’importe quel protocole (RIP/OSPF/ISIS/BGP/EIGRP) ou même de façon statique.

L’anycast peut également être utilisé de façon globale pour :

— Faire une distribution de charge à travers plusieurs locations ;

— Et produire de la redondance.

Réalisé par Ulrich N. A. AZONHOU 31

Chapitre 4. CHOIX TECHNIQUES POUR GARANTIR LA PERFORMANCE ET LA DISPONIBILITÉ DU SERVICE

Figure 4.7 – Utilisation d’anycast à l’échelle d’un AS (Autonomous System) [5]

Figure 4.8 – Utilisation d’anycast à l’échelle d’internet [5]

4.2.3 Anycast avec le DNS

Avec le DNS, anycast est généralement utilisé de deux manières :

— Sur les serveurs récursifs. C’est ce qui est observé généralement dans les réseaux d’ISP. L’objectif est de réduire les temps de réponse des requêtes, de distribuer la charge sur plusieurs équipements et de pro-duire de la redondance. Ceci se fait en configurant l’adresse anycast chez les clients comme adresse de serveur cache récursif (par DHCP par exemple) ;

Réalisé par Ulrich N. A. AZONHOU 32

4.2 Présentation de l’anycast

Figure 4.9 – Anycast avec des serveurs DNS récursifs [5]

— Sur les serveurs autoritaires. C’est cela qu’utilise par exemple l’ISC qui gère le serveur root F. L’objectif est de réduire les temps de réponse aux requêtes(certaines requêtes n’étant plus contraintes à faire le tour de la planète), de faire de la distribution de charge, d’apporter de la re-dondance et de limiter le nombre de serveurs autoritaires qui peuvent être listé dans une réponse.

Figure 4.10 – Anycast avec des serveurs DNS autoritaires [5]

Le fonctionnement général du DNS anycasting s’appuie sur les prin-cipes suivants :

— une même adresse IP (l’adresse du service DNS) est configurée sur plusieurs serveurs DNS différents (sur une interface loopback)

locali-Réalisé par Ulrich N. A. AZONHOU 33

Chapitre 4. CHOIX TECHNIQUES POUR GARANTIR LA PERFORMANCE ET LA DISPONIBILITÉ DU SERVICE

sés chacun sur un site distinct ;

— un démon de routage (QUAGGA, BIRD etc.) implémentant un proto-cole de routage (OSPF, BGP etc.)tourne sur le serveur DNS en plus du serveur de noms ;

— une annonce de l’adresse du service DNS est envoyée au routeur par le démon de routage ;

— le routeur apprend l’adresse IP du serveur. La décision de routage ga-rantit que les paquets à destination du DNS sont transmis au serveur le plus proche.

Le mécanisme de redondance est simple : si le DNS ou le réseau ne fonctionne plus, l’annonce de l’adresse IP n’est plus envoyée au routeur.

Pour que cela fonctionne, il est impératif de coupler l’état de fonctionne-ment du serveur DNS et l’annonce de la route au routeur. cela est souvent réalisé avec un simple script :

— le script tourne sur le serveur DNS ;

— il effectue régulièrement une requête locale auprès du service DNS ;

— si le service DNS ne fonctionne plus, le script stoppe le démon de rou-tage pour cesser d’annoncer l’adresse ;

— à l’inverse quand le DNS fonctionne à nouveau, le script peut relancer le démon de routage. Il faut noter que le temps de convergence est souvent de plusieurs secondes, car l’ajout et la suppression de la route doivent se diffuser entre les routeurs.

L’anycast fonctionne bien car le protocole DNS est sans état : il se base sur UDP, une requête donne lieu à une réponse. Dans certains cas, le DNS utilise TCP. L’anycast fonctionne également en TCP à condition que la route ne change pas durant la connexion TCP [11].

Documents relatifs