I den forrige artikkelen i denne to-del-serien, Introduksjon til DNS (Domain Name System), som jeg har beskrevet hvordan DNS database er strukturert, og hvordan du konfigurerer navn tjenester på en klient. Jeg har også listet opp og beskrevet noen av de mer vanlige DNS-postene du er sannsynlig å møte når du bygger et navn server eller bare prøver å tolke resultatene av en grave-kommandoen.

I denne artikkelen, vil jeg vise deg hvordan å bygge ditt eget navn server med BIND (Berkeley Internet Name Domene)., Det er ikke så vanskelig som du kanskje tror, spesielt fordi du kan gjøre det i to etapper.

I denne artikkelen, vil du begynne ved å lære hvordan å lage en caching server navn, så vil du gå videre og lær hvordan du oppgraderer til en komplett primære (master) domain name server i nettverket, komplett med forover og bakover sone filer.

Sette opp en DNS-server ved hjelp av BINDE

Sette opp et navn server med BIND er ganske grei, så skal jeg vise deg hvordan å gjøre det på hvilken som helst datamaskin du kan ha tilgjengelig for eksperimentering., Denne lille lab-prosjektet vil vise deg hvordan du installerer og konfigurerer du BINDER på datamaskinen som en caching server navn, kan du teste den, og deretter sette det opp som en primær navnserver med en sone-fil som du kan bruke som navn resolver for nettverket eller bare for å teste.

Sette opp en server navn på en GNU/Linux-maskinen du har tilgjengelig er teknisk mulig, fordi det ikke vil forstyrre andre maskiner på nettverket eller på deres drift. Imidlertid, bør du sannsynligvis ikke gjøre dette på en maskin som du ikke eier eller har rett til å endre, med mindre du har uttrykkelig tillatelse til å gjøre det.,

Mitt oppsett

Du trenger bare en datamaskin til å utføre alle, men en av oppgavene i dette lab-prosjektet. Jeg bruker dette oppsettet på min mye kraftigere ThinkPad fordi navnet servere levert av DHCP (Dynamic Host Configuration Protocol) når jeg kobler til ikke-home-nettverk ved hjelp av enten kablet eller trådløs tilkobling, kan det noen ganger være upålitelig. For å vise at nesten alle verter kan fungere godt som et navn, server, jeg har testet dette prosjektet på en gammel ASUS EeePC 900 netbook.,

jeg vil bruke private IP-adressen til min ASUS for dette prosjektet, men du bør bruke IP-adressen til serveren du bruker.

hosts-filen

Først, la oss ta en titt i /etc/hosts-filen. I standard form, det skal bare være to linjer i filen hosts, de to første linjene sett i Liste 1, nedenfor.

Liste 1: Du kan opprettholde en enkel hosts-filen for å utføre funksjonen til en resolver i små nettverk.,

Selv om du kan legge til vertsnavn og deres respektive IP-Adresser som vist i Listing 1, dette er ikke en optimal løsning for å nevne tjenester, spesielt når du er på reise. Hvis det er andre oppføringer i filen hosts, du kan få behov for å kommentere dem ut for varigheten av dette prosjektet hvis de forstyrrer navn eller IP-adresser. De fleste av dere vil ikke ha noen oppføringer andre enn de to standard linjer.,

Forberedelse

En caching server navn kan ikke erstatte din bruk av /etc/hosts for å løse vertsnavnene på det interne nettverket, men sammenlignet med bruk av en internett-leverandør eller andre offentlige navn en caching server navn, server kan forbedre ytelsen ved å løse brukte eksterne navn, for eksempel www.cnn.com. Den beste delen er at du setter opp en cache name server er ganske enkel.

Før du starter, bør du forberede deg ved å utføre følgende trinn.

Først, ta sikkerhetskopier av filene /etc/hosts, /etc/navngitt.conf, resolv.conf, og /etc/sysconfig/iptables.,

Hvis de ikke allerede er installert, kan du bruke din distribusjon pakke manager til å installere de følgende BINDE Turtall: bind, bind-chroot, og binde-utils. For å aktivere din lab vert å bruke caching server navn, må du legge til et navn, server linje til å peke til din egen vert i /etc/resolv.conf. For eksempel, hvis din lab IP-Adressen er 192.168.0.203, som er min epc, legg til følgende linje til toppen av navnet server-listen i /etc/resolv.conf:

