張宇華 中國信息通信研究院通信標準研究所工程師
侯樂青 青海省武警總隊網管中心高級工程師
孫晶 中國信息通信研究院電信設備認證中心助理工程師
DS-Lite技術與應用部署淺析
張宇華 中國信息通信研究院通信標準研究所工程師
侯樂青 青海省武警總隊網管中心高級工程師
孫晶 中國信息通信研究院電信設備認證中心助理工程師
介紹了DS-Lite技術中B4和AFTR元素的功能,在此基礎上對IPv6用戶地址分配進行了分析,同時說明了DHCPv6Option64協議的作用,并對DS-LiteCPE瓶頸和推薦關于DS-Lite測試方法的通信行業標準進行了介紹。
AFTR B4 DS-Lite
DS-Lite既能夠支撐現有的IPv4業務,也能夠刺激IPv6的部署。DS-Lite能夠降低服務提供商的IPv6部署和其他互聯網之間的耦合關系,使得增量部署更加容易。DS-Lite通過IPinIP(IPv4-in-IPv6)和網絡地址翻譯(NAT)兩種已知技術的組合使得寬帶服務提供商能夠讓用戶共享IPv4地址。
DS-Lite模型不是通過NAT的級聯,而是利用IPv4-in-IPv6隧道穿越網絡到達一個運營級的IPv4-IPv4NAT(AFTR),在這里用戶將共享IPv4地址,這種方法最重要的特征是在終端節點之間的通信使用相同的地址族,IPv6源只和IPv6目的通信,IPv4源只和IPv4目的通信,這樣就沒有了協議族翻譯的問題,極大地減輕了在負荷中可以承載IP地址應用的任務。
1.1 DS-LiteCPE
DS-LiteCPE是一個IPv6感知的CPE,WAN接口實現B4接口的功能。DS-LiteCPE在內部接口和B4接口之間不進行NAT轉換,NAT功能應該由服務提供商網絡中的AFTR執行,這樣能夠避免出現兩次NAT的情況。DS-LiteCPE應該使用內置的DHCPv4服務器給家庭中的主機分配[RFC1918]定義的地址空間(如192.168.0.0/16),它應該向這些家庭主機通告自己作為默認的出口路由器,在DHCP選項6中通告自己是DNS服務器。另外,它也應該作為DNS代理,接收家庭主機的IPv4DNS請求,并且使用IPv6將這些請求發送給服務提供商的DNS服務器。
具有IPv6支持能力的設備直接接入到IPv6互聯網,這些數據包簡單地遵循IPv6路由轉發,它們不走隧道轉發,且不進行任何翻譯。預計大量的具有IPv6支持能力的設備同時也具備IPv4支持能力,且在家庭網絡中將被簡單地配置一個[RFC1918]類型的IPv4地址,它們使用和家庭中那些只支持IPv4的設備一樣,通過IPv4-in-IPv6隧道轉發的方式接入到IPv4互聯網。
在寬帶家庭網絡中,有些設備直接連接到寬帶服務提供商。此場景下,用戶設備是一個支持雙棧的主機,但是服務提供商只提供IPv6接入。設備本身就扮演B4的角色,IPv4業務需要通過IPv4-in-IPv6隧道轉發,就像有家庭網關/CPE的情況。IPv6業務通過IPv6發送DNS請求到配置好的IPv6DNS服務器,IPv6數據包根據IPv6路由轉發,不通過任何隧道,并且不會進行任何翻譯。這些設備可以運行任何IPv4和IPv6業務的組合。
1.2 B4和AFTR元素
(1)B4元素
B4元素應該是一個支持雙棧節點實現的功能,或者是一個直連設備,或者是一個CPE,它們和AFTR之間建立一條隧道。B4元素可以是一個支持雙棧的主機或者CPE。隧道應該是一個多點到點的IPv4-in-IPv6隧道,終結在服務提供商網絡中的AFTR。
使用任何封裝(IPv4-in-IPv6或者其他的)來承載IPv4流量通過IPv6網絡將會減少數據報的有效MTU,處理這個問題時,路徑MTU發現[RFC1191]不是一個可靠的方法。一個解決這個問題的方法是服務提供商增加所有B4元素和AFTR元素之間鏈路的MTU的大小,至少是40字節,以滿足一個未分片的IPv4數據報加上IPv6頭后所形成的IPv6包的大小。但是,不是所有的服務提供商都能夠增加他們網絡中鏈路的MTU,所以當B4元素輸出鏈路的MTU不能滿足增加的IPv6頭,B4元素必須能夠執行分片和重組。原始的IPv4包加上IPv6封裝后可以是超過MTU的,被封裝在內的IPv4包是不能被分片的,分片只能發生在IPv6封裝之后;重組只能發生在IPv4包解封裝之前。
為了配置IPv4-in-IPv6隧道,B4元素需要AFTR元素的IPv6地址。這個IPv6地址能夠通過手工配置在CPE上,或是CPE通過DHCPv6方式自動發現AFTR端隧道地址。
B4元素通過DHCPv6(或者其他類似的經由IPv6的方法)學習到DNSv6服務器的地址,B4將通過IPv6執行所有的DNS解析,可以向下游IPv6節點傳遞這個IPv6地址,但不能向下游IPv4節點傳遞這個地址。因此,B4元素還應該扮演DNS代理的角色工作。
(2)AFTR元素
AFTR元素是一個節點組合了IPv4-in-IPv6隧道終點和IPv4-IPv4網絡地址翻譯的功能。隧道是一個點到多點的IPv4-in-IPv6隧道,終結在B4元素。如上文所述,分片和重組在隧道的終點是需要被考慮的,因此如果鏈路MTU不能適應封裝的大小時,AFTR必須執行分片和重組。分片只能發生在封裝后的IPv6數據包,重組必須在IPv6數據包解封裝之前完成。
●擴展的綁定表
AFTR元素中的網絡地址翻譯綁定表被擴展包括輸入數據包的源IPv6地址,這個IPv6地址被用于區分服務提供商用戶地址空間中重疊的IPv4地址。通過在擴展的IPv4網絡地址翻譯綁定表中的反向查找,當數據包從Internet返回時,ARTR知道如何重構IPv6封裝。
●應用層網關
AFTR執行NAT44,并且繼承了網絡地址翻譯的限制,有些協議要求在NAT設備上實現ALG功能,以便能夠穿越NAT設備,例如主動的FTP就要求ALG功能以正常工作。ALG會消耗資源,并且存在多種ALG,AFTR是一個支持大量B4元素的共享的網絡設備,在AFTR上實現當前或者未來出現的所有的ALG是不太現實的。
2.1 CPE橋接模式
CPE為終端用戶所在出口網關,設置為橋接型模式,終端主機設備安裝DS-Lite客戶端軟件。雙棧主機設備透過橋接型CPE與BRAS設備相連,通過PPPoE撥號從BRAS獲取IPv6地址,該IPv6地址將作為隧道ID。
雙棧主機可通過DHCPv6 Option 3(Identity Association for Non-temporaryAddress)獲得全局單播IPv6地址,通過DHCPv6 Option 23(DNS Recursive NameServer)獲得IPv6DNS地址。
2.2 CPE路由模式(見圖1、表1)
CPE獲取AFTR端隧道地址的方式分為手工方式和DHCPv6Option64方式,前者是在CPE操作界面手動添加AFTR端隧道IPv6地址,后者需要CPE和AFTR同時支持DHCPv6選項64。
以下為DHCPv6Option64方式獲取AFTR端隧道地址的流程:

