User Tools

Site Tools


upoznavanje_sa_dhcp

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

upoznavanje_sa_dhcp [2017/04/28 10:25] (current)
Line 1: Line 1:
 +\\
 +U nekoliko sledecih clanaka, pricacemo o DHCP protokolu: kako radi i kako konfigurisati DHCP klijent i DHCP server koristeci FreeBSD. Ako ste ikada povezivali kompjuter sa mrezom, onda ste verovatno culi za DHCP, Dynamic Host Configuration Protocol. Kao sto to ime sugerise, ovaj protocol je dizajniran da dinamicki konfigurise host sa TCP/IP informacijama koje su mu neophodne za komunikaciju na mrezi.
  
 +Alternativa dinamickom adresiranju je staticko adresiranje. Staticko adresiranje je kada manuelno ukucate IP adresu, mreznu masku, i adresu default gateway-a. FreeBSD sistemi podrzavaju i staticko i dinamicko adresiranje. Generalno, koristicete staticko adresiranje da podesite malu kucnu mrezu  i dinamicko adresiranje kada se povezujete na Internet. ​
 +====== Upoznajte svoje interfejse ======
 +
 +Pre koriscenja bilo kog tipa adresiranja,​ morate da odredite FreeBSD ime za vasu mreznu karticu. Da bi ste to uradili, koristite ifconfig komandu: ​
 +
 +<​code>​$ ifconfig -a
 +rl0: flags=8802<​BROADCAST,​SIMPLEX,​MULTICAST>​ mtu 1500
 +    ether 00:​05:​5d:​d2:​19:​b7
 +    media: Ethernet autoselect
 +ed0: flags=8843<​UP,​BROADCAST,​SIMPLEX,​MULTICAST>​ mtu 1500
 +    ether 00:​50:​ba:​de:​36:​33
 +    media: Ethernet autoselect
 +lp0: flags=8810<​POINTOPOINT,​SIMPLEX,​MULTICAST>​ mtu 1500
 +lo0: flags=8049<​UP,​LOOPBACK,​RUNNING,​MULTICAST>​ mtu 16384
 +    inet 127.0.0.1 netmask 0xff000000</​code>​
 +Komanda ifconfig ce prikazati i fizicke i virtualne interfejse. Prepoznacete Ethernet interfejse zato sto oni imaju "​ether"​ ili MAC adresu. FreeBSD ime za adapter ce imati 2 ili 3 slova praceno sa brojem. U ovom primeru, postoje dve Ethernet kartice; jedna je rl0 i druga je ed0. Postoje i dva virtualna interfejsa, lp0 i lo0. Prepoznacete 127.0.0.1 kao "​loopback adresu",​ sto znaci da je lo0 ime loopback virtualnog interfejsa. ​
 +
 +Vecina interfejsa ima svoj unos u sekciji 4 uputstva. U ovom slucaju, probacemo man 4 rl, man 4 ed, man 4 lp, i man 4 lo za vise informacija o svakom interfejsu. Zapamtite da se broj ne ukljucuje kada se odredjuje ime interfejsa sa man. Umesto toga, broj interfejsa odredjuje koliko je interfejsa tog tipa instalirano;​ brojanje pocinje od 0. Na primer, ako imamo dve realtek mrezne kartice, onda ce se one zvati rl0 i rl1. (To je "​ar-el",​ ne "​ar-jedan"​.)
 +====== Staticke adrese ======
 +
 +Da dodelite staticku IP adresu i mreznu masku rl0 interfejsu, postacemo superuser i koristiti ifconfig ovako: ​
 +
 +  # ifconfig rl0 192.168.10.1 255.255.255.0
 +
 +Kada koristite ovu komandu, ne zaboravite da specificirate tacno ime interfejsa za vas sistem ili ce te dobiti error poruku. Da vidite da se komanda uspesno izvrsila, upitajte ifconfig da ogranici svoje informacije na jedan odredjeni interfejs, ne koristeci a opciju da vidite sve interfejse: ​
 +<​code>​
 +# ifconfig rl0
 +
 +rl0: flags=8802<​BROADCAST,​SIMPLEX,​MULTICAST>​ mtu 1500
 + inet 192.168.10.1 netmask 0xffffff00 broadcast 255.255.255.0
 + ether 00:​05:​5d:​d2:​19:​b7
 +</​code>​
 +Ako vas kompjuter zahteva i adresu default gateway-a, koristite route komandu na ovaj nacin: ​
 +
 +  # route add default 192.168.10.25
 +
 +Da potvrdite prmene: ​
 +
 +  # netstat -rn |grep G
 +  Destination ​       Gateway ​           Flags    Refs      Use  Netif Expire
 +  default ​           192.168.10.25 ​     UGSc        5        0    rl0
 +  192.168.10.1 ​      ​127.0.0.1 ​         UGHS        0        2    lo0
 +
 +Primeticete da smo koristili grep da pretrazimo ruting tabelu za G indikator, koja predstavlja gateway indikator. Ostali indikatori od znacaja su U, koji oznacava da je gateway podignut. Ovo je uvek dobra stvar za gateway. ​
 +Ovaj host je sada konfigurisan,​ ali se ove konfiguracije nece zadrzati ako restartujete sistem. Neprikladno je da kucate vasu staticku konfiguraciju svaki put kada restartujete kompjuter. Srecom, mozete reci svom FreeBSD sistemu da zadrzi ove konfiguracije tako sto cemo ih ukljuciti u sistemski startup konfiguracioni fajl. Na ovom hostu, dodacemo sledece linije u /​etc/​rc.conf: ​
 +
 +  ifconfig_rl0="​inet 192.168.10.1 netmask 255.255.255.0"​
 +  defaultrouter="​192.168.10.25"​
 +
 +Budite pazljivi kada menjate ovaj fajl, ukljucujuci i to da navodnike koristite ispravno. Da testirate vase promene, sledeca komanda ne bi trebala da ispise nikakve greske: ​
 +
 +  # /​etc/​netstart
 +====== Dinamicke adrese ======
 +
 +Nije preterano tesko da uredite nekoliko fajlova ako imate samo jedan kompjuter ili malu mrezu sa nekoliko kompjutera. Ali, ako administrirate vecu mrezu, podesnije je da koristite DHCP iz dva razloga. Prvo, kako se broj fajlova koje trebate da uredite povecava, povecavaju se i sanse da napravite neku gresku u pisanju i mogucnost da dva kompjutera greskom dobiju istu IP adresu. Druo, sto vise kompjutera budete imali, to je vise nezgodnije da morate da sednete za svaki od njih i manuelno ukucate njihove informacije o IP adresiranju. ​
 +
 +Ako je vas sistem prikacen na mrezu koja koristi DHCP --na primer Internet—mozete iskoristiti prednosti FreeBSD-ovog ugradjenog DHCP klijenta. U mom primeru, moja druga rmezna kartica (ed0) je prikacena na moj kablovski modem. Da bih dobio IP adresu od DHCP servera mog ISP-a, koristicu sledecu komandu: ​
 +
 +  # dhclient ed0
 +
 +Da vidimo dali radi: 
 +
 +  # ifconfig ed0
 +  ​
 +  ed0: flags=8843<​UP,​BROADCAST,​SIMPLEX,​MULTICAST>​ mtu 1500
 +  inet 2.2.2.2 netmask 0xffffff00 broadcast 255.255.255.255
 +  ether 00:​50:​ba:​de:​36:​33
 +
 +Da bi konfigurisali ovaj sistem da uvek koristi dinamicko adresiranje,​ dodacemo sledecu liniju u /​etc/​rc.conf: ​
 +
 +  ifconfig_ed0="​DHCP"​
 +====== DHCP Terminologija ======
 +
 +Morate se upoznati sa DHCP terminologijom da bi mogli da podesavate dhclient ili da bi kreirali vas licni DHCP server koji cete koristiti na vasoj mrezi.
 +
 +Kada DHCP klijent prima konfiguracione informacije od DHCP servera, one dolaze u formi "​lease-a"​. Ovo znaci da konfiguracija klijenta ostaje vazeca za neki ograniceni vremenski period, konfigurisanim na DHCP serveru. Informacije koje su sadrzane u tom lease-u su isto tako konfigurisane na serveru. DHCP server moze da pruzi mnogo vise informacija nego samo IP adresu hosta, mreznu masku, i default gateway. Moze da pruzi informacije klijentu u vezi IP adresa za sledece tipove servera na mrezi: ​
 +
 +  *  cookie serveri ​
 +  *  DNS serveri
 +  *  finger serveri
 +  *  font serveri
 +  *  impress serveri
 +  *  IRC serveri
 +  *  log serveri
 +  *  lpr serveri
 +  *  NDS serveri
 +  *  WINS serveri
 +  *  NIS serveri
 +  *  NIS+ serveri
 +  *  NNTP serveri
 +  *  NTP serveri
 +  *  POP serveri
 +  *  resource location serveri
 +  *  SMTP serveri
 +  *  streettalks serveri
 +  *  swap serveri
 +  *  TFTP server name
 +  *  time servers ​
 +  *  uap serveri
 +  *  www serveri
 +
 +To je bas dosta servera. Isto tako, DHCP moze da podesi klijentov MTU, TTL, hostname, i jos dosta drugih parametara. Da vidite kompletnu listu, pogledajte man dhcp-options. ​
 +
 +Jednom kada DHCP klijent dobije lease, cuva ga u /​var/​db/​dhclient.leases. Evo jednog primera lease fajla: ​
 +<​code>​
 +lease {
 +  interface "​ed0";​
 +  fixed-address 2.2.2.2;
 +  option subnet-mask 255.255.240.0;​
 +  option routers 2.2.2.1;
 +  option domain-name-servers 2.2.2.94,​2.2.2.93,​2.2.2.46;​
 +  option broadcast-address 255.255.255.255;​
 +  option dhcp-server-identifier 2.2.2.21
 +  option host-name "​thishost";​
 +  option domain-name "​thisdomain.com";​
 +  renew 3 2003/4/2 00:22:38;
 +  rebind 6 2003/4/5 02:50:06;
 +  expire 6 2003/4/5 23:50:06;
 +}
 +</​code>​
 +Ako je dhclient radio neko vreme, primeticete da ce vas lease fajl imati dosta ovakvih sekcija koje pocinju sa lease { i zavrsavaju se sa zatvarajucom viticastom zagradom }. Informacije unutar viticastih zagrada je ustvari sam lease. Posto lease-vi ne traju vecno, svaki novi lease koji se dodeljuje DHCP klijentu se dodaje na kraju fajla. Vas trenutni lease ce biti na samom kraju fajla. Ako sam fajl postane prevelik, kopira se u /​var/​db/​dhclient.leases~ i zapocinje se novi /​var/​db/​dhclient.leases fajl. 
 +
 +Kako ovaj ceo lease process ustvari radi? Pretpostavimo za trenutak da je negde na vasoj mrezi propisno konfigurisan DHCP server. Ovaj server ce slusati na UDP portu 67, cekajuci lease zahteve od DHCP klijenata. Pretpostavimo i da imate potpuno nov DHCP klijent sa praznim /​var/​db/​dhclient.leases fajlom. Zapamtite, taj host je postao DHCP klijent kada ste dodali ovu liniju u /​etc/​rc.conf: ​
 +
 +  ifconfig_ed0="​DHCP"​
 +
 +Nista u toj liniji ne indicira IP adresu DHCP servera. Ovo je i zato sto u ovom momentu ed0 nema cak ni IP adresu; da je ima, ne bi ni morao da kontaktira sa DHCP serverom. ​
 +
 +Da bi kontaktirao DHCP server, ovaj host ce poslati specijalni paket poznat kao DHCPDISCOVER poruka. Posto host nezna IP adresu svog DHCP servera, on salje paket na broadcast adresu, 255.255.255.255,​ u nadi da ce je DHCP server videti i odgovoriti na nju. Ako ste upoznati sa umrezavanjem,​ znate da se broadcast paketi procesuiraju od svih hostova koji vide paket. Ali, samo ce DHCP server razumeti poruku u paketu zato sto je namenjena za UDP port 67. 
 +Trebate znati i da ruteri drop-uju broadcast pakete. Ovo za posledicu ima razgranavanje DHCP-a: ako na vasem subnet ili kablovskom segmentu ne postoji DHCP server, onda DHCP server na drugom subnetu nikada nece primiti taj broadcast. Dali ovo znaci da morate imati DHCP server za svaki subnet na vasoj mrezi? Srecom, ne. Umesto toga, koristicete nesto sto je poznato kao "bootp relay agent" da dostavite tu poruku do DHCP servera. Govoricemo vise o ovim relay agentima u nekoliko sledecih clanaka.
 +
 +U idealnom slucaju DHCP server ce primiti DHCPDISCOVER poruku. Kada je primi, proverice svoju databazu slobodnih lease-ova, odvajajuci jednu na stranu cekajuci potvrdu od hosta. Onda ce poslati DHCPOFFER poruku koja sadrzi detalje lease-a. Ova poruka se salje na DHCP klijent port, UDP 68. Trebalo bi da znate da DHCP koristi dva razlicita porta, jedan za klijenta i jedan za server. Moracete da znate oba broja tih portova ako postoje neki zastitni zidovi izmedju klijenta i servera. ​
 +
 +Kada klijent primi DHCPOFFER, potvrdice lease tako sto ce poslati DHCPREQUEST. Jos jednom, ovo se salje kao broadcast. Mogu ce je da je nekoliko DHCP servera videlo originalni zahtev i svaki je odgovorio sa razlicitom lease ponudom. Ovaj broadcast omogucava svim serverima ​ da vide koji ce lease klijent prihvatiti, tako da ce ovi ekstra serveri prestati da cuvaju lease za klijenta. Server sa uspesnim lease-om ce markirati ovaj lease kao izdat (leased). Poslace i DHCPACK koji indicira da klijent sada poseduje lease i dopusteno mu je da koristi te konfiguracione parametre.
 +Kada klijent primi DHCPACK, on upisuje sadrzaj lease-a u /​var/​db/​dhclient.leases i koristi izdate informacije da ucestvuje u TCP/IP mrezi.
 +
 +====== DHCP Vremenski Periodi ======
 +
 +Klijent zna da nemoze koristiti tu konfiguraciju zauvek. Vremenski rok lease-a je jasno oznacen u lease-u. Pogledajte zadnje tri linije pre } u lease-u koji smo uzeli kao primer: ​
 +
 +  renew 3 2003/4/2 00:22:38;
 +  rebind 6 2003/4/5 02:50:06;
 +  expire 6 2003/4/5 23:50:06;
 +
 +Videcete da ustvari postoje tri vremenska perioda: renew, rebind, i expire. Sintaksa za svaku liniju je 
 +
 +  dan godina/​mesec/​dan sat:​minut:​sekunda
 +
 +gde 0 predstavlja Nedelju. U ovom primeru, ovaj lease je spreman da se "​obnovi"​ u Utorak 2-gog Aprila, 2003 u 12:22:38 ujutru. ​
 +
 +Koja je razlika izmedju renew, rebind, i expire? Renew je poznat i kao T1 ili onda kada je izdato vreme na 50%. Kada se T1 desi, DHCP klijent ce poslati DHCPREQUEST do DHCP servera koji je dodelio lease. Primetite da sam lease oznacava adresu DHCP servera u ovoj liniji: ​
 +
 +  option dhcp-server-identifier 2.2.2.21
 +
 +Posto klijent zna adresu servera, ne mora da posalje broadcast. Ako sve protekne u redu, server ce primiti DHCPREQUEST i dati klijentu dozvolu da obnovi lease. Uopsteno, klijentu je dozvoljeno da ponovo koristi konfiguraciju za prvobitno vreme lease-a i sva tri vremena se resetuju da bi prihvatili novi lease period. ​
 +Ako klijent ne primi nikakvu poruku od DHCP servera, cekace za T2 ili kada se lease nalazi na 87.5%. Ovo je poznato i kao period ponovnog povezivanja (rebind period). Klijent ce opet poslati DHCPREQUEST,​ ali ce to ovoga puta biti broadcast. Uopsteno govoreci klijent pocinje da se brine i samo zeli da obnovi svoj lease period pre nego sto istekne. Nadajuci se da ce neki DHCP server odgovoriti, i opet ce sva tri vremenska perioda biti resetovana da bi predstavili novi lease period. ​
 +
 +Ako stvari ne proteknu kako treba, jadni DHCP klijent nece dobiti nikakvu poruku od nijednog DHCP servera. Kada vreme istekne, klijentu vise nije dozvoljeno da koristi svoju izdatu konfiguraciju i opet se vraca na pocetak. Jedini nacin da dobije lease ce biti da pocne od pocetka sa DHCPDISCOVER broadcastom. ​
 +Stvari rade malo drugacije ako restartujete vas kompjuter pre isteka bilo kog od ova tri vremenska perioda. Pri podizanju sistema, vas FreeBSD sistem ce potraziti adresu DHCP servera u svom /​var/​db/​dhclient.leases fajlu. Onda ce pokusati da kontaktira server da bi obnovio svoj lease. Ali, ako se desi da je DHCP server nedostupan, klijent ce proveriti dali ima lease kome nije istekao rok. Ako postoji, onda ce ping-ovati default ruter iz izdate adrese da vidi dali jos uvek radi. Ako ruter odgovori, sistem ce se podici sa adresom, i pokusace da kontaktira DHCP server u roku od 5 minuta da bi potvrdio lease. ​
 +
 +Postoje jos dve moguce DHCP poruke sa kojima se mozete susresti. Prva je DHCPNACK ili negativna potvrda. Ova poruka ce biti poslata od DHCP servera ako klijent zatrazi adresu koja vise nije vazeca. Ovo se obicno desava kada fizicki premestate kompjuter medju subnet-ima.
 +
 +Da bi ste sprecili ovu poruku, trebalo bi da sa klijenta posaljete DHCPRELEASE pre nego fizicki premestite kompjuter na drugi subnet. Da bi ste ovo uradili na vasem FreeBSD sistemu: ​
 +
 +  # dhclient -r ed0
 +
 +Uglavnom ovu komandu izdajete pre nego sto iskljucite sistem i premestite kompjuter. Ako nameravate da kompjuter ostavite upaljen, necete dobiti novu adresu zato sto ce -r i ugasiti dhclient proces. Ako zelite da obnovite lease, jednostavno restartujte proces: ​
 +
 +  # dhclient ed0
 +
 +====== Zakljucak ======
 +
 +Ovo sve je verovatno i vise nego sto ste mislili da ce te nauciti vezano za DHCP u jednom danu. U sledecem clanku, koncentrisacemo se na DHCP server i na konfiguracione informacije koje su potrebne da se lease-evi dodele DHCP klijentima. ​
 +
 +\\
 +\\
 +Izvor: http://​www.onlamp.com/​pub/​a/​bsd/​2003/​04/​17/​FreeBSD_Basics.html
upoznavanje_sa_dhcp.txt · Last modified: 2017/04/28 10:25 (external edit)