Linux下配置完整安全的DHCP服务器详解_第1页
Linux下配置完整安全的DHCP服务器详解_第2页
Linux下配置完整安全的DHCP服务器详解_第3页
Linux下配置完整安全的DHCP服务器详解_第4页
Linux下配置完整安全的DHCP服务器详解_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、名称 dhcpd.conf - dhcpd 配置文件描述 dhcpd.conf 文件包括ISC DHCP的dhcpd的配置信息。文件是一个普通格式的ASCII码文档, 它由内置的递归解析器解释。 dhcpd.conf文件可能会包含许多额外的tab和空格、空行,它们的目的是让文件更容易阅读。 其中的关键字对大小写不敏感。注释语句可以放在任何位置除了引号中注释语句用# 开头,这一行结束时注释语句自然结束。 文件包括一组语句,语句在一对大括号中,包含参数和声明。 参数语句说明如何做一件事例如,租期是多长时间,或者是否做一件事情。 (例如, dhcpd 是否为未知客户提供地址),或者给客户提供哪种参数

2、(例如,使用网关)。声明用来描述网络的拓扑结构、网络上的客户,提供可以为客户端分配的地址,或者对某个客户端组应用组group参数。在任何组参数中,所有的这些组参数必须比使用这些组参数的语句先出现。 网络声明包含多子网的网络有些地方译为:超网,但超网太难理解了,这里叫“多子网网络”和子网的拓扑声明。对于有地址被动态分配给客户端的子网,子网声明中必须有一个range声明语句。对于静态分配的地址,或者是已知客户的安装,每个客户端都必须使用一个host声明语句。如果一个参数应用到一组声明中,这些声明并不只与某个子网相关,可以定义一个“组参数”。 对每一个要服务的子网,每个dh

3、cp服务器连接的子网,都必须有一个子网声明,用来告诉dhcpd如何处理那个子网上的地址。即使一个子网不需要分配任何地址,也需要一个子网声明。 一些物理网络上不只有一个IP子网存在,例如,如果一个网络需要一个8位的子网,但是当业务发展使总的节点数超过了254台,就需要增加一个8位的子网。这时,就增加了一个新的物理网络,这种情况下,2个网络的子网声明必须包含在一个“多子网网络声明超级作用域”中。 有些网络的客户端不只有一个子网,可能会为同一子网中一些客户端分配的一些参数与其它的客户端不同。这样的用户可以使用host语句来定义,一些参数也可以定义在“组参数”语句中,它被这些客户端共同调用。对于需要根

4、据不同情况获得不同地址的客户端,可能会使用“类声明class declarations”和“条件声明conditional declarations”语句,这样可以根据客户端发送的信息来决定分配给客户端的参数。 当一个客户端启动时,服务器先查看是否有匹配客户端的host语句,如果没有,再看是否有匹配的“类声明class declarations”语句,接着查看是否有“池pool”匹配,“子网subnet”匹配和“多子网网络超级作用域shared-net-work”匹配。根据这些匹配,将符合这个客户端的参数提供应它。每种参数都不会被分析第2次,如果它们出现了2次或2次以上,那么会使用那个最精确出

5、现的地方。dhcpd首先查找客户端是否有包含固定IP地址的host语句,这个地址要在客户端启动的那个子网中,或者“多子网网络”中,如果没有对应的host语句匹配,那就查找非固定地址的声明。例如: 一个典型的dhcpd.conf 文件将会象下面这样: global parameters. subnet netmask 24 subnet-specific parameters. range 0 0; subnet 2 netmask 24

6、subnet-specific parameters. range 2 2; subnet 4 netmask 24 subnet-specific parameters. range 4 4; group group-specific parameters. host host-specific parameters. host host-specific par

