Pouvez-vous définir une IP de sauvegarde pour votre serveur dans DNS?

10

Existe-t-il un moyen pour le protocole DNS de conserver naturellement une adresse de serveur d'enregistrement de sauvegarde A, comme un serveur de noms de sauvegarde ou des enregistrements de serveur de messagerie? Lors de la recherche, je n'ai vu que des résultats sur les serveurs de noms de sauvegarde (enregistrements NS).

S'il n'y a pas de moyen pour DNS de prendre en charge les enregistrements de sauvegarde A, quelle est la meilleure façon de simuler les résultats afin que les utilisateurs soient dirigés vers un serveur de travail au cas où le serveur principal ne répondrait pas?

kjones1876
la source

Réponses:

12

Oui ... en quelque sorte.

Il y a deux choses que vous pouvez faire ici: Si vous mettez plusieurs enregistrements A dans votre serveur DNS pour un nom donné, ils seront tous servis aux clients et ces clients en choisiront un dans l'ensemble pour se connecter, ce qui signifie que le trafic sera être "assez" uniformément réparti sur tous les sites simultanément. Ce n'est pas vraiment ce que vous semblez décrire, mais c'est une situation courante (bien que je ne lui fasse pas confiance, pour diverses raisons).

L'autre option est que vous ne mettez qu'un seul enregistrement A dans votre serveur DNS, et que le serveur DNS (ou quelque chose de secondaire, comme un script de surveillance) garde un œil sur l'adresse principale de votre site, et s'il échoue, alors le serveur A du serveur DNS l'enregistrement est changé pour votre autre site. Cela signifie qu'un seul site recevra du trafic à la fois.

L'inconvénient de cette deuxième stratégie est la mise en cache DNS. Toute personne ayant obtenu l'ancienne adresse de site sera SOL jusqu'à ce que leurs entrées de cache DNS contenant l'ancienne adresse soient purgées. Cela signifie que vous devez garder vos TTL bas (augmentant la charge sur votre infrastructure DNS, bien que ce soit rarement un problème pratique), mais il y a toujours le problème des caches DNS "voyous", qui n'honorent pas les TTL. Ce sont une douleur énorme pour n'importe qui qui doit changer les entrées DNS, mais c'est un million de fois pire pour quiconque a besoin de changer les entrées DNS "souvent" (j'espère que votre site ne descend pas plusieurs fois par jour, mais quand même ...) Fondamentalement, n'importe qui derrière l'un de ces caches DNS qui se comportent mal, votre site sera "inactif" pendant une période de temps extrêmement longue, et essayez simplement de leur expliquer que c'est leur cache DNS qui est en cause ... Eugh.

En bref, je ne le ferais pas pour un site, car il existe de meilleures façons d'atténuer le risque auquel vous pensez, mais vous devrez décrire ce risque si vous souhaitez des suggestions sur la façon de l'atténuer.

