DD-WRT servant des serveurs DNS supplémentaires au lieu de simplement l'adresse IP du routeur

9

J'ai un routeur DD-WRT (utilisant DD-WRT v24SP2-MULTI (03/21/11) std) configuré avec DNSMasq pour résoudre certains domaines en adresses internes et passer tout le reste à travers. Le routeur lui-même est configuré pour utiliser les serveurs DNS publics de Google pour résoudre les adresses.

Mon écran de configuration ressemble à ceci:

Écran de configuration DDWRT

Mon problème est que lorsqu'un client DHCP se connecte, il obtient le routeur et les deux serveurs DNS de Google comme serveurs DNS attribués:

Serveurs DNS attribués par DHCP

C'est un problème parce que parfois les clients sans fil essaient de résoudre un domaine qui est censé pointer vers une adresse IP interne et finissent par obtenir une adresse IP externe à la place parce que pour une raison quelconque, leur demande est envoyée à la 8.8.8.8place du routeur.

Je ne veux pas que le routeur serve autre chose que sa propre IP en tant que serveur DNS. Est-ce possible?

0x6A75616E
la source
1
Je peux me tromper, mais comme il s'agit de la section de configuration du serveur DHCP, vous dites explicitement à votre routeur de fournir ces serveurs Google en tant qu'options DNS pour les clients. Vous souhaitez supprimer ceux de la liste, puis configurer le routeur pour obtenir ses propres DNS de Google, peut-être que la réponse ci-dessous est la bonne façon de le faire.
horatio
Si je les supprime, le routeur fournira les serveurs qu'il a obtenus du FAI via DHCP ..
0x6A75616E
Vous dites "pour une raison quelconque" plusieurs fois dans votre message et vos commentaires. C'est la raison pour laquelle 8.8.8.8 est transmis aux clients. Parce que tu l'as dit. Si vous ne souhaitez pas que cela soit signalé, vous devez le supprimer. Si votre routeur est un serveur DNS, essayez UNIQUEMENT l'adresse de votre routeur.
horatio
@horatio, pas vraiment .. Mon point est pourquoi le serveur DHCP fournit-il des adresses DNS supplémentaires? Si dnsmasq est installé sur l'appareil et applique certaines règles de résolution de noms, servir des serveurs DNS supplémentaires (en plus du routeur lui-même) va à l'encontre de cet objectif.
0x6A75616E
Cette section est une liste de serveurs DNS à distribuer aux clients qui demandent des informations DHCP.
horatio

Réponses:

7

C'est bien que vous utilisiez DNSMasq.

Vous pouvez configurer ce que vous voulez dans l' onglet Services (> Services) , dans la boîte DNSMasq> Options DNSMasq supplémentaires , mais d'abord, vous voudrez effacer ces champs DNS statiques. Champs DNS statiques dans "Configuration> Configuration de base"

Ajoutez ce qui suit à la boîte d'options DNSMasq:

dhcp-option= option:dns-server, 192.168.10.10 # DHCP option 006

