web-dev-qa-db-fra.com

Équilibrage de charge Serveurs DNS: UDP / TCP

On m'a demandé de reconstruire notre infrastructure d'équilibrage de charge dans le centre de données.

La demande initiale était de charger les serveurs FTP de la balance. J'ai essayé de faire cela en utilisant l'équilibreur de charge actuel (Piranha / LVS), mais je ne l'ai pas réussi. Pas seulement parce qu'il y a peu de documentation pour ce logiciel. Depuis -Piranha est considéré comme obsolète, je suis allé à HAProxy après quelques jours d'essayer, ce qui a eu le travail dans une fraction de temps passé sur Piranha.

Donc, j'ai un équilibrage de charge FTP (mode passif) en place. Maintenant, on m'a demandé de remplacer l'équilibreur de charge de Piranha dans le centre de données. Dans la configuration actuelle Piranha, nous avons plusieurs serveurs Web, IIS .... Aaaand DNS .

Non voici la chose:
[.____] HAProxy Semble être un lb couramment utilisé, mais il n'est pas capable de manipuler UDP load balancing. C'est un bummer, car j'aime comment HAProxy fonctionne. Alors j'ai beaucoup choisi et je suis tombé sur plusieurs choses. La plupart des gens semblent utiliser LVS en tant que LB pour DNS (TCP/UDP). Quelques utilisations dlbDNS, une certaine utilisation lbnamed et une certaine utilisation netfilter / iptables.

Depuis que je voudrais coller HAProxy pour ftp, http, IIS serveurs, je suis confus sur l'utilisation côte à côte avec LVS.

Exigences :
[.____] 2 lb d'instances avec basculement
[.____] 2 serveurs DNS (existants déjà) avec un basculement
Multiples serveurs de backend (http, application, etc ...)

Questions :
Est-ce possible? Est-ce que l'équilibrage de la charge UDP sur les serveurs DNS est-il nécessaire? Y a-t-il une sorte de ressource qui pourrait me montrer comment commencer avec cela? Ou existe-t-il une solution LB capable de ne pas seulement gérer TCP/HTTP, mais également l'équilibrage de la charge UDP?

[.____] PS : La solution LB doit être non matérielle et une licence open source/GPL/sans frais.

[.____] Toute aide ou conduire à des ressources respectives est très appréciée!

10
Mosh Pit

Ne chargez pas votre solde votre DNS.

C'est un protocole incroyablement léger - vous auriez besoin d'une énorme quantité de trafic pour avoir besoin de plus d'une boîte (auquel cas vous serez tout simplement un goulot d'étranglement sur votre équilibreur de charge), et il y a une résilience intégrée car vous pouvez utiliser plusieurs NS enregistre dans votre délégation (d'autres serveurs seront utilisés si le cas échéant).

15
Shane Madden

Je suis mal à l'aise avec ce Q & A parce qu'il n'a pas vraiment été établi quel type de serveur DNS dont vous parlez. Il existe des idées fausses significatives en ce qui concerne la résilience de DNS récursif et qu'il est important que les gens croisient par VIA de moteurs de recherche ne s'éloignent pas de cette discussion avec un faux sentiment de sécurité.

  • DNS autorité: Pour les serveurs DNS autoritatifs, les connaissances communes concernant la résilience de DNS sont jolies sur place. Tant que vous avez plusieurs serveurs DNS autoritatifs qui sont géo-redondants, vous allez bien. La principale raison d'ajouter une haute disponibilité pour les IP individuels est si vous hébergez beaucoup Zones faisant autorité. Cela vous permet de développer votre nombre de serveurs sans avoir à modifier les paramètres du registraire pour chaque domaine hébergé.

  • DNS récursif: utilisez toujours une forme de solution de haute disponibilité. (BGP, appareil, etc.) C'est ici que vous pouvez avoir des problèmes graves. Toutes les bibliothèques de résolution ne sont pas créées égales: les clients DNS Windows rondent Robin le serveur initial utilisé entre requêtes, mais la majorité des systèmes basés sur UNIX effectueront toujours la liste de manière séquentielle. Qu'est-ce que même moins connu est que ces bibliothèques UNIX devront être tirées sur chaque domaine de recherche Combinaison avant de passer au serveur suivant. Si vous avez plusieurs domaines de recherche configurés et que le premier serveur de l'ordre de recherche de résolution est mort, cela peut créer des retards importants dans la résolution DNS pour chaque demande: plus que suffisamment pour causer des problèmes dans vos applications critiques.

En ce qui concerne les DNS récursives, rappelez-vous que votre infrastructure de serveur est uniquement aussi résistante que la configuration du client la plus en cerveau. Au fur et à mesure que votre entreprise grandit, c'est quelque chose que vous avez jamais avoir le contrôle. Ne faites pas d'hypothèses de conception basées sur un environnement OS du serveur homogoneux, car les choses restent rarement la même dans une entreprise en croissance. Cela va certainement mordre quelqu'un si vous ne planifiez pas d'avance pour cela.

11
Andrew B

Ces jours-ci, vous pouvez utiliser dnsdist par PowerDNS

Du Readme

dnsdist est un voleur de production hautement dns, dons et abus et abus. Son objectif dans la vie est de parcourir le trafic vers le meilleur serveur, de fournir des performances supérieures aux utilisateurs légitimes tout en expliquant ou en bloquant un trafic abusif.

dnsdist est dynamique, dans le sens où sa configuration peut être modifiée au moment de l'exécution et que ses statistiques peuvent être interrogées à partir d'une interface de type console.

https://github.com/powerdns/pdns/tree/master/pdns/dnsdistdist

Ils fournissent des référentiels pour les osés communs: https://repo.powerdns.com/

2
Boden Garman