Skip to content

DNS strežnik

Učni list 3: Vzpostavitev DNS strežnika z BIND9

Namen vaje

Tvoja naloga je, da vzpostaviš lokalni DNS strežnik, ustvariš svojo cono in razumeš, kako se imena prevajajo v IP naslove.

Kako brati mikro razlage
  • razčlenitev sintakse — kaj pomeni posamezni del ukaza
  • kaj se zgodi po pritisku Enter — neposredna posledica v sistemu ali omrežju
  • na kaj ukaz vpliva — datoteka, proces ali port
  • kaj pričakuješ kot rezultat — konkretna kontrolna točka

Cilj je, da ne ostaneš na ravni prepisal sem ukaz, ampak prideš do ravni vem, zakaj sem ga izvedel in kaj moram po njem preveriti.

Cilji
  • razumeš vlogo DNS v omrežju
  • znaš namestiti in zagnati BIND9
  • znaš ustvariti forward in reverse cono
  • znaš preveriti cono z named-checkzone in strežnik z named-checkconf
  • znaš s klienta testirati razreševanje imen z dig ali nslookup
Potrebna oprema in predznanje
  • strežnik ima statični IP naslov
  • klient doseže strežnik po IP-ju
  • poznaš razliko med IP naslovom in imenom gostitelja
Teorija v ozadju

DNS je telefonski imenik interneta in lokalnih omrežij. Ljudje si lažje zapomnimo www.lab.local kot 192.168.56.10.

Ko klient išče ime, pošlje vprašanje DNS strežniku. Ta lahko odgovori iz svoje cone, iz predpomnilnika ali pa poizvedbo posreduje naprej drugim DNS strežnikom.

Forward cona preslika ime v IP naslov. Reverse cona pa odgovori na vprašanje: “Katero ime je povezano s tem IP naslovom?” Obe sta didaktično pomembni, ker skupaj pokažeta dvosmernost preslikave.

BIND9 je klasičen in zelo zmogljiv DNS strežnik. V tej vaji ga uporabljamo v lokalnem laboratorijskem režimu, ne kot javni internetni avtoritativni strežnik.

Na kaj je treba paziti
  • V DNS conah je pika na koncu FQDN-ja pomembna. Brez nje lahko BIND napačno pripne ime trenutne cone.
  • Po spremembi cone vedno preveri sintakso, preden znova zaženeš servis.
  • Če klient še vedno vrača stare odgovore, je lahko kriv cache. Ne krivi takoj vseh bogov omrežja.

Kako brati to vajo

Vsak korak ima tri plasti: kaj narediš, kaj ukaz pomeni in kaj se v ozadju zgodi v sistemu ali omrežju. Cilj ni slepo kopiranje ukazov, ampak razumevanje, zakaj posamezni korak obstaja.

1. Namesti BIND9 in orodja za testiranje

Kaj narediš

Na strežniku namesti DNS strežnik in pripomočke.

Ukazi

sudo apt update
sudo apt install bind9 bind9-utils bind9-dnsutils dnsutils -y
Mikro razlaga ukazov

Ukaz 1: sudo apt update

  • Razčlenitev sintakse:
  • sudo ukaz izvede z administratorskimi pravicami.
  • apt je upravljalnik paketov na Debian/Ubuntu sistemih.
  • update ne namešča programov; samo osveži lokalni seznam paketov iz repozitorijev.
  • Kaj se zgodi po pritisku Enter: Sistem osveži lokalne informacije o paketih. Ni še spremembe storitev, ampak priprava na korektno namestitev ali posodobitev.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.

Ukaz 2: sudo apt install bind9 bind9-utils bind9-dnsutils dnsutils -y

  • Razčlenitev sintakse:
  • install namesti navedene pakete: bind9 bind9-utils bind9-dnsutils dnsutils.
  • -y samodejno potrdi namestitev.
  • Kaj se zgodi po pritisku Enter: Na sistem se namesti nov paket oziroma storitev. Ob tem se pogosto ustvarijo konfiguracijske datoteke, sistemska enota systemd in včasih se servis zažene že sam.
  • Na kaj ta ukaz vpliva:
  • Datoteke: /etc/bind/named.conf.options, /etc/bind/named.conf.local, /etc/bind/db.lab.local, /etc/bind/db.192.168.56
  • Procesi/storitve: bind9
  • Porti: 53/TCP, 53/UDP
  • Kaj pričakuješ kot rezultat: Paket se namesti brez napake, na koncu pa ni vrstice tipa E: ali failed.
