拆分词条.docx
《拆分词条.docx》由会员分享,可在线阅读,更多相关《拆分词条.docx(24页珍藏版)》请在冰豆网上搜索。
拆分词条
拆分词条
DHCP
求助编辑百科名片
DHCP原理图示
动态主机设置协议(DynamicHostConfigurationProtocol,DHCP)是一个局域网的网络协议,使用UDP协议工作,主要有两个用途:
给内部网络或网络服务供应商自动分配IP地址给用户给内部网络管理员作为对所有计算机作中央管理的手段。
目录
结构介绍
地址分配
ManualAllocation
AutomaticAllocation
DynamicAllocation
工作原理
寻找Server
提供IP租用地址
接受IP租约
租约确认
授权操作
封包格式
DHCP协议
路由器配置DHCP服务器
IPv4配置方法:
客户端设置:
Windows主机配置DHCP服务器
安装DHCP服务
创建IP作用域
设置DHCP客户端
创建新的DHCP用户或供应商类
建立DHCP服务器
DHCP服务的安装
DHCP服务器的授权
添加IP地址范围
DHCP服务的测试
跨网运作
地址范围
相关应用
开启DHCP
不设置DHCP的后果
结构介绍
地址分配
ManualAllocation
AutomaticAllocation
DynamicAllocation
工作原理
寻找Server
提供IP租用地址
接受IP租约
租约确认
授权操作
封包格式
DHCP协议
路由器配置DHCP服务器
IPv4配置方法:
客户端设置:
Windows主机配置DHCP服务器
安装DHCP服务
创建IP作用域
设置DHCP客户端
创建新的DHCP用户或供应商类
建立DHCP服务器
DHCP服务的安装
DHCP服务器的授权
添加IP地址范围
DHCP服务的测试
跨网运作
地址范围
相关应用
开启DHCP
不设置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的分配形式首先,必须至少有一台DHCP工作在网络上面,它会监听网络的DHCP请求,并与客户端磋商TCP/IP的设定环境。
它提供三种IP定位方式:
编辑本段地址分配
ManualAllocation
网络管理员为某些少数特定的Host绑定固定IP地址,且地址不会过期
AutomaticAllocation
自动分配,其情形是:
一旦DHCP客户端第一次成功的从DHCP服务器端租用到IP地址之后,就永远使用这个地址。
DynamicAllocation
动态分配,当DHCP客户端第一次从DHCP服务器端租用到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的工作形式会有所不同。
第一次登录的时候:
寻找Server
当DHCP客户端第一次登录网络的时候,也就是客户发现本机上没有任何IP数据设定,它会向网络发出一个DHCPDISCOVER封包。
因为客户端还不知道自己属于哪一个网络,所以封包的来源地址会为0.0.0.0,而目的地址则为255.255.255.255,然后再附上DHCPdiscover的信息,向网络进行广播。
在Windows的预设情形下,DHCPdiscover的等待时间预设为1秒,也就是当客户端将第一个DHCPdiscover封包送出去之后,在1秒之内没有得到响应的话,就会进行第二次DHCPdiscover广播。
若一直得不到响应的情况下,客户端一共会有四次DHCPdiscover广播(包括第一次在内),除了第一次会等待1秒之外,其余三次的等待时间分别是9、13、16秒。
如果都没有得到D
相关图片
HCP服务器的响应,客户端则会显示错误信息,宣告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已经被占用,客户端则会送出一个DHCPDECLIENT封包给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;当租约期过了87.5%时,如果客户端仍然无法与当初的DHCP服务器联系上,它将与其它DHCP服务器通信。
如果网络上再没有任何DHCP服务器在运行时,该客户端必须停止使用该IP地址,并从发送一个Dhcpdiscover数据包开始,再一次重复整个过程。
要是您想退租,可以随时送出DHCPRELEASE命令解约,就算您的租约在前一秒钟才获得的。
跨网络的DHCP运作从前面描述的过程中,我们不难发现:
DHCPDISCOVER是以广播方式进行的,其情形只能在同一网络之内进行,因为router是不会将广播传送出去的。
但如果DHCP服务器安设在其它的网络上面呢?
由于DHCP客户端还没有IP环境设定,所以也不知道Router地址,而且有些Router也不会将DHCP广播封包传递出去,因此这情形下DHCPDISCOVER是永远没办法抵达DHCP服务器那端的,当然也不会发生OFFER及其它动作了。
要解决这个问题,我们可以用DHCPAgent(或DHCPProxy)主机来接管客户的DHCP请求,然后将此请求传递给真正的DHCP服务器,然后将服务器的回复传给客户。
这里,Proxy主机必须自己具有路由能力,且能将双方的封包互传对方。
若不使用Proxy,您也可以在每一个网络之中安装DHCP服务器,但这样的话,一来设备成本会增加,而且,管理上面也比较分散。
当然喽,如果在一个十分大型的网络中,这样的均衡式架构还是可取的。
视您的实际情况而定了。
编辑本段授权操作
出于对网络安全管理的考虑,并不是在Windows2000Server中安装了DHCP功能后就能直接使用,还必须进行授权操作,XX操作的服务器无法提供DHCP服务。
对DHCP服务器授权操作的过程如下:
1.依次点击“开始→程序→管理工具→DHCP”,打开DHCP控制台窗口。
2.在控制台窗口中,用鼠标左键点击选中服务器名,然后单击右键,在快捷菜单中选中“授权”,此时需要几分钟的等待时间。
注意:
如果系统长时间没有反应,可以按F5键或选择菜单工具中的“操作”下的“刷新”进行屏幕刷新,或先关闭DHCP控制台,在服务器名上用鼠标右键点击。
如果快捷菜单中的“授权”已经变为“撤消授权”,则表示对DHCP服务器授权成功。
此时,最明显的标记是服务器名前面红色向上的箭头变成了绿色向下的箭头。
这样,这台被授权的DHCP服务器就有分配IP的权利了。
编辑本段封包格式
以下为各字段的简要说
明:
OP
若是client送给server的封包,设为1,反向为2。
HTYPE
DHCP报文格式
硬件类别,Ethernet为1。
HLEN
硬件地址长度,Ethernet为6。
HOPS
若封包需经过router传送,每站加1,若在同一网内,为0。
TRANSACTIONID
DHCPREQUEST时产生的数值,以作DHCPREPLY时的依据。
SECONDS
Client端启动时间(秒)。
FLAGS
从0到15共16bits,最左一bit为1时表示server将以广播方式传送封包给client,其余尚未使用。
ciaddr
要是client端想继续使用之前取得之IP地址,则列于这里。
yiaddr
从server送回client之DHCPOFFER与DHCPACK封包中,此栏填写分配给client的IP地址。
siaddr
若client需要透过网络开机,从server送出之DHCPOFFER、DHCPACK、DHCPNACK封包中,此栏填写开机程序代码所在server之地址。
giaddr
若需跨网域进行DHCP发放,此栏为relayagent的地址,否则为0。
chaddr
Client之硬件地址。
sname
Server之名称字符串,以0x00结尾。
file
若client需要透过网络开机,此栏将指出开机程序名称,稍后以TFTP传送。
options
允许厂商定议选项(Vendor-SpecificArea),以提供更多的设定信息(如
相关图片
:
Netmask、Gateway、DNS、等等)。
其长度可变,同时可携带多个选项,每一选项之第一个byte为信息代码,其后一个byte为该项数据长度,最后为项目内容。
CODELENVALUE此字段完全兼容BOOTP,同时扩充了更多选项。
其中,DHCP封包可利用编码为0x53之选项来设定封包类别:
项值类别
1DHCPDISCOVER
2DHCPOFFER
3DHCPREQUEST
4DHCPDECLIENT
5DHCPACK
6DHCPNACK
7DHCPRELEASE
DHCP的选项非常多,有空请查阅RFC或相关文献,并好好理解,这里不再叙述了。
编辑本段DHCP协议
RFC-951、RFC-1084、RFC-1123、RFC-1533、RFC-1534、RFC-1497、RFC-1541
DHCP是可自动将IP位址指派给登入TCP/IP网络的用户端的一种软件,(此种IP位址称为「动态IP位址」)。
这种软件通常是在路由器及其他网络设备上执行的。
依照预先设定,您的GateLock路由器设定为使用DHCP,因此就无须手动指派永久IP位址给网络上的每个设备。
建议不要改变这个设置,这样您的个人电脑就可以被分辨为DHCP服务器。
1dhcpdiscover:
此为client开始DHCP过程中的第一个请求报文
2dhcpoffer:
此为server对dhcpdiscover报文的响应
3dhcprequst:
此为client对dhcpoffer报文的响应
4dhcpdeclient:
当client发现server分配给它的IP地址无法使用,如IP地址发生冲突时,将发出此报文让server禁止使用这次分配的IP地址。
5dhcpack:
server对dhcprequst报文的响应,client收到此报文后才真正获得了IP地址和相关配置信息。
6dhcpnack:
此报文是server对client的dhcprequst报文的拒绝响应,client收到此报文后,一般会重新开始DHCP过程。
7dhcprelease:
此报文是client主动释放IP地址,当server收到此报文后就可以收回IP地址分配给其他的client.
DHCP是BOOTP的扩展,是基于C/S模式的,它提供了一种动态指定
相关图片
IP地址和配置参数的机制。
这主要用于大型网络环境和配置比较困难的地方。
DHCP服务器自动为客户机指定IP地址,指定的配置参数有些和IP协议并不相关,但这必没有关系,它的配置参数使得网络上的计算机通信变得方便而容易实现了。
DHCP使IP地址的可以租用,对于许多拥有许多台计算机的大型网络来说,每台计算机拥有一个IP地址有时候可能是不必要的。
租期从1分钟到100年不定,当租期到了的时候,服务器可以把这个IP地址分配给别的机器使用。
客户也可以请求使用自己喜欢的网络地址及相应的配置参数。
DHCP是对BOOTP的扩展,它的包格式和BOOTP也一样,这样它就可以使用BOOTP的中转发代理来发送DHCP包了,这使得BOOTP和DHCP之间可以实现互操作。
对于BOOTP转发代理来说,发的是DHCP包还是BOOTP包,它根本分不清楚。
它们使用的服务器端口号是67和68,但是有些地方还有些不同:
DHCP定义了一种可以使IP地址使用一段有限时间的机制,在客户期限到了的时候可以重新分配这个IP地址。
DHCP为用户提供所有IP配置参数。
DHCP包长度比BOOTP包长度稍长。
既然包比BOOTP的长,那也不是白带的,这多出的长度里包括了网络配置参数。
DHCP的包都比BOOTP的长,那协议也复杂了。
DHCP有七种消息类型,而BOOTP只有两种。
下图中我们可以清楚地看到客户机请求获得网络地址和配置参数的最初几个步骤:
第一步的时候客户发出包的名称叫DHCPDISCOVER,而服务器返回包的名称叫DHCPOFFER。
1.BOOTP转发代理接收到请求包,并负责向DHCP其它网络内的DHCP服务器转发。
2.DHCP服务器以DHCPOFFER响应客户的要求,这个包内包括可用的IP地址和参数。
3.BOOTP转发代理接收包,并对它进行检查。
如果它觉得没有问题,就向客户转发。
4.如果客户在发出DHCPDISCOVER包后一段时间内没有接收到回应,它有机会重新发送请求10次,否则就通知用户。
客户机可以同时接收到许多个服务器的应答,它可以自己决定用哪一个。
下图是客户决定了以后,向服务器发送应答时的情况。
5.当客户选定了某个目标服务器后,它会广播DHCPREQUEST包,用以通知选定的服务器和未选定的服务器。
6.转发工作仍然由BOOTP转发担任。
7.收到DHCPREQUEST包服务器会检查收到的包,如果包内的地址和提供的地址一致,证明现在客户机选择的是这台服务器提供的地址,如果不是,自己提供的地址被拒绝了。
8.被选定的服务器在接收到DHCPREQUEST包以后,因为某些原因可能不能向客户提供这个网络地址或参数,它可以向客户发送DHCPNAK包,如果可以提供则可以发送DHCPACK包。
客户在收到包后,检查内部的网络地址和租用时间,如果客户觉得这个包有问题,它可以发送DHCPDECLIENT包拒绝这个地址,然后重新发送DHCPDISCOVER包。
如果觉得没有问题,就可以接受这个配置参数。
同样当客户接收到DHCPNAK包时,它也可以发送DHCPDISCOVER包。
客户可以在租期到期之前释放网络地址,这通过发送DHCPRELEASE包来实现。
用户下一次可以再次获得相同的IP地址。
在这一过程中,许多步骤就可以不用麻烦了,老客户当然要方便一点了。
1.客户在发送的DHCPREQUEST包内包括自己以前使用的IP地址。
2.此包由BOOTP转发代理转发。
3.DHCP服务器检查DHCPREQUEST包内包括的配置参数。
4.它如果是原来提供这个网络地址的参数的服务器,它会认出这些数来,并以DHCPACK包回应。
5.客户接收到DHCPACK包后,它可以接收或拒绝,如果拒绝它可以申请新的网络地址。
当然了,如果服务器觉得客户的请求是无效的,服务器会以DHCPNAK包响应,客户接收到这个包后,会重新会获得网络地址而发送DHCPDISCOVER包。
编辑本段路由器配置DHCP服务器
目前比较通用的都是采用路由器设备来给用户分配地址,这样可以节省一大笔DHCP服务器的费用。
网络拓扑图如右图,详细配置方法如下:
IPv4配置方法:
Router(config)#intf0/0
Router(config-if)#ipadd192.168.1.1255.255.255.0
Router(config-if)#nosh
Router(config-if)#exit
Router(config)#ipdhcpexcluded-address192.168.1.1//需要排除路由器的接口既网关地址
Router(config)#ipdhcppoolIPv4//创建DHCP池
Router(dhcp-config)#network192.168.1.0/24//宣告可分配网段
Router(dhcp-config)#default-Router192.168.1.1//设置客户端的默认网关
Router(dhcp-config)#dns-server61.128.114.133//设置客户端DNS地址
Router(dhcp-config)#lease2//地址租期
Router(dhcp-config)#domain-nameewao_cn//设置客户端所在域
Router(dhcp-config)#endIPv6配置方法(需要您的路由设备支持IPv6技术):
Router(config)#ipv6unicast-routing//开启IPv6协议
Router(config)#ipv6cef//开启IPv6转发
Router(config)#ipv6dhcppoolv6//创建DHCP池
Router(config-dhcp)#prefix-delegationpoolv6pool
Router(config-dhcp)#dns-server2001:
470:
20:
:
2
Router(config-dhcp)#domain-nameewao_cn
Router(config-dhcp)#end
客户端设置:
编辑本段Windows主机配置DHCP服务器
安