Brug dnsmasks til at levere DNS & DHCP-tjenester

mange tech-entusiaster finder muligheden for at kontrollere deres værtsnavnopløsning vigtig. Opsætning af servere og tjenester kræver normalt en eller anden form for fast adresse og kræver undertiden også specielle former for opløsning, såsom at definere Kerberos-eller LDAP-servere, mailservere osv. Alt dette kan opnås med dnsmasks.

dnsmaska er et let og enkelt program, der gør det muligt at udstede DHCP-adresser på dit netværk og registrere værtsnavnet & IP-adresse i DNS. Denne konfiguration tillader også ekstern opløsning, så hele dit netværk vil være i stand til at tale med sig selv og finde eksterne sider også.

denne artikel dækker installation og konfiguration af dnsmasks på enten en virtuel maskine eller en lille fysisk maskine som en Raspberry Pi, så den kan levere disse tjenester i dit hjemmenetværk eller laboratorium. Hvis du har en eksisterende opsætning og bare har brug for at justere indstillingerne for din lokale arbejdsstation, skal du læse den forrige artikel, der dækker konfiguration af dnsmasks plugin i Netværksmanager.

installer dnsmaska

Installer først dnsmaska-pakken:

sudo dnf install dnsmasq

næste, aktiver og start dnsmasktjenesten:

sudo systemctl enable --now dnsmasq

Konfigurer dnsmaska

lav først en sikkerhedskopi af dnsmaska.conf-fil:

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

rediger derefter filen, og foretag ændringer i følgende for at afspejle dit netværk. I dette eksempel, mydomain.org er domænenavnet, 192.168.1.10 er IP-adressen på dnsmasks server, og 192.168.1.1 er standardporten.

sudo vi /etc/dnsmasq.conf

indsæt følgende indhold:

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

Test config at kontrollere for stavefejl og syntaksfejl:

$ sudo dnsmasq --testdnsmasq: syntax check OK.

Rediger nu værtsfilen, som kan indeholde både statisk og dynamisk tildelte værter. Statiske adresser skal ligge uden for det DHCP-område, du har angivet tidligere. Værter, der bruger DHCP, men som har brug for en fast adresse, skal indtastes her med en adresse inden for DHCP-området.

sudo vi /etc/hosts

de to første linjer skulle allerede være der. Tilføj de resterende linjer for at konfigurere routeren, dnsmasks-serveren og to ekstra servere.

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

genstart dnsmaskus-tjenesten:

sudo systemctl restart dnsmasq

tilføj derefter tjenesterne til brandvæggen for at give klienterne mulighed for at oprette forbindelse:

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

Test navn opløsning

først skal du installere bind-utils for at få nslookup og grave pakker. Disse giver dig mulighed for at udføre både fremad og omvendt opslag. Du kan bruge ping, hvis du hellere ikke vil installere ekstra pakker. men disse værktøjer er værd at installere for den ekstra fejlfindingsfunktionalitet, de kan levere.

sudo dnf install bind-utils

test nu opløsningen. Test først opløsningen fremad (værtsnavn til IP-adresse) :

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

test derefter den omvendte opløsning (IP-adresse til værtsnavn) :

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

endelig test løse værtsnavne uden for dit netværk:

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

Test DHCP-lejemål

for at teste DHCP-lejemål skal du starte en maskine, der bruger DHCP til at få en IP-adresse. Enhver Fedora-variant gør det som standard. Når du har startet klientmaskinen, skal du kontrollere, at den har en adresse, og at den svarer til leasingfilen for dnsmaska.

fra maskinen kører dnsmaskin:

$ 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

udvidelse af funktionalitet

du kan tildele værter en fast IP-adresse via DHCP ved at føje den til din værtsfil med den ønskede adresse (inden for dit DHCP-område). Gør dette ved at tilføje til dnsmasken.conf fil følgende linje, som tildeler IP opført til enhver vært, der har dette navn:

dhcp-host=myhost

Alternativt kan du angive en MAC-adresse, som altid skal have en fast IP-adresse:

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

hvis du har brug for at automatisere maskinbygninger

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

dette skal pege på den faktiske URL til din TFTP-server.

hvis du har brug for at angive SRV-eller TEKSTREGISTRERINGER, f. eks. for LDAP, Kerberos eller lignende, kan du tilføje disse:

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



+