7、ameters. host host-specific parameters. 图 1 注意文件的开始,它是全局参数放置的地方,可能会是: 组织的域名,DNS服务器的地址如果这个服务器对整个网络都是一样的和其它一些。比方: option domain-name ; option domain-name-servers , ; 图 2 如图2中所示,可以使用DNS服务器的名称而不使用它的IP地址,如果指定不只一个DNS服务器地址,那么只要有可能,所有地址都会提供应客户端。 每个子网都要指明的最可能必须

8、的参数是router,如图1所示。因此对于第一个子网,它就应该是这个样子的 option routers ; 注意这里的地址是数字形式的,如果每个网关都有域名,这就不是必须的,使用域名也是合法的。然而,很多情况下,多个网关只有一个域名,这样就不能使用域名了。 在图1中,有一个group 语句,它为一组host语句zappo,beppo和harpo提供了通用的参数。如你所见,这些主机都在这个域里,这样它在“组参数”中指明就会覆盖全局设置的参数: option domain-name ; 而且,指明它们的域,可能用在测试机器中,如果我们要测试DHC

9、P的租约机制,可以在这里设置比默认值更短的租约: max-lease-time 120; default-lease-time 120; 你可能注意到有些参数以option 关键字开头,有些不。以option 关键字开头的语句对应实际的DHCP选项,不以option关键字开头的选项控制服务端(例如,租期) 或客户端的选项不在DHCP协议中例如,服务器名或文件名 在图1中,每个host 都有指定的参数,它会包含象hostname选项,要上传的文件名(filename 参数),还有要上传的服务器的地址(next-server 参数)。通常,任何参数都可以在任何可以出现的地方出现,并且按照参数出现位

10、置确定应用范围。 假设你的环境中有许多没有CD的X终端,这些终端有不同的型号,你想为每种型号确定一个启动文件,一种方法是给每个服务器和组都使用host语句: group filename Xncd19r; next-server ncd-booter; host ncd1 hardware ethernet 0:c0:c3:49:2b:57; host ncd4 hardware ethernet 0:c0:c3:80:fc:32; host ncd8 hardware ethernet 0:c0:c3:22:46:81; group filename Xncd19c; next-server

11、 ncd-booter; host ncd2 hardware ethernet 0:c0:c3:88:2d:81; host ncd3 hardware ethernet 0:c0:c3:00:14:11; group filename XncdHMX; next-server ncd-booter; host ncd1 hardware ethernet 0:c0:c3:11:90:23; host ncd4 hardware ethernet 0:c0:c3:91:a7:8; host ncd8 hardware ethernet 0:c0:c3:cc:a:8f; 地址池 “池”语句(p

12、ool)用来定义一个地址池,即便是在同一个网段或者子网,也可以定义几个池,系统将通过“池”来区分它们。例如,你可能想提供一大段地址分配给DHCP客户端时同时提供很短的租约的一小段地址,用来给未知客户。如果有防火墙,你可能会安排一段地址池能上网,另一个地址池不能上网,这可以鼓励用户注册到DHCP系统中来,也就需要建立两个地址池: subnet .0 netmask option routers .254; # Unknown clients get this pool. pool option domain-name-servers bogus.example ; m

13、ax-lease-time 300; range .200 53; allow unknown-clients; # Known clients get this pool. pool option domain-name-servers ns1.example , ns2.example ; max-lease-time 28800; range .5 99; deny unknown-clients; 上面这个例子中,已知客户和未知客户在相同的子网中,也可能将已知和未知客户分配在不同的子网中,或者在“多子网层次超级作用域”,这样地址池的范围可能跨越不同的子网

14、。正如前面的例子,地址池可以允许或拒绝一个控制用户存取的组,这个组名前面要有allow或 deny 关键字。 如果一个池有一个允许列表,只有匹配的客户端才可以获得地址池的地址,如果这个池有一个拒绝列表,只有不匹配的客户端才可以获得池中的地址,如果同时存在允许和拒绝列表,那么只有在允许列表并且不在拒绝列表中的客户端才可以获得池中的地址。动态地址分配 地址分配实际只在客户端在初始状态并且发送一个 DHCPDISCOVER信息时完成。如果客户端认为它有一个有效的租约并且发送了一个DHCPREQUEST信息来初始化或者更新租约,服务器就只有3个选择:1它可以忽略DHCPREQUEST信息,并且返回一个

