Bruk dnsmasq til Å gi DNS-OG DHCP-tjenester

Mange tekniske entusiaster finner muligheten til å kontrollere vertsnavnoppløsningen viktig. Sette opp servere og tjenester krever vanligvis noen form for fast adresse, og noen ganger krever også spesielle former for oppløsning som definerer Kerberos eller LDAP-servere, e-postservere, etc. Alt dette kan oppnås med dnsmasq.

dnsmasq er et lett og enkelt program som gjør det mulig å utstede DHCP-adresser på nettverket ditt og registrere vertsnavnet & IP-adresse I DNS. Denne konfigurasjonen tillater også ekstern oppløsning, slik at hele nettverket vil kunne snakke med seg selv og finne eksterne nettsteder også.

denne artikkelen dekker installasjon og konfigurering av dnsmasq på enten en virtuell maskin eller liten fysisk maskin som En Raspberry Pi, slik at den kan tilby disse tjenestene i hjemmenettverket eller laboratoriet. Hvis du har et eksisterende oppsett og bare trenger å justere innstillingene for din lokale arbeidsstasjon, les forrige artikkel som dekker konfigurering av dnsmasq-plugin i NetworkManager.

Installer dnsmasq

først installerer du dnsmasq-pakken:

sudo dnf install dnsmasq

neste, aktiver og start dnsmasq-tjenesten:

sudo systemctl enable --now dnsmasq

Konfigurer dnsmasq

lag først en sikkerhetskopi av dnsmasq.conf-fil:

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

deretter redigerer du filen og gjør endringer i følgende for å gjenspeile nettverket ditt. I dette eksemplet, mydomain.org er domenenavnet, 192.168.1.10 ER IP-adressen til dnsmasq-serveren og 192.168.1.1 er standard gateway.

sudo vi /etc/dnsmasq.conf

Sett inn følgende innhold:

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 for å se etter skrivefeil og syntaksfeil:

$ sudo dnsmasq --testdnsmasq: syntax check OK.

rediger nå vertsfilen, Som kan inneholde både statisk og dynamisk tildelte verter. Statiske adresser bør ligge utenfor DHCP-området du angav tidligere. Verter som bruker DHCP, men som trenger en fast adresse, skal oppgis her med en adresse innenfor DHCP-området.

sudo vi /etc/hosts

De to første linjene skal allerede være der. Legg til de resterende linjene for å konfigurere ruteren, dnsmasq-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

Start dnsmasq-tjenesten på nytt:

sudo systemctl restart dnsmasq

deretter legger du til tjenestene i brannmuren for å tillate klientene å koble til:

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

Test navn oppløsning

først installerer bind-utils å få nslookup og grave pakker. Disse lar deg utføre både forover og bakover oppslag. Du kan bruke ping hvis du heller ikke vil installere ekstra pakker. men disse verktøyene er verdt å installere for den ekstra feilsøkingsfunksjonaliteten de kan gi.

sudo dnf install bind-utils

test nå oppløsningen. Test først fremoveroppløsningen (vertsnavn TIL IP-adresse) :

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

deretter tester du omvendt (IP-adresse til vertsnavn) oppløsning:

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

til Slutt, test løse vertsnavn utenfor nettverket ditt:

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

Test DHCP-leieavtaler

for å teste DHCP-leieavtaler må du starte opp en maskin som bruker DHCP til å hente EN IP-adresse. Enhver Fedora-variant vil gjøre det som standard. Når du har startet klientmaskinen, må du kontrollere at den har en adresse og at den tilsvarer leiefilen for dnsmasq.

fra maskinen som kjører 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

Utvidende funksjonalitet

du kan tilordne verter en fast IP-adresse via DHCP ved å legge den til vertsfilen din med adressen du vil ha(innenfor DHCP-området). Gjør dette ved å legge inn i dnsmasq.conf fil følgende linje, som tilordner IP oppført til en vert som har det navnet:

dhcp-host=myhost

Alternativt kan DU angi EN MAC-adresse som alltid skal gis en fast IP-adresse:

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

Du kan angi en pxe-oppstartsserver hvis du trenger å automatisere maskinbygginger

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

dette bør peke på DEN faktiske NETTADRESSEN til TFTP-serveren din.

hvis DU må angi SRV-eller TXT-poster, for EKSEMPEL FOR LDAP, Kerberos eller lignende, kan du legge til 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



+