家庭寬帶IPv6地址分配揭秘
Part 01 背景
2021年,工信部和中央網(wǎng)信辦聯(lián)合印發(fā)《IPv6流量提升三年專項行動計劃(2021-2023年)》,強調(diào)“新開通家庭寬帶、企業(yè)寬帶和專線業(yè)務(wù)應(yīng)支持IPv6”,對于運營商而言,隨著IPv6的發(fā)展和演進,上到業(yè)務(wù)、內(nèi)容,下到終端,都面臨一些調(diào)整,其中,終端設(shè)備能否具備IPv6的能力是完成行動計劃的關(guān)鍵因素之一。
Part 02 家庭場景的組網(wǎng)現(xiàn)狀
對于新開通的家庭寬帶用戶,運營商將派遣工作人員安裝智能網(wǎng)關(guān)(光貓)完成入戶安裝及調(diào)試工作,智能網(wǎng)關(guān)作為寬帶的入口,其LAN側(cè)支持下掛路由器或終端設(shè)備。從相關(guān)規(guī)范來看,中國移動目前入庫的家庭網(wǎng)關(guān)均支持IPv6地址的獲取及分發(fā)能力,但由于家庭場景的組網(wǎng)存在個性化的差異,實際終端側(cè)還無法100%覆蓋IPv6能力。
圖1 “中國移動智能家庭網(wǎng)關(guān)技術(shù)規(guī)范”-IPv6地址管理要求
在家庭網(wǎng)絡(luò)中,家庭寬帶中網(wǎng)絡(luò)潛在場景主要有以下 5 種:
(1)設(shè)備直連光貓,光貓為路由模式,這種場景下設(shè)備向光貓獲取 IPv4/IPv6地址;
(2)設(shè)備接入路由器,光貓為路由模式,這種場景下路由器向光貓獲取 IPv6前綴,由路由器向下掛設(shè)備分配 IPv6 地址;
(3)設(shè)備接入路由器,光貓為橋接模式,這種場景下路由器向通過 PPPoE撥號,申請 IPv6 前綴,由路由器向下掛設(shè)備分配 IPv6 地址;
(4)設(shè)備接入路由器,光貓為路由模式,路由器不支持 IPv6,這種場景下路由器向光貓獲取 IPv4 地址,下掛設(shè)備無法獲取 IPv6 地址;
(5)設(shè)備接入路由器,光貓為橋接模式,路由器不支持 IPv6,這種場景下路由器通過 PPPoE 撥號獲取 IP 地址,下掛設(shè)備無法獲取 IPv6 地址。
其中場景2是最典型的家寬網(wǎng)絡(luò)環(huán)境,場景4和5因路由器不支持IPv6,下掛的智能家居設(shè)備無法分配到IPv6地址。因此,路由器的IPv6能力對家庭場景的IPv6推進有很大的影響。
那么,如何通過智能網(wǎng)關(guān),向路由器、終端分配IPv6地址呢?這里將結(jié)合IPv6的概念來詳細說明。
Part 03 IPv6概念說明
3.1 DHCP-PD
DHCP-PD(Prefix Delegation,前綴分配)是DHCPv6的擴展,傳統(tǒng)的DHCPv6將地址等網(wǎng)絡(luò)配置參數(shù)從服務(wù)器端傳遞給IPv6客戶主機,而DHCPv6-PD實現(xiàn)前綴分配,即PD服務(wù)器端將一個子網(wǎng)范圍的前綴地址段以及DNS等其他網(wǎng)絡(luò)配置信息下發(fā)給PD客戶端,這就意味PD服務(wù)器下發(fā)的是一個“子網(wǎng)地址段”,而不是具體可以直接供主機使用的IPv6地址。
3.2 SLAAC(IETF RFC4862)
SLAAC(Stateless Address Autoconfiguration,無狀態(tài)地址自動配置)。SLAAC技術(shù)是自動獲取IP地址的技術(shù),在IPv6中,除了配置使用DHCPv6外,還支持使用SLAAC技術(shù)獲取IPv6地址,以達到設(shè)備即插即用的效果。
SLAAC的實現(xiàn)依托于NDP協(xié)議中的RS報文和RA報文。在IPv6的NDP協(xié)議中,共有五種報文,而RS報文,即Router Solicitation,路由器請求報文,RA報文,即Router Advertisement,路由器公告報文。
Part 04 家庭寬帶IPv6地址分配
結(jié)合家庭中的組網(wǎng)環(huán)境,BRAS是IPv6地址的分配者,能根據(jù)設(shè)備能力和實際配置規(guī)模設(shè)置地址池大小。
圖2 家庭寬帶IPv6地址分配流程
針對家庭寬帶設(shè)備類型,BRAS通過SLAAC方式,向PC終端分配/64的IPv6地址,向家庭網(wǎng)關(guān)分配WAN口/64地址,LAN口/60地址。實際配置中,各省公司可根據(jù)業(yè)務(wù)發(fā)展和設(shè)備配置情況,配置地址池容量。
家庭網(wǎng)關(guān)下掛設(shè)備,其WAN口通過SLAAC或DHCPv6協(xié)議配置IPv6地址,具體方式視廠商實現(xiàn)而定。LAN口前綴在第64位和家庭網(wǎng)關(guān)LAN口前綴存在一些差異,相當于路由器基于/64前綴再次進行了細分,便于向下分配前綴地址,分配方式支持手動配置、SLAAC和DHCPv。
終端設(shè)備接入路由器后,通過手動配置、SLAAC或DHCPv6獲取IPv6地址。
Part 05 抓包分析
如上所述,終端接入家庭寬帶網(wǎng)絡(luò)中時,涉及到了幾個重要IPv6地址的知識,通過抓包分析能清晰理解IPv6地址的分配步驟。
步驟1:終端設(shè)備剛接入家庭網(wǎng)絡(luò),設(shè)備還未分配ipv6地址,因此結(jié)合終端mac地址生成一個本地鏈路地址,該地址為tentative狀態(tài),即未經(jīng)地址沖突檢測后,通過::/128發(fā)起組播,鏈路上所有的節(jié)點都會收到NS報文,實現(xiàn)地址沖突檢測過程。若收到其它站點回應(yīng)的NA,證明該地址不可用。抓包發(fā)現(xiàn)確實沒有該響應(yīng)包。
圖3 生成本地鏈路地址
步驟2:結(jié)合本地前綴,主機生成的本地鏈路地址fe80::818:5ed6:27bc:59bd,向路由器發(fā)起RS消息申請RA,向鏈路中所有路由器通知本地IPv6路由器需要RA;
圖4 RS請求
步驟3:從路由器反饋RA信息包括前綴、MTU、DNS服務(wù)器信息;
運營商前綴:2409:8a28:ec1:a080::/64,Valid Lifetime:7200s,Preferred Lifetime:3600s
圖5 RA響應(yīng)
主機基于將反饋的RA信息,生成全局單播IPv6地址(GUA),除64位的網(wǎng)絡(luò)前綴之外,還需要一個64為接口ID來創(chuàng)建全局單播地址。
步驟4:配置后,主機需要驗證IPv6地址是唯一的,這里主機會采用一種特殊構(gòu)造的多播地址發(fā)送ICMPv6鄰居請求消息,該地址稱為請求節(jié)點組播地址,復制主機最后24位,來確定地址唯一,上述過程稱為DAD(重復地址檢測)。
圖6 IPv6地址重復檢測
至此,終端設(shè)備完成IPv6地址的獲取。
Part 06 總結(jié)
本文從實際家庭網(wǎng)絡(luò)環(huán)境出發(fā),探索分析實際家庭寬帶網(wǎng)絡(luò)中設(shè)備的IPv6分配情況及原理,下篇將探討IPv6實際可用性和安全分析,敬請期待。