IPv6 地址自动分配方式 | DHCPv6 基础

注:本文为 “IPv6 地址分配 | Stateless(无状态)与Stateful(有状态)” 相关文章合辑

未整理去重。


有状态与无状态配置 IPv6 地址

作者:小慢哥本人 2019-10-09 08:29:30

一. Link-Local Address 的生成方式

生成 “链路本地地址”,有 2 种方式

▷ 手动配置

▷ 自动配置

其中 “自动配置” 根据算法,又分为

eui64:根据 mac 地址换算而来

stable_secret:跟随网络环境的变化而变化,处于固定网络环境时其值将固定

random:随机生成

二. Global Address 的生成方式

生成 “全球单播地址”(或者 “唯一本地地址”),有两种方式

手动配置

自动配置

其中 “自动配置” 根据获取方式,又分为

无状态(Stateless)

根据路由通告报文 RA(Router Advertisement)包含的 prefix 前缀信息自动配置 IPv6 地址,组成方式是 Prefix + (EUI64 or 随机)。Stateless 也称为 SLAAC(Stateless address autoconfiguration)

有状态(Stateful)

通过 DHCPv6 方式获得 IPv6 地址

其中 “有状态” 又分为 2 种

有状态 DHCPv6(Stateful DHCPv6)

IPv6 地址、其他参数(如 DNS)均通过 DHCPv6 获取

无状态 DHCPv6(Stateless DHCPv6)

IPv6 地址依然通过路由通告 RA 方式生成,其他参数(如 DNS)通过 DHCPv6 获取

为了避免混淆,在此解释下有状态、无状态到底是什么。

首先,请明确一点,有状态、无状态仅针对于 IPv6 地址分配方式,并不包含其他参数.

有状态:可控、可管理

在网络中存在一个 IP 地址管理者,它能够识别客户端,根据不同的客户端,分配对应的 IPv6 地址,客户端与服务端之间需要维护 IP 地址的租期及续约。目前实现这种效果的,就是 DHCPv6 协议,IP 地址管理者就是 DHCPv6 Server

无状态:不可控、难管理

在网络中只有网关,没有 IP 地址管理者。因此无人去识别客户端,每个客户端根据网关发送的相同的 RA 报文内容,自行配置 IPv6 地址

三. RA 报文中 3 个关键的 Flag

在这里插入图片描述
RA 报文中存在 3 个关键的 flag bit:

flag type 状态 置位(bit) 含义
Autonomous flag(A flag)
表示是否配置无状态 IP。
在一个 RA 报文中,可存在多个 prefix,比如 2401::/64、2402::/64、2403::/64,每个 prefix 都可以独立配置 A flag。
on 1 表示客户端应当在该 prefix 范围内自动生成 IPv6 地址(客户端通过 DAD 自行保证地址可用),并配置子网路由条目、网关。
off 0 表示客户端不应当在该 prefix 范围内自动生成 IPv6 地址,但是可以配置子网路由条目、网关。
Managed flag(M flag)
表示是否配置有状态 IP。
M flag 是 RA 报文的全局参数,一个 RA 报文只有一个 M flag。
on 1 表示在 stateless 流程结束后开始 stateful 流程,也就是告诉客户端可以通过 DHCPv6 来获得 IPv6 地址和其他参数(如 DNS 列表)
off 0 表示不通过 DHCPv6 来获得 IPv6 地址。
Other flag( O flag)
表示是否通过 DHCPv6 获得除 IP 以外的其他参数(如 DNS 列表)。
O flag 也是 RA 报文中的全局参数,一个 RA 报文只有一个 O flag。
注意:仅当 M flag 为 off 时,该参数才会被读取。
on 1 当 M flag 为 on,或者 M flag 为 off 且至少有一个 A flag 为 on 时,将通过 DHCPv6 获得其他参数。
off 0 当 M flag 为 on 时,依然将通过 DHCPv6 获得其他参数;当 M flag 也为 off 时,将不通过 DHCPv6 获得其他参数。

四. 流程示意图

无状态和有状态并不是相互对立的,可以同时存在,也就是一张网卡上可以同时出现通过 RA 生成的 IP 以及通过 DHCPv6 获得的 IP。通过下面这张笔者绘制的流程图可知晓其中奥秘。

在这里插入图片描述

从图中可以看到,顺序为:

1️⃣ Stateless 自动配置“链路本地地址”

2️⃣ Stateless 自动配置“全球地址”(或“唯一本地地址”)

3️⃣ Stateful 自动配置“全球地址”(或“唯一本地地址”)和其他参数,其中 Stateful 阶段中存在 Stateful DHCPv6 或 Stateless DHCPv6

注意:
部分客户端操作系统或网络管理器当 Stateless 阶段没有收到 RA 报文后,就到此结束,不会走 Stateful 阶段,比如 CentOS 7、Ubuntu 17 的默认逻辑都是这样,而 windows server 2012 就会继续走 Stateful 阶段。

五. 测试获得 IP 效果

