Je travaille à la mise en place d'un intranet domestique pour moi et mes colocataires. Mon idée est que nous serons en mesure de stocker des choses comme les factures de services publics passées dans un endroit plus accessible qu'un tiroir dans la cuisine, etc. son adresse IP, je peux accéder aux pages servies sur le Pi. Puisque je fais ce projet davantage pour en savoir plus sur le réseautage et pour fournir un service à mon appartement, j'ai pensé que ce serait cool si mon réseau pouvait fournir une résolution de nom d'hôte pour mon LAN. Donc, plutôt que de pointer mon navigateur vers 192.168.1.151
l'adresse IP du Pi, je pourrais le pointer vers oberon
(son nom d'hôte) et afficher les pages Web desservies par le Pi.
Maintenant, je savais que je n'étais pas la première personne à vouloir faire ça, alors j'ai commencé par googler. Cette question, également sur Unix et Linux, m'a énormément aidé: comment rendre une machine accessible à partir du LAN en utilisant son nom d'hôte . À ce stade, j'ai tout essayé dans la réponse vérifiée. J'ai pensé à utiliser le hosts
fichier, mais cela signifierait que je devrais dire à mes colocataires de configurer leurs machines, ce que je ne veux pas qu'ils aient à faire. J'ai essayé de réserver un bail DHCP pour le Pi sur mon routeur (un NETGEAR WNR1000v2 (alias un N150)), et bien que la réservation ait fonctionné, la résolution du nom d'hôte ne fonctionne pas. Ce genre de me frustre parce que j'ai dit à mon routeur l'IP du Pi et son nom d'hôte, mais il ne fournit toujours pas ces informations aux clients sur mon LAN.
Avec ces deux méthodes ne fonctionnant pas, j'ai décidé de l'installer dnsmasq
sur le Pi. Cela semblait simple à configurer et je serais heureux d'apprendre un nouvel outil. Je l'ai installé et le fait fonctionner très bien (il semble). Je peux dig
ou nslookup
les surnoms du Pi (que j'ai définis /etc/hosts
pour oberon
et homenet
) et obtenir les résultats corrects. Je peux faire la même chose pour les noms Internet comme yahoo.com
et obtenir des réponses correctes car j'ai configuré Google 8.8.8.8
et 8.8.4.4
comme serveurs de sauvegarde dans /etc/dnsmasq.conf
. Regarde ça:
me@oberon~$ dig oberon
; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> oberon
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10787
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;oberon. IN A
;; ANSWER SECTION:
oberon. 0 IN A 192.168.1.151
;; Query time: 10 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Oct 6 18:59:18 2013
;; MSG SIZE rcvd: 40
Notez que SERVER
is 127.0.0.1
: oberon
recherche sa propre adresse IP sur lui-même. C'est ce que je m'attendais à voir. La sortie est la même si je le fais dig oberon @localhost
. En raison de cette sortie, je pense que cela dnsmasq
fonctionne bien. Donc, pour l'amener au niveau supérieur, je veux que tous les clients de mon réseau local puissent saisir oberon
leur navigateur et être redirigés vers oberon
la page d'index de. Pour cela, je sais que je dois configurer mon routeur (excuses si cela s'éloigne du territoire strictement Unix et Linux).
J'ai un Netgear WNR1000v2 que je connais assez bien. J'ai configuré la redirection de port afin que je puisse SSH dans le Pi, et j'ai également fouillé dans d'autres paramètres. Je sais qu'avant de commencer ce projet, j'obtenais mes serveurs DNS de mon FAI, mais maintenant je veux utiliser ces serveurs DNS principalement mais aussi 192.168.1.151
comme dernier contrôle. J'ai donc changé la configuration DNS de mon routeur comme suit:
Donc, avec cette configuration, je m'attendais à pouvoir le faire nslookup oberon
sur mon bureau (Windows) et à obtenir un résultat de 192.168.1.151
. Mais cela ne se produit pas. C'est ce qui arrive:
C:\Users\me>nslookup oberon
Server: UnKnown
Address: fe80::226:f2ff:fefa:bea
*** UnKnown can't find oberon: Non-existent domain
La réinitialisation ou dnsflushing
la carte réseau sur ma machine Windows ne change rien.
Maintenant, voici pourquoi je me déchire les cheveux ici:
C:\Users\me>nslookup oberon 192.168.1.151
Server: oberon.lan
Address: 192.168.1.151
Name: oberon
Address: 192.168.1.151
De toute évidence, dnsmasq
fonctionne très bien. Si je dis à ma boîte Windows d'utiliser 192.168.1.151
pour résoudre le nom oberon
, tout va bien (le .lan
domaine faisait partie de la configuration de dnsmasq
, donc je m'attendais à le voir là-bas). Si je pouvais simplement demander à mon routeur de dire à ma machine Windows d'utiliser 192.168.1.151
quand elle fait des requêtes DNS, je devrais être bon!
Il me semble donc que le problème est dans mon routeur, mais je ne peux pas comprendre quoi faire au-delà de changer les serveurs DNS pour inclure 192.168.1.151
comme je l'ai déjà. Quelqu'un peut-il m'aider? J'essaierai de fournir toute information complémentaire souhaitée.
la source
Réponses:
Votre problème réside dans votre mauvaise compréhension de la façon dont ces serveurs DNS sont utilisés, je ne connais pas les détails exacts de la méthode utilisée par Windows pour choisir le serveur DNS à interroger, mais je parie que son principal> secondaire> tertiaire / toujours /. Et même si ce n'était pas le cas et qu'il s'agissait d'un tournoi à la ronde, vous allez toujours interroger un serveur inutile 2 fois sur 3.
Ce qui se passera, c'est que le serveur principal sera interrogé. Si cela arrive à expiration, ce qui peut être une seconde ou deux, le prochain serveur sera interrogé. Le DNS n'est pas un système "consensuel", si l'un des serveurs distants est interrogé, il finira par découvrir le résultat que votre nom d'hôte n'existe PAS, de son point de vue en tant que serveur DNS Internet.
Vous avez besoin de votre propre DNS local comme serveur DNS principal. Les autres feraient des serveurs de sauvegarde appropriés mais j'envisagerais simplement de les supprimer complètement.
Notez également que votre DNS inversé (recherche d'IP en nom) se résout en "hostname.lan", mais vos tests de résolution en aval ne concernent que le nom d'hôte. Vous devriez également avoir une résolution directe pour hostname.lan installée quelque part. Bien qu'il puisse y avoir de nombreuses recherches directes "nom à adresse" pour un hôte, il y a une attente qu'il y ait une recherche inversée de l'IP vers un nom, qui à son tour a un nom correspondant à cet enregistrement IP. Ce n'est pas toujours critique et fait parfois pleurnicher les fichiers journaux, mais certaines choses y sont plus sensibles que d'autres.
Aussi, n'oubliez pas de supprimer toute la bodgery de fichier d'hôtes que vous avez mise en place une fois que tout fonctionne (je ne sais pas si c'est pertinent pour dnsmasq, ne l'avez jamais utilisé, j'ai une configuration similaire mais plus compliquée en place en utilisant le nom ISC-BIND serveur, que vous pouvez configurer le transfert vers d'autres serveurs comme vous l'utilisez, ou simplement l'utiliser comme un serveur DNS sans transfert qui effectue lui-même la résolution du nom complet - ce que j'ai configuré).
Inutile de dire que, comme vous avez d'abord spéculé, vous êtes très loin d'être le seul à faire cette configuration, presque tous les LAN d'entreprise raisonnablement développés et un grand nombre de LAN domestiques surdéveloppés auront ce type de configuration en place.
la source
nslookup oberon
ne fonctionne toujours pas. Une chose que je n'ai pas mentionnée dans le texte de mon message d'origine, c'est qu'en cas d'nslookup
échec, il indique que le serveur qu'il a utilisé était unefe80
adresse IPv6 - que je sais être une adresse de lien local réservée. Mais je ne sais pas ce que cela signifie pour le DNS. Ma boîte Windows s'interroge-t-elle?dnsflush
ne modifie pas ce comportement..lan
domaine, j'ai configurédnsmasq
pour développer automatiquement les noms d'hôtes simples à ajouter.lan
. Runningnslookup oberon.lan 192.168.1.151
renvoie le résultat attendu deName: oberon.lan Address: 192.168.1.151
ipconfig /all
le bon serveur DNS est utilisé, si c'est vrai, vous devrez peut-être flushdns. Mais je ne peux penser à rien d'autre, ça devrait marcher.Peut-être un peu tard, mais la désactivation d'ipv6 sur mon adaptateur sans fil a fait l'affaire.
la source