原文链接:https://blog.csdn.net/kdb_viewer/article/details/83310904

一、DHCPv4 vs DHCPv6

1. 相同点

使用DHCP client, DHCP relay and DHCP server概念
使用scopes and leases概念
使用4个消息包的完整交互 (DHCP for IPv4使用Discover/Offer/Request/Acknowledge (DORA), DHCPv6使用Solicit/Advertise/Request/Reply (SARR))
使用DHCP options为终端节点提供附加信息(DHCPv6的type code长度为16-bit)
支持Rapid Commit功能
2. 差异点

标识客户端方式:DHCPv6使用DHCP Unique Identifiers (DUIDs) (RFC 6355),DHCPv4使用MAC地址.
消息类型名称不同,大部分功能类似
DHCPv4基于IPv4包传输,DHCPv6基于IPv6包传输
DHCPv6使用ICMPv6 Router Advertisement (RA)和IPv6多播消息,DHCPv4使用广播的IPv4消息
DHCPv6中client与relay/server(RFC 6939)通信时使用link-local地址, DHCPv4使用unsolicited广播地址
监听的UDP端口不同, DHCPv4 relay/server监听udp端口67 client监听udp端口68, relay/server监听udp端口547 client监听udp端口546
DHCPv6 servers提供随机的接口标识符 (避免攻击者侦查), DHCPv4提供scope/pool中的下一个IPv4地址
DHCPv4可以在路由器上配置, stateful DHCPv6一般不能在路由器上配置
DHCPv4为客户端提供默认网关地址,DHCPv6不包含这个option,IPv6节点通过ICMPv6 RA消息学习到first hop路由器地址 
DHCPv4地址池可能耗尽; DHCPv6网段通常为64位耗尽可能性接近0

DHCPV6相关术语:

DUID
    一个角色的DHCP唯一识别符

IA (Identity association)
    分配给客户端的地址集合,有相关的IAID,只保存一种类型的地址,比如temporary地址,每个客户端可能有多个IA,每个网卡一个。

IAID (Identity association identifier)
    每个客户端中的IA不允许存在重复IAID

IA_NA (Identity association for non-temporary addresses)
    存储非临时地址的IA

IA_TA (Identity association for temporary addresses)
    存储临时地址的IA

IA_PD (Identity association for prfix delegation)
    分配给客户端的前缀集合,有相关的IAID,每个请求路由器可能有多个IA,每个网卡一个。

binding
    分配给某个客户端的地址和配置信息的集合,以三元组<DUID,IA-type, IAID>标识。

DHCP domain
    DHCP服务器管理的link范围。

DHCP realm
    DHCP domain的标识

All_DHCP_Relay_Agents_and_Servers (FF02::1:2)
    所有中继与服务器监听的组播地址,被客户端使用

All_DHCP_Servers (FF05::1:3)
     所有服务器监听,当中继不知道服务器单播地址时会使用

Requesting router
     作为DHCP客户端,请求前缀分配

Delegating router
     作为DHCP服务器,响应前缀分配请求

DHCPV6消息类型:

编号 消息类型 发起方 描述 对应v4包类型
1 Solicit client 定位服务器 Discover
2 Advertise server 响应Solict,表明可达性 Offer
3 Request client 向指定的服务器请求地址与配置 Request
4 Confirm client 发送给所有服务器确认客户端的配置相对当前链路是否合法。 Request
5 Renew client 向指定服务器延长地址租赁时间和更新配置信息 Request
6 Rebind client Renew失败后,发送给所有服务器 Request
7 Reply server 发送给指定客户端,响应Solicit/Request/Renew/Rebind/Information-Request/Confirm/Release/Decline消息 Ack
8 Release client 释放地址 Release
9 Decline client 发送给指定服务器,表明地址已经被使用 Decline
10 Reconfigure server 表明服务器有配置变更,客户端接收后发送Renew或 Information-Request来请求新的配置 N/A
11 Information-Request client 请求配置信息,不包括IP Inform
12 Relay-Forward relay agent 中继转发给服务器,客户端消息包含在Relay-Message option中 N/A
13 Relay-Reply server 服务器响应中继,客户端消息包含在Relay-Message option中 N/A
关于IA:

一、介绍

IA是一个结构体,服务器和客户机用来标识、分组和管理一组相关 IPv6 地址。

每个IA只和一个网口关联。

客户端负责创建IA并指定IAID, 请求服务器为IA分配地址。

每个IA包含一个IAID和相关的配置信息:

IAID相对该客户端必须唯一,且一致,不能因为重启等操作产生变化。
配置信息包含一至多个IPv6地址,IA的T1与T2,每个地址包含prefered lifetime和valid lifetime.
二、选择分配给IA的地址机制

客户端连接的link
​直接收到客户端的包,源地址为link-local地址,与服务器接收消息的网卡在同一link上
收到中继转发包,与包中的link-address option标识的网卡在同一link上
​直接收到客户端的包,源地址非link-local地址,与包中源地址在同一link上
客户端的DUID
客户端提供的其它信息
中继提供的其它信息
三、临时地址分配

与非临时地址分配没区别,每个IA_TA为link上的每个前缀最多包含一个临时地址,IA_TA与IA_TA的IAID空间独立,值可以相同。

