首页 > 其他分享 >DHCP(动态主机配置协议)

DHCP(动态主机配置协议)

时间:2023-04-17 22:56:52浏览次数:41  
标签:主机 报文 IP地址 服务器 DHCP 动态 分配 客户端

DHCP(动态主机配置协议)

       是一个应用层协议。分配地址时,DHCP服务器和客户端需要在一个局域网内。服务器为不同网段的主机分配IP时,只要连接两个网段中间的路由器能转发DHCP配置请求即可,但这要求路由器配置中继功能。 端口号:67(DHCP服务器),68(DHCP客户端)

DHCP服务器提供三种IP分配方式:

(1)自动分配
自动分配是当DHCP客户端第一次成功地从DHCP服务器端分配到一个IP地址之后,就永远使用这个地址。

(2)动态分配
动态分配是当DHCP客户端第一次从DHCP服务器分配到IP地址后,并非永久地使用该地址,每次使用完后,DHCP客户端就得释放这个IP地址,以给其他客户端使用。

(3)手动分配
手动分配是由DHCP服务器管理员专门为客户端指定IP地址。

总结:其中,又分为静态分配和动态分配,自动分配和手动分配都为静态分配。


DHCP报文

DHCP一共有8种报文,(1)DHCP Discover(2)DHCP Offer(3)DHCP Request(4)DHCP ACK(5)DHCP NAK(6)DHCP Release(7)DHCP Decline(8)DHCP Inform。

这些报文分为:

请求报文(客户端发出的): DHCP Discover、DHCP Request、DHCP Release、DHCP Inform和DHCP Decline。
应答报文(服务器发出的): DHCP Offer、DHCP ACK和DHCP NAK。

各种类型报文的基本功能如下:

(1)DHCP DISCOVER:  DHCP 客户端在请求 IP地址时并不知道 DHCP服务器的位置,因此DHCP客户端会在本地网络内以 广播方式发送 Discover 请求报文,以发现网络中的 DHCP服务器。所有收到 Discover 报文的 DHCP服务 器都会发送应答报文, DHCP 客户端据此可以知道网络 中存在的 DHCP 服务器的位置。
(2)DHCP OFFER:   DHCP 服务器收到 Discover 报文后,就会在所配置的地址池中查找一个合适的 IP 地址,加上相应的租约期限和其他配置信息(如网关、 DNS 服务器等),构造一 个 Offer 报文,发送给 DHCP 客户端,告知用户本服务器可以为其提供 IP 地址。但这个报文只是告诉 DHCP客户端可以提供 IP地址,最终还需要客户端通过 ARP 来检测该 IP地址是否重复。
(3)DHCP REQUEST:  DHCP客户端可能会收到很多 Offer 请求报文,所以必 须在这些应答中选择一个。通常是选择第一个 Offer 应答 报文的服务器作为自己的目标服务器,并向该服务器发 送一个广播的 Request 请求报文,通告选择的服务器, 希望获得所分配的 IP 地址。另外,DHCP客户端在成 功获取 IP地址后,在地址使用租期达到50% 时,会向 DHCP 服务器发送单播 Request 请求报文请求续延租约, 如果没有收到 ACK 报文,在租期达到87.5% 时,会再次发送 广播的 Request 请求报文以请求续延租约。
(4)DHCP ACK:   DHCP 服务器收到 Request 请求报文后,根据 Request 报文 中携带的用户 MAC 查找有没有相应的租约记录,如果有则发送 ACK 应答报文,通知用户可以使用分配的 IP地址。
(5)DHCP NAK:   如果 DHCP服务器收到 Request 请求报文后,没有发现有相应的租约记录或者由于某些原因无法正常分配IP地址,则向 DHCP客户端发送NAK应答报文,通知用户无法分配合适的 IP地址。
(6)DHCP RELEASE:  一般出现在客户端下线等状况。当 DHCP 客户端不再需要使用分配 IP 地址时,就会主动向 DHCP 服务器发送 RELEASE 请求报文,告知服务器用户不 再需要分配 IP 地址,请求 DHCP 服务器释放对应的 IP 地址。
(7)DHCP DECLINE:  DHCP 客户端收到 DHCP 服务器 ACK 应答报文后,通过地址冲突检测发现服务器分配的地址冲突或者由于其他原因导致不能使用,则会向 DHCP服务器发送 Decline求报文,通知服务器所分配的IP地址不可用,以期获得新的IP地址。
(8)DHCP inform:DHCP客户端如果需要从DHCP服务器端获取更为详细的配置信息,则向 DHCP服务器发送Inform 求报文; DHCP服务器在收到该报文后,将根据租约进行查找到相应的配置信息后,向 DHCP客户端发送 ACK 答报文。目前基本上不用了。

 

分配的IP地址要符合以下原则:
地址空闲,同一网络下没有其他设备使用该地址。

DHCP通信分为四步:

(1)主机发送DHCPDISCOVER广播包在网络上寻找DHCP服务器;

(2)DHCP服务器向主机发送DHCPOFFER单播数据包,包含IP地址、MAC地址、域名信息以及地址租期;

(3)主机发送DHCPREQUEST广播包,正式向服务器请求分配已提供的IP地址;

(4)DHCP服务器向主机发送DHCPACK单播包,确认主机的请求。

 

