-
2022-04-13 23:44:29
DHCP采用udp作为传输协议,server端采用67端口接受客户端的请求报文,client端采用68号端口接收server的应答报文。
1、client发送discover广播报文,所有的dhcp server会进行响应并回offer包
2、所有的dhcp server都会响应,发送dhcp offer报文,并将client端能使用的ip地址范围一并给客户端
3、dhcp client只能处理一个dhcp offer报文,一般是优先原则,使用最先到达client端的offer包,然后回应一个dhcp request报文,并在报文中加入自己所选中的dhcp server服务器的ip地址,和自己所选中将要使用的ip地址,自己的mac地址等信息
4、dhcp server收到client的request报文后先进行一个判断,检查报文中client所选中的服务器ip地址,需要的IP地址网段是不是自己的,如果不是则清除自己的分配记录,如果是则发送一个ACK(acknowledge)报文,包含使用租期等信息
注:当client收到ACK报文后,会判断ip是否能使用,如果已经被占用,则会重新发送discover报文,通知dhcp服务器该ip地址被使用,重新开始上述过程。
一个完整的dhcp获取地址过程,到这里就结束,之后等到租期到50%时,client端会直接发送request请求包,向dhcp server请求续约,如果得到server端回应的ack报文,则续约成功,如果没有得到回应则继续使用该ip地址,直到租期的87.5%时,client又会发送request广播包向服务器请求续约,如果还是没得到回应,则到租约时间到期,则会发送dhcp release报文释放自身ip地址。开始一个新的申请ip地址过程。
* 客户端第三次的request是广播包主要是为了通知其他未被选择的服务器,释放自己在offer报文中预分配出去的ip地址。
更多相关内容 -
DHCP工作原理知多少?
2021-08-02 04:59:43所以,这里我们来介绍一下DHCP工作原理的内容,通过DHCP的相关使用,可以帮助我们大家来完成IP的管理。下面就看看具体内容吧。DHCP工作原理DHCP是Dynamic Host Configuration Protocol之缩写,它的前身是BOOTP。是...网络庞大的IP结构,在管理方面就显得比较繁琐了。所以,这里我们来介绍一下DHCP工作原理的内容,通过DHCP的相关使用,可以帮助我们大家来完成IP的管理。下面就看看具体内容吧。
DHCP工作原理
DHCP是Dynamic Host Configuration Protocol之缩写,它的前身是BOOTP。是基于C/S模式的,它提供了一种动态指定IP地址和配置参数的机制。这主要用于大型网络环境和配置比较困难的地方。DHCP服务器自动为客户机指定IP地址,指定的配置参数有些和IP协议并不相关,但没有关系,它的配置参数使得网络上的计算机通信变得方便而容易实现了。DHCP使IP地址的可以租用,对于许多拥有许多台计算机的大型网络来说,每台计算机拥有一个IP地址有时候可能是不必要的。租期从1分钟到100年不定,当租期到了的时候,服务器可以把这个IP地址分配给别的机器使用。
DHCP工作原理
视乎客户端是否***次登录网路﹐DHCP的工作形式会有所不同。
***次登录的时候﹕
DHCP工作原理1.寻找Server。当DHCP客户端***次登录网路的时候﹐也就是客户发现本机上没有任何IP资料设定﹐它会向网路发出一个DHCPDISCOVER封包。因为客户端还不知道自己属于哪一个网路﹐所以封包的来源地址会为0.0.0.0﹐而目的地址则为255.255.255.255﹐然后再附上DHCPdiscover的信息﹐向网路进行广播。网络上每一台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应
DHCPdiscover的等待时间预设为1秒也就是当客户端将***个DHCPdiscover封包送出去之后在1秒之内没有得到回应的话就会进行第二次DHCPdiscover广播。在得不到回应的情况下客户端一共会有四次DHCPdiscover广播(包括***次在内)除了***次会等待1秒之外其余三次的等待时间分别是9 13 16秒。如果都没有得到DHCP服务器的回应客户端则会显示错误信息宣告DHCPdiscover的失败。之后基于使用者的选择系统会继续在5分钟之后再重一次DHCPdiscover的要求。
DHCP工作原理2.提供IP租用位址。当DHCP服务器监听到客户端发出的DHCPdiscover广播后﹐它会从那些还没有租出的位址范围内﹐选择最前面的的空置IP,连同其它TCP/IP设定,回应给客户端一个DHCPOFFER封包。由于客户端在开始的时候还没有IP位址﹐所以在其DHCPdiscover封包内会带有其MAC位址信息﹐并且有一个XID编号来辨别该封包﹐DHCP服务器回应的DHCPoffer封包则会根据这些资料传递给要求租约的客户。根据服务器端的设定﹐DHCPoffer封包会包含一个租约期限的信息。
DHCP工作原理3.接受IP租约。如果客户端收到网路上多台DHCP服务器的回应﹐只会挑选其中一个DHCPoffer(通常是***抵达的那个)﹐并且会向网路发送一个DHCP request广播封包﹐告诉所有DHCP服务器它将指定接受哪一台服务器提供的IP位址。之所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址同时﹐客户端还会向网路发送一个ARP封包﹐查询网路上面有没有其它机器使用该IP位址﹔如果发现该IP已经被占用﹐客户端则会送出一个DHCPDECLINE封包给DHCP服务器﹐拒绝接受其DHCPoffer﹐并重新发送DHCPdiscover信息。事实上﹐并不是所有DHCP客户端都会无条件接受DHCP服务器的offer﹐尤其这些主机安装有其它TCP/IP相关的客户软件。客户端也可以用DHCPrequest向服务器提出DHCP选择﹐而这些选择会以不同的号码填写在DHCPOptionField里面。换一句话说﹐在DHCP服务器上面的设定﹐未必是客户端全都接受﹐客户端可以保留自己的一些TCP/IP设定。而主动权永远在客户端这边。
DHCP工作原理4.确认阶段。即DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户机回答的DHCPrequest请求信息之后,它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCPack确认信息,告诉DHCP客户机可以使用它所提供的IP地址。然后DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址
DHCP工作原理5.重新登录。以后DHCP客户机每次重新登录网络时,就不需要再发送DHCPdiscover发现信息了,而是直接发送包含前一次所分配的IP地址的DHCP request请求信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个DHCPack确认信息。如果此IP地址已无法再分配给原来的DHCP客户机使用时(比如此IP地址已分配给其它DHCP客户机使用),则DHCP服务器给DHCP客户机回答一个DHCPnack否认信息。当原来的DHCP客户机收到此DHCPnack否认信息后,它就必须重新发送DHCPdiscover发现信息来请求新的IP地址。
DHCP工作原理6.更新租约。DHCP服务器向DHCP客户机出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回出租的IP地址。如果DHCP客户机要延长其IP租约,则必须更新其IP租约。DHCP客户机启动时和IP租约期限过一半时,DHCP客户机都会自动向DHCP服务器发送更新其IP租约的信息。至于IP的租约期限却是非常考究的﹐并非如我们租房子那样简单﹐DHCP客户机除了在开机的时候发出DHCPrequest请求之外﹐在租约期限一半的时候也会发出DHCPrequest﹐如果此时得不到DHCP服务器的确认的话﹐工作站还可以继续使用该IP﹔然后在剩下的租约期限的再一半的时候(即租约的75%)﹐还得不到确认的话﹐那么工作站就不能拥有这个IP了。
【责任编辑:佟媛微 TEL:(010)68476606】
点赞 0
-
计算机网络之DHCP工作原理
2021-04-03 17:03:32一、动机 Socket库的gethostbyname函数会请求操作系统向DNS服务器发送查询消息(即某域名对应的IP地址是什么)。 显然,要向DNS服务器发送...1.DHCP(Dynamic Host Configuration Protocal)的作用 常用于给主机动态分配一、动机
Socket库的
gethostbyname
函数会请求操作系统向DNS服务器发送查询消息(即某域名对应的IP地址是什么)。
显然,要向DNS服务器发送消息,得先知道DNS服务器的IP地址(有2种方式)。
①手动设置过DNS服务器的IP地址;
②自动获得DNS服务器地址。
那么计算机是如何自动获得DNS服务器地址的呢?这就要让DHCP来大显身手了!
二、动态主机配置协议(DHCP)
1.DHCP(Dynamic Host Configuration Protocal)的作用
常用于给主机动态分配IP地址。
DHCP提供即插即用联网的机制,即允许一台计算机加入新的网络时自动获取IP地址。
再通俗地解释一遍:当张三买了一台新笔记本,用网线将笔记本和网口连接时,该计算机就自动获取了IP地址。DHCP是怎么实现这一个功能的呢?
2.DHCP的工作原理
(0)预备知识
DHCP属于应用层协议,使用UDP协议提供的服务,采用客户/服务器方式工作。(1)工作过程
1)需要IP地址的主机在启动时就向DHCP服务器广播
发送发现消息。说明:
①广播的IP地址结构:子网号+主机号全1。
②上述提到的网口可以通俗理解为路由器的一个端口,对应于1个子网。
综合①和②,那么就有了广播IP地址。
③操作系统内部的网络控制软件(也叫协议栈)根据广播地址把发送消息(内容大意:亲爱的DHCP服务器,施舍给小弟1个IP地址吧:))向子网中所有计算机进行广播。(当然了,消息实际是从网卡经网线传输出去的。)
PS:如果计算机可以使用自动获得IP地址功能,那么接入的子网中有DHCP服务器。2)只有DHCP服务器才响应此广播信息。
响应过程:
DHCP服务器先在其数据库中查找该计算机的配置信息。若找到,则返回找到的信息(说明分配过IP地址了);若找不到,则从服务器的IP地址池中取一个地址分配给该计算机。广播消息:
向所在子网广播“DHCP提供”消息,包括该计算机的IP地址和相关配置。3)计算机收到“DHCP提供”消息后,广播“DHCP请求”信息
4)DHCP服务器广播“DHCP”确认消息
对该过程进行拟人化描述:
①张三(新笔记本)向自己所在的村子(子网)敲锣打鼓地呼喊“村长(DHCP服务器)在哪啊?给我分配套房(IP地址)呗”;(对应上述1
)
②只有村长才打理这一声呼喊,并将预分配房的消息通过村里的大喇叭传出去; (对应上述2
)
③张三听到消息后,满意地点点头,然后呼喊“感谢村长!我就要那套房啦!”;(对应上述3
)
④村长得知后,就在自己的小本本上(DHCP服务器的数据库)记录了这一分配,并广播“m78号房就是你张三的了!”。(对应上述4
)这时候小伙伴就要问了,这不是主机自动获得IP地址吗?那主机怎么自动获得DNS服务器IP地址呢?
PS:由上述的“广播”也知道DHCP协议是基于UDP协议的。(2)自动获得DNS服务器IP地址
1)前言
张三已经有了IP地址了,那么他下一步就要上网冲浪了。
而张三打开浏览器,输入网址(URL)进行冲浪。浏览器就得调用gethostbyname
函数(请求将URL中的域名转化为IP地址),而这是DNS服务器的工作。
作为新时代负有责任的村长大大(DHCP服务器)当然在提供给张三IP地址的同时,要告诉他DNS服务器IP地址啊。否则,张三只有IP地址,没法将域名转化为目标IP地址,冲不了浪啊。2)结论
当计算机选择自动获得DNS服务器IP地址时,DHCP服务器不仅为它分配主机IP地址还告诉它DNS服务器IP地址。3.说明
上述内容掩盖了DHCP的一些细节,比如,DHCP服务器分配给主机的IP地址是临时的。但抓住DHCP工作原理的核心部分才是关键!
-
dhcp工作原理.gif
2021-07-24 12:11:00dhcp工作原理.gif -
DHCP 工作原理
2018-11-05 10:47:33DHCP 工作原理 一、什么是DHCP? DHCP,动态主机配置协议,前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,常用的2个端口:67(DHCP server),68(DHCP client)。DHCP通常被用于局域网环境,主要...DHCP 工作原理
一、什么是DHCP?
DHCP,动态主机配置协议,前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,常用的2个端口:67(DHCP server),68(DHCP client)。DHCP通常被用于局域网环境,主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。简单来说,DHCP就是一个不需要账号密码登录的、自动给内网机器分配IP地址等信息的协议。
二、DHCP协议中的报文
DHCP报文共有一下几种:
- DHCP DISCOVER :客户端开始DHCP过程发送的包,是DHCP协议的开始
- DHCP OFFER :服务器接收到DHCP DISCOVER之后做出的响应,它包括了给予客户端的IP(yiaddr)、客户端的MAC地址、租约过期时间、服务器的识别符以及其他信息
- DHCP REQUEST :客户端对于服务器发出的DHCP OFFER所做出的响应。在续约租期的时候同样会使用。
- DHCP ACK :服务器在接收到客户端发来的DHCP REQUEST之后发出的成功确认的报文。在建立连接的时候,客户端在接收到这个报文之后才会确认分配给它的IP和其他信息可以被允许使用。
- DHCP NAK :DHCP ACK的相反的报文,表示服务器拒绝了客户端的请求。
- DHCP RELEASE :一般出现在客户端关机、下线等状况。这个报文将会使DHCP服务器释放发出此报文的客户端的IP地址
- DHCP INFORM :客户端发出的向服务器请求一些信息的报文
- DHCP DECLINE :当客户端发现服务器分配的IP地址无法使用(如IP地址冲突时),将发出此报文,通知服务器禁止
使用该IP地址。
DHCP 的 工作流程:
3、DHCP 协议包的组成
- Xid :随机生成的一段字符串,两个数据包拥有相同的xid说明他们属于同一次会话
- Ciaddr :客户端会在发送请求时将自己的ip地址放在此处
- Yiaddr :服务器会将想要分配给客户端的ip地址放在此处
- Siaddr :一般来说是服务器的ip地址.但是注意!根据openwrt源码给出的注释,当报文的源地址、siaddr、option>server_id字段不一致(有经过跨子网转发)时,通常认为option>srever_id字段为真正的服务器ip,siaddr有可能是多次路由跳转中的某一个路由的ip (下图中wireshark抓包中也有标明siaddr为nextserver ip address)
- Chaddr :客户端的mac地址
- Giaddr :如果需要跨子网进行DHCP地址发放,则在此处填入经过的路由器的ip地址
- Sname :服务器主域名
- Options :可以自由添加的部分,用于存放客户端向服务器请求信息和服务器的应答信息
DHCP 客户端
一、DHCP 原理
1、什么是DHCP 客户端
DHCP客户端一般来说是局域网中独立的PC主机。
DHCP客户端发出的DHCP DISCOVER包是DHCP协议的开始。
延续租期、发现、释放IP地址等大多数DHCP中的行为都是由DHCP客户端主动发起。
2、DHCP 自动状态机
DHCP获得ip地址的4步骤:discover>offer>request>ack(nak)
DHCP刷新租期的步骤:request>ack(nak)
DHCP释放ip的步骤:release
wnr2000v5 1.0.0.8的代码中没有发现rebooting、initreboot状态。所以DHCP client的状态一般从init开始,完整的状态机如下图(红色代表客户端的状态跳转):
DHCP Server
一、DHCPD 原理
1、简述
DHCP SERVER指的是服务器端,在路由器上体现的就是给LAN端动态分配IP的功能。DHCP SERVER负责接收客户端的DHCP请求,管理LAN端所有的IP网络设定资料,相比于BOOTP,DHCP通过“租约”来实现动态分配IP的功能,实现IP的时分复用,从而解决IP资源短缺的问题。其地址分配方式有三种,分别是人工配置(由管理员对每台具体的计算机指定一个地址),自动配置(服务器为第一次连接网络的计算机分配一个永久地址),动态配置(在一定的期限内将地址租给计算机,租期结束后客户必须续租或者停用该地址),而对于路由器,经常使用的地址分配方式是动态配置。
2、两个租约表
- 静态租约表:对应一个静态租约存储文件,server运行时从文件中读取静态租约表。
- 动态租约表:对应一个周期存储文件,server周期性将租约表存进该文件,在程序开始时将会读取上次存放的租约表。(租约表记录了当前所有分配的租约,包括静态链接的)。
3、基本逻辑
原则上DHCP SERVER是一直处在被动接受请求的状态,当有客户端请求时,服务器会读取获得客户端当前所在的状态以及客户端的信息,并在静态租约表和动态租约表中进行检索找到相应的表项,再根据客户端的状态执行不同的回复。当收到客户端的首次请求时,DHCP服务器先查找静态租约表;若存在请求的表项,返回这个客户的静态IP地址;否则,从IP地址池中选择可用的IP分配给客户,并添加信息到动态数据库中。此外,服务器将会周期性的刷新租约表写入文件存档,在这个过程中会顺便对动态租约表进行租期检查。
执行回复动作:
- DHCPOFFER:
- 静态租用:首先匹配MAC地址,看是否能在静态租约表中找到对应的项,若能找到就把IP分配给他。静态表中的IP不能被其他客户使用。
- 动态租用:
- 1.server试图分配给client上次分配过的IP,在这之前检查这个IP是否正在使用。
- 2.discover中含有request ip 时,检查该IP是否在地址池范围,是否正在使用,是否到期,是否是静态IP,网络上是否已经存在。
- 3.discover不含request ip,从地址池上寻找一个最小的可用IP分配。
- DHCPACK: 根据是否含有request ip和server ip识别客户端现在init_reboot,selecting,renewing/rebinding中的哪个状态,并根据以下规则执行DHCPACK回复:
- 1.若client处于selecting状态,验证request ip和server ip是否同服务器中的匹配。
- 2.若client处于init_reboot状态,验证request ip是否符合租约记录。
- 3.若client处于renewing/rebinding状态,验证client ip address是否符合租约记录。
- DHNAK:
- 1.请求的IP是静态IP,但是MAC地址无法与其对应。
- 2.上面DHCPACK中验证失败。
- 服务器还可能会收到其他包:
- DHCPDECLINE:server会把租约表中相关client硬件地址置空,并保存这个地址一段时间。
- DHCPRELEASE:清空租期回收IP。
- DHCPINFORM:回复DHCPACK,数据包含有关于server的信息。
其他参考资料:
DHCP工作过程详解:http://tonyguo.blog.51cto.com/379574/163475/
-
Linux——DHCP工作原理
2019-07-07 22:33:02DHCP DHCP:dynamic(动态) host configuration Protocal C(Client)/S(Server) 用途:局域网内自动为客户端分配网络参数 网络参数:IP地址 网管 掩码 DNS地址 NTP(网络时间服务器...DHCP协议的工作方式及过... -
DHCP工作原理之步骤详细讲解
2020-06-16 14:47:28DHCP 工作原理(租约四部曲+续租) 1. DHCP 客户端进行 IP 请求 当一个 DHCP客户机启动时, 会自动将自己的 IP地址配置成 0.0.0.0, 由于使用 0.0.0.0不能进行正常通信, 所 以客户机就必须通过 DHCP服务器来获取一... -
DHCP工作原理及基本配置(华为设备 )
2019-11-24 18:13:21采用收工配置,工作量大,容易出错还不好管理,如果用户擅自更改上网参数,还有可能会造成IP地址冲突等问题,使用DHCP来分配IP等网络参数,可以减少管理员的工作量,还能避免出错。 DHCP可以实现动态分配主机上网... -
dhcp工作原理
2014-11-15 18:17:50根据客户端是否第一次登录网络,DHCP 的工作形式会有所不同。 第一次登录的时候: 寻找 Server。当 DHCP 客户端第一次登录网络的时候,也就是客户发现本机上没有任何 IP 数据设定,它会向网络发出一个 DHCP ... -
DHCP工作原理( DHCP地址续约和释放)
2020-02-19 17:37:16DHCP工作原理( DHCP地址释放和续约) -
DHCP工作原理详解
2014-11-11 17:55:52DHCP动态主机配置协议的作用我想作为网管的兄弟们都应该知道了,这里我就不多废话了,今天我要谈的是DHCP的工作过程,了解了工作过程,要排除故障就容易了。 一、DHCP客户机初始化: 1. 寻找DHCP Server。 当... -
dhcp工作原理和搭建dhcp服务
2019-10-16 18:58:12DHCP工作原理: DHCP租约过程:4个步骤,discover(广播)、offer(单播)、request(广播)、ACK(单播) 1、客户端请求IP地址,在局域网内发送discover广播包,寻找DHCP服务器。 2、如果局域网内,存在DHCP... -
DHCP工作原理(DHCP中继代理)
2020-02-19 18:09:53DHCP工作原理(DHCP中继代理) 1.概述: 当跨网段执行DHCP请求时,通过DHCP中继代理,将请求信息以单播方式转发给DHCP服务器 2.图解: 3.分类: DHCP Relay 客户端通知服务器,其所分配的地址已经被其他... -
Windows DHCP工作原理
2020-07-22 19:02:19动态主机设置协定(Dynamic Host Configuration Protocol, DHCP)DHCP是一个局域网的网络协议,使用UDP协议工作,其前身是BOOTP协议。当前的DHCP定义可以在RFC 2131中找到,而基于IPv6的建议标准(DHCPv6)可以在... -
DHCP工作原理及协议详解
2016-10-18 22:31:57注1:在DHCP Discover报文中,客户端在请求地址时,一般会申请它之前使用过的地址,所以在option 50的字段中会存在上一次使用的地址。如果该客户所在的网络中此IP仍然可用,服务器就可以准许该申请。否则,就要看该... -
DHCP工作原理及配置命令
2021-03-17 13:44:45DHCP工作原理及配置命令DHCPDHCP用途使用DHCP的好处DHCP工作原理DHCP配置1.接口模式2.全局模式DHCP中继应用场景原理配置命令DHCP中继服务器DHCP服务器 DHCP DHCP是一个局域网的网络协议,使用UDP协议工作 DHCP用途 ... -
路由交换基础——DHCP工作原理及DHCP Relay
2021-10-06 14:47:45DHCP????DHCP应用场景????DHCP配置????DHCP Relay????免费福利 ????技术背景 网络复杂度的不断提高伴随着网络规模的不断扩大,计算机的数量经常超过可供分配的IP地址数量。便携设备及无线网络的广泛使用也导致计算机... -
DHCP工作原理解释
2020-11-05 18:07:05【工作原理】 用户第一次登录网络时,获取IP地址的步骤: (1)地址租用申请 (DHCP DISCOVER): DHCP客户机通过UDP 68端口发送DHCP DISCOVER广播信息来查找DHCP服务器。网络上每一台安装了TCP/IP协议的主机都会... -
DHCP的工作原理及过程
2019-02-13 16:36:47DHCP,动态主机配置协议,前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,常用的2个端口:67(DHCP server),68(DHCP client)。DHCP通常被用于局域网环境,主要作用是集中的管理、分配IP地址,使client... -
DHCP工作原理(地址请求过程)
2020-02-16 20:49:14DHCP概述: ...②DHCP可以使得整网络的地址分配变得非常简单,大大减低了网络管理员的工作量。 ③DHCP基于UDP协议,采用端口号为67和68,其中68端口为DHCP客户端采用,67端口为DHCP服务端采用。 图... -
wireshark分析DHCP工作原理
2020-10-29 10:07:02最近在做iot wifi开发的过程中遇到了模组连接上了路由器却迟迟拿不到ip的问题,所以决定借此机会深入了解下dhcp的工作原理。 PS:wireshark是无法抓取模组连接路由器的dhcp的过程的,有需求的同学可以尝试使用...