Servidor DNS local

1

Atualmente, estou tentando configurar uma rede ad-hoc para passar notas enquanto estou na aula. A ideia é executar um servidor de bate-papo no meu laptop (estou usando prosódia, pronto e funcionando), para podermos compartilhar informações.

Também configurei um servidor DNS BIND no meu laptop para que meus amigos possam fazer login usando meu nome de host em vez de configurar manualmente as contas para apontar para o meu endereço IP.

Estou tendo dois problemas separados nesse sentido. 1) Eu não consigo descobrir como fazer com que seus computadores usem meu laptop como servidor DNS. Devo instalar um servidor DHCP também? 2) Meu computador se recusa a usar meu próprio servidor DNS. Eu acho que é por causa do dnsmasq que o networkmanager roda. Eu posso contornar isso editando / etc / hosts, mas eu quero usar o meu servidor localmente.

Estou executando 16.04.

Para as gerações futuras: em relação ao número 2, eu fui ao arquivo de configuração NetworkManagers e removi a linha incluindo dnsmasq. Caso contrário, o dnsmasq se recusa a usar um servidor dns no host local.

Além disso, eu configurei minha rede ad-hoc para fazer o endereço IP manual para mim, porque o automático não funcionava para mim. Então eu usei o NetworkManager para me dar um IP estático e, em seguida, todos os meus clientes usam o DHCP do dnsmasq muito bem.

    
por A Gold Man 01.06.2017 / 18:40

2 respostas

1

Você pode fazer isso com dnsmasq .

  

O Dnsmasq aceita consultas DNS e as responde de um cache pequeno, local ou as encaminha para um servidor DNS real e recursivo. Ele carrega o conteúdo de / etc / hosts para que nomes de host locais que não aparecem no DNS global possam ser resolvidos e também responde a consultas DNS para hosts configurados para DHCP.

Instalar dnsmasq é apenas um caso de usar o apt-get.

sudo apt-get install dnsmasq

Configure o dnsmasq como DNS DHCP

Olhando o arquivo /etc/dnsmasq.conf primeiro. As linhas são listadas são aquelas que eu mudei de seus padrões. Apenas descomente e emendá-los conforme necessário. (Remova o "#" do começo da linha).

sudo nano /etc/dnsmasq.conf
domain-needed
bogus-priv
no-resolv
no-poll
server=/example.com/192.168.0.5
server=8.8.8.8
server=208.67.220.220
local=/example.com/
address=/doubleclick.net/127.0.0.1
no-hosts
addn-hosts=/etc/dnsmasq_static_hosts.conf
expand-hosts
domain=example.com
dhcp-range=192.168.0.20,192.168.0.50,72h  
dhcp-host=mylaptop,192.168.0.199,36h
dhcp-option=option:router,192.168.0.1
dhcp-option=option:ntp-server,192.168.0.5
dhcp-option=19,0 # ip-forwarding off
dhcp-option=44,192.168.0.5 # set netbios-over-TCP/IP aka WINS
dhcp-option=45,192.168.0.5 # netbios datagram distribution server
dhcp-option=46,8           # netbios node type

O que essas linhas farão por você.

  • domain-needed Isso indica dnsmasq para nunca passar nomes abreviados para os servidores DNS upstream. Se o nome não estiver no arquivo /etc/hosts local, "não encontrado" será retornado.

  • bogus-priv Todas as pesquisas de IP reverso (192.168.xx) que não são encontradas em /etc/hosts serão retornadas como "nenhum tal domínio" e não serão encaminhadas aos servidores upstream.

  • não-resolv Não leia resolv.conf para encontrar os servidores onde procurar o dns.

  • no-poll Não pesquisa resolv.conf para alterações

  • server = 8.8.8.8 Defina um ou mais DNS servidores para usar quando os endereços não forem locais. Estes são DNS servidores abertos.

  • local = / example.com / Em nosso domínio local, as consultas nesses domínios são respondidas pelos arquivos /etc/hosts ou estáticos-hosts.

  • address = / doubleclick.net / 127.0.0.1 Use essa força um endereço para os domínios especificados. por exemplo, para bloquear anúncios, force doubleclck.net to localhost

  • no-hosts Esta opção interrompe dnsmasq usando o arquivo local /etc/hosts como fonte de pesquisas.

  • addn-hosts = /etc/dnsmasq_static_hosts.conf Força dnsmasq a usar este arquivo para pesquisas. Está no mesmo formato que /etc/hosts .

  • expand_hosts Portanto, podemos ver nossos hosts locais por meio de nosso domínio inicial sem precisar especificar o domínio repetidamente em nosso arquivo /etc/hosts .

  • domain Este é o nome do seu domínio local. Ele dirá ao servidor DHCP qual host fornecerá endereços IP para.

  • dhcp-range Esse é o intervalo de IPs que o DHCP veiculará: 192.168.0.20 to 192.168.0.50 , com um tempo de concessão de 72 horas. O tempo de concessão é por quanto tempo esse IP será vinculado a um host.

  • dhcp-host = mylaptop, 192.168.0.199,36h Qualquer máquina dizendo que eles são hostname = ‘mylaptop’ obtém este IP address

  • dhcp-option = opção: roteador, 192.168.0.1 Quando um host está solicitando um endereço IP via DHCP , informe também o gateway a ser usado.

  • dhcp-option = opção: ntp-server, 192.168.0.5 Quando um host está solicitando um endereço IP por meio de DHCP , informe o mesmo NTP . p>

No arquivo /etc/dnsmasq_static_hosts.conf , você pode adicionar uma lista de máquinas locais com endereços IP estáticos no mesmo formato do arquivo de hosts. Também é uma maneira fácil de criar aliases ou registros CNAME.

192.168.0.8  mail mail.example.com
192.168.0.9  smtp smtp.example.com
192.168.0.120 mythtvbox mythtvbox.example.com

Iniciando e interrompendo o serviço

sudo service dnsmasq start
sudo service dnsmasq stop
sudo service dnsmasq restart

E mais uma coisa a fazer. Encerre todos os outros DHCP servidores na rede local. Seu DHCP/DNS server deve ser apenas um.

    
por 2707974 01.06.2017 / 21:57
0

Configurar um servidor DNS local parece ser muito trabalhoso e exagerado para o seu problema. Idem para criar um servidor DHCP. Ambas as abordagens provavelmente funcionariam, mas quanto tempo você quer investir neste exercício?

Acho que a maneira mais fácil e mais limpa de fazer o que você quer é fazer com que cada usuário adicione uma linha ao arquivo local / etc / host:

nome_do_host endereço_IP

Então, após o término do exercício, essa linha pode ser removida ou comentada.

Com base no seu feedback, é como criar uma LAN privada que você controla completamente, com seu próprio servidor DHCP e DNS como o caminho a ser seguido. Obviamente, não há necessidade de explicitar como fazer isso aqui, já que é um processo complicado que parece ser capaz de executar.

    
por jones0610 01.06.2017 / 19:30