DHCPV6 vs DHCPV4的更多相关文章

  1. DHCPv6协议

    DHCPv6协议     1. 定义 IPv6 动态主机配置协议DHCPv6(Dynamic Host Configuration Protocol for IPv6)是针对IPv6编址方案设计,为主 ...

  2. CWMP开源代码研究番外篇——博通方案

    声明:本篇文章来自于某公司Cable Modem产品的文档资料,源码来自于博通公司,只提供参考(为保护产权,本人没有源码). 前文曾提到会写一篇关于博通的tr069,那么福利来了.福利,福利,福利,重 ...

  3. DHCPv6,IPv6的有状态自动配置

    DHCPv6,IPv6的有状态自动配置 DHCPv6的工作原理与DHCPv4极其相似,但有一个明显的差别,那就是支持IPV6新增的编址方案.DHCP提供了一些自动配置没有的选项.在自动配置中,根本没有 ...

  4. DHCPv6 server port and DHCPv6 client port

    The DHCPv6 draft says that, the port numbers for client and agents are given as 546 & 547 在wires ...

  5. DHCPv6

    SLAAC(RFC4862)(StatelessAddressAutoconfiguration),无状态自动配置 IT网,http://www.it.net.cn DHCPv6包含以下两种形式: n ...

  6. openwrt+ndp+ndppd+radvd+dhcpv6,ipv6穿透配置指南

    要用ipv6首先你的openwrt路由内核必须已经支持ipv6,且能安装相关软件! 首先说说最简单的ndp手工ipv6穿透,很简单,看代码详解: 环境: wan口 eth1 lan口 br-lan w ...

  7. Centos7 IPv6 Route And Dhcpv6 Server(借鉴补充)

    软件:radvd.dhcp 1)启用ipv6 vi /etc/sysctl.conf net.ipv6.conf.all.disable_ipv6 = 0net.ipv6.conf.default.d ...

  8. DHCP DHCPv6

    为了给网络客户机自动分配IP地址以及生成所需的配置参数,IETF分别给IPV4和IPV6网络定义了相关的协议标准,即DHCP(RFC2131)和DHCPV6(RFC3315),以及扩充的选项标准.本文 ...

  9. DHCPv4 Relay场景测试—信而泰网络测试仪实操

    一.测试说明 本文主要介绍DHCPv4 Relay场景的测试仪配置方法以及需要注意的事项. DHCPv4 Relay原理: DHCP中继代理,就是在DHCP服务器和客户端之间转发DHCP数据包.当DH ...

随机推荐

  1. 如何在 UltraEdit 删除空行(含空格,制表符)

    如何在 UltraEdit 删除空行(含空格,制表符) 打开UltraEdit,ctrl+r弹出替换对话框,点选启用正则表达式方法1:在查找框输入 ^p^p:在替换框输入 ^p执行全部替换:这种方法是 ...

  2. python基础day6_字典dict

    数据类型划分:可变数据类型.不可变数据类型 不可变数据类型(又叫可哈希):元祖,bool ,int,str, 可变数据类型(又叫不可哈希):list,dict,set(集合) dict的key必须是不 ...

  3. PHP floatval()、doubleval () 函数

    floatval 函数用于获取变量的浮点值. floatval 不能用于数组或对象.高佣联盟 www.cgewang.com 版本要求:PHP 4 >= 4.2.0, PHP 5, PHP 7. ...

  4. PHP strtolower() 函数

    实例 把所有字符转换为小写: <?php高佣联盟 www.cgewang.comecho strtolower("Hello WORLD.");?> 定义和用法 str ...

  5. C/C++编程笔记:C语言制作情侣必备《爱情电子相册》,源码解析!

    今天是521,就分享一个程序员必会的——情侣回忆杀<爱情电子相册>吧!话不多说,先上思路,后接源码! 具备能力: 1.基本可视化编程 1.1 initgraph(800,600); 1.2 ...

  6. markdown利器-小书匠

    markdown利器-小书匠 为什么要用markdown语法编写文档? 编写文档的好处这里就不多说了.相信很多人都会在一些博客网站上发布自己的博客,那么怎么能使得自己的博客内容更加具有通用性呢?正如j ...

  7. 验证Kubernetes YAML的最佳实践和策略

    本文来自Rancher Labs Kubernetes工作负载最常见的定义是YAML格式的文件.使用YAML所面临的挑战之一是,它相当难以表达manifest文件之间的约束或关系. 如果你想检查所有部 ...

  8. python操作Excel,你觉得哪个库更好呢?

    对比学习python,更高效~ Excel数据的类型及组织方式 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手.很多已经做案例的人,却不知 ...

  9. Codechef June Challenge 2020 Division 1 记录

    目录 The Tom and Jerry Game! Operations on a Tuple The Delicious Cake Convenient Airports Guessing Gam ...

  10. 在java中,怎样创建编写javascript的环境?

    刚开始还没有学到这一块的时候,预习的时候也是在网上搜索这一类的信息时候, 可是都是八竿子碰不到边的!在此也是呕心沥血的为读者献上最好的: 1.首先:点击空白处>右键>project: 2. ...