DNS-cache. Konfigurera en cachande DNS-server (BIND) för det lokala nätverket. Ställer in cachelagringstid

En av de viktiga tjänsterna som säkerställer att det moderna Internet fungerar är tjänsten för att konvertera ett webbplatsnamn till en IP-adress. Vi kommer att ställa in implementeringen av DNS-tjänsten i den här artikeln med hjälp av exemplet med att ställa in Bind 9 (namngiven) på en server som kör CentOS 7. Vi kommer att förbereda den minsta nödvändiga grundläggande funktionaliteten och titta lite djupare på loggningsinställningarna.

Om du har en önskan om att lära dig arbeta med Mikrotik-routrar och bli en specialist inom detta område rekommenderar jag att du följer ett program baserat på information från den officiella kursen. Kursen är värd besväret, läs länken för alla detaljer. Det finns gratis kurser.

Binda- den vanligaste implementeringen av en DNS-server idag, som säkerställer konvertering av IP-adresser till DNS-namn och vice versa. Den kallas också namngiven, till exempel i Freebsd. Att döma av information från Wikipedia körs nu 10 av 13 rot-DNS-servrar på Internet på bind. Det installeras direkt på nästan alla Linux-distributioner. Jag ska undersöka att installera det på en CentOS 7-server.

Installerar Bind 9 (namngiven) på CentOS 7

Först och främst, låt oss kontrollera om vi har en DNS-server installerad på systemet:

# rpm -qa bind* bind-libs-lite-9.9.4-14.el7.x86_64 bind-license-9.9.4-14.el7.noarch

Jag har inte det installerat eftersom jag valde det lägsta mjukvarupaketet. Vår namnserver kommer att fungera i en chroot-miljö, så installera lämpliga paket:

# yum - y install bind bind - utils bind - chroot

Återigen, observera att vi kommer att använda bind in chroot miljö för att öka säkerheten. Detta ålägger vissa funktioner för att ställa in och hantera servern. Du måste vara försiktig med dessa små saker. Så låt oss köra bind:

# systemctl startar heter-chroot# systemctl aktivera heter-chroot ln -s "/usr/lib/systemd/system/named-chroot.service" "/etc/systemd/system/multi-user.target.wants/named-chroot.service"

Kontrollera innehållet i chroot-katalogen:

# ls -l /var/named/chroot/etc

Allt är bra, servern har startat, nödvändiga filer skapat är allt klart för konfiguration. Låt oss ta hand om det.

Konfigurera en DNS-server i CentOS 7

Vår serverkonfigurationsfil finns på /var/named/chroot/etc/named.conf. Vi öppnar den och tar den till följande form:

# mcedit /var/named/chroot/etc/named.conf options (lyssna-på-port 53 (valfri; ); lyssna-på-v6-port 53 (ingen; ); katalog "/var/namn"; dump-fil " /var/named/data/cache_dump.db"; allow-query ( 127.0.0.1; 192.168.7.0/24; ); rekursion ja; tillåt-rekursion ( 127.0.0.1; 192.168.7.0/24; ); 8 speditörer ( . .8.8; ); version "DNS Server"; hanterad-nycklar-katalog "/var/namn/dynamisk"; pid-fil "/run/named/named.pid"; session-nyckelfil "/run/named/session. nyckel"; dnssec-enable no; dnssec-validation no; ); zon "." IN (skriv tips; filen "named.ca"; ); inkludera "/etc/named.rfc1912.zones"; inkludera "/etc/named.root.key"; loggning (kanal default_file (fil "/var/log/named/default.log" versioner 3 storlek 5m; svårighetsgrad dynamisk; utskriftstid ja; ); kategori standard ( default_file; ); );

Denna konfiguration säkerställer driften av en vanlig cacheserver i lokalt nätverk. Kommentarer om några parametrar:

Glöm inte att redigera brandväggsreglerna för korrekt funktion DNS-server - öppna UDP-port 53 för cachningsservern som vi nu har konfigurerat och TCP-port 53 för vidarebefordran av zoner, vilket kommer att diskuteras senare

Låt oss nu skapa en mapp för loggar. Glöm inte att vi arbetar i en chroot-miljö:

# cd /var/named/chroot/var/log && mkdir heter && chown named. som heter

Eget zonstöd

Låt oss säga att vi måste placera vår egen zon site1.ru i vår namngivna. Först och främst skapar vi en zonfil som kommer att betjänas av DNS-servern:

# mcedit /var/named/chroot/var/named/site1.ru.zone $TTL 86400 @ IN SOA site1.ru. site1.ru.local. (2015092502 43200 3600 3600000 2592000) I NS ns1.site1.ru. I NS ns2.site1.ru. IN A 192.168.7.254 IN MX 10 mx.site1.ru. gate IN A 192.168.7.254 mx IN A 192.168.7.250 ns1 IN A 192.168.7.235 ns2 IN A 192.168.7.231

Beskrivningen av syntaxen för zonfiler är ganska väl täckt på Internet; Jag vill inte uppehålla mig vid detta i detalj. Om så önskas kan alla se själva om de behöver konfigurera stöd för sin egen zon.

Vi anger nödvändiga rättigheter:

# chown root:named /var/named/chroot/var/named/site1.ru.zone # chmod 0640 /var/named/chroot/var/named/site1.ru.zone

Zone "site1.ru" (typ master; fil "site1.ru.zone"; );

Vi läser om den namngivna konfigurationen med hjälp av rndc:

# rndc reconfig

Lägger till för att binda slavzon

Om du vill behålla en kopia av en zon som tagits från en annan DNS-server på din server, lägg sedan till följande inställningar i konfigurationen.

Zon "site.ru" IN (typ slav; masters ( 10.1.3.4; ); filen "site.ru.zone"; );

10.1.3.4 - IP-adressen till DNS-servern från vilken vi tar zonen. Glöm inte att tillåta zonöverföring till din DNS-server.

Du måste lägga till skrivbehörighet till den namngivna gruppen så att den ser ut så här:

Efter detta kan du starta om bindningen och kontrollera att slavzonsfilen har skapats. Med ovanstående inställningar kommer den att finnas på /var/named/chroot/var/named/site.ru.zone. Om bind inte har rättigheter att skapa en fil får du ett felmeddelande i loggen:

Dumpning av huvudfil: tmp-7Swr6EZpcd: öppen: tillstånd nekad

Det är mycket mer intressant och användbart att förstå detaljerad loggning av serverdrift. Under en lång tid tog jag ytligt tag i alla möjliga rekommendationer och bitar av exempelkonfigurationer på Internet, tills jag bestämde mig för att ta itu med det här ämnet själv och tittade i den ursprungliga manualen.

Bind tillhandahåller omfattande loggningsmöjligheter. Du kan spela in nästan allt relaterat till driften av servern. Jag ska nu visa dig hur detta fungerar med enkla exempel.

Först och främst, i konfigurationen ställer vi in ​​kanalen där loggar för vissa händelser kommer att lagras. Här är ett exempel på en sådan kanal:

