nslookup Falha

3

Estou tentando descobrir por que o nslookup não consegue encontrar um nome de host local.

CONFIGURAÇÃO Eu estou tentando configurar um servidor de nomes autoritativo, trabalhando a partir de "DNS e BIND", executando bind9, no Debian 5.0, em um chroot "jail". bind parece começar bem, pois não há mensagens de erro no syslog. hostname relata "workshop.example.net", hostname -f informa o FQDN como o mesmo. O arquivo / etc / hosts contém uma linha: "xx.xx.xxx.xx workshop workshop.example.net"

O arquivo /etc/resolv.conf pode ser um problema; sua linha de domínio é definida como um valor inadequado quando eu reinicializo. Mas o nslookup ainda não funciona depois que eu edito a linha para "domain example.net" e reinicio o bind9.

SAÍDA DO NSLOOKUP O nslookup fornece o endereço SERVER do servidor de nomes padrão, mas diz "não é possível encontrar o workshop: domínio NX".

QUERY O que poderia estar errado aqui?

É possível que o problema esteja no registro dos hosts e servidores de nomes do domínio? Não tenho certeza se tenho os valores definidos corretamente no registrador. Mas eu acho que o nslookup deve encontrar o endereço de um host local se eu tiver configurado corretamente o bind e os vários arquivos host e resolv.conf.

ATUALIZAÇÃO Aqui está a saída do dig: Comando: dig A @workshop workshop.example.net

Saída:

; <<>> DiG 9.5.1-P2 <<>> A @workshop workshop.example.net
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 11327
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;workshop.example.net. IN A

;; ANSWER SECTION:
workshop.example.net. 3600 IN A   72.14.190.80

;; AUTHORITY SECTION:
example.net. 3600 IN      NS      workshop.example.net.

;; Query time: 0 msec
;; SERVER: 72.14.190.80#53(72.14.190.80)
;; WHEN: Tue Jul  7 00:25:58 2009
;; MSG SIZE  rcvd: 82

Eu não sei o que estou procurando aqui, mas o endereço IP na seção RESPOSTA é o que eu esperaria.

ATUALIZAÇÃO - 2 Ok, isso parece ser corrigido.

O arquivo resolve.conf agora é o seguinte:

domain example.net             # This was domain members.linode.net
#search members.linode.com     # Previously, not commented out
nameserver 127.0.0.1           # This line added
nameserver 72.14.179.5
nameserver 72.14.188.5

Isso reflete três alterações do estado não funcional: 1) O domínio era anteriormente members.linode.com - eu mudei isso para o nome do meu domínio, o que eu acho ajuda acrescentando 'example.net' ao final de 'workshop'. 2) Eu comentei a linha de pesquisa, que eu acho que estava enviando o resolvedor para o domínio members.linode.com para procurar por "workshop". 3) Eu adicionei o servidor de nomes 127.0.0.1, o que eu acho que significa que o resolvedor olha primeiro para o servidor de nomes local antes de ir para os outros.

Eu não entendo completamente a saída que estou obtendo para o 'workshop', mas vou olhar para o dig, antes de fazer qualquer pergunta sobre isso.

Muito obrigado a todos que se deram ao trabalho de analisar isso e adivinhar o problema.

    
por chernevik 07.07.2009 / 00:21

5 respostas

3

QUERY What could be going wrong here?

Algumas coisas estão conspirando contra você. : - (

The file /etc/resolv.conf could be a problem; its domain line gets set to an inappropriate value when I reboot.

Como o seu /etc/resolv.conf está sendo criado / preenchido?

Meu palpite é que seu endereço IP está sendo atribuído por um servidor DHCP. Como parte da atribuição de endereço IP, seu cliente DHCP está reescrevendo /etc/resolv.conf com domain e nameserver atribuídos pelo servidor DHCP. Portanto, o valor "inapropriado" depois que você reinicia.

NSLOOKUP OUTPUT nslookup gives the SERVER address of the default name server, but says "can't find workshop: NX domain."

Isso ocorre porque o servidor DNS padrão não é seu servidor DNS local - é um dos servidores DNS atribuídos a você pelo servidor DHCP. Este "outro" servidor DNS não sabe sobre o seu domínio.

But nslookup still doesn't work after I edit the line to "domain example.net" and restart bind9.

Isso porque você precisa adicionar seu servidor DNS local à lista de servidores de nomes em /etc/resolv.conf . Imediatamente antes de qualquer outra entrada nameserver , adicione ...

nameserver 127.0.0.1

Agora, quando você usa nslookup , seu servidor DNS local deve ser seu servidor DNS padrão . nslookup deve agora ser capaz de resolver "workshop".

UPDATE Here is the output of dig: Command: dig A @workshop workshop.example.net

Isso confirma que seu domínio está configurado corretamente no seu servidor DNS de ligação local.

Como você já passou, suas alterações em /etc/resolv.conf serão sobrescritas na próxima vez que você reinicializar. Você tem duas opções:

  • Reconfigure sua máquina para usar um IP estático. /etc/resolv.conf não será mais sobrescrito, portanto, suas alterações persistirão após a reinicialização.

  • Reconfigure seu cliente DHCP para que ele não sobrescreva /etc/resolv.conf . Este tópico deve apontar na direção certa.

por 07.07.2009 / 05:05
2

bind não usará seu arquivo / etc / hosts. E o nslookup consultará fontes conforme listado em "/etc/nsswitch.conf".

A linha de domínio do /etc/resolv.conf é usada apenas para completar nomes de hosts sem domínio, por exemplo: "nslookup workshop".

Para testes adicionais, sugiro usar o dig:

dig A @server workshop.example.net

Isto irá consultar o servidor dns "server" para o registro de "workshop.example.net".

    
por 07.07.2009 / 00:34
1

O workshop.example.com está no arquivo de zona por example.com? bind não lê seu / etc / hosts, apenas seus arquivos de zona.

    
por 07.07.2009 / 00:30
1

Você pode querer definir o nslookup para usar um modo de depuração. Desde que você cavou, estou presumindo um servidor semelhante ao Linux aqui.

> set debug
> www.yourdomain.net
Server:          [your primary dns]
Address:         [your primary dns]

--------------
[whole bunch of data]

A saída pode fornecer mais informações. "set debug2" funciona em algumas plataformas para fornecer mais informações (por exemplo, no WinXP, ele informará o valor do TTL para os resultados retornados, à mão!)

    
por 07.07.2009 / 04:15
1

NSLOOKUP OUTPUT nslookup gives the SERVER address of the default name server, but says "can't find workshop: NX domain."

O servidor padrão que o nslookup usa é diferente daquele que você está configurando? Na saída de escavação que você citou, você consultou especificamente a "oficina" do servidor e obteve a resposta correta. Um comando nslookup para realizar o mesmo seria nslookup workshop.example.net server .

Se isso funcionar, basta fazer seu computador usar seu servidor. /etc/resolv.conf seria o primeiro lugar para fazer isso.

    
por 07.07.2009 / 05:01