Pesquisa de site

Como configurar um servidor DNS/DHCP usando dnsmasq no CentOS/RHEL 8/7


Um servidor Dynamic Host Configuration Protocol (DHCP) atribui dinamicamente endereços IP e outros parâmetros de configuração de rede a cada dispositivo em uma rede. Um encaminhador DNS em uma LAN encaminha consultas DNS para nomes de domínio não locais para servidores DNS upstream (fora dessa rede). Um servidor de cache DNS responde a solicitações recursivas de clientes para que a consulta DNS possa ser resolvida mais rapidamente, melhorando assim a velocidade de pesquisa de DNS para sites visitados anteriormente.

dnsmasq é um encaminhador DNS leve e fácil de configurar, software de servidor DHCP e subsistema de anúncio de roteador para redes pequenas. Dnsmasq suporta Linux, *BSD, Mac OS X e também Android.

Ele apresenta um subsistema DNS que fornece um servidor DNS local para a rede, com encaminhamento de todos os tipos de consulta para servidores DNS recursivos upstream e armazenamento em cache de tipos de registros comuns. O subsistema DHCP suporta DHCPv4, DHCPv6, BOOTP, PXE e um servidor TFTP. E o subsistema de anúncio do roteador oferece suporte à configuração automática básica para hosts IPv6.

Neste artigo, orientaremos você nas instruções sobre como instalar e configurar o servidor DNS/DHCP usando dnsmasq no CentOS/RHEL 8/7 > distribuições.

Instalando dnsmasq no CentOS e RHEL Linux

1. O pacote dnsmasq está disponível nos repositórios padrão e pode ser facilmente instalado usando o gerenciador de pacotes YUM conforme mostrado.

yum install dnsmasq

2. Assim que a instalação do pacote dnsmasq for concluída, você precisará iniciar o serviço dnsmasq por enquanto e habilitá-lo para iniciar automaticamente na inicialização do sistema. Além disso, verifique seu status para garantir que esteja funcionando usando os seguintes comandos systemctl.

systemctl start dnsmasq
systemctl enable dnsmasq
systemctl status dnsmasq

Configurando o servidor dnsmasq no CentOS e RHEL Linux

3. O servidor dnsmasq pode ser configurado através do arquivo /etc/dnsmasq.conf (que contém opções bem comentadas e explicadas), e o usuário Arquivos de configuração definidos também podem ser adicionados no diretório /etc/dnsmasq.d.

O DNS está habilitado por padrão, portanto, antes de fazer qualquer alteração, certifique-se de criar um backup do arquivo /etc/dnsmasq.conf.

cp /etc/dnsmasq.conf /etc/dnsmasq.conf.orig

4. Agora abra o arquivo /etc/dnsmasq.conf usando seu editor de texto favorito e faça as seguintes configurações sugeridas.

vi /etc/dnsmasq.conf 

A opção listen-address é usada para definir o endereço IP, onde o dnsmasq irá escutar. Para usar seu servidor CentOS/RHEL para escutar solicitações DHCP e DNS na LAN, defina o listen-address aos seus endereços IP da LAN (lembre-se de incluir 127.0.0.1) conforme mostrado. Observe que o IP do servidor deve ser estático.

listen-address=::1,127.0.0.1,192.168.56.10

Relacionado ao acima, você pode restringir a interface de escuta do dnsmasq usando a opção de interface (adicionar mais linhas para mais de uma interface).

interface=eth0

5. Se você deseja que um domínio (que você pode definir como mostrado a seguir) seja adicionado automaticamente a nomes simples em um arquivo hosts, remova o comentário do expansão. opção hosts.

expand-hosts

6. Para definir o domínio para dnsmasq, o que significa que os clientes DHCP terão nomes de domínio totalmente qualificados, desde que o domínio definido seja correspondente e defina o “domínio ” Opção DHCP para todos os clientes.

domain=tecmint.lan

7. Em seguida, defina também o servidor DNS upstream para domínios não locais usando a opção servidor (no formato servidor=dns_server_ip) conforme mostrado .

