2015-09-29 3 views
1

Je suis nécessaire de déployer un serveur de noms faisant autorité en utilisant et j'ai trouvé miekg/dns paquet pour presque adapter la facture mais je ne peux pas trouver comment stocker/persister des enregistrements (c'est-à-dire sur le disque). Actuellement, il semble stocker tout dans une carte, mais je suppose que tout est parti quand le serveur est arrêté. Y at-il quelque chose qui me manque ou un moyen facile de brancher un moteur de stockage persistant?Comment stocker les enregistrements DNS (Go autorité serveur de noms)

+0

Êtes-vous envie de stocker les données dans un fichier lisible/modifiable humain ou que ça va juste les sérialisation est cependant pratique? Si ce dernier est vrai, cette réponse est peut-être un pas dans la bonne direction http://stackoverflow.com/a/19763256/3570747 (je sais que cela ne répond pas complètement à votre question). Je suppose que vous voulez également savoir comment déclencher les écritures de fichiers lorsqu'un enregistrement de ressource est mis à jour? – vastlysuperiorman

+0

@vastlysuperiorman la question est plus sur la façon dont paquet miekg/dns fonctionne (i.e. comment suis-je censé accrocher une base de données et le synchroniser avec le serveur) plutôt que comment sérialiser données aller. –

Répondre

2

miekg/dns est une bibliothèque, pas un serveur DNS entièrement fonctionnel. Il a pris en charge les fichiers de zone RFC 1035 (utilisés à l'origine par bind): zscan.go pour analyser le fichier de zone et zgenerate.go pour générer la chaîne de zone.

Si vous recherchez un serveur DNS complet basé sur cette bibliothèque, vérifiez la section Users dans README ou jetez un oeil au serveur discodns basé sur la bibliothèque qui lit les zones de etcd.

0

solution la plus simple, l'OMI, est Redis, qui a quelques libs disponibles. Même si ce n'est pas votre solution à long terme, cela fonctionne bien pour le prototypage. De là, vous avez juste besoin de sérialisation/désérialisation vos données dans/à partir d'un string/[]byte et écrire une couche de mise en cache simple qui charge un état enregistré et repousse les changements quand ils se produisent.