Skip to content

DHCP strežnik

Učni list 4: Vzpostavitev DHCP strežnika

Namen vaje

Tvoja naloga je, da vzpostaviš DHCP strežnik in vidiš razliko med statično in dinamično omrežno konfiguracijo.

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š, kaj je DHCP in zakaj ga uporabljamo
  • znaš nastaviti isc-dhcp-server
  • znaš določiti obseg naslovov in DNS parametre
  • znaš na klientu obnoviti najem naslova
  • znaš prebrati datoteko z DHCP najemi
Potrebna oprema in predznanje
  • strežnik ima statični naslov na internem omrežju
  • DNS strežnik že deluje ali vsaj poznamo njegov naslov
  • razumeš pojem IP naslov, maska in nameserver
Teorija v ozadju

DHCP pomeni Dynamic Host Configuration Protocol. Njegova naloga je, da klientom samodejno dodeli IP naslov in dodatne parametre, kot so DNS strežnik, domena in včasih tudi privzeti prehod.

Klasični potek dodelitve je DORA: Discover, Offer, Request, Acknowledge. Klient najprej išče DHCP strežnik, strežnik ponudi naslov, klient ga zahteva, strežnik pa najem potrdi.

DHCP zmanjšuje ročno delo in napake. Če imaš 30 računalnikov, je ročno vpisovanje naslovov počasno in polno možnosti za konflikt. DHCP to centralizira.

Na kaj je treba paziti
  • DHCP strežnik mora delovati na pravem vmesniku. Če ga vežeš na napačen vmesnik, klient ne bo dobil naslova.
  • Strežniku ne dodeljuj dinamičnega naslova iz istega obsega, če ta naslov že statično uporabljaš.
  • V Host-Only omrežju privzeti prehod pogosto ni potreben, ker klienti na tem vmesniku komunicirajo znotraj istega segmenta. Dodaj ga šele, ko v laboratoriju res obstaja naprava, ki promet usmerja naprej.

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 DHCP strežnik

Kaj narediš

Na strežniku namesti paket isc-dhcp-server.

Ukazi

sudo apt update
sudo apt install isc-dhcp-server -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 isc-dhcp-server -y

  • Razčlenitev sintakse:
  • install namesti navedene pakete: isc-dhcp-server.
  • -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/default/isc-dhcp-server, /etc/dhcp/dhcpd.conf
  • Procesi/storitve: isc-dhcp-server
  • Porti: 67/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

Paket namesti servis, ki bo poslušal DHCP zahteve klientov na UDP portu 67.

Kaj se dogaja v ozadju

DHCP uporablja broadcast komunikacijo, ker klient še nima naslova in v začetni fazi ne ve, komu natančno naj pošlje zahtevo.

Kaj moraš opaziti

Po namestitvi servis morda še ne bo deloval, ker nima pravilno nastavljenega vmesnika in obsega.

Če ne dela, preveri

  • To, da je servis po namestitvi v failed stanju, je pri DHCP pogosto normalno, dokler ne dopolniš konfiguracije.
2. Določi, na katerem vmesniku bo DHCP strežnik poslušal

Kaj narediš

Odpri privzeto datoteko in zapiši interni Host-Only vmesnik.

Ukazi

sudo nano /etc/default/isc-dhcp-server
Mikro razlaga ukazov

Ukaz 1: sudo nano /etc/default/isc-dhcp-server

  • Razčlenitev sintakse:
  • nano odpre besedilno datoteko v terminalskem urejevalniku.
  • Odpira se datoteka /etc/default/isc-dhcp-server. Č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/default/isc-dhcp-server, /etc/dhcp/dhcpd.conf
  • Procesi/storitve: isc-dhcp-server
  • Porti: 67/UDP
  • 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

INTERFACESv4="enp0s8"

Kaj ta korak pomeni

S tem poveš, da DHCP ne sme poslušati povsod, ampak samo na laboratorijskem internem omrežju.

Kaj se dogaja v ozadju

DHCP strežnik na napačnem omrežju je recept za kaos. V produkciji lahko tak strežnik uporabnikom razdeli napačne nastavitve in sesuje omrežje.

Kaj moraš opaziti

V datoteki mora biti naveden pravi interni vmesnik strežnika.

Če ne dela, preveri

  • Če ne veš, kateri vmesnik je pravi, se vrni na ip a in preveri, kateri nosi naslov 192.168.56.10.
3. Nastavi glavno DHCP konfiguracijo

Kaj narediš

V datoteki dhcpd.conf določi laboratorijsko omrežje, obseg najemov in DNS parametre.

Ukazi

sudo nano /etc/dhcp/dhcpd.conf
Mikro razlaga ukazov

Ukaz 1: sudo nano /etc/dhcp/dhcpd.conf

  • Razčlenitev sintakse:
  • nano odpre besedilno datoteko v terminalskem urejevalniku.
  • Odpira se datoteka /etc/dhcp/dhcpd.conf. Č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

