Ambiente
Minha configuração de LAN é bem básica:
- Um roteador conectado ao modem do provedor e à internet
- Meu PC de desenvolvimento conectado diretamente ao roteador
O roteador fornece DHCP, mas não executa seu próprio servidor DNS. Na verdade, não há nenhum servidor DNS hospedado em qualquer lugar na minha LAN (configuração de rede doméstica típica). O roteador está configurado para enviar os servidores DNS do ISP como parte das informações de concessão do DHCP.
Eu configurei uma máquina VirtualBox no meu PC de desenvolvimento e instalei o Debian Squeeze (6.0.4) nela. O modo de rede do VirtualBox é Bridged Adapter
para simular um servidor autônomo na minha LAN. Ser um servidor VirtualBox em vez de um servidor físico não é realmente importante, mas eu o menciono por completo.
O problema
Toda vez que uma operação de rede executa uma pesquisa reversa de DNS de um ip da LAN antes da execução, o servidor tem longos atrasos. Alguns exemplos de operações de rede lentas:
- Conexão SSH ao servidor do meu dev PC
- Conexão à porta de administração do servidor Glassfish
-
netstat -l
( netstat -nl
é muito rápido)
-
Starting MTA: exim4
na inicialização demora muito para concluir
Algumas delas têm soluções alternativas, como adicionar o Ip do meu dev pc a /etc/hosts
ou adicionar uma opção específica de comando para evitar fazer pesquisas reversas de DNS. Obviamente, usar /etc/hosts
só vai tão longe porque está em desacordo com o DHCP.
No entanto, não posso deixar de pensar que estou perdendo alguma coisa. Eu realmente preciso configurar um servidor DNS em algum lugar da minha LAN? Isso parece um esforço enorme e inútil para minhas necessidades e não posso acreditar que não haja outra opção em um ambiente DHCP como o meu.
Pesquisei muito na Internet sobre isso e talvez não tenha os termos de pesquisa corretos, mas não consigo encontrar a solução ...
atualização 1 após a resposta de BillThor
Usando o host (dig dá os mesmos resultados):
# ip of stackoverflow.com
$ time host -v 64.34.119.12
Trying "12.119.34.64.in-addr.arpa"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 15537
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;12.119.34.64.in-addr.arpa. IN PTR
;; ANSWER SECTION:
12.119.34.64.in-addr.arpa. 143 IN PTR stackoverflow.com.
Received 74 bytes from 192.168.1.1#53 in 15 ms
real 0m0.020s
user 0m0.008s
sys 0m0.000s
# ip of dev pc
$ time host -v 192.168.1.50
Trying "50.1.168.192.in-addr.arpa"
;; connection timed out; no servers could be reached
real 0m10.004s
user 0m0.004s
sys 0m0.000s
Meu /etc/resolv.conf (foi criado automaticamente durante a instalação)
nameserver 192.168.1.1
Tanto o host quanto o dig retornam muito rápido para um ip público, mas levam 10 segundos para o tempo limite de um ip da LAN. Eu acho que 10s é o meu valor de tempo limite atual.
atualização 2
Com dev-pc
no arquivo / etc / hosts:
$ time getent hosts 192.168.1.50
192.168.1.50 dev-pc
real 0m0.001s
user 0m0.000s
sys 0m0.000s
Sem dev-pc
no arquivo / etc / hosts:
$ time getent hosts 192.168.1.50
real 0m10.012s
user 0m0.004s
sys 0m0.000s
Parece cada vez mais que eu terei que encontrar opções de programa por partes ou parâmetros para cada um tentando fazer pesquisas reversas de DNS! Nenhuma das máquinas (virtuais ou não) pode atuar como um servidor DNS na minha LAN, uma vez que nem sempre estão funcionando. Infelizmente, o firmware do roteador não inclui um servidor DNS.