Cum se configurează BIND ca server DNS de rețea privată pe CentOS 7

Introducere

o parte importantă a gestionării configurației și Infrastructurii serverului include menținerea unei modalități ușoare de a căuta interfețe de rețea și adrese IP după nume, prin configurarea unui sistem de nume de domeniu adecvat (DNS). Utilizarea numelor de domenii complet calificate (FQDNs), în loc de adrese IP, pentru a specifica adresele de rețea facilitează configurarea serviciilor și aplicațiilor și crește mentenabilitatea fișierelor de configurare. Configurarea propriului DNS pentru rețeaua dvs. privată este o modalitate excelentă de a îmbunătăți gestionarea serverelor dvs.

în acest tutorial, vom trece peste modul de configurare a unui server DNS intern, folosind software-ul BIND name server (Bind9) pe CentOS 7, care poate fi utilizat de serverele dvs. private Virtuale (VPS) pentru a rezolva numele gazdei private și adresele IP private. Aceasta oferă o modalitate centrală de a vă gestiona numele de gazdă interne și adresele IP private, ceea ce este indispensabil atunci când mediul dvs. se extinde la mai mult de câteva gazde.

Versiunea Ubuntu a acestui tutorial poate fi găsită aici.

premise

pentru a finaliza acest tutorial, veți avea nevoie de următoarele:

  • unele servere care rulează în același datacenter și au rețea privată activată
  • un nou VPS pentru a servi ca server DNS primar, ns1
  • opțional: un nou VPS pentru a servi ca server DNS secundar, ns2
  • acces Root la toate cele de mai sus (pașii 1-4 aici)

dacă nu sunteți familiarizați cu conceptele DNS, este recomandat să citiți cel puțin primele trei părți ale introducerii noastre în gestionarea DNS.

exemplu gazde

de exemplu, vom presupune următoarele:

  • avem două VPS existente numite „host1” și „host2”
  • ambele VPS există în centrul de date nyc3
  • ambele VPS au rețea privată activată (și sunt pe subrețeaua 10.128.0.0/16)
  • ambele VPS sunt într-un fel legate de aplicația noastră web rulează pe „example.com”

cu aceste ipoteze, decidem că are sens să folosim o schemă de denumire care folosește „nyc3.example.com” pentru a ne referi la subrețeaua sau zona noastră privată. Prin urmare, numele de domeniu privat complet calificat al host1 (FQDN) va fi „host1.nyc3.example.com”. consultați tabelul următor detaliile relevante:

gazdă rol privat FQDN adresa IP privată
host1 gazdă generică 1 host1.nyc3.example.com 10.128.100.101
host2 gazdă generică 2 host2.nyc3.example.com 10.128.200.102

notă: configurarea existentă va fi diferită, dar numele exemplelor și adresele IP vor fi folosite pentru a demonstra cum se configurează un server DNS pentru a furniza un DNS intern funcțional. Ar trebui să puteți adapta cu ușurință această configurare la propriul mediu, înlocuind numele gazdei și adresele IP private cu ale dvs. Nu este necesar să folosiți numele regiunii Centrului de date în schema dvs. de denumire, dar îl folosim aici pentru a indica faptul că aceste gazde aparțin rețelei private a unui anumit centru de date. Dacă utilizați mai multe centre de date, puteți configura un DNS intern în cadrul fiecărui centru de date respectiv.

obiectivul nostru

până la sfârșitul acestui tutorial, vom avea un server DNS primar, ns1 și, opțional, un server DNS secundar, ns2, care va servi drept copie de rezervă.

Iată un tabel cu exemple de nume și adrese IP:

gazdă rol privat FQDN adresa IP privată
ns1 server DNS primar ns1.nyc3.example.com 10.128.10.11
ns2 server DNS secundar ns2.nyc3.example.com 10.128.20.12

Să începem prin instalarea serverului nostru DNS principal, ns1.

instalați BIND pe serverele DNS

notă: textul care este evidențiat în roșu este important! Acesta va fi adesea folosit pentru a desemna ceva care trebuie înlocuit cu propriile setări sau că ar trebui modificat sau adăugat la un fișier de configurare. De exemplu, dacă vedeți ceva de genul host1.nyc3.exemplu.com, înlocuiți-l cu FQDN-ul propriului server. De asemenea, dacă vedeți host1_private_IP, înlocuiți-l cu adresa IP privată a propriului server.

pe ambele servere DNS, ns1 și ns2, instalați legătura cu yum:

  • sudo yum install bind bind-utils

confirmați promptul introducândy.

acum că BIND este instalat, să configurăm serverul DNS primar.

