mulți pasionați de tehnologie consideră importantă capacitatea de a controla rezoluția numelui gazdei. Configurarea serverelor și a serviciilor necesită de obicei o formă de adresă fixă și, uneori, necesită și forme speciale de rezoluție, cum ar fi definirea serverelor Kerberos sau LDAP, servere de mail etc. Toate acestea pot fi realizate cu dnsmasq.
dnsmasq este un program ușor și simplu, care permite emiterea de adrese DHCP în rețea și înregistrarea numelui de gazdă & adresa IP în DNS. Această configurație permite, de asemenea, rezoluția externă, astfel încât întreaga rețea va putea să vorbească singură și să găsească și site-uri externe.
acest articol acoperă instalarea și configurarea dnsmasq fie pe o mașină virtuală, fie pe o mașină fizică mică, cum ar fi un Raspberry Pi, astfel încât să poată furniza aceste servicii în rețeaua de domiciliu sau în laborator. Dacă aveți o configurație existentă și trebuie doar să ajustați setările pentru stația de lucru locală, citiți articolul anterior care acoperă configurarea pluginului dnsmasq în NetworkManager.
instalați dnsmasq
mai întâi, instalați pachetul dnsmasq:
sudo dnf install dnsmasq
apoi, activați și porniți serviciul dnsmasq:
sudo systemctl enable --now dnsmasq
configurați dnsmasq
mai întâi, faceți o copie de rezervă a dnsmasq.fișier conf:
sudo cp /etc/dnsmasq.conf /etc/dnsmasq.conf.orig
apoi, editați fișierul și efectuați modificări la următoarele pentru a reflecta rețeaua dvs. În acest exemplu, mydomain.org este numele de domeniu, 192.168.1.10 este adresa IP a serverului dnsmasq și 192.168.1.1 este gateway-ul implicit.
sudo vi /etc/dnsmasq.conf
se introduce următorul conținut:
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ți config-ul pentru a verifica greșelile de scriere și erorile de sintaxă:
$ sudo dnsmasq --testdnsmasq: syntax check OK.
acum editați fișierul hosts, care poate conține atât gazde alocate static, cât și dinamic. Adresele statice ar trebui să se afle în afara intervalului DHCP specificat anterior. Gazdele care utilizează DHCP, dar care au nevoie de o adresă fixă, trebuie introduse aici cu o adresă în intervalul DHCP.
sudo vi /etc/hosts
primele două linii ar trebui să fie deja acolo. Adăugați liniile rămase pentru a configura routerul, serverul dnsmasq și două servere suplimentare.
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
reporniți serviciul dnsmasq:
sudo systemctl restart dnsmasq
apoi adăugați Serviciile la firewall pentru a permite clienților să se conecteze:
sudo firewall-cmd --add-service={dns,dhcp}
sudo firewall-cmd --runtime-to-permanent
rezoluția numelui testului
mai întâi, instalați bind-utils pentru a obține pachetele nslookup și sape. Acestea vă permit să efectuați atât căutări înainte, cât și invers. Puteți utiliza ping dacă preferați să nu instalați pachete suplimentare. dar aceste instrumente merită instalate pentru funcționalitatea suplimentară de depanare pe care o pot oferi.
sudo dnf install bind-utils
acum testați rezoluția. În primul rând, testați rezoluția forward (hostname to IP address:
$ nslookup server1Server: 127.0.0.1Address: 127.0.0.1#53Name: server1.mydomain.orgAddress: 192.168.1.20
apoi, testați rezoluția inversă (adresa IP la numele gazdei:
$ nslookup 192.168.1.2020.1.168.192.in-addr.arpa name = server1.mydomain.org.
în cele din urmă, testați rezolvarea numelor de gazdă în afara rețelei:
$ nslookup fedoramagazine.orgServer: 127.0.0.1Address: 127.0.0.1#53Non-authoritative answer:Name: fedoramagazine.orgAddress: 35.196.109.67
Test DHCP leases
pentru a testa DHCP leases, trebuie să porniți o mașină care utilizează DHCP pentru a obține o adresă IP. Orice variantă Fedora va face acest lucru în mod implicit. După ce ați pornit mașina client, verificați dacă are o adresă și că corespunde fișierului de închiriere pentru dnsmasq.
de la mașina care rulează 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
extinderea funcționalității
puteți atribui gazdelor o adresă IP fixă prin DHCP adăugând-o în fișierul gazdelor cu adresa dorită (în intervalul DHCP). Faceți acest lucru adăugând în dnsmasq.conf fișier următoarea linie, care atribuie IP enumerate la orice gazdă care are acest nume:
dhcp-host=myhost
alternativ, puteți specifica o adresă MAC care ar trebui să primească întotdeauna o adresă IP fixă:
dhcp-host=11:22:33:44:55:66,192.168.1.123
puteți specifica un server de boot PXE dacă aveți nevoie pentru a automatiza mașină construiește
tftp-root=/tftpboot
dhcp-boot=/tftpboot/pxelinux.0,boothost,192.168.1.240
acest lucru ar trebui să indice URL-ul real al serverului TFTP.
dacă trebuie să specificați înregistrări SRV sau TXT, de exemplu pentru LDAP, Kerberos sau altele similare, puteți adăuga următoarele:
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