圖1 CPE路由模式示意圖

表1 CPE路由模式分配流程
●DHCPv6Client向DHCPv6Server發送的Solicit和Request消息中攜帶Option Request(6),請求DHCPv6Server回復RequestedOptionCode(64),具體參見圖2。
●DHCPv6server向DHCPv6Client回復的Advertise和Reply消息中攜帶DHCPv6 Option 64;DHCPv6Option64中包含AFTR端隧道IPv6地址的域名信息,具體參見圖3。

圖2 DHCPv6 Option64方式獲取AFTR端隧道地址的流程1

圖3 DHCPv6 Option64方式獲取AFTR端隧道地址的流程2
●CPE為了獲取AFTR端的隧道IPv6地址向DNSv6Server請求該域名的AAAA記錄,即IPv6地址,具體參見圖4。
●DNSv6Server回復CPE,告知該域名的AAAA記錄,CPE得到AFTR端的隧道IPv6地址,為DS-Lite隧道的建立做好了準備,具體參見圖5。
4.1 DS-Lite場景—家庭用戶接入
DS-Lite場景—家庭用戶接入參見圖6。場景概述:
城域網部署雙棧,BRAS、CR均支持雙棧。CPE與CGN之間建立4in6隧道,用于透傳IPv4報文。隧道標識為CPEWAN口的IPv6地址。僅在CGN進行NAT轉換,將私網IPv4地址轉換為公網IPv4地址。CPE取消本地的NAT轉換,CGN需要通過隧道標識+私網IPv4地址標識用戶。
BRAS僅為CPE分配IPv6地址(WAN口前綴、LAN口PD前綴)。CPE自發分配IPv4地址,但不保證唯一性。
4.2 業務流程
業務流程參見圖7。
4.3 IPv4-in-IPv6隧道的建立和釋放
IPv4-in-IPv6隧道的建立和釋放如圖8所示。
●CPE獲得CGN域名后會主動發起IPv6DNS請求,目的是需要獲得CGN域名對應的IPv6地址。
●去往Internet的IPv4報文會觸發CPE和CGN之間的4in6隧道的建立。
●如果PPPoE Session被釋放,那么對應的4in6隧道也會隨之釋放。

