Meio Ambiente
Minha configuração de LAN é bastante básica:
- Um roteador conectado ao modem do ISP e à Internet
- Meu pc de desenvolvimento conectado diretamente ao roteador
O roteador fornece DHCP, mas não executa seu próprio servidor DNS. De fato, não há servidor DNS hospedado em qualquer lugar da minha LAN (configuração típica de rede doméstica). O roteador está configurado para enviar os servidores DNS do ISP como parte das informações de concessão do DHCP.
Configurei uma máquina VirtualBox no meu PC de desenvolvimento e instalei o Debian Squeeze (6.0.4) nele. O modo de rede do VirtualBox é Bridged Adapter
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 apresenta longos atrasos. Alguns exemplos de operações de rede lentas:
- Conexão SSH ao servidor do meu PC de desenvolvimento
- Conexão à porta administrativa do servidor Glassfish
netstat -l
(netstat -nl
é muito rápido)Starting MTA: exim4
na inicialização leva muito tempo para ser concluído
Alguns deles têm soluções alternativas, como adicionar o IP do meu PC dev /etc/hosts
ou adicionar uma opção específica de comando para evitar fazer pesquisas reversas de DNS. Obviamente, o uso /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? Parece um esforço enorme e inútil para minhas necessidades e não acredito que não exista outra opção em um ambiente DHCP como o meu.
Pesquisei bastante na rede 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 host (dig fornece 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
O host e o dig retornam muito rapidamente para um IP público, mas levam 10 segundos para o tempo limite para um IP da LAN. Eu acho que 10s é o meu valor de tempo limite atual.
atualização 2
Com o dev-pc
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 vou ter que encontrar opções ou parâmetros de programa por partes para cada um tentando fazer pesquisas de DNS reversas! Nenhuma das máquinas (virtuais ou não) pode atuar como um servidor DNS na minha LAN, pois nem sempre ela está ativa. Infelizmente, o firmware do roteador não inclui um servidor DNS.