Comment Construire une coutume simple serveur DNS en C/C++
J'ai besoin de construire une coutume simple non-autorité de la mise en cache du serveur DNS en C/C++. De toute orientation? Les liens? Des échantillons?
Merci!
Pourquoi sur la Terre avez-vous besoin pour construire votre propre serveur DNS?
Cause j'ai besoin d'un serveur DNS avec certains non standart fonctionnalité
Je recommanderais fortement de vous tourner vers d'autres solutions, mais si c'est la façon dont vous devez aller... djbdns est du domaine public, de sorte que vous pouvez hack tout vous le souhaitez.
si vous en êtes capable, donner plus d'info à propos de cette "non-standard de la fonctionnalité". Il y a plusieurs DNS spécialistes ici...
Voir cette réponse.
Cause j'ai besoin d'un serveur DNS avec certains non standart fonctionnalité
Je recommanderais fortement de vous tourner vers d'autres solutions, mais si c'est la façon dont vous devez aller... djbdns est du domaine public, de sorte que vous pouvez hack tout vous le souhaitez.
si vous en êtes capable, donner plus d'info à propos de cette "non-standard de la fonctionnalité". Il y a plusieurs DNS spécialistes ici...
Voir cette réponse.
OriginalL'auteur Anton Kopylov | 2009-03-16
Vous devez vous connecter pour publier un commentaire.
Il n'y a pas une telle chose comme un "simple" cacher le serveur DNS, en particulier si vous voulez de sécurité décentes. Les récentes attaques DNS ont montré que la nouvelle mise en mémoire cache de la fonction dans les serveurs DNS récursifs, est particulièrement vulnérable.
Réévaluer si vous avez réellement besoin d'un nouvelle mise en mémoire cache de votre propre. Si vous ne le faites pas, vous êtes probablement mieux en modifiant les DNS proxy code (tels que les "dnsmasq').
Si vous ne voulez rouler, il y a des bonnes bibliothèques comme
ldns
qui peut fournir l'accès à la sous-jacentes des paquets DNS.Je suis en utilisant
ldns
moi-même en collaboration aveclibevent
pour mettre en œuvre le Fuzzing serveur DNS je l'ai mentionné dans une question précédente.OriginalL'auteur Alnitak
J'ai écrit une base de serveur DNS pour une entrevue d'emploi sous licence BSD.
Peut être que quelqu'un pourrait trouver utile:
http://code.google.com/p/dns-server/
https://github.com/tomasorti/dns-server
OriginalL'auteur nephewtom
Il y a un tas de logiciels libres implémentations de DNS. Vous pourriez regarder à leur code source. Par exemple:
Le livre DNS et BIND pourrait être utile. Et, bien sûr, il y a les Rfc spécifier DNS, voir http://rfc-editor.org/.
OriginalL'auteur
Commencer avec djbdns.
djbdns est maintenant du domaine public, mais je ne l'utilise pas...
OriginalL'auteur Hank Gay
Si vous avez vraiment besoin de le faire (c'est un énorme de travail, voir Alnitak réponse), démarrer à partir d'un existant bonne programme (pas un one-man-expérience plus maintenus depuis longtemps, comme djbdns) et de le modifier.
Unbound est probablement un bon choix pour cela. (Le code de base est inférieure à LIER.)
djb du logiciel a été régulièrement un comportement contraire aux normes en raison de sa croyance générale que son chemin est mieux que les normes, et il a également été appelé à nier l'existence de graves distance d'élévation de privilèges, des bugs dans son code. Avec la longue période au cours de laquelle djbdns a été complètement laissés à l'abandon, je pense que ces facteurs font qu'il est parfaitement juste pour bortzmeyer à l'appeler "un homme expérimente plus maintenu depuis longtemps" et décourager de son déploiement sur la non-amateurs d'environnements.
OriginalL'auteur bortzmeyer
Alternativement, vous pouvez utiliser le Ragel, De L'État De La Machine Compilateur pour construire votre serveur à partir de zéro.
Pour quelque chose de défini par un très stricte spec comme un serveur DNS, c'est une part substantielle (et sans doute le plus important).
OriginalL'auteur Hank Gay