最近在網(wǎng)絡建設過程中,必須面對一個實際存在的問題:當只有一根線入戶時,該如何解決CATV和寬帶業(yè)務的共存呢?這時就要考慮用到DHCP Option60了,那么DHCP Option60到底是如何來實現(xiàn)業(yè)務區(qū)分的呢?
首先先來看下DHCP協(xié)議,在DHCP協(xié)議中,定義了一個option字段,該字段主要是用來擴展DHCP協(xié)議的,Option 60 (Vendor class identifier)是DHCP報文中的一個選項字段,code為60,可以標識終端類型,根據(jù)不同的終端類型來選擇接口下的網(wǎng)關。這樣,各個廠家就可以在該字段中添加自身的標識,用于區(qū)別不同的終端。
針對與機頂盒來說具體的實現(xiàn)應該是這樣的:
1. 用戶終端(機頂盒)填好的一個域(class identifier),主要用于機頂盒標識自身的設備類型或配置,以便在DHCP server之間傳遞特殊的配置信息。
2. DHCP relay設備根據(jù)DHCP報文內的option 60域的內容判斷其屬于哪個DHCP域,并將相關網(wǎng)關地址填入GIADDR,然后進行3層轉發(fā)。
3. 不具備option 60的DHCP server將忽略該選項;否則,server在返回相應信息時應采用option 60選項。
1. Option 60報文結構
option 60格式如下圖所示:
Code Len Vendor class Identifier
+-----+-----+-----+-----+---
| 60 | n | i1 | i2 | ...
+-----+-----+-----+-----+---
:表示供應商類別標識符(Vendor Class Identifier –VCI)選項,RFC 2132 Code 定義為60
Len:為Vendor class Identifier所填內容的字節(jié)數(shù)(不包括Code和Len所占的長度),最小值為1
Vendor class Identifier:用戶自定義的Vendor class Identifier內容(根據(jù)供應商類型和DHCP客戶端配置來自定義)。
客戶端發(fā)送廠商類型和配置,這個信息是n個8位編碼,由dhcp服務端解析,廠商可能會為客戶端選擇定義特殊的廠商類標識符信息,以便表達特殊的配置或者其他關于客戶端的信息。比如:這個標識符可能編碼了客戶端的硬件配置。客戶端發(fā)送過來的服務器不能解析的類規(guī)范信息必須被忽略(盡管可能會有報告),服務器響應廠商規(guī)范信息到客戶端應該僅僅通過Option 43來完成。
1、支持OPTION60(Authentication for DHCP Messages)
功能描述:
OPTION 60功能用來完成基于標準DHCP協(xié)議,以在客戶端輸入用戶名和密碼的方式進行的地址鑒權。在機頂盒中只保留應用層賬號和密碼,應用層賬號為8位數(shù)字,在OPTION60使用接入層賬號,賬號為“ad”+應用層賬號+“@iptv”,密碼和應用層密碼一致,目前密碼暫定為固定值123465。應用層用戶名和密碼一旦輸入之后,應儲存在硬件之中。當PPPOE與DHCP接入模式相切換時如果之前已經(jīng)輸入過應用層用戶名與密碼,則要求無需再次輸入,直接過渡至新的接入方式。
2、支持OPTION 125(Vendor-ldentifying Vendor Options)
功能描述:
OPTION 125功能是對標準DHCP協(xié)議一個補充標準,該功能的標準定義在RFC 3925中。DHCP服務器在完成驗證將客戶端的IP地址等信息封裝成DHCP OFFER包的時候,將OPTION 125信息封裝DHCP OFFER包中再發(fā)送給客戶端。 客戶端收到OFFER包以后,首先查看該OFFER包所帶的OPTION 125的“Option-data 1”字段中所填寫的特征值,并與預先存儲的信息進行比對。比對結果為相同則使用此OFFER,如果比對結果不同或OFFER包中不帶OPTION 125,則將此OFFER丟棄。
2. DHCP Option 43
FIT AP和AC不在同一網(wǎng)段,F(xiàn)IT AP要注冊到AC上,DHCP服務器在給FIT AP分配IP地址的時候,會在DHCP報文里加上option 43屬性,這個內容就是AC的IP地址。
但是,RFC 2132中沒有統(tǒng)一規(guī)定這個屬性的內容,各個廠商可以根據(jù)需要定義選項的內容,如Option 43屬性。通過配置DHCP自定義選項,可以為DHCP客戶端提供廠商指定的信息。
DHCP Option 43字段是完整的TLV的格式,Type占1字節(jié),值為43,Length占1字節(jié),值為Value字段的長度,如下面所示:
Code Len Vendor-specific information
+-----+-----+-----+-----+---
| 43 | n | i1 | i2 | ...
+-----+-----+-----+-----+---
Code:表示供應商類別標識符(Vendor Specific Information)選項,RFC 2132
Len:為Vendor Specific Information所填內容的字節(jié)數(shù)(不包括Code和Len所占的長度),最小值為1
Vendor-specific information:
option 43子選項格式如下面所示:
Code Len Data item Code Len Data item Code
+----+----+----+----+----+----+----+----+----+----+----+
| T1 | n | d1 | d2| ...| T2 | n | D1 | D2 |...|...|
+----+----+----+----+----+----+----+----+----+----+----+
Code:表示option 43子選項,可以使用
Len:為option 43子選項所填內容的字節(jié)數(shù)(不包括Code和Len所占的長度),最小值為1
Data item:
目前Value字段包含兩種類型的IE,也是TLV的結構,見下表:
表
IE Type(1字節(jié)) |
IE Length(1字節(jié)) |
IE Value(長度由IE Length決定) |
0x01 |
4 |
網(wǎng)絡序的IPv4地址 |
0x02 |
可變長度 |
Domain Name |
一個DHCP Option 43字段可以包含多個IE,目前最大數(shù)目為4。
DHCP報文是承載于UDP上的高層協(xié)議報文,采用67(DHCP服務器)和68(DHCP客戶端)兩個端口號。DHCP報文的格式如下圖所示。 圖1 DHCP報文格式 < 所有DHCP提供的配置信息都在options字段中,這才是精華部分 > 報文中各字段的描述如下:
DHCP Options Option id Length(字節(jié)) 描述 1 4 Subnet Mask 3 n*4 Router(網(wǎng)關) 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 華為自定義:可配置該終端設備在發(fā)起DHCP請求時,通過Option 60攜帶域信息。ME60收到DHCP報文時,可根據(jù)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客戶端會在本地網(wǎng)絡內以廣播方式發(fā)送請求報文,這個報文成為Discover報文,目的是發(fā)現(xiàn)網(wǎng)絡中的DHCP服務器,所有收到Discover報文的DHCP服務器都會發(fā)送回應報文,DHCP客戶端據(jù)此可以知道網(wǎng)絡中存在的DHCP服務器的位置。 DHCP Offer DHCP服務器收到Discover報文后,就會在所配置的地址池中查找一個合適的IP地址,加上相應的租約期限和其他配置信息(如網(wǎng)關、DNS服務器等),構造一個Offer報文,發(fā)送給用戶,告知用戶本服務器可以為其提供IP地址。< 只是告訴client可以提供,是預分配,還需要client通過ARP檢測該IP是否重復> DHCP Request DHCP客戶端可能會收到很多Offer,所以必須在這些回應中選擇一個。Client通常選擇第一個回應Offer報文的服務器作為自己的目標服務器,并回應一個廣播Request報文,通告選擇的服務器。DHCP客戶端成功獲取IP地址后,在地址使用租期過去1/2時,會向DHCP服務器發(fā)送單播Request報文續(xù)延租期,如果沒有收到DHCP ACK報文,在租期過去3/4時,發(fā)送廣播Request報文續(xù)延租期。 DHCP ACK DHCP服務器收到Request報文后,根據(jù)Request報文中攜帶的用戶MAC來查找有沒有相應的租約記錄,如果有則發(fā)送ACK報文作為回應,通知用戶可以使用分配的IP地址。 DHCP NAK 如果DHCP服務器收到Request報文后,沒有發(fā)現(xiàn)有相應的租約記錄或者由于某些原因無法正常分配IP地址,則發(fā)送NAK報文作為回應,通知用戶無法分配合適的IP地址。 DHCP Release 當用戶不再需要使用分配IP地址時,就會主動向DHCP服務器發(fā)送Release報文,告知服務器用戶不再需要分配IP地址,DHCP服務器會釋放被綁定的租約。 DHCP Decline DHCP客戶端收到DHCP服務器回應的ACK報文后,通過地址沖突檢測發(fā)現(xiàn)服務器分配的地址沖突或者由于其他原因導致不能使用,則發(fā)送Decline報文,通知服務器所分配的IP地址不可用。 DHCP Inform DHCP客戶端如果需要從DHCP服務器端獲取更為詳細的配置信息,則發(fā)送Inform報文向服務器進行請求,服務器收到該報文后,將根據(jù)租約進行查找,找到相應的配置信息后,發(fā)送ACK報文回應DHCP客戶端。< 極少用到>
DHCP報文