張宇華 中國(guó)信息通信研究院技術(shù)與標(biāo)準(zhǔn)研究所工程師
陳云柯 中國(guó)信息通信研究院技術(shù)與標(biāo)準(zhǔn)研究所工程師
尹華瑛 中國(guó)信息通信研究院科技發(fā)展部工程師
在IPv6網(wǎng)絡(luò)中,終端獲取地址的方式可分為無(wú)狀態(tài)和有狀態(tài)。狀態(tài)指服務(wù)器是否維護(hù)客戶端IPv6地址信息的狀態(tài)機(jī),不維護(hù)則稱為無(wú)狀態(tài)方式,否則稱為有狀態(tài)方式。通過(guò)DHCPv6獲取地址稱為有狀態(tài)方式(Stateful Address Autoconfiguration),通過(guò)ND協(xié)議獲取地址稱為無(wú)狀態(tài)方式(Stateless Address Autoconfiguration,SLAAC)。
無(wú)狀態(tài)地址獲取方式使用ND(Neighbor Discovery)協(xié)議中的RS(Router Solicitation,路由器請(qǐng)求)和RA(Router Advertisement,路由器應(yīng)答)進(jìn)行報(bào)文交互,路由器收到客戶端發(fā)送的RS報(bào)文后,回應(yīng)RA報(bào)文,報(bào)文包含如下內(nèi)容:
(1)標(biāo)記支持的自動(dòng)配置類型(包括地址配置M標(biāo)記、其他信息配置O標(biāo)記)。
(2)一個(gè)或多個(gè)鏈路前綴以及鏈路前綴的生命周期。
(3)與客戶端相關(guān)的其它配置信息,如跳數(shù)限制、客戶端發(fā)起的報(bào)文能夠使用的最大MTU等。
(4)客戶端收到RA報(bào)文后,若RA報(bào)文中地址配置M標(biāo)記為0,并且RA報(bào)文中攜帶了正確的鏈路前綴,則客戶端使用該前綴和接口ID生成全球單播地址,完成無(wú)狀態(tài)地址配置。
在RS和RA報(bào)文交互中,若地址配置M標(biāo)記為0,其他配置信息O標(biāo)記為1,表示需要客戶端使用有狀態(tài)的方式獲取除地址外的其他配置信息;若路由器在RA報(bào)文中設(shè)置M為1、O為1,表示需要客戶端使用有狀態(tài)的方式獲取地址和其他配置信息。
有狀態(tài)信息配置(M=0,O=1)通過(guò)兩步交互完成除地址外其他配置信息的配置:
(1)客戶端收到RA后,向DHCPv6服務(wù)器發(fā)送Information-Request報(bào)文獲取DNS等配置信息。
(2)DHCPv服務(wù)器根據(jù)報(bào)文中客戶端請(qǐng)求的配置信息(如DNS信息)響應(yīng)Reply報(bào)文。
有狀態(tài)地址配置(M=1,O=1)通過(guò)4步交互完成地址和信息的配置,客戶端收到M值為1的RA報(bào)文后,發(fā)起DHCPv6報(bào)文交互:
(1)客戶端首先發(fā)送Soliciate消息查詢DHCPv6服務(wù)器,報(bào)文的目的地址為特定組播地址。請(qǐng)求中帶有ClientDUID、IA_NA、RapidCommit(當(dāng)有此選項(xiàng)時(shí),流程可執(zhí)行兩步交互)等選項(xiàng)。
(2)DHCPv6服務(wù)器收到并檢查消息合法后,則回應(yīng)Advertise報(bào)文,報(bào)文中帶有Server DUID、Client DUID、IA_NA、IAAddress(包括地址、有效生命周期)、DNS、Preference等選項(xiàng)。
(3)如果客戶端收到多個(gè)Advertise,則根據(jù)優(yōu)先級(jí)選擇一個(gè)DHCPv6服務(wù)器,并向該服務(wù)器發(fā)送Request請(qǐng)求。
(4)DHCPv6服務(wù)器回應(yīng)Reply,申請(qǐng)地址交互過(guò)程結(jié)束。
WLAN接入場(chǎng)景組網(wǎng)結(jié)構(gòu)如圖1所示。
●AP發(fā)起和AC之間建立基于IPv4的CAPWAP隧道,IPv4和IPv6的報(bào)文都通過(guò)該隧道承載。
●用戶業(yè)務(wù)報(bào)文經(jīng)終端進(jìn)行以太網(wǎng)封裝后經(jīng)無(wú)線空口802.1a/g/n轉(zhuǎn)發(fā)至AP。
●AP將報(bào)文增加業(yè)務(wù)VLAN并放入CAPWAP隧道,封裝CAPWAP頭,經(jīng)LAN口送往MxU設(shè)備。
●MxU設(shè)備增加內(nèi)層VLAN和GEM報(bào)頭送往接入網(wǎng)絡(luò)設(shè)備OLT。
●OLT去掉GEM頭和Eth報(bào)頭后,將MxU添加的VLAN替換為QinQ VLAN,然后通過(guò)二層轉(zhuǎn)發(fā)送至BRAS。
●BRAS剝離QinQVLAN,根據(jù)CAPWAP外層隧道的三層IP轉(zhuǎn)發(fā)至AC。
●AC終結(jié)CAPWAP隧道,去除業(yè)務(wù)VLAN,通過(guò)三層IP將報(bào)文轉(zhuǎn)發(fā)至城域IP網(wǎng)絡(luò)。
●CR及以上設(shè)備根據(jù)IP進(jìn)行三層轉(zhuǎn)發(fā)。
●AP發(fā)起和AC之間建立基于IPv4的CAPWAP隧道,IPv4和IPv6的報(bào)文都通過(guò)該隧道承載。
●用戶業(yè)務(wù)報(bào)文經(jīng)終端進(jìn)行以太網(wǎng)封裝后經(jīng)無(wú)線空口802.1a/g/n轉(zhuǎn)發(fā)至AP。
●AP在報(bào)文中加入業(yè)務(wù)VLAN,放入CAPWAP隧道,封裝CAPWAP頭,經(jīng)LAN口送往MxU設(shè)備。MxU設(shè)備增加內(nèi)層VLAN和GEM報(bào)頭后送往接入網(wǎng)絡(luò)設(shè)備OLT。OLT去掉GEM頭和Eth報(bào)頭后,將MxU添加的VLAN替換為QinQVLAN,然后通過(guò)二層轉(zhuǎn)發(fā)送至BRAS。
●BRAS剝離QinQVLAN,根據(jù)CAPWAP外層隧道的三層IP轉(zhuǎn)發(fā)至AC。
●AC終結(jié)CAPWAP隧道,去除業(yè)務(wù)VLAN,通過(guò)三層IP將報(bào)文轉(zhuǎn)發(fā)至城域IP網(wǎng)絡(luò)。對(duì)于去往IPv4業(yè)務(wù)網(wǎng)站的報(bào)文,需通過(guò)IPv6轉(zhuǎn)發(fā)到NAT64,NAT64轉(zhuǎn)換協(xié)議地址后通過(guò)IPv4訪問Internet;對(duì)于去往IPv6業(yè)務(wù)網(wǎng)站的報(bào)文直接轉(zhuǎn)發(fā)。
●CR及以上設(shè)備根據(jù)IP進(jìn)行三層轉(zhuǎn)發(fā)。
網(wǎng)絡(luò)中各網(wǎng)元涉及IPv6的功能要點(diǎn)列舉如下,重點(diǎn)描述涉及IPv6或雙棧部分。
圖1 WLAN接入場(chǎng)景組網(wǎng)結(jié)構(gòu)
終端支持IPv4/IPv6協(xié)議棧,支持通過(guò)DHCPv4、DHCPv6、ND等協(xié)議獲取IPv4/IPv6地址。支持采用IPv4/IPv6訪問網(wǎng)頁(yè),完成Portal認(rèn)證,支持802.1x認(rèn)證方式。
(1)支持 IPv4/IPv6協(xié)議棧,可通過(guò) DHCPv4、DHCPv6獲取IPv4/IPv6地址。支持多種發(fā)現(xiàn)方式發(fā)現(xiàn)AC,并同AC建立IPv4/IPv6的CAPWAP隧道。
●靜態(tài)配置方式:AP靜態(tài)配置AC的IPv4或IPv6地址。
●DHCP發(fā)現(xiàn)方式:DHCPv4采用Option43、DHCPv6采用Option52攜帶AC地址。
●DNS發(fā)現(xiàn)方式:AP通過(guò)DHCPv4/DHCPv6流程獲取域名及DNSv4/DNSv6服務(wù)器地址,相應(yīng)地發(fā)起IPv4或IPv6的域名獲取AC地址。
●廣播方式:AP發(fā)送廣播DISCOVER報(bào)文(IPv4,目的地址為255.255.255.255)、組播DISCOVER報(bào)文(IPv6,目的地址為FF0X::18C),發(fā)現(xiàn)本網(wǎng)絡(luò)內(nèi)的AC。
(2)隧道轉(zhuǎn)發(fā)模式下支持將終端IPv4/IPv6報(bào)文封裝在CAPWAP隧道中進(jìn)行轉(zhuǎn)發(fā)。直接轉(zhuǎn)發(fā)模式下支持終端IPv4/IPv6報(bào)文由AP直接轉(zhuǎn)發(fā)。
(1)當(dāng)采用集中轉(zhuǎn)發(fā)模式時(shí)
●如果AP/AC間建立IPv4的CAPWAP隧道,AP和AC間的傳輸設(shè)備只需支持IPv4即可。終端業(yè)務(wù)報(bào)文(IPv4或IPv6)將通過(guò)IPv4的CAPWAP隧道傳遞。
●如果AP/AC間建立IPv6的CAPWAP隧道,AP和AC間的傳輸設(shè)備則需支持IPv4/IPv6雙棧(或IPv6。IPv6部署初期,只支持IPv6單棧設(shè)備應(yīng)該較少)。
(2)當(dāng)采用本地轉(zhuǎn)發(fā)模式時(shí)
終端業(yè)務(wù)報(bào)文(IPv4或IPv6)不再進(jìn)行CAPWAP封裝并由AP直接進(jìn)行轉(zhuǎn)發(fā),因此AP和AC間的傳輸設(shè)備需支持IPv4/IPv6雙棧(三層組網(wǎng)時(shí),中間傳輸設(shè)備還需支持DHCPv6RELAY功能)。
(1)AC支持雙棧,支持將終端IPv4/IPv6報(bào)文封裝在CAPWAP隧道中進(jìn)行轉(zhuǎn)發(fā),支持IPv4/IPv6報(bào)文網(wǎng)絡(luò)側(cè)轉(zhuǎn)發(fā)。支持DHCPv4/DHCPv6Server功能,由AC完成AP、終端的地址分配(IPv4和IPv6)。由AC作為認(rèn)證點(diǎn)、計(jì)費(fèi)點(diǎn),完成IPv6單棧用戶、IPv4/IPv6雙棧用戶認(rèn)證、計(jì)費(fèi)功能等。
Portal認(rèn)證方式下,支持根據(jù)終端的HTTP請(qǐng)求的IP版本(IPv4或IPv6)構(gòu)造IPv4或IPv6的重定向URL,重定向終端至對(duì)應(yīng)IP版本的Portal頁(yè)面。
支持與Portal Server采用IPv4或IPv6對(duì)接承載Portal協(xié)議,支持Portal協(xié)議對(duì)IPv6用戶的擴(kuò)展。
支持與AAA采用IPv4或IPv6對(duì)接承載Radius協(xié)議,支持對(duì)IPv6用戶的Radius擴(kuò)展屬性。支持用戶IPv4認(rèn)證(Portal認(rèn)證、802.1x認(rèn)證等)成功后同時(shí)對(duì)IPv6業(yè)務(wù)的權(quán)限。支持IPv6用戶的計(jì)費(fèi)上報(bào)。
(2)Portal服務(wù)器支持與AC采用IPv4或IPv6對(duì)接承載Portal協(xié)議,支持Portal協(xié)議對(duì)IPv6用戶的擴(kuò)展。支持向IPv6用戶推送IPv6Portal頁(yè)面。
(3)AAA服務(wù)器支持與AC采用IPv4或IPv6對(duì)接承載Radius協(xié)議,支持對(duì)IPv6用戶的Radius擴(kuò)展屬性。支持對(duì)IPv6的管理和認(rèn)證,支持通過(guò)IPv4認(rèn)證后同時(shí)向用戶IPv6地址的授權(quán)。支持對(duì)IPv6地址的計(jì)費(fèi)。
(4)DNS64設(shè)備針對(duì)IPv4站點(diǎn)DNS解析,支持A記錄到AAAA記錄的轉(zhuǎn)換(生成IPv4向?qū)?yīng)的IPv6地址);NAT64設(shè)備IPv6終端訪問IPv4節(jié)點(diǎn)時(shí),完成IPv6到IPv4的雙向地址轉(zhuǎn)換,配合支持IPv6單棧用戶訪問IPv4站點(diǎn)。
網(wǎng)絡(luò)中各網(wǎng)元涉及IPv6的功能要點(diǎn)列舉如下:
(1)終端、AP、接入網(wǎng)、DNS64、NAT64
功能要求同3.1節(jié)描述。
(2)AC
AC支持雙棧,支持將終端IPv4/IPv6報(bào)文封裝在CAPWAP隧道中進(jìn)行轉(zhuǎn)發(fā),支持IPv4/IPv6報(bào)文網(wǎng)絡(luò)側(cè)轉(zhuǎn)發(fā)。支持DHCPv4/DHCPv6Server功能,由AC完成AP的地址分配(IPv4和IPv6)。在802.1x認(rèn)證方式時(shí),由AC作為認(rèn)證點(diǎn)、BRAS啟動(dòng)RADIUSPROXY功能,完成IPv6單棧用戶、IPv4/IPv6雙棧用戶認(rèn)證。
(3)BRAS
當(dāng)AC不具備WLAN用戶管理功能時(shí),一般配合BRAS設(shè)備組網(wǎng)。BRAS支持雙棧,支持DHCPv4/DHCPv6 Server功能,完成終端的地址分配(IPv4和IPv6)。由BRAS對(duì)WLAN用戶進(jìn)行管理,完成IPv6單棧用戶、IPv4/IPv6雙棧用戶認(rèn)證、計(jì)費(fèi)功能等。
Portal認(rèn)證方式下,支持根據(jù)終端的HTTP請(qǐng)求的IP版本(IPv4或IPv6)構(gòu)造IPv4或IPv6的重定向URL,重定向終端至對(duì)應(yīng)IP版本的Portal頁(yè)面。
支持與Portal Server采用IPv4或IPv6對(duì)接承載Portal協(xié)議,支持Portal協(xié)議對(duì)IPv6用戶的擴(kuò)展。
支持與AAA采用IPv4或IPv6對(duì)接承載Radius協(xié)議,支持對(duì)IPv6用戶的Radius擴(kuò)展屬性。支持用戶IPv4認(rèn)證(Portal認(rèn)證、802.1x認(rèn)證等)成功后同時(shí)對(duì)IPv6業(yè)務(wù)的權(quán)限。支持IPv6用戶的計(jì)費(fèi)上報(bào)。支持RadiusProxy功能,配合AC完成802.1x認(rèn)證方式下的用戶認(rèn)證。
●AP發(fā)起DHCPv4請(qǐng)求以從AC設(shè)備獲取IPv4地址,中間的BRAS開啟DHCPRelay功能。
●AC設(shè)備通過(guò)Option43攜帶自己的IPv4地址信息,告知AP設(shè)備所屬的AC設(shè)備地址信息。
●AP獲取到IPv4地址后,主動(dòng)發(fā)起和AC之間建立基于IPv4的CAPWAP隧道,完成上線流程。
當(dāng)采用集中轉(zhuǎn)發(fā)模式時(shí),后續(xù)DHCP等消息均封裝到CAPWAP報(bào)文中進(jìn)行轉(zhuǎn)發(fā)。
(1)終端獲取IPv4地址:通過(guò)DHCPv4協(xié)議從AC獲取IPv4地址以及IPv4的DNSServer信息。
(2)終端獲取IPv6地址:終端根據(jù)RA消息中的M、O標(biāo)志采用SLAAC或DHCPv6方式獲取。
●當(dāng)RA消息中M=0、O=1時(shí),終端則需采用SLAAC方式獲取地址:從RA中獲得IPv6地址前綴后,同接口ID組合后生成自己的IPv6地址。其他配置信息(例如DNS服務(wù)器地址等)則需要通過(guò)DHCPv6流程獲取。
●當(dāng)RA消息中M=1、O=1時(shí),終端則需采用DHCPv6方式獲取地址及其他配置信息。
雙棧終端IPv4Portal的認(rèn)證流程如圖2所示。
圖2 雙棧終端IPv4 Portal的認(rèn)證流程
(1)終端通過(guò)AC獲取到規(guī)劃的IPv4/IPv6地址。
(2)終端采用IPv4訪問網(wǎng)絡(luò),發(fā)起HTTP請(qǐng)求。雙棧終端根據(jù)操作系統(tǒng)不同可能會(huì)優(yōu)先選擇IPv4或IPv6,例如WIN XP優(yōu)先選擇IPv4,WIN7優(yōu)先選擇IPv6。
(3)AC截獲用戶的HTTP請(qǐng)求,由于用戶沒有認(rèn)證過(guò),就強(qiáng)制到Portal服務(wù)器,并在重定向消息中加入PortalURL、UserIP、ACID等參數(shù)。由于終端采用了IPv4發(fā)起HTTP請(qǐng)求,因此UserIP填寫IPv4地址。
(4)終端根據(jù)AC下發(fā)的重定向URL,向Portal Sever發(fā)起HTTP請(qǐng)求。
(5)Portal服務(wù)器向終端推送認(rèn)證頁(yè)面。
(6)用戶在認(rèn)證頁(yè)面上填入帳號(hào)、密碼等信息后提交到Portal服務(wù)器。
(7)Portal服務(wù)器向AC發(fā)起認(rèn)證請(qǐng)求,消息中攜帶UserIP(用戶的IPv4地址)等。
(8)AC向AAA服務(wù)器發(fā)送Access Request發(fā)起認(rèn)證。
(9)AAA服務(wù)器認(rèn)證通過(guò)后返回AccessAccept,并攜帶IPv4、IPv6相關(guān)屬性。
(10)AC向Portal服務(wù)器返回認(rèn)證通過(guò)。AC根據(jù)AAA的消息對(duì)用戶IPv4、IPv6業(yè)務(wù)進(jìn)行授權(quán),開放網(wǎng)絡(luò)訪問權(quán)限。
(11)Portal服務(wù)器向用戶推送認(rèn)證結(jié)果頁(yè)面。
(12)AC向AAA發(fā)起計(jì)費(fèi)開始請(qǐng)求,AAA回應(yīng)計(jì)費(fèi)開始響應(yīng)報(bào)文,用戶上線完畢,開始上網(wǎng)(訪問IPv4或IPv6網(wǎng)絡(luò))。
(13)在用戶上網(wǎng)過(guò)程中,AC定時(shí)向AAA上報(bào)計(jì)費(fèi)信息,包括用戶流量信息(IPv4及IPv6)。用戶下線時(shí)AC向AAA發(fā)計(jì)費(fèi)結(jié)束報(bào)文,包括用戶流量信息(IPv4及IPv6),RADIUS計(jì)費(fèi)服務(wù)器回應(yīng)AC的計(jì)費(fèi)結(jié)束報(bào)文并生成CDR。
該流程與采用IPv4的Portal認(rèn)證流程類似,要點(diǎn)如下:
(1)終端采用IPv6訪問網(wǎng)絡(luò),發(fā)起HTTP請(qǐng)求。AC截獲用戶的HTTP請(qǐng)求,并在重定向消息中加入PortalURL、UserIP(用戶的IPv6地址)、ACID等參數(shù)。
(2)Portal服務(wù)器向AC發(fā)送的請(qǐng)求中攜帶IPv6 UserIP。
(3)AAA在認(rèn)證通過(guò)后,向AC下發(fā)IPv4、IPv6相關(guān)Radius屬性。
(4)用戶認(rèn)證通過(guò)后,AC開放IPv4/IPv6業(yè)務(wù)訪問權(quán)限。
(5)AC上報(bào)計(jì)費(fèi)消息中包含IPv4/IPv6的流量計(jì)費(fèi)信息。
(1)雙棧PC終端不同的操作系統(tǒng)按照不同的順序發(fā)送不同的DNSQuery請(qǐng)求。
(2)當(dāng)DNSQuery是A資源記錄時(shí),DNS64服務(wù)器到DNSv4查詢資源并將域名解析為IPv4地址。
(3)當(dāng)DNSQuery是4A資源記錄時(shí),DNS64服務(wù)器到DNSv6查詢資源并將域名解析為IPv6地址。
(4)無(wú)論Query是A資源還是4A資源,DNS64遞歸查詢無(wú)資源記錄時(shí),均直接返回“NULL”給用戶。
IPv6單棧手機(jī):DNS域名解析流程如圖3所示。
圖3 IPv6單棧手機(jī):DNS域名解析流程圖
(1)IPv6單棧手機(jī)終端只發(fā)送IPv6的TypeAAAA請(qǐng)求。
(2)DNS64服務(wù)器首先到DNSv6查詢資源信息,如在DNSv6查詢到則將查詢到的IPv6地址返回用戶。
(3)DNS64服務(wù)器若從DNSv6查詢不到則發(fā)起TypeA請(qǐng)求到DNSv4查詢資源信息,如在DNSv4查詢到則將查詢到的IPv4地址加特定前綴封裝為IPv6地址返回用戶。
(4)如果從DNSv6和DNSv4均查詢不到,則返回NULL信息給用戶。
NAT64溯源流程如圖4所示。
從上述分析可見,IPv6WLAN用戶經(jīng)過(guò)AP上線、終端地址/DNS信息獲取、用戶認(rèn)證計(jì)費(fèi)、DNS雙棧解析等場(chǎng)景介紹,網(wǎng)絡(luò)整體基本業(yè)務(wù)流程可用圖5進(jìn)行簡(jiǎn)單概括。
圖4 NAT64溯源流程圖
圖5 WLAN業(yè)務(wù)簡(jiǎn)易流程圖