15、DHCPNAK 信息来告诉客户端,要求客户端停止使用这个地址,2或者发送一个DHCPACK信息,告诉客户端继续再使用这个地址一段时间,如果服务器找到客户端要求的地址,并且这个地址对于这个客户也是可用的,服务器会发送一个DHCPACK信息,如果这个地址已经不能用了,客户端就不能使用它,此时服务器将会发送一个DHCPNAK信息,3如果服务器不知道这个地址,它会先保持沉默,除非这个地址对于客户端依附的地址段是不正确的,这种情况下服务器会发送一个DHCPNAK,即便它完全不知道这个地址。 如果有一个host语句定义了客户端,同时host语句中包含了固定地址fixed-address,这个IP地址对于客

16、户端实际连接的网段也是合法的,此时DHCP服务器不动态分配地址,而是发送host语句指明的地址。如果此时用户发送了DHCPREQUEST信息来获得其它地址,服务器会回应一个DHCPNAK信息,来拒绝为用户分配其它地址。 当一个DHCP服务器为客户端分配一个新的地址时(记住,这只发生在客户端发送DHCPDISCOVER信息时),它首先查找lease文件,看客户机是否存在一个有效的地址租约,或者此客户机原来是否有一个地址这个地址已经过期,如果有,服务器就会检查那个地址,看客户端是否被允许使用这个地址,如果客户端已经不被允许使用这个地址通常是客户机从另外一个子网登录了,或者此地址被其它客户端占用,并

17、且服务器lease文件中显示原来的租约还存在,服务器就释放这个租约,事实上,此时是客户端发送的DHCPDISCOVER信息,它已经证明客户端实际并没有使用这个租约。如果没有找到存在的租约,或者客户端被强迫接收一个已经存在的租约,那么服务器就会查找客户端所在网段的地址池,找一个允许客户端使用而又没有使用的地址,它会按顺序遍历每个地址池(所有地址池外的“范围”range定义语句都组成一个没有允许列表的单独的池)。如果地址池的允许列表允许客户端得到一个池中的地址,这个地址池会被检查是否有可用的地址,如果有,客户端将会得到这个地址;否则,会检查下一个地址池。如果一直都没有找到可用的地址,服务器就不发送

18、回应。如果找到一个地址,这个地址以前从未被任何客户端使用过,这个地址将立即分配给这个客户,如果这个地址曾经分配给另一个客户端,服务器会尝试查找一个从未分配的地址给客户端。 DHCP服务器使用哈希表(hash table)来产生一组可用的IP地址,这意味着地址不以任何特定的顺序存放,这样也就不能预测DHCP服务器下一个要分配的地址。前一个版本的ISC DHCP服务器使用降序来分配地址,现在不是了,并且在这个版本里也没有方法配置服务器分发地址的顺序 (ISC DHCP 3)。防止IP地址冲突 DHCP服务器在分配IP地址前检查它们是否被使用来防止冲突。它通过向准备分配的IP地址发送ICMP Ech

19、o 请求信息来完成,如果1秒内没有接收到ICMP Echo reply信息,就假定这个地址是可用的。这只对在range语句中指明的租约,并且租约被DHCP服务器认为可用时有效。例如,DHCP服务器或者它的热备机没有列出这个租约在使用中。如果收到ICMP Echo回应,DHCP服务器会假定出现了配置错误IP地址被网络上的主机使用了,然后它标记这个地址为“废弃地址”,不再把它分配给客户端。如果DHCP客户端试图得到一个地址,但是却没有可用的地址,服务器会随机标记一个“废弃地址”为“可用”,然后向这个地址发送同样的ICMP Echo 请求,如果没有得到 ICMP Echo reply回应,这个地址就