DHCP同时也存在不少缺点:DHCP不能发现网络上非DHCP客户机已经在使用的IP地址;当网络上存在多个DHCP服务器时,一个DHCP服务器不能查出已被其它服务器租出去的IP地址;DHCP服务器不能跨路由器与客户机通信,除非路由器允许BOOTP转发。

 

DHCP攻击(了解)
针对DHCP的一种攻击办法是从服务器那里骗IP地址。攻击者的电脑可以不断发出DHCP请求,冒充成新入网的客户机。于是,DHCP服务器的地址池被耗干,无法分配地址给后来的用户。后来的用户再也没法使用网络服务。攻击者很可能会继续下连环套。攻击者占有了大量IP地址,可以装扮成新的DHCP服务器,把自己骗来的IP地址分配给网络上的新用户。
等等,好像有什么不对攻击者搞瘫一台DHCP服务器,就为了过一下cosplay的瘾?
当然不是。DHCP服务器还能提供其他网络设置参数。攻击者可以让自己成为DNS服务器或者网络出口。于是,客户机的域名解析和外网通信,必须经过攻击者的电脑。这个时候,攻击者的权限就很大了。他可以偷听通信、伪装成客户机、假扮成某个域名的网站。比如说,攻击者就可以篡改域名解析,让你在访问www.cnblogs.com/vamei时,实际上访问的是攻击者提供的一个网页。当你在这个网页上输入用户名和密码时,你的信息就完全泄露给了攻击者。
DHCP攻击让人防不胜防。DHCP协议在设计中并没有考虑到安全性的问题,所以很难从软件上杜绝DHCP攻击。某些品牌的交换机上,可以指定特定端口给合法的DHCP服务器,以免其他人伪装。当然,最重要的保护方式,还是防止攻击者连入局域网。

 

标签:主机,报文,IP地址,服务器,DHCP,动态,分配,客户端
From: https://www.cnblogs.com/dongtianci0801/p/17327840.html

相关文章

  • vSphere Web Client 添加主机进VSAN集群时报错“SAN 主机移至目标群集: vSAN 群集的 U
    案例描述vSphereWebClient添加主机进VSAN集群时,报“无法将vSAN主机移至目标群集:vSAN群集的UUID不匹配(主机:5223a6c9-cf94-f978-1abb-9906506626be,目标:523ae663-623b-e2fc-39e3-43b15c5ca801)。”错误。原因分析是因为该esxi主机已经加入过其它集群,和现在新加......
  • TWebBrower 动态改变大小
    注意:Panel1.BevelOuter:=bvNone;unitUnit2;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,OleCtrls,SHDocVw,ExtCtrls;typeTForm2=class(TForm)Panel1:TPanel;......
  • 0.96寸OLED使用 sprintf() 显示动态变化数字
    显示语句OLED 可以用sprintf() 函数输出的字符串来显示动态变化的数字。例如,可以定义一个u8charoled_buff[20],作为sprintf()的第1个输入参数,第2、3个参数可按 printf() 函数的格式写。然后在将oled_buff 作为 OLED_ShowString() 的参数(第1、2个参数为坐标,第3个为要......
  • 动态规划:剑指 Offer 42. 连续子数组的最大和
    题目描述:输入一个整型数组,数组中的一个或连续多个整数组成一个子数组。求所有子数组的和的最大值。要求时间复杂度为O(n)。 提示:1<= arr.length<=10^5-100<=arr[i]<=100   classSolution{publicintmaxSubArray(intnums[]){intres......
  • 2-207-通过(LeetCode-509)熟悉动态规划的解题步骤
    1.题目 运态规划的定义   动态规划的解题步骤  2.解法2.1递归 publicstaticintfibonacci(intn){if(n==0){return0;}if(n==1){return1;}returnfibonacci(n-1)+fibonacci(n-2);}2.2运态规划+递归......
  • 主机资源情况监视器demo
    importparamiko#导入paramiko模块用于SSH连接importpsutil#导入psutil模块用于获取系统信息importwx#导入wx模块用于构建GUI应用程序classRemoteMonitor(wx.Frame):#定义RemoteMonitor类,继承自wx.Frame类def__init__(self,host,username,password,port......
  • DHCP协议
    一、DHCP概念DHCP----动态主机配置协议,是一个应用层的协议。当我们将客户主机ip地址设置为动态获取方式时,DHCP服务器就会根据DHCP协议给客户端分配IP,使得客户机能够利用这个IP上网。DHCP----前身是BOOTP(区别DHCP分配的地址是可以有期限的,BOOTP分配的地址是永久的)DHCP是(DynamicHost......
  • 高性能存储SIG月度动态:ANCK ublk完成POC测试,EROFS优化xattr元数据开销
    高性能存储技术SIG(SpecialInterestGroup)目标:高性能存储技术兴趣组致力于存储栈性能挖掘,当前主要聚焦内核io_uring技术优化异步IO性能,使用持久化内存提升业务单成本性能,容器场景存储技术优化等课题。期望通过社区平台,打造标准的高性能存储技术软件栈,推动软硬件协同发展。01......
  • python代码:基于强化学习的智能电网的动态定价方法
    python代码:基于强化学习的智能电网的动态定价方法摘要:提出了一种考虑服务提供商(SP)利润和用户(CUs)成本的分级电力市场中能量管理的动态定价DR算法。使用强化学习(RL)描述分层决策框架,将动态定价问题描述为离散有限马尔可夫决策过程(MDP),并采用Q学习求解该决策问题。使用RL,S......
  • 如何通过vip确定该vip对应的宿主机ip
    ###########      ......