Kanal allmänt (fil "/var/log/named/general.log" versioner 3 storlek 5m; svårighetsgrad dynamisk; utskriftstid ja;

Namnet på kanalen anges här, som vi kommer fram till själva - allmänt, sökvägen till filen anges, det sägs att vi kommer att lagra 3 versioner av loggen högst 5 megabyte i storlek. Parameter Allvarlighetsgrad kan ta följande värden:

Parameter utskriftstid indikerar att tidpunkten för händelsen ska registreras i loggen. Utöver de inställningar jag angav kan följande parametrar läggas till i kanalkonfigurationen:

  • utskriftsgrad ja | no — anger om allvarlighetsparametern ska skrivas till loggen eller inte
  • tryck-kategori ja | nej — anger om namnet på loggkategorin ska skrivas eller inte

Jag angav inte dessa parametrar, eftersom standardvärdet är satt till Nej, vilket passar mig personligen.

Kategori allmänt ( allmänt; );

Beskrivning av loggkategorier i bind (namn)
standardHändelser för alla kategorier från denna tabell kommer att falla här om de inte definieras separat, med undantag för frågekategorin, som måste inkluderas specifikt. Det vill säga, om du bara anger standardkategorin kommer händelser i alla kategorier att strömma in i den.
allmänDenna kategori är för alla loggar som inte ingår i någon av de listade kategorierna.
databasMeddelanden relaterade till zonlagring och cachelagring.
säkerhetBekräftelse och avslag på förfrågningar.
configAllt relaterat till att läsa och köra konfigurationsfilen.
resolverNamnupplösning, inklusive information om rekursiva frågor som utförs på uppdrag av klienten av cachningsservern.
xfer-inInformation om att erhålla zoner.
xfer-outInformation om överföring av zoner.
meddelaLoggar NOTIFY-protokolloperationer.
klientUppfylla kundförfrågningar.
oöverträffadMeddelanden som namngavs kunde inte tilldelas någon klass eller för vilka ingen mappning har definierats.
nätverkLoggning av nätverksdrift.
uppdateringDynamiska uppdateringar.
uppdateringssäkerhetBekräftelse eller avslag på uppdateringsbegäranden.
frågorLoggar förfrågningar till DNS-servern. För att aktivera denna kategori måste du ställa in parametern separat i serverkonfigurationen. Detta beror på att denna kategori genererar många poster i loggfilen, vilket kan påverka serverns prestanda.
frågefelFel i förfrågningar till servern.
avsändandeOmdirigera inkommande paket till servermoduler för bearbetning.
dnssecDrift av DNSSEC- och TSIG-protokollen.
lama-servrarFixade fel som binder emot när man kontaktar fjärrservrar i ett försök att utföra en begäran om namnupplösning.
endast delegeringLoggningsförfrågningar som returnerade NXDOMAIN.
edns-inaktiveradFörfrågningar som tvingas använda vanlig DNS på grund av överskridande timeouts.
RPZAlla operationer relaterade till implementeringen av Response Policy Zone (RPZ).
räntegränsOperationer relaterade till en eller flera satsgränser i alternativ eller vy.

Således, för att visa alla kategorier av loggar i separata filer, måste du lägga till följande konstruktion till den namngivna konfigurationen:

Loggning ( kanal standard ( fil "/var/log/named/default.log" versioner 3 storlek 5m; allvarlighetsgrad dynamisk; utskriftstid ja; ); kanal allmän (fil "/var/log/named/general.log" versioner 3 storlek 5m; svårighetsgrad dynamisk; utskriftstid ja; ); kanaldatabas (fil "/var/log/named/database.log" versioner 3 storlek 5m; svårighetsgrad dynamisk; utskriftstid ja; ); kanalsäkerhet ( fil " /var/log/named/security.log" versioner 3 storlek 5m; allvarlighetsgrad dynamisk; utskriftstid ja; ); channel config (fil "/var/log/named/config.log" versioner 3 storlek 5m; allvarlighetsgrad dynamisk; utskriftstid ja; ); kanalupplösare (fil "/var/log/named/resolver.log" versioner 3 storlek 5m; svårighetsgrad dynamisk; utskriftstid ja; ); kanal xfer-in (fil "/var/log/ named/xfer-in.log" versioner 3 storlek 5m; allvarlighetsgrad dynamisk; utskriftstid ja; ); kanal xfer-out (fil "/var/log/named/xfer-out.log" versioner 3 storlek 5m; allvarlighetsgrad dynamisk ; utskriftstid ja; ); kanalmeddelande (fil "/var/log/named/notify.log" versioner 3 storlek 5m; allvarlighetsgrad dynamisk; utskriftstid ja; ); kanalklient (fil "/var/log/named /client.log" versioner 3 storlek 5m; svårighetsgrad dynamisk; utskriftstid ja; ); kanal omatchad (fil "/var/log/named/unmatched.log" versioner 3 storlek 5m; svårighetsgrad dynamisk; utskriftstid ja; ); kanalnätverk (fil "/var/log/named/network.log" versioner 3 storlek 5m; svårighetsgrad dynamisk; utskriftstid ja; ); kanaluppdatering (fil "/var/log/named/update.log" versioner 3 storlek 5m; allvarlighetsgrad dynamisk; utskriftstid ja; ); kanal update-security (fil "/var/log/named/update-security.log" versioner 3 storlek 5m; allvarlighetsgrad dynamisk; utskriftstid ja; ); kanalfrågor (fil "/var/log/named/queries.log" versioner 3 storlek 5m; svårighetsgrad dynamisk; utskriftstid ja; ); kanal query-errors (fil "/var/log/named/query-errors.log" versioner 3 storlek 5m; allvarlighetsgrad dynamisk; utskriftstid ja; ); kanalsändning (fil "/var/log/named/dispatch.log" versioner 3 storlek 5m; svårighetsgrad dynamisk; utskriftstid ja; ); kanal dnssec (fil "/var/log/named/dnssec.log" versioner 3 storlek 5m; svårighetsgrad dynamisk; utskriftstid ja; ); kanal lame-servrar (fil "/var/log/named/lame-servers.log" versioner 3 storlek 5m; svårighetsgrad dynamisk; utskriftstid ja; ); kanaldelegering endast (fil "/var/log/named/delegation-only.log" versioner 3 storlek 5m; svårighetsgrad dynamisk; utskriftstid ja; ); kanal edns-disabled (fil "/var/log/named/edns-disabled.log" versioner 3 storlek 5m; svårighetsgrad dynamisk; utskriftstid ja; ); kanal rpz (fil "/var/log/named/rpz.log" versioner 3 storlek 5m; svårighetsgrad dynamisk; utskriftstid ja; ); kanalhastighetsgräns (fil "/var/log/named/rate-limit.log" versioner 3 storlek 5m; svårighetsgrad dynamisk; utskriftstid ja; ); kategori default(default;); kategori allmän(allmän;); kategoridatabas (databas; ); kategori säkerhet (säkerhet;); kategori config(config;); kategori resolver(resolver;); kategori xfer-in ( xfer-in; ); kategori xfer-out ( xfer-out; ); kategori meddela (meddela; ); kategori klient (klient; ); kategori omatchad (omatchad; ); kategori nätverk (nätverk; ); kategoriuppdatering(uppdatering;); kategori uppdateringssäkerhet (uppdateringssäkerhet; ); kategorifrågor ( queries; ); kategori query-errors ( query-errors; ); kategoriutskick (utskick; ); kategori dnssec ( dnssec; ); kategori lame-servrar ( lame-servrar; ); kategori endast delegering (endast delegering; ); kategori edns-disabled ( edns-disabled; ); kategori rpz (rpz;); kategori rate-limit ( rate-limit; ); );

Om vi ​​vill samla alla förfrågningsloggar från en kategori frågor, sedan i alternativavsnittet i konfigurationsfilen måste du lägga till en parameter som tillåter detta:

Frågelogg ja;

Starta om bindning:

# systemctl starta om named-chroot.service

Kontrollerar driften av DNS-servern

Först och främst, låt oss gå till katalogen med loggar och kolla vad vi har där:

# cd /var/named/chroot/var/log/named # ls -l

Alla loggfiler har skapats och börjar fyllas på. Du kan kontrollera en av dem. Låt oss till exempel se hur vår centos-server (192.168.7.246) loggar användarförfrågningar. Låt oss försöka köra nslookup yandex.ru från dator 192.168.7.254 (Windows) och se hur det återspeglas i loggfilen:

26-sep-2015 19:25:30.923 klient 192.168.7.254#56374 (yandex.ru): query: yandex.ru IN A + (192.168.7.246) 26-sep-2015 31.02.5 klient 19.25:# 56375 (yandex.ru): fråga: yandex.ru IN AAAA + (192.168.7.246)

Låt oss nu pinga site1.ru för att kontrollera hur servern stöder vår zon:

Låt oss se vad som finns i loggarna:

26-sep-2015 19:28:01.660 klient 192.168.7.254#49816 (site1.ru): fråga: site1.ru IN A + (192.168.7.246)

Detta gör det mycket bekvämt att spåra vart datorn är på väg. Till exempel kan du tillfälligt höja DNS-servern och aktivera frågeloggen. I klienten, ange den enda DNS-server som vi har konfigurerat. Då kan vi spåra till exempel vart Windows går efter att ha laddats utan vår vetskap. Eller där annonser laddas på Skype. Alla förfrågningar kommer prydligt sammanställas till en fil, som sedan enkelt kan analyseras, och sedan t.ex.

Det var allt jag ville berätta för dig i det här materialet. Ämnet om inställning bind (namn) är ganska omfattande. Jag kanske återkommer till det igen.

Onlinekurser om Mikrotik

Om du har en önskan om att lära dig arbeta med Mikrotik-routrar och bli specialist inom detta område rekommenderar jag att du tar kurser enligt programmet baserat på information från den officiella kursen MikroTik Certified Network Associate. Förutom officiellt program, kurserna kommer att innehålla laborationer där du kommer att kunna testa och befästa de förvärvade kunskaperna i praktiken. Alla detaljer finns på hemsidan. Kostnaden för utbildningen är mycket överkomlig, en bra möjlighet att få nya kunskaper inom ett ämnesområde som är aktuellt idag. Kursens funktioner:
  • Praktiskt inriktad kunskap;
  • Verkliga situationer och uppgifter;
  • Det bästa av internationella program.

God eftermiddag, läsare. För att fortsätta det teoretiska materialet om, i den aktuella artikeln vill jag överväga ett praktiskt exempel installationer och inställningar annorlunda BIND-serverkonfigurationer. I artikeln kommer jag att beskriva DNS-inställningar-cache och full DNS-masterserver. Jag börjar beskrivningen med allmänna begrepp och nödvändiga steg för att organisera eventuella DNS-servrar.

Allmän information

Som heterär en demon som är en del av paketbind9 och vara domännamnsserver. Demon som heter kan implementera funktionerna för servrar av vilken typ som helst: herre, slav, cache. I diagrammet ovan försökte jag visa huvudet hur BIND DNS-servern fungerar. Binären som gör huvuddelen av arbetet finns i /usr/sbin/named. Det tar inställningar från huvudkonfigurationsfilen som kallas named.conf och finns i katalogen /etc/bind. I huvudkonfigurationen beskrivs serverns arbetskatalog, ofta är detta en katalog /var/cache/bind, i vilken ligger zonbeskrivningsfiler och andra tjänstefiler. Korrespondens zonnamn Och zonbeskrivningsfil set zonsektion med parameter fil. Zonsektion den anger också typen av ansvar för denna server för zonen (master, slav, etc.), och definierar även speciella parametrar för den aktuella zonen (till exempel på vilket gränssnitt som ska behandla förfrågningar för den aktuella zonen). I zonbeskrivningsfiler innehåller zonparametrar och resursposter (vägarna som anges i detta stycke kan skilja sig, det beror på Linux distribution eller parametrar).

Detta är ett allmänt arbetsschema som hjälper dig att undvika förvirring i framtiden när du överväger specifika konfigurationer.

Konfigurationsfilformatet för den fjärde versionen av programmet skiljer sig från det som används i den åttonde och nionde versionen BINDA. Med tanke på att jag räknar med att installera en ny DNS server, men jag ser inte poängen med att installera den gamla versionen, så jag ska titta på konfigurationen för den nya versionen.

Inledande data

För att DNS ska fungera korrekt måste du ha . DNS i den aktuella artikeln kommer att konfigureras på Debiandistributionen; funktioner i andra distributioner kommer också att noteras. Stativets nätverkskonfiguration är som följer:

Dns:~# cat /etc/network/interfaces auto lo iface lo inet loopback auto eth0 iface eth0 inet statisk adress 10.0.0.152 nätmask 255.255.255.0 gateway 10.0.0.254 auto eth1 iface eth1 inet statisk adress 6.52.5.1 netmask 8.52.5.1 netmask 6.52.5.1

Var 10.0.0.152/24 - externt gränssnitt (undernät tilldelat av leverantören), 192.168.1.1/24 - internt (lokalt nätverk). Den anpassade zonen kommer att heta example.com. I exemplet med slavserver, kommer den sekundära servern att finnas på IP 10.0.0.191 .

Installerar BIND9

För att DNS-servern ska fungera måste du binda9 (i vissa distributioner - binda ). Som noterats i diagrammet - huvudkonfigurationsfilen BINDAär en fil named.conf (den här filen kan placeras i katalogen /etc, ibland in /etc/bind).

Parametrar (syntax) named.conf

Syntax för filen named.conf följer följande regler:

IP-adresser- IP-listan måste separeras med symbolen ";" , det är möjligt att ange ett subnät i formatet 192.168.1.1/24 eller 192.168.1.1/255.255.255.0, (för att utesluta IP måste du sätta ett tecken framför det!), det är möjligt att ange namn "alla", "ingen", "lokal värd" inom dubbla citattecken.

Kommentarer- rader som börjar med #, // och omslutna av /* och */ anses vara kommentarer.

I zonbeskrivningsfiler -symbol @är en "variabel" som lagrar namnet på den zon som anges i konfigurationsfilen named.conf eller i @-direktivet $ORIGIN aktuell zonbeskrivning.

Varje färdig sträng parametrar måste sluta med symbolen; .

Acl avsnitt

ACL (åtkomstkontrolllista)- låter dig ange en namngiven lista över nätverk. Avsnittsformat: acl "nätverksnamn" (ip; ip; ip; );

Avsnittet Alternativ

Avsnittet Alternativ set globala parametrar konfigurationsfil som styr alla zoner. Det här avsnittet har formatet: options(options_section_operators);. Alternativ kan "kapslas" in Zonsektion, genom att göra det åsidosätter den de globala parametrarna. Ofta använd alternativ uttalanden:

  • tillåt-fråga( list_ip} - Tillåter endast svar på frågor från list_ip. Om den saknas svarar servern på alla förfrågningar.
  • tillåt-rekursion( list_ip} - Rekursiva frågor kommer att utföras för förfrågningar från list_ip. För resten - iterativ. Om parametern inte anges utför servern rekursiva frågor för alla nätverk.
  • tillåt-överföring ( list_ip} - Indikerar en lista över servrar som får ta en zon från servern (oftast slavservrar anges här)
  • katalogen /sökväg/till/arbete/katalog- anger den absoluta sökvägen till serverns arbetskatalog. Detta uttalande är endast giltigt i alternativsektionen.
  • speditörer ( ip-port, ip-port...} - indikerar värdadresser och, om nödvändigt, portar dit förfrågningar ska vidarebefordras (vanligtvis anges ISP-leverantörernas DNS här).
  • fram ENDAST eller fram FÖRST - parameter först indikerar att DNS-servern ska försöka lösa namn med hjälp av DNS-servrarna som anges i parametern vidarebefordrare, och endast om det inte var möjligt att lösa namnet med dessa servrar kommer den att försöka lösa namn på egen hand.
  • meddela JA|NEJ - JA- meddela slavservrar om ändringar i zonen, NEJ- meddela inte.
  • rekursion JA|NEJ - JA- utföra rekursiva frågor om kunden begär det, NEJ- kör inte (endast iterativa frågor). Om svaret hittas i cachen, returneras det från cachen. (kan endast användas i avsnittet Alternativ)

Zonsektion

Definierar beskrivningen av zonen/zonerna. Avsnittsformat: zon( section_zone_operators}; Operatörer, som oftast används:

  • tillåt uppdatering( list_ip} - anger de system som tillåts att dynamiskt uppdatera denna zon.
  • fil "filnamn " - anger sökvägen till zonparameterfilen (måste finnas i katalogen som anges i alternativsektionen av katalogsatsen)
  • mästare( list_ip} - indikerar listan över huvudservrar. (endast tillåtet i underordnade zoner)
  • typ " zone_type " - indikerar typen av zon som beskrivs i det aktuella avsnittet; zone_type kan ha följande värden:
    • fram- indikerar en omdirigeringszon som vidarebefordrar förfrågningar som kommer till denna zon.
    • antydan- indikerar hjälpzonen ( den här typen innehåller information om rotservrarna som servern kommer att kontakta om den inte hittar svaret i cachen)
    • bemästra- anger att arbeta som en huvudserver för den aktuella zonen.
    • slav- anger att arbeta som en slavserver för den aktuella zonen.

Ytterligare konfigurationsalternativ

Tidsvärden i zonfiler som standard indikeras det i sekunder, såvida de inte följs av någon av följande bokstäver: S - sekunder, M - minuter, H - timmar, D - dagar, W - veckor. Följaktligen posten 2h20m5s kommer att ha ett värde på 2 timmar 20 minuter 5 sekunder och motsvarar 8405 sekunder.

Alla värd-/postnamn som inte slutar med punkt räknas inte FQDN namn och kommer att kompletteras med namnet på den aktuella zonen. Till exempel kommer domenposten i examle.com-zonfilen att utökas till FQDN-namnet domen.examle.com. .

I BIND konfigurationsfiler följande kan gälla direktiv:

  • $TTL- definierar standard-TTL för alla poster i den aktuella zonen.
  • $ORIGIN- ändrar zonnamnet från det som anges i filen named.conf. Samtidigt sträcker sig inte omfattningen av detta direktiv "över" (det vill säga om en fil ingår i $INCLUDE-direktivet, så sträcker sig omfattningen av $ORIGN inte till föräldern)
  • $INKLUDERA- inkluderar den angivna filen som en del av zonfilen.

Jag skulle särskilt vilja beskriva parameter tillåt-överföring ( 10.0.0.191; );. Den här parametern beskriver servrarna som får ladda ner en kopia av zonen - så kallade slavserver. I följande exempel kommer vi att titta på inställningen slav-DNS.

För att loggning ska fungera korrekt måste du skapa lämplig katalog och tilldela nödvändiga rättigheter:

Dns:~# mkdir /var/log/bind/ dns:~# chmod 744 /var/log/bind/ dns:~# ps aux | grep heter bind 4298 0,0 3,4 46792 13272 ? Ssl Jul05 0:00 /usr/sbin/named -u bind root 4815 0.0 0.1 3304 772 pts/4 S+ 18:19 0:00 grep heter dns:~# chown bind /var/log/bind/ dns:~# ls -ld /var/log/bind/ drwxr--r-- 2 bind root 4096 6 jul 18:18 /var/log/bind/

Dns:~# cat /var/cache/bind/example.com $TTL 3D @ IN SOA ns.example.com. root.example.com. (2011070601; seriell 8H; uppdatera 2H; försök igen 2W; går ut 1D) ; minimum @ IN NS ns.example.com. @ IN NS ns2.example.com. @ IN A 10.0.0.152 @ IN MX 5 mx.example.com. ns IN A 10.0.0.152 ns2 IN A 10.0.0.191 mx IN A 10.0.0.152 www IN CNAME @

samt i domänen in-addr.arpa.

Dns:~# cat /var/cache/bind/0.0.10.in-addr.arpa $TTL 3600 @ IN SOA ns.examle.com. root.example.com. (2007042001; Serial 3600; Uppdatera 900; Försök igen 3600000; Expire 3600); Minimum IN NS ns.examle.com. IN NS ns2.example.com. 152 I PTR examle.com. 191 IN PTR ns.example.com. * I PTR examle.com. dns:~# cat /var/cache/bind/1.168.192.in-addr.arpa $TTL 3600 @ IN SOA ns.examle.com. root.example.com. (2007042001; Serial 3600; Uppdatera 900; Försök igen 3600000; Expire 3600); Minimum IN NS ns.examle.com. IN NS ns2.example.com. * I PTR examle.com.

Vårt nätverk är litet, det antas att det finns väldigt få maskiner på nätverket. Alla nätverkstjänster finns på en värd example.com, därför både master DNS (ns.example.com.) och Mejl server(mx.example.com.) pekar på en maskin (10.0.0.152).

Sekundär (slav) auktoritativ zonserver

Huvudfunktion slavserver- automatisk synkronisering av zonbeskrivningen med huvudservern. Denna uppgift regleras av dokumentet RFC 1034 I kapitel 4.3.5. Enligt detta dokument rekommenderas det att utbyta data mellan servrar med hjälp av en AXFR-förfrågan. För denna begäran måste hela zonen sändas i en TCP-anslutning (RFC 1035).

Också, slav DNS-server delar belastningen med masterservern eller tar över hela belastningen vid fel på den första servern.

Innan du börjar konfigurera en slav DNS-server måste du kontrollera om du kan hämta zonen manuellt från den sekundära servern med följande kommando:

Root@debian:~# dig @10.0.0.152 example.com. axfr;<<>> DiG 9.7.3<<>> @10.0.0.152 example.com. axfr; (1 server hittades);; globala alternativ: +cmd exempel.com. 259200 I SOA ns.example.com. root.example.com. 2011070801 28800 7200 1209600 86400 example.com. 259200 IN NS ns.example.com. exempel.com. 259200 IN NS ns2.example.com. exempel.com. 259200 IN A 10.0.0.152 example.com. 259200 IN MX 5 mx.example.com. mx.example.com. 259200 IN A 10.0.0.152 ns.example.com. 259200 IN A 10.0.0.152 ns2.example.com. 259200 IN A 10.0.0.191 www.example.com. 259200 I CNAME example.com. exempel.com. 259200 I SOA ns.example.com. root.example.com. 2011070801 28800 7200 1209600 86400 ;; Frågetid: 14 msek ;; SERVER: 10.0.0.152#53(10.0.0.152) ;; NÄR: Fre 8 jul 15:33:54 2011 ;; XFR-storlek: 11 poster (meddelanden 1, byte 258)

  1. Kopiera named.conf konfigurationsfil från huvudservern;
  2. Byta ut skriv masterparametertyp slav
  3. Parameter tillåt-överföring ( 10.0.0.191; ); byta utmasters(10.0.0.152;); i de zoner för vilka det kommer att vara sekundärt;
  4. Ta bort zoner, som den nuvarande servern inte kommer att betjäna, inklusive roten, om slaven inte kommer att svara på rekursiva förfrågningar;
  5. Skapa kataloger för stockar, som i föregående exempel.

Totalt får vi slavserverns konfiguration:

Root@debian:~# cat /etc/bind/named.conf options ( katalog "/var/cache/bind"; allow-query ( any; ); // svara på frågor från alla gränssnitt rekursionsnr; // inaktivera rekursiv begär auth-nxdomain no; // för RFC1035-kompatibilitet listen-on-v6 (ingen; ); // Vi behöver inte IPv6-versionen "okänt"; // visar inte DNS-serverversionen när du svarar ); // zonerna som beskrivs nedan definierar servern som auktoritativ för loopback //-gränssnitt, såväl som för broadcast-zoner (enligt RFC 1912) zon "localhost" (typ master; fil "localhost"; ); zon "127.in-addr.arpa" (typ master; fil "127.in-addr.arpa"; ); zon "0.in-addr.arpa" (typ master; fil "0.in-addr.arpa"; ); zon "255.in-addr.arpa" (typ master; fil "255.in-addr.arpa"; ); // beskrivning av huvudzonen "example.com" (typ slav; fil "example.com"; masters ( 10.0.0.152; ); ); //beskrivning av den omvända zonzonen "0.0.10.in-addr.arpa" (typ slav; fil "0.0.10.in-addr.arpa"; masters ( 10.0.0.152; ); ); // loggningsinställningar loggning ( kanal "misc" (fil "/var/log/bind/misc.log" versioner 4 storlek 4m; utskriftstid JA; utskriftsgrad JA; utskriftskategori JA; ); kanal "fråga" ( fil "/var/log/bind/query.log" versioner 4 storlek 4m; utskriftstid JA; utskriftsgrad NEJ; utskriftskategori NEJ; ); kategoristandard ( "diverse"; ); kategorifrågor ( "fråga "; ); );

efter att starta om vår slavserver kommer framgångsrikt att kopiera informationen den behöver från huvudservern, vilket kommer att indikeras av närvaron av filer i katalogen:

Root@debian:~# ls -la /var/cache/bind/ totalt 28 drwxrwxr-x 2 root bind 4096 8 jul 18:47 . drwxr-xr-x 10 rotrot 4096 8 jul 15:17 .. -rw-r--r-- 1 bind bind 416 jul 8 18:32 0.0.10.in-addr.arpa ...... - rw-r--r-- 1 bind bind 455 8 jul 18:32 example.com ........

I grund och botten, /stroallow-transfer (pngp slavserver kanske inte lagrar en kopia av zonen i sitt filsystem. Denna kopia behövs endast när DNS startar. Att ha en kopia av zonen i filsystemet kan förhindra ett fel om masterservern inte är tillgänglig under slav-DNS-start. Om du inte anger filalternativet i zonsektionen skapas ingen kopia.

Ställer in netfilter() för DNS BIND

Efter att ha konfigurerat servern skulle det faktiskt vara en bra idé att skydda den. Vi vet att servern körs på port 53/udp. Efter att ha läst artikeln om detta och bekantat dig med den kan du skapa regler för filtrering av nätverkstrafik:

Dns ~ # iptables-save # typiska iptables-regler för DNS *filter:INPUT DROP :FORWARD DROP :OUTPUT DROP -A INPUT -i lo -j ACCEPT -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -A INPUT -m conntrack --ctstate INVALID -j DROP # tillåt lokal nätverksåtkomst till DNS-servern: -A INPUT -s 192.168.1.1/24 -d 192.168.1.1/32 -p udp -m udp --dport 53 -m conntrack - -ctstate NEW -j ACCEPTERA -A OUTPUT -o lo -j ACCEPTERA -A OUTPUT -p icmp -j ACCEPT -A OUTPUT -p udp -m udp --sport 32768:61000 -j ACCEPT -A OUTPUT -p tcp - m tcp --sport 32768:61000 -j ACCEPT -A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT # tillåt DNS-serveråtkomst att göra utgående förfrågningar -A OUTPUT -p udp -m udp --dport 53 -m conntrack - -ctstate NYTT -j ACCEPTERA ÅTAGANDE

Detta typiska exempel! För att ställa in iptables-regler som passar dina uppgifter och nätverkskonfiguration måste du förstå hur nätfilter fungerar i Linux genom att läsa ovanstående artiklar.

Felsökning

Den huvudsakliga källan för att identifiera DNS-problem är. Här är ett exempel på startfel när jag gjorde ett misstag med sökvägen till kärnserverzonfil:

5 jul 18:12:43 dns-server namngiven: startar BIND 9.7.3 -u bind 5 jul 18:12:43 dns-server namngiven: byggd med "--prefix=/usr" "--mandir=/usr/ share/man" "--infodir=/usr/share/info" "--sysconfdir=/etc/bind" "--localstatedir=/var" "--enable-threads" "--enable-largefile" "- -with-libtool" "--enable-shared" "--enable-static" "--with-openssl=/usr" "--with-gssapi=/usr" "--with-gnu-ld" "- -with-dlz-postgres=no" "--with-dlz-mysql=no" "--with-dlz-bdb=yes" "--with-dlz-filesystem=yes" "--with-dlz-ldap =yes" "--with-dlz-stub=yes" "--with-geoip=/usr" "--enable-ipv6" "CFLAGS=-fno-strict-aliasing -DDIG_SIGCHASE -O2" "LDFLAGS=" " CPPFLAGS=" 5 jul 18:12:43 dns-server namngiven: justerad gräns för öppna filer från 1024 till 1048576 jul 5 18:12:43 dns-server namngiven: hittade 1 CPU, med 1 arbetstråd 5 jul 18:12: 43 dns-server namngiven: använder upp till 4096 sockets 5 jul 18:12:43 dns-server namngiven: laddar konfiguration från "/etc/bind/named.conf" 5 jul 18:12:43 dns-server namngiven: läsning byggd -in betrodda nycklar från filen "/etc/bind/bind.keys" 5 jul 18:12:43 dns-server namngiven: använder standard UDP/IPv4-portintervall: 5 jul 18:12:43 dns-server namngiven: använder standard UDP/IPv6-portintervall: 5 jul 18:12:43 dns-server namngiven: lyssnar på IPv4-gränssnitt lo, 127.0.0.1#53 5 jul 18:12:43 dns-server heter: lyssnar på IPv4-gränssnitt eth1, 192.168.1.1 #53 5 jul 18:12:43 dns-server namngiven: genererar sessionsnyckel för dynamisk DNS 5 jul 18:12:43 dns-server namngiven: kunde inte konfigurera rottips från "/etc/bind/db.root": fil hittades inte 5 jul 18:12:43 dns-server namngiven: laddar konfiguration: fil hittades inte # fil hittades inte 5 jul 18:12:43 dns-server namngiven: avslutas (på grund av allvarligt fel) 5 jul 18:15:05 dns-server namngiven: startar BIND 9.7.3 -u bind 5 jul 18:15:05 dns-server namngiven: byggd med "--prefix=/usr" "--mandir=/usr/share/man" "- infodir =/usr/share/info" "--sysconfdir=/etc/bind" "--localstatedir=/var" "--enable-threads" "--enable-largefile" "--with-libtool" "- - enable-shared" "--enable-static" "--with-openssl=/usr" "--with-gssapi=/usr" "--with-gnu-ld" "--with-dlz-postgres= no " "--with-dlz-mysql=no" "--with-dlz-bdb=yes" "--with-dlz-filesystem=yes" "--with-dlz-ldap=yes" "--with - dlz-stub=yes" "--with-geoip=/usr" "--enable-ipv6" "CFLAGS=-fno-strict-aliasing -DDIG_SIGCHASE -O2" "LDFLAGS=" "CPPFLAGS=" 5 jul 18: 15 :05 dns-server namngiven: justerad gräns för öppna filer från 1024 till 1048576 5 jul 18:15:05 dns-server namngiven: hittade 1 CPU, använder 1 arbetstråd 5 jul 18:15:05 dns-server namngiven: använder upp till 4096 sockets 5 jul 18:15:05 dns-server namngiven: laddar konfiguration från "/etc/bind/named.conf" 5 jul 18:15:05 dns-server namngiven: använder standard UDP/IPv4-portintervall: 5 jul 18:15:05 dns-server namngiven: använder standard UDP/IPv6-portintervall: 5 juli 18:15:05 dns-server namngiven: lyssnar på IPv4-gränssnitt lo, 127. 0.0.1#53 Jul 5 18:15:05 dns-server namngiven: lyssnar på IPv4-gränssnitt eth1, 192.168.1.1#53 Jul 5 18:15:05 dns-server namngiven: automatisk tom zon: 254.169.IN-ADDR. ARPA 5 jul 18:15:05 dns-server namngiven: automatisk tom zon: 2.0.192.IN-ADDR.ARPA 5 jul 18:15:05 dns-server namngiven: automatisk tom zon: 100.51.198.IN-ADDR. ARPA 5 jul 18:15:05 dns-server namngiven: automatisk tom zon: 113.0.203.IN-ADDR.ARPA 5 jul 18:15:05 dns-server namngiven: automatisk tom zon: 255.255.255.255.IN-ADDR. ARPA 5 jul 18:15:05 dns-server namngiven: automatisk tom zon: 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6 .ARPA 5 jul 18:15:05 dns-server namngiven: automatisk tom zon: 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0. IP6.ARPA 5 jul 18:15:05 dns-server namngiven: automatisk tom zon: D.F.IP6.ARPA 5 jul 18:15:05 dns-server namngiven: automatisk tom zon: 8.E.F.IP6.ARPA 5 jul 18:15 :05 dns-server namngiven: automatisk tom zon: 9.E.F.IP6.ARPA 5 jul 18:15:05 dns-server namngiven: automatisk tom zon: A.E.F.IP6.ARPA 5 jul 18:15:05 dns-server namngiven: automatisk tom zon: B.E.F.IP6.ARPA 5 jul 18:15:05 dns-server heter: automatisk tom zon: 8.B.D.0.1.0.0.2.IP6.ARPA 5 jul 18:15:05 dns-server heter: zon 0. in-addr.arpa/IN: laddad seriell 1 jul 5 18:15:05 dns-server namngiven: zon 127.in-addr.arpa/IN: laddad seriell 1 jul 5 18:15:05 dns-server namngiven: zon 255.in-addr.arpa/IN: laddad seriell 1 jul 5 18:15:05 dns-server namngiven: zone localhost/IN: laddad seriell 2 jul 5 18:15:05 dns-server namngiven: kör # lansering lyckades

Ett utmärkt diagnostiskt verktyg är.

Sammanfattning

I den aktuella artikeln beskrev jag att ställa in grundläggande BIND DNS-serverkonfigurationer. Syftet med artikeln var att ge en uppfattning om hur BIND-servern fungerar i UNIX. Jag berörde praktiskt taget inte frågorna om DNS-säkerhet och lite berörde sådana specifika inställningar som driften av servern i kantläge, när olika information om zonen/zonerna skickas till olika nätverk. För en djupare förståelse kommer jag att tillhandahålla en lista över ytterligare källor där, jag hoppas, du kommer att kunna få den nödvändiga informationen. Jag ska sätta stopp för det här. Tills nästa gång.

domännamnssystem: http://citforum.ru/internet/dns/khramtsov/
RFC 1034- Domännamn - Koncept och faciliteter: http://tools.ietf.org/html/rfc1034
RFC 1035- Domännamn - Implementering och specifikation: http://tools.ietf.org/html/rfc1035
RFC 1537- Vanliga DNS-datafilkonfigurationsfel: http://tools.ietf.org/html/rfc1537
RFC 1591- Domännamnssystemstruktur och delegering: http://tools.ietf.org/html/rfc1591
RFC 1713- Verktyg för DNS-felsökning: http://tools.ietf.org/html/rfc1713
RFC 2606- Reserverade DNS-namn på toppnivå: http://tools.ietf.org/html/rfc2606
DNS-säkerhet (DNSSEC): http://book.itep.ru/4/4/dnssec.htm
BIND 9 Handbok för administratörer: http://www.bind9.net/manual/bind/9.3.2/Bv9ARM.html
Säker BIND-mall: http://www.cymru.com/Documents/secure-bind-template.html
Konfigurationsparametrarna är väl beskrivna påryska: http://www.bog.pp.ru/work/bind.html
Automatisk skapande av zonfil: http://www.zonefile.org/?lang=en#zonefile

Föreställ dig hur det skulle vara om vi måste komma ihåg IP-adresser till alla webbplatser som vi använder dagligen. Även om vi hade ett fantastiskt minne, skulle processen att navigera till en webbplats vara löjligt långsam och mödosam.

Vad händer om vi behöver besöka flera webbplatser eller använda flera applikationer som finns på samma dator eller virtuella värd? Detta kommer att vara en av de värsta huvudvärk man kan tänka sig – för att inte tala om möjligheten till förändring IP-adresser kopplade till webbplatsen eller applikationen utan föregående meddelande.

Bara tanken på att det skulle vara skäl nog att sluta använda Internet eller intranät efter ett tag.

Det här är en värld utan domännamnssystemet (även känt som DNS). Lyckligtvis löser denna tjänst alla ovan nämnda problem, även om kopplingen mellan IP-adress och domännamnsändringar.

Av denna anledning kommer vi i den här artikeln att lära oss hur man ställer in och använder en enkel DNS-server, en tjänst som låter dig översätta domännamn till IP-adresser och vice versa.

DNS-namnupplösningar

För små nätverk som inte är föremål för frekventa ändringar, filen /etc/hosts kan användas som en rudimentär metod för att bestämma det domännamn som ska lösas IP-adresser.

Denna fil, med hjälp av en mycket enkel syntax, låter dig associera ett namn (och/eller alias) med IP-adress. Detta görs på följande sätt:

Till exempel,

192.168.0.1 gateway gateway.mydomain.com 192.168.0.2 web web.mydomain.com

På så sätt kan du kontakta webbmaskinen antingen med namn web.mindomän.com, eller enligt henne IP-adress.

För stora nätverk eller de som är föremål för frekventa ändringar, använd filen /etc/hosts att lösa domännamn på IP-adresser kommer inte att vara en acceptabel lösning. Det är här behovet av en särskild service uppstår.

Låt oss gå bakom kulisserna i arbetet DNS. DNS-server begär en stor databas i form av ett träd, som börjar från roten ( «.» ) zoner.

Följande figur hjälper oss att förstå vad vi pratar om:

Bilden ovan visar rotzonen (.) innehåller com, edu Och netto domäner på första nivån. Var och en av dessa domäner hanteras (eller skulle kunna) hanteras av olika organisationer för att undvika beroende av en stor central. Detta gör att du kan fördela frågor korrekt över hierarkin.

Vi får se vad som händer:

1. När en klient gör en begäran om DNS-server för web1.sales.me.com, skickar servern en begäran till toppen (roten) DNS-server som vidarebefordrar förfrågan till namnservern i zonen .com.

Detta skickar i sin tur en begäran till nästa nivås namnserver (i zonen me.com), och sedan till sales.me.com. Denna process upprepas så många gånger som behövs tills det fullt kvalificerade domännamnet (FQDN, web1.sales.me.com i det här exemplet) kommer inte att returneras av namnservern för den zon där den finns.

2. I det här exemplet är namnservern i sales.me.com ansvarig för adressen web1.sales.me.com och returnerar den önskade associationen för domännamnet - IP och annan information (om den är konfigurerad för detta).

All denna information skickas till källan DNS-server, som sedan skickar tillbaka den till klienten som begärde den. För att undvika att upprepa samma steg för framtida identiska frågor lagras frågeresultaten på DNS-server. Detta är den viktiga aspekten för vilken en sådan inställning brukar kallas rekursiv cachelagring av DNS-serverinställningar.

Installera och konfigurera en DNS-server

I Linux mest använda DNS-servern är binda(förkortning av Berkeley Internet Name Daemon), som kan installeras enligt följande:

# mums installera bind bind-utils # zypper installera bind bind-utils # aptitude installera bind9 bind9utils

Efter att vi har installerat binda och tillhörande verktyg, gör en kopia av konfigurationsfilen innan du gör några ändringar:

# cp /etc/named.conf /etc/named.conf.orig # cp /etc/bind/named.conf /etc/bind/named.conf.orig

Låt oss sedan öppna named.conf och gå vidare till parameterblocket, där vi behöver specificera följande inställningar för den rekursiva cachingservern med IP 192.168.0.18/24, som endast kan nås av värdar på samma nätverk (som en säkerhetsåtgärd).

Alternativen för vidarebefordran används för att ange vilka namnservrar som ska fråga först (i följande exempel använder vi Googles namnservrar) för värdar utanför vår domän:

Alternativ ( ... lyssningsport 53 ( 127.0.0.1; 192.168.0.18); allow-query ( localhost; 192.168.0.0/24; ); rekursion ja; vidarebefordrare ( 8.8.8.8; 8.8.4.4; ); . .. )

Utanför alternativblocket kommer vi att definiera vår zon sales.me.com(på Ubuntu görs detta vanligtvis i en separat fil som heter named.conf.local), som visar domänen med det givna IP-adress och omvänd zon för matchning IP-adresser till motsvarande område.

Den faktiska konfigurationen av varje zon kommer dock att ske i separata filer, enligt vad som anges i fildirektivet ("master" betyder att vi endast kommer att använda en DNS-server).

Lägg till följande rader i filen named.conf:

Zon "sales.me.com." IN (skriv master; filen "/var/named/sales.me.com.zone"; ); zon "0.168.192.in-addr.arpa" IN ( skriv master; fil "/var/named/0.162.198.in-addr.arpa.zone"; );

anteckna det inaddr.arpa(för IPv4-adresser) och ip6.arpa(för IPv6) är konventioner för omvända zonkonfigurationer.

Efter att ha sparat ovanstående ändringar till named.conf vi kan leta efter fel som detta:

# named-checkconf /etc/named.conf

Om några fel hittas, uppstår kommandot ovan Meddelande med anledningen och linjen de befinner sig i. Annars kommer det inte att returnera något.

Konfigurera DNS-zoner

I filer /var/named/sales.me.com.zone Och /var/named/0.168.192.in-addr.arpa.zone vi kommer att konfigurera zonerna framåt (domän → IP-adress) och omvända (IP-adress → domän).

Låt oss först titta på den direkta konfigurationen:

1. Överst i filen hittar du en rad som börjar med TTL(förkortning av Time To Live), som anger hur länge ett cachat svar ska leva innan det ersätts av resultatet av en ny begäran.

På raden nedan kommer vi att länka till vår domän och ange adressen E-post, varifrån meddelanden ska skickas (observera att root.sales.me.com betyder ).

2. Inspelning SOA(Start of Authority) indikerar att detta system är den auktoritativa namnservern för maskiner inom domänen sales.me.com.

Om du har två namnservrar (en master och en slav) krävs följande inställningar för varje domän (även om detta inte är vårt fall eftersom det inte krävs i testet, de presenteras här som referens):

Serie används för att separera en version av zondefinitionsfilen från den föregående (där parametrar kan ha ändrats). Om det cachade svaret pekar på en utgång med en annan Serie, exekveras begäran igen istället för att returneras till klienten.

I en uppsättning med en slav (sekundär) namnserver Uppdatera anger den tid under vilken den sekundära servern ska leta efter en ny serienummer från huvudservern.

Förutom, Försök igen talar om för servern hur ofta den sekundära ska försöka kontakta den primära om inget svar tas emot från den primära, medan Upphöra indikerar när en zondefinition i sekundärt läge inte längre är giltig efter att det inte längre är möjligt att ta emot ett svar från den primära servern, och negativt TTLär den tid under vilken en icke-existerande domän inte cachelagras ( NXdomain).

3. N.S.-posten indikerar att den är auktoritativ DNS-server för vår domän (vilket indikeras av @-tecknet i början av raden).

4. Inspelning A(för IPv4-adresser) eller AAAA(för IPv6-adresser) löser namn till IP-adresser.

I exemplet nedan:

Dns: 192.168.0.18 (den DNS-server sig själv) web1: 192.168.0.29 (en webbserver i sales.me.com-zonen) mail1: 192.168.0.28 (en e-postserver i sales.me.com-zonen) mail2: 192.168.0.30 (en annan e-postserver)

5. Inspelning MX anger namnen på de auktoriserade postöverföringsagenterna (MTA) för denna domän. Värdnamnet måste föregås av ett nummer som anger den prioritet som den aktuella e-postservern ska ha om det finns två eller flera MTA för en domän (ju lägre värde, desto högre prioritet) i följande exempel, mail1är grundläggande, medan mail2är sekundär MTA).

6. Inspelning CNAME ställer in ett alias (www.web1) för värden (web1).

VIKTIG: närvaron av en punkt är viktig (.) i slutet av namnen.

$TTL 604800 @ IN SOA sales.me.com. root.sales.me.com. (2016051101; Serial 10800; Uppdatera 3600; Försök igen 604800; Expire 604800); Negativ TTL ; @ IN NS dns.sales.me.com. dns IN A 192.168.0.18 web1 IN A 192.168.0.29 mail1 IN A 192.168.0.28 mail2 IN A 192.168.0.30 @ IN MX 10 mail1.sales.me.com. @ IN MX 20 mail2.sales.me.com. www.web1 I CNAME webb1

Låt oss titta på den omvända zonkonfigurationen (/var/named/0.168.192.in-addr.arpa.zone). Spela in SOA samma som i föregående fil, medan de tre sista raderna med posten PTR(pekare) indikerar den sista oktetten i värdadressen IPv4 mail1, webb1 Och mail2(192.168.0.28, 192.168.0.29 respektive 192.168.0.30).

$TTL 604800 @ IN SOA sales.me.com. root.sales.me.com. (2016051101; Serial 10800; Uppdatera 3600; Försök igen 604800; Expire 604800); Minsta TTL @ IN NS dns.sales.me.com. 28 IN PTR mail1.sales.me.com. 29 IN PTR web1.sales.me.com. 30 IN PTR mail2.sales.me.com.

Du kan kontrollera zonfilerna för fel:

# named-checkzone sales.me.com /var/named/sales.me.com.zone # named-checkzone 0.168.192.in-addr.arpa /var/named/0.168.192.in-addr.arpa.zone

Följande skärmdump visar vad det förväntade resultatet är:

Annars får du ett felmeddelande och råd om hur du löser det:

När du har verifierat huvudkonfigurationsfilen och zonfilerna, starta om den namngivna tjänsten för att tillämpa ändringarna.

I CentOS Och openSUSE do:

# systemctl omstart namngiven

Och glöm inte att även inkludera det:

# systemctl aktivera namngiven

I Ubuntu:

$ sudo-tjänsten bind9 omstart

Slutligen måste du redigera konfigurationen av huvudnätverksgränssnitten:

I /etc/sysconfig/network-scripts/ifcfg-enp0s3 för CentOS och openSUSE ---- DNS1=192.168.0.18 ---- I /etc/network/interfaces för Ubuntu ---- dns-namnservrar 192.168.0.18

Starta nu om nätverkstjänsten för att tillämpa ändringarna.

DNS-servertestning

Vid det här laget är vi redo att begära vår DNS-server för lokala och externa namn och adresser. Följande kommandon kommer tillbaka IP-adress kopplad till värden webb1:

# host web1.sales.me.com # host web1 # host www.web1

Hur kan vi ta reda på vem som behandlar e-postmeddelanden för sales.me.com? Det är lätt att ta reda på – begär bara in register MX för domän:

# host -t mx sales.me.com

På samma sätt, låt oss göra den omvända frågan. Detta kommer att hjälpa oss att ta reda på namnet IP-adresser:

# värd 192.168.0.28 # värd 192.168.0.29

Du kan prova samma operationer för externa värdar:

För att säkerställa att förfrågningar faktiskt går igenom vår DNS-server, låt oss aktivera loggning:

# rndcquerylog

Och kolla filen /var/log/meddelanden(på CentOS och openSUSE):

# host -t mx linux.com # host 8.8.8.8

För att inaktivera loggning DNS, ange igen:

# rndcquerylog

I Ubuntu För att aktivera loggning måste du lägga till följande oberoende block (samma nivå som alternativblocket) till /etc/bind/named.conf:

Loggning ( kanal query_log ( fil "/var/log/bind9/query.log"; allvarlighetsgrad dynamisk; utskriftskategori ja; utskriftsgrad ja; utskriftstid ja; ); kategorifrågor ( query_log; ); );

Observera att loggfilen måste finnas och vara skrivbar med namn.

Resultat

I den här artikeln förklarade vi hur man ställer in en grundläggande rekursiv cachelagring DNS-server och hur man konfigurerar zoner för en domän.

För att säkerställa korrekt funktion av din DNS-server, se till att aktivera den här tjänsten i din brandvägg (TCP-port 53) enligt beskrivningen i ("Konfigurera Iptables-brandväggen för att aktivera Fjärranslutning till din tjänst").

.

Cisco och Linux-kurser med anställning!

Skynda dig att ansöka! Det finns ett par platser kvar. Grupper startar 22 juli, och nästa 19 augusti, 23 september, 21 oktober, 25 november, 16 december, 20 januari, 24 februari.

Vad får du?

  • Vi hjälper dig att bli expert på nätverksadministration och få internationella certifikat Cisco CCNA Routing & Switching eller Linux LPI.
  • Vi erbjuder ett beprövat program och lärobok från experter från Cisco Networking Academy och Linux Professional Institute, certifierade instruktörer och en personlig mentor.
  • Vi hjälper dig att hitta jobb och bygga en karriär. 100 % av våra akademiker är anställda.

Hur går träningen?

  • Vi håller kvällsföreläsningar online på vår plattform eller studerar personligen på kontoret i Kiev.
  • Vi kommer att fråga dig om en lämplig tidpunkt för övning och anpassning: vi förstår att det finns lite tid att studera.
  • Vill du ha ett individuellt schema så diskuterar vi och genomför det.
  • Vi kommer att sätta tydliga deadlines för självorganisering. En personlig handledare kommer att kontakta dig för att svara på frågor, ge råd och motivera dig att hålla tentamens deadlines.

Vi hjälper dig också:

Syftet med DNS är att översätta domännamn som är lätta för människor att komma ihåg till IP-adresser som datorer kan förstå, en process som kallas namnupplösning.
Vad kommer att ge oss att installera vår egen cachande DNS-server?!
Detta kommer att påskynda responsen från webbplatser lite + Linux tar inte NetBios-namn särskilt bra, men ibland måste du hitta datorer eller skrivare inom ett lokalt nätverk, men du vill göra det med namn.
Att komma ihåg IP-adresser är inte bekvämt, och att ständigt titta på loggen för DHCP-servern är inte heller vår metod. Det är för sådana fall du behöver DNS på det lokala nätverket.
Installationen av bind9-paketet i sig är inte svårt; fel uppstår vanligtvis i konfigurationsstadiet, eftersom Efter lättläsbara systemkonfigurationsfiler ställs en person inför en obegriplig syntax, som för övrigt är väldigt lik programmeringsspråket S. servern kommer att fungera i det lokala nätverket, det är ingen mening att överföra den till en chroot-miljö och hela installationen tar väldigt lite tid.
Med detta kan den lyriska delen slutföras, låt oss gå vidare till installation och konfiguration.
Låt oss installera Bind9 DNS-servern:
sudo apt-get install bind9
Efter slutförande, nedladdning och installation måste vi redigera dess konfigurationsfil:
sudo nano /etc/bind/named.conf.options
Vi hittar sektionen, den ligger i början av konfigurationsfilen, förutom att det inte finns något annat där...

Alternativ ( katalog "/var/cache/bind"; // Om det finns en brandvägg mellan dig och namnservrar du vill // ska prata med, kan du behöva fixa brandväggen så att flera // portar kan prata. Se http: //www.kb.cert.org/vuls/id/800113 // Om din internetleverantör tillhandahöll en eller flera IP-adresser för stabila // namnservrar, vill du förmodligen använda dem som vidarebefordrare. // Avkommentera följande block och infoga adresserna som ersätter // all-0's platshållare. // vidarebefordrare ( // 0.0.0.0; // ); auth-nxdomain no; # överensstämmer med RFC1035 listen-on-v6 ( any; ); );

Speditörsektionen ansvarar för vart DNS-begäran om namnupplösning kommer att skickas om den inte finns i den egna databasen. På sistone har jag inte varit nöjd alls, arbetet med dessa servrar med leverantören är varför du kan ansluta tredjeparts, till exempel Google, det är väldigt lätt att komma ihåg IP 8.8.8.8, jag kommer att använda dess exempel för att konfigurera det, men ingen stör dig att använda de du gillar bäst.

Vi redigerar avsnittet, först måste du ta bort kommentarer från det och lägga till tredjeparts DNS, om det finns ett behov av att lägga till flera servrar, till exempel om Google-servern inte kan motstå dina förfrågningar och går sönder :), då IP för andra servrar kan skrivas i en kolumn, då kan du uppnå större feltolerans.
speditörer (8.8.8.8; 193.58.251.251; //Rysk DNS-tjänst -SkyDNS);
I det här avsnittet är det bättre att ange IP-adressen för servern som du har angett i filen /etc/resolv.conf eller skriv in det i avsnittet namnserver denna IP
Spara ändringarna och avsluta
Starta om servern och kontrollera
Rekrytering kl kommandorad nslookup mail.ru
Bör mata ut:

Icke-auktoritativt svar: Namn: mail.ru Adresser: 94.100.191.202
Detta tyder på att vår server inte är den främsta som servar den här zonen (mail.ru), utan har lagt till förfrågningar i cachen!
Nu behöver vi skapa en DNS-zon för vårt nätverk så att maskiner kan hitta olika nätverkstjänster – det kan till exempel finnas nätverksskrivare, de kan antingen vara oberoende eller delade på andra arbetsstationer.
Vår zon kan kallas orgnamn – d.v.s. Organisationens namn.
Först och främst skapar vi en zon, för detta kommer vi att redigera named.conf.local

Sudo nano /etc/bind/named.conf.local
och lägg till följande:
zon "orgname" (skriv master; fil "/etc/bind/db.orgname"; );
Spara och avsluta
Nu måste vi skapa en zonkonfigurationsfil
sudo nano /etc/bind/db.orgname
och klistra in följande i den:
(Var vänlig uppmärksamma syntaxen för konfigurationsfilen, även prickarna har betydelse)

@ IN SOA orgnamn. root.orgname. (20101015 4h; uppdateringstid -4 timmar 1h; upprepa varje timme 1w; hur länge ska information lagras -1 vecka 1d); TTL (time to live) av rekord - 1 dag @ IN NS orgname. ; namnservernamn @ IN A 192.168.10.1 ; A - post - IP-adressen till vår DNS-server som betjänar denna zon, @ betyder att detta är rotzonen. * IN CNAME @ skrivare IN A 192.168.10.25 ; Du kan skapa en DNS-post för en nätverksskrivare som finns på 192.168.10.25

Nu, när du lägger till en ny nätverksenhet, måste du göra två saker:
1) Reservera en IP-adress på en DHCP-server, du kan läsa om hur du gör detta i artikeln -
2) Skapa en DNS-zon för denna IP, skriv enhetsnamn I EN XXX.XXX.XXX.XXX. Där: enhetsnamn är enhetens nätverksnamn; XXX.XXX.XXX.XXX är dess IP-adress som är reserverad på DHCP-servern.

Nu måste vi redigera filen resolv.conf

Sudo nano /etc/resolv.conf

Och gå in där:

Namnserver 127.0.0.1

Allt som fanns där kunde kommenteras genom att lägga #

Startar om servern

Detta gjordes så att servern söker efter allt i sin egen databas, och först då kommer BIND att omdirigera förfrågningar till servern 8.8.8.8 IP vars IP ingår i direktivet speditörer.

Nu kan du kontrollera funktionen:

Om testning sker under Windows:
ping enhetsnamn.orgnamn

Om vi ​​testar från Linux:
ping devicename.orgname -c 4
Pings bör gå till IP-adressen som du angav istället för XXX.XXX.XXX.XXX

Detta slutför DNS-serverinstallationen.

Utgivningen av WordPress 5.3 förbättrar och utökar blockredigeraren som introducerades i WordPress 5.0 med ett nytt block, mer intuitiv interaktion och förbättrad tillgänglighet. Nya funktioner i redigeraren […]

Efter nio månaders utveckling är multimediapaketet FFmpeg 4.2 tillgängligt, vilket inkluderar en uppsättning applikationer och en samling bibliotek för operationer på olika multimediaformat (inspelning, konvertering och […]

  • Nya funktioner i Linux Mint 19.2 Kanel

    Linux Mint 19.2 är en långsiktig supportversion som kommer att stödjas fram till 2023. Den kommer med uppdaterad programvara och innehåller förbättringar och många nya […]

  • Linux Mint 19.2-distribution släppt

    Utgivningen av distributionssatsen Linux Mint 19.2 har presenterats, den andra uppdateringen av Linux Mint 19.x-grenen, bildad på partiet Ubuntu baserad 18.04 LTS och stöds till 2023. Distributionen är helt kompatibel [...]

  • Nya BIND-tjänstutgåvor är tillgängliga som innehåller buggfixar och funktionsförbättringar. Nya versioner kan laddas ner från nedladdningssidan på utvecklarens webbplats: […]

    Exim är en meddelandeöverföringsagent (MTA) utvecklad vid University of Cambridge för användning på Unix-system anslutna till Internet. Den är fritt tillgänglig i enlighet med [...]

    Efter nästan två års utveckling presenteras releasen av ZFS på Linux 0.8.0, implementering filsystem ZFS, paketerad som en modul för Linux-kärnan. Modulen har testats med Linux-kärnor från 2.6.32 till […]

  • WordPress 5.1.1 fixar en sårbarhet som gör att du kan ta kontroll över din webbplats
  • IETF (Internet Engineering Task Force), som utvecklar Internetprotokoll och arkitektur, har slutfört en RFC för ACME (Automatic Certificate Management Environment)-protokollet […]

    Den ideella certifieringsmyndigheten Let’s Encrypt, som kontrolleras av communityn och tillhandahåller certifikat gratis till alla, summerade det senaste årets resultat och pratade om planerna för 2019. […]

  • Kom ut en ny version Libreoffice – Libreoffice 6.2
  • 
    Topp