Dynamic Host Configuration Protocol

thumb|DHCPSvr, Një DHCP serverDynamic Host Configuration Protocol (DHCP) është një protokoll, i cili mundëson konfigurimin automatik të pajisjeve të lidhura në rrjetet IP. DHCP është i bazuar në protokollin Bootstamp (BOOTP), me dallimin se DHCP mundëson caktimin automatik të adresave të IP-së si dhe me disa veti tjera të përkufizuara në RFC 1533. DHCP lehtëson punën për administratorët e rrjetit meqenëse përjashton nevojën që secila pajisje e rrjetit të konfigurohet në veçanti. Kohëve të fundit DHCP zbatohet edhe në router-ët e thjeshtë që përdoren në shtëpi, gjë që e bën të lehtë shtimin e pajisjeve të reja në rrjetin e shtëpisë për personat që nuk kanë njohuri mbi rrjetet kompjuterike.

## Historia 
DHCP fillimisht është përkufizuar në RFC 1531 në vitin 1993 si zgjerim i protokollit BOOTP. Arsyeja e zgjerimit ishte nevoja për konfigurim automatik të klientëve të cilët nuk kishin BOOTP. Më vonë një përmirësim tjetër i DHCP-së është përkufizuar në RFC 2131. Në RFC 2131 është shtuar një mesazh i ri, DHCPINFORM si dhe janë shtuar disa veti të tjera për mesazhet.

## Detajet teknike 
thumb|DHCP mesazhet mes një klienti dhe serverit Serveri DHCP dëgjon në portën 67 ndërsa klienti në 68. Komunikimi bëhet përmes protokollit UDP. Kur një pajisje ka nevojë për parametrat e rrjetit, transmeton një paketë DHCPDISCOVER në portën 67. Nëse në rrjet ekziston një server DHCP ai do t’i përgjigjet klientit me një DHCPOFFER, e cila në vete përmban konfigurimin të cilin serveri e sugjeron për klientin. Nëse klienti pajtohet me parametrat e ofruar dërgon tek serveri një DHCPREQUEST, me anë të së cilës kërkon nga serveri konfigurimin e dhënë. Nëse parametrat e kërkuara nuk kanë ndryshuar gjatë kësaj kohe, serveri dërgon një DHCPACK, lajmërim që klienti mund t’i përdor parametrat e dhënë. Nëse për ndonjë arsye serveri nuk mund ta lëshojë këtë adresë, ai dërgon një DHCPNAK, një përgjigjje negative, me anë të së cilës detyron klientin të bëj një kërkesë sërish. Të gjitha DHCP paketat kanë të njejtën strukturë. Vetia DHCP Message type, atributi 53, bën dallimin mes llojeve të mesazheve.

### DHCPDISCOVER 
Me anë të kësaj pakete, klienti zbulon serverët në rrjetë. Klienti dërgon një UDP paketë sipas struktures së DHCPDISCOVER paketës në 255.255.255.255. Klienti gjithashtu mund të kërkojë IP adresën që ka përdorur herën e fundit që, nëse është e mundur, ta përdor përsëri.

Struktura e DHCPDISCOVER mesazhit
UDP Burimi=0.0.0.0 PortiBurimor=68  Destinacioni=255.255.255.255 DestPorti=67 
OPHTYPEHLENHOPS
0x010x010x060x00
XID
0x3903F326
SECSFLAGS
0x00000x0000
CIADDR
0x00000000
YIADDR
0xC0A80164
SIADDR
0xC0A80101 
GIADDR
0x00000000
CHADDR
0x00053C04
0x8D590000
0x00000000
0x00000000
192 zero oktete
Magic Cookie
0x63825363
DHCP vetitë
DHCP vetia 53: DHCP Discover

### DHCPOFFER 
Ky mesazh dërgohet nga serveri kur mer një DHCPDISCOVER nga ndonjë klient. Në këtë rast serveri i sygjeron klientit disa parametra. Nëse klienti kërkon prërsëri adresën që ka përdorur herën e kaluar, nëse është e mundur serveri i ofron atë përsëri. Me qenë se klienti nuk ka IP adresë, serveri e bën broadcast DHCPOFFER paketën. Për ta identifikuar klientin, protokoli përdor një vlerë të rastësishme 32 bitëshe të cilën e gjeneron klienti.

Struktura e DHCPOFFER mesazhit
UDP Burimi=192.168.1.1 PortiBurimor=67  Destinacioni=255.255.255.255 DestPorti=68 
OPHTYPEHLENHOPS
0x020x010x060x00
XID
0x3903F326
SECSFLAGS
0x00000x0000
CIADDR
0x00000000
YIADDR
0xC0A80164
SIADDR
0xC0A80101 
GIADDR
0x00000000
CHADDR
0x00053C04
0x8D590000
0x00000000
0x00000000
192 zero oktete
Magic Cookie
0x63825363
DHCP vetitë
DHCP vetia 53: DHCP Offer
DHCP vetia 1: 255.255.255.0 subnet mask
DHCP vetia 3: 192.168.1.1 router
DHCP vetia 51: 86400s (1 ditë) koha për të cilën është lëshuar IP
DHCP vetia 54: 192.168.1.1 DHCP serveri
DHCP vetia 6: DNS serverët 9.7.10.15, 9.7.10.16, 9.7.10.18

