2021年,工信部和中央网信办联合印发《IPv6流量提升三年专项行动计划(2021-2023年)》,强调“新开通家庭宽带、企业宽带和专线业务应支持IPv6”,对于运营商而言,随着IPv6的发展和演进,上到业务、内容,下到终端,都面临一些调整,其中,终端设备能否具备IPv6的能力是完成行动计划的关键因素之一。
对于新开通的家庭宽带用户,运营商将派遣工作人员安装智能网关(光猫)完成入户安装及调试工作,智能网关作为宽带的入口,其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的概念来详细说明。
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,路由器公告报文。
结合家庭中的组网环境,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地址。
如上所述,终端接入家庭宽带网络中时,涉及到了几个重要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地址的获取。
本文从实际家庭网络环境出发,探索分析实际家庭宽带网络中设备的IPv6分配情况及原理,下篇将探讨IPv6实际可用性和安全分析,敬请期待。