20、会分配给这个客户。 如果要收回的第一个IP地址是可用的,DHCP服务器不会去循环使用“废弃地址”。而且,当下一个客户的DHCPDISCOVER信息到达时,它会用相同的方法开始一个新的分配,并且尝试分配一个新的IP地址。在Linux中配置DHCP服务器安装DHCP服务器DHCP配置文件可以使用RHEL 5.0自身携带的RPM包安装,安装结束后DHCP端口监督程序dhcpd配置文件是/etc目录中的名为dhcpd.conf的文件。下面手工建立/etc/dhcpd.conf文件,该文件通常包括3个部分,即parameters参数、declarations声明和option选项。1DHCP配置文件中的

21、parametersparameters说明如何执行任务,以及是否要执行任务或将哪些网络配置选项发送给客户端,主要参数如表8-1所示。DHCP配置文件中的主要参数参 数解 释ddns-update-style配置DHCP-DNS互动更新模式default-lease-time指定默认租赁时间的长度,单位是秒max-lease-time指定最大租赁时间长度,单位是秒hardware指定网卡接口类型和MAC地址server-name通知DHCP客户端服务器名称get-lease-hostnames flag检查客户端使用的IP地址fixed-address ip分配给客户端一个固定的地址authr

22、itative拒绝不正确的IP地址的要求2DHCP配置文件中的declarationsdeclarations用来描述网络布局及提供客户的IP地址等,主要声明声 明解 释shared-network用来告知是否一些子网络共享相同网络subnet描述一个IP地址是否属于该子网range起始IP终止IP提供动态分配IP的范围host主机名称参考特别的主机group为一组参数提供声明续表声 明解 释allow unknown-clientsdeny unknown-client是否动态分配IP给未知的使用者allow bootp;deny bootp是否响应激活查询allow bootingdeny

23、 booting是否响应使用者查询filename开始启动文件的名称,应用于无盘工作站next-server设置服务器从引导文件中装入主机名,应用于无盘工作站DHCP配置文件中的optionoption用来配置DHCP可选参数,全部用option关键字作为开始,主要选项如表8-3所示。表8-3 DHCP配置文件中option关键字的主要选项 选 项解 释subnet-mask为客户端设定子网掩码domain-name为客户端指明DNS名字domain-name-servers为客户端指明DNS服务器的IP地址host-name为客户端指定主机名称routers为客户端设定默认网关broadca

24、st-address为客户端设定广播地址ntp-server为客户端设定网络时间服务器的IP地址time-offset为客户端设定格林威治时间的偏移时间,单位是秒配置实例在下面的实例中使用一个example 的虚拟域名,用户需要修改其中的内容以满足网络的需求。/etc/dhcpd.conf文件的内容如下:# The options outside a subnet directive are global unless# over-ridden by the same setting inside the subnet directive.option domain-name-servers

25、3, 36;default-lease-time 6000; max-lease-time 7200;# If this DHCP server is the official DHCP server for the local# network,the authoritative directive should be uncommented.authoritative;# Use this to send dhcp log messages to a different log file (you also# have to hack syslog.c

26、onf to complete the redirection).log-facility local7;# Handle client dynamic dns updatesddns-update-style none;# Example Network 1 ( on eth0 )subnet netmask option domain-name corp.example ;range 00 00;option routers 54;上面的实例配置文件分为两个

27、部分,即子网配置信息和全局配置信息。可以有多个子网,这里为了简化,只指定了一个子网。1Subnet。在上面的例子中,一个子网声明以“subset”关键字开始,所以子网信息包括在中。中的配置信息只对该子网有效,会覆盖全局配置。2Global。所有子网以外的配置都是全局配置,如果同一个全局配置没有被子网配置覆盖,则其将对所有子网生效。3Configuration Options。下面是上例中配置指令的解释说明。option domain-name-servers 3, 36;这一行指定客户端应该使用的DNS服务器,该选项可以用于全局参数或者子网参数。defau

