DHCP理论基础

DHCP

DHCP定义

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)
是一个局域网的网络协议,主要用于给内部网络和网络服务供应商自动分配IP地址。前身又称,BOOTP。

DHCP使用UDP协议,有两个熟知端口:DHCP服务器为67,DHCP客户为68。DHCP分配IP地址的方式有:自动分配、动态分配和手工配置。前两种都是由DHCP服务器给客户端分配,自动分配的是永久性的IP地址,动态分配的IP地址过一段时间过期或能被客户端主动释放。手工配置由用户手动为客户端指定IP地址

DHCP工作过程分为4个阶段

发现阶段(DHCP Discover)、提供阶段(DHCP Offer)、选择阶段(DHCP Request)和确认阶段(DHCP Ack)。

1)发现阶段,DHCP客户端以广播的形式寻找DHCP服务器

2)提供阶段,接收到DHCP Discover的服务器都会响应,DHCP服务器从未出租的IP地址中挑选一个给客户端,发送DHCP Offer包

3)选择阶段,DHCP客户端选择第一个收到的DHCP Offer包信息来接收,以广播方式回答一个DHCP Request请求信息

4)确认阶段,被选择的DHCP服务器确认所提供的IP地址,发送DHCP Ack,未被选择的服务器回收曾提供的IP地址。

(1).发现阶段(DISCOVER)

DHCP客户端启动时,计算机发现本机上没有任何IP地址设定,将以广播方式通过UDP 67端口发送DHCP DISCOVER请求报文(客户端的MAC地址信息),来寻找DHCP服务器,请求IP地址租约,因为客户机还不知道自己属于哪一个网络,所以封包的源地址为0.0.0.0,目的地址为255.255.255.255,向网络发送特定的广播信息。

网络上每一台安装了TCP/IP协议的主机都会接收这个广播信息,但只有DHCP服务器才会做出响应。

请求获得IP,子网掩码,默认网关,DNS等信息

(2).提供阶段(OFFER )

该客户对应的租约已存在且未被再次分配(包括租约到期和未到期的租约),则直接分配已记录的地址信息

该客户对应的租约不存在,服务器响应DHCP OFFER,会从对应的地址池中查找(注意:该处地址池应该有个前提条件,就是可用的地址池:应当和接收口的IP为同一网段,或同giaddr字段同一网段,否则无法分配);然后从尚未出租的IP地址中挑选一个最前面的ip地址连同其它的参数设定,响应给客户端一个DHCP OFFER (单播)报文,报文里面包括客户机MAC地址信息,TCP/IP的一些配置信息

(3).选择阶段(REQUEST)

DHCP客户端可以接收到多个DHCP服务器的DHCP OFFER数据包,但只会挑选其中一个 DHCP OFFER(通常只接受收到的第一个DHCP OFFER数据包),然后会向网络发送一个DHCP REQUEST广播报文(报文中包含客户端的MAC地址、接受的租约中的IP地址、提供此租约的DHCP服务器地址等),告诉所有DHCP服务器它将指定接受哪一台服务器提供的 IP 地址,这样其他的服务器就会释放之前预分配给客户端的IP地址。同时,客户端还会向网络发送一个ARP 报文,查询网络上面有没有其它设备使用该 IP 地址,如果发现该 IP 已经被占用,客户端则会送出一个DHCP DECLIENT报文给 DHCP 服务器,拒绝接受其 DHCP OFFER,并重新发送 DHCP DISCOVER信息

此时,由于还没有得到DHCP服务器的最后确认,客户端仍然使用0.0.0.0为源IP地址,255.255.255.255为目标地址进行广播。

(4).确认阶段(ACK )

当DHCP Server收到DHCP Client发送的DHCP Request后,确认要为该DHCP Client提供的IP地址,并根据客户机的MAC地址记录该次租约行为后,并便向该DHCP Client响应一个ACK报文(包含该IP地址,默认网关,DNS服务器等网络配置信息),来告诉DHCP Client可以使用该IP地址了,并告知客户端这个网络参数租约的期限,并且开始租约计时。然后DHCP Client就可以将该IP地址与网卡绑定,完成初始化过程。另外其他DHCP Server都将收回自己之前为DHCP Client提供的IP地址

客户端在接收到DHCP ACK后,会向网络发送针对此IP地址的ARP解析请求以执行冲突检测,查询网络上有没有其它机器使用该IP地址;如果发现该IP地址已经被使用,客户机会发出一个DHCP DECLINE数据包给DHCP服务器,拒绝此IP地址租约,并重新发送DHCP DISCOVER信息.

