Je suis en train de coder mon propre serveur DNS, je lis dans le RFC1035 DNS mais j'ai quelques requêtes:Packets de réponse DNS
1) Je veux que mon serveur pour répondre avec un CNAME pour un particulier demande, mais pas d'enregistrements A - puis-je faire cela? par exemple, recevoir une requête pour 'server1.com', la réponse 'CNAME server2.com', puis le client interroge un autre serveur DNS pour obtenir l'enregistrement A pour 'server2.com'. J'ai actuellement défini l'en-tête à: '\ x84 \ x00' pour dire que c'est le serveur autoritaire, mais recurse n'est pas possible. Est-ce correct?
2) Je veux que mon serveur réponde sans aucun enregistrement pour une autre requête, de sorte que le client interroge ensuite un serveur DNS différent pour les enregistrements. J'ai actuellement placé l'en-tête à '\ x83 \ x03' tel pour signaler un code de réponse d'ERREUR de NOM. Est-ce correct? Alors qu'est-ce que je suis ceci avec, zéros dans tous les autres champs, ou juste terminer le paquet là? Je ne veux pas répondre avec «ce nom n'existe pas», plutôt «je ne connais pas ce nom, essayez quelqu'un d'autre» - comment je fais ça?
Merci beaucoup :)
Merci Simon - La raison pour laquelle j'ai demandé à propos de CNAME avec des enregistrements A est qu'en regardant les captures wireshark, la réponse unique du serveur DNS a plusieurs enregistrements, un enregistrement CNAME et ensuite les enregistrements A joints. Mais si le retour d'un CNAME est valide, alors ça va. Et ouais je vais essayer RCODE # 2 et regarder quelques autres captures de paquets :) Merci! – Technosites
En fait, CNAME sans enregistrements A ne semble pas fonctionner. Je peux NSLOOKUP et récupérer l'enregistrement CNAME très bien, mais si j'essaie de cingler il n'a toujours pas un enregistrement A donc les réponses «hôte inconnu» - des idées? – Technosites
Utilisez-vous 'nslookup' pour interroger directement le serveur de noms faisant autorité ou via un serveur de noms récursif? – SimonJ