以為我愛著孤獨,以為自己不會迷路,以為自己跟自己,再不用誰照顧! 時間是個無賴 讓我太遲 讓你太快

 

 

概述

对公司计算机网络内的客户机逐一进行人工地址分配,是一件出力不讨好的事情,幸运的是,网管们有一个工具来帮助自己,那就是DHCP,全称Dynamic Host Configuration Protocol,即动态主机配置协议,名为协议,实质是由基于微软windows2000 server以上版本提供的一种网络服务,该服务将分配地址的任务在正确初始化的前提下,由交给DHCP服务器自动完成,所有的客户机均能在后台动态的自动获得正确的IP地址及相关地址信息,比如子网掩码、网关地址、DNS地址等。

当然该服务并非微软独家提供,而且也不是尽善尽美,但鉴于微软操作系统的覆盖面实在太大,以下我们均以微软网络环境来讨论这个问题,并且重点谈机制,具体操作从略,并假定网络一切正常。

工作原理

DHCP的地址分配的方式是以租约形式来实现的。在一个已配置好的DHCP环境下,DHCP客户机绑定的TCP/IP协议中IPDNS均应设置为自动获取地址方式。

DHCP服务器为客户自动分配地址的过程很有趣,就象一个主题鲜明的四集连续剧:

1、请求

当客户机登陆一个网络时,该客户机的TCP/IP协议会向所在的子网发送(广播)一个名为DHCPDISCOVERMESSAGE,即消息包,其中包含了该客户机的MAC地址(Media Access Control,媒体访问控制,通称网卡硬件地址)和该客户机的计算机名,以便让DHCP服务器识别。这一过程被称为IP租约请求(IP Lease Request),也就是客户机向未知的DHCP服务器请求一个IP地址。类似于广场上对大家伸出双手的乞讨者一样。

至于DHCP服务器本身的地址问题在后面会提到。

2、提供

这个时候,某个可用的DHCP服务器就会收到这个租约请求,或叫地址请求,如果该DHCP有足够的地址储备,并且能确认该IP地址对于该客户机所在的网段是一个合法的地址,那么这个DHCP服务器就会对这个请求发出一个名为DHCPOFFERMESSAGE,其中包含了该客户机的MAC地址、提供的IP、子网掩码、租期和提供该DHCP服务的服务器(Offering DHCP Server)地址。

这一个过程被称为提供IP租约(IP Lease Offer)。

这就等同于一个有钱人站出来,为乞讨者拿出了一块金币,但是要注意:乞讨者此时还没有接受这块金币!。

有一个细节必须说明,如果DHCP服务器恰好宕机,无法提供IP,并且没有其它可用的DHCP服务器,而客户机又是自动获地址的方式,会发生什么情况?根据微软的资料,客户机首先会用1秒钟的时间等待提供地址,未果,将会分别间隔24816秒钟,再加上一个从01000毫秒的随机时间长度,再次将该地址请求广播四次,如果确实没有善人出现,则自动从微软保留的地址范围169.254.0.1169.254.255.254中采用一个未广播的地址供自己使用(使用这一网段的客户机之间可以互相通信),然后再不屈不挠的每隔5分钟向网络继续发出地址请求,直到发现善人为止。

3、选择

这时有一个问题,很可能有几个有钱人同时为这个乞讨者提供了金币。即能够提供IP地址的DHCP服务器不只一个,但是客户机只能接受收到的第一个消息包(地址),并立即向网络广播一个名为DHCPREQUESTMESSAGE作为响应,表示已接受了某一个DHCP服务器提供的IP,其中包括发出IP提供消息并且已被接受的DHCP服务器的IP地址,这样,其它的有钱人在得到这个消息以后就会收回他们的OFFER,并准备随时向下一个出现的乞讨者施舍。

这就是第三步,客户机选择IP租约(IP Lease selection)。

4、确认

最后是皆大欢喜,发出OFFER并被客户机接受的DHCP服务器将向网络广播一个名为DHCP确认(DHCPACK)的MESSAGE,其中包含针对所提供IP地址的合法租约及其配置信息。籍此向全网人民宣布它又做了一件善事。

客户机在收到这一确认消息后,本身的TCP/IP协议就会在后台利用这些信息开始一系列的IP初始化工作。

这一步叫确认IP租约(IP Lease Acknowledgement)。

初始化与应用

开始提到,上面所做的一切都是在DHCP服务器初始化正确的前提下进行的,现在就来讨论这个初始化的过程。

第一,正如能向别人施舍的人首先自己不能是个穷光蛋的道理一样,能提供IP地址的DHCP服务器本身必须要有固定地址,而且还要包括相应的正确配置,比如子网掩码、DNS和网关。这一要求隐含了一个重要含义,即DHCP服务器本身不能同时是一个DHCP客户机。

第二,必须是能够提供DHCP服务的服务器,在微软中,一般是指基于WINDOWS2000 SERVER版本以上的服务器。

WINDOWS2000 Professional是微软WINDOWS网络的客户端,不能提供任何网络服务,只能作为DHCP客户机。理论上说,几乎所有的绑定了TCP/IPOS都可以做为DHCP的客户机,包括WINDOWS2000 SERVER和许多非WINDOWS的操作系统,甚至在MSDOS下也行,条件是必须预装微软网络Client V3 for MSDOS并且采用实模式的TCP/IP

不能作为DHCP客户机的有早期的Windows3.1Windows3.2,还有更早的微软LAN Manager 2.2c for OS/2以下的机子,这种恐怕大多数网管只有博物馆中才看得到了。

第三,已规划好的待分配IP地址池(后面提到)。