Zakaj je korak pomemben

Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.

Kaj ta korak pomeni

bind9 je strežnik, bind9-utils in dnsutils pa prineseta ukaze, kot so named-checkconf, named-checkzone, dig in nslookup.

Kaj se dogaja v ozadju

Po namestitvi dobi sistem proces named, ki lahko posluša na portu 53 za UDP in TCP poizvedbe.

Kaj moraš opaziti

Paketna namestitev se konča brez napak, servis pa se praviloma sam zažene.

Če ne dela, preveri

  • Če nameščanje ne uspe, preveri internet dostop prek NAT in osnovno DNS razreševanje za zunanje repozitorije.
2. Preveri stanje servisa in poslušanje na portu 53

Kaj narediš

Preveri, ali je bind9 aktiven in ali sistem posluša DNS promet.

Ukazi

sudo systemctl status bind9
ss -tulpen | grep :53
Mikro razlaga ukazov

Ukaz 1: sudo systemctl status bind9

  • Razčlenitev sintakse:
  • systemctl upravlja storitve v systemd.
  • status bind9 pokaže, ali je enota bind9 aktivna, kdaj je bila zagnana in ali je javila napake.
  • Kaj se zgodi po pritisku Enter: Ne spreminja sistema, ampak ti da opazovalno točko: ali storitev teče, od kdaj teče in ali javlja napake.
  • Na kaj ta ukaz vpliva:
  • Datoteke: /etc/bind/named.conf.options, /etc/bind/named.conf.local, /etc/bind/db.lab.local, /etc/bind/db.192.168.56
  • Procesi/storitve: bind9
  • Porti: 53/TCP, 53/UDP
  • Kaj pričakuješ kot rezultat: V izpisu iščeš stanje active (running) ali vsaj jasen razlog, zakaj storitev ni aktivna.

Ukaz 2: ss -tulpen | grep :53

  • Razčlenitev sintakse:
  • ss pokaže odprte mrežne vtičnice.
  • -t prikaže TCP, -u UDP, -l poslušajoče vtičnice, -p procese, -e dodatne podatke, -n numerične porte brez pretvarjanja v imena.
  • grep :53 izloči vrstice za port 53.
  • Kaj se zgodi po pritisku Enter: Pregleduješ stanje mrežnih vtičnic v jedru. Tako preveriš, ali je storitev res odprla pričakovani port.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: V izpisu vidiš pričakovani port in pravilni proces, ki posluša promet.
Zakaj je korak pomemben

Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.

Kaj ta korak pomeni

DNS večinoma uporablja UDP 53 za običajne poizvedbe, lahko pa tudi TCP 53 za večje odgovore in nekatere posebne primere.

Kaj se dogaja v ozadju

Ko servis posluša na 53/UDP in 53/TCP, je jedro pripravljeno sprejemati DNS promet.

Kaj moraš opaziti

Pričakuješ active (running) ter zapisa za port 53.

Če ne dela, preveri

  • Če port 53 zaseda drug proces, bo BIND padel. To se lahko zgodi, če se s sistemskim resolverjem stepe za isti port.
3. Uredi osnovne možnosti BIND

Kaj narediš

Odpri datoteko z globalnimi nastavitvami in omogoči poslušanje ter po želji posredovanje poizvedb za zunanja imena.

Ukazi

sudo nano /etc/bind/named.conf.options
Mikro razlaga ukazov

Ukaz 1: sudo nano /etc/bind/named.conf.options

  • Razčlenitev sintakse:
  • nano odpre besedilno datoteko v terminalskem urejevalniku.
  • Odpira se datoteka /etc/bind/named.conf.options. Če datoteka še ne obstaja, jo boš ob shranjevanju ustvaril.
  • Kaj se zgodi po pritisku Enter: Sprememba se še ne zgodi v teku storitve. Najprej spremeniš datoteko na disku; učinek nastopi šele po restartu ali reloadu storitve.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Zakaj je korak pomemben

Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.

Primer konfiguracije

options {
    directory "/var/cache/bind";
    recursion yes;
    allow-query { any; };
    listen-on { any; };
    forwarders {
        1.1.1.1;
        8.8.8.8;
    };
    dnssec-validation auto;
};

Kaj ta korak pomeni

recursion yes pomeni, da lahko strežnik v imenu klienta poišče odgovore. forwarders mu pove, katera zunanja DNS strežnika naj vpraša, če odgovora nima sam.

Kaj se dogaja v ozadju

S tem laboratorijski DNS ni uporaben samo za lokalno cono, ampak lahko rešuje tudi zunanja imena, kar je za dijake lažje za razumevanje in testiranje.

Kaj moraš opaziti

Po spremembi še ne restartaj na slepo; najprej nadaljuj s konfiguracijo con in nato preveri sintakso.

Če ne dela, preveri

  • Če v šoli zunanji DNS strežniki niso dosegljivi, lahko forwarderje pozneje prilagodiš ali izpustiš.
4. Definiraj forward in reverse cono

Kaj narediš

V datoteki named.conf.local dodaj obe laboratorijski coni.

Ukazi

sudo nano /etc/bind/named.conf.local
Mikro razlaga ukazov

Ukaz 1: sudo nano /etc/bind/named.conf.local

  • Razčlenitev sintakse:
  • nano odpre besedilno datoteko v terminalskem urejevalniku.
  • Odpira se datoteka /etc/bind/named.conf.local. Če datoteka še ne obstaja, jo boš ob shranjevanju ustvaril.
  • Kaj se zgodi po pritisku Enter: Sprememba se še ne zgodi v teku storitve. Najprej spremeniš datoteko na disku; učinek nastopi šele po restartu ali reloadu storitve.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Zakaj je korak pomemben

Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.

Primer konfiguracije

zone "lab.local" {
    type master;
    file "/etc/bind/db.lab.local";
};

zone "56.168.192.in-addr.arpa" {
    type master;
    file "/etc/bind/db.192.168.56";
};

Kaj ta korak pomeni

S tem BIND poveš, da je on avtoritativni strežnik za cono lab.local in za reverse območje omrežja 192.168.56.0/24.

Kaj se dogaja v ozadju

Zona je datoteka z zapisi. Strežnik ne ugiba, katere cone ima. To mu moraš izrecno povedati.

Kaj moraš opaziti

Datoteka je kratka, a zelo pomembna: brez nje BIND ne bo vedel, da tvoje cone sploh obstajajo.

Če ne dela, preveri

  • Če zgrešiš pot do datoteke cone, bo preverjanje konfiguracije padlo.
5. Ustvari forward cono db.lab.local

Kaj narediš

Pripravi datoteko z DNS zapisi za laboratorij.

Ukazi

sudo cp /etc/bind/db.local /etc/bind/db.lab.local
sudo nano /etc/bind/db.lab.local
Mikro razlaga ukazov

Ukaz 1: sudo cp /etc/bind/db.local /etc/bind/db.lab.local

  • Razčlenitev sintakse:
  • cp kopira datoteko iz /etc/bind/db.local v /etc/bind/db.lab.local.
  • Pri strežniških konfiguracijah to pogosto pomeni: vzemi predlogo in jo prilagodi svoji laboratorijski domeni.
  • Kaj se zgodi po pritisku Enter: Takoj preveri, kaj se je spremenilo.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.

Ukaz 2: sudo nano /etc/bind/db.lab.local

  • Razčlenitev sintakse:
  • nano odpre besedilno datoteko v terminalskem urejevalniku.
  • Odpira se datoteka /etc/bind/db.lab.local. Če datoteka še ne obstaja, jo boš ob shranjevanju ustvaril.
  • Kaj se zgodi po pritisku Enter: Sprememba se še ne zgodi v teku storitve. Najprej spremeniš datoteko na disku; učinek nastopi šele po restartu ali reloadu storitve.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Zakaj je korak pomemben

Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.