圖4 DHCPv6 Option64方式獲取AFTR端隧道地址的流程3

圖5 DHCPv6 Option64方式獲取AFTR端隧道地址的流程4
●IPv4-in-IPv6隧道屬雙向、無狀態的隧道,只承載IPv4業務。純IPv6網絡承載IPv6業務。
4.4 端口預分配
●端口預分配的觸發場景:在用戶上線時預留端口,用戶下線時釋放。
●端口預分配:為該用戶/源IP分配一段連續的端口號,用于相關報文的NAT轉換。相同用戶或者CPE源IPv6的所有數據流使用相同的外部地址和預留端口段。
預分配的端口段參見表2。
綜上所述,一臺功能完善的DS-LiteCPE設備應在路由模式下盡可能支持B4獲取地址的多種方式,包括PPPoEv6+RA(0,1)+ DHCPv6 PD和PPPoEv6+RA(1,1)+DHCPv6 NA+PD。DS-LiteCPE設備還應支持對于大于隧道MTU報文的分片處理功能,以及隧道終端(AFTR端)地址的發現能力。
目前的DS-LiteCPE設備可能會出現以下現象或問題:
(1)B4通過PPPoEv6+RA(1,1)+ DHCPv6NA+PD方式獲取地址時會出現DHCPv6沒有真正為B4分配128位的全局IPv6地址,而是B4在獲取的DHCPv6PD地址池中取用一個,這樣的方式會造成LAN內IPv6用戶與B4使用了同一地址段的地址。
(2)CPE設備的分片機制與RFC6333規定的方式不一致。CPE接收用戶側的數據后先對IPv4報文進行分片,之后才加載隧道封裝發送給AFTR,AFTR收到后先拆除隧道封裝,再轉發IPv4分片給目的地,最后由目的地重組IPv4報文。這個過程不符合RFC6333的規定,CPE應該先封裝后分片。

表2 預分配的端口段
(3)隧道終端地址(AFTR端地址)目前看來是手工配置的,對于大多數產品尚不能通過DHCPv6Option64方式自動發現AFTR端IPv6地址。

圖6 DS-Lite場景—家庭用戶接入

圖7 業務流程
輕型雙棧(DS-Lite)測試內容可參見中國通信標準化協會發布的通信行業標準YD/TXXXX《輕型雙棧(DS-Lite)測試方法》,該標準適用于支持DS-Lite功能的AFTR和CPE設備,不適用于純IPv6設備(設備不包含IPv4協議棧)以及移動終端設備。該標準規定了基于固網寬帶接入方式下采用IP-in-IP封裝技術實現IPv4OverIPv6隧道的DS-Lite技術測試方法,具體包含如下測試內容:

圖8 IPv4-in-IPv6隧道的建立和釋放
(1)DS-Lite用戶側CPE功能測試
●CPEWAN口通過PPPoEv6與ND方式獲取IPv6地址測試。
●CPEWAN口通過PPPoEv6與DHCPv6方式獲取IPv6地址測試。
●主機作為B4時IPv6地址獲取測試。
●CPE手工配置AFTR端隧道地址功能測試。
●CPE通過DHCPv6方式自動發現AFTR端隧道地址的功能測試。
(2)DS-Lite隧道功能測試
●DS-Lite隧道封裝及解封裝能力測試。
●DS-Lite隧道分片及重組能力測試。
(3)DS-Lite網絡側AFTR功能測試
●DS-Lite基本雙棧功能測試。
●重疊私有IPv4地址測試。
●NAT功能測試。
●NATALG功能測試。
●互聯網訪問功能及DNS解析測試。
(4)DS-Lite安全功能測試
●DS-LiteRADIUS屬性上報和溯源功能測試。
●DS-Lite日志功能。
(5)DS-Lite策略控制功能測試
●非法CPE限制功能測試。
●NAT會話控制功能(在不同的DS-Lite實例下)。
●NAT會話控制功能(在相同的DS-Lite實例下)。
(6)DS-Lite冗余可靠性保護測試
●溫備可靠性測試(CGN板卡、獨立設備)。
●熱備可靠性測試(CGN板卡、獨立設備)。
(7)DS-Lite性能測試
●隧道建立規格測試。
●NAT會話表項建立規格測試。
●隧道和NAT會話表項建立時間測試。
●轉發性能測試(輕載)。
●轉發性能測試(滿載)。
此外,筆者建議可增加CGN業務共存測試,包括:
●DS-Lite和NAT444業務共存測試。
●NAT444實例切換至DS-Lite實例測試。
PrimaryAnalysison DS-LiteTechnology and ItsApplication
This paper introduces the functions of the elements B4 and AFTR , shows the features of Option 64 using in DHCPv6, the IPv6 address assignment and bottleneck of DS- Lite CPE are analyzed. Some telecommunication standards about testing methods for DS-Lite arerecommended.
AFTR,B4,DS-Lite
2015-03-10)