是不是我们安装并配置好了地址池后,马上就可以使用了呢?答案是否定的,因为还有两个关键步骤没有完成:

1、必须先为DHCP服务器授权,使之合法化。这样可以防止未授权的DHCP服务器向客户机提供非法IP地址,其原理是:当一个已授权的DHCP服务器在启动的时候,会在所属在的域中寻找域控制器的活动目录,这个目录中记录了被授权可以提供DHCP服务的服务器列表,如果DHCP发现自身在名单内,那么才会正确启动该服务,否则,该DHCP会放弃一切客户机的地址请求,也就是说,有钱人在没有取得施舍许可证的时候也是不能上岗的。

2、已规划好的待分配的IP地址池,又称作用范围(Scope),必须有一个被激活(Activace)的操作,否则,地址池将没有任何作用。

DHCP服务器的功能归根结底只有一个,那就是为网内的客户机提供IP地址和相关配置。

DHCP服务器上创建作用域(scope)的意义在于,我们既可以为不特定的客户机配置scope,使之每次启动的时候,获得的IP都不一样,也可以为某一特定的客户机请求永久性的IP地址,称为客户机预约(client reservations),最典型的就是DNS服务器,一般一个网段中的DNS都是固定的,而所有客户机的DNS地址都应该指向它。

这一个特点尤其适合于一些网络规模较小的企业,通过DHCP为二三十台服务器分配固定的IP 地址后,将会大大的方便局域网的管理和维护,降低网管的工作强度。

前面提到,DHCP分配的IP 地址是以租约方式实现的,所以还涉及到一个租约更新问题。默认的情况下,DHCP为客户机提供的IP地址的租期是八天,客户机自取得IP地址的时间起至租期的一半即第四天的时候,TCP/IP会自动向DHCP提出更新,以获取最新的配置,先前提供该IP配置的DHCP服务器会立即响应,向该客户机提供新的租期和最新的网络配置,如果此时的DHCP宕机,则客户机继续使用当前参数。但当该租期过去了87.5%的时候,客户机就会重新演出上面的好戏,接受网络上任何可用DHCP服务器发出的租约。当然,如果一个可用的DHCP发现客户机请求的是一个非法的或重复的IP 地址时,该DHCP将会以一个DHCP拒绝消息(DHCPNAK)作为回应,迫使该客户机释放它的IP地址,并重新获取一个新的、合法的地址。

IP地址及其租期都是一种资源,如合理利用就会降低管理成本,而滥用就会带来很多麻烦。比如当你定制一个很短的租期的时候,带来的可能是很大的网络流量,因为不断的有客户机网络上在提出租期更新,DHCP也在不断为之发出确认,会带来很多不可预测的后果;反之,给出一个无限的租期,又可能会造成资源的浪费,因为有的客户机租期到了以后也许无法得到新的地址。网管们要注意这一点。

排除故障

我们应该养成随时查看系统日志的良好习惯,该日志中记录了重要的错误细节,供网管监测。DHCP数据库位于systemroot\system32\dhcp中,如果该数据遭遇破坏,可用Jetpack命令行工具加以解决(过程略)。

如果成功启动了DHCP服务器,但是客户机并没有获得IP,会是哪些原因造成的呢?请考虑如下几个方面:

可能的问题:

1DHCP 服务器是否已获得授权?Scope 是否已激活?地址池是否已经分完?DHCP 服务器的网络ID和可用的Scope的网络ID是否在同一个网段内?

2、客户机与DHCP服务器是否位于同一个网段?并且客户机所在的网段中没有配置DHCP中继代理或两个网段之间的路由器不支持RFC-1542标准?

3、客户端的DHCP Client服务是否启动?客户端的TCP/IP属性配置是否为自动获取IP地址选项?

4、客户端与服务器的网络连接是否有物理故障?

解决办法:

1、停止DHCP服务,重新为网内设置合适的、足够的Scope,并确定所分配的IP池与该DHCP服务器在同一网段内。重新启动DHCP服务器并授权;

2、如果客户机与DHCP服务器未在同一网段,且路由器是非RFC兼容的路由器,那么该Router将不支持DHCP广播流量。办法有二:首先在DHCP服务器上建一个DHCP客户机所在网段的作用域,然后在该客机所在网段配置一台DHCP中继代理,该代理通过路由和远程访问服务来建立,具体过程请朋友们参考有关资料。

3、在客户端通过查看开始→程序→管理工具→服务,检查DHCP client服务是否启动,如果已停止,手工将其启动,这是一个系统服务,默认为随系统自动启动。

TCP/IP属性配置IP设置项中,点选自动获取IP地址及DNS地址选项。然后使用命令行工具,执行释放(ipconfig /release)、重新获取IP操作(ipconfig/renew),尝试重新连接DHCP服务器并获取IP地址。

4、网络物理故障不属本文讨论范围,从略。

限于篇幅,以上只是粗略的介绍了DHCP之冰山一角,还有DHCPDNS集成的问题、委派管理、创建特定的用户类等问题,这里都没有提到。希望广大网管朋友在工作中不断探索,让我们共同交流,共同进步,更好的为网管工作服务。

   

posted on 2005-11-16 16:36 曲洋 阅读(152) 评论(0)  编辑  收藏 所属分类: 曾经发表过的技术文章
<2024年11月>
272829303112
3456789
10111213141516
17181920212223
24252627282930
1234567

相对无言,落花流水
不期而至,清风故人

留言簿(6)

随笔分类(43)

文章分类(92)

相册

最新随笔

搜索

  •  

最新评论

阅读排行榜

幸福的人一生被童年治愈,不幸的人一生都在治愈童年