authoritative;
default-lease-time 600;
max-lease-time 7200;

subnet 192.168.56.0 netmask 255.255.255.0 {
    range 192.168.56.100 192.168.56.150;
    option domain-name "lab.local";
    option domain-name-servers 192.168.56.10;
}

Opomba

V tem primeru namenoma ni vrstice option routers .... V klasičnem VirtualBox Host-Only laboratoriju klient navadno ne potrebuje gatewaya na tem vmesniku, ker promet ostaja znotraj istega omrežja. Če kasneje uvedeš pravo usmerjanje v drugo omrežje, takrat dodaš tudi prehod.

Kaj ta korak pomeni

S tem določiš, kateri naslovi se lahko delijo klientom. Poleg IP-ja klient dobi tudi podatek, kateri DNS uporablja in katera lokalna domena velja.

Kaj se dogaja v ozadju

DHCP ne daje samo IP naslova. Daje cel paket nastavitev, s katerim klient postane uporaben član omrežja.

Kaj moraš opaziti

Naslov 192.168.56.10 je izven dinamičnega obsega, zato ostane rezerviran za strežnik.

Če ne dela, preveri

  • Če v obseg dodaš naslov strežnika ali klientov statični naslov, tvegaš konflikt IP naslovov.
4. Ponovno zaženi servis in preveri stanje

Kaj narediš

Restartaj DHCP strežnik in preveri, ali je pripravljen.

Ukazi

sudo systemctl restart isc-dhcp-server
sudo systemctl status isc-dhcp-server
Mikro razlaga ukazov

Ukaz 1: sudo systemctl restart isc-dhcp-server

  • Razčlenitev sintakse:
  • restart ustavi in ponovno zažene enoto isc-dhcp-server. 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/default/isc-dhcp-server, /etc/dhcp/dhcpd.conf
  • Procesi/storitve: isc-dhcp-server
  • Porti: 67/UDP
  • Kaj pričakuješ kot rezultat: Poišči en jasen, preverljiv učinek.

Ukaz 2: sudo systemctl status isc-dhcp-server

  • Razčlenitev sintakse:
  • systemctl upravlja storitve v systemd.
  • status isc-dhcp-server pokaže, ali je enota isc-dhcp-server 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/default/isc-dhcp-server, /etc/dhcp/dhcpd.conf
  • Procesi/storitve: isc-dhcp-server
  • Porti: 67/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

Servis mora po novi konfiguraciji prebrati datoteko in začeti poslušati na izbranem vmesniku.

Kaj se dogaja v ozadju

Ko teče, čaka na DHCP Discover sporočila in je pripravljen deliti najeme.

Kaj moraš opaziti

Pričakuješ active (running).

Če ne dela, preveri

  • Če servis ne steče, preglej journalctl -u isc-dhcp-server in preveri sintakso v dhcpd.conf.
5. Na klientu preklopi interni vmesnik na DHCP

Kaj narediš

Na klientu spremeni netplan tako, da interni vmesnik ne uporablja več statičnega naslova, ampak DHCP.

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: true

Kaj ta korak pomeni

S tem klientu rečeš: “Ne odloči se sam. Vprašaj DHCP strežnik.”

Kaj se dogaja v ozadju

Ob aktivaciji vmesnika klient pošlje broadcast DHCP Discover in čaka na odgovor strežnika.

Kaj moraš opaziti

Po netplan apply lahko klient že sam dobi naslov.

Če ne dela, preveri

  • Če hočeš postopek videti bolj nazorno, uporabi spodnji korak z ročnim sproščanjem in ponovnim zahtevkom najema.
6. Na klientu sprosti in znova zahtevaj najem

Kaj narediš

Na klientu ročno sprosti star najem in zahtej novega.

Ukazi

sudo dhclient -r enp0s8
sudo dhclient -v enp0s8
ip a
Mikro razlaga ukazov

Ukaz 1: sudo dhclient -r enp0s8

  • Razčlenitev sintakse:
  • dhclient je DHCP klient.
  • -r sprosti trenutni DHCP najem na vmesniku enp0s8. To je uporabno, ko želiš pridobiti nov naslov od začetka.
  • Kaj se zgodi po pritisku Enter: DHCP klient sproži pogajanje s DHCP strežnikom in lahko zamenja naslov, prehod, DNS ter čas najema.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: Vmesnik pokaže naslov iz pričakovanega omrežja, po možnosti tudi obnovljen DNS in prehod.

Ukaz 2: sudo dhclient -v enp0s8

  • Razčlenitev sintakse:
  • -v vklopi podrobnejši izpis pogajanja DHCP.
  • Klient bo na vmesniku enp0s8 znova poskušal dobiti naslov, masko, prehod in DNS podatke.
  • Kaj se zgodi po pritisku Enter: DHCP klient sproži pogajanje s DHCP strežnikom in lahko zamenja naslov, prehod, DNS ter čas najema.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: Vmesnik pokaže naslov iz pričakovanega omrežja, po možnosti tudi obnovljen DNS in prehod.

