Use dnsmasq para fornecer serviços de DNS & DHCP

muitos entusiastas de tecnologia acham a capacidade de controlar o seu nome de host resolução importante. A configuração de servidores e serviços geralmente requer alguma forma de endereço fixo, e às vezes também requer formas especiais de resolução, tais como a definição de servidores Kerberos ou LDAP, servidores de E-mail, etc. Tudo isso pode ser alcançado com o dnsmasq.

dnsmasq é um programa leve e simples que permite a emissão de endereços DHCP na sua rede e o registo do nome da máquina & endereço IP em DNS. Esta configuração também permite a resolução externa, de modo que toda a sua rede será capaz de falar consigo mesma e encontrar sites externos também.

este artigo cobre a instalação e configuração de dnsmasq em uma máquina virtual ou pequena máquina física como um Raspberry Pi para que possa fornecer esses serviços em sua rede doméstica ou laboratório. Se você tem uma configuração existente e só precisa ajustar as configurações para a sua estação de trabalho local, leia o artigo anterior que cobre a configuração do plugin dnsmasq no NetworkManager.

Instale o pacote dnsmasq

Primeiro, instale o pacote dnsmasq:

sudo dnf install dnsmasq

a seguir, activar e iniciar o serviço dnsmasq:

sudo systemctl enable --now dnsmasq

Configure dnsmasq

primeiro, faça uma cópia de segurança do dnsmasq.ficheiro conf:

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

em seguida, editar o arquivo e fazer alterações no seguinte para refletir a sua rede. Neste exemplo, mydomain.org é o nome de domínio, 192.168.1.10 é o endereço IP do servidor dnsmasq e 192.168.1.1 é o gateway padrão.

sudo vi /etc/dnsmasq.conf

inserir o seguinte conteúdo:

domain-neededbogus-privno-resolvserver=8.8.8.8server=8.8.4.4local=/mydomain.org/listen-address=::1,127.0.0.1,192.168.1.10expand-hostsdomain=mydomain.orgdhcp-range=192.168.1.100,192.168.1.200,24hdhcp-option=option:router,192.168.1.1dhcp-authoritativedhcp-leasefile=/var/lib/dnsmasq/dnsmasq.leases

testar a configuração para verificar se existem erros de escrita e sintaxe:

$ sudo dnsmasq --testdnsmasq: syntax check OK.

agora edite o arquivo hosts, que pode conter tanto hosts alocadas de forma estática e dinâmica. Os endereços estáticos devem estar fora do intervalo DHCP que indicou anteriormente. Hosts usando DHCP mas que precisam de um endereço fixo devem ser inseridos aqui com um endereço dentro do alcance DHCP.

sudo vi /etc/hosts

as duas primeiras linhas já devem estar lá. Adicione as linhas restantes para configurar o roteador, o servidor dnsmasq e dois servidores adicionais.

127.0.0.1 localhost localhost.localdomain::1 localhost localhost.localdomain192.168.1.1 router192.168.1.10 dnsmasq192.168.1.20 server1192.168.1.30 server2

reiniciar o serviço dnsmasq:

sudo systemctl restart dnsmasq

em seguida, adicione os serviços ao firewall para permitir que os clientes se conectem:

sudo firewall-cmd --add-service={dns,dhcp}
sudo firewall-cmd --runtime-to-permanent

Test name resolution

First, install bind-utils to get the nslookup and dig packages. Estes permitem que você execute tanto olhar para a frente e para trás. Você poderia usar o ping se você preferir não instalar pacotes extras. mas essas ferramentas valem a pena instalar para a funcionalidade adicional de solução de problemas que eles podem fornecer.

sudo dnf install bind-utils

testem agora a resolução. Primeiro, teste a resolução para a frente (nome da máquina para o endereço IP) :

$ nslookup server1Server: 127.0.0.1Address: 127.0.0.1#53Name: server1.mydomain.orgAddress: 192.168.1.20

em seguida, teste a resolução inversa (endereço IP para o nome da máquina) :Por fim, teste para resolução de nomes de host fora da sua rede:

$ nslookup fedoramagazine.orgServer: 127.0.0.1Address: 127.0.0.1#53Non-authoritative answer:Name: fedoramagazine.orgAddress: 35.196.109.67

testar as locações DHCP

para testar as locações DHCP, você precisa arrancar uma máquina que usa DHCP para obter um endereço IP. Qualquer variante Fedora fará isso por padrão. Uma vez que você tenha inicializado a máquina cliente, verifique se ele tem um endereço e que ele corresponde ao arquivo de locação para dnsmasq.

da máquina em funcionamento dnsmasq:

$ sudo cat /var/lib/dnsmasq/dnsmasq.leases1598023942 52:54:00:8e:d5:db 192.168.1.100 server3 01:52:54:00:8e:d5:db1598019169 52:54:00:9c:5a:bb 192.168.1.101 server4 01:52:54:00:9c:5a:bb

Extensão da funcionalidade

pode atribuir às máquinas um endereço IP fixo através do DHCP, adicionando – o ao seu ficheiro hosts com o endereço que deseja (dentro do seu intervalo DHCP). Faça isso adicionando ao dnsmasq.conf file a seguinte linha, que atribui o IP listado para qualquer máquina que tenha esse nome:

dhcp-host=myhost

Alternativamente, você pode especificar um endereço MAC que deve sempre ser dado um endereço IP fixo:

dhcp-host=11:22:33:44:55:66,192.168.1.123

poderá indicar um servidor de arranque PXE se precisar de automatizar compilações de máquinas

tftp-root=/tftpboot
dhcp-boot=/tftpboot/pxelinux.0,boothost,192.168.1.240

isto deverá apontar para o URL actual do seu servidor de TFTP.

se precisar de indicar os registos SRV ou TXT, por exemplo para LDAP, Kerberos ou semelhantes, pode adicionar estes:

srv-host=_ldap._tcp.mydomain.org,ldap-server.mydomain.org,389
srv-host=_kerberos._udp.mydomain.org,krb-server.mydomain.org,88
srv-host=_kerberos._tcp.mydomain.org,krb-server.mydomain.org,88
srv-host=_kerberos-master._udp.mydomain.org,krb-server.mydomain.org,88
srv-host=_kerberos-adm._tcp.mydomain.org,krb-server.mydomain.org,749
srv-host=_kpasswd._udp.mydomain.org,krb-server.mydomain.org,464
txt-record=_kerberos.mydomain.org,KRB-SERVER.MYDOMAIN.ORG



+