28、lt-lease-time 6000; max-lease-time 7200;这两行是相关的,default-lease-time指定客户端需要刷新配置信息的时间间隔秒,max-lease-time为客户端用于无法从服务器获得任何信息的时间,超过该时间则会丢弃之前从该DHCP服务器获得的所有信息,而转向使用OS的默认设置。authoritative;指定当一个客户端试图获得一个不是该DHCP服务器分配的IP信息,DHCP将发送一个拒绝消息,而不会等待请求超时。当请求被拒绝,客户端会重新向当前DHCP发送IP请求获得新地址。log-facility daemon;指定DHCP服务器发送的日志信

29、息的日志级别。ddns-update-style none;该配置可以指定一个方法,客户端用该方法来更新IP对应的域名信息,本例中禁用了该特性。subnet netmask option domain-name corp.example ;range 00 00;option routers 54;上面内容为子网配置,第1行指定该子网地址和掩码。DHCP服务器必须拥有该子网的一个IP,domain-name设置该客户端的域名。DHCP服务器可以负责整个子网的信息

30、,也可以只负责子网的一段。option routers配置默认网关IP。启动DHCP服务器1建立客户端租约文件运行DHCP服务器还需要一个名为“”的文件,其中保存所有已经分发的IP地址。在Red Hat Linux发行版本中,该文件位于/var/lib/dhcp/目录中。如果通过RPM安装ISC DHCP,那么该目录应该已经存在。dhcpd.leases的文件格式为:Leases address statement一个典型的文件内容如下:lease 55 #DHCP服务器分配的IP地址#starts 1 2005/05/02 03:02:26; # lease 开始租约时

31、间#ends 1 2005/05/02 09:02:26; # lease 结束租约时间#binding state active;next binding state free;hardware ethernet 00:00:e8:a0:25:86; #客户机网卡MAC地址#uid 001000000350240%206; #用来验证客户机的UID标志#client-hostname cjh1; #客户机名称#注意:lease开始租约时间和lease结束租约时间是格林威治标准时间GMT,不是本地时间。第1次运行DHCP服务器时,dhcpd.leases是一个空文件,也不用手工建立。如果不是通

32、过RPM安装ISC DHCP,或者dhcpd已经安装,那么应该试着确定dhcpd将其lease文件写到何处并确保该文件存在。也可以手工建立一个空文件:2启动和检查DHCP服务器使用命令启动DHCP服务器:#service dhcpd start使用ps命令检查dhcpd进程:#ps -ef | grep dhcpdroot 2402 1 0 14:25 ? 00:00:00 /usr/sbin/dhcpdroot 2764 2725 0 14:29 pts/2 00:00:00 grep dhcpd使用netstat检查dhcpd运行的端口:# netstat -nutap | grep dh

33、cpdudp 0 0 .0:67 :* 2402/dhcpd3设置DHCP转发代理DHCP的转发代理dhcrelay允许把无DHCP服务器子网内的DHCP和BOOTP请求转发给其他子网内的一台或多台DHCP服务器。当某个DHCP客户端请求信息时,DHCP转发代理把该请求转发给DHCP转发代理启动时所指定的一台DHCP服务器。当某台DHCP服务器返回一个回应时,该回应被广播或单播给发送最初请求的网络。除非使用INTERFACES指令在/etc/sysconfig/dhcrelay文件中指定了接口,否则DHCP转发代理监听所有接口上的DHCP请求。要启动DHCP转发代理,使用命令:s

