- introduktion
- forudsætninger
- Eksempelværter
- vores mål
- installer BIND på DNS-servere
- Konfigurer primær DNS-Server
- Konfigurer Bind
- Konfigurer lokal fil
- Opret fremad fil
- Opret omvendt Områdefil(er)
- kontroller BIND konfiguration syntaks
- Start BIND
- Konfigurer sekundær DNS-Server
- Konfigurer DNS-klienter
- CentOS Clients
- Ubuntu-klienter
- Testklienter
- fremad opslag
- Reverse Lookup
- vedligeholdelse af DNS-poster
- tilføjelse af vært til DNS
- primær navneserver
- sekundær navneserver
- Konfigurer ny vært til at bruge din DNS
- fjernelse af vært fra DNS
- konklusion
introduktion
en vigtig del af styringen af serverkonfiguration og infrastruktur inkluderer vedligeholdelse af en nem måde at slå netværksgrænseflader og IP-adresser op efter navn ved at oprette et ordentligt domænenavnssystem (DNS). Brug af fuldt kvalificerede domænenavne i stedet for IP-adresser til at specificere netværksadresser Letter konfigurationen af tjenester og applikationer og øger vedligeholdelsen af konfigurationsfiler. Opsætning af din egen DNS til dit private netværk er en fantastisk måde at forbedre styringen af dine servere på.
i denne vejledning gennemgår vi, hvordan du opretter en intern DNS-server ved hjælp af BIND name server-programmet (BIND9) på CentOS 7, der kan bruges af dine virtuelle Private servere (VPS) til at løse private værtsnavne og private IP-adresser. Dette giver en central måde at administrere dine interne værtsnavne og private IP-adresser på, hvilket er uundværligt, når dit miljø udvides til mere end et par værter.
Ubuntu-versionen af denne tutorial kan findes her.
forudsætninger
for at fuldføre denne vejledning skal du bruge følgende:
- nogle servere, der kører i samme datacenter og har privat netværk aktiveret
- en ny VPS til at fungere som den primære DNS-server, ns1
- Valgfrit: en ny VPS til at fungere som en sekundær DNS-server, ns2
- Root adgang til alle ovenstående (trin 1-4 her)
Hvis du ikke er bekendt med DNS-koncepter, anbefales det, at du læser mindst de første tre dele af vores introduktion til administration af DNS.
Eksempelværter
for eksempel antager vi følgende:
- Vi har to eksisterende VP ‘ er kaldet “host1” og “host2”
- begge VP ‘er findes i nyc3 datacenter
- begge VP’ er har privat netværk aktiveret (og er på undernet 10.128.0.0/16)
- begge VP ‘ er er på en eller anden måde relateret til vores internetapplikation det kører videre “example.com”
Med disse antagelser beslutter vi, at det giver mening at bruge et navneskema, der bruger “nyc3.example.com” at henvise til vores private undernet eller område. Derfor vil host1 ‘ s Private fuldt kvalificerede domænenavn være “host1.nyc3.example.com”. se følgende tabel de relevante detaljer:
Host | rolle | privat IP-adresse | |
---|---|---|---|
host1 | generisk vært 1 | host1.nyc3.example.com | 10.128.100.101 |
host2 | generisk vært 2 | host2.nyc3.example.com | 10.128.200.102 |
Bemærk: din eksisterende opsætning vil være anderledes, men eksemplets navne og IP-adresser vil blive brugt til at demonstrere, hvordan du konfigurerer en DNS-server til at levere en fungerende intern DNS. Du skal være i stand til nemt at tilpasse denne opsætning til dit eget miljø ved at erstatte værtsnavne og private IP-adresser med dine egne. Det er ikke nødvendigt at bruge regionens navn på datacentret i dit navneskema, men vi bruger det her til at angive, at disse værter tilhører et bestemt datacenters private netværk. Hvis du bruger flere datacentre, kan du oprette en intern DNS inden for hvert respektive datacenter.
vores mål
Ved afslutningen af denne tutorial vil vi have en primær DNS-server, ns1 og eventuelt en sekundær DNS-server, ns2, som vil fungere som en sikkerhedskopi.
Her er en tabel med eksempelnavne og IP-adresser:
Host | rolle | privat IP-adresse | privat IP-adresse |
---|---|---|---|
ns1 | primær DNS-server | ns1.nyc3.example.com | 10.128.10.11 |
ns2 | sekundær DNS-Server | ns2.nyc3.example.com | 10.128.20.12 |
lad os komme i gang ved at installere vores primære DNS-server, ns1.
installer BIND på DNS-servere
Bemærk: tekst, der er fremhævet med rødt, er vigtig! Det vil ofte blive brugt til at betegne noget, der skal udskiftes med dine egne indstillinger, eller at det skal ændres eller føjes til en konfigurationsfil. For eksempel, hvis du ser noget som host1.nyc3.eksempel.med, udskift det med din egen server. Ligeledes, hvis du ser host1_private_IP, skal du erstatte den med den private IP-adresse på din egen server.
på både DNS-servere, ns1 og ns2, skal du installere BIND med yum:
- sudo yum install bind bind-utils
Bekræft prompten ved at indtastey
.
nu hvor BIND er installeret, lad os konfigurere den primære DNS-server.
Konfigurer primær DNS-Server
binds konfiguration består af flere filer, som er inkluderet fra hovedkonfigurationsfilen,named.conf
. Disse filnavne begynder med” navngivet”, fordi det er navnet på den proces, der binder kørsler. Vi starter med at konfigurere indstillingsfilen.
Konfigurer Bind
BIND ‘ s proces er kendt som navngivet. Som sådan henviser mange af filerne til” navngivet “i stedet for”BIND”.
på ns1 skal du åbnenamed.conf
fil til redigering:
- sudo vi /etc/named.conf
over den eksisterendeoptions
blok, Opret en ny ACL-blok kaldet “trusted”. Det er her, vi definerer liste over klienter, som vi tillader rekursive DNS-forespørgsler fra (dvs. dine servere, der er i samme datacenter som ns1). Ved hjælp af vores eksempel private IP-adresser tilføjer vi ns1, ns2, host1 og host2 til vores liste over betroede klienter:
acl "trusted" { 10.128.10.11; # ns1 - can be set to localhost 10.128.20.12; # ns2 10.128.100.101; # host1 10.128.200.102; # host2};
nu hvor vi har vores liste over betroede DNS-klienter, vil vi gerne redigere options
block. Tilføj den private IP-adresse til ns1 til listen-on port 53
direktivet, og kommenterlisten-on-v6
linje:
options { listen-on port 53 { 127.0.0.1; 10.128.10.11; };# listen-on-v6 port 53 { ::1; };...
under disse poster skal du ændre allow-transfer
direktivet til fra “ingen” til ns2s private IP-adresse. Skift også allow-query
direktiv fra” localhost “til”trusted”:
i slutningen af filen skal du tilføje følgende linje:
include "/etc/named/named.conf.local";
nu gemme og afslutte named.conf
. Ovenstående konfiguration angiver, at kun dine egne servere (de “betroede”) kan forespørge på din DNS-server.
dernæst konfigurerer vi den lokale fil for at angive vores DNS-områder.
Konfigurer lokal fil
på ns1 skal du åbnenamed.conf.local
fil til redigering:
- sudo vi /etc/named/named.conf.local
filen skal være tom. Her vil vi angive vores frem og tilbage områder.
tilføj det forreste område med følgende linjer (erstat områdenavnet med dit eget):
zone "nyc3.example.com" { type master; file "/etc/named/zones/db.nyc3.example.com"; # zone file path};
forudsat at vores private undernet er 10.128.0.0/16, tilføj det omvendte område med følgende linjer (bemærk, at vores omvendte områdenavn starter med “128.10”, som er oktetomvendingen af “10.128”):
zone "128.10.in-addr.arpa" { type master; file "/etc/named/zones/db.10.128"; # 10.128.0.0/16 subnet };
Hvis dine servere spænder over flere private undernet, men er i samme datacenter, skal du sørge for at angive en ekstra område-og områdefil for hvert særskilt undernet. Når du er færdig med at tilføje alle de ønskede områder, skal du gemme og afslutte filennamed.conf.local
.
nu hvor vores områder er angivet i BIND, er vi nødt til at oprette de tilsvarende fremad og omvendt område filer.
Opret fremad fil
fremad fil er, hvor vi definerer DNS-poster for fremad DNS opslag. Det vil sige, når DNS modtager en navneforespørgsel, “host1.nyc3.example.com” for eksempel vil det se i den fremadrettede fil for at løse host1s tilsvarende private IP-adresse.
lad os oprette den mappe, hvor vores områdefiler vil opholde sig. Ifølge vores navngivne.conf.lokal konfiguration, denne placering skal være /etc/named/zones
:
- sudo chmod 755 /etc/named
- sudo mkdir /etc/named/zones
lad os nu redigere vores fremadrettede fil:
- sudo vi /etc/named/zones/db.nyc3.example.com
først vil du tilføje SOA-posten. Udskift det fremhævede NS1-FKDN med dit eget FKDN, og udskift derefter det andet “nyc3.example.com” med dit eget domæne. Hver gang du redigerer en områdefil, skal du øge serieværdien, før du genstarter named
–processen-vi øger den til “3”. Det skal se sådan ud:
tilføj derefter dine navneserverposter med følgende linjer (udskift navnene med dine egne). Bemærk, at den anden kolonne angiver, at disse er “NS” — poster:
; name servers - NS records IN NS ns1.nyc3.example.com. IN NS ns2.nyc3.example.com.
tilføj derefter A-posterne for dine værter, der hører hjemme i dette område. Dette inkluderer enhver server, hvis navn vi vil slutte med “.nyc3.example.com ” (erstat navne og private IP-adresser). Ved hjælp af vores eksempelnavne og private IP-adresser tilføjer vi en post for ns1, ns2, host1 og host2 som sådan:
Gem og afslutdb.nyc3.example.com
fil.
vores sidste eksempel fremad fil ser ud som følgende:
lad os nu gå videre til omvendt område fil(er).
Opret omvendt Områdefil(er)
omvendt områdefil er der, hvor vi definerer DNS PTR-poster for omvendte DNS-opslag. Det vil sige, når DNS modtager en forespørgsel efter IP-adresse, “10.128.100.101”, vil den se i den omvendte fil(er) for at løse det tilsvarende FKDN, “host1.nyc3.example.com ” i dette tilfælde.
på ns1, for hvert omvendt område, der er angivet inamed.conf.local
– filen, skal du oprette en omvendt områdefil.
rediger den omvendte områdefil, der svarer til det omvendte område(er) defineret i named.conf.local
:
- sudo vi /etc/named/zones/db.10.128
på samme måde som den fremadrettede områdefil skal du erstatte den fremhævede NS1-FKDN med din egen FKDN og derefter erstatte den anden “nyc3.example.com” med dit eget domæne. Hver gang du redigerer en områdefil, skal du øge serieværdien, før du genstarter named
–processen-vi øger den til “3”. Det skal se sådan ud:
tilføj derefter dine navneserverposter med følgende linjer (udskift navnene med dine egne). Bemærk, at den anden kolonne angiver, at disse er “NS” – poster:
; name servers - NS records IN NS ns1.nyc3.example.com. IN NS ns2.nyc3.example.com.
tilføj derefter PTR
poster for alle dine servere, hvis IP-adresser er på undernet af den områdefil, du redigerer. I vores eksempel inkluderer dette alle vores værter, fordi de alle er på undernet 10.128.0.0/16. Bemærk, at den første kolonne består af de sidste to oktetter af dine servers private IP-adresser i omvendt rækkefølge. Sørg for at erstatte navne og private IP-adresser for at matche dine servere:
Gem og afslut den omvendte områdefil (gentag dette afsnit, hvis du har brug for at tilføje flere omvendte områdefiler).
vores sidste eksempel omvendt område fil ligner følgende:
kontroller BIND konfiguration syntaks
Kør følgende kommando for at kontrollere syntaksen fornamed.conf*
filer:
- sudo named-checkconf
Hvis dine navngivne konfigurationsfiler ikke har syntaksfejl, vender du tilbage til din shell-prompt og ser ingen fejlmeddelelser. Hvis der er problemer med dine konfigurationsfiler, skal du gennemgå fejlmeddelelsen og afsnittet Konfigurer primær DNS-Server og derefter prøve named-checkconf
igen.
kommandoennamed-checkzone
kan bruges til at kontrollere rigtigheden af dine områdefiler. Dets første argument angiver et områdenavn, og det andet argument angiver den tilsvarende områdefil, som begge er defineret i named.conf.local
.
for eksempel for at kontrollere “nyc3.example.com” konfiguration af videresendingsområde, kør følgende kommando( skift navnene, så de passer til dit videresendingsområde og din fil):
- sudo named-checkzone nyc3.example.com /etc/named/zones/db.nyc3.example.com
og for at kontrollere “128.10.in-addr.arpa” konfiguration af omvendt område, kør følgende kommando (skift numrene, så de matcher dit omvendte område og din fil):
- sudo named-checkzone 128.10.in-addr.arpa /etc/named/zones/db.10.128
når alle dine konfigurations-og områdefiler ikke har nogen fejl i dem, skal du være klar til at genstarte BIND-tjenesten.
Start BIND
start BIND:
- sudo systemctl start named
nu vil du aktivere det, så det starter ved opstart:
- sudo systemctl enable named
din primære DNS-server er nu konfigureret og klar til at svare på DNS-forespørgsler. Lad os gå videre til at oprette den sekundære DNS-server.
Konfigurer sekundær DNS-Server
i de fleste miljøer er det en god ide at oprette en sekundær DNS-server, der svarer på anmodninger, hvis den primære bliver utilgængelig. Heldigvis er den sekundære DNS-server meget lettere at konfigurere.
på ns2 skal du redigerenamed.conf
fil:
- sudo vi /etc/named.conf
Bemærk: Hvis du foretrækker at springe disse instruktioner over, kan du kopiere ns1 ‘ snamed.conf
fil og ændre den for at lytte til ns2 ‘ s private IP-adresse og ikke tillade overførsler.
over den eksisterendeoptions
blok, Opret en ny ACL-blok kaldet “trusted”. Det er her, vi definerer liste over klienter, som vi tillader rekursive DNS-forespørgsler fra (dvs.dine servere, der er i samme datacenter som ns1). Ved hjælp af vores eksempel private IP-adresser tilføjer vi ns1, ns2, host1 og host2 til vores liste over betroede klienter:
acl "trusted" { 10.128.10.11; # ns1 - can be set to localhost 10.128.20.12; # ns2 10.128.100.101; # host1 10.128.200.102; # host2};
nu hvor vi har vores liste over betroede DNS-klienter, vil vi gerne redigere options
block. Tilføj den private IP-adresse til ns1 til listen-on port 53
direktivet, og kommenterlisten-on-v6
linje:
options { listen-on port 53 { 127.0.0.1; 10.128.20.12; };# listen-on-v6 port 53 { ::1; };...
Skift allow-query
direktiv fra “localhost” til “trusted”:
...options {... allow-query { trusted; }; # allows queries from "trusted" clients...
i slutningen af filen skal du tilføje følgende linje:
include "/etc/named/named.conf.local";
nu gemme og afslutte named.conf
. Ovenstående konfiguration angiver, at kun dine egne servere (de “betroede”) kan forespørge på din DNS-server.
dernæst konfigurerer vi den lokale fil for at angive vores DNS-områder.
Gem og afslut named.conf
.
Rediger nunamed.conf.local
fil:
- sudo chmod 755 /etc/named
- sudo vi /etc/named/named.conf.local
Definer slavesoner, der svarer til masterområderne på den primære DNS-server. Bemærk, at typen er “slave”, filen indeholder ikke en sti, og der er et masters
direktiv, som skal indstilles til den primære DNS-servers private IP. Hvis du har defineret flere omvendte områder i den primære DNS-server, skal du sørge for at tilføje dem alle her:
nu gemme og afsluttenamed.conf.local
.
Kør følgende kommando for at kontrollere gyldigheden af dine konfigurationsfiler:
- sudo named-checkconf
når det tjekker ud, skal du starte BIND:
- sudo systemctl start named
aktiver BIND for at starte ved opstart:
sudo systemctl enable named
nu har du primære og sekundære DNS-servere til private netværk navn og IP-adresse opløsning. Nu skal du konfigurere dine servere til at bruge dine private DNS-servere.
Konfigurer DNS-klienter
før alle dine servere i “trusted” ACL kan forespørge på dine DNS-servere, skal du konfigurere hver af dem til at bruge ns1 og ns2 som navneservere. Denne proces varierer afhængigt af OS, men for de fleste distributioner indebærer det at tilføje dine navneservere til /etc/resolv.conf
filen.
CentOS Clients
på CentOS, RedHat og Fedora VPS skal du blot redigere resolv.conf
fil:
- sudo vi /etc/resolv.conf
tilføj derefter følgende linjer øverst i filen (erstat dit private domæne og ns1 og ns2 private IP-adresser):
search nyc3.example.com # your private domainnameserver 10.128.10.11 # ns1 private IP addressnameserver 10.128.20.12 # ns2 private IP address
nu gemme og afslutte. Din klient er nu konfigureret til at bruge dine DNS-servere.
Ubuntu-klienter
på Ubuntu og Debian-VPS kan du redigerehead
– filen, som er forudindstillet til resolv.conf
on boot:
- sudo vi /etc/resolvconf/resolv.conf.d/head
tilføj følgende linjer til filen (erstat dit private domæne og ns1 og NS2 private IP-adresser):
search nyc3.example.com # your private domainnameserver 10.128.10.11 # ns1 private IP addressnameserver 10.128.20.12 # ns2 private IP address
Kør nu resolvconf
for at generere en ny resolv.conf
fil:
- sudo resolvconf -u
din klient er nu konfigureret til at bruge din DNS servere.
Testklienter
brugnslookup
—inkluderet i pakken “bind-utils”—for at teste, om dine klienter kan forespørge på dine navneservere. Du bør være i stand til at gøre dette på alle de klienter, du har konfigureret og er i “trusted” ACL.
fremad opslag
for eksempel kan vi udføre et fremad opslag for at hente IP-adressen til host1.nyc3.example.com ved at køre følgende kommando:
- nslookup host1
forespørgsel “host1” udvides til “host1.nyc3.example.com på grund af search
Er indstillingen indstillet til dit private underdomæne, og DNS-forespørgsler vil forsøge at se på det underdomæne, før de leder efter værten andetsteds. Udgangen af kommandoen ovenfor ville se ud som følgende:
Output:Server: 10.128.10.11Address: 10.128.10.11#53Name: host1.nyc3.example.comAddress: 10.128.100.101
Reverse Lookup
for at teste reverse lookup, spørg DNS-serveren med host1s private IP-adresse:
- nslookup 10.128.100.101
Du skal se output, der ligner følgende:
Output:Server: 10.128.10.11Address: 10.128.10.11#5311.10.128.10.in-addr.arpa name = host1.nyc3.example.com.
Hvis alle navne og IP-adresser løser de korrekte værdier, betyder det, at dine områdefiler er konfigureret korrekt. Hvis du modtager uventede værdier, skal du sørge for at gennemgå områdefilerne på din primære DNS-server (f. eks. db.nyc3.example.com
og db.10.128
).
Tillykke! Dine interne DNS-servere er nu konfigureret korrekt! Nu vil vi dække vedligeholdelse af dine områdeoptegnelser.
vedligeholdelse af DNS-poster
nu hvor du har en fungerende intern DNS, skal du vedligeholde dine DNS-poster, så de nøjagtigt afspejler dit servermiljø.
tilføjelse af vært til DNS
Når du føjer en vært til dit miljø (i samme datacenter), vil du føje den til DNS. Her er en liste over trin, du skal tage:
- Videresend områdefil: Tilføj en “A” – post for den nye vært, øg værdien af “Serial”
- omvendt områdefil: Tilføj en “PTR” – post for den nye vært, øg værdien af “Serial”
- Tilføj din nye værts private IP-adresse til “trusted” ACL (
named.conf.options
)
genindlæs derefter bind:
- sudo systemctl reload named
- Tilføj din nye værts Private IP-adresse til “trusted” ACL (
named.conf.options
)
derefter genindlæs bind:
- sudo systemctl reload named
Konfigurer ny vært til at bruge din DNS
- Konfigurer resolv.conf for at bruge dine DNS-servere
- Test ved hjælp af
nslookup
fjernelse af vært fra DNS
Hvis du fjerner en vært fra dit miljø eller bare vil tage den ud af DNS, skal du bare fjerne alle de ting, der blev tilføjet, da du tilføjede serveren til DNS (dvs.bagsiden af ovenstående trin).
konklusion
nu Kan du henvise til dine servers private netværksgrænseflader efter navn snarere end efter IP-adresse. Dette gør konfiguration af tjenester og applikationer lettere, fordi du ikke længere behøver at huske de private IP-adresser, og filerne bliver lettere at læse og forstå. Nu Kan du også ændre dine konfigurationer for at pege på en ny server et enkelt sted, din primære DNS-server, i stedet for at skulle redigere en række distribuerede konfigurationsfiler, hvilket letter vedligeholdelse.
når du har konfigureret din interne DNS, og dine konfigurationsfiler bruger private Fkdn ‘ er til at specificere netværksforbindelser, er det vigtigt, at dine DNS-servere vedligeholdes korrekt. Hvis de begge bliver utilgængelige, ophører dine tjenester og applikationer, der er afhængige af dem, med at fungere korrekt. Derfor anbefales det at konfigurere din DNS med mindst en sekundær server og opretholde fungerende sikkerhedskopier af dem alle.