Primer konfiguracije

$TTL    86400
@       IN      SOA     ns1.lab.local. admin.lab.local. (
                         2026040601 ; Serial
                         3600       ; Refresh
                         1800       ; Retry
                         604800     ; Expire
                         86400 )    ; Negative Cache TTL
;
@       IN      NS      ns1.lab.local.
ns1     IN      A       192.168.56.10
server  IN      A       192.168.56.10
client  IN      A       192.168.56.20
www     IN      A       192.168.56.10
ftp     IN      A       192.168.56.10
mail    IN      A       192.168.56.10
@       IN      MX 10   mail.lab.local.

Kako prebrati tipične vrstice iz cone

  • server IN A 192.168.56.10 pomeni, da ime server.lab.local kaže na naslov 192.168.56.10
  • www IN A 192.168.56.10 pomeni, da spletni strežnik uporablja isti IP kot laboratorijski strežnik
  • @ IN MX 10 mail.lab.local. pomeni, da pošta za domeno lab.local najprej potuje na strežnik mail.lab.local

Kaj ta korak pomeni

Tukaj nastaviš dejanske preslikave. A zapis preslika ime v IPv4 naslov, NS določa imenski strežnik cone, MX pa pove, kateri strežnik sprejema pošto za domeno.

Kaj se dogaja v ozadju

SOA zapis opisuje lastnosti cone in vsebuje serijsko številko. Ko cono spremeniš, je dobra praksa povečati serial, da sekundarni strežniki (če bi jih imel) vedo, da je prišla nova verzija.

Kaj moraš opaziti

V coni morajo biti zapisi za server, client, www, ftp in mail.

Če ne dela, preveri

  • Če pri FQDN-jih pozabiš končno piko, bo BIND morda iz imena naredil npr. mail.lab.local.lab.local.
6. Ustvari reverse cono db.192.168.56

Kaj narediš

Dodaj povratne PTR zapise za strežnik in klienta.

Ukazi

sudo cp /etc/bind/db.127 /etc/bind/db.192.168.56
sudo nano /etc/bind/db.192.168.56
Mikro razlaga ukazov

Ukaz 1: sudo cp /etc/bind/db.127 /etc/bind/db.192.168.56

  • Razčlenitev sintakse:
  • cp kopira datoteko iz /etc/bind/db.127 v /etc/bind/db.192.168.56.
  • Pri strežniških konfiguracijah to pogosto pomeni: vzemi predlogo in jo prilagodi svoji laboratorijski domeni.
  • Kaj se zgodi po pritisku Enter: Takoj preveri, kaj se je spremenilo.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.

Ukaz 2: sudo nano /etc/bind/db.192.168.56

  • Razčlenitev sintakse:
  • nano odpre besedilno datoteko v terminalskem urejevalniku.
  • Odpira se datoteka /etc/bind/db.192.168.56. Če datoteka še ne obstaja, jo boš ob shranjevanju ustvaril.
  • Kaj se zgodi po pritisku Enter: Sprememba se še ne zgodi v teku storitve. Najprej spremeniš datoteko na disku; učinek nastopi šele po restartu ali reloadu storitve.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Zakaj je korak pomemben

Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.

Primer konfiguracije

$TTL    86400
@       IN      SOA     ns1.lab.local. admin.lab.local. (
                         2026040601
                         3600
                         1800
                         604800
                         86400 )
;
@       IN      NS      ns1.lab.local.
10      IN      PTR     server.lab.local.
20      IN      PTR     client.lab.local.

Kako prebrati PTR zapis

  • 10 IN PTR server.lab.local. pomeni: ko kdo vpraša, katero ime pripada naslovu 192.168.56.10, dobi odgovor server.lab.local
  • 20 IN PTR client.lab.local. velja enako za klienta na naslovu 192.168.56.20

Kaj ta korak pomeni

PTR zapis pove, da naslov .10 pripada server.lab.local, naslov .20 pa client.lab.local.