34、ervice dhcrelay start4从指定端口启动DHCP服务器如果系统连接不止一个网络接口,但是只想让DHCP服务器启动其中之一,则可以配置DHCP服务器只在相应设备上启动。在/etc/sysconfig/dhcpd中,把接口的名称添加到DHCPDARGS的列表中:# Command line options hereDHCPDARGS=eth0如果有一个带有两块网卡的防火墙机器,这种方法就会大派用场。一块网卡可以被配置成DHCP客户端从互联网上检索IP地址;另一块网卡可以被用做防火墙之后的内部网络的DHCP服务器。仅指定连接到内部网络的网卡使系统更加安全,因为用户无法通过互联网来连

35、接其守护进程。其他可在/etc/sysconfig/dhcpd中指定的命令行选项如下。1-p:指定dhcpd应该监听的UDP端口号码,默认值为67。DHCP服务器在比指定的UDP端口大一位的端口号上把回应传输给DHCP客户端。例如,如果使用默认端口67,服务器就会在端口67上监听请求,然后在端口68上回应客户。如果在此处指定了一个端口号,并且使用了DHCP转发代理,所指定的DHCP转发代理所监听的端口必须是同一端口。2-f:把守护进程作为前台进程运行,在调试时最常用。3-d:把DCHP服务器守护进程记录到标准错误描述器中,在调试时最常用。如果未指定,日志将被写入/var/log/message

36、s中。4-cf:指定配置文件的位置,默认为/etc/dhcpd.conf。5-lf:指定租期数据库文件的位置。如果租期数据库文件已存在,在DHCP服务器每次启动时使用同一个文件至关重要。建议只在无关紧要的机器上为调试目的才使用该选项,默认为/var/lib/dhcp/dhcpd.leases。6-q:在启动该守护进程时,不要显示整篇版权信息。5管理DHCP服务器端口常见的DHCP服务器是dhcpd,可以通过命令行设定其监听端口。例如,使用以下命令:#dhcpd eth0该命令允许dhcpd进程只在eth0网络端口上工作,默认为监听所有端口。由于DHCP同样使用67和68端口通信,所以更改该端口

37、将造成DHCP服务无法正常使用。设置DHCP客户端1在Linux下配置DHCP客户端配置DHCP客户端的第1步是确定内核能够识别网卡,多数网卡会在安装过程中被识别,系统会为该网卡配置恰当的内核模块。如果在安装后添加了一块网卡,Kudzu应该会识别它,并提示为其配置相应的内核模块。通常网管员选择手工配置DHCP客户端,需要修改/etc/sysconfig/network文件来启用联网;修改/etc/sysconfig/network-scripts目录中每个网络设备的配置文件,在该目录中的每种设备都有一个叫做“ifcfg-eth?”的配置文件。eth?是网络设备的名称,如eth0等。如果想在引导

38、时启动联网,NETWORKING变量必须被设为yes。除此之外,/etc/sysconfig/network文件应该包含以下行:NETWORKING=yesDEVICE=eth0BOOTPROTO=dhcpONBOOT=yes每种需要配置使用DHCP的设备都需要一个配置文件。其他网络脚本包括的选项如下。1DHCP_HOSTNAME:只有当DHCP服务器在接收IP地址前需要客户端指定主机名时才使用该选项。2PEERDNS=:取值为如下之一。 yes:使用来自服务器的信息来修改。假设使用DHCP,那么yes是默认值。 no:不要修改。3SRCADDR=:是用于输出包的指定源IP地址。4USERCT

39、L=:取值为如下之一。 yes:允许非根用户控制该设备。 no:不允许非根用户控制该设备。2在Windows下设置DHCP客户端Windows 2000和Windows XP的配置方法相同,DHCP客户端的配置很简单。只需要在“控制面板”中双击“网络连接”图标,然后在如图8-1所示的“本地连接属性”对话框中选择“Internet协议TCP/IP”属性。“常规”选项卡中选择“自动获取IP地址”和“自动获取DNS服务器地址”单项选择按钮。3测试端口监督程序现在应该已经可以将一个客户机接入到网络中,并通过DHCP请求一个IP地址。要通过Windows客户端测试,在DOS提示符下执行以下操作。 1清除

