电脑网络安全:IPv4自动获取有dhcp协议,那IPv6是否有dhcpv6协议

奔涌的IPv6背后,DHCPv6协议你了解多少?

随着IPv6技术的普及,DHCPv6 作为基础技术是每一位IT人或多或少都需要了解的。本文将依托腾讯云CVM来详细剖析 DHCPv6 的工作原理,希望可以让更多小伙伴掌握 DHCPv6 协议。什么是 DHCPv6 协议?客户端如何首次自动获取一个 IPV6 地址?CVM重启又如何自动获取到上次使用的 IPv6 地址?

网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

一、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报文格式

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Gy5hiHrF-1682319450529)(https://p3-sign.toutiaoimg.com/pgc-image/e7744e10d23e4564ba481d666f454d40~noop.image?_iz=58558&from=article.pc_detail&x-expires=1682924208&x-signature=ng9WaFArwm2rcxjHiC4vLIVikhk%3D)]

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地址解析
在这里插入图片描述

CVM首次接入腾讯云 IPv6 网络,通过 DHCPv6 自动获取 IPv6 地址的交互报文如下所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9gkXeqrH-1682319450531)(https://p3-sign.toutiaoimg.com/pgc-image/343d41eae86540d085ff041be644481b~noop.image?_iz=58558&from=article.pc_detail&x-expires=1682924208&x-signature=8m%2FhClInaMsX7gn66YGJVnuf3Gc%3D)]

\1. 发现阶段

客户端CVM(云服务器)发送Solicit报文来发现 DHCPv6 服务器,并请求DHCPv6 服务器(腾讯云虚拟组件)为其分配 IPv6 地址和网络配置参数。

由于CVM不知道 DHCPv6 服务器的 IPv6 地址,所以CVM用组播地址:FF02::1:2向同一链路范围内的所有DHCPv6服务器发送Solicit报文。

Solicit报文中携带了客户端的DUID、需要请求的非临时地址、以及其他网络配置参数等信息。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HGRtpYKA-1682319450531)(https://p3-sign.toutiaoimg.com/pgc-image/3a86d6af43bc4031b5fd4dcc4d09c3e7~noop.image?_iz=58558&from=article.pc_detail&x-expires=1682924208&x-signature=iVNh5K82rliUeEnHrTdMgQNn76Q%3D)]

\2. 提供阶段

DHCPv6 服务器接收到Solicit报文后,选择按照 IPv6 地址从小到大的顺序采用循环查找方式,选择最新找到的可供分配的 IPv6 地址,然后通过Advertise报文以单播方式回应给CVM。

Advertise报文里面携带了服务器的DUID、客户端的DUID、分配给客户端的IPv6地址及租期等信息。

在这里插入图片描述

\3. 选择阶段

因为Solicit报文是组播发送的,所以如果同一链路范围内存在多个 DHCPv6 服务器,则接收到Solicit报文的服务器都会回应Advertise报文。

如果有多个 DHCPv6 服务器向DHCPv6客户端回应Advertise报文,则 DHCPv6 客户端选择服务器优先级最高的Advertise报文(DHCPv6 服务器可以在Advertise消息中包含Preference选项,以便控制客户端对服务器的选择),然后客户端以组播方式向同一链路范围内的所有 DHCPv6 服务器发送Request报文,该报文中包含客户端选择的 DHCPv6 服务器(高优先级)的DUID、客户端的DUID、客户端IPv6地址。

在这里插入图片描述

\4. 确认阶段

当 DHCPv6 服务器收到Request报文后,对报文中携带的服务端DUID信息进行判断:

· 若报文中携带的服务端DUID不是本服务端的DUID,则对该Request报文不回应,同时将Request报文中请求的IPv6地址进行回收。

· 若报文中携带的服务端DUID是本服务端的DUID,则以单播方式回应Reply报文,确认Request报文中请求的IPv6地址分配给客户端使用。

\5. 客户端CVM处理阶段

客户端CVM收到Reply报文后会发送地址冲突探测报文(Neighbor Solicitation),检查本链路范围内是否有其他客户端使用相同的IPv6地址,如果在指定时间内没有收到回应,表示客户端可以使用此地址。

注意事项:如果发的地址冲突探测报文(Neighbor Solicitation)收到了回应,说明有其他客户端使用了此地址,CVM会以单播方式向服务端发送Decline(声明地址冲突)报文,并重新发送Solicit报文请求新的可用IPv6地址。服务端收到Decline报文后,会将报文中携带的IPv6地址列为冲突地址。

三、重启后获取IPV6地址解析

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-v8l1mGo4-1682319450534)(https://p3-sign.toutiaoimg.com/pgc-image/c732ad36f3f34b8f8036f4cf5d3d1a0d~noop.image?_iz=58558&from=article.pc_detail&x-expires=1682924208&x-signature=q3gG4onuhpRgMyHBm93pYXR71j0%3D)]

CVM非首次接入腾讯云IPv6网络,通过 DHCPv6 自动获取 IPv6 地址的交互报文如下所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0TMRlors-1682319450534)(https://p3-sign.toutiaoimg.com/pgc-image/a0a796cf1c4d468cb861470a4a64d7a8~noop.image?_iz=58558&from=article.pc_detail&x-expires=1682924208&x-signature=3095EYOGb7DGifvl8Fix6W4vuJE%3D)]

第一步,当客户端CVM(云服务器)非首次接入 IPv6 网络时(比如重启、网卡禁用后再启用等),CVM会通过组播地址:FF02::1:2,发送Confirm报文确认该CVM之前的IPv6地址是否仍然可用。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-1MtPgqfM-1682319450535)(https://p3-sign.toutiaoimg.com/pgc-image/3f0494b910f140028cba4dbb7fb75b80~noop.image?_iz=58558&from=article.pc_detail&x-expires=1682924208&x-signature=vSjpHKglCBqtKxH2lPPRzHbhDzk%3D)]

第二步,DHCPv6 服务器(腾讯云虚拟组件)收到Confirm报文后,确认Confirm报文中所有的地址是否适用于该CVM。

若Confirm报文中所有的IPv6地址都通过了确认,服务器回应确认成功的Reply报文(如果客户端收到确认失败的Reply报文,则发送Solicit报文,重新请求IPv6地址;)。

第三步,客户端CVM收到确认成功的Reply报文后会发送地址冲突探测报文(Neighbor Solicitation),检查本链路范围内是否有其他客户端使用相同的IPv6地址,如果在指定时间内没有收到回应,表示该CVM可以使用此地址。

icit报文,重新请求IPv6地址;)。

第三步,客户端CVM收到确认成功的Reply报文后会发送地址冲突探测报文(Neighbor Solicitation),检查本链路范围内是否有其他客户端使用相同的IPv6地址,如果在指定时间内没有收到回应,表示该CVM可以使用此地址。

至此,客户端通过DHCPv6协议首次和非首次自动获取IPv6地址的原理就解释清楚了,通过该文章也阐述了DHCPv6的6种常用类型报文的作用,希望小伙伴们多多尝试,加深理解。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值