《引导协议与动态主机配置.ppt》由会员分享,可在线阅读,更多相关《引导协议与动态主机配置.ppt(43页珍藏版)》请在金锄头文库上搜索。
1、第第10章章引导协议与动态主机配置协议引导协议与动态主机配置协议引导协议引导协议BOOTP(BOOTstrapProtocol)是)是TCP/IP协议族的协议族的应用层协应用层协议议,它的主要作用是使无盘站点从服务器,它的主要作用是使无盘站点从服务器上获得上获得引导信息引导信息。动态主机配置协议动态主机配置协议DHCP(DynamicHostConfigurationProtocol)是在是在BOOTP协议基础上发展起来的协议,它协议基础上发展起来的协议,它使客户机能够在使客户机能够在TCP/IP网络上获得相关的网络上获得相关的配置信息配置信息。第第10章章引导协议与动态主机配置协议引导协议与
2、动态主机配置协议10.1 BOOTP原理原理10.2 BOOTP 报文报文 10.3 启动配置文件启动配置文件 10.4 DHCP基本概念基本概念 10.5 DHCP运行方式运行方式 10.6 DHCP/BOOTP中继代理中继代理 10.1BOOTP原理原理引导协议引导协议BOOTP是针对网络上无盘节点是针对网络上无盘节点而设计的启动协议,无盘节点启动时它而设计的启动协议,无盘节点启动时它需要从网上获得需要从网上获得三种信息三种信息:自己的自己的IP地址地址文件服务器的文件服务器的IP地址地址可运行的初始内存印象(启动映象文件名)可运行的初始内存印象(启动映象文件名)利用利用RARP只能获得自
3、己的只能获得自己的IP地址。地址。 BOOTP协议协议工作过程工作过程:1)由)由ROM芯片芯片中的中的BOOTP启动代码启动启动代码启动客客户机户机,此时客户机还没有,此时客户机还没有IP地址,它便用地址,它便用有限有限广播广播形式以形式以0.0.0.0的源的源IP地址向网络中发出地址向网络中发出BOOTP请求请求,这个请求中包含了,这个请求中包含了客户机网卡客户机网卡的的MAC地址地址。2)网络中运行)网络中运行BOOTP服务的服务的服务器服务器接收到接收到这个请求,根据请求中的这个请求,根据请求中的MAC地址在地址在BOOTP数据库中查找这个数据库中查找这个MAC的记录,如果没有此的记录
4、,如果没有此MAC的记录则不响应这个请求,如果有就将的记录则不响应这个请求,如果有就将有关信息发送回客户机。返回的有关信息发送回客户机。返回的响应响应中包含的中包含的主要信息有主要信息有客户机的客户机的IP地址地址、服务器的服务器的IP地址地址和和启动映象文件名启动映象文件名等信息。等信息。3)客户机根据返回信息)客户机根据返回信息通过通过TFTP服务器下服务器下载启动映象文件载启动映象文件,并,并启动启动该文件。该文件。客户客户68客户客户68服务器服务器67服务器服务器67请求请求应答应答UDPUDPUDPUDP服务器服务器67UDP被动打开被动打开BOOTP协议的协议的实现要点实现要点如
5、下:如下:1)使用一个)使用一个单独的包单独的包交换信息;交换信息;使用使用超时重发超时重发机制,直到发送方收到应答机制,直到发送方收到应答信息为止。信息为止。请求和应答使用相同的包字段结构格式请求和应答使用相同的包字段结构格式;使用(最大可能长度的)使用(最大可能长度的)固定长度的字段固定长度的字段,以简化结构定义和分析的需要。以简化结构定义和分析的需要。2)客户端广播引导请求客户端广播引导请求(bootrequest)包,包,其包含客户端的硬件地址,如果知道的话,还其包含客户端的硬件地址,如果知道的话,还包含它的包含它的IP地址。地址。服务器单播引导应答服务器单播引导应答(bootrepl
6、y)包。包。3)请求可以包含客户端指定的响应服务器的名称请求可以包含客户端指定的响应服务器的名称。这样客户端可以强制从一个指定的主机引导。如果这样客户端可以强制从一个指定的主机引导。如果一个相同的引导文件存在多种版本或服务器属于一一个相同的引导文件存在多种版本或服务器属于一个远距离的网络个远距离的网络/域,客户端不必处理名称域,客户端不必处理名称/域服务,域服务,而是由而是由BOOTP服务器实现这种情况下的相应功能。服务器实现这种情况下的相应功能。4)请求可以包含通用请求可以包含通用(generic)引导文件名引导文件名。例如。例如unix。但服务器发送引导应答时,它使用对应但服务器发送引导应
7、答时,它使用对应的引导文件的确切路径名称来取代这个字段。的引导文件的确切路径名称来取代这个字段。5)服务器必须有一个硬件地址和服务器必须有一个硬件地址和IP地址对应的数据地址对应的数据库库。此类客户端。此类客户端IP地址被放在引导应答的对应字段地址被放在引导应答的对应字段中。中。6)某些网络拓扑可能在一个物理网上没有一个直接某些网络拓扑可能在一个物理网上没有一个直接可以访问的可以访问的TFTP服务器,服务器,BOOTP允许客户端通过允许客户端通过使用相邻的网关从几跳外的服务器上引导使用相邻的网关从几跳外的服务器上引导。引导协议引导协议BOOTP的的特点特点:1)BOOTP协议协议基于基于UDP
8、,不和硬件直接打交道,不和硬件直接打交道,易于实现且移植性好;易于实现且移植性好;2)协议交换的信息量较大,可以)协议交换的信息量较大,可以充分利用硬件的充分利用硬件的能力能力。BOOTP与与RARP的的比较比较:两者两者工作模式相同工作模式相同,均采用,均采用请求请求/应答的客户应答的客户-服服务器方式务器方式,从而具有很大的,从而具有很大的灵活灵活性。性。两者不同之处:两者不同之处:BOOTP服务器是作为一个服务器是作为一个应用程应用程序序而存在的,请求而存在的,请求/应答报文在同一个应答报文在同一个IP网络内网络内实实现,现,易于修改和移植易于修改和移植。而。而RARP服务器存在于内服务
9、器存在于内核中,请求核中,请求/应答报文在同一个物理网络内实现,应答报文在同一个物理网络内实现,修改和移植都很困难。修改和移植都很困难。返回返回10.2BOOTP报文报文10.2.1BOOTP报文格式报文格式BOOTP协议有协议有请求请求和和应答应答两种报文两种报文,被封被封装在装在UDP数据报中,如图数据报中,如图10-1所示。所示。图图10-2显示了长度为显示了长度为300字节的字节的BOOTP请求请求和应答的格式。和应答的格式。300字节字节0 8 16 24 31特定厂商区域特定厂商区域字段由两部分组成:字段由两部分组成:第一部分叫做第一部分叫做魔饼魔饼(magiccookie),长长
10、度为度为4个字节个字节,用于定义其后面部分内容用于定义其后面部分内容的的格式(格式(99.130.83.99):第二部分是一个第二部分是一个项目表项目表,每个项目包含:,每个项目包含:一个长度为一个长度为1字节的字节的类型域类型域(type)一个可选的一个可选的1个字节的个字节的长度域长度域(length)一个由长度域定义的多字节的一个由长度域定义的多字节的值域值域(value)10.2.2BOOTP报文传输报文传输 BOOTP报文通过无连接报文通过无连接UDP传输,其可靠性传输,其可靠性由应用程序完成。由应用程序完成。主要处理步骤:主要处理步骤:客户端传送请求客户端传送请求客户端重传请求客户
11、端重传请求服务器接收引导请求服务器接收引导请求客户端接收应答客户端接收应答通过网关引导通过网关引导1客户端传送引导请求客户端传送引导请求客户在第一次建立数据包前,最好把整个客户在第一次建立数据包前,最好把整个包包的缓冲区的缓冲区清零;这将所有的字段设置成默认清零;这将所有的字段设置成默认状态。状态。IP目的地址目的地址被设置成被设置成255.255.255.255(广播(广播地址)或服务器的地址)或服务器的IP地址。地址。IP源地址源地址设置成客户端设置成客户端IP地址,如果此时客地址,如果此时客户端户端IP地址未知,则置为地址未知,则置为0。UDP头头使用适当的使用适当的长度长度设置,设置,
12、源端口源端口设置为设置为BOOTP客户端端口客户端端口68,目标端口目标端口设置为设置为BOOTP服务器端口服务器端口67。操作码操作码字段设置成字段设置成1,表示引导请求,表示引导请求。硬件类型硬件类型字段设置成所在物理网络硬件地址类字段设置成所在物理网络硬件地址类型。型。硬件地址长度硬件地址长度设置成硬件地址长度,例如,以设置成硬件地址长度,例如,以太网是太网是6。事务标识事务标识字段设置成一个字段设置成一个随机随机事务事务ID。秒数秒数字段设置成客户端引导开始后过去的秒数。字段设置成客户端引导开始后过去的秒数。设置这个数值是为了让服务器知道客户端已经设置这个数值是为了让服务器知道客户端已
13、经尝试的时间多少。尝试的时间多少。客户客户IP地址字段地址字段和和IP源地址值相同。源地址值相同。客户硬件地址客户硬件地址字段根据客户端硬件地址填写。字段根据客户端硬件地址填写。如果客户端希望限制从一个特定服务器引导,如果客户端希望限制从一个特定服务器引导,就可以在就可以在服务器服务器IP地址地址字段和字段和服务器主机名服务器主机名字字段中填写相应内容。段中填写相应内容。客户端在填写客户端在填写引导文件名引导文件名字段时有以下几种选字段时有以下几种选择:择: 1)设置成空,即使用默认的文件来引导。)设置成空,即使用默认的文件来引导。2)这个字段也可以是一般常用的名字,例如)这个字段也可以是一般
14、常用的名字,例如unix。3)这个字段还可以是具体的目录路径名字。这个字段还可以是具体的目录路径名字。特定厂商区域特定厂商区域字段可以由客户端填写卖主的字字段可以由客户端填写卖主的字符串或结构。如果使用了特定厂商区域字段,符串或结构。如果使用了特定厂商区域字段,该字段中第一个条目为一个该字段中第一个条目为一个4字节的魔饼字节的魔饼,以以便让服务器确定在这个字段中是什么类型的信便让服务器确定在这个字段中是什么类型的信息。息。2客户端重传客户端重传BOOTP报文报文通过重传策略实现可靠性通过重传策略实现可靠性,主要,主要包括时间片与重传技术。包括时间片与重传技术。在在一长段时间一长段时间内没有收到
15、应答,客户端应该内没有收到应答,客户端应该重传请求。重传请求。时间间隔时间间隔必须仔细选择不要引起网络拥塞。必须仔细选择不要引起网络拥塞。BOOTP推荐延迟一个随机时间推荐延迟一个随机时间(0-4秒秒),延,延迟算法采用二进制指数后退方法。迟算法采用二进制指数后退方法。每次重传前,客户端应该每次重传前,客户端应该修改秒数修改秒数字段。字段。3服务器接收引导请求服务器接收引导请求如果如果UDP目的端口不匹配目的端口不匹配BOOTP服务器端口,则丢服务器端口,则丢弃数据包。弃数据包。如果如果服务器名字字段是空服务器名字字段是空(没有指定特定的服务器),(没有指定特定的服务器),或者该字段是指定的并
16、且匹配服务器名字或别名或者该字段是指定的并且匹配服务器名字或别名,继续包的处理。继续包的处理。如果如果服务器名字字段是指定的,但不匹配本服务器服务器名字字段是指定的,但不匹配本服务器,则有多种选择:则有多种选择: 1)可以选择简单丢弃这个包。)可以选择简单丢弃这个包。 2)如果通过查询服务器名字字段名称,显示其在某)如果通过查询服务器名字字段名称,显示其在某网络中,可以丢弃这个包,你也可以选择转发这个网络中,可以丢弃这个包,你也可以选择转发这个包到那个地址。包到那个地址。转发:检查转发:检查网关地址网关地址字段。如果其值为字段。如果其值为0,填入本,填入本服务器地址或可以用来到达那个网络的网关
17、的地服务器地址或可以用来到达那个网络的网关的地址。然后转发这个包。址。然后转发这个包。如果如果客户端客户端IP地址地址是是0,那么客户端不知道自己的,那么客户端不知道自己的IP地址,此时,在本服务器的数据库中地址,此时,在本服务器的数据库中查找客户端的硬查找客户端的硬件地址件地址。如果找到该客户端。如果找到该客户端IP地址,便填入你的地址,便填入你的IP地地址字段。如果没有匹配,则丢弃数据包。址字段。如果没有匹配,则丢弃数据包。接着检查接着检查引导文件名引导文件名字段。字段。1)如果客户端不关注文件名或想要默认引导文件,)如果客户端不关注文件名或想要默认引导文件,则这个字段是空。则这个字段是空
18、。2)当这个字段非空,可以将它和客户端的)当这个字段非空,可以将它和客户端的IP地址做地址做为数据库的查询关键字。为数据库的查询关键字。如果有默认的文件或通用文件或一个匹配的指定的路如果有默认的文件或通用文件或一个匹配的指定的路径名称,就在径名称,就在引导文件名引导文件名字段中填入选择的引导文件字段中填入选择的引导文件的指定的路径名称。的指定的路径名称。如果如果引导文件名引导文件名字段是字段是非空并且没有匹配非空并且没有匹配,那么客户,那么客户端要一个本服务器没有的文件,端要一个本服务器没有的文件,丢弃丢弃这个包。这个包。然后检查然后检查特定厂商区域特定厂商区域字段。如果提供一种可识别字段。如
19、果提供一种可识别类型的数据,应该进行客户端指定的动作,并且回类型的数据,应该进行客户端指定的动作,并且回应要填入应答包中的特定厂商区域字段数据字段。应要填入应答包中的特定厂商区域字段数据字段。服务器服务器IP地址地址字段填入本服务器对应值。字段填入本服务器对应值。设置设置操作码字段操作码字段字段为字段为2,表示引导应答。,表示引导应答。UDP目的端口目的端口设置成设置成BOOTP客户端端口。如果客户端端口。如果客户客户端地址端地址非非0,把包发送到那里;否则,查看,把包发送到那里;否则,查看网关地址网关地址,如果网关地址非如果网关地址非0,则把包发送到网关地址。,则把包发送到网关地址。描描述述
20、类类型型长长度度值值填充填充0子网掩码子网掩码14子网掩码子网掩码时间偏移时间偏移24时间偏移值时间偏移值默认路由器默认路由器3变长变长IP地址地址时间服务器时间服务器4变长变长IP地址地址表表结束结束2554.客户端接收应答客户端接收应答客户端客户端丢弃以下的包丢弃以下的包:UDP相关的端口不是引导定位端口相关的端口不是引导定位端口不是不是BOOTP引导应答引导应答不匹配客户端自己不匹配客户端自己IP地址或硬件地址地址或硬件地址不匹配客户端自己发出的事务标识不匹配客户端自己发出的事务标识ID除这些以外,客户端便收到一个除这些以外,客户端便收到一个成功的应答成功的应答。如果客户端以前不知道自己
21、如果客户端以前不知道自己IP地址,查询相地址,查询相关关IP地址字段便知道地址字段便知道自己的自己的IP地址地址。5通过网关引导通过网关引导侦听侦听BOOTP引导请求广播的网关可能确定引导请求广播的网关可能确定转转发发这些请求。这些请求。转发转发立即开始立即开始等客户端确定的等客户端确定的秒数字段超过某个阀值秒数字段超过某个阀值。当一个网关确定转发请求时,当一个网关确定转发请求时,网关网关IP地址字地址字段如果是段如果是0,它就在这个字段中加入自己的,它就在这个字段中加入自己的IP地址地址。也可以使用。也可以使用跳数字段跳数字段来可控制包可以来可控制包可以转发多远,转发多远,每次转发应该增加跳
22、数每次转发应该增加跳数,以便决,以便决定何时终止转发。定何时终止转发。返回返回10.3启动配置文件启动配置文件 IP地址是地址是IP网络上唯一标识一个接入终端最网络上唯一标识一个接入终端最原始和最有效的标识符。原始和最有效的标识符。分配分配IP地址的方法地址的方法:自协商方式自协商方式用户自己静态配置用户自己静态配置管理员统一分配配置等方式管理员统一分配配置等方式 更重要的是:很多终端启动时不仅需要更重要的是:很多终端启动时不仅需要IP地地址,而且还址,而且还需要动态地获取更多的启动配置需要动态地获取更多的启动配置信息信息。以协议机制工作的配置方式以协议机制工作的配置方式BOOTP是最早的主机
23、配置协议。是最早的主机配置协议。BOOTP服服务器上有一个关于本网络上各无盘结点的务器上有一个关于本网络上各无盘结点的启动启动配置文件配置文件。BOOTP请求的引导文件名字段中填入请求的引导文件名字段中填入“UNIX”等通用名称,服务器收到请求后,从等通用名称,服务器收到请求后,从启动配置文件中查找,当找出适合于该客户硬启动配置文件中查找,当找出适合于该客户硬件体系结构的启动文件名,便填入件体系结构的启动文件名,便填入BOOTP响响应中同一域,返回客户机。应中同一域,返回客户机。采用启动配置文件有采用启动配置文件有两大优点两大优点:1)管理员可以对客户机的引导文件进行配置。)管理员可以对客户机
24、的引导文件进行配置。2)方便客户机用户,使他们不必记住确切的引)方便客户机用户,使他们不必记住确切的引导文件名,也不必记住客户机的硬件结构。导文件名,也不必记住客户机的硬件结构。 BOOTP用于相对用于相对静态环境静态环境,每个主机都有一,每个主机都有一个永久的网络连接,管理人员创建一个个永久的网络连接,管理人员创建一个BOOTP配置文件来定义每个主机的配置文件来定义每个主机的BOOTP参参数。在计算机数。在计算机经常移动经常移动和和实际计算机数目超过实际计算机数目超过了可获得的了可获得的IP地址地址时,这种静态映射就不适用时,这种静态映射就不适用了。了。 为此,发展了为此,发展了DHCP协议
25、,协议,DHCP协议兼容协议兼容BOOTP协议协议。DHCP从两个方式上从两个方式上扩充扩充了了BOOTP:1)DHCP可使计算机用可使计算机用消息消息获取它所需要的所获取它所需要的所有配置信息。有配置信息。2)DHCP允许计算机快速允许计算机快速动态的获取动态的获取IP地址地址。DHCP支持三种类型的地址分配支持三种类型的地址分配:1)自动分配自动分配:DHCP给主机指定一个永久的给主机指定一个永久的IP地址;地址;2)动态分配动态分配:主机:主机IP地址的动态性表现在,地址的动态性表现在,被分配的被分配的IP地址有时间限制或自己可以明确地址有时间限制或自己可以明确表示放弃本地址。表示放弃本
26、地址。3)手工分配手工分配:网络管理员按照:网络管理员按照DHCP规则,将规则,将指定指定IP地址分配给主机。地址分配给主机。动态分配:自动重用地址的机制。这种方法动态分配:自动重用地址的机制。这种方法适合于适合于临时上网临时上网用户,而且在网络的用户,而且在网络的IP地址地址资源不是很多资源不是很多的时候特别有用。的时候特别有用。返回返回10.4DHCP基本概念基本概念动态主机配置协议动态主机配置协议DHCP是在是在TCP/IP网络上网络上使客户机获得配置信息的协议。使客户机获得配置信息的协议。图图10-3表示典型表示典型DHCP网络。网络。DHCP信息包的格式是基于信息包的格式是基于BOO
27、TP包格式的。包格式的。不同:标志位(不同:标志位(1强迫服务器以广播应答)强迫服务器以广播应答)选项变长选项变长额外的额外的DHCP选项:选项:1DHCPDISCOVER客户客户服务器服务器2DHCPOFFER服务器服务器客户客户3DHCPREQUEST客户客户服务器服务器4DHCPDECLINE客户客户服务器服务器5DHCPACK服务器服务器客户客户6DHCPNAK服务器服务器客户客户7DHCPRELEASE客户客户服务器服务器8DHCPINFORM客户客户服务器服务器使用使用DHCP的的好处好处:1安全而可靠安全而可靠的设置的设置DHCP避免了因手工设置避免了因手工设置IP地址及子网掩码
28、所地址及子网掩码所产生的错误,同时也避免了把一个产生的错误,同时也避免了把一个IP地址分配地址分配给多台工作站所造成的地址冲突。给多台工作站所造成的地址冲突。2降低了管理降低了管理IP地址设置的负担地址设置的负担使用使用DHCP服务器大大服务器大大缩短缩短了配置或重新配置了配置或重新配置网络中工作站所花费的时间,通过对网络中工作站所花费的时间,通过对DHCP服服务器的设置可灵活的设置地址的租期。务器的设置可灵活的设置地址的租期。DHCP地址租约的更新过程将有助于确定哪个地址租约的更新过程将有助于确定哪个客户的设置需要经常更新,且这些变更由客户客户的设置需要经常更新,且这些变更由客户机与机与DH
29、CP服务器服务器自动完成自动完成,无需网络管理员,无需网络管理员人工干预。人工干预。返回返回10.5DHCP运行方式运行方式1DHCP客户机运行机制客户机运行机制所有支持所有支持DHCP协议并能够发起协议并能够发起DHCP过程的过程的终端都称之为终端都称之为DHCP客户机客户机。DHCP客户机自客户机自己必须能够发出己必须能够发出DHCPDISCOVER、DHCPREQUEST、DHCPDECLINE等报文。等报文。DHCP客户机客户机运行状态图运行状态图如图所示。如图所示。当当DHCP客户机处于客户机处于初始化状态初始化状态即还没有获取即还没有获取IP地址的状态时,地址的状态时,DHCP客户
30、机将会发出一个客户机将会发出一个广播的广播的DHCPDISCOVER报文,从而开始报文,从而开始DHCP过程。过程。当当客客户户机机第第一一次次启启动动时时它它进进入入初初始始化化状状态态INIT。为为了了开开始始获获取取一一个个IP地地址址,客客户户机机先先广广播播一一个个DHCPDISCOVER报报文文并并转转移移到到SELECTING选择状态选择状态。由由于于协协议议是是对对BOOTP的的扩扩充充,客客户户机机在在一一个个UDP数数据据报报中中发发送送DHCPDISCOVER报报文文,UDP数数据据报报中中目目的的端端口口设设为为BOOTP端端口口即即端端口口67。本本地地网网上上所所有
31、有DHCP服服务务器器接接收收报报文文,那那些些被被设设计计成成能能响响应应特特定定客客户户机机的的服服务务器器发发送送DHCPOFFER报报文文。因因此此客客户户机机可可能能收收到到零零个或多个响应(个或多个响应(DHCPOFFER)。)。处处于于SELECTING状状态态时时,客客户户机机从从DHCP服服务务器器收收集集DHCPOFFER响响应应。每每个个响响应应提提供供了了用用于于客客户户机机的的配配置置信信息息,还还有有服服务务器器可可提提供供租租用用给给客客户户机机的的一一个个IP地地址址。客客户户机机必必须须选选择择其其中中一一个个响响应应如如第第一一个个到到达达的的响响应应,并并
32、与与服服务务器协商租用。器协商租用。为为 此此 客客 户户 机机 发发 送送 给给 服服 务务 器器 一一 个个DHCPREQUEST报文报文,并进入,并进入请求状态请求状态。服务器为确认已接受请求并开始租用,服务器服务器为确认已接受请求并开始租用,服务器响应发出一个响应发出一个DHCPACK报文报文。客户机收到确。客户机收到确认后转移到认后转移到BOUND已绑定状态已绑定状态,此时客户机,此时客户机可开始使用此地址。可开始使用此地址。DHCP客户机更新租约客户机更新租约的过程:的过程:在在客客户户机机租租期期达达到到T1(50%)时时,客客户户机机需需要要更更新新租约。租约。1.客客户户机机
33、直直接接向向提提供供租租约约的的服服务务器器发发送送请请求求,要求更新及延长现有地址的租约。要求更新及延长现有地址的租约。2. 如如 果果 DHCP服服 务务 器器 收收 到到 请请 求求 , 它它 发发 送送 DHCPACK给客户机,更新客户机的租约。给客户机,更新客户机的租约。3.如如果果客客户户机机无无法法与与提提供供租租约约的的服服务务器器取取得得联联系系,则则客客户户机机一一直直等等到到租租期期达达到到T2(87.5%)时时,客客户户机机进进入入到到一一种种重重新新申申请请的的状状态态,它它向向网网络络上上所所有有的的DHCP服服务务器器广广播播DHCPREQUEST以更新现有的地址
34、租约。以更新现有的地址租约。4. 4. 如如有有服服务务器器响响应应客客户户机机的的请请求求,那那么么客客户户机机使使用用该该服服务务器器提提供供的的地地址址信信息息更更新现有的租约。新现有的租约。5. 5. 如如果果租租约约过过期期或或无无法法与与其其它它服服务务器器通通信信,客客户户机机将将无无法法使使用用现现有有的的地地址址租租约约。客客户户机机返返回回到到初初始始启启动动状状态态,利利用用前前面面所述的步骤重新获取所述的步骤重新获取IPIP地址租约。地址租约。2DHCP服务器运行机制服务器运行机制DHCP服务器行为由服务器行为由DHCP客户端来驱动,根据客户端来驱动,根据DHCP客户机
35、请求报文发出响应报文:客户机请求报文发出响应报文:1)如果收到)如果收到DHCPDISCOVER报文,则从地址池中分报文,则从地址池中分配一个空闲配一个空闲IP,结合客户机请求参数,构造结合客户机请求参数,构造DHCPOFFER响应报文。响应报文。2)如果收到)如果收到DHCPREQUEST报文,就会根据客户机报文,就会根据客户机的硬件地址,查找其地址分配表,如若找到则响应的硬件地址,查找其地址分配表,如若找到则响应DHCPACK报文,否则响应报文,否则响应DHCPNAK报文,报文,DHCP客户机会自动重新开始客户机会自动重新开始DHCP过程。过程。3)如果收到)如果收到DHCPRELEASE
36、报文,则会解除这个报文,则会解除这个IP地址与某个地址与某个DHCP客户机的绑定,等待重新分配。客户机的绑定,等待重新分配。4)如果收到)如果收到DHCPDECLINE报文,会禁用报文中客户报文,会禁用报文中客户机机IP地址字段的地址字段的IP地址,不再分配这个地址,不再分配这个IP地址。地址。3.DHCP交互过程交互过程1)首先,客户机发出首先,客户机发出DHCPDISCOVER广播广播报报文,以便文,以便DHCP服务器能够知道客户机想要获服务器能够知道客户机想要获得的各种参数。得的各种参数。2)所有的所有的DHCP服务器都会为服务器都会为DHCPDISCOVER广播报文响应一个广播报文响应
37、一个DHCPOFFER报文,同时,报文,同时,DHCP服务器会保服务器会保存已分配存已分配IP地址的记录。地址的记录。3)客户机能够收到每个客户机能够收到每个DHCPOFFER报文,但报文,但一次只能处理一个,一般处理最先收到一次只能处理一个,一般处理最先收到的的DHCPOFFER报文。接着,客户机会再发出报文。接着,客户机会再发出DHCPREQUEST广播广播报文。报文。4)DHCP服务器收到服务器收到DHCPREQUEST报文,判报文,判断报文中服务器地址是否与自己的地址相同:断报文中服务器地址是否与自己的地址相同:如果相同,如果相同,DHCP服务器响应服务器响应DHCPACK报文,报文,
38、并在选项字段中增加了并在选项字段中增加了IP地址使用租期选项。地址使用租期选项。5)客户机收到客户机收到DHCPACK报文后,判断报文后,判断DHCP服务器分配给自己的服务器分配给自己的IP地址是否一致,如果是,地址是否一致,如果是,则表明客户机成功获得则表明客户机成功获得IP地址;如果否,则通地址;如果否,则通知知DHCP服务器禁用这个服务器禁用这个IP地址以免引起地址以免引起IP地地址冲突,然后客户机从第址冲突,然后客户机从第1步重新开始。步重新开始。6)客户机根据客户机根据IP地址使用租期自动启动续延过地址使用租期自动启动续延过程,在使用租期过去的一定时刻处程,在使用租期过去的一定时刻处
39、(T1,T2),向向DHCP服务器发送服务器发送DHCPREQUEST报文续报文续延租期,如果成功,则租期相应向前延长;如延租期,如果成功,则租期相应向前延长;如果没有,则客户机继续使用这个果没有,则客户机继续使用这个IP地址。使用地址。使用租期一到,客户机应自动放弃使用这个租期一到,客户机应自动放弃使用这个IP地址地址,并重新从第并重新从第1步开始。步开始。7)客户机在成功获取客户机在成功获取IP地址后,随时可以释放地址后,随时可以释放自己的自己的IP地址,地址,DHCP服务器收到服务器收到DHCPRELEASE后,会回收相应的后,会回收相应的IP地址进地址进行重新分配。行重新分配。返回返回
40、10.6DHCP/BOOTP中继代理中继代理如如果果DHCP服服务务器器与与客客户户机机分分别别位位于于不不同同的的子子网网上上,则则用用户户的的路路由由器器必必须须具具备备DHCP/BOOTP中中继继代代理理(RelayAgent)的功能的功能(RFC1542)。DHCP中中 继继 代代 理理 是是 一一 个个 程程 序序 , 它它 能能 够够 把把 DHCP/BOOTP广广播播信信息息从从一一个个子子网网转转播播到到另另一一个个子子网上。网上。如前图如前图在子网在子网2中的客户机中的客户机C从子网从子网1中的中的DHCP服务器上获得服务器上获得IP地址租约。地址租约。DHCP客客 户户 机
41、机 C在在 子子 网网 2上上 广广 播播 DHCP/BOOTPdiscover消息消息(DHCPDISCOVER)。当当中中继继代代理理(在在本本例例中中是是一一个个具具有有DHCP/BOOTP中中继继代代理理功功能能的的路路由由器器)接接收收到到这这个个消消息息后后,它它检检查查包包含含在在这这个个消消息息报报头头中中的的网网关关IP地地址址,如如果果IP地地址址为为0.0.0.0,则则用用中中继继代代理理或或路路由由器器的的IP地地址址替替换换它它,然然后将其转发到后将其转发到DHCP服务器所在的子网服务器所在的子网1上。上。当当在在子子网网1中中的的DHCP服服务务器器收收到到这这个个
42、消消息息后后,它它开开始始检检查查消消息息中中的的网网关关IP地地址址是是否否包包含含在在DHCP范范围围内内 , 从从 而而 决决 定定 它它 是是 否否 可可 以以 提提 供供 IP地地 址址 租租 约约 。 如如果果DHCP服服务务器器含含有有多多个个DHCP范范围围,消消息息中中的的网网关关IP地地址址是是用用来来确确定定从从那那个个DHCP范范围围中中挑挑选选IP地地址址并提供给客户。并提供给客户。 DHCP服服 务务 器器 1将将 它它 所所 提提 供供 的的 IP地地 址址 租租 约约 (DHCPOFFER)直接发送到中继代理直接发送到中继代理。路路由由器器将将这这个个租租约约利
43、利用用广广播播的的形形式式转转发发给给DHCP客户机。客户机。注注意意:如如果果要要配配置置多多台台DHCP服服务务器器,最最好好将将它它们们分分别别放放在在不不同同的的子子网网中中,且且每每个个DHCP服服务务器器上上都都应应建建立立独独立立的的地地址址池池,在在地地址址池池中中应包含各个子网的应包含各个子网的IP地址。地址。BOOTP协议是针对网络上无盘结点而设计的协议是针对网络上无盘结点而设计的引导协议引导协议,网络启动时它需要从服务器获得自己的网络启动时它需要从服务器获得自己的IP地址、文件地址、文件服务器的服务器的IP地址、可运行的引导文件名等信息。一般地址、可运行的引导文件名等信息
44、。一般与文件传输协议配合使用来获取引导文件。与文件传输协议配合使用来获取引导文件。BOOTP/DHCP协议协议有请求和应答两种报文有请求和应答两种报文,被封装在被封装在UDP数据报中传输。数据报中传输。动态主机配置协议动态主机配置协议DHCP是在是在TCP/IP网络上网络上使客户机使客户机获得配置信息获得配置信息的协议,它基于的协议,它基于BOOTP协议,并在协议,并在BOOTP协议的基础上添加了协议的基础上添加了自动分配可用网络地址自动分配可用网络地址等等功能。功能。BOOTP/DHCP客户端的客户端的UDP端口号为端口号为68,BOOTP/DHCP服务器的服务器的UDP端口号为端口号为67。BOOTP是一个是一个静态静态配置协议,而配置协议,而DHCP是一个是一个动态动态配配置协议。置协议。本章要点本章要点