Använd dnsmasq för att tillhandahålla DNS-och DHCP-tjänster

många teknikentusiaster tycker att möjligheten att kontrollera sin värdnamnsupplösning är viktig. Att ställa in servrar och tjänster kräver vanligtvis någon form av fast adress och kräver ibland också speciella former av upplösning som att definiera Kerberos-eller LDAP-servrar, e-postservrar etc. Allt detta kan uppnås med dnsmasq.

dnsmasq är ett lätt och enkelt program som gör det möjligt att utfärda DHCP-adresser i ditt nätverk och registrera värdnamnet & IP-adress i DNS. Denna konfiguration tillåter också extern upplösning, så hela nätverket kommer att kunna prata med sig själv och hitta externa webbplatser också.

den här artikeln täcker installation och konfigurering av dnsmasq på antingen en virtuell maskin eller liten fysisk maskin som en Raspberry Pi så att den kan tillhandahålla dessa tjänster i ditt hemnätverk eller lab. Om du har en befintlig installation och bara behöver justera inställningarna för din lokala arbetsstation, läs föregående artikel som täcker konfigurera dnsmasq plugin i NetworkManager.

installera dnsmasq

installera först dnsmasq-paketet:

sudo dnf install dnsmasq

nästa, aktivera och starta dnsmasq-tjänsten:

sudo systemctl enable --now dnsmasq

konfigurera dnsmasq

gör först en säkerhetskopia av dnsmasq.conf-fil:

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

redigera sedan filen och gör ändringar i följande för att återspegla ditt nätverk. I detta exempel, mydomain.org är domännamnet, 192.168.1.10 är IP-adressen för dnsmasq-servern och 192.168.1.1 är standardgatewayen.

sudo vi /etc/dnsmasq.conf

infoga följande innehåll:

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

testa config för att kontrollera stavfel och syntaxfel:

$ sudo dnsmasq --testdnsmasq: syntax check OK.

redigera nu värdfilen, som kan innehålla både statiskt och dynamiskt tilldelade värdar. Statiska adresser bör ligga utanför det DHCP-intervall som du angav tidigare. Värdar som använder DHCP men som behöver en fast adress ska anges här med en adress inom DHCP-intervallet.

sudo vi /etc/hosts

de två första raderna bör vara där redan. Lägg till de återstående raderna för att konfigurera routern, dnsmasq-servern och ytterligare två servrar.

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

starta om dnsmasq-tjänsten:

sudo systemctl restart dnsmasq

lägg sedan till tjänsterna i brandväggen så att klienterna kan ansluta:

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

testnamnsupplösning

installera först bind-utils för att få nslookup och dig-paketen. Dessa gör att du kan utföra både framåt och bakåt sökningar. Du kan använda ping om du hellre inte vill installera extra paket. men dessa verktyg är värda att installera för den extra felsökningsfunktionen de kan tillhandahålla.

sudo dnf install bind-utils

testa nu upplösningen. Testa först upplösningen framåt (värdnamn till IP-adress) :

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

testa sedan upplösningen omvänd (IP-adress till värdnamn) :

$ nslookup 192.168.1.2020.1.168.192.in-addr.arpa name = server1.mydomain.org.

slutligen, testa lösa värdnamn utanför ditt nätverk:

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

testa DHCP-leasing

för att testa DHCP-leasing måste du starta en maskin som använder DHCP för att få en IP-adress. Alla Fedora-varianter gör det som standard. När du har startat klientmaskinen, kontrollera att den har en adress och att den motsvarar hyresfilen för dnsmasq.

från maskinen som kör 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

utökad funktionalitet

du kan tilldela värdar en fast IP-adress via DHCP genom att lägga till den i din värdfil med den adress du vill ha (inom ditt DHCP-intervall). Gör detta genom att lägga till i dnsmasq.conf fil följande rad, som tilldelar IP-listan till någon värd som har det namnet:

dhcp-host=myhost

Alternativt kan du ange en MAC-adress som alltid ska ges en fast IP-adress:

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

du kan ange en PXE-startserver om du behöver automatisera maskinbyggnader

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

detta bör peka på den faktiska webbadressen till din TFTP-server.

om du behöver ange SRV-eller TXT-poster, till exempel för LDAP, Kerberos eller liknande, kan du lägga till dessa:

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



+