De nombreux passionnés de technologie trouvent importante la possibilité de contrôler la résolution de leur nom d’hôte. La configuration de serveurs et de services nécessite généralement une certaine forme d’adresse fixe, et nécessite parfois également des formes spéciales de résolution telles que la définition de serveurs Kerberos ou LDAP, de serveurs de messagerie, etc. Tout cela peut être réalisé avec dnsmasq.
dnsmasq est un programme léger et simple qui permet d’émettre des adresses DHCP sur votre réseau et d’enregistrer le nom d’hôte & adresse IP dans DNS. Cette configuration permet également une résolution externe, de sorte que l’ensemble de votre réseau pourra également se parler et trouver des sites externes.
Cet article couvre l’installation et la configuration de dnsmasq sur une machine virtuelle ou une petite machine physique comme un Raspberry Pi afin qu’il puisse fournir ces services dans votre réseau domestique ou votre laboratoire. Si vous avez une configuration existante et que vous avez juste besoin d’ajuster les paramètres de votre poste de travail local, lisez l’article précédent qui couvre la configuration du plugin dnsmasq dans NetworkManager.
Installer dnsmasq
Tout d’abord, installez le paquet dnsmasq:
sudo dnf install dnsmasq
Ensuite, activez et démarrez le service dnsmasq:
sudo systemctl enable --now dnsmasq
Configurez dnsmasq
Tout d’abord, effectuez une copie de sauvegarde du dnsmasq.fichier de configuration:
sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
Ensuite, modifiez le fichier et apportez les modifications suivantes pour refléter votre réseau. Dans cet exemple, mydomain.org est le nom de domaine, 192.168.1.10 est l’adresse IP du serveur dnsmasq et 192.168.1.1 est la passerelle par défaut.
sudo vi /etc/dnsmasq.conf
Insérer le contenu suivant:
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
Testez la configuration pour vérifier les fautes de frappe et les erreurs de syntaxe:
$ sudo dnsmasq --testdnsmasq: syntax check OK.
Éditez maintenant le fichier hosts, qui peut contenir à la fois des hôtes alloués de manière statique et dynamique. Les adresses statiques doivent se trouver en dehors de la plage DHCP que vous avez spécifiée précédemment. Les hôtes utilisant DHCP mais qui ont besoin d’une adresse fixe doivent être entrés ici avec une adresse dans la plage DHCP.
sudo vi /etc/hosts
Les deux premières lignes devraient déjà être là. Ajoutez les lignes restantes pour configurer le routeur, le serveur dnsmasq et deux serveurs supplémentaires.
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
Redémarrez le service dnsmasq:
sudo systemctl restart dnsmasq
Ajoutez ensuite les services au pare-feu pour permettre aux clients de se connecter:
sudo firewall-cmd --add-service={dns,dhcp}
sudo firewall-cmd --runtime-to-permanent
Résolution du nom du test
Tout d’abord, installez bind-utils pour obtenir les paquets nslookup et dig. Ceux-ci vous permettent d’effectuer des recherches avant et arrière. Vous pouvez utiliser ping si vous préférez ne pas installer de paquets supplémentaires. mais ces outils valent la peine d’être installés pour la fonctionnalité de dépannage supplémentaire qu’ils peuvent fournir.
sudo dnf install bind-utils
Maintenant, testez la résolution. Tout d’abord, testez la résolution forward (nom d’hôte vers adresse IP):
$ nslookup server1Server: 127.0.0.1Address: 127.0.0.1#53Name: server1.mydomain.orgAddress: 192.168.1.20
Ensuite, testez la résolution inverse (adresse IP vers nom d’hôte):
$ nslookup 192.168.1.2020.1.168.192.in-addr.arpa name = server1.mydomain.org.
Enfin, testez la résolution des noms d’hôte en dehors de votre réseau:
$ nslookup fedoramagazine.orgServer: 127.0.0.1Address: 127.0.0.1#53Non-authoritative answer:Name: fedoramagazine.orgAddress: 35.196.109.67
Test des baux DHCP
Pour tester les baux DHCP, vous devez démarrer une machine qui utilise DHCP pour obtenir une adresse IP. Toute variante Fedora le fera par défaut. Une fois que vous avez démarré la machine cliente, vérifiez qu’elle a une adresse et qu’elle correspond au fichier de location pour dnsmasq.
De la machine exécutant 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
Extension de la fonctionnalité
Vous pouvez attribuer aux hôtes une adresse IP fixe via DHCP en l’ajoutant à votre fichier hosts avec l’adresse souhaitée (dans votre plage DHCP). Pour ce faire, ajoutez-le dans le dnsmasq.conf file la ligne suivante, qui attribue l’adresse IP répertoriée à tout hôte portant ce nom:
dhcp-host=myhost
Vous pouvez également spécifier une adresse MAC à laquelle une adresse IP fixe doit toujours être attribuée:
dhcp-host=11:22:33:44:55:66,192.168.1.123
Vous pouvez spécifier un serveur de démarrage PXE si vous devez automatiser les builds de machine
tftp-root=/tftpboot
dhcp-boot=/tftpboot/pxelinux.0,boothost,192.168.1.240
Cela devrait pointer vers l’URL réelle de votre serveur TFTP.
Si vous devez spécifier des enregistrements SRV ou TXT, par exemple pour LDAP, Kerberos ou similaires, vous pouvez les ajouter :
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