首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

下一代IP协议-IPv6地址分配原理

地址分配是IP协议的一个最基本功能。在IPv4中地址分配依靠手动静态配置,动态配置DHCP。在IPv6中地址分配同样有静态分配和动态分配两种,但IPv6的动态分配要比IPv4的更为复杂。IPv6的地址分配分为有状态分配和无状态分配两种。

从上图看到,无状态分配使用SLACC分配ip地址,有状态使用DHCP分配IP地址。

无状态地址分配(SLAAC)

无状态地址分配定义在rfc4862。它依靠NDP来实现。

IPv6的无状态自动配置就像是IPv6的“迷你dhcp”服务器。运行IPv6的路由器可以为寻找IPv6地址的客户端提供网络的前缀和网关地址。IPv6使用NDP(邻居发现协议),使用RS(路由请求)和RA(路由器通告)消息,帮助IPv6设备自动配置IPv6地址。无状态地址配置的好处是在没有DHCP的网络中无需手动配置IP地址,省事省力。另外网络整体迁移容易,当一个站点的网络前缀发生变化时,主机能够方便地进行重新编址而不影响网络连接。

配置过程:

1、设备接口先确定自己的链路本地地址;

当接口刚刚使能或者刚刚连接到一个新网络时候,设备接口需要生成一个本地链路地址。本地链路地址以FE::0格式开头,后面填充接口的唯一标识,一般填充MAC地址。

2、验证该链路本地地址在链路上的唯一性;

这个依靠邻居发现协议里面的内容实现,在上篇文章“邻居发现协议”的“重复地址检测“功能模块中有详细讲解。

3、创建全球唯一地址

创建全球唯一ip地址需要通过路由器通告(RS),路由器发送多播信息RA信息给设备接口。这部分功能在“邻居发现协议”的“路由发现”功能模块有详细讲解。

DHCPv6地址分配

DHCPv6定义在rfc3315中。DHCPv6是一种地址配置协议,它可以获得IP地址、IP前缀和在IPv6网络中操作所需的其他配置数据。

DHCPv6有无状态和有状态配置两种,无状态配置地址的获取用上面的SLAAC机制来获取IP地址,其他信息比如DNS,域名服务器信息由DHCPv6提供。

使用无状态的DHCP,DHCP服务器仅仅提供DNS服务器和域名信息。

上图是无状态DHCP信息传递示意图。客户端发送信息包含可选项内容的请求报文,dhcp服务器返回需求的信息。

DHCPv6客户端使用的UDP端口号是546,服务器的端口号为547。

DHCP地址分配过程:

DHCPv6客户端发出包含快速提交(Rapid Commit)选项的Solicit消息,请求首选快速分配地址/前缀和其他配置参数。 如果DHCPv6服务器支持快速分配,它将使用包含分配的IPv6地址/前缀和其他配置参数的Reply消息进行响应。如果DHCPv6服务器不支持快速分配,则使用下面的四条消息的分配方式。

1、DHCPv6客户端发出Solicit消息,请求IPv6地址/前缀和其他配置参数。

2、 如果Solicit消息不包含Rapid Commit选项,或者DHCPv6服务器不支持快速分配,但包含Rapid Commit选项,则DHCPv6服务器响应Advertise消息,通知DHCPv6客户端可分配的地址/前缀和其他配置参数。

3、DHCPv6客户端可能会收到不同DHCPv6服务器提供的多个Advertise消息。然后,它根据接收顺序和服务器优先级选择,并向所选服务器发送请求消息以确认。

4、DHCPv6服务器向客户端发送Reply消息,确认地址/前缀和其他配置参数已分配给客户端。

地址/前缀租约更新过程

DHCPv6服务器分配的IPv6地址/前缀是有有效期的,这是“租”来的地址,在有效期失效前需要续租。

在T1时间点,DHCPv6客户端向DHCPv6服务器单播Renew消息,该服务器为DHCPv6客户端分配了IPv6地址/前缀。T1的推荐值是首选寿命(Preferred Lifetime)的一半。然后,DHCPv6服务器以Reply消息响应,通知租约已续订。

如果DHCPv6客户端在T1发送Renew消息后没有收到DHCPv6服务器的响应,它会向T2上的所有DHCPv6服务器多播Rebind消息,即80%首选寿命(Preferred Lifetime)到期时。然后,DHCPv6服务器以Reply消息响应,通知租约已续订。如果DHCPv6客户端没有收到DHCPv6服务器的响应,则当有效生存期到期时,客户端将停止使用地址/前缀。

DHCP惟一标识符

client 使用DHCP惟一标识符(DUID)从DHCPv6服务器获取一个IP地址。它有一个2字节的DUID类型字段,一个可变长度标识符字段最多可达128个字节。它的实际长度取决于它的类型。服务器将DUID与它的数据库进行比较,并将配置数据(地址、租期、DNS服务器等)发送给客户端。

RFC 6939

由于在双栈环境中很难管理多个标识符,而且DUID在某些情况下也不是最优的,因此发布了RFC 6939,给出了一种基于MAC地址识别主机的方法。它定义了用DHCPv6 中继将该信息传递给DHCPv6服务器的方法。

郑重声明:本文作品为原创,如转载须注明出处“微信公众号/企鹅号:物联网电子世界”。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180910A0K37R00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券