- Introduksjon
- Forutsetninger
- Eksempel Verter
- Vårt Mål
- Installer BIND på DNS-Servere
- Konfigurer Primær DNS-Server
- Konfigurer Bind
- Konfigurer Lokal Fil
- Opprett Frem Sonefil
- Opprett Omvendt Sonefil (er)
- Sjekk BIND Configuration Syntaks
- Start BIND
- Konfigurer Sekundær DNS-Server
- Konfigurer DNS-Klienter
- CentOS Klienter
- Ubuntu Klienter
- Testklienter
- Forward Lookup
- Omvendt Oppslag
- Opprettholde DNS-Poster
- Legge Til Vert TIL DNS
- Primær Navneserver
- sekundær Navneserver
- Konfigurer Ny Vert for Å Bruke DNS
- Fjerne Vert FRA DNS
- Konklusjon
Introduksjon
en viktig del av å administrere serverkonfigurasjon og infrastruktur inkluderer å opprettholde en enkel måte å slå opp nettverksgrensesnitt og IP-adresser etter navn, ved å sette opp et riktig Domenenavnsystem (DNS). Bruk av fullt kvalifiserte domenenavn (fqdn), i stedet FOR IP-adresser, for å angi nettverksadresser, letter konfigurasjonen av tjenester og applikasjoner, og øker vedlikeholdet av konfigurasjonsfiler. Å sette OPP DIN EGEN DNS for ditt private nettverk er en fin måte å forbedre styringen av serverne dine.I denne opplæringen vil vi gå over hvordan du setter opp en intern DNS-server, ved HJELP AV BIND name server-programvaren (BIND9) På CentOS 7, som kan brukes av Dine Virtuelle Private Servere (VPS) for å løse private vertsnavn og private IP-adresser. Dette gir en sentral måte å administrere dine interne vertsnavn og private IP-adresser, noe som er uunnværlig når miljøet utvides til mer enn noen få verter.
Ubuntu-versjonen av denne opplæringen finner du her.
Forutsetninger
for å fullføre denne opplæringen trenger du følgende:
- Noen servere som kjører i samme datasenter og har privat nettverk aktivert
- en ny VPS for Å fungere Som Primær DNS-server, ns1
- Valgfritt: en ny VPS for Å fungere Som En Sekundær DNS-server, ns2
- Root-tilgang til alle de ovennevnte (trinn 1-4 her)
hvis du ikke er kjent med dns-Konsepter, anbefales Det At du leser minst de tre første delene av vår introduksjon til å administrere dns.
Eksempel Verter
for eksempel vil vi anta følgende:
- Vi har to eksisterende VPS kalt «host1″ og»host2»
- begge VPS finnes i nyc3 datacenter
- BEGGE VPS har privat nettverk aktivert (og er på 10.128.0.0/16 subnett)
- Begge VPS er noe relatert til vår webapplikasjon som kjører på «example.com»
med disse antagelsene bestemmer vi at det er fornuftig å bruke et navnesystem som bruker «nyc3.example.com» for å referere til vårt private delnett eller sone. Derfor vil host1s private Fullt Kvalifiserte Domenenavn (FQDN) være «host1.nyc3.example.com». Se følgende tabell de relevante detaljene:
Rolle | Privat FQDN | Privat IP-Adresse | |
---|---|---|---|
host1 | generisk vert 1 | host1.nyc3.example.com | 10.128.100.101 |
host2 | Generisk Vert 2 | host2.nyc3.example.com | 10.128.200.102 |
Merk: ditt eksisterende oppsett vil være annerledes, men eksempelnavnene og IP-adressene vil bli brukt til å demonstrere hvordan du konfigurerer EN DNS-server for å gi en fungerende intern DNS. Du bør enkelt kunne tilpasse dette oppsettet til ditt eget miljø ved å erstatte vertsnavn og private IP-adresser med ditt eget. Det er ikke nødvendig å bruke regionnavnet til datasenteret i navneordningen din, men vi bruker det her for å betegne at disse vertene tilhører et bestemt datasenters private nettverk. Hvis du bruker flere datasentre, kan du sette opp en intern DNS i hvert respektive datasenter.
Vårt Mål
ved slutten av denne opplæringen vil vi ha en primær DNS-server, ns1, og eventuelt en sekundær DNS-server, ns2, som vil fungere som en sikkerhetskopi.
her er en tabell med eksempel navn OG IP-adresser:
Vert | Rolle | Privat FQDN | 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 |
la oss komme i gang ved å installere Vår Primære DNS-server, ns1.
Installer BIND på DNS-Servere
Merk: Tekst som er uthevet i rødt er viktig! Det vil ofte bli brukt til å betegne noe som må byttes ut med dine egne innstillinger, eller at det skal endres eller legges til en konfigurasjonsfil. For eksempel, hvis du ser noe som host1.nyc3.eksempel.com, erstatte DEN MED FQDN av din egen server. På samme måte, hvis du ser host1_private_IP, erstatt den med den private IP-adressen til din egen server.
på BEGGE DNS-servere, ns1 og ns2, installer BIND med yum:
- sudo yum install bind bind-utils
Bekreft meldingen ved å skrive inny
.
NÅ SOM BIND er installert, la oss konfigurere den primære DNS-serveren.
Konfigurer Primær DNS-Server
BIND konfigurasjon består av flere filer, som er inkludert fra hovedkonfigurasjonsfilen, named.conf
. Disse filnavnene begynner med «navngitt» fordi det er navnet på prosessen SOM BIND kjører. Vi starter med å konfigurere alternativfilen.
Konfigurer Bind
BIND prosess er kjent som navngitt. Som sådan refererer mange av filene til» navngitt «i stedet for «BIND».
på ns1 åpner du named.conf
filen for redigering:
- sudo vi /etc/named.conf
Over den eksisterende options
blokken, opprett en NY ACL-blokk kalt «klarert». Det er her vi vil definere liste over klienter som vi vil tillate rekursive DNS-spørringer fra (dvs. dine servere som er i samme datasenter som ns1). Ved hjelp av våre eksempel private IP-adresser, vil vi legge til ns1, ns2, host1 og host2 til vår liste over klarerte kunder:
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};
nå som vi har vår liste over klarerte DNS-klienter, vil vi redigereoptions
blokken. Legg til den private IP-adressen til ns1 ilisten-on port 53
– direktivet, og kommenter listen-on-v6
– linjen:
options { listen-on port 53 { 127.0.0.1; 10.128.10.11; };# listen-on-v6 port 53 { ::1; };...
under disse oppføringene endrer duallow-transfer
direktivet til fra «ingen» til ns2s private IP-adresse. Endre også allow-query
direktivet fra «localhost» til «trusted»:
på slutten av filen legger du til følgende linje:
include "/etc/named/named.conf.local";
lagre og avsluttnamed.conf
. Ovennevnte konfigurasjon angir at bare dine egne servere (de» klarerte») vil kunne spørre DNS-serveren din.
Deretter konfigurerer vi den lokale filen, for å spesifisere VÅRE DNS-soner.
Konfigurer Lokal Fil
på ns1 åpner dunamed.conf.local
fil for redigering:
- sudo vi /etc/named/named.conf.local
filen skal være tom. Her vil vi spesifisere våre forover og bakover soner.
Legg frem sone med følgende linjer (erstatt sonenavnet med ditt eget):
zone "nyc3.example.com" { type master; file "/etc/named/zones/db.nyc3.example.com"; # zone file path};
Forutsatt at vårt private delnett er 10.128.0.0/16, legg til omvendt sone med følgende linjer (merk at vårt omvendte sonenavn starter med «128.10 «som er oktett reversering av»10.128»):
zone "128.10.in-addr.arpa" { type master; file "/etc/named/zones/db.10.128"; # 10.128.0.0/16 subnet };
hvis serverne dine spenner over flere private delnett, men er i samme datasenter, må du angi en ekstra sone – og sonefil for hvert distinkte delnett. Når du er ferdig med å legge til alle dine ønskede soner, lagre og avslutt named.conf.local
fil.
Nå som våre soner er spesifisert I BIND, må vi opprette de tilsvarende frem og tilbake sonefilene.
Opprett Frem Sonefil
frem sonefilen er der vi definerer DNS-poster for FREM DNS-oppslag. Det vil si, NÅR DNS mottar et navn spørring, «host1.nyc3.example.com» for eksempel vil det se i fremoversonefilen for å løse host1s tilsvarende private IP-adresse.
La oss opprette katalogen der sonefilene våre skal ligge. Ifølge vår navngitte.conf.lokal konfigurasjon, den plasseringen skal være /etc/named/zones
:
- sudo chmod 755 /etc/named
- sudo mkdir /etc/named/zones
la Oss nå redigere vår fremadrettede sonefil:
- sudo vi /etc/named/zones/db.nyc3.example.com
Først vil DU legge TIL SOA-posten. Erstatt den uthevede ns1 FQDN med din EGEN FQDN, og erstatt den andre «nyc3.example.com» med ditt eget domene. Hver gang du redigerer en sonefil, bør du øke serieverdien før du starternamed
prosessen – vi vil øke den til «3». Det skal se slik ut:
deretter legger du til navneserverposter med følgende linjer (erstatt navnene med dine egne). Merk at den andre kolonnen angir at disse er» NS » – poster:
; name servers - NS records IN NS ns1.nyc3.example.com. IN NS ns2.nyc3.example.com.
Legg Deretter Til a-postene for vertene dine som tilhører denne sonen. Dette inkluderer enhver server hvis navn vi ønsker å avslutte med «.nyc3.example.com » (erstatte navn OG private IP-adresser). Ved hjelp av våre eksempel navn OG private IP-adresser, vi vil legge til en poster for ns1, ns2, host1, og host2 som så:
Lagre og avslutt db.nyc3.example.com
– filen.
Vårt siste eksempel fremover sonefil ser slik ut:
la Oss nå flytte til omvendt sonefil(er).
Opprett Omvendt Sonefil (er)
Omvendt sonefil er der vi definerer DNS PTR-poster for omvendte DNS-oppslag. Det vil si når DNS mottar en spørring ETTER IP-adresse, » 10.128.100.101 «for eksempel, vil den se i omvendt sonefil(er) for å løse den tilsvarende FQDN,» host1.nyc3.example.com » i dette tilfellet.
på ns1, for hver omvendt sone spesifisert inamed.conf.local
fil, opprett en omvendt sonefil.
Rediger omvendt sonefil som tilsvarer omvendt sone (er) definert i named.conf.local
:
- sudo vi /etc/named/zones/db.10.128
på samme måte som den fremre sonefilen, erstatt den uthevede ns1 FQDN med din EGEN FQDN, og erstatt den andre «nyc3.example.com» med ditt eget domene. Hver gang du redigerer en sonefil, bør du øke serieverdien før du starternamed
prosessen – vi vil øke den til «3». Det skal se slik ut:
deretter legger du til navneserverposter med følgende linjer (erstatt navnene med dine egne). Merk at den andre kolonnen angir at disse er» NS » – poster:
; name servers - NS records IN NS ns1.nyc3.example.com. IN NS ns2.nyc3.example.com.
legg deretter til PTR
poster for alle serverne DINE HVIS IP-adresser er på delnettet til sonefilen du redigerer. I vårt eksempel inkluderer dette alle våre verter fordi de er alle på 10.128.0.0/16 delnett. Merk at den første kolonnen består av de to siste oktettene av serverens private IP-adresser i omvendt rekkefølge. Pass på å erstatte navn OG private IP-adresser for å matche serverne dine:
Lagre og avslutt omvendt sonefil (gjenta denne delen hvis du må legge til flere omvendte sonefiler).
Vårt siste eksempel omvendt sonefil ser slik ut:
Sjekk BIND Configuration Syntaks
Kjør følgende kommando for å sjekke syntaksen tilnamed.conf*
filer:
- sudo named-checkconf
hvis de navngitte konfigurasjonsfilene dine ikke har syntaksfeil, kommer du tilbake til shell-meldingen din og ser ingen feilmeldinger. Hvis det er problemer med konfigurasjonsfilene, se gjennom feilmeldingen Og Konfigurer Primær DNS-Server-delen, og prøv named-checkconf
igjen.
kommandoennamed-checkzone
kan brukes til å kontrollere riktigheten av sonefilene dine. Det første argumentet angir et sonenavn, og det andre argumentet angir den tilsvarende sonefilen, som begge er definert i named.conf.local
.
for eksempel, for å sjekke «nyc3.example.com» forward zone configuration, kjør følgende kommando (endre navnene for å matche din fremover sone og fil):
- sudo named-checkzone nyc3.example.com /etc/named/zones/db.nyc3.example.com
og for å sjekke «128.10.in-addr.arpa» omvendt sonekonfigurasjon, kjør følgende kommando (endre tallene for å matche omvendt sone og fil):
- sudo named-checkzone 128.10.in-addr.arpa /etc/named/zones/db.10.128
når alle konfigurasjons-og sonefiler ikke har noen feil i dem, bør du være klar til å starte BIND-tjenesten PÅ NYTT.
Start BIND
Start BIND:
- sudo systemctl start named
nå vil du aktivere det, så det vil starte på boot:
- sudo systemctl enable named
din primære DNS-server er nå oppsett og klar til å svare PÅ DNS-spørringer. La oss fortsette å opprette den sekundære DNS-serveren.
Konfigurer Sekundær DNS-Server
i de fleste miljøer er det lurt å sette opp en sekundær DNS-server som vil svare på forespørsler hvis primær blir utilgjengelig. Heldigvis er den sekundære DNS-serveren mye enklere å konfigurere.
på ns2, rediger named.conf
fil:
- sudo vi /etc/named.conf
Merk: hvis du foretrekker å hoppe over disse instruksjonene, kan du kopiere ns1s named.conf
fil og endre den for å lytte på ns2s private IP-adresse, og ikke tillate overføringer.
Over den eksisterendeoptions
blokk, opprett en NY ACL-blokk kalt «klarert». Det er her vi vil definere liste over klienter som vi vil tillate rekursive DNS-spørringer fra (dvs.dine servere som er i samme datasenter som ns1). Ved hjelp av våre eksempel private IP-adresser, vil vi legge til ns1, ns2, host1 og host2 til vår liste over klarerte kunder:
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};
nå som vi har vår liste over klarerte DNS-klienter, vil vi redigereoptions
blokken. Legg til den private IP-adressen til ns1 ilisten-on port 53
– direktivet, og kommenter listen-on-v6
– linjen:
options { listen-on port 53 { 127.0.0.1; 10.128.20.12; };# listen-on-v6 port 53 { ::1; };...
Endre allow-query
direktivet fra «localhost»til » trusted»:
...options {... allow-query { trusted; }; # allows queries from "trusted" clients...
på slutten av filen legger du til følgende linje:
include "/etc/named/named.conf.local";
lagre og avsluttnamed.conf
. Ovennevnte konfigurasjon angir at bare dine egne servere (de» klarerte») vil kunne spørre DNS-serveren din.
Deretter konfigurerer vi den lokale filen, for å spesifisere VÅRE DNS-soner.
Lagre og avslutt named.conf
.
rediger nånamed.conf.local
fil:
- sudo chmod 755 /etc/named
- sudo vi /etc/named/named.conf.local
Definer slavesoner som tilsvarer hovedsonene på DEN primære DNS-serveren. Merk at typen er «slave», filen inneholder ikke en bane, og det er etmasters
– direktiv som skal settes til den primære DNS-serverens private IP. Hvis du definerte flere omvendte soner i den primære DNS-serveren, må du legge til dem alle her:
lagre og avslutt named.conf.local
.
Kjør følgende kommando for å sjekke gyldigheten av konfigurasjonsfilene dine:
- sudo named-checkconf
NÅR DET sjekker ut, start BIND:
- sudo systemctl start named
Aktiver BIND for å starte ved oppstart:
sudo systemctl enable named
nå har DU primære og sekundære dns-servere for privat Nettverksnavn og ip-adresseoppløsning. Nå må du konfigurere serverne dine for å bruke dine private DNS-servere.
Konfigurer DNS-Klienter
før alle serverne Dine I» trusted » ACL kan spørre DNS-serverne dine, må du konfigurere HVER AV DEM til å bruke ns1 og ns2 som navneservere. Denne prosessen varierer avhengig AV OS, men for De Fleste Linux-distribusjoner innebærer det å legge til navnetjenerne til/etc/resolv.conf
– filen.
CentOS Klienter
På CentOS, RedHat, Og Fedora Linux VPS, bare redigereresolv.conf
fil:
- sudo vi /etc/resolv.conf
legg deretter til følgende linjer ØVERST i filen (erstatt ditt private domene 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
lagre og avslutt nå. Klienten din er nå konfigurert til å bruke DNS-serverne dine.
Ubuntu Klienter
På Ubuntu Og Debian Linux VPS, kan du redigerehead
fil, som er prepended tilresolv.conf
ved oppstart:
- sudo vi /etc/resolvconf/resolv.conf.d/head
Legg til følgende linjer i filen (erstatt ditt private domene 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
kjør nå resolvconf
for å generere en ny resolv.conf
fil:
- sudo resolvconf -u
klienten er nå konfigurert til Å bruke DNS servere.
Testklienter
Bruk nslookup
Forward Lookup
for eksempel kan vi utføre et forward lookup for å hente IP-adressen til host1.nyc3.example.com ved å kjøre følgende kommando:
- nslookup host1
Spørring «host1» utvides til «host1.nyc3.example.com på grunn av search
er alternativet satt til ditt private underdomene, OG DNS-spørringer vil forsøke å se på det underdomenet før de ser etter verten andre steder. Utgangen av kommandoen ovenfor vil se ut som følgende:
Output:Server: 10.128.10.11Address: 10.128.10.11#53Name: host1.nyc3.example.comAddress: 10.128.100.101
Omvendt Oppslag
for å teste omvendt oppslag, spør DNS-serveren med host1s private IP-adresse:
- nslookup 10.128.100.101
du bør se utdata som ser ut som 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 navnene og ip-adressene løses til de riktige verdiene, betyr det at sonefilene dine er konfigurert riktig. Hvis du mottar uventede verdier, må du kontrollere sonefilene på den primære DNS-serveren (f. eks. db.nyc3.example.com
og db.10.128
).
Gratulerer! Dine interne DNS-servere er nå satt opp riktig! Nå vil vi dekke opprettholde sonen poster.
Opprettholde DNS-Poster
Nå som du har en fungerende intern DNS, må DU opprettholde DNS-postene dine slik at de nøyaktig gjenspeiler servermiljøet ditt.
Legge Til Vert TIL DNS
når du legger til en vert i miljøet ditt (i samme datasenter), vil du legge det til DNS. Her er en liste over trinn som du må ta:
- forward zone file: Legg til en «a» – post for den nye verten, øk verdien Av «Serial»
- Omvendt sonefil: Legg til EN «PTR» – post for den nye verten, øk verdien av «Serial»
- Legg til den nye vertsens private IP-adresse til «trusted» ACL (
named.conf.options
)
Last Bind På Nytt:
- sudo systemctl reload named
- legg TIL DIN nye VERTS private ip-adresse til «trusted» acl (
named.conf.options
)
last deretter bind på nytt:
- sudo systemctl reload named
Konfigurer Ny Vert for Å Bruke DNS
- Konfigurer resolv.conf for å bruke DNS-serverne
- Test ved hjelp av
nslookup
Fjerne Vert FRA DNS
hvis du fjerner en vert fra miljøet ditt eller bare vil ta DET ut AV DNS, fjerner du bare alle tingene som ble lagt til da du la til serveren TIL DNS (dvs.omvendt av trinnene ovenfor).
Konklusjon
Nå kan du referere til serverens private nettverksgrensesnitt etter navn, i stedet FOR IP-adresse. Dette gjør konfigurering av tjenester og applikasjoner enklere fordi du ikke lenger trenger å huske de private IP-adressene, og filene blir lettere å lese og forstå. Nå kan du også endre konfigurasjonene dine for å peke på en ny server på ett sted, din primære DNS-server, i stedet for å måtte redigere en rekke distribuerte konfigurasjonsfiler, noe som letter vedlikeholdet.
Når du har din interne DNS satt opp, og konfigurasjonsfilene dine bruker private FQDNs for å angi nettverkstilkoblinger, er DET viktig at DNS-serverne dine er ordentlig vedlikeholdt. Hvis begge blir utilgjengelige, vil tjenestene og programmene som er avhengige av dem, slutte å fungere skikkelig. DERFOR anbefales DET å sette OPP DNS med minst en sekundær server, og for å opprettholde sikkerhetskopier av dem alle.