DHCP
动态主机设置协议(Dynamic Host Configuration Protocol, DHCP)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:给内部网络或网络服务供应商自动分配IP地址给用户给内部网络管理员作为对所有计算机作中央管理的手段。
DHCP 是Dynamic Host Configuration Protocol(动态主机配置协议)缩写,它的前身是BOOTP。BOOTP 原本是用于无磁盘主机连接的网络上面的:网络主机使用BOOT ROM 而不是磁盘起动并连接上网络,BOOTP 则可以自动地为那些主机设定TCP/IP 环境。但BOOTP 有一个缺点:您在设定前须事先获得客户端的硬件地址,而且,与IP 的对应是静态的。换而言之,BOOTP 非常缺乏"动态性" ,若在有限的IP 资源环境中,BOOTP 的一对一对应会造成非常严重的资源浪费。DHCP 可以说是BOOTP 的增强版本,它分为两个部份:一个是服务器端,而另一个是客户端。所有的IP 网络设定数据都由DHCP 服务器集中管理,并负责处理客户端的DHCP 要求;而客户端则会使用从服务器分配下来的IP环境数据。比较起BOOTP ,DHCP 透过"租约" 的概念,有效且动态的分配客户端的TCP/IP 设定,而且,作为兼容考虑,DHCP 也完全照顾了BOOTP Client 的需求。DHCP 的分配形式首先,必须至少有一台DHCP 工作在网络上面,它会监听网络的DHCP 请求,并与客户端磋商TCP/IP 的设定环境。
它提供三种IP 定位方式:
1、Manual Allocation
网络管理员为某些少数特定的Host绑定固定IP地址,且地址不会过期
2、Automatic Allocation
自动分配,其情形是:一旦DHCP 客户端第一次成功的从DHCP 服务器端租用到IP 地址之后,就永远使用这个地址。
3、Dynamic Allocation
动态分配,当DHCP客户端第一次从DHCP 服务器端租用到IP 地址之后,并非永久的使用该地址,只要租约到期,客户端就得释放(release)这个IP 地址,以给其它工作站使用。当然,客户端可以比其它主机更优先的更新(renew)租约,或是租用其它的IP 地址。动态分配显然比自动相关图片分配更加灵活,尤其是当您的实际IP 地址不足的时候,例如:您是一家ISP ,只能提供200 个IP地址用来给拨接客户,但并不意味着您的客户最多只能有200 个。因为要知道,您的客户们不可能全部同一时间上网的,除了他们各自的行为习惯的不同,也有可能是电话线路的限制。这样,您就可以将这200 个地址,轮流的租用给拨接上来的客户使用了。这也是为什么当您查看IP 地址的时候,会因每次拨接而不同的原因了(除非您申请的是一个固定IP ,通常的ISP 都可以满足这样的要求,这或许要另外收费)。当然,ISP 不一定使
用DHCP 来分配地址,但这个概念和使用IP Pool 的原理是一样的。DHCP 除了能动态的设定IP 地址之外,还可以将一些IP 保留下来给一些特殊用途的机器使用,它可以按照硬件地址来固定的分配IP 地址,这样可以给您更大的设计空间。同时,DHCP
还可以帮客户端指定router、netmask、DNS Server、WINS Server、等等项目,您在客户端上面,除了将DHCP 选项打勾之外,几乎无需做任何的IP 环境设定。
工作原理
tcp三次握手图解根据客户端是否第一次登录网络,DHCP 的工作形式会有所不同。
第一次登录的时候:
寻Server
当DHCP 客户端第一次登录网络的时候,也就是客户发现本机上没有任何IP 数据设定,它会向网络发出一个DHCP DISCOVER 封包。因为客户端还不知道自己属于哪一个网络,所以封包的来源地址会为0.0.0.0 ,而目的地址则为255.255.255.255 ,然后再附上DHCP discover 的信息,向网络进行广播。在Windows 的预设情形下,DHCP discover 的等待时间预设为1 秒,也就是当客户端将第一个DHCP discover 封包送出去之后,在1 秒之内没有得到响应的话,就会进行第二次DHCP discover 广播。若一直得不到响应的情况下,客
户端一共会有四次DHCP discover 广播(包括第一次在内),除了第一次会等待1 秒之外,其余三次的等待时间分别是9、13、16 秒。如果都没有得到DHCP 服务器的响应,客户端则会显示错误信息,宣告DHCP discover 的失败。之后,基于使用者的选择,系统会继续在5 分钟之后再重复一次DHCP discover 的过程。
提供IP 租用地址
当DHCP 服务器监听到客户端发出的DHCP discover 广播后,它会从那些还没有租出的地址范围内,选择最前面的空置IP ,连同其它TCP/IP 设定,响应给客户端一个DHCP OFFER 封包。由于客户端在开始的时候还没有IP 地址,所以在其DHCP discover 封包内会带有其MAC 地址信息,并且有一个XID 编号来辨别该封包,DHCP 服务器响应的DHCP offer 封包则会根据这些资料传递给要求租约的客户。根据服务器端的设定,DHCP offer 封包会包含一个租约期限的信息。
接受IP 租约
如果客户端收到网络上多台DHCP 服务器的响应,只会挑选其中一个DHCP offer 而已(通常是最先抵达的那个),并且会向网络发送一个DHCP request广播封包,告诉所有DHCP 服务器它将指定接受哪一台服务器提供的IP 地址。同时,客户端还会向网络发送一个ARP 封包,查询网络上面有没有其它机器使用该IP 地址;如果发现该IP 已经被占用,客户端则会送出一个DHCPDECLIENT 封包给DHCP 服务器,拒绝接受其DHCP offer ,并重新发送DHCP discover 信息。事实上,并不是所有DHCP 客户端都会无条件接受DHCP 服务器的offer ,尤其这些主机安装有其它TCP/IP 相关的客户软件。客户端也可以用DHCP request 向服务器提出DHCP 选择,而这些选择会以不同的号码填写在DHCP Option Field 里面。
换一句话说,在DHCP 服务器上面的设定,未必是客户端全都接受。客户端可以保留自己的一些TCP/IP 设定,并且主动权永远在客户端这边。
租约确认
当DHCP 服务器接收到客户端的DHCP request 之后,会向客户端发出一个DHCPACK 响应,以确认IP 租约的正式生效,也就结束了一个完整的DHCP 工作过程。
DHCP 发放流程第一次登录之后:一旦DHCP 客户端成功地从服务器哪里取得DHCP 租约之后,除非其租约已经失效并且IP 地址也重新设定回0.0.0.0 ,否则就无需再发送DHCP discover 信息了,而会直接使用已经租用到的IP 地址向之前之DHCP 服务器发出DHCP request 信息,DHCP 服务器会尽量让客户端使用原来的IP 地址,如果没问题的话,直接响应DHCPack 来确认则可。如果该地址已经失效或已经被其它机器使用了,服务器则会响应一个DHCPNACK 封包给客户端,要求其重新执行DHCP discover。至于IP 的租约期限却是非常考究的,并非如我们租房子那样简单,以NT 为例子:DHCP 客户端除了在开机的时候发出DHCP request 请求之外,在租约期限一半的时候也会发出DHCP request ,如果此时得不到DHCP 服务器的确认的话,客户端还可以继续使用该IP ;当租约期过了87.5%时,如果客户端仍然无法与当
初的DHCP服务器联系上,它将与其它DHCP服务器通信。如果网络上再没有任何DHCP服务器在运行时,该客户端必须停止使用该IP地址,并从发送一个Dhcpdiscover数据包开始,再一次重复整个过程。要是您想退租,可以随时送出DHCPRELEASE 命令解约,就算您的租约在前一秒钟才获得的。
跨网络的DHCP 运作从前面描述的过程中,我们不难发现:DHCP DISCOVER 是以广播方式进行的,其情形只能在同一网络之内进行,因为router 是不会将广播传送出去的。但如果DHCP 服务器安设在其它的网络上面呢?由于DHCP 客户端还没有IP 环境设定,所以也不知道Router 地址,而且有些Router 也不会将DHCP 广播封包传递出去,因此这情形下DHCP DISCOVER 是永远没办法抵达DHCP 服务器那端的,当然也不会发生OFFER 及其它动作了。要解决这个问题,我们可以用DHCP Agent (或DHCP Proxy )主机来接管客户的DHCP 请求,然后将此请求传递给真正的DHCP 服务器,然后将服务器的回复传给客户。这里,Proxy 主机必须自己具有路由能力,且能将双方的封包互传对方。若不使用Proxy,您也可以在每一个网络之中安装DHCP 服务器,但这样的话,一来设备成本会增加,而且,管理上面也比较分散。当然喽,如果在一个十分大型的网络中,这样的均衡式架构还是可取的。视您的实际情况而定了。
配置DHCP服务
一、登录服务器,打开“服务器管理器”
二、添加角
三、选择DHCP服务器
四、选择向客户提供服务的网络连接
五、在“指定IP DNS服务器设置”页输入父域名和DNS服
务器地址
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论