测试环境:客户端基于 CentOS 7+NetworkManager(即系统默认的网络管理方式)进行测试

▪ 网关会发送 RA 报文,包含一个 prefix

▪ DHCPv6 Server 会分配 IP、DNS

测试内容:测试 M、O、A flag 在所有排列组合的情况下

▪ 客户端是否会通过 RA 报文配置无状态 IP

▪ 客户端是否会通过 RA 报文配置 prefix 子网路由

▪ 客户端是否会通过 RA 报文配置 gateway

▪ 客户端是否会通过 DHCPv6 获得有状态 IP

▪ 客户端是否会通过 DHCPv6 获得 DNS

测试结果:
在这里插入图片描述

六. 应用场景(选择无状态还是有状态)

何时采用无状态、何时采用有状态,关键看应用场景。核心在于是否需要控制IP地址,比如保持IP不变,如果需要控制,就采用有状态;如果无需控制,就采用无状态。

▷ 服务端领域:如对外提供服务,通常需要采用有状态IP。因为业务IP的突然变化容易导致业务中断(除非做好服务发现)

▷ 客户端领域:如移动设备、办公室内PC机,只需要上IPv6互联网,并不需要对外提供服务,可以采用无状态IP

七. 后续内容
由于篇幅有限,本文尚未贴出实验的详细配置。将会在《IPv6系列》后续文章里,贴出实验的完整信息,包括RA、DHCPv6的配置,以及客户端的配置,敬请关注。

附. 参考文档

http://www.6deploy.eu/tutorials/080-6deploy_ipv6_autoconfiguration_mechs_v0_4.pdf


DHCPv6 基础

发表于 2018-02-01

DHCPv6 简介

IPv6 动态主机配置协议 DHCPv6 (Dynamic Host Configuration Protocol for IPv6) 是针对 IPv6 编址方案设计,为主机分配 IPv6 地址 / 前缀和其他网络配置参数。

目的:

IPv6 协议具有地址空间巨大的特点,但同时长达 128 比特的 IPv6 地址又要求高效合理的地址自动分配和管理策略。IPv6 无状态地址配置方式(参看协议 RFC2462)是目前广泛采用的 IPv6 地址自动配置方式。配置了该协议的主机只需相邻设备开启 IPv6 路由通告功能,即可以根据通告报文包含的前缀信息自动配置本机地址。

无状态地址配置方案中设备并不记录所连接的 IPv6 主机的具体地址信息,可管理性差。而且当前无状态地址配置方式不能使 IPv6 主机获取 DNS 服务器的 IPv6 地址等配置信息,在可用性上有一定缺陷。对于互联网服务提供商来说,也没有相关的规范指明如何向设备自动分配 IPv6 前缀,所以在部署 IPv6 网络时,只能采用手动配置的方法为设备配置 IPv6 地址。

DHCPv6 技术解决了这一问题。DHCPv6 属于一种有状态地址自动配置协议。

与其他 IPv6 地址分配方式(手工配置、通过路由器通告消息中的网络前缀无状态自动配置等)相比,DHCPv6 具有以下优点:

  • 更好地控制 IPv6 地址的分配。DHCPv6 方式不仅可以记录为 IPv6 主机分配的地址,还可以为特定的 IPv6 主机分配特定的地址,以便于网络管理。
  • DHCPv6 支持为网络设备分配 IPv6 前缀,便于全网络的自动配置和网络层次性管理。
  • 除了为 IPv6 主机分配 IPv6 地址 / 前缀外,还可以分配 DNS 服务器 IPv6 地址等网络配置参数。

DHCPv6 原理描述

DHCPv6 概述:

DHCPv6 是一种运行在客户端和服务器之间的协议,与 IPv4 中的 DHCP 一样,所有的协议报文都是基于 UDP 的。但是由于在 IPv6 中没有广播报文,因此 DHCPv6 使用组播报文,客户端也无需配置服务器的 IPv6 地址。

IPv6 地址分配类型:

IPv6 协议具有地址空间巨大的特点,但同时长达 128 比特的 IPv6 地址又要求高效合理的地址自动分配和管理策略。

  • 手动配置。手动配置 IPv6 地址 / 前缀及其他网络配置参数(DNS、NIS、SNTP 服务器地址等参数)。
  • 无状态自动地址分配。由接口 ID 生成链路本地地址,再根据路由通告报文 RA(Router Advertisement)包含的前缀信息自动配置本机地址。
  • 有状态自动地址分配,即 DHCPv6 方式。DHCPv6 又分为如下两种:
  • DHCPv6 有状态自动分配。DHCPv6 服务器自动分配 IPv6 地址 / PD 前缀及其他网络配置参数(DNS、NIS、SNTP 服务器地址等参数)。
  • DHCPv6 无状态自动分配。主机 IPv6 地址仍然通过路由通告方式自动生成,DHCPv6 服务器只分配除 IPv6 地址以外的配置参数,包括 DNS、NIS、SNTP 服务器等参数。
  • </
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值