奔涌的IPv6背后 , DHCPv6协议你了解多少?随着IPv6技术的普及 , DHCPv6 作为基础技术是每一位IT人或多或少都需要了解的 。本文将依托腾讯云CVM来详细剖析 DHCPv6 的工作原理 , 希望可以让更多小伙伴掌握 DHCPv6 协议 。什么是 DHCPv6 协议?客户端如何首次自动获取一个 IPV6 地址?CVM重启又如何自动获取到上次使用的 IPv6 地址?
![IPv4自动获取有dhcp协议,那IPv6是否有dhcpv6协议](http://img.jiangsulong.com/220415/0253213912-0.jpg)
文章插图
一、DHCPv6简介
DHCPv6 (Dynamic Host Configuration Protocol for IPv6)是一个用来分配 IPv6 地址、前缀以及DNS等配置的网络协议 。
DHCPv6 是一种运行在客户端和服务端之间的协议 , 与 IPv4 中的 DHCP 一样 , 所有的协议报文都是基于 UDP 的(客户端使用UDP 端口号546 , 服务端使用端口号547) 。但是由于在 IPv6中 没有广播报文 , 因此 DHCPv6 使用组播(默认所有DHCPv6服务器都会加入并侦听该组播组:FF02::1:2)报文 , 客户端也无需配置服务端的IPv6地址 。
1. DHCPv6协议的优势
相对其他分配IPV6地址的方式而言 , DHCPv6具备以下优势:
· 更好控制 IPv6 地址的分配 , DHCPv6 方式不仅可以记录为 IPv6 主机分配的地址 , 还可以为特定的 IPv6 主机分配特定的地址 , 以便于网络管理 。
· DHCPv6 支持为网络设备分配 IPv6 前缀 , 便于全网络的自动配置和网络层次性管理 。
· 除了为 IPv6 主机分配 IPv6 地址和前缀外 , 还可以分配DNS服务器 IPv6 地址等网络配置参数 。
2. DHCPv6报文格式
![IPv4自动获取有dhcp协议,那IPv6是否有dhcpv6协议](http://img.jiangsulong.com/220415/025321O02-1.jpg)
文章插图
DHCPv6 属于 OSI 七层协议栈的应用层 , 所以需要先封装网络层 IPv6 头部以及传输层UDP头部 。
3. DHCPv6字段注释
· msg-type:长度8比特 , 表示报文的类型 , 总共定义了13种消息类型 。
· transaction-id:长度24比特 , 表示 DHCPv6 客户端随机生成的交互ID(服务端发起的报文交互ID为0) , 用来标识一次来回交互的 DHCPv6 报文 。例如Solicit/Advertise报文为一次交互 , Request/Reply报文为另外一次交互 , 两者有不同的交互ID 。
· options:根据消息类型不一样长度可变 , 表示 DHCPv6 的可选字段 。此字段包含了 DHCPv6 服务器分配给 IPv6 主机的配置信息 , 如客户端标识、服务器标识或有效生命周期等信息 。
4. DHCPv6定义的几种常见消息类型
(1)Solicit , DHCPv6 客户端使用Solicit报文来发现 DHCPv6 服务器的位置 。
(2)Advertise , DHCPv6 服务器发送Advertise报文来对Solicit报文进行回应 , 通告客户端能够提供哪些 DHCPv6 服务 。
(3)Request , DHCPv6 客户端发送Request报文来向DHCPv6服务器请求IPv6地址和其它配置信息 。
(4)Confirm , DHCPv6 客户端向任意可达的 DHCPv6 服务器发送Confirm报文检查自己目前获得的 IPv6 地址是否适用与它所连接的链路 。
(5)Reply , DHCPv6服务器在以下场合发送Reply报文:
· DHCPv6 服务器发送携带了地址和配置信息的Reply消息来回应从 DHCPv6 客户端收到的Solicit、Request、Renew、Rebind报文 。
· DHCPv6 服务器发送携带配置信息的Reply消息来回应收到的Information-Request报文 。
· 用来回应 DHCPv6 客户端发来的Confirm、Release、Decline报文 。
(6)Decline , DHCPv6 客户端向 DHCPv6 服务器发送 Decline 报文 , 声明 DHCPv6 服务器分配的一个或多个地址在 DHCPv6 客户端所在链路上已经被其他客户端使用 。
二、首次获取IPV6地址解析
![IPv4自动获取有dhcp协议,那IPv6是否有dhcpv6协议](http://img.jiangsulong.com/220415/0253212C5-2.jpg)
文章插图
CVM首次接入腾讯云 IPv6 网络 , 通过 DHCPv6 自动获取 IPv6 地址的交互报文如下所示:
![IPv4自动获取有dhcp协议,那IPv6是否有dhcpv6协议](http://img.jiangsulong.com/220415/02532131b-3.jpg)
文章插图
【IPv4自动获取有dhcp协议,那IPv6是否有dhcpv6协议】
1. 发现阶段
客户端CVM(云服务器)发送Solicit报文来发现 DHCPv6 服务器 , 并请求DHCPv6 服务器(腾讯云虚拟组件)为其分配 IPv6 地址和网络配置参数 。
由于CVM不知道 DHCPv6 服务器的 IPv6 地址 , 所以CVM用组播地址:FF02::1:2向同一链路范围内的所有DHCPv6服务器发送Solicit报文 。
Solicit报文中携带了客户端的DUID、需要请求的非临时地址、以及其他网络配置参数等信息 。
推荐阅读
- 自动挡车是N挡点火还是P挡点火好?修车师傅说出实话,建议你了解
- 防止Windows10自动唤醒,就用这4招
- IPv5 发生了什么?为什么有 IPv4、IPv6 但没有 IPv5?
- 交管12123换驾驶证怎么获取体检信息?
- 如何自制葱油
- 自动挡车型刹车失灵怎么办?记住这个自救方法
- 自动挡汽车可以在N挡启动吗?很多人都不清楚,一次性给你讲清楚
- 所有自动挡车主!避开误区,安全出行
- 自动挡六大禁忌,老司机也要处处牢记
- 8 个 DevOps 自动化工具,帮你做出持续改进