浅谈IPv6地址分配方式

IPv6分配方式一般分为两大类:

IPv6分配方式

一、手工配置

IPv6可以由人为手工指定。在某些路由器上,手工配置IPv6地址的命令为:

ipv6 address xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/nn

二、自动配置

1、SLAAC

SLAAC(Stateless address autoconfiguration,无状态地址自动配置)是基于邻居发现协议(NDP)实现的一种地址配置方式,由RFC4862标准定义。主机首先生成链路本地地址,然后根据路由器通告消息中的前缀信息,自动配置全局地址,以及DNS服务器地址、网关等其他网络配置。

使用SLAAC的地址分配过程如下图:

SLAAC过程

无状态地址自动配置认为一个主机的IPv6地址由前缀和接口ID组成,实现动态配置就是实现这两个部分的动态配置。接口ID的长度固定是64位,可以由 48位MAC地址自动生成64位Interface ID。IPv6前缀的实际作用是标识主机与路由器之间的网络。所以,一般来讲主机需要的这个前缀就是路由器接口的前缀。为了自动获得这个前缀,只要在路由器和主机之间运行一个协议即可。使用ND协议的Router Solicitation恳求和Router Advertisement 通告消息。前者用于发现路由器,并促使路由器发送Router Advertisement消息通报前缀信息RS的源ip是由设备自动产生的link-local地址,目标ip FF02::2 链路本地范围所有路由器组播地址 icmp v6协议包RA源地址:发送者Link-local地址目的地址:FF02::1 链路本地范围所有节点组播地址或发送RS的主机单播地址。

在RA消息中使用M和O标记位来指示地址以及其他网络设置的配置方式:

M标记(Managed address configuration flag,被管理地址配置标志位),置为 1 时,此标记指示主机使用DHCPv6协议来获取有状态地址。

O 标记(Other stateful configuration flag,其他配置标志位),置为 1 时,此标记指示主机使用DHCPv6协议来获取其他配置信息。

结合 M 和 O 标记的值可以产生以下组合:

(1) M 和 O 标记均设置为 0。 此组合对应不具有 DHCPv6 服务的网络。主机使用SLAAC方式以及其他方法(如手动配置)来获取其他配置。

(2) M 和 O 标记均设置为 1。使用此组合时, 主机使用DHCPv6 来获取地址和其他配置,如DNS、网关等。该组合称为 DHCPv6 有状态配置,详见2.3。

(3) M 标记设置为 0,O 标记设置为 1。主机使用SLAAC方式来获取IPv6地址, DHCPv6 不用于分配地址,仅用来分配DNS服务器地址、网关等其他配置。

2、DHCPv6

DHCPv6(Dynamic Host Configuration Protocol for IPv6,支持IPv6 的动态主机配置协议)是针对IPv6 编址方案设计的,可为主机分配IPv6 前缀、IPv6 地址和其他网络配置参数,基本规范由RFC3315定义。

与其他 IPv6 地址分配方式(手工配置、SLAAC等)相比,DHCPv6 具有以下优点:

(1) 不仅可以分配 IPv6 地址,还可以分配IPv6 前缀,便于全网络的自动配置和管理。

(2) 更好地控制地址的分配。通过DHCPv6 不仅可以记录为主机分配的地址/前缀,还可以为特定主机分配特定的地址/前缀,以便于网络管理。

(3) 除了 IPv6 前缀、IPv6 地址外,还可以为主机分配DNS 服务器地址等网络配置参数。

根据RA消息中M和O标记位的不同设置,可以把DHCPv6分为有状态配置和无状态配置两种。

有状态配置是指DHCPv6服务器将一个完整的IPv6地址分配给主机,并提供DNS服务器地址等其他配置信息。DHCPv6 服务器为客户端分配地址/前缀的消息交互过程如下图所示:

无状态配置是指DHCPv6 服务器可以为已经具有 IPv6 地址/前缀的客户端分配DNS服务器地址和域名等其他网络配置参数,主机地址仍然通过SLAAC方式生成。

DHCPv6 客户端通过SLAAC方式成功获取 IPv6 地址后,如果接收到的 RA报文中 M 标志位为 0、O 标志位为 1,则 DHCPv6客户端会自动启动 DHCPv6 无状态配置功能,以获取除地址/前缀外的其他网络配置参数。

DHCPv6的无状态配置过程如下图所示:

3、DHCP-PD

DHCP-PD(DHCP Prefix Delegation,前缀代理)是一种前缀分配机制,基本协议定义于RFC3633。通过前缀代理机制,下游的前缀请求客户端向上游的前缀代理服务器提出前缀分配申请,前缀代理服务器便可以分配合适的前缀地址给前缀请求客户端,下游的客户端把获得的前缀(一般小于64位)进一步分成64前缀长度的不同子网,把细分的地址前缀再通过路由公告(RA)至与主机直连的用户链路上,实现主机的地址自动配置。

DHCP-PD地址分配过程如下图所示:

DHCP-PD过程

DHCP-PD的应用场景主要是,在移动网络中,P-GW/GGSN配置为前缀代理服务器,MiFi设备作为前缀请求客户端,通过PD方式为MiFi下挂的终端分配IPv6地址;在固定宽带网络中,Bras设备配置为前缀代理服务器,CPE设备作为前缀请求客户端,通过PD方式为CPE下挂的终端分配IPv6地址。