TCP/IP详解 第六章 DHCP协议
1、DHCP简介
1、DHCP (Dynamic Host Configuration Protocol)即动态主机设置协议。
2、前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,常用的端口:67(DHCPv4 server),68(DHCPv4 client), 547 (DHCPv6 server) , 546 (DHCPv6 client)。DHCP通常被用于局域网环境,主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率
3、DHCP协议属于应用层协议
DHCP SERVER负责接收客户端的DHCP请求,管理LAN端所有的IP网络设定资料,相比于BOOTP,DHCP通过“租约”来实现动态分配IP的功能,实现IP的时分复用,从而解决IP资源短缺的问题。其地址分配方式有三种,分别是人工配置(由管理员对每台具体的计算机指定一个地址),自动配置(服务器为第一次连接网络的计算机分配一个永久地址),动态配置(在一定的期限内将地址租给计算机,租期结束后客户必须续租或者停用该地址),而对于路由器,经常使用的地址分配方式是动态配置。
1.1、DHCP简介:BOOTP
BOOTP(Bootstrap Protocol,引导程序协议)是一种引导协议,基于IP/UDP协议,也称自举协议,是DHCP协议的前身。BOOTP用于无盘工作站的局域网中,可以让无盘工作站从一个中心服务器上获得IP地址。通过BOOTP协议可以为局域网中的无盘工作站分配动态IP地址,这样就不需要管理员去为每个用户去设置静态IP地址。
BOOTP可以看成是简单版的DHCP,是对主机的静态配置,而DHCP可以依据一些策略对主机进行动态配置。BOOTP用于无盘工作站的启动和配置,而DHCP更适用于客户端接入变化的网络,即客户端接入时间、接入地点不固定。
2、DHCP协议封装
OP:操作类型,0-请求,1-应答
HWtype:1 为以太网
Hwlen: 6
Hops: 中继次数,每中继一次加1
Transaction id:事务ID
Second elapsed:从第一次请求开始过去的时间
Flag:0-单播,1只能处理广播(不能或者不愿意处理单播)
ciaddr:客户端IP地址,如果没有,填全0
yiaddr:由于服务器填写,分配给客户端的IP地址
siaddr: 下一服务器地址(用于bootp引导过程)
giaddr: 中继网关服务器地址(跨子网进行DHCP地址分配的场景)
chaddr:客户端MAC地址
sname:dhcp服务器名称
bootfilename:引导文件名称
magic cookie: dhcp为了兼容BOOTP增加的魔数( 63.82.53.63)
option:拓展选项
2.1、DHCP协议封装:拓展选项
常用tag:
0 :填充 1:子网掩码 3:路由器地址 6:域名服务器
15:域名 50:请求的IP地址 51:地址租用期
53:DHCP消息类型 54:服务器标识符 55:参数请求列表
56:DHCP错误消息 58:租约更新时间 59:租约重新绑定时间
61:客户机标识符 119:域搜索列表 255: 结束
2.2、DHCP协议封装:DHCP消息类型(53)
DHCP常用消息类型:
DHCPDISCOVER(1), DHCPOFFER (2), DHCPREQUEST (3), DHCPDECLINE (4), DHCPACK (5),DHCPNAK (6), DHCPRELEASE (7), DHCPINFORM (8), DHCPFORCERENEW(9) , DHCPLEASEQUERY (10), DHCPLEASEUNASSIGNED (11), DHCPLEASEUNKNOWN (12), DHCPLEASEACTIVE (13).
3、DHCP工作原理
3.1、DHCP协议通信过程
DHCPDISCOVER(1):
广播消息,src 0.0.0.0:68 dst 255.255.255.255:67
DHCPOFFER (2):
携带,租期T,更新时间T1(通常为1/2*T),重新绑定时间T2(通常为7/8*T)
DHCPREQUEST (3):
包含一个服务器标识符,选定的IP地址
DHCPACK (5):
服务器确认可以绑定该IP地址
DHCPNAK (6)
服务器无法分配该IP地址
DHCPDECLINE (4):
客户端使用ACD检测冲突,发现该IP地址被占用,发送此消息放弃该IP地址
DHCPRELEASE (7):
客户端在租期内主动放弃一个IP地址
DHCPINFORM (8):
客户端已经有IP地址的情况下,需要其他配置信息,发送此信息
3.2、DHCP状态机
4、DHCPv6: 与DHCPv4的区别
1、DHCPv6使用组播地址:ff02::1:2
而DHCPv4使用广播
2、 DHCPv6中没有保留BOOTP协议
3、DHCPv6中重要概念:
客服端标识符,服务端标识符
身份关联(IA),DUID
4.1、DHCPv6 :消息格式
4.2、DHCPv6: 消息类型对比
4.3、DHCPv6: IA(身份关联)
IAID:32位随机数
T1:更新时间
T2:重新绑定时间
IA_NA: NA选项
IA_TA: TA选项
4.4、DHCPv6: DUID(DHCP唯一标识符)
三种生成方式:
DUID-LLT:基于链路层地址和时间DUID
DUID-EN:基于企业编号和供应商分配的DUID
DUID-LL:仅基于链路层地址的DUID
4.5、DHCPv6:有状态和无状态
有状态的地址配置:
类似DHCPv4,通过使用如 DHCP 的配置协议,用来配置非链接本地地址,以及其他额外信息(DNS等)
无状态的地址配置:
使用无状态地址自动配置,在无状态下客户机认为能够自己配置IPv6地址,当需要DHCPv6获取额外信息(DNS服务等),另外一种选择是使用ICMPv6路由器通告消息来获得一台DNS服务器的地址
4.5、DHCPv6:生命周期
4.6、DHCPv6:ICMPv6路由器通告消息
两个重要字段
M位:可管理地址配置标志 O位:其他配置标志
M0 O0:表示不使用DHCPv6,采用无状态地址自动分配
M1 O1:DHCPv6 有状态, DHCPv6 将分配有状态地址,同时分配其他配置
M0 O1:DHCPv6 无状态:DHCPv6 不为 IPv6 主机分配有状态地址,但分配无状态配置设置
M1 O0:DHCPv6 用于地址配置,但不用于其他配置,这是一种最不可能的组合
4.7、DHCPv6:通信过程
4.8、DHCPv6:消息介绍
ROUTER SOLICIT:路由器发现消息
ROUTER ADVERTISE:路由器通知消息
SOLICIT(1):DHCPv6发现消息
ADVERTISE(2): DHCPv6通知消息
REQUEST(3): DHCPv6请求消息
REPLY(7):DHCPv6应答消息
DECLINE(9): DHCPv6放弃
INFORMATION-REQUEST(11):已有IP的情况下,使用此消息申请其他配置
4、DHCPv6:前缀委托
一台路由器向另一台路由器委托一个地址空间范围,这个地址可以描述为一个IPv6地址前缀,使得该路由器可以像一个DHCPv6服务器那样工作
5、DHCP中继
5.1、DHCP中继:重要概念
1、中继服务在第3层,只负责DHCP中的广播或者组播数据
2、中继代理选项
DHCPv4 RAIO:元选项,很多子选项用于ISP标识请求来自于哪个用户,哪个链路或网络,安全认证子选项(SHA-1算法)
3、中继代理远程ID子选项
用于标识远程客户机(呼叫方ID,用户名,调制解调器ID,点对点链路的远程IP地址),DHCPv6版本中还包含了DUID
4、服务器标识符覆盖
5、租约查询,批量租约查询
6、2层中继代理 IPv4 LDRA
6、DHCP与DNS交互
组合DNS /DHCP服务器:
能够在给客户机分配IP地址的同时,根据DHCPREQUEST中的客户机标识符或者域名,进行域名和IP地址绑定,并更新到DNS数据库中,这样后续的DNS请求,都能相应最新的IP和域名绑定信息
7、DCHP安全:DHCP认证
1、认证消息:下发一个共享配置令牌,客户端和服务端配置令牌信息匹配则可以接受该消息,有令牌信息能够被截获,所以这种保护方式很弱
2、延期认证:假设客户端和服务端有一个共享秘钥,当客户端发送DHCPDISCOVER和DHCPINFORM时,包含一个认证选项,则DHCPINFORM和DHCPACK中包含一个认证码(MAC加密后的数据),
客户端检测认证码是否正确。核心算法采用MD5签名校验
3、DHCP认证机制没有被广泛应用
7.1、DHCP安全:攻击手段
1、未授权客户机或者未授权服务器对DHCP通信过程的干扰
2、耗尽配置资源的Dos攻击
感谢xuj
TCP/IP详解 第六章 DHCP协议相关推荐
- TCP/IP详解--第六章
第6章 ICMP:Internet控制报文协议 6.1 引言 I C M P 经常被认为是 I P 层的一个组成部分.它传递差错报文以及其他需要注意的信息. ICMP报文通常被 IP 层或更高 ...
- TCP/IP详解--第十七章
第17章 TCP:传输控制协议 17.1 引言 本章将介绍 TCP为应用层提供的服务,以及 TCP首部中的各个字段.随后的几章我们在了 解TCP的工作过程中将对这些字段作详细介绍. 对TC ...
- TCP/IP详解--第五章
第5章 RARP:逆地址解析协议 5.1 引言 具有本地磁盘的系统引导时,一般是从磁盘上的配置文件中读取 I P地址.但是无盘机, 如X终端或无盘工作站,则需要采用其他方法来获得 IP地址. ...
- 【转】:TCP/IP详解学习笔记(4)-ICMP协议,ping和Traceroute
TCP/IP详解学习笔记(4)-ICMP协议,ping和Traceroute 分类: TCP/IP详解学习笔记计算机网络2006-04-20 18:147970人阅读评论(1)收 ...
- TCP/IP详解第一卷第一章重点摘要
一.协议族 一系列相关协议的集合称为协议族 指定一个协议族中的各种协议之间的相互关系并划分需要完成的任务设计,称为协议族的体系结构或参考模型 二.TCP/IP TCP/IP是一个开放的系统,协议族定义 ...
- TCP/IP详解 第七章 防火墙和网络地址转换(1)
一.引言 1.Internet和协议发展初期,仅用于大学和科研机构.处于没人攻击状态. 2.20世纪80.90年代,成功的攻击成了家常便饭.为了解决这个问题,引入了防火墙. Ø 了解防火墙 l 用一种 ...
- TCP/IP详解--第三章
第3章 IP:网际协议 3.1 引言 IP是TCP/IP协议族中最为核心的协议.所有的 TCP.UDP.ICMP及IGMP数据都以 IP数据 报格式传输(见图 1-4).许多刚开始接触 TCP/ ...
- TCP/IP详解--第十一章
第11章 UDP:用户数据报协议 11.1 引言 UDP是一个简单的面向数据报的运输层协议:进程的每个输出操作都正好产生一个 UDP . 数据报,并组装成一份待发送的 I P 数据报 ...
- TCP/IP详解--第七章
第7章 Ping程序 7.1 引言 "ping"这个名字源于声纳定位操作.Ping程序由MikeMuuss 编写,目的是为了测试另一 台主机是否可达.该程序发送一份 IC ...
最新文章
- python的sklearn机器学习SVM中的NuSVC运行报错:ValueError: b'specified nu is infeasible'
- 九十分钟极速入门Linux——Linux Guide for Developments 学习笔记
- 关于DEBUG的一点体会
- Mysql京东的一道面试题目 比较综合
- 开发进阶:Dotnet Core多路径异步终止
- Win32ASm学习[1]:RadASm下测试Debug
- Sublime Text 3新建工程
- Ajax请求数据与删除数据后刷新页面
- TCP、UDP及IP协议总结
- C#两个窗体间的相互通信(转)
- IT工程师学习方法和发展路线
- 三菱je -c中映射表的作用_如何将三菱PLC程序转换成欧姆龙PLC程序?
- c语言中双冒号意思_详解C++中的双冒号 ::
- AtCoder Beginner Contest 126
- Java代码中更改imageview中引用的图片
- Python+Vue计算机毕业设计BeatHouse伴奏交易平台z19pu(源码+程序+LW+部署)
- python-re模块-hashlib模块
- 卡尔曼滤波与组合导航原理_图解卡尔曼滤波器,无需深厚的数学知识也易懂(第五部分:多维卡尔曼滤波器)...
- win11剪贴板数据如何删除 Windows清空剪贴板数据的步骤方法
- 中年危机总在不经意间来到