DHCP&DHCPv6


1.DHCP in IPv4

DHCP(Dynamic Host Configuration Protocol),動態主機配置協議,分配IP地址和其他網絡參數;

DHCP三種角色:DHCP Client、DHCP Relay和DHCP Server;

DHCP端口:Client UDP68---->Server,Server UDP67---->Client;

DHCP8種報文:DHCP DISCOVER、DHCP OFFER、DHCP REQUEST、DHCP ACK、DHCP NAK、DHCP DECLINE、DHCP RELEASE、DHCP INFORM

OP(OP code):1字節,OP=1客戶端請求報文,OP=2服務器響應報文;

htype(Hardware Type):1字節,硬件類型

hlen(Hardware Length):1字節,硬件地址長度,以太網為6,48位;

hops:1字節,表示DHCP報文經過的DHCP Relay的數目,hops≤16;

xid:4字節,DHCP客戶端選取的隨機數,使DHCP服務器的回復與DHCP客戶端的報文相關聯

secs(seconds):2字節,表示客戶端從開始獲取地址或地址續租更新后所用的時間,單位是秒。

flags:2字節,16bit,只有最高位有意義;0表示客戶端請求服務器以單播形式發送響應報文;1表示客戶端請求服務器以廣播形式發送響應報文;

ciaddr(client ip address):客戶端IP;

yiaddr(your ip address):服務器分配給客戶端IP;

siaddr (server ip address):DHCP客戶端獲得啟動配置信息的服務器的IP地址;

giaddr(gateway ip address):表示第一個DHCP中繼的IP地址;

chaddr (client hardware address):表示客戶端的MAC地址;

sname (server host name):表示客戶端獲取配置信息的服務器名字;

file (file name):表示客戶端需要獲取的啟動配置文件名;

options:表示DHCP的選項字段,最多為312字節;1字節Type+1字節Length+Value(由Length決定)

options53決定了DHCP報文了類型,很多option代碼代表了不同的意思;

1.1客戶端首次接入網絡DHCP無中繼工作過程

 

 

第一階段:Client廣播Discover---->同網段所有設備或Relay;

第二階段:Server會比較一下Client希望的租期和自己配置的租期,提供一個時間短的租期;

第三階段:如收到多個Offer,只接第一個,Request(Server標識符、客戶端IP地址)廣播通知所有Server;

第四階段:Client收到ACK,發送免費ARP確認是否地址沖突;

如沖突Client發送Decline---->Server,之前過程重來;

如Server收到Request,發現無法提供這個IP了,Server發送NAK---->Client,之前過程重來;

1.2客戶端首次接入網絡DHCP有中繼工作過程

 

 

過程與無中繼基本相同,不同點如下:

第一階段:收到Discover,檢查hops,大於16則丟棄;giaddr=0,填入接收Discover接口的IP,否則不修改;修改DHCP目的IP為下一跳Relay或DHCP Server;

第二階段:提供giaddr同網段IP地址,向giaddr標識的Relay單播發送Offer,Relay檢查廣播標志位如置1,則廣播Offer,如未置1,則單播發給Client;

第三、四階段同上;

1.3客戶端重用曾用過的IP地址DHCP工作過程

 

 

Client 發送Request(Option50填入之前用過的IP)---->Server;

Server通過查看自身MAC和IP對應記錄決定是否給Client續用,如果可以---->ACK,否則沉默,直到客戶端重新發送Discover報文;

1.4客戶端更新租期DHCP工作過程

 

 

 

Client 租期50%單播發送Request---->Server,Server 發送ACK---->Client,則續租成功;

Client 租期87.5%如還未收到ACK,廣播發送Request---->Server,Server 發送ACK---->Client,則續租成功;

Client 租期100%如還未收到ACK,或者在以上過程種收到NAK,Client重新發送DHCP DISCOVER報文請求新的IP地址;

Client 租期到期前不想繼續使用IP,DHCP RELEASE---->Server; Client 發送DHCP INFORM---->請求更新配置信息;

2.DHCPv6

類似IPv4中DHCP,基於UDP,IPv6不使用廣播,使用組播報文;

分配類型:

1、手動配置

2、無狀態自動地址分配(利用NDP)

3、DHCPv6有狀態自動配置

4、DHCPv6無狀態自動配置(利用NDP獲取地址,利用DHCPv6獲取除地址以外的其他參數)

報文:

msy-type報文類型,總共13種;1Solicit2Advertise3Request4Confirm5Renew6Rebind7Reply8Release9Decline10Reconfigure11Information-Request12Relay-Forward13Relay-Reply

transaction-ID:DHCPv6交互ID,這是個隨機值,要保證服務器響應和客戶端請求兩者交互ID一致,如果服務器主動發起的報文ID為0;