server = 8.8.8.8 # DNSMasq will use these servers for forwarding the DNS requests that it can't serve
server = 8.8.4.4
palswim
la source
Cela semble avoir parfaitement fonctionné pour moi. Question très stupide cependant. Quelle partie de cette première ligne spécifie l'option DHCP 006? option: serveur DNS?
Residualfail
@Residualfail: Yep; Je pense que vous pouvez également le spécifier numériquement, mais option:dns-servercorrespond à l'option DHCP 006.
palswim
1
On dirait que j'ai pu parler trop tôt. Il ne semble pas que le DNS revienne au DNS de Google après l'arrêt de mon DNS interne. = (
Residualfail
4

Informations tirées du site officiel DD-WRT: http://www.dd-wrt.com/wiki/index.php/OpenDNS

Il semble que vous puissiez définir les serveurs DNS restants sur des adresses IP non routables (dans mon cas 10.0.0.0& 10.0.0.1) et il compressera vos serveurs DNS FAI avec ces non-routables. Jusqu'à présent, il semble fonctionner sans attendre sur les serveurs DNS inexistants.

CarlserversC
la source
Il n'y aura pas de retard, car les adresses non routables seront immédiatement supprimées par la pile réseau. Cela crée une petite quantité de frais généraux et est un hack, mais il ne devrait pas y avoir de problèmes réels.
Quelqu'un du
3

Je n'utilise pas DDWRT, c'est donc une demi-question / une demi-réponse.

Le DNSMasq manuel en tant que serveur DHCP dit dans la section "Options DNSMasq supplémentaires":

Il y a quelques options supplémentaires dans l'interface Web pour DNSMasq que vous pouvez définir en les entrant dans Options DNSMasq supplémentaires sur l'onglet "Services".

Si vous souhaitez passer par les serveurs DNS de votre FAI, vous pouvez utiliser les paramètres suivants:

dhcp-option=6, x.x.x.x, y.y.y.y

où xxxx = DNS1 yyyy = DNS2

Cela semble signifier que le passage des serveurs ISP est facultatif, donc la localisation et la suppression de la ligne ci-dessus doivent la désactiver.

harrymc
la source
1
Je définirais dhcp-option = 6,192.168.10.10 pour transmettre cette adresse IP en tant qu'IP de serveur DNS aux clients DHCP.
Thane
1
Merci pour le pointeur. J'ai essayé cela à la fois sur uDHCPd (qui est le démon DNS que j'utilisais sur ddwrt) et DNSMasq (passé à celui-ci) mais en vain :(. Il continue de servir les enregistrements DNS supplémentaires pour une raison quelconque.
0x6A75616E
Dans ce cas, vous devriez peut-être poster la question sur les forums DD-WRT .
harrymc
2

Si vous ne voulez pas que les clients atteignent le DNS externe, ne mettez pas leurs adresses dans la configuration de votre serveur DHCP.

Je suppose que vous vouliez ajouter (éventuellement plus rapidement) les serveurs DNS de Google dans une configuration de client DHCP externe (où DNSMASQ prendrait ses préférences de client DNS)

Supplémentaire:

Vous devez ajouter des serveurs DNS supplémentaires (tous) à la configuration de la liaison WAN. DNSMasq les utilisera et jamais ceux que le client DHCP acquerrait du fournisseur.

ZaB
la source
merci pour votre contribution, mais cela n'a pas beaucoup de sens dans le contexte de la question. DNSMasq fonctionne en transmettant les demandes DNS des clients aux serveurs DNS réels avec la possibilité de modifier certaines réponses à la volée. Si j'ai supprimé les serveurs DNS de la configuration, le routeur revient simplement aux serveurs attribués par le FAI. Vous répondez à ma question en disant "corrigez votre configuration" mais la question elle-même est "comment corriger la configuration".
0x6A75616E
2

Une option de configuration typique pour DD-WRT consiste à autoriser le routeur à router le DNS en dehors des serveurs DNS principaux du FAI; que vous avez fait avec succès; cependant, puisque les requêtes sont générées à partir de la machine CLIENT, connectant TOO au routeur, l'ordre de préférence est toujours donné au DNS configuré sur la machine du client, puis au routeur.

Ce que vous décrivez, c'est que le client s'associe à votre routeur, ce qui est correct, mais son DNS affiche les autres paramètres DNS de votre routeur IP + 2. Veuillez vérifier l'ordinateur client et assurez-vous que leurs paramètres IPV4 sont définis pour extraire dynamiquement la configuration du serveur DNS de la connexion et ne pas la configurer manuellement:

Configuration du client

Ensuite, assurez-vous que votre routeur DD-WRT est correctement configuré:

Configurer le routeur

Dans votre configuration ci-dessus, vous avez également quelques problèmes; vous avez défini la plage d'adresses DHCP pour commencer à 200et se terminer à 255; Je vous recommanderais de changer cela pour commencer à 200 et se terminer à 254; laisser l'adresse 255 désactivée, étant donné que pour les configurations normales*.*.*.255 s'agit d'une adresse de diffusion et non d'une adresse IP normale à utiliser pour attribuer au client associé.

J'ai mis en évidence les paramètres DNS locaux parce que vous définissez le vôtre sur 127.0.0.1; ce qui signifie que vous exécutez un serveur DNS local sur le routeur . Si ce n'est pas le cas, changez-le en 0.0.0.0, ou une adresse correcte sur un serveur DNS local sur votre réseau.

Vous remarquerez que lorsque le serveur et le client sont configurés de cette manière, seule l'adresse IP DNS du routeur apparaîtra; et toutes les demandes seront acheminées via les serveurs DNS associés au routeur.

Remarque sur le serveur DNS local Si vous souhaitez que le routeur associe certaines adresses locales à des adresses IP locales, vous pouvez les ajouter aux options de configuration DNSMasq dans l'écran DD-WRT approprié, ou utiliser un serveur DNS local et saisir une adresse IP appropriée pour ce serveur (généralement un serveur statique, dans le cadre du réseau). De cette façon, l'ordre de résolution sera d'abord le serveur local, puis les 2 externes. Mais, seuls les clients verront l'IP du routeur comme serveur DNS.

zackrspv
la source
merci pour votre réponse!, je me suis assuré que tous les clients du réseau n'ont pas de serveurs DNS codés en dur. En fait, dans tous les cas, 192.168.10.10 (le routeur lui-même) revient comme le premier serveur DNS à frapper. Ce qui se passe, c'est que certains ordinateurs frappent aléatoirement les serveurs DNS secondaires que DHCP fournit actuellement. Je pourrais finir par exécuter d'autres instances dnsmasq sur une machine différente et l'utiliser comme dns2 et dns3 .. un tel hack! lol. merci encore.
0x6A75616E
2

J'ai eu un problème similaire après la mort de mon routeur et j'ai dû faire tourner un WRT160N flashé.

J'ai une boîte fonctionnant comme un serveur DNS local sur 192.168.2.30 dans mon réseau. Je veux essentiellement que DHCP ne donne cette adresse qu'en tant que serveur DNS; Je ne veux pas que le DNS aille ailleurs.

J'utilise "Firmware: DD-WRT v24-sp2 (12/19/10) mini"

La combinaison des paramètres DNSMasq, DHCP, DNS local ou quoi que j'utilise ne semble pas avoir d'importance. Si le serveur DNS 2 et le serveur DNS 3 sont vides ou correspondent au serveur DNS 1, DD-WRT insiste pour distribuer les serveurs DNS de Comcast pour ces emplacements. Je ne veux pas cela car j'ai le transfert 192.168.2.30 vers OpenDNS pour les requêtes qui ne sont pas locales.

J'écris ceci comme un bug dans cette version plutôt ancienne (à ce jour) de DD-WRT et je vais installer / configurer mon propre serveur DHCP sur 192.168.2.30 et désactiver DHCP sur le routeur.

LawrenceC
la source
1
ce n'est en fait pas une mauvaise idée ... Je pourrais simplement configurer dhcp sur une autre boîte et arrêter de visser avec ddwrt.
0x6A75616E
1
Ce problème existe toujours dans ma version de février 2016, semble être une fonctionnalité. J'abandonne le routeur et je reviens à un PC Linux pour cela. Les personnes qui construisent un logiciel de routeur devraient vraiment avoir une meilleure compréhension des problèmes de confidentialité qui accompagnent ce comportement inattendu, inhabituel et irresponsable de l'interface graphique. Si je dois pirater des trucs ensemble moi-même, il est vraiment inutile d'utiliser un système relativement compliqué et limité. Et lorsque vous exécutez déjà DNS et DHCP sur une autre machine, que reste-t-il pour le routeur? Paquet poussant?
Quelqu'un
1

Ajouté quelques années en retard car je suis tombé sur cette recherche de réponse ... J'ai ajouté des interfaces virtuelles à mon pi-hole pour gérer 2 adresses IP supplémentaires.

eth0 192.168.10.10
eth0.1 192.168.10.11
eth0.2 192.168.10.12

Cela m'a permis de remplir les 3 boîtes avec des adresses locales et de les faire distribuer suffisamment pour que même si le routeur dd-wrt distribue 5, 3 locaux et les 2 DNS ISP en amont, mes machines ne les toucheront pas.

Dave
la source
0

Intervenir avec une méthode moins hacky: si c'est votre LAN et votre DNS, je suis sûr qu'il y a des adresses à épargner pour que le DNS écoute sur trois IP.

Le gain d'avoir des adresses non routables ne devrait pas être pertinent en pratique, mais au moins vous ne comptez pas sur quelque chose qui est cassé et sur la réponse des routeurs. Vous ne pouvez jamais être sûr que cela ne changera pas un jour.

Quelqu'un
la source