Ukaz 3: ip a

  • Razčlenitev sintakse:
  • ip je sodobno orodje za delo z omrežnimi vmesniki.
  • a je skrajšano za address in pokaže naslove, vmesnike ter njihovo stanje.
  • 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: Vmesnik pokaže naslov iz pričakovanega omrežja, po možnosti tudi obnovljen DNS in prehod.
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

-r sprosti obstoječi najem, -v pa v pogovornem načinu pokaže celoten postopek pridobivanja novega naslova.

Kaj se dogaja v ozadju

To je najlepši način, da dejansko vidiš DHCP izmenjavo in ne samo končnega rezultata.

Kaj moraš opaziti

Klient mora dobiti naslov iz obsega 192.168.56.100–150.

Če ne dela, preveri

  • Če najema ni, preveri, ali klient in strežnik uporabljata isti interni segment in ali DHCP servis posluša na pravem vmesniku.
7. Preveri lease datoteke na strežniku in klientu

Kaj narediš

Na strežniku preglej evidenco izdanih najemov, na klientu pa lokalni zapis prejetega najema.

Ukazi

sudo cat /var/lib/dhcp/dhcpd.leases
sudo cat /var/lib/dhcp/dhclient.leases
Mikro razlaga ukazov

Ukaz 1: sudo cat /var/lib/dhcp/dhcpd.leases

  • Razčlenitev sintakse:
  • cat z administratorskimi pravicami prebere datoteko /var/lib/dhcp/dhcpd.leases.
  • 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 cat /var/lib/dhcp/dhclient.leases

  • Razčlenitev sintakse:
  • cat z administratorskimi pravicami prebere datoteko /var/lib/dhcp/dhclient.leases.
  • Kaj se zgodi po pritisku Enter: DHCP klient sproži pogajanje s DHCP strežnikom in lahko zamenja naslov, prehod, DNS ter čas najema.
  • Na kaj ta ukaz vpliva:
  • Ugotovi, ali ukaz stanje samo preveri ali ga spremeni.
  • Kaj pričakuješ kot rezultat: Vmesnik pokaže naslov iz pričakovanega omrežja, po možnosti tudi obnovljen DNS in prehod.
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

S tem vidiš, da DHCP ni magija. Obstaja dejanska evidenca, kateri naslov je bil komu dodeljen in za koliko časa.

Kaj se dogaja v ozadju

Strežnik si zapomni izdane najeme, klient pa shrani podatke o zadnjem prejetem najemu.

Kaj moraš opaziti

V lease datoteki strežnika mora biti viden naslov, dodeljen klientu.

Če ne dela, preveri

  • Če datoteke ni ali je prazna, klient verjetno sploh ni uspel dobiti najema.
8. Preveri tudi DNS parametre, prejete prek DHCP

Kaj narediš

Na klientu preveri, ali je kot DNS strežnik nastavljen 192.168.56.10.

Ukazi

resolvectl status || systemd-resolve --status
Mikro razlaga ukazov

Ukaz 1: resolvectl status || systemd-resolve --status

  • Razčlenitev sintakse:
  • Ukaz resolvectl status || systemd-resolve --status izvedi natančno tako, kot je zapisan, nato pa preveri učinek na storitev, datoteko ali mrežno povezavo.
  • 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

Tu se lepo vidi povezava med DHCP in DNS. DHCP ne deli le IP-ja, ampak klientu tudi pove, kateri DNS strežnik naj uporablja.

Kaj se dogaja v ozadju

V realnem omrežju uporabnik praviloma ne vpisuje DNS strežnika ročno. To zanj uredi DHCP.

Kaj moraš opaziti

Med DNS strežniki moraš videti 192.168.56.10.

Če ne dela, preveri

  • Če vidiš stare podatke, je možno, da klient uporablja predpomnjeno stanje ali drug aktivni vmesnik.
Preverjanje delovanja
  • [ ] isc-dhcp-server je nameščen in aktiven
  • [ ] servis posluša na internem vmesniku
  • [ ] klient dobi naslov iz nastavljenega obsega
  • [ ] klient prejme domeno lab.local in DNS strežnik 192.168.56.10
  • [ ] znaš razložiti DORA postopek
Vprašanja za razmislek
  1. Zakaj v omrežju pogosto uporabljamo DHCP?
  2. Kaj pomeni DORA?
  3. Zakaj strežniku ne damo dinamičnega naslova iz istega poola?
  4. Katera datoteka na strežniku prikazuje izdane najeme?
Dodatni izziv

Dodaj rezervacijo, da klient z določeno MAC adreso vedno dobi isti naslov, npr. 192.168.56.110. Nato sprosti najem in preveri, da res dobi rezervirani naslov.

Mini povzetek

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