Kaj se dogaja v ozadju

Reverse cona ni samo akademska vaja. Veliko servisov in logov uporablja povratno razreševanje za diagnostiko ali politiko dostopa.

Kaj moraš opaziti

Število 10 in 20 predstavlja zadnji oktet IP naslova v omrežju 192.168.56.0/24.

Če ne dela, preveri

  • Če zamenjaš območje reverse cone, poizvedbe tipa dig -x ne bodo delovale.
7. Preveri sintakso konfiguracije in con

Kaj narediš

Pred ponovnim zagonom BIND preveri globalno konfiguracijo in obe coni.

Ukazi

sudo named-checkconf
sudo named-checkzone lab.local /etc/bind/db.lab.local
sudo named-checkzone 56.168.192.in-addr.arpa /etc/bind/db.192.168.56
Mikro razlaga ukazov

Ukaz 1: sudo named-checkconf

  • Razčlenitev sintakse:
  • Preveri sintakso glavne konfiguracije BIND-a. Ne preveri vsebine vseh zapisov, ampak ali je konfiguracija kot celota smiselno zapisana.
  • Kaj se zgodi po pritisku Enter: Takoj preveri, kaj se je spremenilo.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.

Ukaz 2: sudo named-checkzone lab.local /etc/bind/db.lab.local

  • Razčlenitev sintakse:
  • Preveri sintakso in osnovno veljavnost cone lab.local.
  • Drugi argument /etc/bind/db.lab.local je datoteka s konkretnimi zapisi te cone.
  • Kaj se zgodi po pritisku Enter: Takoj preveri, kaj se je spremenilo.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.

Ukaz 3: sudo named-checkzone 56.168.192.in-addr.arpa /etc/bind/db.192.168.56

  • Razčlenitev sintakse:
  • Preveri sintakso in osnovno veljavnost cone 56.168.192.in-addr.arpa.
  • Drugi argument /etc/bind/db.192.168.56 je datoteka s konkretnimi zapisi te cone.
  • Kaj se zgodi po pritisku Enter: Takoj preveri, kaj se je spremenilo.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.
Zakaj je korak pomemben

Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.

Kaj ta korak pomeni

To je eden najboljših administrativnih refleksov: preveri preden restartneš. Tako hitro najdeš sintaktično napako, ne da bi po nepotrebnem podiral delujoč servis.

Kaj se dogaja v ozadju

BIND ob preverjanju prebere konfiguracijo in javi natančno vrstico ali zapis, ki je problematičen.

Kaj moraš opaziti

Pričakuješ odgovor OK oziroma brez napak.

Če ne dela, preveri

  • Če javi napako v coni, preveri predvsem manjkajoče pike, serial in napačne tipe zapisov.
8. Ponovno zaženi BIND in preveri dnevnike

Kaj narediš

Naloži novo konfiguracijo in preveri, ali servis ostane aktiven.

Ukazi

sudo systemctl restart bind9
sudo systemctl status bind9
Mikro razlaga ukazov

Ukaz 1: sudo systemctl restart bind9

  • Razčlenitev sintakse:
  • restart ustavi in ponovno zažene enoto bind9. To je potrebno po spremembi konfiguracije.
  • Kaj se zgodi po pritisku Enter: Proces storitve ponovno prebere konfiguracijo. Če je konfiguracija napačna, se storitev lahko ne zažene ali ostane v stanju napake.
  • Na kaj ta ukaz vpliva:
  • Datoteke: /etc/bind/named.conf.options, /etc/bind/named.conf.local, /etc/bind/db.lab.local, /etc/bind/db.192.168.56
  • Procesi/storitve: bind9
  • Porti: 53/TCP, 53/UDP
  • Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.

