Dhclient

From ICO wiki

Autor

Priit Varul

Rühm A21

Eesti Infotehnoloogia Kolledž 2013

Täiendajad

Kristjan Indlo A31

Ver 2: 2014-03-17

Sissejuhatus

Järgnevas kirjatükis räägin mis kujutab endast selline asi nagu "dhclient". Milleks ta olemas on, mis funktsioone ta täidab ja veidi ka süntaksi ning näiteid.

dhclient - ehk Dynamic Host Configuration Protocol (DHCP) Client.

Tarkvara dhclient (DHCP client) Linuxi operatsioonisüsteemis, mis võimaldab konfigureerida ühte või rohkemaid liideseid kasutades DHCP protokolli, BOOTP protokolli või kui need protokollid peaksid ebaõnnestunma, siis staatiliselt aadresse määrates. Dhclienti tarkvara eeldab kasutajalt mõningaid eelteadmisi käsureal toimetamiseks.
DHCP protokoll võimaldab host'il keskse serveriga ühendada kus hoitakse listi IP aadressidega, mis võidakse määrata ühele või rohkematele subnetitele. DHCP klient pöördub aadressi pool'i poole kus on IP aadressid mille abil võrgus suhelda. Sealjuures annab DHCP protokoll kliendile olulist informatsiooni võrgu kohta kuhu ta ühendatud on. Näiteks nagu default ruuteri asukoht-, nimeserveri asukoht võrgus jne.

Viide lõigule: Kasutatud materjal 1

Eesmärk

Süsteemi käivitades loeb dhclient dhclient.conf failist liidese konfiguratsiooniks vajalikke juhendeid. Peale seda saab dhclient listi kõikidest võrguliidestest mis on antud süsteemi poolt seadistatud. Iga liidese jaoks korjab dhclient eraldi DHCP protokollist konfiguratsiooni.

Selleks, et hoida silma peal DHCP poolt välja laenatud aadressidel ehk lease'del kui süsteem käivitub või restardib, hoiab dhclient listi lease'de kohta failis dhclient.leases. Süsteemi käivitudes peale dhclient.conf faili lugemist, loeb dhclient dhclient.lease failist kas on kord juba antud liidestele IP'd või ei. Kui on, siis läheb sama IP tagasi mis enne restarti süsteemil oli.

Aja jooksul võib juhtuda, et dhclient.leases fail läheb väga suureks, selle vältimiseks loob dhclient aeg ajalt uue dhclient.leases faili toetudes enda andmebaasile. Vana versioon dhclient.leases failist säilitatakse nime dhclient.leases~ all kuni dhclient uuesti andmebaasi üle kirjutab.

Vanu lease hoitakse alles juhuks kui DHCP server peaks mingil põhjusel kättesaamatu olema. Selle puhul, võetakse vanad leased dhclient.leases failist, mis ei ole veel aegunud, ja kui on kindlaks tehtud, et lease on endiselt kehtiv, kasutatakse seda kuni ta aegub võib kuni DHCP server uuesti tööle hakkab.

Viide lõigule: Kasutatud materjal 2

Üldised dhclienti käsklused

Käsurea kaudu antakse ette dhclientile missugust võrguliidest peaks ta konfigureerima hakkama.
Käsurealt sisestatakse neid näiteks käsuga
dhclient -b
dhclient -p /var/run/dhclient.interface.seadistus

Valikud on järgmised:

-b Sunnib dhclienti kohese tahaplaanile liikumise.

-c file Täpsustab vahelduva faili asukoha konfiguratsiooni failile.

-d Sunnivad dhclienti alati esiplaanil töötama. Dhclient töötab vaikimisi senikaua esiplaanil kuni liides on konfigureeritud. Kui see tehtud läheb dclient tahaplaanile.

-l file Täpsustab vahelduva faili asukoha lease failile.

-p file Täpsustab vahelduva faili asukoha PID failile. Vaikimisi asub fail /var/run/dhclient.interface.pid.

-q Sunnib dhclienti käivitamisel nii öelda vaikima.

-u Sunnib dhclienti tundmatute lease'de tagasilükkamiseks. Vaikimisi käitub dhclient vastupidi ja aksepteerib tundmatud lease'd.

Viide lõigule: Kasutatud materjal 3

Dhclient.conf

Nagu ülal öeldud sisaldab dhclient.conf fail dhclienti konfiguratsiooni intot. Faili sisu ja konfiguratsiooni on võimalik muuta nii käsurealt kui ka graafilise liidesega faili avades. Fail võib sisaldada lisatabeleid ja eraldatud ridu korrektse vormistuse pärast. Võtmesõnad failis on väikeste tähtedega. Kommentaarid võivad olla failis kirjutatud kugu igale poole. Kommentaarid algavad märgiga "#" ja lõpevad rea lõpuga.

