下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

了解DHCP与BOOTP在生活中的应用

作者:课课家教育     来源: http://www.kokojia.com点击数:1093发布时间: 2019-02-26 15:22:21

标签: DHCP_华为HCNP_网络工程师

软考,您想通过吗?一次通过才是硬道理

目前路由器进行IP指派主要有DHCP和BOOTP,DHCP也就是动态主机分配协议,它的前身是BOOTP,BOOTP原本是用于无磁盘主机连接的网络上面的,以下分析这两种方式的不同之处。

  首先我们来了解一下什么是DHCP?

  DHCP是DynamicHostConfigurationProtocol(动态主机分配协议)缩写,它的前身是BOOTP。BOOTP原本是用于无磁盘主机连接的网络上面的:网络主机使用BOOTROM而不是磁盘起动并连接上网络,BOOTP则可以自动地为那些主机设定TCP/IP环境。但BOOTP有一个缺点:您在设定前须事先获得客户端的硬件地址,而且,与IP的对应是静态的。换而言之,BOOTP非常缺乏"动态性",若在有限的IP资源环境中,BOOTP的一对一对应会造成非常可观的浪费。

  DHCP可以说是BOOTP的增强版本,它分为两个部份:一个是服务器端,而另一个是客户端。所有的IP网络设定数据都由DHCP服务器集中管理,并负责处理客户端的DHCP要求;而客户端则会使用从服务器分配下来的IP环境数据。比较起BOOTP,DHCP透过"租约"的概念,有效且动态的分配客户端的TCP/IP设定,而且,作为兼容考虑,DHCP也完全照顾了BOOTPClient的需求。

了解DHCP与BOOTP在生活中的应用_DHCP_华为HCNP_网络工程师_课课家

  DHCP的分配形式

  第一,必须至少有一台DHCP工作在网络上面,它会监听网络的DHCP请求,并与客户端搓商TCP/IP的设定环境。它提供两种IP定位方式:

  AutomaticAllocation

  自动分配,其情形是:一旦DHCP客户端第一次成功的从DHCP服务器端租用到IP地址之后,就永远使用这个地址。

  DynamicAllocation

  动态分配,当DHCP第一次从HDCP服务器端租用到IP地址之后,并非永久的使用该地址,只要租约到期,客户端就得释放(release)这个IP地址,以给其它工作站使用。当然,客户端可以比其它主机更优先的更新(renew)租约,或是租用其它的IP地址。

  动态分配显然比自动分配更加灵活,尤其是当您的实际IP地址不足的时候,例如:您是一家ISP,只能提供200个IP地址用来给拨接客户,但并不意味着您的客户最多只能有200个。因为要知道,您的客户们不可能全部同一时间上网的,除了他们各自的行为习惯的不同,也有可能是电话线路的限制。这样,您就可以将这200个地址,轮流的租用给拨接上来的客户使用了。这也是为什么当您查看IP地址的时候,会因每次拨接而不同的原因了(除非您申请的是一个固定IP,通常的ISP都可以满足这样的要求,这或许要另外收费)。当然,ISP不一定使用DHCP来分配地址,但这个概念和使用IPPool的原理是一样的。

  DHCP除了能动态的设定IP地址之外,还可以将一些IP保留下来给一些特殊用途的机器使用,它可以按照硬件地址来固定的分配IP地址,这样可以给您更大的设计空间。同时,DHCP还可以帮客户端指定router、netmask、DNSServer、WINSServer、等等项目,您在客户端上面,除了将DHCP选项打勾之外,几乎无需做任何的IP环境设定。

全局设置

  DHCP的工作原理

  根据客户端是否第一次登录网络,DHCP的工作形式会有所不同。

  第一次登录的时候:

  寻找Server。当DHCP客户端第一次登录网络的时候,也就是客户发现本机上没有任何IP数据设定,它会向网络发出一个DHCPDISCOVER封包。因为客户端还不知道自己属于哪一个网络,所以封包的来源地址会为0.0.0.0,而目的地址则为255.255.255.255,然后再附上DHCPdiscover的信息,向网络进行广播。

  在Windows的预设情形下,DHCPdiscover的等待时间预设为1秒,也就是当客户端将第一个DHCPdiscover封包送出去之后,在1秒之内没有得到响应的话,就会进行第二次DHCPdiscover广播。若一直得不到响应的情况下,客户端一共会有四次DHCPdiscover广播(包括第一次在内),除了第一次会等待1秒之外,其余三次的等待时间分别是9、13、16秒。如果都没有得到DHCP服务器的响应,客户端则会显示错误信息,宣告DHCPdiscover的失败。之后,基于使用者的选择,系统会继续在5分钟之后再重复一次DHCPdiscover的过程。

  提供IP租用地址。当DHCP服务器监听到客户端发出的DHCPdiscover广播后,它会从那些还没有租出的地址范围内,选择最前面的空置IP,连同其它TCP/IP设定,响应给客户端一个DHCPOFFER封包。

  由于客户端在开始的时候还没有IP地址,所以在其DHCPdiscover封包内会带有其MAC地址信息,并且有一个XID编号来辨别该封包,DHCP服务器响应的DHCPoffer封包则会根据这些资料传递给要求租约的客户。根据服务器端的设定,DHCPoffer封包会包含一个租约期限的信息。

  接受IP租约。如果客户端收到网络上多台DHCP服务器的响应,只会挑选其中一个DHCPoffer而已(通常是最先抵达的那个),并且会向网络发送一个DHCPrequest广播封包,告诉所有DHCP服务器它将指定接受哪一台服务器提供的IP地址。

  同时,客户端还会向网络发送一个ARP封包,查询网络上面有没有其它机器使用该IP地址;如果发现该IP已经被占用,客户端则会送出一个DHCPDECLINE封包给DHCP服务器,拒绝接受其DHCPoffer,并重新发送DHCPdiscover信息。

  事实上,并不是所有DHCP客户端都会无条件接受DHCP服务器的offer,尤其这些主机安装有其它TCP/IP相关的客户软件。客户端也可以用DHCPrequest向服务器提出DHCP选择,而这些选择会以不同的号码填写在DHCPOptionField里面:

  换一句话说,在DHCP服务器上面的设定,未必是客户端全都接受,客户端可以保留自己的一些TCP/IP设定。而主动权永远在客户端这边。

  租约确认。当DHCP服务器接收到客户端的DHCPrequest之后,会向客户端发出一个DHCPACK响应,以确认IP租约的正式生效,也就结束了一个完整的DHCP工作过程。

  DHCP发放流程

  第一次登录之后:

  一旦DHCP客户端成功地从服务器哪里取得DHCP租约之后,除非其租约已经失效并且IP地址也重新设定回0.0.0.0,否则就无需再发送DHCPdiscover信息了,而会直接使用已经租用到的IP地址向之前之DHCP服务器发出DHCPrequest信息,DHCP服务器会尽量让客户端使用原来的IP地址,如果没问题的话,直接响应DHCPack来确认则可。如果该地址已经失效或已经被其它机器使用了,服务器则会响应一个DHCPNACK封包给客户端,要求其从新执行DHCPdiscover。

  至于IP的租约期限却是非常考究的,并非如我们租房子那样简单,以NT为例子:DHCP工作站除了在开机的时候发出DHCPrequest请求之外,在租约期限一半的时候也会发出DHCPrequest,如果此时得不到DHCP服务器的确认的话,工作站还可以继续使用该IP;然后在剩下的租约期限的再一半的时候(即租约的75%),还得不到确认的话,那么工作站就不能拥有这个IP了。至于为什么不是到租约期限完全结束才放弃IP呢?,对不起,小弟也是不学无术之人,没有去深究了,只知道要回答MCSE题目的时候,您一定要记得NT是这么工作的就是了。

  要是您想退租,可以随时送出DHCPLEREASE命令解约,就算您的租约在前一秒钟才获得的。

  跨网络的DHCP运作

  从前面描述的过程中,我们不难发现:DHCDISCOVER是以广播方式进行的,其情形只能在同一网络之内进行,因为router是不会将广播传送出去的。但如果DHCP服务器安设在其它的网络上面呢?由于DHCP客户端还没有IP环境设定,所以也不知道Router地址,而且有些Router也不会将DHCP广播封包传递出去,因此这情形下DHCPDISCOVER是永远没办法抵达DHCP服务器那端的,当然也不会发生OFFER及其它动作了。要解决这个问题,我们可以用DHCPAgent(或DHCPProxy)主机来接管客户的DHCP请求,然后将此请求传递给真正的DHCP服务器,然后将服务器的回复传给客户。这里,Proxy主机必须自己具有路由能力,且能将双方的封包互传对方。

  若不使用Proxy,您也可以在每一个网络之中安装DHCP服务器,但这样的话,一来设备成本会增加,而且,管理上面也比较分散。当然喽,如果在一个十分大型的网络中,这样的均衡式架构还是可取的。端视您的实际情况而定了。

  小编结语:宽带路由器DHCP功能的叙述比较详细,大家理解起来比较容易,对于新入行的网络工程师来说,相信以上的内容可以对您提供帮助。

赞(21)
踩(0)
分享到:
推荐查看
华为认证网络工程师 HCIE直播课视频教程