|NO.Z.00009|——————————|LinuxNetwork|——|Linux&DHCP服務.V01|---------------------------------------------------|4臺server|
阿新 • • 發佈:2022-03-25
[LinuxNetworkEnd:Linux&DHCP服務.V01] [Applications.LinuxNetworkEnd] [|DHCP服務|DHCP租約四部曲|DHCP固定地址|DHCP超級作用域|DHCP中繼|4臺server|]
一、DHCP簡介
二、DHCP工作原理(租約四部曲+續租)### --- DHCP簡介 ~~~ DHCP(Dynamic Host Configuration Protocol,動態主機配置協議) ~~~ 是一個工作在應用層的區域網網路協議,資料傳輸時使用UDP不可靠傳輸協議工作, ~~~ 通常被應用在大型的區域網絡環境中,主要作用是集中的管理,分配網路資源, ~~~ 使用環境中的主機能動態的獲得IP地址,Gateway地址,DNS伺服器地址等資訊, ~~~ 並能夠提升地址的使用率。 ~~~ 在家庭環境,辦公環境,機房都會使用。
### --- 廣播請求: ~~~ DHCP Client向DHCP Server發起請求DHCP Discover:IP請求過程, ~~~ 找到對應的DHCP Server伺服器 ~~~ #反饋: ~~~ DHCP Server向DCHP Client回覆DHCP Offer:可用IP地址;誰發給它的最快就使用哪個。 ~~~ DHCP Client判斷哪一個最快就說明那一臺DHCP Server和它之間的距離,網路狀態更好一點。 ~~~ 所以會接第一個。方便後期租期的續租。 ~~~ #確認: ~~~ DHCP Client向DHCP Server發相應確認資訊DHCP Request, ~~~ 告訴DHCP Server這個IP地址我要使用,
~~~ #反饋:
~~~ 第一種情況:DHCP Server收到DHCP Client客戶端要使用該IP的資訊之後,
~~~ 反饋確認資訊DHCP ACK:建立租約。
~~~ #反饋:
~~~ 第二種情況:DHCP Client向DHCP Server傳送DHCP Request確認資訊時,
~~~ 這個地址已經被其它主機已經使用上了;
~~~ DHCP Server就會向DHCP Client反饋DHCP NAK(NACK)拒絕把資源租給DHCP Client的模式;
~~~ 若是不建立租約;再從頭重新建立租約關係。
三、DHCP客戶端進行IP請求### --- DHCP客戶端進行IP請求
~~~ 當一個DHCP客戶機啟動時,會自動將自己的IP地址配置成0.0.0.0,
~~~ 由於使用0.0.0.0不能進行正常通訊,所以客戶機就必須通過DHCP伺服器來獲取一個合法的地址,
~~~ 由於客戶機不知道DHCP伺服器的IP地址,
~~~ 所以它#使用0.0.0.0的地址作為源地址,
~~~ #使用255.255.255.255(區域網內能夠實用的任意IP地址)作為目標地址,
~~~ #使用UDP 67埠作為目的的埠來廣播請求IP地址資訊。
~~~ 廣播資訊DHCP Discover中包含了DHCP客戶機的MAC地址和計算機名,
~~~ 以便使用DHCP服務能確定是哪個客戶機發送的請求。
~~~ DHCP Client發起廣播;雖然是廣播,但是不是所有主機都會接受到資料,
~~~ 只有DHCP Server含有67埠的才會響應,其它主機不會受到影響。
### --- DHCP服務響應請求
~~~ 當DHCP服務接收到客戶機請求IP地址的資訊時,
~~~ 他就在自己的IP地址池(合法的/可用的地址)中查詢是否有合法的IP地址提供給客戶機。
~~~ 如果有,DHCP伺服器就將此IP地址做上標記,加入到DHCP OFFER的訊息中,
~~~ 然後DHCP伺服器就廣播一則包括下列資訊的DHCP OFFER訊息。
~~~ DHCP客戶機的MAC地址,DHCP伺服器提供的合法IP地址,
~~~ 子網掩碼:預設閘道器(路由)租約的期限,DHCP伺服器的IP地址-MAC。
~~~ 因為DHCP客戶機還沒有IP地址,所以DHCP伺服器使用自己的IP地址作為源地址,
~~~ 使用255.255.255.255作為目標地址,使用UDP 68埠作為源埠來廣播DHCP OFFER資訊
### --- DHCP客戶機選擇IP
~~~ DHCP客戶機從接受到的第一個DHCP OFFER訊息中選擇IP地址,
~~~ 發出IP地址DHCP伺服器將該地址保留,這樣改地址就不能提供給另一個DHCP客戶機,
~~~ 當客戶機從第一個DHCP伺服器接受DHCP OFFER並選擇IP地址後,DHCP租約的第三過程發生。
~~~ 客戶機將DHCP REQUEST訊息廣播到所有的DHCP伺服器,表明它接收提供的內容。
~~~ DHCP REQUEST訊息包括為該客戶機提供IP配置的伺服器的服務表示(IP地址)
~~~ DHCP伺服器檢視伺服器表示符欄位,以確定它自己是否被選擇為指定的客戶機提供IP地址,
~~~ 如果那些DHCP OFFER被拒絕,則DHCP伺服器會取消並保留其IP地址以用於下一個IP租約請求。
~~~ 在客戶機選擇IP的過程中,雖然客戶機選擇了IP地址,但是還沒有配置IP地址,
~~~ 而在一個網路可能有幾個DHCP伺服器,
~~~ 所以#客戶機仍然使用0.0.0.0的地址作為源地址,使用255.255.255.255作為目標地址,
~~~ #使用UDP67埠作為目的埠來廣播DHCP REQUEST資訊。
### --- DHCP伺服器確認租約
~~~ 伺服器確認租約:DHCP ACK:DHCP伺服器接受到DHCP REQUEST訊息後,
~~~ 以DHCPACK訊息的形式向客戶機廣播成功的確認,
~~~ 該訊息包含有IP地址的有效租約和其他坑你配置的資訊。
~~~ 雖然伺服器確認了客戶機的租約請求,但是客戶機還沒有收到伺服器的DHCPACK訊息,
~~~ 所以#伺服器仍然使用自己的IP地址作為源地址,使用255.255.255.255作為目標地址,
~~~ #使用UDP 68埠作為源埠來廣播DHCP ACK資訊,當客戶機收到DHCP ACK訊息時,
~~~ #它就配置了IP地址,完成了TCP/IP的初始化。
~~~ 伺服器拒絕租約:DHCP NACK (DHCP NAK)
~~~ 如果DHCP REQUEST不成功,例如客戶機試圖租約先前的IP地址,但該IP地址不再可用,
~~~ 或者因為客戶機移到其它子網,該IP無效時,DHCP伺服器將廣播否定確認訊息DHCP NACK,
~~~ 當客戶接收到不成功的確認時,它將重新開始DHCP租約過程。
~~~ #注:
~~~ 如果DHCP客戶機無法找到DHCP伺服器,
~~~ 它將從TCP/IP的B類網段169.254.0.0/16中挑選一個IP地址作為自己的IP地址,
~~~ 繼續每個5分鐘嘗試與DHCP伺服器進行通訊,一旦與DHCP服務取得聯絡,
~~~ 則客戶機放棄自動配置的IP地址,而使用DHCP伺服器分配的IP地址。
~~~ DHCP客戶機收到DHCP伺服器迴應的ACK報文後,
~~~ 通過地址衝突檢測(ARP)發現伺服器分配的地址衝突或者由於其它原因導致不能使用。
~~~ 則傳送DECLINB報文,通知伺服器所分配的IP地址不可用。
### --- DHCP客戶機續租:
~~~ DHCP客戶機會在租期過去50%的時候,
~~~ 直接向為其提供IP地址伺服器傳送DHCP REQUEST訊息包,
~~~ 如果客戶機接收到該伺服器迴應的DHCP ACK訊息包,
~~~ 客戶機就根據包中所提供的新的及其它已經更新的TCP/IP引數,更新自己的配置,
~~~ IP租用更新完成。如果沒有收到該伺服器的回覆。則客戶機繼續使用現有的IP地址,
~~~ 因為當前租期還沒有50%
~~~ 如果在租期過去50%的時候沒有更新,
~~~ 則DHCP客戶機將在租期過去87.5%的時候再次向為其提供IP地址的DHCP伺服器聯絡,
~~~ 如果還不成功,到租約的100%時候,DHCP客戶機必須放棄這個IP地址,重新申請,
~~~ 如果此時無DHCP伺服器可用,DHCP客戶機會使用169.254.0.0/16中隨機的一個地址,
~~~ 並且每隔5分鐘再進行嘗試。
===============================END===============================
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart ——W.S.Landor
來自為知筆記(Wiz)