womble
la source
Le risque est que si le serveur principal tombe en panne (quelle qu'en soit la raison), je souhaite que mes utilisateurs soient transférés vers un serveur de sauvegarde. Je veux dire qu'au cours de la dernière année, mon serveur est tombé en panne une fois (échec du raid catastrophique). J'ai eu des sauvegardes, donc les données étaient en sécurité, mais mon site Web a été indisponible pendant 12 heures. Je pensais que ce serait un problème courant avec une solution "correcte". Je pensais que les entreprises voudraient un plan de sauvegarde.
kjones1876
9
Vous ne voulez pas de basculement DNS, vous voulez du matériel plus fiable et éventuellement un serveur de secours.
womble
Les «caches DNS escrocs» sont un conte de vieilles femmes. Aucun logiciel de serveur DNS réel ne présente le comportement d'ignorer les TTL. Les endroits où les données DNS sont mises en cache de manière à provoquer des problèmes sont des applications , comme le fameux problème de mise en cache de recherche de Netscape Navigator par exemple.
JdeBP
@JdeBP: Selon les mots de Kevin Costner: "les caches DNS escrocs ne sont pas un mythe ... je les ai vus!" J'ai fait les fouilles et vu les résultats fous et hallucinants. Le plus populaire avec les services à bande passante limitée et affectés par la latence à l'époque où ce genre de chose était courant (les FAI commutés dont le lien en amont était le RNIS, par exemple), ils sont maintenant principalement utilisés par les personnes qui ont entendu parler d'eux comme étant un bon il y a longtemps et n'ont tout simplement pas changé d'avis depuis (pas que c'était une idée particulièrement bonne à l'époque ... mais oui).
womble
6

Tout le monde semble penser que vous parlez de serveurs WWW, même si vous avez explicitement écrit

comme un serveur de noms de sauvegarde ou un serveur de messagerie

La vérité souvent négligée est que le service HTTP est l'exception et non la norme en la matière. Dans le cas normal, oui, il existe un mécanisme pour publier des informations sur les clients via le DNS afin qu'ils se replient correctement des serveurs principaux vers les serveurs de sauvegarde. Ce mécanisme est SRVconstitué des enregistrements de ressources, tels qu'utilisés par les clients de service pour de nombreux autres protocoles en dehors de HTTP. Voir RFC 2782.

Avec SRVles enregistrements de ressources, les clients reçoivent une liste de serveurs, avec des priorités et des pondérations, et doivent essayer les serveurs dans l'ordre de priorité, en choisissant parmi des serveurs avec des priorités égales en fonction du poids, en choisissant des serveurs plus lourds plus souvent que des serveurs plus légers ceux. Ainsi, avec SRVles enregistrements de ressources, les administrateurs de serveur peuvent indiquer aux clients ce que sont les serveurs de secours et comment répartir leur charge sur un ensemble de serveurs de priorité égale.

Désormais, les serveurs DNS de contenu sont localisés par un type spécial d'enregistrement de ressources qui leur est propre, NSles enregistrements de ressources, qui n'ont pas d'informations de priorité et de poids. De même, les serveurs de relais SMTP sont localisés par leur propre type spécial d'enregistrement de ressource MX, qui contient des informations de priorité mais aucune information de pondération. Ainsi, pour les serveurs DNS de contenu, aucune disposition ne permet de publier des informations de secours et de distribution de charge; et si l'on utilise MXdes enregistrements de ressources, alors pour les serveurs relais SMTP, il n'y a aucune disposition pour la publication des informations de répartition de charge.

Cependant, SRVil existe désormais des MTS compatibles. (Le premier était exim, qui est SRVcapable depuis 2005.) Et pour d' autres protocoles de service, sans encombrement avec les bagages MXet NSles enregistrements de ressources, l' SRVadoption est beaucoup plus approfondie et répandue. Si vous avez un domaine Microsoft Windows, par exemple, alors une multitude de services sont localisés via des SRVrecherches dans le DNS . C'est le cas depuis plus d'une décennie, à ce stade.

Le problème est que tout le monde pense à HTTP, alors que HTTP est de loin, de nos jours en 2011, l'exception et non la règle ici.

JdeBP
la source
Bien que les enregistrements srv soient parfaits pour une utilisation en réseau interne lorsque l'environnement est contrôlé, ils ne le coupent tout simplement pas pour quelque chose comme un serveur externe avec des clients hétérogènes. vous ne savez pas que l'enregistrement sera accessible car vous ne savez pas si le client prendra en charge l'accès aux enregistrements srv.
Michael Lowman,
1
Encore une fois, vous laissez HTTP régir votre réflexion. Pour de nombreux clients mentionnés ci-dessus, les SRVenregistrements sont le moyen défini pour localiser les services. Notez également que la question était de savoir si le mécanisme existe et de quoi il s'agissait. Le mécanisme existe, et c'est le mécanisme. Il est largement utilisé depuis une décennie.
JdeBP
Vous avez certainement raison, srv est certainement le bon mécanisme et fait en fait d'autres choses que je ne pouvais pas faire, mais que j'aurais aimé que DNS le fasse. Malheureusement, aucun navigateur ne prend en charge srv. Même si la question était spécifique à HTTP parce que j'ai dit "comme un serveur de noms ou un serveur de messagerie de sauvegarde", ce qui signifie que des solutions de sauvegarde existent déjà pour eux.
kjones1876
1

si vous diffusez du contenu dynamique et qu'il n'est pas pratique d'avoir simplement deux serveurs fournissant du contenu simultanément, votre autre option est de disposer de plusieurs enregistrements sur votre DNS de toute façon et de configurer le serveur de sauvegarde pour lancer le port ICMP inaccessible aux clients qui tentent de s'y connecter ; si à tout moment le serveur principal tombe en panne, vous supprimez simplement le bloc du port 80 sur la sauvegarde et le trafic commencera à entrer.

La seule autre manière (budgétaire) que vous puissiez utiliser est de configurer une machine distincte (ou deux) pour effectuer le NAT sur les demandes, donc si un serveur Web meurt, vous pouvez simplement supprimer la règle NAT pour cela.

Olipro
la source
Au départ, j'ai fatigué votre première idée, je viens de désactiver apache sur le serveur principal, mais le navigateur a continué à essayer de se connecter de toute façon. Mais, transformer un cours apache serait-il une erreur ICMP? Sinon, comment puis-je faire du serveur une erreur ICMP?
kjones1876
non, la connexion va juste
expirer
iptables -I INPUT -p tcp --dport 80 -j REJECT --reject-with icmp-port-inaccessible
Olipro
J'en ai assez et les gens ne pouvaient tout simplement pas se connecter ... J'ai même débranché le serveur sur lequel je testais.
kjones1876
Le questionneur ne parlait pas spécifiquement des seuls serveurs WWW. En effet, xe a mentionné explicitement les serveurs de messagerie et de noms.
JdeBP
0

Il n'y a pas d'enregistrements A de sauvegarde, mais il peut y avoir plusieurs enregistrements A qui sont distribués dans un ordre aléatoire.

La plupart des navigateurs sont capables d'essayer un autre serveur en cas de panne. (Voir: Résilience Web avec Round Robin DNS )

Vous pouvez avoir une adresse IP de cluster soutenue par plusieurs serveurs avec VRRP ou CARP . Le serveur de sauvegarde prend en charge l'adresse en cas de défaillance du serveur principal.

jkj
la source
Le questionneur ne parlait pas spécifiquement des seuls serveurs WWW. En effet, xe a mentionné explicitement les serveurs de messagerie et de noms.
JdeBP
@JdeBP: Oh. J'ai l'impression d'être aveugle. Désolé: P
jkj
0

Oui, mais vous devez le faire vous-même ;-)

Pourriez-vous donner plus d'informations sur les raisons pour lesquelles vous voulez un "enregistrement de sauvegarde A" et comment et dans quelles circonstances vous souhaitez accéder à la sauvegarde.

En outre, il serait utile de connaître la relation d'un point de vue réseau entre les hôtes principal et de sauvegarde.

dmourati
la source
0

C'est une question assez ancienne mais deux technologies assez importantes n'ont pas été évoquées dans les réponses: DNS dynamique et CDN.

Le DNS dynamique est configuré de sorte que les enregistrements DNS puissent être modifiés presque en temps réel, afin qu'un client de surveillance puisse déclencher des modifications des enregistrements DNS A publics en fonction de la disponibilité du service. (Bien sûr, votre service d'hébergement DNS doit prendre en charge le DNS dynamique.)

Les CDN peuvent également être utilisés pour fournir le DNS, comme par exemple Cloudflare (qui a été lancé en 2010, je crois).

yourcomputergenius
la source