Configurați serverul DNS primar

configurația BIND constă din mai multe fișiere, care sunt incluse din fișierul de configurare principal,named.conf. Aceste nume de fișiere încep cu „numit”, deoarece acesta este numele procesului care se leagă. Vom începe cu configurarea fișierului de opțiuni.

configurare Bind

procesul BIND este cunoscut ca numit. Ca atare, multe dintre fișiere se referă la „numit” în loc de „legare”.

pe ns1, deschideținamed.conf fișier pentru editare:

  • sudo vi /etc/named.conf

deasupra bloculuioptions, creați un nou bloc ACL numit „trusted”. Aici vom defini lista clienților de la care vom permite interogări DNS recursive (adică. serverele dvs. care se află în același centru de date ca ns1). Folosind exemplul nostru adrese IP private, vom adăuga ns1, ns2, host1 și host2 la lista noastră de clienți de încredere:

/etc/named.conf-1 din 4
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};

acum că avem lista noastră de clienți DNS de încredere, vom dori să edităm bloculoptions. Adăugați adresa IP privată a ns1 la Directivalisten-on port 53 și comentați linia listen-on-v6:

/etc/numită.conf-2 din 4
options { listen-on port 53 { 127.0.0.1; 10.128.10.11; };# listen-on-v6 port 53 { ::1; };...

sub aceste intrări, schimbați Directivaallow-transfer de la „nici unul” la adresa IP privată a ns2. De asemenea, schimbați allow-query Directiva de la „localhost” la „trusted”:

/etc/named.conf – 3 din 4

la sfârșitul fișierului, adăugați următoarea linie:

/etc / named.conf – 4 din 4
include "/etc/named/named.conf.local";

Acum salvați și ieșiținamed.conf. Configurația de mai sus specifică faptul că numai propriile servere (cele „de încredere”) vor putea interoga serverul DNS.

în continuare, vom configura fișierul local, pentru a specifica zonele noastre DNS.

configurați fișierul Local

pe ns1, deschideți fișierulnamed.conf.local pentru editare:

  • sudo vi /etc/named/named.conf.local

fișierul trebuie să fie gol. Aici vom specifica zonele noastre înainte și înapoi.

adăugați zona înainte cu următoarele linii (înlocuiți numele zonei cu al dvs.):

/etc/named / named.conf.local-1 din 2
zone "nyc3.example.com" { type master; file "/etc/named/zones/db.nyc3.example.com"; # zone file path};

presupunând că subrețea noastră privată este 10.128.0.0/16, adăugați zona inversă cu următoarele linii (rețineți că numele zonei inverse începe cu „128.10”, care este inversarea octetului „10.128”):

/etc/named/named.conf.local-2 din 2
zone "128.10.in-addr.arpa" { type master; file "/etc/named/zones/db.10.128"; # 10.128.0.0/16 subnet };

dacă serverele dvs. acoperă mai multe subrețele private, dar se află în același centru de date, asigurați-vă că specificați o zonă suplimentară și un fișier de zonă pentru fiecare subrețea distinctă. Când ați terminat de adăugat toate zonele dorite, salvați și ieșiți din fișierul named.conf.local.

acum că zonele noastre sunt specificate în BIND, trebuie să creăm fișierele corespunzătoare din zona înainte și înapoi.

Creare fișier zonă înainte

fișierul zonă înainte este locul în care definim înregistrările DNS pentru căutările DNS înainte. Adică, atunci când DNS primește o interogare de nume, „host1.nyc3.example.com” de exemplu, se va uita în fișierul forward zone pentru a rezolva adresa IP privată corespunzătoare a host1.

să creăm directorul în care vor locui fișierele noastre de zonă. După numele nostru.conf.configurație locală, acea locație ar trebui să fie /etc/named/zones:

  • sudo chmod 755 /etc/named
  • sudo mkdir /etc/named/zones

acum să edităm fișierul nostru de zonă înainte:

  • sudo vi /etc/named/zones/db.nyc3.example.com

În primul rând, veți dori să adăugați înregistrarea SOA. Înlocuiți FQDN ns1 evidențiat cu propriul FQDN, apoi înlocuiți al doilea „nyc3.example.com” cu propriul domeniu. De fiecare dată când editați un fișier de zonă, ar trebui să incrementați valoarea serială înainte de a reporni procesul named–îl vom incrementa la „3”. Ar trebui să arate așa:

/etc/named/zones/db.nyc3.exemplu.com-1 din 3

după aceea, adăugați înregistrările serverului de nume cu următoarele linii (înlocuiți numele cu ale dvs.). Rețineți că a doua coloană specifică faptul că acestea sunt înregistrări „NS”:

/etc/named/zones/db.nyc3.example.com — 2 din 3
; name servers - NS records IN NS ns1.nyc3.example.com. IN NS ns2.nyc3.example.com.

apoi adăugați înregistrările A pentru gazdele dvs. care aparțin acestei zone. Aceasta include orice server al cărui nume dorim să se încheie cu „.nyc3.example.com ” (înlocuiți numele și adresele IP private). Folosind numele noastre de exemplu și adresele IP private, vom adăuga o înregistrări pentru ns1, ns2, host1 și host2 ca atare:

/etc/named/zones/db.nyc3.example.com — 3 din 3

Salvați și ieșiți din fișieruldb.nyc3.example.com.

exemplul nostru final de fișier forward zone arată astfel:

/etc/named/zones/db.nyc3.example.com — complete

acum să trecem la fișierele din zona inversă.

creați fișiere de zonă inversă

fișierul de zonă inversă este locul în care definim înregistrările DNS ptr pentru căutările DNS inverse. Adică, atunci când DNS primește o interogare prin adresa IP, „10.128.100.101” de exemplu, va arăta în fișierul(fișierele) zonei inverse pentru a rezolva FQDN corespunzător, ” host1.nyc3.example.com ” în acest caz.

pe ns1, pentru fiecare zonă inversă specificată în fișierulnamed.conf.local, creați un fișier zonă inversă.

editați fișierul zonei inverse care corespunde zonei inverse definite în named.conf.local:

  • sudo vi /etc/named/zones/db.10.128

în același mod ca fișierul zonei forward, înlocuiți ns1 FQDN evidențiat cu propriul FQDN, apoi înlocuiți al doilea fișier „FQDN” nyc3.example.com ” cu propriul domeniu. De fiecare dată când editați un fișier de zonă, ar trebui să incrementați valoarea serială înainte de a reporni procesul named–îl vom incrementa la „3”. Ar trebui să arate așa:

/etc/named/zones/db.10.128 – 1 din 3

după aceea, adăugați înregistrările serverului de nume cu următoarele linii (înlocuiți numele cu ale dvs.). Rețineți că a doua coloană specifică faptul că acestea sunt înregistrări „NS”:

/etc/named/zones/db.10.128 — 2 din 3
; name servers - NS records IN NS ns1.nyc3.example.com. IN NS ns2.nyc3.example.com.

apoi adăugațiPTR înregistrări pentru toate serverele ale căror adrese IP se află pe subrețeaua fișierului de zonă pe care îl editați. În exemplul nostru, aceasta include toate gazdele noastre, deoarece acestea sunt toate pe subrețea 10.128.0.0/16. Rețineți că prima coloană constă din ultimii doi octeți ai adreselor IP private ale serverelor dvs. în ordine inversă. Asigurați-vă că înlocuiți numele și adresele IP private pentru a se potrivi serverelor dvs.:

/etc/named/zones/db.10.128-3 din 3

Salvați și ieșiți din fișierul zonă inversă (repetați această secțiune dacă trebuie să adăugați mai multe fișiere zonă inversă).

fișierul nostru final de zonă inversă arată astfel:

/etc/named/zones / db.10.128-complet

verificați sintaxa de configurare BIND

rulați următoarea comandă pentru a verifica sintaxanamed.conf* fișiere:

  • sudo named-checkconf

dacă fișierele de configurare numite nu au erori de sintaxă, veți reveni la promptul shell și nu veți vedea mesaje de eroare. Dacă există probleme cu fișierele de configurare, examinați mesajul de eroare și secțiunea Configurare server DNS primar, apoi încercați din nou named-checkconf.

comandanamed-checkzone poate fi utilizată pentru a verifica corectitudinea fișierelor dvs. de zonă. Primul său argument specifică un nume de zonă, iar al doilea argument specifică fișierul de zonă corespunzător, care sunt ambele definite în named.conf.local.

de exemplu, pentru a verifica „nyc3.example.com” configurarea zonei înainte, executați următoarea comandă (schimbați numele pentru a se potrivi zonei și fișierului dvs. înainte):

  • sudo named-checkzone nyc3.example.com /etc/named/zones/db.nyc3.example.com

și pentru a verifica „128.10.in-addr.arpa” Configurare zonă inversă, executați următoarea comandă (schimbați numerele pentru a se potrivi zonei și fișierului dvs. invers):

  • sudo named-checkzone 128.10.in-addr.arpa /etc/named/zones/db.10.128

când toate fișierele de configurare și zonă nu au erori în ele, ar trebui să fiți gata să reporniți serviciul BIND.

Start BIND

Start BIND:

  • sudo systemctl start named

acum veți dori să-l activați, așa că va începe la pornire:

  • sudo systemctl enable named

serverul dvs. Să trecem la crearea serverului DNS secundar.

Configurați serverul DNS secundar

în majoritatea mediilor, este o idee bună să configurați un server DNS secundar care să răspundă la solicitări dacă principalul devine indisponibil. Din fericire, serverul DNS secundar este mult mai ușor de configurat.

pe ns2, editați fișierulnamed.conf:

  • sudo vi /etc/named.conf

Notă: Dacă preferați să omiteți aceste instrucțiuni, puteți copia fișierulnamed.conf al ns1 și îl puteți modifica pentru a asculta pe adresa IP privată a ns2 și pentru a nu permite transferuri.

deasupra blocului existent options, creați un nou bloc ACL numit „trusted”. Aici vom defini lista clienților de la care vom permite interogări DNS recursive (adică serverele dvs. care se află în același centru de date ca ns1). Folosind exemplul nostru adrese IP private, vom adăuga ns1, ns2, host1 și host2 la lista noastră de clienți de încredere:

/etc/named.conf-1 din 4
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};

acum că avem lista noastră de clienți DNS de încredere, vom dori să edităm bloculoptions. Adăugați adresa IP privată a ns1 la Directivalisten-on port 53 și comentați linia listen-on-v6:

/etc/numită.conf-2 din 4
options { listen-on port 53 { 127.0.0.1; 10.128.20.12; };# listen-on-v6 port 53 { ::1; };...

schimbareallow-query Directiva de la „localhost” la „trusted”:

/etc / numit.conf – 3 din 4
...options {... allow-query { trusted; }; # allows queries from "trusted" clients...

la sfârșitul fișierului, adăugați următoarea linie:

/etc / named.conf – 4 din 4
include "/etc/named/named.conf.local";

Acum salvați și ieșiținamed.conf. Configurația de mai sus specifică faptul că numai propriile servere (cele „de încredere”) vor putea interoga serverul DNS.

în continuare, vom configura fișierul local, pentru a specifica zonele noastre DNS.

Salvați și ieșiținamed.conf.

acum editaținamed.conf.local fișier:

  • sudo chmod 755 /etc/named
  • sudo vi /etc/named/named.conf.local

definiți zonele slave care corespund zonelor master de pe serverul DNS primar. Rețineți că tipul este „slave”, fișierul nu conține o cale și există o directivă masters care ar trebui setată la IP-ul Privat al serverului DNS primar. Dacă ați definit mai multe zone inverse în serverul DNS primar, asigurați-vă că le adăugați pe toate aici:

/etc/named/named.conf.local

Acum salvați și ieșiținamed.conf.local.

rulați următoarea comandă pentru a verifica validitatea fișierelor de configurare:

  • sudo named-checkconf

odată ce se verifică, porniți BIND:

  • sudo systemctl start named

activați BIND pentru a porni la pornire:

sudo systemctl enable named

acum aveți servere DNS primare și secundare pentru numele rețelei private și rezoluția adresei IP. Acum trebuie să vă configurați serverele pentru a utiliza serverele DNS private.

configurați clienții DNS

înainte ca toate serverele dvs. din ACL „de încredere” să vă poată interoga serverele DNS, trebuie să configurați fiecare dintre ele pentru a utiliza ns1 și ns2 ca servere de nume. Acest proces variază în funcție de sistemul de operare, dar pentru majoritatea distribuțiilor Linux implică adăugarea serverelor de nume la fișierul /etc/resolv.conf.

clienții CentOS

pe CentOS, RedHat și Fedora Linux VPS, pur și simplu editați fișierul resolv.conf :

  • sudo vi /etc/resolv.conf

apoi adăugați următoarele linii în partea de sus a fișierului (înlocuiți domeniul privat și adresele IP private ns1 și ns2):

/etc / resolv.conf
search nyc3.example.com # your private domainnameserver 10.128.10.11 # ns1 private IP addressnameserver 10.128.20.12 # ns2 private IP address

Acum salvați și ieșiți. Clientul dvs. este acum configurat să utilizeze serverele DNS.

Ubuntu clienți

pe Ubuntu și Debian Linux VPS, puteți edita head fișier, care este prefixat la resolv.conf la boot:

  • sudo vi /etc/resolvconf/resolv.conf.d/head

adăugați următoarele linii în fișier (înlocuiți domeniul privat și adresele IP private ns1 și ns2):

/etc/resolvconf / resolv.conf.d/head
search nyc3.example.com # your private domainnameserver 10.128.10.11 # ns1 private IP addressnameserver 10.128.20.12 # ns2 private IP address

acum rulați resolvconf pentru a genera un nou resolv.conf fișier:

  • sudo resolvconf -u

clientul dvs. este acum configurat să utilizeze DNS-ul servere.

clienți de testare

utilizaținslookup—inclus în pachetul „bind-utils”—pentru a testa dacă clienții dvs. pot interoga serverele de nume. Ar trebui să puteți face acest lucru pe toți clienții pe care i-ați configurat și care se află în ACL „de încredere”.

căutare înainte

de exemplu, putem efectua o căutare înainte pentru a prelua adresa IP a host1.nyc3.example.com executând următoarea comandă:

  • nslookup host1

interogarea „host1” se extinde la „host1.nyc3.example.com din cauza search opțiunea este setată la subdomeniul dvs. privat, iar interogările DNS vor încerca să caute acel subdomeniu înainte de a căuta gazda în altă parte. Ieșirea comenzii de mai sus ar arăta astfel:

Output:
Server: 10.128.10.11Address: 10.128.10.11#53Name: host1.nyc3.example.comAddress: 10.128.100.101

căutare inversă

pentru a testa căutarea inversă, interogați serverul DNS cu adresa IP privată a host1:

  • nslookup 10.128.100.101

ar trebui să vedeți ieșire care arată ca următoarea:

Output:
Server: 10.128.10.11Address: 10.128.10.11#5311.10.128.10.in-addr.arpa name = host1.nyc3.example.com.

dacă toate numele și adresele IP se rezolvă la valorile corecte, înseamnă că fișierele dvs. de zonă sunt configurate corect. Dacă primiți valori neașteptate, asigurați-vă că examinați fișierele de zonă de pe serverul DNS principal (de ex. db.nyc3.example.com și db.10.128).

Felicitări! Serverele DNS interne sunt acum configurate corect! Acum vom acoperi menținerea înregistrărilor dvs. de zonă.

menținerea înregistrărilor DNS

acum că aveți un DNS intern funcțional, trebuie să vă mențineți înregistrările DNS astfel încât să reflecte cu exactitate mediul serverului.

adăugarea gazdei la DNS

ori de câte ori adăugați o gazdă în mediul dvs. (în același centru de date), veți dori să o adăugați la DNS. Iată o listă de pași pe care trebuie să îi faceți:

Nameserver primar

  • Forward zone file: Adăugați o înregistrare „A” pentru noua gazdă, creșteți valoarea fișierului „Serial”
  • reverse zone file: Adăugați o înregistrare „PTR” pentru noua gazdă, creșteți valoarea „Serial”
  • adăugați adresa IP privată a noii gazde la ACL „de încredere” (named.conf.options)

apoi reîncărcați bind:

  • sudo systemctl reload named

server de nume secundar

  • adăugați adresa IP privată a noii gazde la ACL „de încredere” (named.conf.options)

apoi reîncărcați bind:

  • sudo systemctl reload named

configurați noua gazdă pentru a utiliza DNS-ul dvs.

  • configurați resolv.conf pentru a utiliza serverele DNS
  • test folosind nslookup

eliminarea gazdă din DNS

Dacă eliminați o gazdă din mediul dvs. sau doriți să-l ia doar din DNS, doar elimina toate lucrurile care au fost adăugate atunci când ați adăugat serverul la DNS (adică inversul pașii de mai sus).

concluzie

acum vă puteți referi la interfețele de rețea private ale serverelor dvs. după nume, mai degrabă decât după adresa IP. Acest lucru facilitează configurarea serviciilor și aplicațiilor, deoarece nu mai trebuie să vă amintiți adresele IP private, iar fișierele vor fi mai ușor de citit și de înțeles. De asemenea, acum Puteți schimba configurațiile pentru a indica un nou servere într-un singur loc, serverul DNS primar, în loc să editați o varietate de fișiere de configurare distribuite, ceea ce ușurează întreținerea.după ce ați configurat DNS-ul intern și fișierele de configurare utilizează FQDNs private pentru a specifica conexiunile de rețea, este esențial ca serverele DNS să fie întreținute corespunzător. Dacă ambele devin indisponibile, serviciile și aplicațiile dvs. care se bazează pe ele vor înceta să funcționeze corect. Acesta este motivul pentru care este recomandat să vă configurați DNS-ul cu cel puțin un server secundar și să mențineți copii de rezervă funcționale ale tuturor acestora.

Related Posts

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *