ipv6地址_IPv6系列-详解自动分配IPv6地址

bb11c06f812fef3d104b518f7d884a89.png

深入研究自动分配IPv6地址的Stateless(无状态)与Stateful(有状态)方式

小慢哥的原创文章,欢迎转载


目录

▪ 一. Link-Local Address的生成方式

▪ 二. Global Address的生成方式

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

▪ 四. 流程示意图

▪ 五. 测试获得IP效果

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

▪ 七. 后续内容

▪ 附. 参考文档


一. Link-Local Address的生成方式

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

▷ 手动配置

▷ 自动配置

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

▷ eui64:根据mac地址换算而来

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

▷ random:随机生成


二. Global Address的生成方式

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

▷ 手动配置

▷ 自动配置

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

▷ 无状态(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:

085291c76f6d8035abebc30eaf920908.png

Autonomous flag(简称A flag):表示是否配置无状态IP。在一个RA报文中,可存在多个prefix,比如2401::/64、2402::/64、2403::/64,每个prefix都可以独立配置A flag

▪ 为on时(对应bit位为1):表示客户端应当在该prefix范围内自动生成IPv6地址(客户端通过DAD自行保证地址可用),并配置子网路由条目、网关

▪ 为off时(对应bit位为0):表示客户端不应当在该prefix范围内自动生成IPv6地址,但是可以配置子网路由条目、网关

Managed flag(简称M flag):表示是否配置有状态IP。M flag是RA报文的全局参数,一个RA报文只有一个M flag

▪ 为on时(对应bit位为1):表示在stateless流程结束后开始stateful流程,也就是告诉客户端可以通过DHCPv6来获得IPv6地址和其他参数(如DNS列表)

▪ 为off时(对应bit位为0):表示不通过DHCPv6来获得IPv6地址。

Other flag(简称O flag):表示是否通过DHCPv6获得除IP以外的其他参数(如DNS列表)。O flag也是RA报文中的全局参数,一个RA报文只有一个O flag。注意:仅当M flag为off时,该参数才会被读取。

▪ 为on时(对应bit位为1):当M flag为on,或者M flag为off且至少有一个A flag为on时,将通过DHCPv6获得其他参数

▪ 为off时(对应bit位为0):当M flag为on时,依然将通过DHCPv6获得其他参数;当M flag也为off时,将不通过DHCPv6获得其他参数


四. 流程示意图

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

e0438bbb44209edfff76af4a42947a04.png

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

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

测试结果

fc04429604a546646236ebfcf09384c4.png

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

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

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

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


七. 后续内容

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


附. 参考文档

http://www.6deploy.eu/tutorials/080-6deploy_ipv6_autoconfiguration_mechs_v0_4.pdfhttps://cshihong.github.io/2018/02/01/DHCPv6基础/
中文高清 PDF 格式 目 录 译者序 前言 第一部分 IP基础知识 第1章 为何要升级IP 1 1.1 IP的影响 1 1.1.1 什么是IP 2 1.1.2 IP应用在哪些地方 3 1.1.3 有多少人在使用IP 3 1.1.4 当IP发生变化时会产生哪些影响 4 1.2 IPv4的局限性及其缺点 4 1.2.1 IP地址空间危机 5 1.2.2 IP性能议题 5 1.2.3 IP安全性议题 6 1.2.4 自动配置 6 1.3 紧迫感 7 第2章 TCP/IP网络互联简介 8 2.1 网络互联问题 8 2.2 分层网络互联模型 9 2.2.1 OSI模型 10 2.2.2 Internet模型 10 2.2.3 封装 11 2.3 IP 12 2.3.1 IP寻址 13 2.3.2 IP头 15 2.3.3 数据报的转移 17 2.4 ICMP 18 2.5 选路、传输和应用协议 18 2.5.1 选路协议 19 2.5.2 传输协议 19 2.5.3 应用协议 19 第3章 IPv4的问题 20 3.1 修改还是替换 20 3.2 过渡还是不过渡 26 第4章 通向IPng之路 27 4.1 概念的诞生 27 4.1.1 对Internet将来的估计 27 4.1.2 Internet发展中需要考虑的领域 28 4.2 第一回合 29 4.3 拾遗 31 4.4 IPv6,第一回合 32 4.5 IPv6,第二回合 32 第二部分 IPv6细节 第5章 IPv6的成型 33 5.1 IPv6 33 5.1.1 变化概述 33 5.1.2 包头结构 35 5.1.3 IPv4与IPv6的比较 36 5.1.4 流标签 37 5.1.5 业务流类别 37 5.1.6 分段 38 5.1.7 扩展头 39 5.2 ICMPv6 40 第6章 IPv6寻址 43 6.1 地址 43 6.1.1 地址表达方式 43 6.1.2 寻址模型 44 6.1.3 地址空间 45 6.2 地址类型 46 6.2.1 广播路在何方 46 6.2.2 单播 46 6.2.3 单播地址格式 47 6.2.4 组播 51 6.2.5 泛播 53 第7章 IPv6扩展头 54 7.1 扩展头 54 7.2 扩展头的用法 54 7.2.1 扩展头的标识 55 7.2.2 扩展头的顺序 56 7.2.3 建立新的选项 56 7.2.4 选项扩展头 56 7.2.5 选项 57 7.3 逐跳选项 58 7.4 选路头 59 7.5 分段头 59 7.6 目的地选项 60 第8章 IPv6选路 62 8.1 地址对IP网络的影响 62 8.1.1 标识符和定位符 62 8.1.2 地址分配、无缝互操作和网络 拓扑 64 8.2 选路问题 65 第9章 IPv6身份验证和安全性 69 9.1 为IP增加安全性 69 9.1.1 安全性目标 69 9.1.2 RFC 1825及建议的更新 70 9.2 IPsec 70 9.2.1 加密和身份验证算法 71 9.2.2 安全性关联 73 9.2.3 密钥管理 74 9.2.4 实现IPsec 74 9.2.5 隧道模式与透明模式 75 9.3 IPv6安全性头 76 9.3.1 身份验证头 76 9.3.2 封装安全性净荷头 78 第10章 相关的下一代协议 80 10.1 协议的层次 80 10.1.1 应用层 80 10.1.2 传输层 80 10.1.3 链路层 81 10.2 IPv6域名系统扩展 81 10.3 地址解析协议和邻居发现 82 第11章 自动配置和移动IP 84 11.1 IPv6的即插即用 84 11.1.1 状态自动配置与无状态自动 配置 84 11.1.2 IPv6无状态自动配置 85 11.1.3 BOOTP和DHCP 86 11.1.4 DHCPv6 86 11.2 移动网络技术 86 11.2.1 IPv4中的移动IP 87 11.2.2 IPv6中的移动IP 87 第三部分 IP过渡和应用 第12章 IP过渡策略 89 12.1 IPv6协议隧道方法 89 12.1.1 与IPv4兼容的IPv6地址 90 12.1.2 配置隧道和自动隧道 90 12.1.3 IPv6隧道类型 90 12.2 IPv4/IPv6双栈方法 91 12.3 IPv6地址分配 92 12.4 6BONE 93 第13章 IPv6解决方案 94 13.1 需要支持IPv6的产品 94 13.2 正在开发IPv6产品的公司 94 13.3 对IPv6的期待 95 附录A 与IPv6有关的RFC索引 97 附录B RFC精选 100
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值