Ukaz 2: sudo systemctl status bind9

  • Razčlenitev sintakse:
  • systemctl upravlja storitve v systemd.
  • status bind9 pokaže, ali je enota bind9 aktivna, kdaj je bila zagnana in ali je javila napake.
  • Kaj se zgodi po pritisku Enter: Ne spreminja sistema, ampak ti da opazovalno točko: ali storitev teče, od kdaj teče in ali javlja napake.
  • Na kaj ta ukaz vpliva:
  • Datoteke: /etc/bind/named.conf.options, /etc/bind/named.conf.local, /etc/bind/db.lab.local, /etc/bind/db.192.168.56
  • Procesi/storitve: bind9
  • Porti: 53/TCP, 53/UDP
  • Kaj pričakuješ kot rezultat: V izpisu iščeš stanje active (running) ali vsaj jasen razlog, zakaj storitev ni aktivna.
Zakaj je korak pomemben

Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.

Kaj ta korak pomeni

Po validaciji je restart varen. Tako BIND začne uporabljati nove cone in zapise.

Kaj se dogaja v ozadju

Proces named ob zagonu naloži vse cone v pomnilnik in se pripravi na odgovarjanje klientom.

Kaj moraš opaziti

Status mora biti active (running).

Če ne dela, preveri

  • Če servis pade, poglej journalctl -u bind9 in popravi napako v datoteki.
9. Na klientu nastavi laboratorijski DNS strežnik

Kaj narediš

Na klientu usmeri razreševanje imen na strežnik 192.168.56.10.

Ukazi

sudo nano /etc/netplan/01-lab.yaml
sudo netplan apply
Mikro razlaga ukazov

Ukaz 1: sudo nano /etc/netplan/01-lab.yaml

  • Razčlenitev sintakse:
  • nano odpre besedilno datoteko v terminalskem urejevalniku.
  • Odpira se datoteka /etc/netplan/01-lab.yaml. Če datoteka še ne obstaja, jo boš ob shranjevanju ustvaril.
  • Kaj se zgodi po pritisku Enter: Sprememba se še ne zgodi v teku storitve. Najprej spremeniš datoteko na disku; učinek nastopi šele po restartu ali reloadu storitve.
  • Na kaj ta ukaz vpliva:
  • Datoteke: /etc/netplan/01-lab.yaml
  • Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.

Ukaz 2: sudo netplan apply

  • Razčlenitev sintakse:
  • apply trajno naloži trenutno zapisano konfiguracijo Netplana.
  • Kaj se zgodi po pritisku Enter: Mrežni vmesnik lahko dobi nov naslov, prehod ali DNS strežnik. Če je konfiguracija napačna, lahko izgubiš povezljivost.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: Vmesnik dobi pričakovani IP naslov, pot do druge virtualke pa ostane delujoča.
Zakaj je korak pomemben

Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.

Primer konfiguracije

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      dhcp4: true
    enp0s8:
      dhcp4: false
      addresses:
        - 192.168.56.20/24
      nameservers:
        addresses:
          - 192.168.56.10

Kaj ta korak pomeni

Klient mora vedeti, kam poslati DNS vprašanje. Če tega ne nastaviš, bo spraševal nek drug DNS strežnik, ki za lab.local seveda ne bo vedel ničesar.

Kaj se dogaja v ozadju

Resolver na klientu bere konfiguracijo nameserverjev in pošilja poizvedbe tja. To je točka, kjer se laboratorijski DNS zares začne uporabljati.

Kaj moraš opaziti

Po spremembi lahko klient poizveduje pri 192.168.56.10.

Če ne dela, preveri

  • Če zaradi spremembe izgubiš internetna imena, preveri, ali je na strežniku pravilno nastavljen forwarder ali pa dodaj sekundarni zunanji DNS za NAT vmesnik.
10. S klienta preveri forward in reverse razreševanje

Kaj narediš

Preveri zapise s dig in nslookup.

Ukazi

dig server.lab.local
dig www.lab.local
dig -x 192.168.56.10
nslookup mail.lab.local
Mikro razlaga ukazov

Ukaz 1: dig server.lab.local

  • Razčlenitev sintakse:
  • dig pošlje DNS poizvedbo za server.lab.local in prikaže natančen odgovor strežnika.
  • Kaj se zgodi po pritisku Enter: Pošlješ DNS poizvedbo in vidiš, kaj konkretni strežnik vrne za ime, IP naslov ali MX zapis.
  • Na kaj ta ukaz vpliva:
  • Porti: 53/TCP, 53/UDP
  • Kaj pričakuješ kot rezultat: V odgovoru vidiš pravilen zapis A, PTR ali MX ter pravi naslov iz laboratorijske domene.

