引言
DHCP(本文只討論IPv4)是一種流行的客戶機/服務(wù)器協(xié)議蚯撩,它用于為主機配置訪問網(wǎng)絡(luò)必要的配置信息穷娱。例如:IP地址亡嫌,子網(wǎng)掩碼,網(wǎng)關(guān)地址(路由器地址)击孩,DNS服務(wù)器的IP地址等配置信息迫悠。
DHCP基于一種早期協(xié)議BOOTP(引導程序協(xié)議),不同的是DHCP引入租用的概念來支持改變已提供的信息巩梢。
DHCP使用UDP/IP创泄,客戶端使用端口68,服務(wù)器使用端口67。
地址池和租用
DHCP支持3中地址分配方法:動態(tài)分配括蝠,自動分配鞠抑,手動分配。生活中最主要使用的是動態(tài)分配.
動態(tài)分配
為DHCP服務(wù)器分配一系列連續(xù)的IP地址忌警,分配給客戶機的地址只在一定時間內(nèi)有效搁拙,這個時間稱為租期。租期結(jié)束時法绵,客戶機可以申請續(xù)約箕速。租期在幾小時到幾天不等,需要在DHCP服務(wù)器上配置朋譬。
DHCP協(xié)議格式
為了實現(xiàn)和BOOTP協(xié)議的兼容盐茎,DHCP消息采用帶有特殊選項的BOOTP消息,其協(xié)議格式如下(圖片來源于維基百科):
DHCP協(xié)議操作
一個典型的DHCP交換過程如下
地址請求
進入網(wǎng)絡(luò)的客戶機徙赢,在需要DHCP來申請網(wǎng)絡(luò)配置時庭呜,首先廣播一個DHCPDISCOVER消息。
收到請求幀(無論是直接還是間接)的DHCP服務(wù)器犀忱,都會回復(fù)一個DHCPOFFER消息募谎,并在“你的IP地址字段“包含提供的IP地址,以及其它配置選項:掩碼阴汇,網(wǎng)關(guān)地址等数冬。并告知客戶機租用時間T,更新時間(更新租約)T1,重新綁定時間(更新地址)T2拐纱,一般T1是T的一半铜异,T2接近但小于T。
客戶機收到若干個DHCP服務(wù)器的OFFER消息秸架,從中選取一個后廣播一個DHCPREQUEST 揍庄,其中包含了選取的DHCP服務(wù)器的標識符。網(wǎng)絡(luò)中的DHCP服務(wù)器均收到了此消息东抹,只有滿足標識符的服務(wù)器作出響應(yīng)蚂子,其它服務(wù)器收到后清除與此次請求相關(guān)的狀態(tài)。
被選中的DHCP服務(wù)器需要作出回應(yīng)缭黔,如果之前回復(fù)給該客戶機的IP地址仍然可用食茎,則回復(fù)一個DHCOACK消息,告知客戶機現(xiàn)在可以使用過該IP地址馏谨。如果期間已經(jīng)被其它客戶機占用該IP地址别渔,則回復(fù)一個DHCPNAK消息。
當客戶機收到一個DHCPACK消息時惧互,它還需自行探知該地址是否可用哎媚。例如發(fā)送免費ARP來進行IP地址沖突檢測。如果地址沖突了喊儡,則客戶機發(fā)送DHCPDECLINE消息通知該地址不能使用拨与。經(jīng)過一段時間后重試。
更新租約
當客戶機已經(jīng)獲得一個地址管宵,但是想要更新租約,例如續(xù)約等攀甚,可以跳過DHCPDISCOVER和DHCPOFFER步驟箩朴,客戶機直接以DHCPREQUEST請求一個地址,如果是續(xù)約秋度,就請求當前的地址炸庞。當然,服務(wù)器可以恢復(fù)ACK荚斯,亦可以恢復(fù)NAK埠居。
PPPoE
DHCP提供了最常用的客戶機系統(tǒng)配置方法。對于廣域網(wǎng)連接(家里常用的ADSL)事期,常用另一種PPP的方法代替它滥壕,這種方法在以太網(wǎng)中攜帶PPP,因此稱為以太網(wǎng)上的PPP兽泣,即PPPoE(Point-to-Point Protocol over Ethernet)绎橘。PPPoE作為ISP建立連接的首選,是因為它能提供比DHCP更加細致的配置控制和審計日志唠倦。
為什么使用PPPoE:運營商希望通過一個前置接入設(shè)備連接遠程的多個用戶主機称鳞,有希望對每一臺主機實現(xiàn)接入控制涮较,計費等功能。就得通過PPPoE.
典型應(yīng)用:小區(qū)網(wǎng)絡(luò)用戶的廣域網(wǎng)接入冈止,典型方法通過以太網(wǎng)連接小區(qū)用戶狂票,但是傳統(tǒng)以太網(wǎng)不能實現(xiàn)認證,計費等功能熙暴,所以需要PPPoE.
PPPoE過程
發(fā)現(xiàn)階段
在PC啟動后闺属,PC回合ISP進行幾個交換,作為相互發(fā)現(xiàn)(相互了解對方的MAC地址)怨咪,為建立會話打下基礎(chǔ)屋剑。
PPP會話階段
相互發(fā)現(xiàn)后,客戶機可以請求獲得ISP認證诗眨,從而可以讓ISP返回網(wǎng)絡(luò)配置唉匾,從而接入廣域網(wǎng)。