什么是DHCP

DHCP(动态主机配置协议)是从BOOTP协议发展而来的用于自动分配客户端计算机IP地址的一种标准协议,在RFC 2131中进行定义。

Windows服务器操作系统中,均包含DHCP服务器组件。

默认情况下,基于Windows系统的客户端的网络配置是:

自动获得IP地址

Windows系统的客户端的网络配置方法:2种

手动配置----静态

自动配置----动态----需要DHCP服务器的支持

DHCP服务器使用租约的形式将IP地址分配给客户端计算机使用

DHCP协议通讯使用端口UDP 67(服务器端)和UDP 68(客户端)进行通讯,并且大部分DHCP协议通讯使用广播进行。

使用DHCP的理由—DHCP的优点

减小管理员的工作量;

减小输入错误的可能;

避免IP地址冲突;

当网络更改IP地址段时,不需要重新配置每台计算机的IP地址;

计算机移动不必重新配置IP地址;

提高了IP地址的利用率;

DHCP工作原理

客户机请求IP租约; DHCPDISCOVER

服务器响应; DHCPOFFER

客户机选择IP地址; DHCPREQUEST

服务器确认IP租约; DHCPACK

DHCPDISCOVER

DHCP客户端处于以下三种情况下,将发送DHCPDISCOVER广播消息:

1、进行TCP/IP协议的初始化时;

2、DHCP客户端请求某个IP地址被DHCP服务器拒绝,通常发生在已获得租约的DHCP客户端连接到不同的网络中;

3、DHCP客户端释放已有租约并请求新的租约;

DHCP客户端发起DHCPDISCOVER广播消息

使用0.0.0.0作为源IP地址,然后广播地址255.255.255.255作为目的地址;

请求数据包中同样会包含客户端的MAC地址和计算机名

如果没有DHCP服务器响应DHCP客户端的请求,DHCP客户端在第1秒、2秒、4秒、8秒、16秒的时间间隔重新广播,如果仍然没有DHCP服务器响应,则客户端会采用保留的自动私有IP地址暂时作为自己的IP地址,同时每隔5分钟继续尝试发送DHCPDISCOVER广播消息,寻找DHCP服务器;

APIPA,Automatic Private IP Addressing 自动私有IP地址,是169.254.0.0/16中的一个;

DHCPOFFER

DHCPOFFER广播消息:

源IP地址为DHCP服务器的IP地址,目的IP地址为255.255.255.255

DHCPOFFER广播消息包含以下内容:

n 客户端MAC地址;

n DHCP服务器提供的客户端IP地址;

n DHCP服务器的IP地址;

n DHCP服务器提供的客户端子网掩码;

n 其他作用域选项,例如DNS服务器、网关、WINS服务器等;

n 租约期限等;

如果有多个DHCP服务器给予此DHCP客户端回复DHCPOFFER消息,则DHCP客户端接受它接收到的第一个DHCPOFFER消息中的IP地址。

DHCPREQUEST

DHCPREQUEST广播消息中包含了

n DHCP客户端的MAC地址;

n 接受的租约中的IP地址;

n 提供此租约的DHCP服务器地址等;

此时由于没有得到DHCP服务器最后确认,DHCP客户端仍然不能使用租约中提供的IP地址,所以在数据包中仍然使用0.0.0.0作为源IP地址,广播地址255.255.255.255作为目的地址;

DHCPACK

DHCP服务器在接收到DHCP客户端发起的DHCPREQUEST广播消息后,会发送DHCPACK广播消息进行最后的确认,在这个消息中同样包含了租约期限及其他TCP/IP选项信息。

如果DHCP客户端的操作系统为Windows 2000及其后版本,当DHCP客户端接收到DHCPACK广播消息后,会向网络发出三个针对此IP地址的ARP解析请求以执行冲突检测,确认网络上没有其他主机使用DHCP服务器提供的IP地址,从而避免IP地址冲突。如果发现该IP已经被其他主机所使用(有其他主机应答此ARP解析请求),则DHCP客户端则会广播发送(因为它仍然没有有效的IP地址)DHCPDECLINE消息给DHCP服务器拒绝此IP地址租约,然后重新发起DHCP DISCOVER进程。此时,在DHCP服务器管理控制台中,会显示此IP地址为BAD_ADDRESS。

如果没有其他主机使用此IP地址,则DHCP客户端的TCP/IP使用租约中提供的IP地址完成初始化,从而可以和其他网络中的主机进行通讯。至于其他TCP/IP选项,如DNS服务器和WINS服务器等

租约

