會自動分配IP地址的路由協議——DHCP

一、爲什麼使用DHCP?

我們都知道PC要想上網,那就需要在PC上配置IP地址。我們可以手動配置,但是如果我們要配置上百臺,上千臺,那樣工作效率在這個高速發展的時代顯得有點低了,那麼我們就需要通過協議進行自動獲取,也就是這篇博文說的DHCP協議。

二、什麼是DHCP?

DHCP中文名字叫動態主機配置協議,是一種局域網的網絡協議,指的是由服務器控制一段IP地址範圍,客戶機登錄服務器時就可以自動獲得服務器分配的IP地址和子網掩碼。以上是百度的解釋。通俗來說,就是通過這個協議我們可以從一段IP地址中自動獲取IP地址以及子網掩碼。

作用:自動分配IP地址
模型:基於C/S模型運行
封裝:UDP封裝
端口:
a、客戶端是68號端口
b、服務端是67號端口

三、成爲DHCP服務器的條件

想要成爲DHCP服務器的設備,需要滿足以下兩個條件:

a、該設備必須擁有所要下放地址廣播域內的直接接口或網卡
假如一場演講,演說家要想表達自己的觀點,那就得靠嘴說出來嘛,不可能用意識發射出去吧,不知道以後,反正現在是不能的了,而且還得在這個會場裏演說纔對咯,不可能說一個演說家去演唱會演說,開玩笑呢?

b、該設備接口或設備網卡必須已經擁有合法IP地址
就比如說一場演講,肯定需要一個確實存在的演說家嘛,如果是空的,那還聽個啥子?所以肯定要有確實存在且合法的IP地址,要是不存在的話,PC怎麼知道是誰在放送IP地址,不合法的話,在局域網或者因特網中肯定是不可能被訪問到的咯!

四、DHCP的報文包

a、DHCP發現包:discover(0x01)
作用:客戶端查詢有沒有DHCP服務器
發送方:客戶端(0.0.0.0,客戶端的MAC地址)
接收方:服務端(255.255.255.255,FFFF-FFFF-FFFF-FFFF)
發送方式:通過廣播方式

2.DHCP提供包:offer(0x02)
作用:服務端提供IP地址並且判斷該IP地址有沒有其他設備使用
發送方:服務端(服務的IP地址,服務端的MAC地址)
接收方:客戶端(255.255.255.255,FFFF-FFFF-FFFF-FFFF)
發送方式:通過單播\廣播方式

3.DHCP請求包:request(0x03)
作用:對offer報文確認,獲取先進的IP地址,然後拒絕其他DHCP服務器IP地址分配
發送方:客戶端(0.0.0.0,客戶端的MAC地址)
接收方:服務端(255.255.255.255,FFFF-FFFF-FFFF-FFFF)
發送方式:通過廣播方式

4.DHCP禁止包:decline(0x04)
作用:通知服務端禁止使用該IP地址
發送方:客戶端(0.0.0.0,客戶端的MAC地址)
接收方:服務端(服務的IP地址,服務端的MAC地址)
發送方式:通過單播\廣播方式

5.DHCP確認包:ack(0x05)
作用:確認服務器的IP使用
發送方:服務端(服務的IP地址,服務端的MAC地址)
接收方:客戶端(255.255.255.255,客戶端的MAC地址)
發送方式:通過單播\廣播方式

6.DHCP不確定包:NAK(0x06)
作用:服務端發送拒絕request響應報文,客戶端重新開始新的DHCP獲取
發送方:服務端(服務的IP地址,服務端的MAC地址)
接收方:客戶端(255.255.255.255,客戶端的MAC地址)
發送方式:通過廣播方式

7.DHCP釋放包:release(0x07)
作用:客戶端發送想要主動釋放客戶端分配的IP地址
發送方:客戶端(客戶的IP地址,客戶端的MAC地址)
接收方:服務端(服務的IP地址,服務端的MAC地址)
發送方式:通過單播方式

8.DHCP通知包:inform(0x08)
作用:爲了從服務器處獲取其他的一些網絡配置信息
發送方:客戶端(客戶的IP地址,客戶端的MAC地址)
接收方:服務端(服務的IP地址,服務端的MAC地址)
發送方式:通過單播方式

注意:上面的包,有些可能不一定對這是根據自己理解書寫的,但是基本意思是差不多的

五、DHCP的工作原理

在這裏插入圖片描述

  • a、客戶端通過廣播的方式發出Discover報文,查詢有沒有DHCP服務器。
  • b、當域內的所有服務器都接收到客戶端發送的Discover報文後,會及時響應並向客戶端發送一個Offer報文, 在自己已分配的IP地址中記錄下來。
  • c、客戶端只能接收第一個發送過來的Offer報文,其他的都將棄掉,同時以廣播方式發送Request報文且報文中存在服務器的IP地址和需要的IP地址。
  • d、服務器收到Request報文後,判斷是否與自己發送的IP地址相同,相同的話,將給客戶端發送ACK報文並加入IP地址使用租借信息,否則清除相應IP地址分配記錄。
  • e、當客戶端接收到ACK報文後,檢查分配的IP地址是否能夠使用。如果可以使用,那麼就根據IP地址使用租期自動啓動續延過程,如果不能使用,客戶端將向服務端發出Decline報文,通知服務端這個IP地址不能使用,然後客戶端繼續a步驟重新開始新的地址申請過程。
  • f、客戶端成功獲取IP地址後,隨時可以通過發送Release報文釋放自己的IP地址,此時服務端江會收回相應的IP地址並重新分配。

六、DHCP的續租問題

當設備使用租期超過50%時,客戶端會以單播形式向服務器發送Request報文來續租IP地址,如果客戶端收到ACK報文,則按相應時間延長IP地址租期,如果沒有收到ACK報文,則客戶端繼續使用這個IP地址到租期爲87.5%,在使用租期超過87.5%時,客戶端會以廣播形式向服務端發送Request報文來續租IP地址。如果客戶端成功收到ACK報文,則按相應時間延長IP地址租期,如果沒有收到ACK報文,則客戶端繼續使用這個IP地址,直到IP地址使用租期到期時,客戶端纔會向客戶端發送Release報文來釋放這個IP地址,並開始新的IP地址申請過程。

七、Cisco的配置

要想在Cisco路由器上配置DHCP服務,那麼得有一個IP地址池,網關,DNS地址,舉個例子說吧!假設有一個養魚的老闆(網關),他需要在一個一塊地方養魚,那麼他需要有塊魚塘地(IP地址池),這些魚要想買出去,就得通知市場(DNS),說:哦,我這裏要買魚。這樣就可以在市場上買魚了!

注意:首先DHCP得有出接口網關IP地址

DHCP 服務器端配置

創建並進入DHCP 池:(config)#ip dhcp pool+名字
定義下放地址範圍:(dhcp-config)#network+IP段+子網掩碼
定義默認網關:(dhcp-config)#default-router+網關IP
定義DNS地址:(dhcp-config)#dns-server+服務器IP+服務器IP(地區不同網關不同)
定義租約時間:(dhcp-config)#lease+天數(默認一天)+時+分鐘
排除地址範圍:(config)#ip dhcp excluded-address+IP地址
排除單個地址:(config)#ip dhcp excluded-address+IP地址
排除一段地址:(config)#ip dhcp excluded-address+起始地址+結束地址

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章