dhcp服务器实现的原理是什么(dhcp服务器的作用是)

详细叙述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的要求。 2. 提供IP租用位址。当DHCP服务器监听到客户端发出的DHCPdiscover广播后﹐它会从那些还没有租出的位址范围内﹐选择最前面的的空置IP,连同其它TCP/IP设定,回应给客户端一个DHCPOFFER封包。由于客户端在开始的时候还没有IP位址﹐所以在其DHCPdiscover封包内会带有其MAC位址信息﹐并且有一个XID编号来辨别该封包﹐DHCP服务器回应的DHCPoffer封包则会根据这些资料传递给要求租约的客户。根据服务器端的设定﹐DHCPoffer封包会包含一个租约期限的信息。 3. 接受IP租约。如果客户端收到网路上多台DHCP服务器的回应﹐只会挑选其中一个DHCPoffer(通常是最先抵达的那个)﹐并且会向网路发送一个DHCPrequest广播封包﹐告诉所有DHCP服务器它将指定接受哪一台服务器提供的IP位址。之所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址同时﹐客户端还会向网路发送一个ARP封包﹐查询网路上面有没有其它机器使用该IP位址﹔如果发现该IP已经被占用﹐客户端则会送出一个DHCPDECLINE封包给DHCP服务器﹐拒绝接受其DHCPoffer﹐并重新发送DHCPdiscover信息。事实上﹐并不是所有DHCP客户端都会无条件接受DHCP服务器的offer﹐尤其这些主机安装有其它TCP/IP相关的客户软件。客户端也可以用DHCPrequest向服务器提出DHCP选择﹐而这些选择会以不同的号码填写在DHCPOptionField里面。换一句话说﹐在DHCP服务器上面的设定﹐未必是客户端全都接受﹐客户端可以保留自己的一些TCP/IP设定。而主动权永远在客户端这边。 4. 确认阶段。即DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户机回答的DHCPrequest请求信息之后,它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCPack确认信息,告诉DHCP客户机可以使用它所提供的IP地址。然后DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址 5. 重新登录。以后DHCP客户机每次重新登录网络时,就不需要再发送DHCPdiscover发现信息了,而是直接发送包含前一次所分配的IP地址的DHCPrequest请求信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个DHCPack确认信息。如果此IP地址已无法再分配给原来的DHCP客户机使用时(比如此IP地址已分配给其它DHCP客户机使用),则DHCP服务器给DHCP客户机回答一个DHCPnack否认信息。当原来的DHCP客户机收到此DHCPnack否认信息后,它就必须重新发送DHCPdiscover发现信息来请求新的IP地址。

记得采纳啊

DHCP服务工作原理是什么?