DHCP服务器将IP地址提供给DHCP客户端时,会包含租约的有效期,默认租约期限为8天(691200秒)

续约

除了租约期限外,还具有两个时间值T1和T2,其中T1定义为租约期限的一半50%,默认情况下是四天(345600秒),而T2定义为租约期限的的7/8 87.5%,默认情况下为7天(604800秒)

当客户机重新启动或租期达50%时,就需要重新更新租约,客户机直接向提供租约的DHCP服务器发送DHCPREQUEST消息包,要求更新现有的地址租约;

如果客户机无法与提供租约的服务器取得联系,则客户机一直等到租期到达87.5%时,进入重新申请状态,DHCP客户机向网络中所有的DHCP服务器广播DHCPDISCOVER消息包以更新现有的地址租约;

授权

为了防止非法的DHCP服务器为客户端计算机提供不正确的IP地址配置,只有在活动目录中进行过授权的DHCP服务器才能提供服务;

两种方式来对DHCP服务器进行授权,需要具有Enterprise Admins权限:

1、在对应的DHCP服务器的管理控制台中右击服务器名然后选择授权;

2、在任何一台DHCP服务器的管理控制台中,右击DHCP,然后选择管理授权的服务器;

需要注意的是,如果子网中同时具有属于域和不属于域的DHCP服务器,只有在属于域的DHCP服务器被授权启动后再启动不属于域的DHCP服务器时,不属于域的DHCP服务器才会停止服务;否则不属于域的DHCP服务器同样会正常工作。

IP租约更新/释放

Ipconfig /all

Ipconfig /renew

Ipconfig /release

DHCP作用域

DHCP作用域是本地逻辑子网中可以使用的IP地址的集合

DHCP服务器只是分配匹配自己接收到DHCP客户端租约请求的网络接口网络ID的IP地址租约给DHCP客户,从而DHCP客户可以直接和DHCP服务器进行通讯。

DHCP作用域定义的IP地址范围是连续的,并且每个子网只能有一个作用域。如果你想要使用单个子网内的不连续的IP地址范围,则必须先定义作用域,然后设置所需的排除范围。

为了实现更好的实现容错和负载平衡,在规划DHCP作用域包含的IP地址时,通常采用“80/20”规则;

每一个作用域具有以下属性:

----可以租用给DHCP客户端的IP地址范围;可在其中设置排除选项,设置为排除的IP地址将不分配给DHCP客户端使用;

----子网掩码,用于确定给定IP地址的子网;此选项创建作用域后无法修改;

----创建作用域时指定的名称;

----租约期限值,分配给DHCP客户端;

----DHCP作用域选项,如DNS服务器、路由器IP地址和WINS服务器地址等等;

----保留(可选),用于确保某个确定MAC地址的DHCP客户端总是能从此DHCP服务器获得相同的IP地址。

分配给DHCP客户端的地址范围=作用域IP地址范围-排除的IP地址范围

在创建作用域后,还可以修改起止IP地址范围,但是不能再修改子网掩码长度;

更短的租约期限有利于IP地址租约的回收,以便为其他客户服务,但是会导致网络中产生更多的DHCP流量;

如果你的网络客户流动性较小,你可以设置相对较长的租约期限;如果网络客户流动性较强,则可以设置较短的租约期限;

默认的设置8天;

超级作用域

是由多个DHCP作用域组成的作用域,单个DHCP作用域只能包含一个固定的子网,而超级作用域可以包含多个DHCP作用域,从而包含多个子网;

超级作用域主要用于解决以下问题:

----当前单个DHCP作用域中的可用地址几乎耗尽,而且网络中将添加更多的计算机,需要添加额外的IP网络地址范围来扩展同一物理网段的地址空间;

----DHCP客户端必须迁移到新作用域,例如重新规划IP网络编号,从现有的活动作用域中使用的地址范围迁移到使用另一IP网络地址范围的新作用域;

----希望使用两个DHCP服务器在同一物理网段上管理分离的逻辑IP网络;

当创建好超级作用域后,你可以将其他不属于超级作用域的DHCP作用域添加到超级作用域中;

或者将作用域从超级作用域中删除,此删除操作仅将DHCP作用域从超级作用域中独立出来,而不是真正的删除;

而删除超级作用域是将此超级作用域删除,它所包含的所有DHCP作用域都将独立出来;

保留

通过使用保留,你可以为某个特定MAC地址的DHCP客户端保留一个特定的IP地址,此时保留的IP地址将不会用于为其他DHCP客户端进行分配;

保留只是为DHCP客户端计算机服务,在可能的情况下,应尽可能的考虑使用静态IP地址而不是使用保留;