当用户不再需要使用分配IP地址时,就会"主动"向DHCP服务器发送RELEASE报文,告知服务器用户不再需要分配IP地址,DHCP服务器会释放被绑定的租约(在数据库中清除某个MAC对某个IP的租约记录,这样,这个IP就可以分配给下一个请求租约的MAC)

DHCP抓包分析

DHCP数据包

发现数据包

img

1、源地址为0.0.0.0,因为客户端目前还没有IP地址;255.255.255.255是广播地址

2、使用的是UDP协议,源端口为68(客户端),目的端口为67(服务器)

3、Bootstrap Protocol就是DHCP协议

响应数据包

在这里插入图片描述

1、仍然是广播包

2、DHCP中有提供给客户端的IP地址192.168.0.102,租期为至少1天(可根据实际情况自定义),子网掩码255.255.255.0等信息。

请求数据包

在这里插入图片描述
1、由于还没有获取到IP,源IP还是为0.0.0.0。目的IP为255.255.255.255,目的MAC依然是广播地址,表示告诉所有的DHCP服务器它所选择的地址。

2、BOOTP协议中包含所请求的IP地址和DHCP服务器标志符

确认数据包

在这里插入图片描述
该包是DHCP流程的最后一步。

img

报文交互流程

img

续约

DHCP客户机会在租期过去50%的时候,直接向为其提供IP地址的DHCP服务器发送DHCP REQUEST消息包;如果客户机接收到该服务器回应的DHCP ACK消息包,客户机就根据包中所提供的新的租期以及其它已经更新的TCP/IP参数,更新自己的配置,IP租用更新完成。如果没有收到该服务器的回复,则客户机继续使用现有的IP地址,因为当前租期还有50%

如果在租期过去50%的时候没有更新,则DHCP客户机将在租期过去87.5%的时候再次向为其提供IP地址的DHCP服务器联系;如果还不成功,到租约的100%时候,DHCP客户机必须放弃这个IP地址,重新申请

如果此时并没有DHCP可用,DHCP客户机会使用169.254.0.0/16中随机一个地址,并且每隔5min在进行尝试

DHCP中继是什么(代理商)

(1).在大型的网络中,可能会存在多个网段,DHCP客户机通过网络广播消息获得DHCP服务器的响应后得到IP地址。但广播消息是不能跨越网段的,因此,如果DHCP客户机和服务器在不同的网段内,即被路由器分割开来时,客户机向服务器申请IP地址的时候,就要用到DHCP中继

(2).当企业的内部网络规模较大时,通常被划分为多个不同的子网,网络内配置了VLAN,VLAN能隔离广播,而DHCP协议使用广播,DHCP服务器在哪个VLAN中,就只有在相同VLAN内的客户机能从DHCP服务器那里获取IP地址。所以,将DHCP这种特殊的广播信息在不同网段的VLAN之间转发,让其他VLAN的客户机也能从DHCP服务器那里获得IP地址,就要用到DHCP中继

(3).DHCP中继代理实际上是一种软件技术,安装了DHCP中继代理的设备(路由器,交换机,服务器)称为DHCP中继代理服务器,它承担不同网段间的DHCP客户机和服务器的通信

DHCP中继原理:

(1). DHCP客户机申请IP租约,发送DHCP Discover包

(2). 中继代理收到该包,并转发给另一个网段的DHCP服务器

(3). DHCP服务器收到该包,将DHCP Offer包发送给中继代理

(4). 中继代理将地址租约(DHCP Offer)转发给DHCP客户端,接下来的过程,DHCP Request包从客户机通过中继代理转发到DHCP服务器,DHCP ACK消息从服务器通过中继代理转发到客户机

img

DHCPv6介绍

DHCPv6定义

DHCPv6(Dynamic Host Configuration Protocol for IPv6,支持IPv6的动态主机配置协议)是针对IPv6编址方案设计的,为主机分配IPv6前缀、IPv6地址,DNS等其他网络配置参数的协议

基于UDPv6协议工作

常用的2个端口:547(DHCP server,relay), 546(DHCP client)

由于在 IPv6中 没有广播报文,使用组播(默认所有DHCPv6服务器都会加入并侦听该组播组:FF02::1:2)报文,客户端也无需配置服务端的IPv6地址

DHCPv6协议的优势

可以为主机分配IPv6地址

可以为主机分配IPv6前缀,DNS服务器、域名等网络配置参数

可以为特定主机分配特定的地址/前缀

便于全网络的自动配置和网络层次性管理

DHCPv6的工作原理

快速分配过程

(1) DHCPv6客户端在发送的Solicit消息中携带Rapid Commit选项,标识客户端希望服务器能够快速为其分配地址/前缀和网络配置参数

(2) 如果DHCPv6服务器支持快速分配过程,则直接返回Reply消息,为客户端分配IPv6地址/前缀和其他网络配置参数。如果DHCPv6服务器不支持快速分配过程,则采用交互四个消息的分配过程为客户端分配IPv6地址/前缀和其他网络配置参数

交互四个消息的分配过程

发现阶段

客户端发送Solicit报文来发现 DHCPv6 服务器,并请求DHCPv6 服务器为其分配 IPv6 地址和网络配置参数,由于客户端不知道 DHCPv6 服务器的 IPv6 地址,所以客户端用组播地址:FF02::1:2向同一链路范围内的所有DHCPv6服务器发送Solicit报文;Solicit报文中携带了客户端的DUID、需要请求的非临时地址、以及其他网络配置参数等信息

提供阶段

DHCPv6 服务器接收到Solicit报文后,选择按照 IPv6 地址从小到大的顺序采用循环查找方式,选择最新找到的可供分配的 IPv6 地址,然后通过Advertise报文以单播方式回应给客户端;Advertise报文里面携带了服务器的DUID、客户端的DUID、分配给客户端的IPv6地址及租期等信息

选择阶段

因为Solicit报文是组播发送的,所以如果同一链路范围内存在多个 DHCPv6 服务器,则接收到Solicit报文的服务器都会回应Advertise报文,如果有多个 DHCPv6 服务器向DHCPv6客户端回应Advertise报文,则 DHCPv6 客户端选择服务器优先级最高的Advertise报文,然后客户端以组播方式向同一链路范围内的所有 DHCPv6 服务器发送Request报文,该报文中包含客户端选择的 DHCPv6 服务器的DUID、客户端的DUID、客户端IPv6地址

确认阶段

当 DHCPv6 服务器收到Request报文后,对报文中携带的服务端DUID信息进行判断:
若报文中携带的服务端DUID不是本服务端的DUID,则对该Request报文不回应,同时将Request报文中请求的IPv6地址回收
若报文中携带的服务端DUID是本服务端的DUID,则以单播方式回应Reply报文,确认Request报文中请求的IPv6地址分配给客户端使用

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 (DUID) (RFC 6355),DHCPv4使用MAC地址.

消息类型名称不同,大部分功能类似

DHCPv4基于IPv4包传输,DHCPv6基于IPv6包传输

DHCPv6使用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
DHCPv4可以在路由器上配置, stateful DHCPv6一般不能在路由器上配置
DHCPv4为客户端提供默认网关地址,DHCPv6不包含这个option,IPv6节点通过ICMPv6 RA消息学习到first hop路由器地址
DHCPv4可以在路由器上配置, stateful DHCPv6一般不能在路由器上配置
DHCPv4为客户端提供默认网关地址,DHCPv6不包含这个option,IPv6节点通过ICMPv6 RA消息学习到first hop路由器地址
DHCPv4地址池可能耗尽; DHCPv6网段通常为64位耗尽可能性接近0

  • 41
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
DHCP(动态主机配置协议)服务器配置课程设计是为了帮助学生了解和掌握DHCP服务器的工作原理、配置方法以及应用场景。课程设计将从理论和实践两个方面展开,旨在培养学生对DHCP服务器的理论基础和实际操作能力。 首先,课程设计将介绍DHCP服务器的基本概念,包括其作用、原理、工作流程和功能特点。学生需要了解DHCP服务器在局域网中的重要性以及其与静态IP配置的区别。接着,课程设计将引导学生进行DHCP服务器的实际配置操作,包括在Windows和Linux环境下的配置方法和步骤。学生将学习如何设置IP地址池、网关、DNS服务器等参数,以及如何进行IP地址租约的管理和监控。 其次,课程设计还将围绕DHCP服务器的应用场景展开,例如在企业网络、公共无线网络和云计算环境中的实际应用。学生将通过案例分析和仿真实验来了解DHCP服务器在不同场景下的配置和优化策略,以及如何解决DHCP故障和安全问题。 最后,课程设计将强调实际操作能力的培养,鼓励学生通过实验操作和项目实践来巩固所学知识。学生将通过配置DHCP服务器、模拟故障排查和网络优化等实践项目,提高他们的技术能力和问题解决能力。同时,课程设计还将结合考核方式,包括实验报告、课堂演示和上机实验等形式,来评估学生对DHCP服务器配置的掌握程度。 综上所述,DHCP服务器配置课程设计旨在全面提升学生对DHCP服务器的理论认识和实际操作能力,为其今后从事网络管理和运维工作打下坚实的基础

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值