Comment configurer un serveur DNS pour pouvoir ajouter des enregistrements à la volée?

Je dois héberger une application SaaS basée sur le sous-domaine sur un tas de serveurs. Les serveurs sont xx1.example.com, xx2.example.com et ainsi de suite. Je souhaite avoir un tas de sites yyy.example.com hébergés sur ces serveurs.

Parce que les sites sont créés à la volée, je dois également pouvoir configurer des enregistrements DNS à la volée. Une zone de caractères génériques DNS ne s'élargit pas, car, finalement, je dépassera le premier serveur et je devrai pousser de nouvelles instances sur d'autres machines. Je dois donc pouvoir pointer un sous-domaine spécifique vers une adresse IP spécifique.

J'ai cherché des services DNS DNS basés sur l'API (ce qui serait génial), mais ils semblent trop coûteux pour mes besoins (beaucoup d'instances à faible volume). Rackspace dispose d'un service Cloud DNS gratuit, mais il ne dépasse que 500 zones, et le support technique m'a dit qu'ils réécrivaient l'API afin que je souhaite éviter leur service pour le moment.

Par conséquent, j'ai pensé que je configurerai mon propre serveur DNS pour ces zones. D'où les questions: quel est un bon logiciel de serveur DNS pour ce besoin spécifique qui me permettra de créer des zones sans redémarrage?

Aucune suggestion? Merci!

Si tous les enregistrements que vous allez ajouter sont un sous-domaine d'une zone spécifique, vous pouvez facilement configurer la liaison pour les mises à jour dynamiques. Ensuite, utilisez simplement nsupate pour envoyer une mise à jour sur la zone.

Cela devrait fonctionner correctement, si tous les nouveaux enregistrements sont des enregistrements dans un domaine existant. Si vous avez besoin d'ajouter dynamiquement d'autres domaines, cela ne vous aidera pas vraiment.

// zone config // using ip only for authentication, should really use hmac auth zone "example.com" { type master; file "/etc/bind/dyn/example.com.dns"; allow-query {any;}; allow-update { 127.0.0.1; 192.0.2.0/24; }; }; 

Mettre à jour le script à l'aide de nsupdate .

 #!/bin/bash record=yyy.example.com ( echo "server xx1.example.com" echo "zone example.com" echo "update delete ${record} A" echo "update add ${record} ${ttl} A 192.0.2.1" echo "send" ) | /usr/bin/nsupdate 

J'utilise myDNS Cela fonctionne très bien et est simple, il peut également fonctionner avec BIND facilement. Il y a d'autres comme PowerDNS et d'autres.

bind est capable de (ré) charger des fichiers pour des domaines individuels sans redémarrage intégral.

Soit avec l'interface rndc de bind ou ce que je préfère: utilisez PowerDNS

Les mises à jour de djbdns sont entièrement transparentes – pas d'interruptions – et la structure 'zonefile' est idéale pour la modification et l'automatisation des scripts. Le format d'enregistrement est complètement différent de BIND, mais ce n'est pas aussi difficile à comprendre qu'il apparaît à première vue. Hautement recommandé.