Dhclient.conf failiga konfigureeritakse kliendi käitumist mitmel viisil nagu näiteks: protokolli ajastus, serverist küsitud informatsioon, vaikimisi seaded jne. Seda faili saab ka täita aadressidega käsitsi kasutamaks võrku millel pole DHCP serverit küljes.

Viide lõigule: Kasutatud materjal 4

Protokolli ajastamine

Kliendi ajaline käitumine ei pea olema kasutaja poolt konfigureeritud ja juhul kui seda ka kasutaja poolt tehtud pole, kasutatakse vaikimisi seaded. Kuigi on olemas mõned käsud mille abil ajalist käitumist vajadusel ise seadistada:


timeout time; timeouti teadaanne määrab ära ajavahemiku mille jooksul lubab ta kliendil endale aadressi saada, kui selle aja jooksul pole aadressi saadud otsustab dhclient, et server on kättesaamatu.

retry time; Kui klient ei saanud serveriga ühendust ja endale aadressi, määrab see käsk aja millal dhclient endale uuesti aadressi serveri poolt küsima hakkab. Vaikimisi on selleks ajaks 5 minutit.

select-timeout time; Võib juhtuda et võrgus on kaks DHCP serverit mis erinevaid aadresse jagavad. Select-timemout time on mõeldud selleks, kui klient saadab requesti mitmele serverile ja kui ta sätestatud aja jooksul pole eelistatud aadressi kätte saanud valib ta esimese pakkumise mis kohale jõuab. Vaikimisi on select-timeout null sekundit.

reboot time; Kui klienti restarditakse püüab ta uuesti endale aadressi saada. Reboot käsklus annab ette aja mis peab mööduma, enne kui klient uuesti uue aadressi nõude annab. Vaikimisi on see 10 sekundit ja selle aja jooksul peaks üldiselt klient endale uuesti sama aadressi kätte saama.

backoff-cutoff time; Klient kasutab backoff algoritmi, kui peaks mitmed kliendid end samal ajal seadistada püüdma. Backoff-cutoff määrab ära maksimaalse aja mille jooksul on kliendil lubatud seadistusest taganeda. Vaikimisi on selleks 2 minutit.

initial-interval time; On ajavahemik esimesel korral serveri pöördumisel teise korraga kui ta pole aadressi esimese korraga saanud. Iga korraga suurendatakse kahe korra aja intervalli ja kui see läheb suuremaks kui bacoff-cutoff on, loobub klient serveri poole pöördumast. Vaikimisi on see 10 sekundi peale määratud.

Viide lõigule: Kasutatud materjal 4

Lease nõuded ja taotlused

DHCP protokoll lubab kliendil nõuda informatsiooni serverilt. Samuti lubab protokoll kliendil serveri poolt pakutavast keelduda, kui klient antud informatsiooni ei vaja.

request [option] [, ... option]; Teeb kindlaks, et ükskõik mis server temaga ühendust võtab, aksepteerib ta ainult väärtusi mis on requestis ehk küsitud osas kirjas.

require [option] [, ... option]; Võimalik määrata kindlad väärtused mida klient soovib ja klient aksepteerib ainult seda serverit kes tema nõudmisi täidab.

send { [option declaration] [, ... option declaration] } Send väärtus võimaldab kliendil saata täpsed väärtused serverile mida klient vajab.


Viide lõigule: Kasutatud materjal 4

Näide dhclient.conf

Järgnev seadistus on kasutatud arvutis mille ip alias on 192.5.5.213 maskiks 255.255.255.255 ja millel on üks interface. Aeg mille jooksul klient endale aadressi saab nõuda on 60 sekundit. Peale kliendi restarti on määratud 10 sekundit ajaks peale mida klient uuesti aadressi nõudma hakkab. Kui klient eelistatud serveri poolt 5 sekundi jooksul aadressi ei saa, lepib ta sellega mis tuleb esimesena, juhul kui näiteks võrgus on 2 DHCP serverit. Ajavahemik esimesel korral serveri poole pöördumisel ja teisel korral on 2 sekundit. Kui kliendile peaks serveri poolt tulema aadress 192.33.137.209 siis ta lükkab tagasi selle. Võrguliidese nimega "ep0" seadistus ütleb, et liides saadaks serverile enda nimeks andare.fugue.com, MAC aadressiks on 1:0:a0:24:ab:fb:9c. Aadressi aegumise aeg on 3600 sekundit. prepend domain-name-servers 127.0.0.1 ütleb, et DNS töötab meie enda masinas localhostis. Requesti osa ütleb ära, mis väärtusi serverilt küsitakse. Skriptide asukoha leiab /etc/dhclient-script kaustast.

