張宇華 中國信息通信研究院通信標(biāo)準(zhǔn)研究所工程師
侯樂青 青海省武警總隊(duì)網(wǎng)管中心高級工程師
孫晶 中國信息通信研究院電信設(shè)備認(rèn)證中心助理工程師
DS-Lite技術(shù)與應(yīng)用部署淺析
張宇華 中國信息通信研究院通信標(biāo)準(zhǔn)研究所工程師
侯樂青 青海省武警總隊(duì)網(wǎng)管中心高級工程師
孫晶 中國信息通信研究院電信設(shè)備認(rèn)證中心助理工程師
介紹了DS-Lite技術(shù)中B4和AFTR元素的功能,在此基礎(chǔ)上對IPv6用戶地址分配進(jìn)行了分析,同時(shí)說明了DHCPv6Option64協(xié)議的作用,并對DS-LiteCPE瓶頸和推薦關(guān)于DS-Lite測試方法的通信行業(yè)標(biāo)準(zhǔn)進(jìn)行了介紹。
AFTR B4 DS-Lite
DS-Lite既能夠支撐現(xiàn)有的IPv4業(yè)務(wù),也能夠刺激IPv6的部署。DS-Lite能夠降低服務(wù)提供商的IPv6部署和其他互聯(lián)網(wǎng)之間的耦合關(guān)系,使得增量部署更加容易。DS-Lite通過IPinIP(IPv4-in-IPv6)和網(wǎng)絡(luò)地址翻譯(NAT)兩種已知技術(shù)的組合使得寬帶服務(wù)提供商能夠讓用戶共享IPv4地址。
DS-Lite模型不是通過NAT的級聯(lián),而是利用IPv4-in-IPv6隧道穿越網(wǎng)絡(luò)到達(dá)一個(gè)運(yùn)營級的IPv4-IPv4NAT(AFTR),在這里用戶將共享IPv4地址,這種方法最重要的特征是在終端節(jié)點(diǎn)之間的通信使用相同的地址族,IPv6源只和IPv6目的通信,IPv4源只和IPv4目的通信,這樣就沒有了協(xié)議族翻譯的問題,極大地減輕了在負(fù)荷中可以承載IP地址應(yīng)用的任務(wù)。
1.1 DS-LiteCPE
DS-LiteCPE是一個(gè)IPv6感知的CPE,WAN接口實(shí)現(xiàn)B4接口的功能。DS-LiteCPE在內(nèi)部接口和B4接口之間不進(jìn)行NAT轉(zhuǎn)換,NAT功能應(yīng)該由服務(wù)提供商網(wǎng)絡(luò)中的AFTR執(zhí)行,這樣能夠避免出現(xiàn)兩次NAT的情況。DS-LiteCPE應(yīng)該使用內(nèi)置的DHCPv4服務(wù)器給家庭中的主機(jī)分配[RFC1918]定義的地址空間(如192.168.0.0/16),它應(yīng)該向這些家庭主機(jī)通告自己作為默認(rèn)的出口路由器,在DHCP選項(xiàng)6中通告自己是DNS服務(wù)器。另外,它也應(yīng)該作為DNS代理,接收家庭主機(jī)的IPv4DNS請求,并且使用IPv6將這些請求發(fā)送給服務(wù)提供商的DNS服務(wù)器。
具有IPv6支持能力的設(shè)備直接接入到IPv6互聯(lián)網(wǎng),這些數(shù)據(jù)包簡單地遵循IPv6路由轉(zhuǎn)發(fā),它們不走隧道轉(zhuǎn)發(fā),且不進(jìn)行任何翻譯。預(yù)計(jì)大量的具有IPv6支持能力的設(shè)備同時(shí)也具備IPv4支持能力,且在家庭網(wǎng)絡(luò)中將被簡單地配置一個(gè)[RFC1918]類型的IPv4地址,它們使用和家庭中那些只支持IPv4的設(shè)備一樣,通過IPv4-in-IPv6隧道轉(zhuǎn)發(fā)的方式接入到IPv4互聯(lián)網(wǎng)。
在寬帶家庭網(wǎng)絡(luò)中,有些設(shè)備直接連接到寬帶服務(wù)提供商。此場景下,用戶設(shè)備是一個(gè)支持雙棧的主機(jī),但是服務(wù)提供商只提供IPv6接入。設(shè)備本身就扮演B4的角色,IPv4業(yè)務(wù)需要通過IPv4-in-IPv6隧道轉(zhuǎn)發(fā),就像有家庭網(wǎng)關(guān)/CPE的情況。IPv6業(yè)務(wù)通過IPv6發(fā)送DNS請求到配置好的IPv6DNS服務(wù)器,IPv6數(shù)據(jù)包根據(jù)IPv6路由轉(zhuǎn)發(fā),不通過任何隧道,并且不會進(jìn)行任何翻譯。這些設(shè)備可以運(yùn)行任何IPv4和IPv6業(yè)務(wù)的組合。
1.2 B4和AFTR元素
(1)B4元素
B4元素應(yīng)該是一個(gè)支持雙棧節(jié)點(diǎn)實(shí)現(xiàn)的功能,或者是一個(gè)直連設(shè)備,或者是一個(gè)CPE,它們和AFTR之間建立一條隧道。B4元素可以是一個(gè)支持雙棧的主機(jī)或者CPE。隧道應(yīng)該是一個(gè)多點(diǎn)到點(diǎn)的IPv4-in-IPv6隧道,終結(jié)在服務(wù)提供商網(wǎng)絡(luò)中的AFTR。
使用任何封裝(IPv4-in-IPv6或者其他的)來承載IPv4流量通過IPv6網(wǎng)絡(luò)將會減少數(shù)據(jù)報(bào)的有效MTU,處理這個(gè)問題時(shí),路徑MTU發(fā)現(xiàn)[RFC1191]不是一個(gè)可靠的方法。一個(gè)解決這個(gè)問題的方法是服務(wù)提供商增加所有B4元素和AFTR元素之間鏈路的MTU的大小,至少是40字節(jié),以滿足一個(gè)未分片的IPv4數(shù)據(jù)報(bào)加上IPv6頭后所形成的IPv6包的大小。但是,不是所有的服務(wù)提供商都能夠增加他們網(wǎng)絡(luò)中鏈路的MTU,所以當(dāng)B4元素輸出鏈路的MTU不能滿足增加的IPv6頭,B4元素必須能夠執(zhí)行分片和重組。原始的IPv4包加上IPv6封裝后可以是超過MTU的,被封裝在內(nèi)的IPv4包是不能被分片的,分片只能發(fā)生在IPv6封裝之后;重組只能發(fā)生在IPv4包解封裝之前。
為了配置IPv4-in-IPv6隧道,B4元素需要AFTR元素的IPv6地址。這個(gè)IPv6地址能夠通過手工配置在CPE上,或是CPE通過DHCPv6方式自動(dòng)發(fā)現(xiàn)AFTR端隧道地址。
B4元素通過DHCPv6(或者其他類似的經(jīng)由IPv6的方法)學(xué)習(xí)到DNSv6服務(wù)器的地址,B4將通過IPv6執(zhí)行所有的DNS解析,可以向下游IPv6節(jié)點(diǎn)傳遞這個(gè)IPv6地址,但不能向下游IPv4節(jié)點(diǎn)傳遞這個(gè)地址。因此,B4元素還應(yīng)該扮演DNS代理的角色工作。
(2)AFTR元素
AFTR元素是一個(gè)節(jié)點(diǎn)組合了IPv4-in-IPv6隧道終點(diǎn)和IPv4-IPv4網(wǎng)絡(luò)地址翻譯的功能。隧道是一個(gè)點(diǎn)到多點(diǎn)的IPv4-in-IPv6隧道,終結(jié)在B4元素。如上文所述,分片和重組在隧道的終點(diǎn)是需要被考慮的,因此如果鏈路MTU不能適應(yīng)封裝的大小時(shí),AFTR必須執(zhí)行分片和重組。分片只能發(fā)生在封裝后的IPv6數(shù)據(jù)包,重組必須在IPv6數(shù)據(jù)包解封裝之前完成。
●擴(kuò)展的綁定表
AFTR元素中的網(wǎng)絡(luò)地址翻譯綁定表被擴(kuò)展包括輸入數(shù)據(jù)包的源IPv6地址,這個(gè)IPv6地址被用于區(qū)分服務(wù)提供商用戶地址空間中重疊的IPv4地址。通過在擴(kuò)展的IPv4網(wǎng)絡(luò)地址翻譯綁定表中的反向查找,當(dāng)數(shù)據(jù)包從Internet返回時(shí),ARTR知道如何重構(gòu)IPv6封裝。
●應(yīng)用層網(wǎng)關(guān)
AFTR執(zhí)行NAT44,并且繼承了網(wǎng)絡(luò)地址翻譯的限制,有些協(xié)議要求在NAT設(shè)備上實(shí)現(xiàn)ALG功能,以便能夠穿越NAT設(shè)備,例如主動(dòng)的FTP就要求ALG功能以正常工作。ALG會消耗資源,并且存在多種ALG,AFTR是一個(gè)支持大量B4元素的共享的網(wǎng)絡(luò)設(shè)備,在AFTR上實(shí)現(xiàn)當(dāng)前或者未來出現(xiàn)的所有的ALG是不太現(xiàn)實(shí)的。
2.1 CPE橋接模式
CPE為終端用戶所在出口網(wǎng)關(guān),設(shè)置為橋接型模式,終端主機(jī)設(shè)備安裝DS-Lite客戶端軟件。雙棧主機(jī)設(shè)備透過橋接型CPE與BRAS設(shè)備相連,通過PPPoE撥號從BRAS獲取IPv6地址,該IPv6地址將作為隧道ID。
雙棧主機(jī)可通過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操作界面手動(dòng)添加AFTR端隧道IPv6地址,后者需要CPE和AFTR同時(shí)支持DHCPv6選項(xiàng)64。
以下為DHCPv6Option64方式獲取AFTR端隧道地址的流程:
圖1 CPE路由模式示意圖
表1 CPE路由模式分配流程
●DHCPv6Client向DHCPv6Server發(fā)送的Solicit和Request消息中攜帶Option Request(6),請求DHCPv6Server回復(fù)RequestedOptionCode(64),具體參見圖2。
●DHCPv6server向DHCPv6Client回復(fù)的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回復(fù)CPE,告知該域名的AAAA記錄,CPE得到AFTR端的隧道IPv6地址,為DS-Lite隧道的建立做好了準(zhǔn)備,具體參見圖5。
4.1 DS-Lite場景—家庭用戶接入
DS-Lite場景—家庭用戶接入?yún)⒁妶D6。場景概述:
城域網(wǎng)部署雙棧,BRAS、CR均支持雙棧。CPE與CGN之間建立4in6隧道,用于透傳IPv4報(bào)文。隧道標(biāo)識為CPEWAN口的IPv6地址。僅在CGN進(jìn)行NAT轉(zhuǎn)換,將私網(wǎng)IPv4地址轉(zhuǎn)換為公網(wǎng)IPv4地址。CPE取消本地的NAT轉(zhuǎn)換,CGN需要通過隧道標(biāo)識+私網(wǎng)IPv4地址標(biāo)識用戶。
BRAS僅為CPE分配IPv6地址(WAN口前綴、LAN口PD前綴)。CPE自發(fā)分配IPv4地址,但不保證唯一性。
4.2 業(yè)務(wù)流程
業(yè)務(wù)流程參見圖7。
4.3 IPv4-in-IPv6隧道的建立和釋放
IPv4-in-IPv6隧道的建立和釋放如圖8所示。
●CPE獲得CGN域名后會主動(dòng)發(fā)起IPv6DNS請求,目的是需要獲得CGN域名對應(yīng)的IPv6地址。
●去往Internet的IPv4報(bào)文會觸發(fā)CPE和CGN之間的4in6隧道的建立。
●如果PPPoE Session被釋放,那么對應(yīng)的4in6隧道也會隨之釋放。
圖4 DHCPv6 Option64方式獲取AFTR端隧道地址的流程3
圖5 DHCPv6 Option64方式獲取AFTR端隧道地址的流程4
●IPv4-in-IPv6隧道屬雙向、無狀態(tài)的隧道,只承載IPv4業(yè)務(wù)。純IPv6網(wǎng)絡(luò)承載IPv6業(yè)務(wù)。
4.4 端口預(yù)分配
●端口預(yù)分配的觸發(fā)場景:在用戶上線時(shí)預(yù)留端口,用戶下線時(shí)釋放。
●端口預(yù)分配:為該用戶/源IP分配一段連續(xù)的端口號,用于相關(guān)報(bào)文的NAT轉(zhuǎn)換。相同用戶或者CPE源IPv6的所有數(shù)據(jù)流使用相同的外部地址和預(yù)留端口段。
預(yù)分配的端口段參見表2。
綜上所述,一臺功能完善的DS-LiteCPE設(shè)備應(yīng)在路由模式下盡可能支持B4獲取地址的多種方式,包括PPPoEv6+RA(0,1)+ DHCPv6 PD和PPPoEv6+RA(1,1)+DHCPv6 NA+PD。DS-LiteCPE設(shè)備還應(yīng)支持對于大于隧道MTU報(bào)文的分片處理功能,以及隧道終端(AFTR端)地址的發(fā)現(xiàn)能力。
目前的DS-LiteCPE設(shè)備可能會出現(xiàn)以下現(xiàn)象或問題:
(1)B4通過PPPoEv6+RA(1,1)+ DHCPv6NA+PD方式獲取地址時(shí)會出現(xiàn)DHCPv6沒有真正為B4分配128位的全局IPv6地址,而是B4在獲取的DHCPv6PD地址池中取用一個(gè),這樣的方式會造成LAN內(nèi)IPv6用戶與B4使用了同一地址段的地址。
(2)CPE設(shè)備的分片機(jī)制與RFC6333規(guī)定的方式不一致。CPE接收用戶側(cè)的數(shù)據(jù)后先對IPv4報(bào)文進(jìn)行分片,之后才加載隧道封裝發(fā)送給AFTR,AFTR收到后先拆除隧道封裝,再轉(zhuǎn)發(fā)IPv4分片給目的地,最后由目的地重組IPv4報(bào)文。這個(gè)過程不符合RFC6333的規(guī)定,CPE應(yīng)該先封裝后分片。
表2 預(yù)分配的端口段
(3)隧道終端地址(AFTR端地址)目前看來是手工配置的,對于大多數(shù)產(chǎn)品尚不能通過DHCPv6Option64方式自動(dòng)發(fā)現(xiàn)AFTR端IPv6地址。
圖6 DS-Lite場景—家庭用戶接入
圖7 業(yè)務(wù)流程
輕型雙棧(DS-Lite)測試內(nèi)容可參見中國通信標(biāo)準(zhǔn)化協(xié)會發(fā)布的通信行業(yè)標(biāo)準(zhǔn)YD/TXXXX《輕型雙棧(DS-Lite)測試方法》,該標(biāo)準(zhǔn)適用于支持DS-Lite功能的AFTR和CPE設(shè)備,不適用于純IPv6設(shè)備(設(shè)備不包含IPv4協(xié)議棧)以及移動(dòng)終端設(shè)備。該標(biāo)準(zhǔn)規(guī)定了基于固網(wǎng)寬帶接入方式下采用IP-in-IP封裝技術(shù)實(shí)現(xiàn)IPv4OverIPv6隧道的DS-Lite技術(shù)測試方法,具體包含如下測試內(nèi)容:
圖8 IPv4-in-IPv6隧道的建立和釋放
(1)DS-Lite用戶側(cè)CPE功能測試
●CPEWAN口通過PPPoEv6與ND方式獲取IPv6地址測試。
●CPEWAN口通過PPPoEv6與DHCPv6方式獲取IPv6地址測試。
●主機(jī)作為B4時(shí)IPv6地址獲取測試。
●CPE手工配置AFTR端隧道地址功能測試。
●CPE通過DHCPv6方式自動(dòng)發(fā)現(xiàn)AFTR端隧道地址的功能測試。
(2)DS-Lite隧道功能測試
●DS-Lite隧道封裝及解封裝能力測試。
●DS-Lite隧道分片及重組能力測試。
(3)DS-Lite網(wǎng)絡(luò)側(cè)AFTR功能測試
●DS-Lite基本雙棧功能測試。
●重疊私有IPv4地址測試。
●NAT功能測試。
●NATALG功能測試。
●互聯(lián)網(wǎng)訪問功能及DNS解析測試。
(4)DS-Lite安全功能測試
●DS-LiteRADIUS屬性上報(bào)和溯源功能測試。
●DS-Lite日志功能。
(5)DS-Lite策略控制功能測試
●非法CPE限制功能測試。
●NAT會話控制功能(在不同的DS-Lite實(shí)例下)。
●NAT會話控制功能(在相同的DS-Lite實(shí)例下)。
(6)DS-Lite冗余可靠性保護(hù)測試
●溫備可靠性測試(CGN板卡、獨(dú)立設(shè)備)。
●熱備可靠性測試(CGN板卡、獨(dú)立設(shè)備)。
(7)DS-Lite性能測試
●隧道建立規(guī)格測試。
●NAT會話表項(xiàng)建立規(guī)格測試。
●隧道和NAT會話表項(xiàng)建立時(shí)間測試。
●轉(zhuǎn)發(fā)性能測試(輕載)。
●轉(zhuǎn)發(fā)性能測試(滿載)。
此外,筆者建議可增加CGN業(yè)務(wù)共存測試,包括:
●DS-Lite和NAT444業(yè)務(wù)共存測試。
●NAT444實(shí)例切換至DS-Lite實(shí)例測試。
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)