DHCP option82_dhcp中继配置命令
option 82是dhcp報文中的中繼代理信息選項(relay agent information option)。當dhcp client發送請求報文到dhcp server時,若需要經過dhcp中繼,則由dhcp中繼將option 82添加到請求報文中。option 82包含很多sub-option,本文中的option 82只支持sub-option 1、sub-option 2和sub-option 5。sub-option 1中定義了代理電路id(即circuit id),sub-option 2中定義了代理遠程id(即 remote id),sub-option 5為鏈路選擇(link selection)子項,該選項中包含了dhcp中繼添加的ip地址。
option 82實現了dhcp客戶端和dhcp中繼設備的地址信息在dhcp服務器上的記錄,與其他軟件配合使用可以實現dhcp分配的限制和計費功能。
1. 概念介紹
option
dhcp報文中的一個選項,該選項在dhcp報文中為可變長的字段,option選項中包含了部分租約信息、報文類型等。option選項中最多可以包括255個option,最少為1個option。
option 82
option 82又稱為中繼代理信息選項(relay agent information option),是dhcp報文中option內容的一部分。rfc3046中定義了option 82,其位置在option 255之前而在其他option之后。option 82中可以包含最多255個sub-option,若定義了option 82,至少要定義一個sub-option。目前option 82中常用的sub-option 1、sub-option 2和sub-option 5。
sub-option 1
sub-option 1是option 82的一個子選項,為代理電路id(即circuit id)子項。子選項通常在dhcp中繼設備上配置,定義了在傳輸報文的時候要攜帶dhcp客戶端所連接交換機端口的vlan-id及二層端口號。通常sub-option 1與sub-option 2子選項要共同使用來標識dhcp源端的信息。
sub-option 2
sub-option 2也是option 82的一個子選項,為代理遠程id(即remote id)子項。該子選項也通常在dhcp中繼設備上配置,定義了在傳輸報文的時候要攜帶中繼設備的mac地址信息。通常與sub-option 1子選項要共同使用來標識dhcp源端的信息。
sub-option 5
sub-option 5也是option 82的一個子選項。為鏈路選擇(link selection)子項,該選項中包含了dhcp中繼添加的ip地址。這樣dhcp server在分配ip地址給dhcp客戶端的時候就可以分配與該地址同網段的ip地址。
2. option 82報文組成
在dhcp報文中有一個options字段,該字段可以為空,也可以為某一個特性的option,option 82就是其中的一種option,可以有多個sub-option 組成。
code:標識了中繼代理信息選項的序號。本報文中序號為82,即option 82。option 82 在其他option之后,在option 255 之前。
len:為代理信息域(agent information field)的長度。
agent information field:代理信息域。在該字段中指定了使用的sub-option。
sub-option報文結構
subopt:子選項序號,本報文中為sub-option 1、sub-option 2和sub-option 5。各子選項含義如下:
1表示代理電路id(circuit id)子項
2表示代理遠程id(remote id)子項
5表示鏈路選擇(link selection)子項
len:標識sub-option value域的長度。
sub-option value:sub-option的值。例如sub-option 1對應的值為circuit id。
3. 標準模式與華為固網模式
dhcp relay支持option 82,在收到從client到server的請求報文中添加option 82,以標識用戶的位置信息。現在只添加sub-option 1和sub-option 2,不添加sub-option5。在標準模式,sub-option 1是接收報文的二層端口號和vlan號,sub-option 2是接收報文設備的mac地址。
為了更加精確地定位用戶位置信息,我司針對dslam應用提出ip dslam用戶物理位置定位解決方案,定義了dhcp option 82的華為固網模式,其中option 82的sub-option1表示“節點標識+框號/槽號/子槽/端口號+vlan”;sub-option2沒有改變,表示的是的relay系統mac地址;sub-option5 relay不添加。
option 82的sub-option1中的節點標識為字符串,缺省可以采用設備的管理接口mac地址,形如:00-e0-fc-0d-dc-ec。為了提高維護的方便性,也允許網絡管理者通過配置修改用戶節點標識,可以選擇是用relay的橋mac或設備名(通過sysname配置的),也可以由用戶自行輸入字符串。
華為固網模式option 82中sub-option 1的標識格式:
accessnodeidentifier eth frame/slot/subslot/port:vlan
對各段的解釋如下:
accessnodeidentifier:接入節點標識,長度不超過50個字符的字符串,缺省為橋mac
frame:框號,不支持的為0
eth:以太端口類型
slot:槽號
subslot:子槽號
port:端口號
vlan:vlan標識
4. 相關規范
與dhcp中繼支持option 82相關的協議規范有:
rfc2131 dynamic host configuration protocol
rfc3046 dhcp relay agent information option
5. dhcp 中繼支持option 82工作機制
dhcp客戶端通過dhcp中繼從dhcp服務器獲取ip地址的過程與同網段的dhcp獲取過程完全相同,都要經歷發現、提供、選擇和確認四個階段,詳細的過程請參考本手冊“網絡層協議”的dhcp部分。這里將只介紹dhcp中繼支持option 82時的工作機制,具體如下:
dhcp客戶端在初始化時以廣播的形式發送請求報文;
若本地網絡存在dhcp服務器,則客戶端可以直接從該服務器獲取ip地址。
若本地網絡沒有dhcp服務器,則與本網絡相連的dhcp中繼設備對該廣播報文進行相應的處理。dhcp中繼設備將檢查報文中是否已有option 82選項,進行相應的處理。
如果報文中已有option 82,設備按照配置的策略對該報文進行處理(丟棄、用中繼設備本身的option 82項替代報文中原有的option 82項或保持報文原有的option 82項),然后將請求報文轉發給dhcp服務器。
若請求報文中沒有option 82選項,則dhcp中繼設備將option 82選項添加到報文中后轉發給dhcp服務器。此時,請求報文中將包含了dhcp客戶端所連接的交換機端口的mac地址、所屬的vlan以及dhcp中繼設備本身的mac地址。
dhcp服務器收到dhcp中繼設備轉發的dhcp請求報文后,將記錄報文中option選項所攜帶的信息,然后將帶著dhcp配置信息以及option 82信息的報文發給dhcp中繼。
dhcp中繼收到dhcp服務器的返回報文后將剝離報文中的option 82信息,然后將帶有dhcp配置信息的報文轉發給dhcp客戶端。
dhcp客戶端發送的請求報文有四種,分別為dhcp_discover報文、dhcp_request報文、dhcp_release報文和dhcp_inform報文,dhcp中繼設備將在四種報文中都添加option 82選項,因為不同廠商生產的dhcp服務器設備對請求報文的處理機制不同,有些設備處理dhcp_discover報文中的option 82信息,而有些處理dhcp_request報文中的option 82信息。
DHCP報文
DHCP報文是承載于UDP上的高層協議報文,采用67(DHCP服務器)和68(DHCP客戶端)兩個端口號。DHCP報文的格式如下圖所示。
圖1DHCP報文格式
< 所有DHCP提供的配置信息都在options字段中,這才是精華部分 >
報文中各字段的描述如下:
- op,報文類型,1表示請求報文,2表示回應報文。
- htype,硬件地址類型,1表示10Mb/s的以太網的硬件地址。
- hlen,硬件地址長度,以太網中該值為6。
- hops,跳數。客戶端設置為0,也能被一個代理服務器設置。
- xid,事務ID,由客戶端選擇的一個隨機數,被服務器和客戶端用來在它們之間交流請求和響應,客戶端用它對請求和應答進行匹配。該ID由客戶端設置并由服務器返回,為32位整數。
- secs,由客戶端填充,表示從客戶端開始獲得IP地址或IP地址續借后所使用了的秒數。
- flags,標志字段。這個16比特的字段,目前只有最左邊的一個比特有用,該位為0,表示單播,為1表示廣播。
- ciaddr,客戶端的IP地址。只有客戶端是Bound、Renew、Rebinding狀態,并且能響應ARP請求時,才能被填充。
- yiaddr,”你自己的”或客戶端的IP地址。
- siaddr,表明DHCP協議流程的下一個階段要使用的服務器的IP地址。
- giaddr,DHCP中繼器的IP地址。//注意:不是地址池中定義的網關
- chaddr,客戶端硬件地址。客戶端必須設置它的”chaddr”字段。UDP數據包中的以太網幀首部也有該字段,但通常通過查看UDP數據包來確定以太網幀首部中的該字段獲取該值比較困難或者說不可能,而在UDP協議承載的DHCP報文中設置該字段,用戶進程就可以很容易地獲取該值。
- sname,可選的服務器主機名,該字段是空結尾的字符串,由服務器填寫。
- file,啟動文件名,是一個空結尾的字符串。DHCP Discover報文中是”generic”名字或空字符,DHCP Offer報文中提供有效的目錄路徑全名。
- options,可選參數域,格式為”代碼+長度+數據”。
DHCP Options
|
Option id |
Length(字節) |
描述 |
|
1 |
4 |
Subnet Mask |
|
3 |
n*4 |
Router(網關) |
|
6 |
n*4 |
DNS Server |
|
7 |
n*4 |
Log Server |
|
26 |
2 |
Interface MTU |
|
33 |
n*8 |
Static route |
|
35 |
4 |
ARP cache timeout |
|
42 |
n*4 |
NTP servers |
|
51 |
4 |
IP address lease time |
|
53 |
1 |
Message type 1-DHCPDISCOVER 2-DHCPOFFER 3-DHCPREQUEST 4-DHCPDECLINE 5-DHCPACK 6-DHCPNAK 7-DHCPRELEASE 8-DHCPINFORM |
|
54 |
4 |
DHCP Server Identifier |
|
60 |
n |
華為自定義:可配置該終端設備在發起DHCP請求時,通過Option 60攜帶域信息。ME60收到DHCP報文時,可根據Option 60中攜帶的域信息來分配IP地址。 |
|
82 |
n |
華為自定義:ME60作為DHCP Relay,在中繼用戶DHCP報文時,可在Option 82中填寫用戶的物理位置信息,通知DHCP服務器按物理位置信息對為用戶分配IP地址。 |
DHCP報文類型
DHCP共有八種報文,分別為DHCP Discover、DHCP Offer、DHCP Request、DHCP ACK、DHCP NAK、DHCP Release、DHCP Decline、DHCP Inform。各報文類型功能如表1所述。
|
DHCP報文類型 |
描述 |
|
DHCP Discover |
DHCP客戶端請求地址時,并不知道DHCP服務器的位置,因此DHCP客戶端會在本地網絡內以廣播方式發送請求報文,這個報文成為Discover報文,目的是發現網絡中的DHCP服務器,所有收到Discover報文的DHCP服務器都會發送回應報文,DHCP客戶端據此可以知道網絡中存在的DHCP服務器的位置。 |
|
DHCP Offer |
DHCP服務器收到Discover報文后,就會在所配置的地址池中查找一個合適的IP地址,加上相應的租約期限和其他配置信息(如網關、DNS服務器等),構造一個Offer報文,發送給用戶,告知用戶本服務器可以為其提供IP地址。< 只是告訴client可以提供,是預分配,還需要client通過ARP檢測該IP是否重復> |
|
DHCP Request |
DHCP客戶端可能會收到很多Offer,所以必須在這些回應中選擇一個。Client通常選擇第一個回應Offer報文的服務器作為自己的目標服務器,并回應一個廣播Request報文,通告選擇的服務器。DHCP客戶端成功獲取IP地址后,在地址使用租期過去1/2時,會向DHCP服務器發送單播Request報文續延租期,如果沒有收到DHCP ACK報文,在租期過去3/4時,發送廣播Request報文續延租期。 |
|
DHCP ACK |
DHCP服務器收到Request報文后,根據Request報文中攜帶的用戶MAC來查找有沒有相應的租約記錄,如果有則發送ACK報文作為回應,通知用戶可以使用分配的IP地址。 |
|
DHCP NAK |
如果DHCP服務器收到Request報文后,沒有發現有相應的租約記錄或者由于某些原因無法正常分配IP地址,則發送NAK報文作為回應,通知用戶無法分配合適的IP地址。 |
|
DHCP Release |
當用戶不再需要使用分配IP地址時,就會主動向DHCP服務器發送Release報文,告知服務器用戶不再需要分配IP地址,DHCP服務器會釋放被綁定的租約。 |
|
DHCP Decline |
DHCP客戶端收到DHCP服務器回應的ACK報文后,通過地址沖突檢測發現服務器分配的地址沖突或者由于其他原因導致不能使用,則發送Decline報文,通知服務器所分配的IP地址不可用。 |
|
DHCP Inform |
DHCP客戶端如果需要從DHCP服務器端獲取更為詳細的配置信息,則發送Inform報文向服務器進行請求,服務器收到該報文后,將根據租約進行查找,找到相應的配置信息后,發送ACK報文回應DHCP客戶端。< 極少用到> |
總結
以上是生活随笔為你收集整理的DHCP option82_dhcp中继配置命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Jerry Wang的微信公众号开发系列
- 下一篇: Jerry Wang的微信小程序开发系列