name server 192.168.0.203

sørg for å bruke IP-Adressen til serveren som du gjør i dette prosjektet.,

Du kan bruke IP-Adressen til din localhost, 127.0.0.1 i stedet for den eksterne IP-adressen. Du bør også kommentere ut noen linjer som peker til andre verter som navnet servere. Sørg for å lagre den reviderte resolv.conf-fil.

Disse endringene trer i kraft umiddelbart og uten reboot eller tjeneste omstart er nødvendig. Nå forsøke å pinge en felles offentlige vert som ikke blokkere ICMP (Internet Control Message Protocol) – pakker; føl deg fri til å bruke mine brannmur, som er en Raspberry Pi.,

ping wally2.both.org

Du bør få en «ukjent vert» eller «Navn eller en tjeneste som ikke er kjent» feil fordi du har for tiden ingen arbeider DNS-tjenesten eller resolver definert i resolv.conf-fil. Nå bruker grave-kommandoen for å se om navnet tjenester fungerer som det skal.

dig wally2.both.com

Du bør få feil, «Connection timed out; ingen servere kan nås.»

Sette opp en caching server navn

En caching navn server er en pålitelig kilde for ethvert domene., Det rett og slett cacher resultatene av alle navn resolver forespørsler fra nettverket at det tjener til å fremskynde svar til fremtidige forespørsler for samme ekstern vert.

Merk: Det heter.conf-fil er veldig spesielt om syntaks og spesielt tegnsetting. Semikolon brukes til å avgrense slutten av et inn-og utgangen av et menypunkt, så vel som på slutten av en linje. Sørg for å legge dem i riktig som vist i prøvene.

For det første oppsettet av caching server navn å gjøre et par endringer til standard i /etc/navngitt.conf-fil er nødvendig, så redigere filen ved hjelp av din favoritt editor., Først, legg til IP-adressen til din lokale test vert til «å lytte på port 53» linje som vist i Listing 2 nedenfor. Dette gjør det mulig heter til å lytte på den eksterne IP-Adressen til din vert, slik at andre datamaskiner kan bruke det som en navnetjener som godt.

som standard, BIND refererer til Internett er roten navnetjenere for å finne den autoritative navnetjenere for domenet. Det er mulig å angi andre servere som er kalt «Lastbærere» som den lokale forekomsten av BIND vil sende forespørsler i stedet for rot-servere. Dette øker muligheten for DNS-kapring.,

Legg til en «lastbærere» linje som vist nedenfor. Dette forteller caching DNS-server hvor du skal få IP-Adresser når de ikke allerede er bufret lokalt. IP-Adresser på listen nedenfor er for Google public DNS-servere Du kan bruke din lokale ISP eller OpenDNS eller noen andre offentlige navn server som speditør. Det er ikke nødvendig å angi noen speditører og, i så fall, BIND ville bruke Internett rot-servere, som definert i filen /var/het/heter.ca for å finne den autoritative navnetjenere for domener hvis ingen speditører er definert., Men for denne øvelsen, kan du angi speditører som jeg har i Liste 2.

Kommentar ut IPV6-line fordi vi ikke bruker IPV6 i lab-miljø. Merk at «//» frem to skråstreker betegne kommentarer i navn.conf-fil.

Liste 2: /etc/navngitt.conf-fil gir enkel konfigurasjon kreves for å sette opp en cache name server. Linjene som trenger å bli lagt til eller endret, er uthevet i fet skrift.

Legg til det lokale nettverket adresse, 192.168.0.0/24, til allow-spørring linje., Denne linjen angir nettverk(s) som DNS-spørringer som skal være akseptert av dette DNS-server.

Start navn-service

Nå kan du starte heter service og konfigurere den navngitte tjenesten skal starte ved hver oppstart. Jeg bruker systemctl kommando på min Fedora 25-vert, men kommandoen kan være annerledes på din vert, avhengig av fordelingen du bruker. Merk at navnet på den BINDER resolver tjenesten er navngitt.,

systemctl enable named
systemctl start named

Den første testen du kan utføre for å sikre at caching navn-server fungerer på, er å bruke grave for å finne DNS database for informasjon wally2.both.org. For ytterligere å teste dine caching server navn, bruk grave kommando for å hente IP-Adresse(r) for noen vanlige Internett nettsteder, som for eksempel www.opensource.com, CNN, Kablet og noen andre du liker. Resultatene skal nå vise dine vert som å svare server.,

På dette punktet ditt caching server navn vil riktig løse vertene på Internett og det er fordi de DNS-forespørsler for offentlig verter er videresendt til den offentlige Google-navnetjenere—se «lastbærere» linje i navnet.conf. Men du er fremdeles avhengig av filen /etc/hosts for interne navnet tjenester. Opprette en primær navnserver kan løse det problemet.

Opprette en primær navnserver

Når du oppretter en caching server navn, konvertere den til et fullverdig primær navnserver er ikke for vanskelig., En primær navnserver er autoritativ kilde for domenet det representerer.

Du trenger å endre navn.bekreft på nytt og lage et par nye filer. Du vil opprette et domene som heter Example.com, som er et domene navn som er reservert for eksempel hensikt i dokumenter som dette. Den Example.com domenet har en IP-adresse på Internett, og en svært enkel nettside, men du kan bruke navnet i resten av lab-prosjektet uten å skape problemer for noen. Du vil bruke Example.com domenet som den interne domenenavn for resten av øvelsen.,

De to nye filene du skal opprette er den forover og bakover sone-filer, som du vil plassere i /var/som heter katalogen. Denne plasseringen er angitt av «katalog» – direktivet i navn.conf konfigurasjonsfilen.

Opprett frem sone arkiv

Den frem zone-filen inneholder En» poster som par navn til verter i sonen, aka domene, med sine respektive IP-adresser. Det kan også inneholde CNAME-poster, som er aliaser for den virkelige vertsnavn i A-records, og MX-poster for e-postservere.

Opprette en grunnleggende fremover sone filen /var/het/eksempel.com.,sonen, og legg til følgende linjer til det. Din sone-filen skal se ut som eksempel zone-filen i Liste 3, nedenfor, når du er ferdig.

