Configurando o dnsmasq para uma rede local

18

Eu e um pequeno grupo de desenvolvedores acabamos de mudar para um novo escritório, e eu gostaria de configurar o dnsmasq em nosso servidor de desenvolvimento. Portanto, quando implantamos aplicativos da Web lá, não precisamos editar nossos próprios arquivos de hosts. Temos um roteador em 192.168.3.1 ao qual não temos acesso. Imaginei que instalaria um servidor DNS na caixa de desenvolvimento e todos registramos seu IP como um servidor DNS secundário. Infelizmente, estou lutando para fazer isso funcionar.

O nome do servidor devel é devbox, seu IP é 192.168.3.99 e está executando o último Ubuntu Server (Karmic)

Meu computador está executando o Ubuntu Desktop (Karmic)

O que eu gostaria de alcançar

Digamos que eu tenho três sites, site1, site2, site3, rodando na caixa de desenvolvimento. Eu gostaria de acessá-los pelos URLs:

http://website1.devbox
http://website2.devbox
http://website3.devbox

Portanto, configurei o Apache na caixa devel, instalei o dnsmasq e coloquei as seguintes linhas no arquivo hosts:

192.168.3.99 website1.devbox
192.168.3.99 website2.devbox
192.168.3.99 website3.devbox

e editei meu próprio arquivo resolv.conf para incluir a caixa devel como um servidor de nomes:

nameserver 192.168.3.99 

Está funcionando bem, eu posso acessar os sites. O problema é que ele não escala bem. Gostaria que todos os domínios que terminassem com .devbox fossem encaminhados para a caixa de desenvolvimento, e é com isso que estou lutando.

Eu tentei colocar

192.168.3.99 devbox

no arquivo hosts e editando a linha no dnsmasq.conf:

# Add local-only domains here, queries in these domains are answered
# from /etc/hosts or DHCP only.
local=/devbox/

Mas não consigo fazê-lo funcionar. Se eu tentar qualquer URL que não esteja explicitamente presente no arquivo de hosts da caixa de desenvolvimento, a pesquisa de DNS falhará.

A diretiva local é outra coisa? Estou olhando para o lugar errado?

K. Norbert
fonte

Respostas:

14

Consulte a documentação do DNSmasq , especialmente a página de manual do dnsmasq e o arquivo de configuração de amostra . A palavra-chave local informa ao DNSmasq para realizar essas pesquisas de domínio com dados locais. Isso afeta as solicitações enviadas ao DNSmasq para foo.localnet e bar.localnet , por exemplo. Eu não acho que é isso que você quer.

# Add local-only domains here, queries in these domains are answered
# from /etc/hosts or DHCP only.
local=/localnet/

Para forçar as pesquisas de host / subdomínio a serem resolvidas para um endereço específico, você provavelmente desejaria usar a palavra - chave address . O segundo exemplo abaixo deve permitir que web1.devbox e web2.devbox e web73872.devbox sejam resolvidos no endereço especificado.

# Add domains which you want to force to an IP address here.
# The example below send any host in doubleclick.net to a local
# webserver.
address=/doubleclick.net/127.0.0.1

# for your example
address=/devbox/192.168.3.99

Eu uso o DNSmasq em casa para lidar com coisas simples de DNS da minha LAN; nesse caso, as palavras - chave de domínio local e associado e os hosts de expansão são adequados. O servidor DNSmasq é meu servidor de nomes principal; portanto, todas as solicitações passam por ele; quaisquer endereços não locais são passados ​​de volta ao servidor de nomes do ISP. Você pode considerar essa configuração, se possível.

charlatão quixote
fonte
uma resposta em outra pergunta indica que address=/.devbox/192.168.3.99pode ser uma sintaxe mais adequada para seus propósitos.
quack quixote
Puxa, eu deveria ter acabado de ler as partes que colei na configuração, era óbvio que não é o que eu preciso. A diretiva de endereço resolveu o problema, obrigado!
K.Norbert
Eu usei o acima com um toque: o servidor web / dns / dhcp possui uma interface sem fio no modo Adhoc. Embora ao capturar pacotes eu possa ver a solicitação e resposta mDNS, não consigo acessar o servidor pelo nome. Como se o conteúdo da resposta nunca fosse registrado. Alguma ideia?
George George