options:DHCPv6的選項字段;

 

 

2.1無狀態自動地址分配

無狀態自動配置:即插即用,可以配置多個地址進行網絡無縫遷移,利用RS、RA報文實現。

無狀態自動配置,沒有DHCP的情況下,設備自己生成IPv6地址

路由器發現功能用來發現與本地鏈路相連的設備,並獲取與地址自動配置相關的前綴和其他配置參數。

在IPv6中,IPv6地址可以支持無狀態的自動配置,即主機通過某種機制獲取網絡前綴信息,然后主機自己生成地址的接口標識部分。路由器發現功能是IPv6地址自動配置功能的基礎,主要通過以下兩種報文實現:

  • 路由器請求RS(Router Solicitation)報文:Type=133,主機接入網絡后希望盡快獲取網絡前綴進行通信,此時主機立刻發送RS報文。(地址解析和DAD中用的那個叫NS,Type=135)
  • 路由器通告RA(Router Advertisement)報文:Type=134,每台設備為了讓二層網絡上的主機和設備知道自己的存在,定時都會組播發送RA報文,RA報文中會帶有網絡前綴信息,及其他一些標志位信息。(地址解析和DAD中用的那個叫NA,Type=136)

 

IPv6主機無狀態自動配置過程:

  • 根據接口標識產生鏈路本地地址。
  • 發出鄰居請求,進行重復地址檢測。
  • 如地址沖突,則停止自動配置,需要手工配置。
  • 如不沖突,鏈路本地地址生效,節點具備本地鏈路通信能力。
  • 主機會發送RS報文(或接收到設備定期發送的RA報文)。
  • 根據RA報文中的前綴信息和接口標識得到IPv6地址。

2.2DHCPv6有狀態地址分配

2.2.1DHCPv6四步交互(多用於存在多個DHCPv6服務器的情況下)

 

 

 

利用Solicit報文來定位DHCPv6服務器,收到Advertise報文后根據優先級確定使用哪個DHCPv6服務器,接着通過Request/Reply報文交互完成地址申請和分配。

2.2.2DHCPv6兩步交互

 

 

 

客戶端發送Solicit報文中攜帶Rapid Commit選項,DHCPv6支持快速分配就直接回復Reply,如果不支持按照四部交互執行。

2.3DHCPv6無狀態自動配置

IPv6地址獲得過程如2.1描述

 

 

 

客戶端以組播方式發送Information-Request報文,該報文中攜帶Option Request選項,指定DHCPv6客戶端需要從DHCPv6服務器獲取的配置參數。DHCPv6服務器單播發送Reply報文,將網絡配置參數返回給DHCPv6客戶端。

2.4DHCPv6 PD

這個全稱叫DHCPv6前綴代理DHCPv6 PD(Prefix Delegation)是一種前綴分配機制,通俗的說是分配網段的。

 

過程類似DHCPv6的有狀態地址分配,過程分四步:

1、DHCPv6 PD Client 發送Solicit報文,請求;

2、DHCPv6 PD Server發送Advertise報文確認可以提供前綴;

3、根據收到的多個Advertise報文選優先級高的,並向該服務器發送DHCPv6 request;

4、服務器回復Reply報文將地址前綴分配給客戶端使用。

如果客戶端攜帶了Rapid Commit過程同DHCPv6兩步交互

2.5DHCPv6中繼

 

1、客戶端先向FF02::1:2(組播地址)的請求報文;

2、中繼將收到的報文封裝在Relay-Forward報文的中繼消息選項(Relay Message Option)中,並將Relay-Forward報文發送給DHCPv6服務器或下一跳中繼;

3、如果客戶端和中繼不在同一鏈路,則重新構造一個新的Relay-Forward報文,並將Relay-Forward報文發送給DHCPv6服務器或下一跳中繼;

4、Server從客戶端收到Relay-Forward后解析出DHCPv6客戶端請求,將應答封裝到Relay-reply的中繼消息選項中,並將Relay-reply發給中繼;

5、DHCPv6中繼從Relay-Reply報文中解析出DHCPv6服務器的應答,轉發給DHCPv6客戶端。

2.6DHCPv6地址續租

DHCPv6服務器為DHCPv6客戶端分配的地址是有租約的,租約由生命期(包括地址的首選生命期和有效生命期構成)和續租時間點(IA的T1、T2)構成。有效生命周期前,續租,否則失效。

 

 

 

客戶端在T1時刻發送Renew(T1推薦為0.5生命期)

服務器回復Reply則可以續約,如果未收到回復,則如下圖

 

 

 

客戶端在T2時刻,向服務器組播發送Rebind(T2推薦0.8生命期),收到回復繼續使用。

否則,在生命周期到達后,地址失效不能再用


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM