DHCP 详解【原理篇】

简介:
         TCP/IP网络中每一台主机都需要有一个IP地址,并通过此IP地址来与网络上其他主机通信。这些主机可以通过DHCP服务器来自动获得IP地址与相关的选项设置。
 
1:主机IP地址的配置
2:DHCP的工作原理
3:DHCP服务器的授权
4:DHCP服务器的安装与测试
5:IP作用域的创建与管理
6:DHCP的选项设置
6:DHCP中继代理程序
7:超级作用域与多播作用域
8:DHCP数据库的维护
9:监视DHCP服务器的运行
10:IPv6地址与DHCPv6的设置
 
主机IP 地址的设置
 
         每一台主机的IP地址可以通过以下两种方法来设置:
1:手动输入、这种方式比较容易因为输入错误而影响到主机的网络通信,而且可能会因为占用其他主机的IP地址而干扰到该主机的运行,因为会加重系统管理员的负担。
2:自动向DHCP服务器申请、用户的计算机会自动向DHCP服务器申请IP地址,接收到此请求的DHCP服务器会分配IP地址给用户的计算机。他可以减轻管理负担,避免因手动输入错误而造成的困扰。
 
想要使用DHCP方式来分配IP地址的话,整个网络内必须至少有一个台启动DHCP服务的服务器,也就是需要有一台 DHCP 服务器,而苦厄虎胆也必须支持自动申请IP地址功能,这些客户端被成为DHCP客户端。‘下图’为一个支持DHCP的网络示例,图中甲、乙网络中各有一台DHCP服务器,同时乙网络内分别有DHCP客户端与非DHCP客户端(手动输入IP地址的客户端)。
DHCP服务器知识将IP地址租给DHCP客户端一段时间而已,若客户端未及时更新租约的话,在租约到期时,DHCP服务器会收回该IP地址的使用权。
我们将手动输入的IP地址为 静态 IP 地址(static IP address),而想DHCP服务器租用的IP地址成为 动态 IP 地址(dynamic IP address)。
除了IP地址之外,DHCP服务器还可以提供其他相关选项设置(options)给DHCP客户端,列入默认网网关的IP地址、DNS服务器的IP地址等。
 
DHCP 的工作原理
DHCP客户端计算机启动时会搜索DHCP服务器,以便向它申请IP地址等。然而它们之间的通信方式,依DHCP客户端是向DHCP服务器申请一个新的IP地址、还是更新租约(请求继续使用原来的IP地址)而有所不同。
 
向DHCP 服务器申请IP 地址
         DHCP客户端在一下几种情况之下,会向DHCP服务器申请一个新的IP地址:
1:该客户端计算机是第一次扮演DHCP客户端角色,也就是它是第一次向DHCP服务器请求IP地址。
2:该客户端原先所租用的IP地址已被DHCP服务器收回并已租给其他计算机了,因此该客户端需要重新向DHCP服务器租用一个新的IP地址。
3:该客户端自己释放了原先所租用的IP地址(且此IP地址又已经被服务器租给其他客户端),并请求重新租用IP地址。
4:客户端计算机更换了网卡。
5:客户端计算机被移动到另外一个网段。
 
在以上几种情况下,DHCP客户端与DHCP服务器之间会通过一下的四个数据包(packet)来相互通信
         DHCPDISCOVER:DHCP客户端会先发送一个DHCPDISCOVER广播(broadcast)消息到网络搜索一台能提供IP地址的DHCP服务器。
         DHCPOFFER:当DHCP服务器收到DHCP的DHCPDISCOVER消息后,它会从IP地址池中选择一个尚未租出的IP地址,然后用广播发送给DHCP客户端(之所以用广播,是因为此时DHCP客户端还没有IP地址)。在尚未与DHCP客户端完成租用IP地址的过程之前,此IP地址也会暂时被保留,以避免重复更配给其他客户端。
         如果有多台DHCP服务器也收到DHCP客户端的DHCPDISCOVER消息,并且也都回应给DHCP客户端的话(表示它们都可以提供IP地址给此客户端),则客户端会选择第一个收到的DHCPOFFER消息。
         DHCPREQUEST:当DHCP客户端选择第一个收到的DHCPOFFER消息后,它就利用广播回应DHCPREQUEST消息给DHCP服务器。之所以用广播,是因为它不但要通知所选择的DHCP服务器,也必须通知没有被选上的其他DHCP服务器,以便这些DHCP服务器将其原本要分配给此客户端而保留的IP地址,释放出来供其他客户端使用。DHCP客户端收到DHCPOFFER消息后,会先检查包含在DHCPOFFER数据包内的IP地址是否已经被其他计算机使用[通过发出Address Resolution Protocol request( ARP)消息来检查],若发现此地址已经被其他计算机占用,则它会发出一个DHCPDECLENT消息给DHCP服务器,表示拒绝接受此IP地址,然后重新发出DHCPDISCOVER信息来申请另一个IP地址。
DHCPACK:DHCP服务器收到DHCP客户端请求IP地址的DHCPREQUEST消息后,就会利用广播发出DHCPACK确认消息给DHCP客户端(之所以用广播,是因为此时DHCP客户端仍没有IP地址),此消息内包含着DHCP客户端所需的相关设置,例如IP地址、子网掩码、默认网关、DNS服务器等。
 
DHCP客户端在收到DHCPACK消息后,就完成了申请IP地址的程序,也就可以开始使用这个IP地址来与其他计算机通信了。
 
更新IP 地址的租约
如果DHCP客户端想要延长其IP地址使用期限的话,则DHCP客户端必须更新(renew)其IP地址租约,更新租约时,DHCP客户端会发出DHCPREQUEST消息给DHCP服务器。如图:
自动更新租约
DHCP客户端会在下列的情况下,自动向DHCP服务器提出更新租约请求:
1 :DHCP 客户端计算机重启时、每一次客户端计算机重启时,都会自动发送DHCPREQUEST广播消息给DHCP服务器,以便请求继续租用原来使用的IP地址,若租约无法更新成功的话,客户端会尝试与默认网关通信:
若通信成功且租约并未到期,则客户端仍然可以继续使用原来的IP地址,然后等下一次更新时间到达的时候再更新。
若无法与默认网关成功通信,则客户端会放弃目前的IP地址,使用169.254.0.0/16的IP地址,然后每隔5分钟再尝试更新租约
2 :IP 地址租约期过半时、DHCP客户端也会在租约过半时,自动发送一个DHCPREQUEST的直接(direct)消息租给此IP地址的DHCP服务器。
IP 地址租约租期过7/8 :若租约过半时无法成功更新租约的话,客户端仍然可以继续使用原IP地址,不过客户端会在租约过7/8(87.5%)时,再使用DHCPREQUEST广播消息来向任意一台DHCP服务器更新租约。如果仍然无法更新成功,则此客户端会放弃其正在使用的IP地址,然后重新向DHCP服务器申请一个新的IP地址(使用DHCPDISCOVER消息)。
 
只要DHCP客户端能够成功更新租约,DHCP服务器就会回应一个DHCPACK消息给它,因此客户端就可以继续使用原来的IP地址,且会重新获取一个新租约,这个新租约的期限视当时DHCP的设置而定。在更新租约时,如果此IP地址已无法再给客户端使用的话,例如此地址已无效或已被其他计算机占用,则DHCP服务器会回应一个DHCPNAK消息给客户端。
手动更新租约与释放IP 地址
         DHCP客户端用户也可以使用 ipconfig /renew命令来更新IP租约。还可以使用 ipconfig /release命令自行将IP地址释放,此时客户端会发送给DHCP一个DHCPRELEASE消息,释放后,DHCP客户端会每隔5分钟自动去找DHCP服务器租用IP地址,或由客户端用户自行使用 ipconfig /renew命令来租用IP地址。
 
