基于DHCP的网络IP地址管理
2009-08-19邬平杰
邬平杰
摘要:计算机IP地址管理和维护是网络管理中很重要的一项工作,手工设置会使得网络管理员工作繁重且容易造成IP冲突,使得网络的灵活性、扩展性变差。基于DHCP的IP地址管理则是一种高效的IP分配方式。本文主要介绍了DHCP服务的原理,以及在Windows Server 2003中的具体配置和一些管理方法。
关键词:DHCP;IP地址;Windows Server 2003
1引言。在小型网络中,因为计算机数量不多,网络管理员一般采用手工分配IP地址的方法为每台计算机分配静态IP地址,而到了中、大型网络,计算机的数量往往会有几十台,甚至上百上千台,这种方法就不太适用了。如果采用静态IP地址分配方法,还会给网络管理和使用者带来很多不便,每到一个地方想上网必须先配置计算机网络参数(IP地址、子网掩码、网关、DNS),这样容易发生IP地址冲突等问题,造成机器不能正常使用。因此,我们需要寻求一种高效可靠的IP地址管理方式,于是就出现了DHCP。DHCP是Dynamic Host Configuration Protocol的缩写,也叫动态主机配置协议。DHCP是TCP/IP通信协议中,用来暂时指定网络中某台计算机IP地址的通信协议。DHCP技术的设计目的就是动态、灵活地使用IP地址,降低TCP/IP网络管理的复杂性,它是一个Client/Server协议。
2 DHCP的工作原理
要在一个网络中使用DHCP来分配和管理IP地址,必须在网络中部署一台拥有静态IP地址的DHCP服务器,而网络中其他计算机则是DHCP客户端。DHCP服务器负责客户端IP地址的集中管理和分配,IP地址数据库存放在服务器上,客户端向DHCP服务器申请和租用IP地址,DHCP服务器可以动态地为客户端自动分配IP地址,也可为特定客户端分配永久IP地址。运行Windows Sever系列和Linux,Unix等操作系统的计算机都可以作为DHCP服务器。客户端启用DHCP功能后会搜索网络中的DHCP服务器,并申请从DHCP服务器中获得IP地址。所有的安装有TCP/IP协议的计算机(包括Windows系列和Linux,Unix等)都带有DHCP客户端软件协议,都可以作为DHCP的客户端。
DHCP的工作过程主要分为以下六个阶段:
发现阶段,即DHCP客户端寻找DHCP服务器的阶段。DHCP客户端首先以广播方式发送DHCP DISCOVER发现信息来寻找DHCP服务器(因为DHCP服务器的IP地址对于客户端来说是未知的),即客户端向地址255.255.255.255发送特定的广播信息。请求信息主要包含客户端的网卡MAC地址还有客户端的计算机名称。网络上每一台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应。
提供阶段,即DHCP服务器提供IP地址的阶段。在网络中接收到DHCP DISCOVER发现信息的DHCP服务器都会做出响应,它从尚未出租的IP地址中挑选一个分配给DHCP客户端,向DHCP客户端发送一个包含出租的IP地址和其他设置的DHCP OFFER提供信息。
选择阶段,即DHCP客户端选择某台DHCP服务器提供的IP地址的阶段。如果网络中有多台DHCP服务器向DHCP客户端发来的DHCP OFFER提供信息,则DHCP客户端只接受第一个收到的DHCP OFFER提供信息。在客户端收到DHCP OFFER提供信息后,会以广播方式回答一个DHCP REQUEST请求信息,所有的DHCP服务器都会收到这个信息,该信息中包含它所选定的DHCP服务器和服务器提供的IP地址。之所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址,其他没有被选择的DHCP服务器则会收回发出的IP地址。
确认阶段,即DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户端回答的DHCP REQUEST请求信息之后,它便向DHCP客户端发送一个包含它所提供的IP地址和其他设置的DHCP ACK确认信息,告诉DHCP客户端可以使用它所提供的IP地址。至此DHCP客户端可以使用DHCP服务器所提供的IP地址与网卡绑定。
重新登录阶段。以后DHCP客户端每次重新登录网络时,就不需要再发送DHCP DISCOVER发现信息了,而是直接发送包含前一次所分配的IP地址的DHCP REQUEST请求信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户端继续使用原来的IP地址,并回答一个DHCP ACK确认信息。如果此IP地址已无法再分配给原来的DHCP客户端使用时(比如此IP地址已分配给其它DHCP客户端使用),则DHCP服务器给DHCP客户端回答一个DHCP NACK否认信息。当原来的DHCP客户端收到此DHCP NACK否认信息后,它就必须重新发送DHCP DISCOVER发现信息来请求新的IP地址。
更新租约阶段。DHCP服务器所提供的IP地址一般都是有期限的,我们把这个期限称为租期,租期的长短通过DHCP服务器来设置。设置这个期限是为了让那些过了租期又不活动的IP能空出来,由DHCP服务器重新分配给DHCP客户端,这样就会有效减少IP地址的浪费现象。期满后DHCP服务器便会收回出租的IP地址。如果DHCP客户端要延长其IP租约,则必须更新其IP租约。DHCP客户端启动时和IP租约期限过一半时,DHCP客户端都会自动向DHCP服务器发送更新其IP租约的信息。
如果DHCP客户端一直开启,客户端会在租约过去50%的时候向原DHCP服务器提出DHCP REQUEST请求信息,信息中包含一个客户端正使用的IP地址,并请求服务机延长对此地址的租用。如果原服务器同意会发出DHCP ACK确认信息。这样,续租成功,客户端获得新的租约。如果这个请求信息没有得到回复,因为租约尚未结束,DHCP客户端会继续使用原来的IP,并且每隔大约2分钟向原DHCP服务器再次发送DHCP REQUEST请求信息申请续租。如果到了租约期限的87.5%,DHCP客户端依然没有收到原DHCP服务器的DHCP ACK确认信息,则客户端转为重新绑定状态。在重新绑定状态下,DHCP客户端会以广播的方式向网络中的所有服务器发送DHCP REQUEST请求信息,如果有DHCP服务器响应,并发回DHCP ACK确认信息则DHCP客户端从新的DHCP服务器获得新的IP地址还有新的租约。如果直到租约结束也没有收到任何DHCP服务器的DHCP ACK确认信息,则DHCP客户端会停用租来的IP地址,然后返回初始化状态。
3 DHCP的优缺点
使用DHCP为管理基于TCP/IP的网络主要提供了以下好处:
提供安全而可靠的配置。DHCP避免了由于需要手动在每个计算机上键入值而引起的配置错误。DHCP还有助于防止由于在网络上配置新的计算机时重用以前指派的IP地址而引起的地址冲突。
可以减少配置管理。使用DHCP服务器可以大大降低用于配置和重新配置网上计算机的时间。可以配置服务器以便在指派地址租约时提供其他配置值的全部范围。这些值是使用DHCP选项指派的。
DHCP租约续订过程还有助于确保客户端计算机配置需要经常更新的情况(如使用移动或便携式计算机频繁更改位置的用户),通过客户端计算机直接与DHCP服务器通讯可以高效、自动地进行这些更改。
IP地址采用租用方式,需要时向DHCP服务器申请IP,用完后释放,使IP地址可以再利用。
DHCP服务器数据库是一个动态数据库,向客户端提供租约或释放租约时会自动更新,降低了管理IP地址的难度,所有DHCP客户的设置和变更都由客户端和服务器自动完成,不需人工干涉。
同时DHCP也存在不少缺点:
DHCP不能发现网络上非DHCP客户端已经在使用的IP地址。
DHCP服务器对于用户的接入没有限制,任何一台电脑只要连接到网络上,就能够通过DHCP服务器获得正确的网络配置,从而访问网络。这样使得非法的用户很容易进入内部网络,带来安全隐患。
当网络上存在多个DHCP服务器时,尤其是存在私设的冒充DHCP服务器时,一个DHCP服务器不能查出已被其它服务器租出去的IP地址,这样将会给网络造成混乱。
DHCP服务器不能跨路由器与客户端通信,除非路由器允许BOOTP转发。
4 DHCP服务器的安装配置和管理
下面主要介绍如何在Windows Server 2003中进行DHCP服务器的安装配置和一些管理技巧。
4.1 安装
我们采用一台安装有Windows Server 2003操作系统的计算机作为DHCP服务器,并在该计算机安装TCP/IP协议,并为其设置静态IP地址、子网掩码、默认网关等内容。在Windows Server 2003系统中默认没有安装DHCP服务,必须进行添加安装:
在“控制面板”中双击“添加或删除程序”图标,在打开的窗口左侧单击“添加/删除Windows组件”按钮,打开“Windows组件向导”对话框。
在“组件”列表中找到并勾选“网络服务”复选框,然后单击“详细信息”按钮,打开“网络服务”对话框。接着在“网络服务的子组件”列表中勾选“动态主机配置协议(DHCP)”复选框,依次单击“确定→下一步”按钮开始配置和安装DHCP服务。最后单击“完成”按钮完成安装。
4.2.配置
依次单击“开始→管理工具→DHCP”,打开“DHCP”控制台窗口。在左窗格中右击DHCP服务器名称,执行“新建作用域”命令。
按照新建作用域向导在DHCP服务中添加一个作用域。输入该作用域的名称,如:办公区;在IP地址范围一栏中,填入此作用域所管理地址范围,即动态分配的地址范围,以及子网掩码,比如要动态分配的地址段是192.168.1.1-192.168.1.254,掩码是255.255.255.0,添入后点下一步;在添加排除一栏添入要排除的地址范围(比如预留给需要固定地址的服务器使用),比如我们将192.168.1.1-192.168.1.20保留给以后扩容网使用,然后再点添加→下一步;在租约期限一栏中填入客户端从此作用域中得地址的最长的使用期限,如果超过此期限后,客户必须重新申请。比如我们假设作用域租约期限是十天。然后再点下一步;为此作用域配置网关,DNS,WINS等作为公共选项,当客户端自动获得一个IP地址的时候,他也就被定了这些选项。比如我们在路由器(默认网关)一栏指定IP地址的网关是192.168.1.254.;在DNS服务器一栏中指定服务器IP地址是202.96.96.68;这样一旦客户申请到地址后,同时就被分配网关是192.168.1.254,DNS服务器是202.96.96.68等。再点击下一步;激活此作用域。其中此DHCP服务器地址是192.168.1.1;地址池地址是参加此作用域动态地址分配的范围;地址租约是已经分配出去的地址和相应的租约情况;保留是指可以根据客户端的名称和MAC地址事先预留IP地址给特殊用户。作用域选项指的是网关,DNS,WINS等选项。
可按照地址实际情况再添加多个作用域。
4.3.管理
通过批处理命令自动添加多个保留地址。保留地址可以实现给指定的计算机分配相对固定的IP地址,在必要时方便网络的管理和维护。但在DHCP控制台中逐个添加却十分麻烦且容易出错,我们可以通过命令行批量添加。
在系统命令提示符下输入如下命令,即可添加一个保留地址:
dhcp server 192.168.1.1 scope 192.168.1.0 add reservedip 192.168.1.101 00055da2e201 pc01.
其中:dhcp表示要进行dhcp配置。Server 192.168.1.1表示dhcp所在的主机。scope 192.168.1.0指定区域和区域所在的网络号。Add reservedip 192.168.1.101 00055da2e201 pc01.表示添加一个保留地址,计算机mac地址为00055da2e201,保留给他的ip地址为192.168.1.101,保留名字为pc01.。
要实现批量添加:先把对应的命令保存在一个文本文件中,如myip.txt。几台计算机就要有几行这样的命令。然后通过命令netsh exec myip.txt来执行这个文件中的命令。
实现周期性的自动备份DHCP服务器的全部配置数据。
首先可将备份命令保存在d:dhcpbak.bat文件中:
netsh dhcp server export d:dhcpbak.txt all
然后在d:mydo.bat中调用该命令,对运行情况作记录备查,具体内容如下:
@echooff
ECHO-----Running----->>d:atlog.txt
date/t >>d:atlog.txt
time/t >>d:atlog.txt
call d:dhcpbak.bat >>d:atlog.txt
time/t >>d:atlog.txt
最后利用AT命令设置定时执行任务,如要每天1:30执行一次备份任务,在系统命令提示符下输入如下命令,
AT 1:30 /every:M,T,W,Th,F,S,Su d:mydo.bat。
有了备份数据,在DHCP服务器出故障时我们就可以快速的实现恢复操作,恢复命令为:
netsh dhcp server import d:dhcpbak.txt all
需要注意的是:在利用备份数据进行恢复时,应确保当前DHCP服务器中不存在相同的作用域子网,否则将提示出错信息,如:“导入子网192.168.1.0”办公区“时出错。本地服务器上已存在此子网。”
结束语。DHCP技术目前已使用得较为普遍,它起到了提高网络性能、加强网络安全、简化网络管理的作用,也在很大程度上缓解了当前IP地址不足的问题。由于DHCP还存在许多不足,所以DHCP技术也还有很多地方需要不断的完善。
参考文献
[1]IETF.Dynamic Host Configuration Protocol(EB)RFC2131,1997.
[2]W.Richard Stevens.TCP/IP详解(卷1)协议[M].北京:机械工业出版社,2004.
[3]刘淑梅,李文俊,杨伏龙.Windows2003组网技术与应用详解[M].北京:人民邮电出版社,2006.