您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 计算机网络-DHCP原理
InternalDHCP原理ISSUE1.0Page2本章节主要通过对设备终端动态从主机获得IP地址的过程分析,来说明网络是如何动态的分配其所有的地址资源。Page3学习完此课程,您将会:掌握DHCP协议的流程了解DHCP所使用的报文结构Page4第一章使用DHCP的原因第二章DHCP的原理第三章DHCP工作流程举例Page5什么是DHCPDHCP(DynamicHostConfigurationProtocol)是一种动态的向Internet终端提供配置参数的协议。在终端提出申请之后,DHCP可以向终端提供IP地址、网关、DNS服务器地址等参数。提出申请分配地址等参数DHCPServerClientIP地址池Page6DHCP在协议栈中的位置DHCP是Bootstrap协议的一种扩展,基于UDP协议,客户端的端口号是68,服务器的端口号是67。ApplicationlayerDHCPTransportlayerUDPNetworklayerIPData-linklayerNolimitedPhysicallayerNolimitedPage7DHCP的必要性在大型网络中,如果每台终端的地址都是由不同的使用这来分配,那么就很容易出现地址相同的情况。192.168.0.1192.168.0.2192.168.0.1地址冲突了Page8DHCP的必要性在TCP/IP网络上,每台工作站在访问网络及其资源之前,都必须进行基本的网络配置,一些主要参数诸如IP地址,子网掩码,缺省网关,DNS等必不可少,还可能需要一些附加的信息如IP管理策略之类。在大型网络中,确保所有主机都拥有正确的配置是一件的相当困难的管理任务,尤其对于含有漫游用户和笔记本电脑的动态网络更是如此。经常有计算机从一个子网移到另一个子网以及从网络中移出。手动配置或重新配置数量巨大的计算机可能要花很长时间,而IP主机配置过程中的错误可能导致该主机无法与网络中的其他主机通信。因此,需要有一种机制来简化IP地址的配置,实现IP的集中式管理。而IETF(Internet网络工程师任务小组)设计的动态主机配置协议(DHCP,DynamicHostConfigurationProtocol)正是这样一种机制。Page9采用DHCP的好处减少错误通过配置DHCP,把手工配置IP地址所导致的错误减少到最低程度,例如已分配的IP地址再次分配给另一设备所造成的地址冲突等将大大减少。减少网络管理TCP/IP配置是集中化和自动完成的,不需要网络管理员手工配置。网络管理员能集中定义全局和特定子网的TCP/IP配置信息。使用DHCP选项可以自动给客户机分配全部范围的附加TCP/IP配置值。客户机配置的地址变化必须经常更新,比如远程访问客户机经常到处移动,这样便于它在新的地点重新启动时,高效而又自动地进行配置。同时大部分路由器能转发DHCP配置请求,这就减少了在每个子网设置DHCP服务器的必要,除非有其它原因要这样做。Page10DHCP的结构DHCP采用客户机/服务器结构。DHCP服务器拥有一个IP地址池,当任何启用DHCP的客户机登录到网络时,可从它那里租借一个IP地址,不使用的IP地址就自动返回地址池,供再分配。提出申请分配地址等参数地址释放ClientServerPage11DHCP的责任保证任何IP地址在同一时刻只能由一台DHCP客户机所使用DHCP应当可以给用户分配永久固定的IP地址DHCP应当可以同用其他方法获得IP地址的主机共存(如手工配置IP地址的主机)DHCP服务器应当向现有的BOOTP客户端提供服务Page12DHCP的责任考虑到成本,无需每个子网都配备一台DHCP服务器,所以DHCP协议应当可以通过路由器或者BOOTP代理透传。DHCPServerClientIP地址池DHCP报文DHCP报文Page13DHCP的责任当一台DHCP客户机重新启动时,在允许的情况下,它应当获得和上次相同的地址和配置DHCPServer192.168.0.1IP地址池Reboot192.168.0.1Page14DHCP的责任当一台DHCP服务器重新启动时,在允许的情况下,它应当给每一台DHCP客户机分配和上次相同的地址DHCPServer192.168.0.1IP地址池Reboot192.168.0.1Page15第一章使用DHCP的原因第二章DHCP的原理第三章DHCP工作流程举例Page16DHCP服务器保留的地址池(地址池段1)(地址池段2)……分配的地址(网络地址1,硬件地址1)分配的IP地址1(网络地址2,硬件地址2)分配的IP地址2…….DNS服务器地址WINS服务器地址……Page17DHCP客户机Page18地址申请流程ClientServerDHCPDISCOVERDHCPOFFERREQUESTDHCPACKPage19DHCP的报文种类DHCPDISCOVER——客户机广播发现可用的DHCP服务器DHCPOFFER——服务器响应客户机的DHCPDISCOVER报文,并向客户机提供各种的配置参数DHCPREQUEST——a)客户机向服务器申请地址及其他配置参数b)客户机重新启动后确认原来的地址及其他配置参数的正确性c)客户机向服务器申请延长地址及其他配置参数的使用期限DHCPACK——服务器向客户机发送所需分配的地址及其他配置参数Page20DHCP的报文种类DHCPNAK——服务器通知客户机,其申请的地址无效,或者已经超期DHCPDECLINE——客户机通知服务器,其分配的地址已经被其他设备所使用DHCPRELEASE——客户机放弃其所使用的地址DHCPINFORM——客户机向服务器申请本地的配置参数(当客户机的地址已经被分配时使用)Page21DHCP的有限状态机INITINIT-REBOOTREBOOTINGSELECTINGREQUESINGREBINGINGBOUNDRENEWINGDHCPNAK/RestartDHCPNAK/DiscardofferDHCPREQUESTDHCPACK(notaccept)/SendDHCPDECLINEDHCPDISCOVERSelectoffer/sendDHCPREQUESTDHCPOFFER/CollectrepliesDHCPACK/Recordlease,settimerT1,T2DHCPOFFER/DiscardofferDHCPACK/Recordlease,settimerT1,T2DHCPOFFER,DHCPACK,DHCPNAK/DiscardT1expires/SendDHCPREQUESTtoleasingserverDHCPACK/Recordlease,settimerT!,T2T2expires/BroadcastDHCPREQUESTDHCPNAK/HaltnetworkPage22DHCP报文的格式OP(1)Htype(1)Hlen(1)Hops(1)Xid(4)Secs(2)Flags(2)ClientIPaddress(4)YourIPaddress(4)ServerIPaddress(4)GatewayIPaddress(4)ClienthardwareIPaddress(4)ServerName(64)File(128)Options(可变)Page23DHCP报文的格式OP:操作码(1=bootrequest,2=bootreply)Htype:硬件地址类型(1=10mbethernet)Hlen:硬件地址长度(ethernet为10)Hops:客户机设置为0,当使用多个DHCPRelay时可变Xid:传输ID,在同服务器的交互中,由客户机所选择Secs:客户机所使用的地址,在最近一次地址获取/地址更新后所经过的时间Flags:最左边一位是广播位,其余各位置0Page24DHCP报文的格式ClientIPaddress:客户机在BOUND,RENEW或REBINDING状态所使用,可以用来回应ARP请求报文YourIPaddress:服务器给客户机分配的IP地址ServerIPaddress:bootstrap中使用的下一台服务器的地址,由服务器在DHCPOFFER,DHCPACK中使用GatewayIPaddress:使用的DHCPRelay的地址Clienthardwareaddress:客户机硬件地址Servername:服务器名字,缺省为空File:启动文件的名字,在DHCPOFFER报文中给出全名Options:根据不同的报文而定Page25DHCPDISCOVER/DHCPINFORM报文的格式BOOTREQUESTHtype(1)Hlen(1)0Xid(4)0或者自从DHCP启动后的秒数Flags(2)0(DHCPDISCOVER)/客户机的IP地址(DHCPINFORM)000ClienthardwareIPaddress(4)ServerName(64)File(128)Options(可变)Page26DHCPREQUEST报文的格式BOOTREQUESTHtype(1)Hlen(1)0Xid与DHCPOFFER报文的Xid相同Secs(2)Flags(2)0/客户机的IP地址(BOUND/RENEW/REBIND状态)000ClienthardwareIPaddress(4)ServerName(64)File(128)Options(可变)Page27DHCPDECLINE/DHCPRELEASE报文的格式BOOTREQUESTHtype(1)Hlen(1)0由客户机选择000(DHCPDECLINE)/客户机的IP地址(DHCPRELEASE)000ClienthardwareIPaddress(4)未使用未使用未使用Page28DHCPOFFER报文的格式BOOTREPLYHtype(1)Hlen(1)0Xid与DHCPDISCOVER报文相同0000服务器向客户机提供的IP地址下一台服务器的地址ClienthardwareIPaddress(4)ServerName(64)File(128)Options(可变)Page29DHCPACK报文的格式BOOTREPLYHtype(1)Hlen(1)0Xid与DHCPDISCOVER报文相同000或者从DHCPREQUEST报文中获得0服务器向客户机提供的IP地址下一台服务器的地址ClienthardwareIPaddress(4)ServerName(64)File(128)Options(可变)Page30DHCPOFFER报文的格式BOOTREPLYHtype(1)Hlen(1)0Xid与DHCPDISCOVER报文相同000000ClienthardwareIPaddress(4)ServerName(64)File(128)Options(可变)Page31DHCP流程客户机在本网段内广播DHCPDISCOVER报文已发现网络中的DHCP服务器,DHCPRelay可将此报文广播到其他的网段网络1网络2DHCPDISCOVERPage32DHCP流程服务器向客户机回应请求,并给出一个可用的IP地址。此地址并非真的被分配。但在给出此地之前,应当用ICMPECHOREQUEST报文进行检查。网络1DHCPOFFER(192.168.0.1)ICMP(192.168.0.1)Page33DHCP流程如果收到多个DHCPOFFER报文,DHCP客户机会根据报文的内容从其中选择一个给与响应。如果客户机之前曾经获得过一个IP地址,她会将此地址写在DHCPREQUEST报文的OPTIONS域的“REQUESTDIPADDRESS”中发给服务器网络1DHCPREQUEST(192.168.0.1)Reboot192.168.0.1Page34DHCP流程当收到DHCPREQUEST报文后,服务器将客户机的
本文标题:计算机网络-DHCP原理
链接地址:https://www.777doc.com/doc-1492257 .html