### DHCPREQUEST 
DHCPREQUEST dërgohet nga klienti pasi ka pranuar një DHCPOFFER nga serveri. Klienti mund të dërgojë një DHCPREQUEST edhe kur kërkon IP adresën e përdorur më parë pa dërguar një DHCPDISCOVER më parë.

Struktura e DHCPREQUEST mesazhit
UDP Burimi=0.0.0.0 PortiBurimor=68  Destinacioni=255.255.255.255 DestPorti=67 
OPHTYPEHLENHOPS
0x010x010x060x00
XID
0x3903F326
SECSFLAGS
0x00000x0000
CIADDR
0x00000000
YIADDR
0x00000000
SIADDR
0xC0A80101
GIADDR
0x00000000
CHADDR
0x00053C04
0x8D590000
0x00000000
0x00000000
192 zero oktete
Magic Cookie
0x63825363
DHCP vetitë
DHCP vetia 53: DHCP Request
DHCP vetia 50: 192.168.1.100 është kërkuar
DHCP vetia 54: 192.168.1.1 DHCP serveri.

### DHCPACK 
Ky mesazh dërgohet kur serveri konfirmon një kërkesë të klientit. Zakonisht përdoret kur një klient dërgon një DHCPREQUEST.

Struktura e DHCPACK mesazhit
UDP Burimi=192.168.1.1 PortiBurimor=67  Destinacioni=255.255.255.255 DestPorti=68 
OPHTYPEHLENHOPS
0x020x010x060x00
XID
0x3903F326
SECSFLAGS
0x00000x0000
CIADDR
0x00000000
YIADDR
0xC0A80164
SIADDR
0xC0A80101
GIADDR
0x00000000
CHADDR
0x00053C04
0x8D590000
0x00000000
0x00000000
192 zero oktete
Magic Cookie
0x63825363
DHCP vetitë
DHCP vetita 53: DHCP ACK
DHCP vetita 1: 255.255.255.0 subnet mask
DHCP vetita 3: 192.168.1.1 router
DHCP vetita 51: 86400s (1 ditë) koha për të cilën është lëshuar IP
DHCP option 54: 192.168.1.1 DHCP server
DHCP option 6: DNS servers 9.7.10.15, 9.7.10.16, 9.7.10.18

### DHCPNAK 
DHCPNAK përdoret kur serveri mohon kërkesën e një klienti që ti shfrytëzojë parametrat e kërkuar. Kjo mund të ndodh kur klienti kërkon parametrat që ka përdorur herën e kaluar por që tani u janë ndarë një pajisje tjetër apo, serveri i ka dhënë parametrat një pajisje tjetër gjatë kohës kur klienti ka qenë duke përpunuar ofertën e serverit.

Struktura e DHCPNAK mesazhit
UDP Burimi=192.168.1.1 PortiBurimor=67  Destinacioni=255.255.255.255 DestPorti=68 
OPHTYPEHLENHOPS
0x020x010x060x00
XID
0x3903F326
SECSFLAGS
0x00000x0000
CIADDR
0x00000000
YIADDR
0xC0A80164
SIADDR
0xC0A80101
GIADDR
0x00000000
CHADDR
0x00053C04
0x8D590000
0x00000000
0x00000000
192 zero oktete
Magic Cookie
0x63825363
DHCP vetitë
DHCP vetita 53: DHCP NAK

### DHCP vetitë 
DHCP vetitë janë definuar në RFC 1533. Para fillimit të opcioneve në mesazh gjendet DHCP Magic Cookie, një vlerë katër bajtëshe (0x63, 0x82, 0x53, 0x63). Një nga vetitë themelore është ajo me kodin 53, DHCP Message type, e cila përcakton llojin e mesazhit. Veti tjera të rëndësishme janë Router (kodi 3), Subnet Mask (kodi 1), IP Address Lease Time (kodi 51), Domain Name server (kodi 6) etj. Fusha e vetive përfundon me vlerën 0xFF.

## Siguria 
DHCP ka disa probleme me sigurinë. Në një rrjetë mund të shtohet një DHCP server i paautorizuar i cili mund t’i konfigurojë klientët me parametra të gabueshme. Gjithashtu, nuk ekziston ndonjë mekanizëm për identifikimin e klientëve të paautorizuar në rrjetë. Problem tjetër paraqesin klientët e paautorizuar të cilët bëjnë kërkesa të shumta nga DHCP serveri, gjë e cila shkakton uljen e resurseve (numrit të adresave për klientët e ri).
Në rastin e serverëve të paautorizuar, serveri në fjalë mund të jap adresa të gabueshme dhe klienti të mos jetë në dijeni. Këto adresa mund të përfshijnë një DNS server të sulmuesit me të dhëna të rreme, i cili mund t'i drejtojë klientët drejt Phishing-ut.

## Referimet