一DHCP服务的自动IP地址分配原理 DHCP使用客户端/服务器(Client/Server)模型。网络管理员建立一个或多个维护TCP/IP配置信息,并将其提供给客户端的DHCP服务器。服务器数据库包含以下信息。 网络上所有客户端的有效配置参数。 在指派到客户端的地址池中维护的有效IP地址,以及用于手动指派的保留地址。 服务器提供的租约持续时间。 通过在网络上安装和配置DHCP服务器,启用DHCP的客户端可在每次启动并加入网络时动态地获得其IP地址和相关配置参数。DHCP服务器以地址租约的形式将该配置提供给发出请求的客户端。 在以下3种情况下,DHCP客户机将申请一个新的IP地址。 计算机第一次以DHCP客户机的身份启动。 DHCP客户机的IP地址因某种原因(如租约期到了,或断开连接了)已经被服务器收回,并提供给其他DHCP客户机使用。 DHCP客户机自行释放已经租用的IP地址,要求使用一个新的IP地址。 DHCP客户机申请一个新的IP地址的总体过程如图6所示。其具体的过程如下。 (1)DHCP客户机设置为\"自动获得IP地址\"后,因为还没有IP地址与其绑定,此时称为处于\"未绑定状态\"。这时的DHCP客户机只能提供有限的通信能力,如可以发送和广播消息,但因为没有自己的IP地址,所以自己无法发送单播的消息。 (2)DHCP客户机试图从DHCP服务器那里\"租借\"到一个IP地址,这时DHCP客户机进入\"初始化状态\"。这个未绑定IP地址的DHCP客户机会向网络上发出一个源IP地址为广播地址0.0.0.0的DHCP探索消息,寻找看哪个DHCP服务器可以为它分配一个IP地址。 (3)子网络上的所有DHCP服务器收到这个探索消息。各DHCP服务器确定自己是否有权为该客户机分配一个IP地址。 (4)确定有权为对应客户机提供DHCP服务后,DHCP服务器开始响应,并向网络广播一个DHCP提供消息,包含了未租借的IP地址信息以及相关的配置参数。 (5)DHCP客户机会评价收到的DHCP服务器提供的消息并进行两种选择。一是认为该服务器提供的对IP地址的使用约定(称为\"租约\")可以接受,就发送一个请求消息,该消息中指定了自己选定的IP地址并请求服务器提供该租约。还有一种选择是拒绝服务器的条件,发送一个拒绝消息,然后继续从第(1)步开始执行。 (6)DHCP服务器在收到确认消息后,根据当前IP地址的使用情况以及相关配置选项,对允许提供DHCP服务的客户机发送一个确认消息,其中包含了所分配的IP地址及相关DHCP配置选项。 (7)客户机在收到DHCP服务器的消息后,绑定该IP地址,进入\"绑定状态\"。这样客户机就有了自己的IP地址,就可以在网络上进行通信了。 二DHCP中继代理原理 在大型的网络中,可能会存在多个子网。DHCP客户机通过网络广播消息获得DHCP服务器的响应后得到IP地址。但广播消息是不能跨越子网的。因此,如果DHCP客户机和服务器在不同的子网内,客户机还能不能向服务器申请IP地址呢?这就要用到DHCP中继代理。DHCP中继代理实际上是一种软件技术,安装了DHCP中继代理的计算机称为DHCP中继代理服务器,它承担不同子网间的DHCP客户机和服务器的通信任务。 中继代理是在不同子网上的客户端和服务器之间中转DHCP/BOOTP消息的小程序。根据征求意见文档(RFC),DHCP/BOOTP中继代理是DHCP和BOOTP标准和功能的一部分。 1.路由器的DHCP/BOOTP中继代理支持 在TCP/IP网络中,路由器用于连接称做\"子网\"的不同物理网段上使用的硬件和软件,并在每个子网之间转发IP数据包。要在多个子网上支持和使用DHCP服务,连接每个子网的路由器应具有在RFC 1542中描述的DHCP/BOOTP中继代理功能。 要符合RFC 1542并提供中继代理支持,每个路由器必须能识别BOOTP和DHCP协议消息并相应处理(中转)这些消息。由于路由器将DHCP消息解释为BOOTP消息(例如,通过相同的UDP端口编号发送,并包含共享消息结构的UDP消息),具有BOOTP中继代理能力的路由器可中转网络上发送的DHCP数据包和任何BOOTP数据包。 如果路由器不能作为DHCP/BOOTP中继代理运行,则每个子网都必须有在该子网上作为中继代理运行的DHCP服务器或另一台计算机。如果配置路由器支持DHCP/BOOTP中继不可行或不可能,您可以通过安装DHCP中继代理服务来配置运行Windows NT Server 4.0或更高版本的计算机充当中继代理。 在大多数情况下,路由器支持DHCP/ BOOTP中继。如果您的路由器不支持,则应与路由器制造商或供应商联系以查明是否有软件或固件升级提供对该功能的支持。 2.中继代理的工作原理 中继代理将它连接的其中一个物理接口(如网卡)上广播的DHCP/BOOTP消息中转到其他物理接口连至的其他远程子网。图7显示了子网2上的客户端C是如何从子网1上的DHCP服务器1获得DHCP地址租约的。具体过程如下。 (1)DHCP客户端C使用众所周知的UDP服务器67号端口在子网2上以\"用户数据报协议(UDP)\"的数据报广播DHCP/BOOTP查找消息(DHCPDISCOVER)。67号UDP端口是BOOTP和DHCP服务器通信所保留和共享的。 (2)中继代理,在DHCP/BOOTP允许中继的路由器的情况下,检测DHCP/BOOTP消息头中的网关IP地址字段。如果该字段有IP地址0.0.0.0,代理文件会在其中填入中继代理或路由器的IP地址,然后将消息转发到DHCP服务器1所在的远程子网1。 (3)远程子网1上的DHCP服务器1收到此消息时,它会为该DHCP服务器可用于提供IP地址租约的DHCP作用域检查其网关IP地址字段。 (4)如果DHCP服务器1有多个DHCP作用域,网关IP地址字段(GIADDR)中的地址会标识将从哪个DHCP作用域提供IP地址租约。 例如,如果网关IP地址(GIADDR)字段有10.0.0.2的IP地址,DHCP服务器会检查其可用的地址作用域集中是否有与包含作为主机的网关地址匹配的地址作用域范围。在这种情况下,DHCP服务器将对10.0.0.1和10.0.0.254之间的地址作用域进行检查。如果存在匹配的作用域,则DHCP服务器从匹配的作用域中选择可用地址以便在对客户端的IP地址租约提供响应时使用。 (5)当DHCP服务器1收到DHCPDISCOVER消息时,它会处理IP地址租约(DHCPOFFER)并将其直接发送给在网关IP地址(GIADDR)字段中标识的中继代理。 (6)路由器然后将地址租约(DHCPOFFER)转发给DHCP客户端。此时客户端的IP地址仍旧无人知道,所以它必须在本地子网上广播。同样,根据RFC 1542,DHCPREQUEST消息从客户端中转发服务器,而DHCPACK消息从服务器转发到客户端。

记得采纳啊

请问DHCP的工作原理是什么?

整个过程:

1.

DHCP请求IP地址的过程

l

发现阶段,即DHCP客户端寻找DHCP服务器的阶段。客户端以广播方式发送DHCPDISCOVER包,只有DHCP服务器才会响应。

l

