ä»ä¹æ¯ DHCPï¼
DHCP æ¯ Dynamic Host Configuration Protocol(å¨æ主æºåé
åè®®)缩åï¼å®çåèº«æ¯ BOOTPãBOOTP åæ¬æ¯ç¨äºæ ç£ç主æºè¿æ¥çç½ç»ä¸é¢çï¼ç½ç»ä¸»æºä½¿ç¨ BOOT ROM èä¸æ¯ç£çèµ·å¨å¹¶è¿æ¥ä¸ç½ç»ï¼BOOTP åå¯ä»¥èªå¨å°ä¸ºé£äºä¸»æºè®¾å® TCP/IP ç¯å¢ãä½ BOOTP æä¸ä¸ªç¼ºç¹ï¼æ¨å¨è®¾å®åé¡»äºå
è·å¾å®¢æ·ç«¯ç硬件å°åï¼èä¸ï¼ä¸ IP ç对åºæ¯éæçãæ¢èè¨ä¹ï¼BOOTP éå¸¸ç¼ºä¹ "å¨ææ§" ï¼è¥å¨æéç IP èµæºç¯å¢ä¸ï¼BOOTP çä¸å¯¹ä¸å¯¹åºä¼é æé常å¯è§ç浪费ã
DHCP å¯ä»¥è¯´æ¯ BOOTP çå¢å¼ºçæ¬ï¼å®å为两个é¨ä»½ï¼ä¸ä¸ªæ¯æå¡å¨ç«¯ï¼èå¦ä¸ä¸ªæ¯å®¢æ·ç«¯ãææç IP ç½ç»è®¾å®æ°æ®é½ç± DHCP æå¡å¨éä¸ç®¡çï¼å¹¶è´è´£å¤ç客æ·ç«¯ç DHCP è¦æ±ï¼è客æ·ç«¯åä¼ä½¿ç¨ä»æå¡å¨åé
ä¸æ¥çIPç¯å¢æ°æ®ãæ¯è¾èµ· BOOTP ï¼DHCP éè¿ "ç§çº¦" çæ¦å¿µï¼ææä¸å¨æçåé
客æ·ç«¯ç TCP/IP 设å®ï¼èä¸ï¼ä½ä¸ºå
¼å®¹èèï¼DHCP ä¹å®å
¨ç
§é¡¾äº BOOTP Client çéæ±ã
DHCP çåé
å½¢å¼
é¦å
ï¼å¿
é¡»è³å°æä¸å° DHCP å·¥ä½å¨ç½ç»ä¸é¢ï¼å®ä¼çå¬ç½ç»ç DHCP 请æ±ï¼å¹¶ä¸å®¢æ·ç«¯æå TCP/IP ç设å®ç¯å¢ãå®æä¾ä¸¤ç§ IP å®ä½æ¹å¼ï¼
Automatic Allocation
èªå¨åé
ï¼å
¶æ
å½¢æ¯ï¼ä¸æ¦ DHCP 客æ·ç«¯ç¬¬ä¸æ¬¡æåçä» DHCP æå¡å¨ç«¯ç§ç¨å° IP å°åä¹åï¼å°±æ°¸è¿ä½¿ç¨è¿ä¸ªå°åã
Dynamic Allocation
å¨æåé
ï¼å½ DHCP 第ä¸æ¬¡ä» HDCP æå¡å¨ç«¯ç§ç¨å° IP å°åä¹åï¼å¹¶éæ°¸ä¹
ç使ç¨è¯¥å°åï¼åªè¦ç§çº¦å°æï¼å®¢æ·ç«¯å°±å¾éæ¾(release)è¿ä¸ª IP å°åï¼ä»¥ç»å
¶å®å·¥ä½ç«ä½¿ç¨ãå½ç¶ï¼å®¢æ·ç«¯å¯ä»¥æ¯å
¶å®ä¸»æºæ´ä¼å
çæ´æ°(renew)ç§çº¦ï¼ææ¯ç§ç¨å
¶å®ç IP å°åã
å¨æåé
æ¾ç¶æ¯èªå¨åé
æ´å çµæ´»ï¼å°¤å
¶æ¯å½æ¨çå®é
IP å°åä¸è¶³çæ¶åï¼ä¾å¦ï¼æ¨æ¯ä¸å®¶ ISP ï¼åªè½æä¾ 200 个IPå°åç¨æ¥ç»æ¨æ¥å®¢æ·ï¼ä½å¹¶ä¸æå³çæ¨ç客æ·æå¤åªè½æ 200 个ãå 为è¦ç¥éï¼æ¨ç客æ·ä»¬ä¸å¯è½å
¨é¨åä¸æ¶é´ä¸ç½çï¼é¤äºä»ä»¬åèªçè¡ä¸ºä¹ æ¯çä¸åï¼ä¹æå¯è½æ¯çµè¯çº¿è·¯çéå¶ãè¿æ ·ï¼æ¨å°±å¯ä»¥å°è¿ 200 个å°åï¼è½®æµçç§ç¨ç»æ¨æ¥ä¸æ¥ç客æ·ä½¿ç¨äºãè¿ä¹æ¯ä¸ºä»ä¹å½æ¨æ¥ç IP å°åçæ¶åï¼ä¼å æ¯æ¬¡æ¨æ¥èä¸åçåå äº(é¤éæ¨ç³è¯·çæ¯ä¸ä¸ªåºå® IP ï¼é常ç ISP é½å¯ä»¥æ»¡è¶³è¿æ ·çè¦æ±ï¼è¿æ许è¦å¦å¤æ¶è´¹)ãå½ç¶ï¼ISP ä¸ä¸å®ä½¿ç¨ DHCP æ¥åé
å°åï¼ä½è¿ä¸ªæ¦å¿µåä½¿ç¨ IP Pool çåçæ¯ä¸æ ·çã
DHCP é¤äºè½å¨æçè®¾å® IP å°åä¹å¤ï¼è¿å¯ä»¥å°ä¸äº IP ä¿çä¸æ¥ç»ä¸äºç¹æ®ç¨éçæºå¨ä½¿ç¨ï¼å®å¯ä»¥æç
§ç¡¬ä»¶å°åæ¥åºå®çåé
IP å°åï¼è¿æ ·å¯ä»¥ç»æ¨æ´å¤§ç设计空é´ãåæ¶ï¼DHCP è¿å¯ä»¥å¸®å®¢æ·ç«¯æå® routerãnetmaskãDNS ServerãWINS Serverãçç项ç®ï¼æ¨å¨å®¢æ·ç«¯ä¸é¢ï¼é¤äºå° DHCP é项æå¾ä¹å¤ï¼å ä¹æ éåä»»ä½ç IP ç¯å¢è®¾å®ã
DHCP çå·¥ä½åç
æ ¹æ®å®¢æ·ç«¯æ¯å¦ç¬¬ä¸æ¬¡ç»å½ç½ç»ï¼DHCP çå·¥ä½å½¢å¼ä¼ææä¸åã
第ä¸æ¬¡ç»å½çæ¶åï¼
å¯»æ¾ Serverãå½ DHCP 客æ·ç«¯ç¬¬ä¸æ¬¡ç»å½ç½ç»çæ¶åï¼ä¹å°±æ¯å®¢æ·åç°æ¬æºä¸æ²¡æä»»ä½ IP æ°æ®è®¾å®ï¼å®ä¼åç½ç»ååºä¸ä¸ª DHCP DISCOVER å°å
ãå 为客æ·ç«¯è¿ä¸ç¥éèªå·±å±äºåªä¸ä¸ªç½ç»ï¼æ以å°å
çæ¥æºå°åä¼ä¸º 0.0.0.0 ï¼èç®çå°åå为 255.255.255.255 ï¼ç¶ååéä¸ DHCP discover çä¿¡æ¯ï¼åç½ç»è¿è¡å¹¿æã
å¨ Windows çé¢è®¾æ
å½¢ä¸ï¼DHCP discover ççå¾
æ¶é´é¢è®¾ä¸º 1 ç§ï¼ä¹å°±æ¯å½å®¢æ·ç«¯å°ç¬¬ä¸ä¸ª DHCP discover å°å
éåºå»ä¹åï¼å¨ 1 ç§ä¹å
没æå¾å°ååºçè¯ï¼å°±ä¼è¿è¡ç¬¬äºæ¬¡ DHCP discover 广æãè¥ä¸ç´å¾ä¸å°ååºçæ
åµä¸ï¼å®¢æ·ç«¯ä¸å
±ä¼æå次 DHCP discover 广æ(å
æ¬ç¬¬ä¸æ¬¡å¨å
)ï¼é¤äºç¬¬ä¸æ¬¡ä¼çå¾
1 ç§ä¹å¤ï¼å
¶ä½ä¸æ¬¡ççå¾
æ¶é´åå«æ¯ 9ã13ã16 ç§ãå¦æé½æ²¡æå¾å° DHCP æå¡å¨çååºï¼å®¢æ·ç«¯åä¼æ¾ç¤ºé误信æ¯ï¼å®£å DHCP discover ç失败ãä¹åï¼åºäºä½¿ç¨è
çéæ©ï¼ç³»ç»ä¼ç»§ç»å¨ 5 åéä¹ååéå¤ä¸æ¬¡ DHCP discover çè¿ç¨ã
æä¾ IP ç§ç¨å°åãå½ DHCP æå¡å¨çå¬å°å®¢æ·ç«¯ååºç DHCP discover 广æåï¼å®ä¼ä»é£äºè¿æ²¡æç§åºçå°åèå´å
ï¼éæ©æåé¢ç空置 IP ï¼è¿åå
¶å® TCP/IP 设å®ï¼ååºç»å®¢æ·ç«¯ä¸ä¸ª DHCP OFFER å°å
ã
ç±äºå®¢æ·ç«¯å¨å¼å§çæ¶åè¿æ²¡æ IP å°åï¼æ以å¨å
¶ DHCP discover å°å
å
ä¼å¸¦æå
¶ MAC å°åä¿¡æ¯ï¼å¹¶ä¸æä¸ä¸ª XID ç¼å·æ¥è¾¨å«è¯¥å°å
ï¼DHCP æå¡å¨ååºç DHCP offer å°å
åä¼æ ¹æ®è¿äºèµæä¼ éç»è¦æ±ç§çº¦ç客æ·ãæ ¹æ®æå¡å¨ç«¯ç设å®ï¼DHCP offer å°å
ä¼å
å«ä¸ä¸ªç§çº¦æéçä¿¡æ¯ã
æ¥å IP ç§çº¦ãå¦æ客æ·ç«¯æ¶å°ç½ç»ä¸å¤å° DHCP æå¡å¨çååºï¼åªä¼æéå
¶ä¸ä¸ä¸ª DHCP offer èå·²(é常æ¯æå
æµè¾¾çé£ä¸ª)ï¼å¹¶ä¸ä¼åç½ç»åéä¸ä¸ªDHCP request广æå°å
ï¼åè¯ææ DHCP æå¡å¨å®å°æå®æ¥ååªä¸å°æå¡å¨æä¾ç IP å°åã
åæ¶ï¼å®¢æ·ç«¯è¿ä¼åç½ç»åéä¸ä¸ª ARP å°å
ï¼æ¥è¯¢ç½ç»ä¸é¢æ没æå
¶å®æºå¨ä½¿ç¨è¯¥ IP å°åï¼å¦æåç°è¯¥ IP å·²ç»è¢«å ç¨ï¼å®¢æ·ç«¯åä¼éåºä¸ä¸ª DHCPDECLINE å°å
ç» DHCP æå¡å¨ï¼æç»æ¥åå
¶ DHCP offer ï¼å¹¶éæ°åé DHCP discover ä¿¡æ¯ã
äºå®ä¸ï¼å¹¶ä¸æ¯ææ DHCP 客æ·ç«¯é½ä¼æ æ¡ä»¶æ¥å DHCP æå¡å¨ç offer ï¼å°¤å
¶è¿äºä¸»æºå®è£
æå
¶å® TCP/IP ç¸å
³ç客æ·è½¯ä»¶ã客æ·ç«¯ä¹å¯ä»¥ç¨ DHCP request åæå¡å¨æåº DHCP éæ©ï¼èè¿äºéæ©ä¼ä»¥ä¸åçå·ç å¡«åå¨ DHCP Option Field éé¢ï¼
æ¢ä¸å¥è¯è¯´ï¼å¨ DHCP æå¡å¨ä¸é¢ç设å®ï¼æªå¿
æ¯å®¢æ·ç«¯å
¨é½æ¥åï¼å®¢æ·ç«¯å¯ä»¥ä¿çèªå·±çä¸äº TCP/IP 设å®ãè主å¨ææ°¸è¿å¨å®¢æ·ç«¯è¿è¾¹ã
ç§çº¦ç¡®è®¤ãå½ DHCP æå¡å¨æ¥æ¶å°å®¢æ·ç«¯ç DHCP request ä¹åï¼ä¼å客æ·ç«¯ååºä¸ä¸ª DHCPACK ååºï¼ä»¥ç¡®è®¤ IP ç§çº¦çæ£å¼çæï¼ä¹å°±ç»æäºä¸ä¸ªå®æ´ç DHCP å·¥ä½è¿ç¨ã
DHCP åæ¾æµç¨
第ä¸æ¬¡ç»å½ä¹åï¼
ä¸æ¦ DHCP 客æ·ç«¯æåå°ä»æå¡å¨åªéåå¾ DHCP ç§çº¦ä¹åï¼é¤éå
¶ç§çº¦å·²ç»å¤±æå¹¶ä¸ IP å°åä¹éæ°è®¾å®å 0.0.0.0 ï¼å¦åå°±æ éååé DHCP discover ä¿¡æ¯äºï¼èä¼ç´æ¥ä½¿ç¨å·²ç»ç§ç¨å°ç IP å°ååä¹åä¹ DHCP æå¡å¨ååº DHCP request ä¿¡æ¯ï¼DHCP æå¡å¨ä¼å°½é让客æ·ç«¯ä½¿ç¨åæ¥ç IP å°åï¼å¦æ没é®é¢çè¯ï¼ç´æ¥ååº DHCPack æ¥ç¡®è®¤åå¯ãå¦æ该å°åå·²ç»å¤±ææå·²ç»è¢«å
¶å®æºå¨ä½¿ç¨äºï¼æå¡å¨åä¼ååºä¸ä¸ª DHCPNACK å°å
ç»å®¢æ·ç«¯ï¼è¦æ±å
¶ä»æ°æ§è¡ DHCP discoverã
è³äº IP çç§çº¦æéå´æ¯é常è究çï¼å¹¶éå¦æ们ç§æ¿åé£æ ·ç®åï¼ ä»¥ NT 为ä¾åï¼DHCP å·¥ä½ç«é¤äºå¨å¼æºçæ¶åååº DHCP request 请æ±ä¹å¤ï¼å¨ç§çº¦æéä¸åçæ¶åä¹ä¼ååº DHCP request ï¼å¦ææ¤æ¶å¾ä¸å° DHCP æå¡å¨ç确认çè¯ï¼å·¥ä½ç«è¿å¯ä»¥ç»§ç»ä½¿ç¨è¯¥ IP ï¼ç¶åå¨å©ä¸çç§çº¦æéçåä¸åçæ¶å(å³ç§çº¦ç75%)ï¼è¿å¾ä¸å°ç¡®è®¤çè¯ï¼é£ä¹å·¥ä½ç«å°±ä¸è½æ¥æè¿ä¸ª IP äºãè³äºä¸ºä»ä¹ä¸æ¯å°ç§çº¦æéå®å
¨ç»æææ¾å¼ IP å¢ï¼ï¼å¯¹ä¸èµ·ï¼å°å¼ä¹æ¯ä¸å¦æ æ¯ä¹äººï¼æ²¡æå»æ·±ç©¶äºï¼åªç¥éè¦åç MCSE é¢ç®çæ¶åï¼æ¨ä¸å®è¦è®°å¾ NT æ¯è¿ä¹å·¥ä½çå°±æ¯äºã
è¦æ¯æ¨æ³éç§ï¼å¯ä»¥éæ¶éåº DHCPLEREASE å½ä»¤è§£çº¦ï¼å°±ç®æ¨çç§çº¦å¨åä¸ç§éæè·å¾çã
è·¨ç½ç»ç DHCP è¿ä½
ä»åé¢æè¿°çè¿ç¨ä¸ï¼æ们ä¸é¾åç°ï¼DHCDISCOVER æ¯ä»¥å¹¿ææ¹å¼è¿è¡çï¼å
¶æ
å½¢åªè½å¨åä¸ç½ç»ä¹å
è¿è¡ï¼å 为 router æ¯ä¸ä¼å°å¹¿æä¼ éåºå»çãä½å¦æ DHCP æå¡å¨å®è®¾å¨å
¶å®çç½ç»ä¸é¢å¢ï¼ç±äº DHCP 客æ·ç«¯è¿æ²¡æ IP ç¯å¢è®¾å®ï¼æ以ä¹ä¸ç¥é Router å°åï¼èä¸æäº Router ä¹ä¸ä¼å° DHCP 广æå°å
ä¼ éåºå»ï¼å æ¤è¿æ
å½¢ä¸ DHCP DISCOVER æ¯æ°¸è¿æ²¡åæ³æµè¾¾ DHCP æå¡å¨é£ç«¯çï¼å½ç¶ä¹ä¸ä¼åç OFFER åå
¶å®å¨ä½äºãè¦è§£å³è¿ä¸ªé®é¢ï¼æ们å¯ä»¥ç¨ DHCP Agent (æ DHCP Proxy )主æºæ¥æ¥ç®¡å®¢æ·ç DHCP 请æ±ï¼ç¶åå°æ¤è¯·æ±ä¼ éç»çæ£ç DHCP æå¡å¨ï¼ç¶åå°æå¡å¨çåå¤ä¼ ç»å®¢æ·ãè¿éï¼Proxy 主æºå¿
é¡»èªå·±å
·æè·¯ç±è½åï¼ä¸è½å°åæ¹çå°å
äºä¼ 对æ¹ã
è¥ä¸ä½¿ç¨ Proxyï¼æ¨ä¹å¯ä»¥å¨æ¯ä¸ä¸ªç½ç»ä¹ä¸å®è£
DHCP æå¡å¨ï¼ä½è¿æ ·çè¯ï¼ä¸æ¥è®¾å¤ææ¬ä¼å¢å ï¼èä¸ï¼ç®¡çä¸é¢ä¹æ¯è¾åæ£ãå½ç¶å½ï¼å¦æå¨ä¸ä¸ªåå大åçç½ç»ä¸ï¼è¿æ ·çåè¡¡å¼æ¶æè¿æ¯å¯åçã端è§æ¨çå®é
æ
åµèå®äºã
DHCPå°å
æ ¼å¼
以ä¸ä¸ºåå段çç®è¦è¯´æï¼
OP
è¥æ¯ client éç» server çå°å
ï¼è®¾ä¸º 1 ï¼åå为 2 ã
HTYPE
硬件类å«ï¼Ethernet 为 1 ã
HLEN
硬件å°åé¿åº¦ï¼ Ethernet 为 6 ã
HOPS
è¥å°å
éç»è¿ router ä¼ éï¼æ¯ç«å 1 ï¼è¥å¨åä¸ç½å
ï¼ä¸º 0 ã
TRANSACTION ID
DHCP REQUEST æ¶äº§ççæ°å¼ï¼ä»¥ä½ DHCPREPLY æ¶çä¾æ®ã
SECONDS
Client 端å¯å¨æ¶é´(ç§)ã
FLAGS
ä» 0 å° 15 å
± 16 bits ï¼æå·¦ä¸ bit 为 1 æ¶è¡¨ç¤º server å°ä»¥å¹¿ææ¹å¼ä¼ éå°å
ç» client ï¼å
¶ä½å°æªä½¿ç¨ã
ciaddr
è¦æ¯ client 端æ³ç»§ç»ä½¿ç¨ä¹ååå¾ä¹ IP å°åï¼ååäºè¿éã
yiaddr
ä» server éå client ä¹ DHCP OFFER ä¸ DHCPACK å°å
ä¸ï¼æ¤æ å¡«ååé
ç» client ç IP å°åã
siaddr
è¥ client éè¦éè¿ç½ç»å¼æºï¼ä» server éåºä¹ DHCP OFFERãDHCPACKãDHCPNACK å°å
ä¸ï¼æ¤æ å¡«åå¼æºç¨åºä»£ç æå¨ server ä¹å°åã
giaddr
è¥éè·¨ç½åè¿è¡ DHCP åæ¾ï¼æ¤æ 为 relay agent çå°åï¼å¦å为 0 ã
chaddr
Client ä¹ç¡¬ä»¶å°åã
sname
Server ä¹å称å符串ï¼ä»¥ 0x00 ç»å°¾ã
file
è¥ client éè¦éè¿ç½ç»å¼æºï¼æ¤æ å°æåºå¼æºç¨åºå称ï¼ç¨å以 TFTP ä¼ éã
options
å
许ååå®è®®é项(Vendor-Specific Area)ï¼ä»¥æä¾æ´å¤ç设å®ä¿¡æ¯(å¦ï¼NetmaskãGatewayãDNSãçç)ãå
¶é¿åº¦å¯åï¼åæ¶å¯æºå¸¦å¤ä¸ªé项ï¼æ¯ä¸é项ä¹ç¬¬ä¸ä¸ª byte 为信æ¯ä»£ç ï¼å
¶åä¸ä¸ª byte 为该项æ°æ®é¿åº¦ï¼æå为项ç®å
容ã
CODE LEN VALUE
æ¤å段å®å
¨å
¼å®¹ BOOTP ï¼åæ¶æ©å
äºæ´å¤é项ãå
¶ä¸ï¼DHCP å°å
å¯å©ç¨ç¼ç 为 0x53 ä¹é项æ¥è®¾å®å°å
ç±»å«ï¼
é¡¹å¼ ç±»å«
1 DHCP DISCOVER
2 DHCP OFFER
3 DHCP REQUEST
4 DHCPDECLINE
5 DHCPACK
6 DHCPNACK
7 DHCPRELEASE
DHCP çé项é常å¤ï¼æ空请æ¥é
RFC æç¸å
³æç®ï¼å¹¶å¥½å¥½ç解ï¼è¿éä¸ååè¿°äºã
DHCP åè®®ä¹ RFC æ件
RFC-951ãRFC-1084ãRFC-1123ãRFC-1533ãRFC-1534ãRFC-1497ãRFC-1541
温馨提示:答案为网友推荐,仅供参考