家庭宽带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实际可用性和安全分析,敬请期待。

责任编辑:庞桂玉 来源: 移动Labs
相关推荐

2023-06-25 14:36:31

2011-08-30 14:38:29

2013-03-28 10:12:49

网络地址IPv6地址解析

2010-05-25 10:28:20

IPv6地址类型

2010-05-26 15:37:02

IPv6地址类型

2012-05-31 16:33:18

IPv6地址IPv6

2010-05-31 17:32:15

IPv6地址规划

2011-08-24 14:14:19

2020-06-28 14:12:19

IPv6地址IPv4

2013-07-31 09:38:16

IPv6地址单播地址多播地址

2017-03-16 14:50:26

IPv4IPv6互联网

2010-05-27 14:11:09

IPv6地址

2010-06-01 13:55:09

IPv6地址

2010-05-31 11:12:27

IPv6地址自动配置

2018-03-12 14:14:28

LinuxULAIPv6

2010-05-26 15:29:30

IPv6地址

2010-06-02 13:53:26

IPv6地址

2012-06-14 09:16:33

2012-06-14 16:56:25

2015-02-28 10:02:39

点赞
收藏

51CTO技术栈公众号