O servidor DNS não pode resolver o nome do host local

2

Estou tentando configurar um servidor Apache no meu RHEL6.4 vm e não consigo porque dnsmasq não pode reconhecer o nome do host por algum motivo:

nslookup rhel64.example.com
Server:         xxx.xxx.xx.1
Address:        xxx.xxx.xx.1#53

server can't find rhel64.exmple.com: NXDOMAIN

/etc/hosts :

xxx.x.x.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

/etc/resolv.conf :

; generated by /sbin/dhclient-script
search novalocal example.com
nameserver xxx.xxx.xx.1

Por favor, deixe-me saber se há alguma coisa que você precisa ver para resolver o meu problema. Não consigo usar um servidor DNS diferente.

Procurando uma maneira de tornar dnsmasq resolver o nome do host sem alterar os servidores DNS.

    
por pt18cher 30.07.2013 / 14:30

1 resposta

1

Espero que o endereço IP do seu servidor seja corrigido. Seu /etc/hosts deve conter

127.0.0.1  localhost
127.0.0.1  localhost localhost.localdomain localhost4 localhost4.localdomain4 
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
xxx.x.x.1  rhel64.example.com rhel64

localhost nunca deve apontar para um endereço diferente de 127.0.0.1 ou :: 1. Adicione hosts adicionais com endereços fixos a /etc/hosts , conforme necessário.

Para endereços dinâmicos, verifique se você definiu o domínio correto em /etc/dnsmasq.conf e certifique-se de que o nome do host seja enviado na solicitação. Verifique o arquivo dnsmasq.leases , que deve estar no diretório /var/lib , tente verificar. Domínio deve ser especificado assim.

domain=example.com

Como alternativa, você pode fornecer endereços fixos no arquivo dnsmasq.conf ou /etc/ethers . Uma linha como essa mapeará o endereço MAC aa.bb.cc.dd.ee.ff para 192.0.2.1 . O nome DNS seria especificado em /etc/hosts , conforme mencionado acima.

 aa.bb.cc.dd.ee.ff     192.0.2.1

EDIT: Diagnóstico eu usaria incluir.

Executando o getent no host com o dnsmasq em execução.

 getent hosts rhel64

Isso deve retornar o valor inserido no arquivo de hosts ou retornado pelo DNS. Se isso funcionar, tente usar o comando host para procurar o endereço. Use nslookup se os hosts não estiverem disponíveis. Tente esses comandos. (Parece que os servidores dnsmasq e apache estão no mesmo host.

 hosts rhel64.
 hosts rhel64.example.com.
 hosts rhel64.  localhost
 hosts rhel64.example.com.  localhost
 hosts rhel64.  rhel64. 
 hosts rhel64.example.com.  rhel64.
 hosts rhel64.  rhel64.example.com.
 hosts rhel64.example.com.  rhel64.example.com.

Qual comando falha e como ele falha deve ajudá-lo a determinar o problema. Você também pode querer garantir que o dnsmasq esteja escutando em todos os endereços IP.

Ao diagnosticar o problema: As solicitações para rhel64. são para o nome do host não qualificado com um domínio e as solicitações para rhel64.example.com. são para nome totalmente qualificado. O ponto final nos nomes diz ao resolvedor para não tentar domínios da lista de busca. O segundo nome do host, se especificado, substitui os servidores de nomes listados em /etc/resolv.conf . Neste caso, usei os servidores de /etc/resolv.conf , o endereço do host local (127.0.0.1 ou :: 1), o endereço do nome do host como pesquisado pelo DNS e o endereço do nome completo como consultado a partir do nome sever. Os dois últimos servidores não funcionarão se a procura inicial pelo nome falhar.

 netstat -an | grep :53

EDIT: Ao reler o seu post, percebo que você está recebendo o seu endereço do DHCP, as notas sobre como configurar um endereço IP fixo se aplicam a servidores DHCP estilo Unix. Eles devem ser aplicados ao dchp-server, que é provavelmente o roteador em xxx.x.x.1, que não seria o endereço dos seus servidores. Você deve conseguir obter o endereço IP atual com o comando ifconfig ou o comando mais recente ip addr . Este é o endereço que deve ser combinado com o seu nome de host no arquivo / etc / hosts.

Se você não tem acesso ao roteador, pode tentar obter o DHCP para atualizar o serviço DNS para você. Adicione a seguinte entrada ao nosso arquivo de configuração DHCP:     opção fqdn.fqdn rhel64.example.com; ou     opção fqdn.fqdn rhel64;

Depois de adicionar a entrada, você precisará reiniciar o processo dhclient . Experimente os comandos

sudo dhclient -r
sudo dhclient

Caso contrário, você precisará reiniciar a interface ou toda a configuração de rede.

    
por 30.07.2013 / 14:38