40、适配器可能已经拥有的IP地址信息,执行命令:ipconfig /release2向DHCP服务器请求一个新的IP地址,执行命令:ipconfig /renewDHCP简介 DHCP的前身是BOOTP,它工作在OSI的应用层,是一种帮助电脑从指定的DHCP服务器获取配置信息的自举协议。DHCP使用客户端/服务器模式,请求配置信息的电脑叫做“DHCP客户端”,而提供信息的叫做“DHCP服务器”。DHCP为客户端分配地址的方法有3种,即手工配置、自动配置和动态配置。DHCP最重要的功能就是动态分配,除了IP地址,DHCP还为客户端提供其他的配置信息,如子网掩码,从而使得客户端无须用户动手即可自动配置

41、并连接网络。为什么使用DHCPDHCP在快速发送客户网络配置方面很有用,当配置客户端系统时,假设管理员选择DHCP,则不必输入IP地址、子网掩码、网关或DNS服务器,客户端从DHCP服务器中检索这些信息。DHCP在网络管理员想改变大量系统的IP地址时也有用,与其重新配置所有系统,不如编辑服务器中的一个用于新IP地址集合的DHCP配置文件。如果某机构的DNS服务器改变,这种改变只须在DHCP服务器中,而不必在DHCP客户端上进行。一旦客户端的网络被重新启动或客户端重新引导系统,改变就会生效。除此之外,如果便携电脑或任何类型的可移动电脑被配置使用DHCP,只要每个办公室都有一个允许其联网的DHCP

42、服务器,它就可以不必重新配置而在办公室间自由移动。DHCP的工作流程1发现阶段即DHCP客户端查找DHCP服务器的阶段。客户机以广播方式因为DHCP服务器的IP地址对于客户端来说是未知的发送DHCP discover信息来查找DHCP服务器,即向地址55发送特定的广播信息。网络上每一台安装了TCP/IP的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应。2提供阶段即DHCP服务器提供IP地址的阶段,在网络中接收到DHCP discover信息的DHCP服务器都会做出响应。它从尚未出租的IP地址中挑选一个分配给DHCP客户端,向其发送一个包含出租的IP地址和

43、其他设置的DHCP offer信息。3选择阶段即DHCP客户端选择某台DHCP服务器提供的IP地址的阶段。如果有多台DHCP服务器向DHCP客户端发送DHCP offer信息,则DHCP客户端只接受第1个收到的DHCP offer信息。然后它就以广播方式答复一个DHCP request信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。之所以要以广播方式答复,是为了通知所有DHCP服务器,它将选择某台DHCP服务器所提供的IP地址。4确认阶段即DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户端答复的DHCP request信息之后,它向DHCP客户端发送一

44、个包含其所提供的IP地址和其他设置的DHCP ACK信息,告诉DHCP客户端可以使用该IP地址,然后DHCP客户端便将其TCP/IP与网卡绑定。另外,除DHCP客户端选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址。5重新登录以后DHCP客户端每次重新登录网络时,不需要发送DHCP discover信息,而是直接发送包含前一次所分配的IP地址的DHCP request信息。当DHCP服务器收到这一信息后,它会尝试让DHCP客户端继续使用原来的IP地址,并答复一个DHCP ACK信息。如果此IP地址已无法再分配给原来的DHCP客户端使用比方此IP地址已分配给其他DHCP客户端使用,则

45、DHCP服务器给DHCP客户端答复一个DHCP NACK信息。当原来的DHCP客户端收到此信息后,必须重新发送DHCP discover信息来请求新的IP地址。6更新租约DHCP服务器向DHCP客户端出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回该IP地址。如果DHCP客户端要延长其IP租约,则必须更新其IP租约。DHCP客户端启动时和IP租约期限过一半时,DHCP客户端都会自动向DHCP服务器发送更新其IP租约的信息。DHCP的设计目标1DHCP应该是一种机制而不是策略,它必须允许本地系统管理员控制配置参数,本地系统管理员应该能够对所希望管理的资源进行有效的管理。2客户端不