你可以为作用域地址范围中的任何IP地址创建保留,即使该IP地址属于排除范围;

分配选项

DHCP选项定义了除了IP地址和子网掩码外,DHCP服务器分配DHCP客户端的其他TCP/IP选项。网关地址、DNS服务器、WINS服务器等等只是常见的几种DHCP选项,在Windows的DHCP服务器中自带了70多种DHCP选项,除此之外,你还可以自定义分配给DHCP客户的DHCP选项。在DHCP服务器中,你可以在以下五个不同的级别管理DHCP选项:

----预定义选项,配置方法为在DHCP服务器管理控制台中右击DHCP服务器名,然后选择设置预定义的选项。在这一级,你只能定义DHCP服务器中的DHCP选项,从而让它们可以作为可用选项显示在任何一个通过DHCP控制台提供的选项配置对话框(如“服务器选项”、“作用域选项”或“保留选项”)中。你可以根据需要将选项添加到标准选项预定义列表或从该列表中删除选项,但是预定义选项只是让DHCP选项可以进行配置,而是否配置则必须根据选项配置来决定;

----类别选项,在使用任何选项配置对话框(“服务器选项”、“作用域选项”或“保留选项”)时,均可单击高级标签来配置和启用标识为指定用户或供应商类别的成员客户端的指派选项,只有那些标识自己属于此类别的DHCP客户端才能分配到你为此类别明确配置的选项,否则为其使用常规标签中的定义。类别选项比常规选项具有更高的优先权,可以覆盖相同级别选项(“服务器选项”、“作用域选项”或“保留选项”)中常规选项中指派和设置的值;

----服务器选项,配置方法为在DHCP服务器管理控制台中展开DHCP服务器,右击服务器选项,选择配置选项。服务器选项中的配置将应用到DHCP服务器中的所有作用域和客户端,不过服务器选项可以被作用域选项或保留选项所覆盖;

----作用域选项,配置方法为在DHCP服务器管理控制台中展开对应的DHCP作用域,右击作用域选项,选择配置选项。作用域选项中的配置应用到对应DHCP作用域中的所有DHCP客户端,不过作用域选项可以被保留选项所覆盖;

----保留选项,配置方法为在DHCP服务器管理控制台中展开对应DHCP作用域中的保留,右击对应的保留项,选择配置选项。保留选项仅为作用域中使用保留地址配置的单个DHCP客户端而设置;

常用的DHCP选项有:

003 路由器的IP地址

006 DNS服务器的IP地址

015 DNS域名

044 WINS服务器的IP地址

046 NetBIOS名称解析的类型

作用域选项优先于服务器选项;

DHCP客户端手动设置>保留选项>作用域选项>服务器选项

Ipconfig /showclassid 本地连接 类别名

Ipconfig /setclassid 本地连接

动态更新

当DHCP客户端从DHCP服务器获得IP地址租约时,DHCP服务器可以根据DHCP客户端的请求使用它所在区域中的授权DNS服务器对DHCP客户端信息进行动态更新。

DHCP作用域中的设置覆盖DHCP服务器中的设置;

在创建DHCP作用域时,DHCP作用域的动态更新设置将继承DHCP服务器中的设置;

冲突检测

DHCP工作方式的DHCP ACK部分中曾经提到,Windows 2000及其后版本的DHCP客户端接收到DHCP服务器发送的DHCP ACK广播消息后,会向网络发出三个针对DHCP服务器提供的IP地址的ARP解析请求以执行冲突检测,以确认网络上没有其他主机使用DHCP服务器提供的IP地址,从而避免IP地址冲突;

冲突检测次数栏输入你需要DHCP服务器进行冲突检测的次数,默认为0,即为不进行冲突检测;

强烈建议你设置不超过三次的冲突检测次数

过多的检测次数会增加DHCP服务器应答DHCP客户端租约请求的时延;

如果在DHCP客户端和DHCP服务器不属于相同的网络,那么必须具备以下两个条件之一,才能让DHCP客户端和路由器正常进行通讯:

----DHCP客户端网络上部署有DHCP中继代理,并且配置为转发DHCP消息到DHCP服务器;

-----两个网络间的路由器兼容RFC 1542(支持BOOTP/DHCP转发)。

无论上述哪种方式,DHCP中继代理或兼容RFC 1542的路由器在转发DHCP客户端的租约请求时,都会修改转发的DHCP请求数据包中的Gateway字段,将其设置为自己接收到DHCP客户端租约请求的网络接口的IP地址,而DHCP服务器则使用此Gateway字段来决定分配IP地址租约的DHCP作用域。