Como é o seu /etc/resolv.conf? Procure por elementos de domínio ou pesquisa.
Configure um domínio .local para o dnsmasq e adicione-o ao seu resolv.conf e ele deverá funcionar.
Tente escavar sun.local @localhost.
Eu fiz uma instalação padrão do dnsmasq. Quando eu executo dig, parece estar usando dnsmasq (127.0.0.1), mas os resultados não incluem os nomes de host incluídos em / etc / hosts.
/ etc / hosts:
192.168.1.13 sun
em um terminal:
$ dig sun
; <<>> DiG 9.6-ESV-R4 <<>> sun
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 32131
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;sun. IN A
;; AUTHORITY SECTION:
. 9699 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2011041100 1800 900 604800 86400
;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Apr 12 05:20:56 2011
;; MSG SIZE rcvd: 96
em um terminal:
$ dig @localhost sun
; <<>> DiG 9.6-ESV-R4 <<>> @localhost sun
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 43763
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;sun. IN A
;; AUTHORITY SECTION:
. 10800 IN SOA a.root-servers.net. nstld.verisign-grs.com. 2011041800 1800 900 604800 86400
;; Query time: 40 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Apr 18 17:15:23 2011
;; MSG SIZE rcvd: 96
Eu tentei usar o local e o expand-hosts / domain, mas parece que eles não estão funcionando. Meu principal objetivo é ser capaz de usar uma máquina para hospedar o DNS da LAN, não importa se os nomes acabam sendo sun ou sun.domain, o que quer que funcione.
Aqui está meu /etc/resolv.conf
nameserver 127.0.0.1
domain members.linode.com
search members.linode.com
nameserver 72.14.188.5
nameserver 72.14.179.5
e /etc/dnsmasq.conf
domain-needed
bogus-priv
Isto é tudo em uma máquina 10.04 do Ubuntu, se isso faz diferença. Tenho acompanhado este guia: link (embora não seja literal, pois isso também configura o DHCP)
Como é o seu /etc/resolv.conf? Procure por elementos de domínio ou pesquisa.
Configure um domínio .local para o dnsmasq e adicione-o ao seu resolv.conf e ele deverá funcionar.
Tente escavar sun.local @localhost.
Este snippet da FAQ do dnsmaq parece relevante:
Q: Names on the internet are working fine, but looking up local names from /etc/hosts or DHCP doesn't seem to work.
A: Resolver code sometime does strange things when given names without any dots in. Win2k and WinXP may not use the DNS at all and just try and look up the name using WINS. On unix look at "options ndots:" in "man resolv.conf" for details on this topic. Testing lookups using "nslookup" or "dig" will work, but then attempting to run "ping" will get a lookup failure, appending a dot to the end of the hostname will fix things. (ie "ping myhost" fails, but "ping myhost." works. The solution is to make sure that all your hosts have a domain set ("domain" in resolv.conf, or set a domain in your DHCP server, see below fr Windows XP and Mac OS X). Any domain will do, but "localnet" is traditional. Now when you resolve "myhost" the resolver will attempt to look up "myhost.localnet" so you need to have dnsmasq reply to that name. The way to do that is to include the domain in each name on /etc/hosts and/or to use the --expand-hosts and --domain options.
Então sugiro que você publique seu /etc/resolv.conf
, assim como os argumentos que você está alimentando para o dnsmasq quando você o iniciar.
Eu sei que isso é de 2011, mas como ainda não há resposta aceita:
Hoje, tive um problema semelhante. Curl trabalhou para obter a resposta esperada de um haproxy lxc com o respectivo cabeçalho, mas de alguma forma meu dnsmasq local não forneceu resolução para container.test
(confirmado com nslookup).
O Google me encontrou este post de Hugo Heden, que disse que é possível seja um problema com a formatação /etc/hosts
.
O que resolveu o problema para mim foi:
no-hosts
em /etc/dnsmasq.conf
123.123.123.12 container.test
em um novo arquivo, por exemplo %código%
/etc/dnsmasq.hosts
a addn-hosts=/etc/dnsmasq.hosts
dig, bem como host, e nslookup são criados especificamente para consultar servidores de DNS. Ele não irá olhar para / etc / hosts, e de fato irá ignorar /etc/nsswitch.conf
Qualquer coisa usando a chamada gethostbyname, no entanto, usará /etc/nsswitch.conf
Por exemplo, o ping deve usar os arquivos / etc / hosts fornecidos antes do dns em /etc/nsswitch.conf, o que normalmente é.
Tags dnsmasq linux hosts-file