dhcp(dynamic host configuration protocol動態主機配置協議)是為客戶端動態分配ip位址的方法,伺服器能夠從預先設定的ip位址池裡自動給主機分配ip位址。它不僅能夠保證ip位址不重複分配,也能及時**ip位址以提高ip位址的利用率。dhcp具有可伸縮性,相對容易管理。dhcp包括3種不同的位址分配機制:
自動分配:dhcp從可用位址池中選擇靜態ip位址,自動將它永久性地分配給裝置,不存在租期問題。
動態分配:dhcp自動動態地從位址池中分配或出租ip位址,使用期限為伺服器選擇的租借期限,或者直到客戶 端告知dhcp伺服器其不再需要該位址為止。
①發現階段:即dhcp客戶端尋找dhcp伺服器的階段。dhcp客戶端以廣播方式(因為dhcp伺服器的ip位址對於客戶
端來說是未知的)傳送dhcpdiscover資訊來尋找
dhcp伺服器。網路上每一台安裝了tcp/ip協議的主機都會接收到這種廣播資訊,但只有dhcp伺服器才會做出響應。因為廣播的
目標埠是67。而dhcp伺服器監聽67這個埠。這個過程是主機發給伺服器的,是乙個廣播包。下面會有具體的抓包截圖。
②提供階段:dhcp伺服器提供ip位址的階段。在網路中,接收到dhcpdiscover資訊的dhcp伺服器都會做出響
應,它從尚未
分配的ip位址中挑選乙個分配給dhcp客戶端,向dhcp客戶端傳送乙個包含分配的ip位址和其它設定的dhcpoffer資訊。那麼客
戶機是如何知道這個dhcpoffer
提供給他的呢???
其中的you ip address :192.168.0.10 是伺服器提供給客戶機的。那麼這個為什麼會是乙個單播包呢??是因為在客戶機傳送dhcpdiscover
的時候,鏈路層會包含客戶機的mac位址,這樣伺服器發回來就只用單播了。同時,客戶機也在監聽68埠。
③選擇階段:dhcp客戶端選擇某台dhcp伺服器提供的ip位址的階段。如果有多台dhcp伺服器向dhcp客戶端傳送
dhcpoffer
資訊,則dhcp客戶端只接受第乙個收到的dhcpoffer資訊,然後它以廣播方式回答乙個dhcprequest
資訊,該資訊中包含
它所選定的dhcp伺服器請求ip位址的內容,之所以要以廣播方式回答,是為了通知所有的
dhcp伺服器(乙個公司可以有多個
dhcp伺服器
),它將選擇某台dhcp伺服器所提供的ip位址(先到先取)。
看一下這個dhcprequest包,它的源位址還是0.0.0.0,這是為什麼呢??,這是因為,這時主機還沒有用我哪乙個位址。我來打一比方吧,整個dhcp的過程就像是這樣。
有一天,你去找工作,你在大街上喊,我要找工作(dhcpdiscover)。這時,乙個人看到你,說我給你提供乙個職位(dhcpoffer
),你到我公司來。你就去了他的公司,說你要應聘xx職位(dhcprequest),最後公司說好。(dhcpack),這樣你就找到了工作。dhcp的整個過程也完成了。。
④確認階段:即dhcp伺服器確認所提供的ip位址的階段。當dhcp伺服器收到dhcp客戶端回答的dhcprequest資訊
之後,他便向dhcp客戶端傳送乙個包含它所提供的
ip位址和其它設定的dhcpack資訊,告訴dhcp客戶端可以使
用它所提供的ip位址,然後dhcp客戶端便將其tcp/ip協議與網絡卡
繫結。另外,除dhcp客戶端選中的伺服器外,
其它的dhcp伺服器都將收回曾提供的ip位址。
⑤重新登入:以後dhcp客戶端每次重新登入網路時,就不需要再傳送dhcpdiscover資訊了,而是直接傳送包含 前一次所分配
的ip位址的dhcprequest資訊。當dhcp伺服器收到這一資訊後,它將嘗試讓dhcp客戶端繼續使用原來的ip位址,並回答乙個
dhcpack資訊。如果此ip位址已無法再分配原來的dhcp客戶端使用時(比如ip位址已分配給其它dhcp客戶端使用),則dhcp服
務器給dhcp客戶端回答乙個dhcpnack資訊。當原來的dhcp客戶端收到
此dhcpnack資訊後,它將必須重新傳送
dhcpdiscover
資訊來請求新的ip位址。
⑥更新租約:dhcp伺服器向dhcp客戶端出租的ip位址一般都有乙個租借期限,期滿後dhcp伺服器便會收回出租的ip位址。如果
dhcp客戶端要延長其ip租約,則必須更新其ip租約。dhcp客戶端啟動時間為租約期限的50%
時,dhcp客戶端都會自動向dhcp
伺服器傳送更新其ip租約的資訊。如果dhcp伺服器應答,則租用延期;如果dhcp伺服器始終沒有應答,在有效租借期的87.5%,
客戶應該與任何乙個其它的dhcp伺服器通訊,並請求更新
它的配置資訊。如果客戶端不能和所有的dhcp伺服器取得聯絡,租借
時間到後,它必須放棄當前的ip位址並重
新傳送乙個dhcpdiscover資訊開始上述的ip位址獲得過程。當然,客戶端可以主動向
伺服器發出dhcprelease資訊,將當前的ip位址釋放。
上面的是一般情況下的狀態。兩次廣播,兩次單播。
下面來看看不一般的情況。
1.全程廣播???
2.dhcpdiscover 的源位址還是168.254.36.238??
3.dhcpdiscover,dhcprequest。dhcpack發兩次??
下面我來一 一 解答這些疑問。1.全程廣播???這個是因為,在客戶機傳送乙個dhcpdiscover的時候,會告訴dhcp伺服器自己希望的通訊方式。下面抓包為證。。
其中bootp flags:0x0000(unicast),說明了客戶機想以伺服器單播發送回應包給自己。
其中bootp flags:0x08000,broadcast flag(broadcast
),說明了客戶機想以伺服器廣播傳送回應包給自己。
2.dhcpdiscover 的源位址還是168.254.36.238??
這個位址是客戶機好沒有獲得位址之前客戶機自己給自己配了乙個位址,一般整個位址會是169這個網段的。
3.dhcpdiscover,dhcprequest。dhcpack發兩次??
這個是因為重傳的結果。多發幾次,無所謂的啦。
一次不同尋常的面試經歷
昨天,沒錯就是昨天,十六期的師弟師妹們組建了機房部門,我機房部門的成員,也參加了整個活動中。一開始準備ppt的時候,雖說在部門中已經呆了一年了,但是總結了一下主要職能,總結出來大概7點,但是等到上台的時候,居然有些緊張,之前已經很久沒有出現緊張的情況了。當然最後總結了一下,應該是很久沒有上台了,所以...
記一次DHCP排錯
如拓撲,某業務整個網路劃分在乙個vlan之下,入網的終端裝置要接收來自dhcp伺服器的ip指派,業務正常,客戶開心,一切都顯得祥和安靜 忽然有一天,使用者的乙個動作打破了一切。他把終端的網線無情的插入到了路由的lan口,如此,路由器本身的dhcp發揮作用,混進了這個vlan。自此,這個vlan下廣播...
記一次DHCP排錯
如拓撲,某業務整個網路劃分在乙個vlan之下,入網的終端裝置要接收來自dhcp伺服器的ip指派,業務正常,客戶開心,一切都顯得祥和安靜 忽然有一天,使用者的乙個動作打破了一切。他把終端的網線無情的插入到了路由的lan口,如此,路由器本身的dhcp發揮作用,混進了這個vlan。自此,這個vlan下廣播...