46、需要手工配置,而应该在不参与的情况下发现合适于本地机的配置参数,并利用这些参数加以配置。3不需要为单个客户端配置网络,在通常情况下,网络管理员没有必要输入任何预先设计好的用户配置参数。4DHCP不需要在每个子网上配置一台服务器,出于经济原因,DHCP服务器必须可以和路由器或BOOTP转发代理一起工作。5DHCP客户端必须能对多个DHCP服务器提供的服务做出响应,出于网络稳定与安全的考虑,有时需要在网络中添加多台DHCP服务器。6DHCP必须静态配置,而且必须用现存的网络协议实现。7DHCP必须能够和BOOTP转发代理互操作。8DHCP必须能够为现有的BOOTP客户端提供服务。9不允许有多个客户

47、端同时使用一个网络地址。10在DHCP客户端重新启动后仍然能够保留其原先的配置参数,如果可能,客户端应该被指定为相同的配置参数。11在DHCP服务器重新启动后仍然能够保留客户端的配置参数,如果可能,即使DHCP机制重新启动,也应该能够为客户端分配原有的配置参数。12能够为新加入的客户端自动提供配置参数。13支持对特定客户端永久固定分配网络地址。上面913的设计目标是对于网络层参数的设计而言的,在网络层参数上,DHCP必须做到这几点。安装DHCP服务器DHCP配置文件可以使用RHEL 5.0自身携带的RPM包安装,安装结束后DHCP端口监督程序dhcpd配置文件是/etc目录中的名为dhcpd.

48、conf的文件。下面手工建立/etc/dhcpd.conf文件,该文件通常包括3个部分,即parameters参数、declarations声明和option选项。1DHCP配置文件中的parametersparameters说明如何执行任务,以及是否要执行任务或将哪些网络配置选项发送给客户端,主要参数如表8-1所示。DHCP配置文件中的主要参数参 数 解 释 ddns-update-style 配置DHCP-DNS互动更新模式 default-lease-time 指定默认租赁时间的长度,单位是秒 max-lease-time 指定最大租赁时间长度,单位是秒 hardware 指定网卡接口类

49、型和MAC地址 server-name 通知DHCP客户端服务器名称 get-lease-hostnames flag 检查客户端使用的IP地址 fixed-address ip 分配给客户端一个固定的地址 authritative 拒绝不正确的IP地址的要求 2DHCP配置文件中的declarationsdeclarations用来描述网络布局及提供客户的IP地址等,主要声明 声明 声 明 解 释 shared-network 用来告知是否一些子网络共享相同网络 subnet 描述一个IP地址是否属于该子网 range起始IP终止IP 提供动态分配IP的范围 host主机名称 参考特别的主机

50、 group 为一组参数提供声明 续表 声 明 解 释allow unknown-clientsdeny unknown-client 是否动态分配IP给未知的使用者allow bootp;deny bootp 是否响应激活查询allow bootingdeny booting 是否响应使用者查询filename 开始启动文件的名称,应用于无盘工作站 next-server 设置服务器从引导文件中装入主机名,应用于无盘工作站DHCP配置文件中的option option用来配置DHCP可选参数,全部用option关键字作为开始,主要选项如表8-3所示。表8-3 DHCP配置文件中option关键字的主要选项 选 项 解 释subnet-mask 为客户端设定子网掩码domain-name为客户端指明DNS名字domain-name-servers为客户端指明DNS服务器的IP地址host-name为客户端指定主机名称routers为客户端设定默认网关broadcast-address为客户端设定广播地址ntp-server为客户端设定网络时间服务器的IP地址time-offset为客户端设定格林威治时间的偏移时间,单位是秒配置实例在下面的实例中使用一个ex

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论