Ukaz 2: dig www.lab.local

  • Razčlenitev sintakse:
  • dig pošlje DNS poizvedbo za www.lab.local in prikaže natančen odgovor strežnika.
  • Kaj se zgodi po pritisku Enter: Pošlješ DNS poizvedbo in vidiš, kaj konkretni strežnik vrne za ime, IP naslov ali MX zapis.
  • Na kaj ta ukaz vpliva:
  • Porti: 53/TCP, 53/UDP
  • Kaj pričakuješ kot rezultat: V odgovoru vidiš pravilen zapis A, PTR ali MX ter pravi naslov iz laboratorijske domene.

Ukaz 3: dig -x 192.168.56.10

  • Razčlenitev sintakse:
  • dig pošlje DNS poizvedbo za -x 192.168.56.10 in prikaže natančen odgovor strežnika.
  • Kaj se zgodi po pritisku Enter: Pošlješ DNS poizvedbo in vidiš, kaj konkretni strežnik vrne za ime, IP naslov ali MX zapis.
  • Na kaj ta ukaz vpliva:
  • Porti: 53/TCP, 53/UDP
  • Kaj pričakuješ kot rezultat: V odgovoru vidiš pravilen zapis A, PTR ali MX ter pravi naslov iz laboratorijske domene.

Ukaz 4: nslookup mail.lab.local

  • Razčlenitev sintakse:
  • nslookup je enostavnejše orodje za DNS poizvedbo. Tukaj sprašuješ za mail.lab.local.
  • Kaj se zgodi po pritisku Enter: Pošlješ DNS poizvedbo in vidiš, kaj konkretni strežnik vrne za ime, IP naslov ali MX zapis.
  • Na kaj ta ukaz vpliva:
  • Porti: 53/TCP, 53/UDP
  • Kaj pričakuješ kot rezultat: V odgovoru vidiš pravilen zapis A, PTR ali MX ter pravi naslov iz laboratorijske domene.
Zakaj je korak pomemben

Če ta ukaz izvedeš brez razumevanja, bo sistem morda na videz deloval, ti pa ne bo jasno, kje iskati napako. Zato po vsakem takem bloku vedno preveri vsaj eno od treh stvari: datoteko, stanje storitve ali omrežni odziv.

Kaj ta korak pomeni

Tu vidiš, ali BIND dejansko odgovarja in ali klient res sprašuje pravi strežnik.

Kaj se dogaja v ozadju

Pri dig je pomemben del odgovora sekcija ANSWER. Pri reverse poizvedbi moraš dobiti PTR zapis.

Kaj moraš opaziti

Odgovori morajo vračati laboratorijske naslove in imena.

Če ne dela, preveri

  • Če odgovori prihajajo od napačnega strežnika, dodaj @192.168.56.10 v dig ukaz, da izrecno vprašaš svoj BIND.
Preverjanje delovanja
  • [ ] BIND9 je nameščen in teče
  • [ ] forward cona lab.local deluje
  • [ ] reverse cona za 192.168.56.0/24 deluje
  • [ ] klient uporablja strežnik kot DNS resolver
  • [ ] dig in nslookup vračata pravilne odgovore
Vprašanja za razmislek
  1. Zakaj je DNS pomemben, če že poznamo IP naslove?
  2. Kaj je razlika med A in PTR zapisom?
  3. Zakaj preverjamo cono z named-checkzone?
  4. Kaj počne MX zapis?
Dodatni izziv

Dodaj nov zapis intranet.lab.local za strežnik, povečaj serial v SOA zapisu, reloadaj BIND in preveri, da novo ime deluje s klienta.

Mini povzetek

Po tej vaji moraš znati na kratko razložiti, kaj je vloga servisa vzpostavitev dns strežnika v omrežju, kateri proces ali konfiguracija ga omogoča in kako ga preverimo s klienta.