Automatic Private IP Addressing  (APIPA
         当windows客户端无法从DHCP服务器租到IP地址时,它们会自动创建一个网络号为169.254.0.0/16的专用IP地址(如下图),并使用这个IP地址来与其他计算机通信。
在客户端计算机开始使用这个IP地址之前,它会先发送一个广播消息给网络上其他计算机,以便检查是否有其他计算机已经使用了这个IP地址,若没有其他计算机回应此消息,客户端就将此IP地址分配给自己使用,佛则就继续尝试其他IP地址。使用169.254.0.0/16地址的计算机仍然会每5分钟一次来寻找DHCP服务器,以便向DHCP服务器租用IP地址,在还没有租到IP地址之前,客户端计算机仍然继续使用这个 专用 IP地址。
以上动作被成为 Automatic Private IP addressing  (APIPA ,它让客户端计算机在尚未向DHCP服务器租到IP地址之前,仍然能够有一个临时的IP地址可用,以便与同一个网络内也是使用169.254.0.0/16地址的计算机通信。
 
提示:
若客户端的IP地址是手动配置,但此IP地址已被其他计算机占用的话,此时该客户端也会分配一个169.254.0.0/16格式的IP地址给自己,让它可以与同样是使用169.254.0.0/16的计算机通信,而且若原来手动配置的IP地址有指定默认网关的话,即使现在是使用169.254.0.0/16的IP地址,它还是可以通过默认网关来与同一个网段内其他使用原网络号的计算机通信,例如原来配置的IP地址为192.168.8.1,则他还是可以与IP地址为192.168.8.X的其他计算机通信。
 
DHCP 服务器的授权
如果任何用户都可以随意安装DHCP服务器,且其所租出的IP地址是随意设置的,则当有客户端在向DHCP服务器租用IP地址时,很有可能就会由这台DHCP服务器来提供IP地址给客户端,那么客户端所得到的IP地址可能无法使用(例如它是不同网段的IP地址),这样客户端可能就无法链接网络,同时也会增加系统管理员的管理负担。
因此DHCP服务器安装好以后,并不是立刻就可以对DHCP客户端提供服务,它还必须经过一个 授权(authorized)的程序,未经授权的DHCP服务器不会将IP地址租出给客户端。
 
DHCP 服务器授权的原理与注意事项:
1:必须在AD          DS域 (Active Directory Domain Services)的环境中,DHCP服务器才可以被授权。
2:在AD DS域中的DHCP服务器都必须被授权。
3:只有Enterprise Admins组内的成员才有权限执行授权操作。
4:已被授权的DHCP服务器的IP地址会被注册到域控制器的Active Directory数据库内。
5:DHCP服务器启动时会通过Active Directory数据库,来查询其IP地址是否注册在DHCP服务器授权列表,若已注册的话,该服务器的DHCP服务就可以正常启动,并对DHCP客户端提供租出IP地址的服务
6:不是域成员的DHCP独立服务器无法被授权,此服务器的DHCP服务是否可以正常启动并对DHCP客户端提供租出IP地址的服务,还得看同一个子网内是否存在任意一台已被授权的DHCP服务器而定。这台DHCP独立服务器在启动DHCP服务时,会发出DHCPINFORM(DHCP information message)广播数据包 然后:
如果它收到由被授权的DHCP服务器所挥发的DHCPACK数据包的话,表示此子网内已经有已被授权的DHCP服务器,此时它就不会启动DHCP服务,也不会租出IP地址给DHCP客户端。
如果它没有收到DHCPACK数据包、或是收到非域成员的DHCP服务器所回传的DHCPACK数据包的话,表示此子网内没有已被授权的DHCP服务器,此时它就可以正常启动DHCP服务,并且可以租出IP地址给DHCP客户端。
 
注意:
在AD DS域环境下,建议第一台DHCP服务器最好是成员服务器或域控制器,因为如果第一台是独立服务器的话,则一旦以后在域成员计算机上安装DHCP服务,将其授权、并且这台服务器是在同一个子网内,则独立服务器的DHCP服务将无法再启动。
若尚未创建AD DS域的话,可运行dcpromo.exe来创建....
 
只有windows server 2008 R2、windows server 2008、windows server 2003 R2、windows server 2003 与 windows 2000 server的DHCP服务器可以被授权。Windows NT4.0或更旧的DHCP服务器、其他供应商所开发的DHCP服务器无法被授权......









本文转自 lgpqdwjh 51CTO博客,原文链接:http://blog.51cto.com/itchenyi/1113723,如需转载请自行联系原作者
目录
相关文章
|
网络协议 Windows
网络协议与攻击模拟-11-DHCP协议原理
网络协议与攻击模拟-11-DHCP协议原理
67 0
|
5月前
|
网络协议 Linux Windows
DHCP服务器原理
DHCP服务器原理
65 0
|
网络协议 网络虚拟化 网络架构
【网络】· 路由器中配置单臂路由和DHCP,VTP原理
【网络】· 路由器中配置单臂路由和DHCP,VTP原理
183 0
|
缓存 网络协议 网络虚拟化
路由基础:三层交换机、单臂路由的特点以及配置特点、DHCP报文类型、DHCP工作原理、在路由器上配置DHCP、在交换机上配置DHCP、配置DNS服务器
三层交换机、单臂路由的特点以及配置特点、DHCP报文类型、DHCP工作原理、在路由器上配置DHCP、在交换机上配置DHCP、配置DNS服务器
路由基础:三层交换机、单臂路由的特点以及配置特点、DHCP报文类型、DHCP工作原理、在路由器上配置DHCP、在交换机上配置DHCP、配置DNS服务器
|
网络协议 Windows
路由交换基础——DHCP工作原理及DHCP Relay
路由交换基础——DHCP工作原理及DHCP Relay
460 0
路由交换基础——DHCP工作原理及DHCP Relay
|
网络虚拟化
DHCP协议工作原理(分配IP地址的方式)
DHCP工作在应用层,使用UDP协议工作,负责给局域网内的用户分配IP地址 分配IP地址的方式有三种:手动配置,自动配置,动
420 0
|
网络虚拟化 网络架构 Windows