家庭寬帶IPv6地址分配揭秘

2023.06.26

家庭寬帶IPv6地址分配揭秘


本文從實際家庭網絡環境出發,探索分析實際家庭寬帶網絡中設備的IPv6分配情況及原理。

Part 01背景 

2021年,工信部和中央網信辦聯合印發《IPv6流量提升三年專項行動計劃(2021-2023年)》,強調“新開通家庭寬帶、企業寬帶和專線業務應支持IPv6”,對於運營商而言,隨著IPv6的發展和演進,上到業務、內容,下到終端,都面臨一些調整,其中,終端設備能否具備IPv6的能力是完成行動計劃的關鍵因素之一。

Part 02家庭場景的組網現狀 

對於新開通的家庭寬帶用戶,運營商將派遣工作人員安裝智能網關(光貓)完成入戶安裝及調試工作,智能網關作為寬帶的入口,其LAN側支持下掛路由器或終端設備。從相關規範來看,中國移動目前入庫的家庭網關均支持IPv6地址的獲取及分發能力,但由於家庭場景的組網存在個性化的差異,實際終端側還無法100%覆蓋IPv6能力。

圖片

圖1 “中國移動智能家庭網關技術規範”-IPv6地址管理要求

在家庭網絡中,家庭寬帶中網絡潛在場景主要有以下5 種: 

(1)設備直連光貓,光貓為路由模式,這種場景下設備向光貓獲取IPv4/IPv6地址;

(2)設備接入路由器,光貓為路由模式,這種場景下路由器向光貓獲取IPv6前綴,由路由器向下掛設備分配IPv6 地址; 

(3)設備接入路由器,光貓為橋接模式,這種場景下路由器向通過PPPoE撥號,申請IPv6 前綴,由路由器向下掛設備分配IPv6 地址; 

(4)設備接入路由器,光貓為路由模式,路由器不支持IPv6,這種場景下路由器向光貓獲取IPv4 地址,下掛設備無法獲取IPv6 地址; 

(5)設備接入路由器,光貓為橋接模式,路由器不支持IPv6,這種場景下路由器通過PPPoE 撥號獲取IP 地址,下掛設備無法獲取IPv6 地址。

其中場景2是最典型的家寬網絡環境,場景4和5因路由器不支持IPv6,下掛的智能家居設備無法分配到IPv6地址。因此,路由器的IPv6能力對家庭場景的IPv6推進有很大的影響。

那麼,如何通過智能網關,向路由器、終端分配IPv6地址呢?這裡將結合IPv6的概念來詳細說明。

Part 03 IPv6概念說明 

3.1 DHCP-PD

DHCP-PD(Prefix Delegation,前綴分配)是DHCPv6的擴展,傳統的DHCPv6將地址等網絡配置參數從服務器端傳遞給IPv6客戶主機,而DHCPv6-PD實現前綴分配,即PD服務器端將一個子網範圍的前綴地址段以及DNS等其他網絡配置信息下發給PD客戶端,這就意味PD服務器下發的是一個“子網地址段”,而不是具體可以直接供主機使用的IPv6地址。

3.2 SLAAC(IETF RFC4862)

SLAAC(Stateless Address Autoconfiguration,無狀態地址自動配置)。SLAAC技術是自動獲取IP地址的技術,在IPv6中,除了配置使用DHCPv6外,還支持使用SLAAC技術獲取IPv6地址,以達到設備即插即用的效果。

SLAAC的實現依託於NDP協議中的RS報文和RA報文。在IPv6的NDP協議中,共有五種報文,而RS報文,即Router Solicitation,路由器請求報文,RA報文,即Router Advertisement,路由器公告報文。

Part 04家庭寬帶IPv6地址分配 

結合家庭中的組網環境,BRAS是IPv6地址的分配者,能根據設備能力和實際配置規模設置地址池大小。

圖片

圖2 家庭寬帶IPv6地址分配流程

針對家庭寬帶設備類型,BRAS通過SLAAC方式,向PC終端分配/64的IPv6地址,向家庭網關分配WAN口/64地址,LAN口/60地址。實際配置中,各省公司可根據業務發展和設備配置情況,配置地址池容量。

家庭網關下掛設備,其WAN口通過SLAAC或DHCPv6協議配置IPv6地址,具體方式視廠商實現而定。LAN口前綴在第64位和家庭網關LAN口前綴存在一些差異,相當於路由器基於/64前綴再次進行了細分,便於向下分配前綴地址,分配方式支持手動配置、SLAAC和DHCPv。

終端設備接入路由器後,通過手動配置、SLAAC或DHCPv6獲取IPv6地址。

Part 05抓包分析  

如上所述,終端接入家庭寬帶網絡中時,涉及到了幾個重要IPv6地址的知識,通過抓包分析能清晰理解IPv6地址的分配步驟。

步驟1:終端設備剛接入家庭網絡,設備還未分配ipv6地址,因此結合終端mac地址生成一個本地鏈路地址,該地址為tentative狀態,即未經地址衝突檢測後,通過::/128發起組播,鏈路上所有的節點都會收到NS報文,實現地址衝突檢測過程。若收到其它站點回應的NA,證明該地址不可用。抓包發現確實沒有該響應包。

圖片

圖3 生成本地鏈路地址

步驟2:結合本地前綴,主機生成的本地鏈路地址fe80::818:5ed6:27bc:59bd,向路由器發起RS消息申請RA,向鏈路中所有路由器通知本地IPv6路由器需要RA;

圖片

圖4 RS請求

步驟3:從路由器反饋RA信息包括前綴、MTU、DNS服務器信息;

運營商前綴: 2409:8a28:ec1:a080::/64,Valid Lifetime:7200s,Preferred Lifetime:3600s

圖片

圖5 RA響應

主機基於將反饋的RA信息,生成全局單播IPv6地址(GUA),除64位的網絡前綴之外,還需要一個64為接口ID來創建全局單播地址。

步驟4:配置後,主機需要驗證IPv6地址是唯一的,這裡主機會採用一種特殊構造的多播地址發送ICMPv6鄰居請求消息,該地址稱為請求節點組播地址,複製主機最後24位,來確定地址唯一,上述過程稱為DAD(重複地址檢測)。

圖片

圖6 IPv6地址重複檢測

至此,終端設備完成IPv6地址的獲取。

Part 06總結  

本文從實際家庭網絡環境出發,探索分析實際家庭寬帶網絡中設備的IPv6分配情況及原理,下篇將探討IPv6實際可用性和安全分析,敬請期待。