提供阶段,即DHCP服务器提供IP地址的阶段。DHCP服务器接收到客户端的DHCPDISCOVER报文后,从IP地址池中选择一个尚未分配的IP地址分配给客户端,向该客户端发送包含租借的IP地址和其他配置信息的DHCPOFFER包。

l

选择阶段,即DHCP客户端选择IP地址的阶段。如果有多台DHCP服务器向该客户端发送DHCPOFFER包,客户端从中随机挑选,然后以广播形式向各DHCP服务器回应DHCPREQUEST包,宣告使用它挑中的DHCP服务器提供的地址,并正式请求该DHCP服务器分配地址。其它所有发送DHCPOFFER包的DHCP服务器接收到该数据包后,将释放已经OFFER(预分配)给客户端的IP地址。

如果发送给DHCP客户端的DHCPOFFER包中包含无效的配置参数,客户端会向服务器发送DHCPCLINE包拒绝接受已经分配的配置信息。

l

确认阶段,即DHCP服务器确认所提供IP地址的阶段。当DHCP服务器收到DHCP客户端回答的DHCPREQUEST包后,便向客户端发送包含它所提供的IP地址及其他配置信息的DHCPACK确认包。然后,DHCP客户端将接收并使用IP地址及其他TCP/IP配置参数。

2.

DHCP客户端续租IP地址的过程

l

DHCP服务器分配给客户端的动态IP地址通常有一定的租借期限,期满后服务器会收回该IP地址。如果DHCP客户端希望继续使用该地址,需要更新IP租约。实际使用中,在IP地址租约期限达到一半时,DHCP客户端会自动向DHCP服务器发送DHCPREQUEST包,以完成IP租约的更新。如果此IP地址有效,则DHCP服务器回应DHCPACK包,通知DHCP客户端已经获得新IP租约。

如果DHCP客户端续租地址时发送的DHCPREQUEST包中的IP地址与DHCP服务器当前分配给它的IP地址(仍在租期内)不一致,DHCP服务器将发送DHCPNAK消息给DHCP客户端。

3.

DHCP客户端释放IP地址的过程

l

DHCP客户端已从DHCP服务器获得地址,并在租期内正常使用,如果该DHCP客户端不想再使用该地址,则需主动向DHCP服务器发送DHCPRELEASE包,以释放该地址,同时将其IP地址设为0.0.0.0。

DHCP的工作原理是什么?

这是一台华为路由器,加两台PC机,路由器来充当PC的DHCP服务器。

既然充当服务器,我们在路由器上,开启dhcp服务,并建立两个地址池。

然后,在接口上,启用dhcp。

接下来,给路由器的0口和1口,分别配置上地址。

再来PC这边看。

已经获得了地址。

先回答一个疑问,这台DHCP服务器有两个地址池,10段和20段,那么当他收到1个dhcp请求,如何判断应该从哪个地址池分地址?

答案是,根据他收到dhcp请求的接口,哪个接口收到的,就去拿个和该接口相同网段的地址发下去。

一开始为什么不发地址,因为接口没地址啊,接口没地址就无法判断从哪个池下发地址啊。

点击了解更多技术资料和免费学习视频,加入讨论群:662736393

技术交流,添加 企鹅 :167748928

再来分析DHCP获得地址时的四个过程。

现在拿右边的全新PC来看,打开抓包工具wireshark。

可以看出,PC获取地址总共做了7个动作,分别来看。

因为pc这时候还没ip,所以源ip是4个0,

pc这时候也不知道dhcp服务器的ip,所以目标ip是广播,4个255,

mac地址的话,源mac是pc自己,目标mac也是广播,

捕获的dhcp discover报文

offer报文可以通过单播来发送,使用单播可以减少网络中报文的数量,提高网络的性能

但是等等,不是说PC还没地址吗,单播必须写明确的地址,写什么地址??

PC是没有ip地址,但是PC有mac地址啊,写明mac地址,这样单播报文就可以正常送达了

捕获的dhcp offer报文。

因为在网络中可能不止存在一台dhcp服务器,所以PC机也是可能从多个服务器中都获得地址的,就像咱们在找工作的时候,可能多家公司都发来了offer,咱们需要回应别人的offer,才算确定接受了这个岗位。

所以PC收到offer后,也是一样的,再像服务器发一个request,表示接受这个地址。

request包的目标地址是广播,也是告诉其他服务器,pc已经心有所属了。

捕获的dhcp request报文。

确认这个地址分配给了PC,这个就比较好理解了,无需做太多说明。

这个步骤,其实和dhcp没有太大关系了,主要是PC机测试一下,自己刚拿到的新地址,在网络中是不是独一无二的,有没有冲突。

连发3个无故arp,用来检测网络中是否还存在相同的地址,如果没收到回应就正常,收到回应的话,会找dhcp服务器再申请个新的。

技术资料加 qq167748928 好友免费分享:

更多网络技术公开课,腾讯课堂搜“ 众元教育 ”,戳 免费公开课 ,可直接听课哦!

未经允许不得转载:便宜VPS网 » dhcp服务器实现的原理是什么(dhcp服务器的作用是)