; Authoritative data for example.com zone
;
$TTL 1D
@ IN SOA epc.example.com root.epc.example.com. (
2017031301 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
$ORIGIN example.com.
example.com. IN NS epc.example.com.
epc IN A 127.0.0.1
server IN A 192.168.25.1
www IN CNAME server
mail IN CNAME server
test1 IN A 192.168.25.21
t1 IN CNAME test1
test2 IN A 192.168.25.22
test3 IN A 192.168.25.23
test4 IN A 192.168.25.24
; Mail server MX record
example.com. IN MX 10 mail.example.com.

Liste 3: frem sonefilen for Example.com domenet inneholder vertsnavn og IP-adresser for dette domenet.

Den første ikke-kommentar linje i Oppføringen 3 er Tid til å Leve specifier, som i dette tilfellet er en dag for alle poster som ikke er annet er angitt. D står for Dagen. Den specifiers i SOA (Start av Myndighet) linje er like åpenbare., Detaljer av parametrene i SOA post er beskrevet i detalj her.

NS-posten må ha FQDN (Fully Qualified Domain Name) av verten som du utfører denne lab-prosjektet. Det må også være En oppføring i filen med en gyldig IP-adresse for verten. I dette tilfellet, bør du bruke localhost IP-adressen 127.0.0.1.

oppføringene som vises ovenfor, vil gi deg et par vertsnavn med å eksperimentere.

sørg for å bruke dagens dato, og legge en teller som starter på 01 serienummeret. Serienummeret ovenfor er den første endringen av Mars 4, 2017., Serienummeret er økt når sonen filen er endret. Hvis det var sekundære navneservere som brukes denne for en primær, ville de ikke bli oppdatert hvis serienummeret er økt.

Legge frem sone-filene til navngitt.conf

Før DNS-server vil fungere, men du må opprette en oppføring i /etc/navngitt.conf som peker til den nye sonen fil. Legg til følgende linjer under oppføring for topp-nivå hint sone, men før «inkluder» – linjer.

zone "example.com" IN {
type master;
file "example.com.zone";
};

Liste 4: Legge til disse linjene i boksen navn.conf-fil for å legge til Eksempelet.,com-zone-filen til resolver konfigurasjon.

Nå starter kalt til å gjøre disse endringene trer i kraft. Test-ditt navn-server ved hjelp av grave-og nsloookup kommandoer for å få IP-Adresser for vertene du har konfigurert i fremover zone-filen. Merk at verten ikke må finnes på nettverket for å grave og nslookup-kommandoer for å returnere en IP-Adresse.

Vær oppmerksom på at ved hjelp av det fullstendige domenenavnet (FQDN) for disse kommandoene er nødvendig, med unntak for den kommandoen nslookup så lenge domenet og søker bidrag av Example.com er gitt i /etc/resolv.conf-fil., I dette tilfellet, er de sannsynligvis ikke, så det er bare å bruke FQDNs for all testing i dette prosjektet.

ved Hjelp av rotnavnetjenerne

legg Merke til at rotnavnetjenerne er gitt som den autoritative servere for Amazon.com oppslag. Men husk at du bruker Google offentlig navnetjenere som lastbærere. Nå kommentere ut speditører linje i navnet.conf og nytt navn. Kjøre over kommandoer på nytt for å sammenligne resultatene som returneres. Resultatet bør se omtrent slik de nedenfor i Liste 5.

Liste 5: resultatene av et oppslag på www.Amazon.,com har noen interessante opplysninger, herunder tid til å leve for de ulike oppføringstyper.

Når jeg gjorde dette, blir det første anropet for å løse den eksterne adressen for Amazon tok 3857ms mens dataene ble funnet og returnert. Påfølgende resultater for å utføre det samme søket ble 1ms, som viser nytte av caching resolver resultater lokalt. Legg merke til de tall 1800, 300, og 60 i svar delen linjer og 1831 i esa del linjer—dette er TTL (Ganger for Å Leve) i sekunder., Hvis du utføre oppslag flere ganger, disse tallene vil endre, som viser hvor mye tid som journalen har igjen å leve i lokal hurtigbuffer.

Opprette omvendt sone arkiv

En omvendt sone for domenet ditt vil gi muligheten til å gjøre omvendt oppslag. Mange organisasjoner ikke gjør disse internt, men omvendt oppslag kan være nyttig i å gjøre problemet besluttsomhet. Mange spam-bekjempelse konfigurasjoner, som for eksempel SpamAssassin, se for omvendt oppslag for å bekrefte gyldig e-postservere.

Opprett omvendt sone filen /var/het/eksempel.com.rev og legg til følgende innhold., Sørg for å bruke et passende tall.

; Authoritative data for example.com reverse zone
;
$TTL 1D
@ IN SOA test1.example.com root.test1.example.com. (
2017031501 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS epc.example.com.
example.com. IN NS epc.example.com.
1 IN PTR mail.example.com.
1 IN PTR server.example.com.
21 IN PTR test1.example.com.
22 IN PTR test2.example.com.
23 IN PTR test3.example.com.
24 IN PTR test4.example.com.

Liste 6: Bruk denne omvendte sone fil, for eksempel.com.rev, for ditt navn server.

Du kan også navngi omvendt sone filen /var/het/25.168.192.i-adr.arpa, som følger eldre konvensjoner. Du kan faktisk kalle det hva du vil fordi du vil peke på det eksplisitt i navnet.conf-fil, men med en av de to konvensjonene vil gjøre det lettere for andre å følge arbeidet.

Legg til motsatt sonen til navngitt.conf:

zone "25.168.192.in-addr.arpa" IN {
type master;
file "example.com.rev";
};

Liste 7: Legge til dette verset til navngitt.,conf-fil, kan omvendt oppslag.

Legg til verset i Listing 7 /etc/navngitt.conf-fil til å peke til den nye omvendt sone. Nå laste heter og test dine omvendt sone ved hjelp av kommandoene i Listing 8. Resultatet bør se omtrent slik de nedenfor.

Liste 8: Etter omstart heter du bør se resultater som ligner på disse når du gjør en omvendt oppslag på en IP-adresse i motsatt sone.

sørg for å teste noen av de andre omvendt oppføringer i nettverket, og også prøve å følge så vel som andre omvendt oppslag du ønsker å eksperimentere med., -X-alternativet betyr omvendt oppslag.

dig -x 192.168.25.23
dig -x 192.168.25.1

Merk at ikke alle verter som har oppføringer i fremover sonen må ha oppføringer i motsatt sone, men det gjør for mer konsistente resultater hvis de gjør det.

På dette punktet, du har en fungerende navn-server ved å bruke BIND. Imidlertid, eksterne verter ennå ikke kan bruke dette navnet server fordi brannmuren skal ikke være konfigurert til å tillate DNS-forespørsler.

Konfigurere IPTables for DNS

Du kan gjøre dette trinnet hvis du vil andre maskiner på det lokale nettverket for å bruke verten som navnet deres server.,

brannmuren på test vert sannsynligvis blokkerer tilgang til din vert for navn tjenester. IPTables må være konfigurert til å tillate UDP (User Datagram Protocol) innkommende pakker på ditt navn server for andre maskiner til å bruke det for navneløsing. Bruk følgende kommandoer for å legge til de nødvendige oppføringene og lagre dem.

Legge til en regel til IPTables eller firewalld brannmur som gjør at innkommende pakker på port 53 (domene) for UDP og lagre det nye regelsettet., Sørg for å sette inn den nye regelen etter -EN INPUT -m tilstand-tilstand RELATERT,ETABLERT -j ACCEPT linje, så du er nødt til å telle antall inn linjer i filter-tabell for å gjøre det. Nummer 7 i det følgende kommando betyr at denne regelen vil bli satt inn i posisjon nummer 7 i eksisterende INNGANG regler.

iptables -t filter -I INPUT 7 -p udp -m conntrack --ctstate NEW -m udp --dport 53 -j ACCEPT

Du kan lagre den nye brannmurregler hvis du liker, og du vil hvis dette var å være en fast installasjon og ikke en lab-prosjektet. Deretter teste dette fra en av dine andre verter ved å bruke kommandoen i Listing 9 nedenfor., Den @epc argument forteller grave-kommandoen til å bruke den angitte navnet server med vertsnavn epc. Du bør erstatte enten IP-adressen til DNS-serveren du har nettopp opprettet, eller løses vertsnavnet på nettverket som peker til ditt nye navn server. Selvfølgelig, du kan alltid legge til at vertsnavn med IP-adressen til filen /etc/hosts-filen på verten som du bruker for ekstern test.

Liste 9: Testing navnet resolver du har opprettet fra en annen vert på samme nettverk.,

Opprydding

For diskopprydding, bør du utføre følgende oppgaver ved hjelp av verktøyene som er aktuelle for din distribusjon. Kanskje du bare ønsker å beholde dette navnet server for nettverket hvis du ikke allerede har en.

  1. Gjenopprett den opprinnelige filen /etc/hosts.
  2. Stopp heter på resolver vert brukt for denne lab-prosjektet.
  3. Deaktiver som heter service.
  4. Slett sone-filer.
  5. Gjenopprett de opprinnelige navn.conf-fil.
  6. Gjenopprett de opprinnelige resolv.conf-fil.,

Siste tanker

funksjon av navnet tjenester virket veldig ukjente for meg før jeg faktisk skapt et navn server for nettverket ved å bruke BIND. Det er ganske grei og kan forbedre DNS-oppslag ytelse. Å ha din egen name server kan også forhindre at mange av relativt liten, men irriterende navn avbrudd forårsaket av dårlig vedlikeholdt ISP navnetjenere.

Merk at selv om min lille EeePC kjører med 100% CPU-bruk for Seti@Home, den reagerer ekstremt raskt å resolver forespørsler., Du bør være i stand til å prøve dette prosjektet på hvilket som helst Linux-verten som du har tilgjengelig med minimale konsekvenser. Jeg håper at mange av dere vil prøve å sette opp ditt eget navn, server og eksperimentere med det. Detaljene i ditt navn, server installasjon, vil være avhengig av detaljer på verten, og nettverk.