Google's nameservers
server=8.8.8.8
server=8.8.4.4

8. Então você pode forçar seu domínio local para um(s) endereço(s) IP usando a opção endereço conforme mostrado.

address=/tecmint.lan/127.0.0.1 
address=/tecmint.lan/192.168.56.10

9. Salve o arquivo e verifique se há erros na sintaxe do arquivo de configuração, conforme mostrado.

dnsmasq --test

Configurando dnsmasq com arquivo /etc/resolv.conf

10. Nesta etapa, você precisa fazer com que todas as consultas sejam enviadas ao dnsmasq adicionando os endereços localhost como os únicos servidores de nomes no arquivo /etc/resolv.conf.

vi /etc/resolv.conf

11. O arquivo /etc/resolv.conf é mantido por um daemon local, especialmente o NetworkManager, portanto, quaisquer alterações feitas pelo usuário serão sobrescritas. Para evitar isso, proteja-o contra gravação definindo o atributo de arquivo imutável (desativando o acesso de gravação ao arquivo) usando o comando chattr conforme mostrado.

chattr +i /etc/resolv.conf
lsattr /etc/resolv.conf

Definição de hosts e nomes DNS

12. O Dnsmasq lê todos os hosts DNS e nomes do arquivo /etc/hosts, então adicione os endereços IP e pares de nomes dos seus hosts DNS como mostrado.

127.0.0.1       dnsmasq
192.168.56.10 	dnsmasq 
192.168.56.1   	gateway
192.168.56.100	maas-controller 
192.168.56.20 	nagios
192.168.56.25 	webserver1

Importante: Os nomes DNS locais também podem ser definidos importando nomes do subsistema DHCP ou pela configuração de uma ampla variedade de tipos de registros úteis.

13. Para aplicar as alterações acima, reinicie o serviço dnsmasq conforme mostrado.

systemctl restart dnsmasq

14. Se você tiver o serviço firewalld em execução, será necessário abrir os serviços DNS e DHCP na configuração do firewall. , para permitir que solicitações de hosts em sua LAN passem para o servidor dnsmasq.

firewall-cmd --add-service=dns --permanent
firewall-cmd --add-service=dhcp --permanent
firewall-cmd --reload

Testando DNS local

15. Para testar se o servidor DNS local ou encaminhamento está funcionando bem, você precisa usar ferramentas como dig ou nslookup para realizar consultas DNS. Essas ferramentas são fornecidas pelo pacote bind-utils que pode não vir pré-instalado no CentOS/RHEL 8, mas você pode instalá-lo conforme mostrado.

yum install bind-utils

16. Depois de instalar, você pode executar uma consulta simples em seu domínio local, conforme mostrado.

dig tecmint.lan
OR
nslookup tecmint.lan

17. Você também pode tentar consultar o FQDN de um dos servidores.

dig webserver1.tecmint.lan
OR
nslookup webserver1.tecmint.lan

18. Para testar uma pesquisa reversa de IP, execute um comando semelhante.

dig -x 192.168.56.25
OR
nslookup 192.168.56.25

Habilite o servidor DHCP usando dnsmasq

19. Você pode ativar o servidor DHCP removendo o comentário da opção dhcp-range e fornecendo o intervalo de endereços disponíveis para locação e, opcionalmente, um tempo de locação por exemplo (repetir para mais de uma rede).

dhcp-range=192.168.0.50,192.168.0.150,12h

20. A opção a seguir define onde o servidor DHCP manterá seu banco de dados de locação, o que ajudará você a verificar facilmente os endereços IP que ele atribuiu.

dhcp-leasefile=/var/lib/dnsmasq/dnsmasq.leases

21. Para colocar o servidor DHCP no modo autoritativo, remova o comentário da opção.

dhcp-authoritative

22. Salve o arquivo e reinicie o serviço dnsmasq para aplicar as alterações recentes.

systemctl restart dnsmasq

Isso nos leva ao final deste guia. Para entrar em contato conosco em caso de dúvidas ou opiniões que você deseja compartilhar sobre este guia, use o formulário de feedback abaixo.