Domain Name Service (DNS) är en Internet-tjänst som kartlägger IP-adresser och fullständigt kvalificerade domännamn (FQDN) till varandra. På detta sätt lindrar DNS behovet av att komma ihåg IP-adresser. Datorer som kör DNS kallas namnservrar. Ubuntu ships with BIND (Berkley Internet Naming Daemon), det vanligaste programmet som används för att upprätthålla en namnserver på Linux.,
vid en terminalprompt anger du följande kommando för att installera dns:
sudo apt install bind9
ett mycket användbart paket för testning och felsökning av DNS-problem är paketetdnsutils
. Mycket ofta kommer dessa verktyg att installeras redan, men för att kontrollera och/eller installera dnsutils
ange följande:
sudo apt install dnsutils
konfiguration
det finns många sätt att konfigurera BIND9. Några av de vanligaste konfigurationerna är en caching namnserver, primär server och sekundär server.,
-
När den konfigureras som en caching namnserver BIND9 kommer att hitta svaret på namnfrågor och komma ihåg svaret när domänen frågas igen.
-
som primärserver läser BIND9 data för en zon från en fil på sin värd och är auktoritativ för den zonen.
-
som en sekundär server får BIND9 zondata från en annan namnserver som är auktoritativ för zonen.
översikt
DNS-konfigurationsfilerna lagras i katalogen/etc/bind
., Den primära konfigurationsfilen är /etc/bind/named.conf
, som i layouten som tillhandahålls av paketet bara innehåller dessa filer.
de rotnamnservrar som används för att beskrivas i filen/etc/bind/db.root
. Detta tillhandahålls nu istället av /usr/share/dns/root.hints
– filen som levereras med dns-root-data
– paketet och refereras till i konfigurationsfilen named.conf.default-zones
ovan.
det är möjligt att konfigurera samma server som en cachningsserver, primär och sekundär: allt beror på de zoner Den serverar., En server kan vara början på myndigheten (SOA)för en zon, samtidigt som sekundär tjänst för en annan zon. Samtidigt som caching tjänster för värdar på det lokala LAN.
Caching Nameserver
standardkonfigurationen fungerar som en cachningsserver. Helt enkelt Avkommentera och redigera /etc/bind/named.conf.options
för att ställa in IP-adresserna för din Internetleverantörs DNS-servrar:
forwarders { 1.2.3.4; 5.6.7.8;};
notera
ersätt
1.2.3.4
och5.6.7.8
med IP-adressen till din Internetleverantör.adresser till faktiska namnservrar.,
för att aktivera den nya konfigurationen, starta om DNS-servern. Från en terminal prompt:
sudo systemctl restart bind9.service
se dig för information om att testa en caching DNS-server.
primär Server
i det här avsnittet kommer BIND9 att konfigureras som primär server för domänenexample.com
. Ersätt bara example.com
med ditt FQDN (fullständigt kvalificerat domännamn).,
framåtriktad zonfil
för att lägga till en DNS-zon till BIND9, vrida BIND9 till en primär server, först redigera/etc/bind/named.conf.local
:
zone "example.com" { type master; file "/etc/bind/db.example.com";};
notera
om bind kommer att få automatiska uppdateringar av filen som med DDNS, använd sedan I stället för
/etc/bind/db.example.com
både här och i kommandot Kopiera nedan.,
använd nu en befintlig zonfil som mall för att skapa filen/etc/bind/db.example.com
:
sudo cp /etc/bind/db.local /etc/bind/db.example.com
redigera den nya zonfilen/etc/bind/db.example.com
och ändralocalhost.
till den nya zonfileniv id=”FQDN på din server, lämnar ytterligare .
I slutet., Ändra127.0.0.1
till namnserverns IP-adress ochroot.localhost
till en giltig e-postadress, men med en.
I stället för den vanliga@
symbol, återigen lämnar.
I slutet. Ändra kommentaren för att ange domänen som den här filen är för.
skapa en post för basdomänen,example.com
. Skapa också en post förns.example.com
, namnservern i det här exemplet:
Du måste öka serienumret varje gång du gör ändringar i zonfilen., Om du gör flera ändringar innan du startar BIND9, helt enkelt öka serienumret en gång.
Nu kan du lägga till DNS-poster i botten av zonfilen. Mer information finns i vanliga posttyper.,
notera
många administratörer gillar att använda det senaste datumet som redigerats som serienumret för en zon, till exempel 2020012100 vilket är yyyymmddss (där ss är serienumret)
När du har gjort ändringar i zonen fil BIND9 måste startas om för att ändringarna ska träda i kraft:
sudo systemctl restart bind9.service
reverse zone file
nu när zonen är inställd och löser namn till IP-adresser måste en omvänd zon läggas till så att DNS kan lösa en adress till ett namn.,
redigera/etc/bind/named.conf.local
och Lägg till följande:
zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/db.192";};
notera
ersätt
1.168.192
med de tre första oktetterna i vilket nätverk du än använder. Namnge också zonfilen/etc/bind/db.192
på lämpligt sätt. Det ska matcha den första oktetten i ditt nätverk.,
SKAPA NU filen /etc/bind/db.192
:
sudo cp /etc/bind/db.127 /etc/bind/db.192
nästa redigera /etc/bind/db.192
ändra samma alternativ som /etc/bind/db.example.com
:
serienumret i det omvända fältet iv id = ” zonen måste ökas på varje förändring också. För varje A-post du konfigurerar i/etc/bind/db.example.com
, det vill säga för en annan adress, måste du skapa en PTR-post i/etc/bind/db.192
.,
Efter att ha skapat reverse zone file restart BIND9:
sudo systemctl restart bind9.service
sekundär Server
När en primär Server har konfigurerats rekommenderas en sekundär Server för att bibehålla tillgängligheten för domänen om den primära blir otillgänglig.
först måste zonöverföringen tillåtas på den primära servern., Lägg till alternativetallow-transfer
till exemplet framåt och bakåt zondefinitioner i/etc/bind/named.conf.local
:
notera
ersätt
192.168.1.11
med IP-adressen för din sekundära namnserver.
Starta om BIND9 på den primära servern:
sudo systemctl restart bind9.service
Installera sedan bind9-paketet på den sekundära servern på samma sätt som på den primära servern., Redigera sedan /etc/bind/named.conf.local
och Lägg till följande deklarationer för de främre och omvända zonerna:
Obs
ersätt
192.168.1.10
med IP-adressen för din primära namnserver.,
Starta om BIND9 på den sekundära servern:
sudo systemctl restart bind9.service
i/var/log/syslog
bör du se något som liknar följande (vissa rader har delats upp för att passa formatet på det här dokumentet):
Obs!
Obs! en zon överförs endast om serienumret på den primära är större än det på den sekundära., Om du vill ha din primära DNS-anmälan till andra sekundära DNS-servrar med zonändringar kan du lägga till
also-notify { ipaddress; };
till/etc/bind/named.conf.local
som visas i exemplet nedan:
Obs
standardkatalogen för icke-auktoritativa zonfiler är
. Den här katalogen är också konfigurerad i AppArmor för att tillåta den namngivna demonen att skriva till den. För mer information om AppArmor se säkerhet – AppArmor.,
felsökning
det här avsnittet omfattar diagnostisering av problem med DNS-och BIND9-konfigurationer.
testa
resolv.conf
det första steget i att testa BIND9 är att lägga till namnserverns IP-adress till en värddator resolver. Den primära namnservern ska konfigureras såväl som en annan värd för att dubbelkolla saker. Se DNS-klientkonfiguration för mer information om hur du lägger till namnserveradresser till dina nätverksklienter., I slutändan bör dinnameserver
linje i/etc/resolv.conf
peka på127.0.0.53
och du bör ha ensearch
parameter för din domän. Ungefär så här:
nameserver 127.0.0.53search example.com
för att kontrollera vilken DNS-server din lokala resolver använder, Kör:
systemd-resolve --status
Obs
Du bör också lägga till IP-adressen för den sekundära namnservern i din klientkonfiguration om den primära blir otillgänglig.,
gräva
om du har installerat dnsutils-paketet kan du testa din inställning med hjälp av DNS lookup utility dig:
-
När du har installerat BIND9 använd dig mot loopback-gränssnittet för att se till att det lyssnar på port 53.,i>
om du har konfigurerat BIND9 som en Cachningsnamnserver ”dig” en extern domän för att kontrollera frågetiden:
dig ubuntu.com
notera frågetiden mot slutet av kommandoutmatningen:
;; Query time: 49 msec
efter en andra grävning bör det finnas förbättringar:
;; Query time: 1 msec
om du har konfigurerat BIND9 som en Cachningsnamnserver”dig”en extern domän för att kontrollera frågetiden:
dig ubuntu.com
ul>
ping
nu för att visa hur program använder DNS för att lösa ett värdnamn använd ping-verktyget för att skicka en ICMP echo-begäran:
ping example.com
detta test om namnservern kan lösa namnet ns.example.com
till en IP-adress., Kommandoutgången ska likna:
named-checkzone
ett bra sätt att testa dina zonfiler är att använda verktyget named-checkzone
installerat med paketet bind9
. Med det här verktyget kan du se till att konfigurationen är korrekt innan du startar BIND9 och gör ändringarna levande.,
-
för att testa vårt exempel framåt zon fil ange följande från en kommandotolk:
named-checkzone example.com /etc/bind/db.example.com
om allt är korrekt konfigurerad bör du se utdata som liknar:
zone example.com/IN: loaded serial 6OK
-
På samma sätt, för att testa omvänd zon fil ange följande:
named-checkzone 1.168.192.in-addr.arpa /etc/bind/db.192
>
utgången ska likna:
zone 1.168.192.in-addr.arpa/IN: loaded serial 3OK
Obs
serienumret för din zonfil kommer förmodligen att vara annorlunda.,
snabb tillfällig frågeloggning
med verktygetrndc
kan du snabbt aktivera och inaktivera frågeloggning utan att starta om tjänsten eller ändra konfigurationsfilen.
för att aktivera frågeloggning, kör:
sudo rndc querylog on
För att stänga av den, kör:
sudo rndc querylog off
loggarna kommer att skickas till syslog och kommer att dyka upp i/var/log/syslog
som standard:
notera
mängden loggar som genereras genom att aktivera
querylog
kan vara enorm!,
loggning
BIND9 har ett brett utbud av loggning konfigurationsalternativ tillgängliga, men de två viktigaste är kanal och kategori, som konfigurerar var loggar går, och vilken information loggas respektive.
om inga loggningsalternativ har konfigurerats är standardkonfigurationen:
logging { category default { default_syslog; default_debug; }; category unmatched { null; };};
låt oss istället konfigurera BIND9 för att skicka felsökningsmeddelanden relaterade till DNS-frågor till en separat fil.
Vi måste konfigurera en kanal för att ange vilken fil som ska skickas meddelandena till och en kategori., I det här exemplet loggar kategorin alla frågor. Redigera /etc/bind/named.conf.local
och Lägg till följande:
logging { channel query.log { file "/var/log/named/query.log"; severity debug 3; }; category queries { query.log; };};
notera
felsökningsalternativet kan ställas in från 1 till 3. Om en nivå inte anges är Nivå 1 standard.,
-
eftersom den namngivna demonen körs som bindanvändare måste katalogen
/var/log/named
skapas och ägandet ändras:sudo mkdir /var/log/namedsudo chown bind:bind /var/log/named
-
Starta om BIND9 för att ändringarna ska träda i kraft:
-
Starta om BIND9 för att ändringarna ska träda i kraft:
sudo systemctl restart bind9.service
Du bör se filen /var/log/named/query.log
fyll i frågeinformation. Detta är ett enkelt exempel på bind9 loggningsalternativ. För täckning av avancerade alternativ se mer information.,
vanliga posttyper
det här avsnittet omfattar några av de vanligaste DNS-posttyperna.
-
A
– post: den här posten mappar en IP-adress till ett värdnamn.www IN A 192.168.1.12
-
CNAME
record: används för att skapa ett alias till en befintlig a-post. Du kan inte skapa enCNAME
– post som pekar på en annanCNAME
– post.web IN CNAME www
-
MX
record: används för att definiera var e-post ska skickas till., Måste peka på enA
– post, inte enCNAME
.@ IN MX 1 mail.example.com.mail IN A 192.168.1.13
-
NS
record: används för att definiera vilka servrar som tjänar kopior av en zon. Det måste peka på enA
– post, inte enCNAME
. Det är där primära och sekundära servrar definieras.@ IN NS ns.example.com.@ IN NS ns2.example.com.ns IN A 192.168.1.10ns2 IN A 192.168.1.11
mer Information
-
uppströms BIND9 dokumentation
-
Bind9.net har länkar till en stor samling av DNS och BIND9 resurser.,
-
DNS and BIND är en populär bok nu i sin femte upplaga. Det finns nu också en DNS och BIND på IPv6 bok.
-
ett bra ställe att be om BIND9 hjälp, och engagera sig med Ubuntu Server community, är #ubuntu-server IRC kanal på freenode.
Senast uppdaterad för 10 månader sedan. Bidra till att förbättra detta dokument i forumet.