timeout 60; 
	   retry 60;
	   reboot 10;
	   select-timeout 5;
	   initial-interval 2;
	   reject 192.33.137.209;

	   interface "ep0" {
	       send host-name "andare.fugue.com";
	       send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
	       send dhcp-lease-time 3600;
	       prepend domain-name-servers 127.0.0.1;
	       request subnet-mask, broadcast-address, time-offset, routers,
		       domain-name, domain-name-servers, host-name;
	       require subnet-mask, domain-name-servers;
	       script "/etc/dhclient-script";
	       
	   }

	   alias {
	     interface "ep0";
	     fixed-address 192.5.5.213;
	     option subnet-mask 255.255.255.255;
	   }

Viide lõigule: Kasutatud materjal 4

Dhclient.leases

DHCP kliendi lease andmebaas.

Kirjeldus

Selles failis hoitakse püsivat andmebaasi leaside kohta. Faili sisu ja konfiguratsiooni on võimalik muuta nii käsurealt kui ka graafilise liidesega faili avades, täpselt samuti nagu dhclient.conf failiga.

Faili asukoht

/var/lib/dhclient/dhclient.leases

Viide Dhclient.leases: Kasutatud materjal 5

OMAPI

DHCP client võimaldab mõningaid abivahendeid kontrollimaks ja muutmaks DHCP kliendi seadeid, ilma et peaks klienti kinni panema. Seesugust võimalust pakub meile OMAPI, see on API mille abil on võimalik objektidega manipuleerida. OMAPI kliendid ühendavad kliendiga kasutades TCP/IP'd, autentimist ja seejärel kuvada kliendi hetkelist staatust ja olekut sealjuures võimaldades seda muuta.

Viide lõigule: Kasutatud materjal 6

Kuidas pärida spetsiifilist IP-Aadressi[1]

DHCP server reserveerib IP-aadressi kliendile, kes seda palus. Üldiselt määrab DHCP server talle ette määratud vahemiku järgi, kuid klient saab ka küsida spetsiifilist aadressi(sellest vahemikust).

Seda saab teha originaalkonfiguratsioonifaili muutes, kuid soovitatud on teha uus lihtne konfiguratsioonifail.

Põhjus on selles, et originaalkonfiguratsioonifail küsib väga palju erinevaid parameetreid ja sinu nõutav aadress võib olla mingi sättega üle kirjutatud.


Loome uue konfiguratsioonifaili samasse kataloogi, kus asub originaalkonfiguratsioon.

nano /etc/dhcp/<uue konfiguratsioonifaili nimi>

Sinna lisame ainult ühe rea

send dhcp-requested-address <nõutav IP-Aadress>;

Salvestame konfiguratsioonifaili ja kasutame dhclient programmi äsja loodud konfiguratsioonifailiga. Selleks kasutame võtit -cf.

NB! eth1 on meie laborites konfigureeritav võrguliides, veendu, et kasutaksid õiget võrguliidest!

dhclient -cf /etc/dhcp/<uue konfiguratsioonifaili nimi> eth1

Kokkuvõte

Käesaolevas kirjatöös käsitlesin tarkvara mille nimeks on dhclient, mis võimalusi ta pakub ja mida ta endast kujutab. Tõin välja põhilised funktsioonid ja rakendused antud tarkvara kohta. Ütleks Dhclient on hea utiliit võrguseadistuste kontrollimiseks ja modifitseerimiseks. Tarkvara ei ole liialt keerukas ja sobib ka tavakasutajale. Võimalusi samas on palju, mis teeb antud tarkvara süsteemi administraatori jaoks meeldivaks.


Kasutatud kirjandus

1) http://www.computerhope.com/unix/dhclient.htm#01
2) http://linux.about.com/library/cmd/blcmdl8_dhclient.htm
3) http://www.freebsd.org/cgi/man.cgi?query=dhclient&sektion=8
4) http://www.freebsd.org/cgi/man.cgi?query=dhclient.conf&sektion=5
5) http://www.gsp.com/cgi-bin/man.cgi?section=5&topic=dhclient.leases
6) http://linux.die.net/man/3/omapi
7) http://forums.fedoraforum.org/showthread.php?t=181433