FreeBSD DHCP的工作过程DHCP服务器(精选13篇)
FreeBSD DHCP的工作过程DHCP服务器 第1篇
动态主机配置协议(Dynamic Host Configuration Protocol,DHCP)是用于对多个客户计算机集中分配IP地址以及IP地址相关的信息的协议,这样就能将IP地址和TCP/IP的设置统一管理起来,而避免不必要的地址冲突的问题,因此常常用在网络中对众多DOS/Windows计算机的管理方面,节省了网络管理员手工设置和分配地址的麻烦,
除了能够方便管理之外,DHCP还能略微达到节省IP地址的目的。假设网络中有50个计算机,但只有40个 IP地址,但是这50台计算机不会同时启动,IP地址应该满足要求。如果使用静态IP地址的设置方式,还是会遇到分配地址的困难,因为计算机的使用是随机的,无论怎样分配地址都无法避免出现冲突现象,而使用DHCP就能避免这个问题。 DHCP也能用于统一设置其他的一些IP设置,如缺省路由、DNS服务器等等,使用它能减少一个大型网络的管理任务。
DHCP是从原有的BootP协议发展起来的,原来的目的是为无盘工作站分配IP地址的协议,当前更多的用于集中管理IP地址。然而DHCP协议也有其缺点,例如一台DHCP客户计算机没有一个固定的IP地址,而对于提供网络服务的服务器来讲,经常变化的IP地址并不适合。并且当前的DNS协议并不能和DHCP协作,为DHCP客户直接提供主机名解析任务。
FreeBSD DHCP的工作过程DHCP服务器 第2篇
DHCP和BOOTP
DHCP是自引导规程Bootstrap协议(BOOTP)的扩展。BOOTP(定义于RFC1532)是为两个目的而设计的:其一是客户机能请求一个IP地址和其他TCP/IP设置信息,其二则是使无盘工作站在通过TFTP协议获得映像以后可以请求得到引导文件信息的位置,以便客户机可以从那里启动。但是,BOOTP并不支持租用期的概念,每台客户机的硬件地址必须和一个实际的IP地址相联系。
因为windows 计算机支持DHCP但不支持BOOTP,所以没有理由在纯windows 环境下使用BOOTP。但因为windows NT是支持DHCP的,而DHCP基于BOOTP,windows NT4.0ServicePack2也支持BOOTP客户机。这意味着DHCP服务器可以响应UNIX客户机或无盘工作站的DHCP请求以及BOOTP请求。该特性在混合的而DHCP/BOOTP服务器又存在冲突的环境中是十分有用的。有了DHCP,windows 可以对配置中继代理的远程子网提供BOOTP服务。但是windows 没有提供用于传送启动映像文件的可配置的TFTP服务。
这种部分的支持可能看起来有些奇怪,但是如果考虑网络服务中启动环境的使用,这种限制看起来就不那么重要了,它对windows 客户端是肯定没有影响的。DHCP选项(或者这里称为BOOTP选项)用于通知BOOTP客户端启动映像文件名和客户端。windows 2000 DHCP忽略BOOTP请求除非BOOTP表中已经配置了至少一个启动映像文件的信息。而且windows 2000 一个特色是对没有专门请求选项的BOOTP客户端不提供任何信息。
windows 2000 中的动态BOOTP扩展通过将IP地址在BOOTP作用域共用从而减化了管理。在BOOTP作用域中,对于使用保留的客户端将硬件地址和IP地址链接在一起是不必要的。除非该BOOTP客户端不支持动态BOOTP或者需要特定的选项。BOOTP作用域像普通的作用域一样创建,但是必须被标记为用做BOOTP请求。标记的方法如图15-13所示,在作用域的属性
对话框的Advanced选项卡中选择“Both”或“BOOTPonly”,值得注意的是在DNS选项卡中关于使用动态DNS更新的所有选项都可为BOOTP客户端所用。
要配置启动文件,首先要改变DHCP服务器属性的“General”选项卡中的缺省值,使“showtheBOOTPTableFolder复选框被选中,如图15-14所示。
1)打开DHCP服务器管理界面。
2)单击服务器节点,然后右键单击弹出菜单以选择服务器属性对话框。
3)在General选项卡中,选中标签为“showtheBOOTPTableFolder”的复选框,
4)单击OK关闭属性对话框。
因为当BOOTP表为空的时候服务器将忽略BOOTP请求,所以这是一个必要的步骤。此后就可能在服务器控制台中的BOOTP表节点的上下文菜单中选择“NewBootImage”以提供启动映像信息。在响应BOOTP请求时,DHCP服务器将表中的信息返回给客户端。
1)打开DHCP服务器管理界面。
2)展开服务器节点。
3)单击BOOTP表节点。如果看不到该节点,就使用上面提到的操作在服务器属性对话框中启用BOOTP表。
4)已定义的BOOTP映像文件将在右边的细节框中列出。在BOOTP表节点的上下文菜单中选择“NewBootImage”添加一个映像文件。
5)输入TFTP服务器,映像文件名,TFTP服务器上的映像路径,然后单击“Add”。
BOOTP和DHCP报文的格式几乎是一样的,缺省的时候两者在服务器和客户端分别使用UDP67和68号端口。BOOTP服务器响应的大小固定,比DHCP响应可能要小一些,这意味着在配置用于支持BOOTP的作用域的返回选项时必须谨慎。BOOTP客户端没有租借的概念。在传统的BOOTP使用中所有的BOOTP客户端都使用保留,所以没有租借并不是一个问题。已经看到windows 2000 DHCP服务器允许定义一个提供BOOTP服务的作用域,并且动态地分配IP地址。如果使用了动态BOOTP扩展,DHCP服务器将使用基于在超时后测试该IP是否未被使用的方法回收租借给BOOTP客户端的IP地址。BOOTP在服务器和客户端之间采用两步的交换而不是四步的交换,并且没有周期性的更新,但这些并没有什么影响。
如果要为各BOOTP客户端分别提供选项信息,就必须借助MAC地址对BOOTP客户端实行保留。对于DHCP客户端也是如此。表15-2列出了所支持的一些BOOTP客户端选项。BOOTP客户端必须请求发送选项,否则不会收到任何选项。
小结
许多人不能或不敢使用DHCP,因为在DHCP的早期历史中DHCP一般没有和DNS集成在一起。尽管早先微软使用WINS的解决方案允许DHCP,WINS早期版本的不稳定和WINS的专有性使许多人认为该方案不是一个通用的解决方案。
本章说明了若综合使用微软DHCP和DNS且允许动态更新,则网络上的计算机可以动态得到IP地址分配,也仍能正常在DNS下工作,且不需要许多管理工作。要使用DHCP,应考虑DHCP服务器的数量和位置,以及对DNS的影响,比如对清理的影响。然后要建立和授权DHCP服务器,定义和使能作用域和选项,并配置客户端成为DHCP客户端。当存在一定的DHCP客户端时,对客户端网络配置的重新设置由所传送的DHCP选项集中管理。
编辑推荐TCP/IP协议专题
TCP/IP(传输入控制地议/网际协议)是一种网络通信协议,它规范了网络上的所有通信设备,尤其是一个主机与..
FreeBSD DHCP的工作过程DHCP服务器 第3篇
关键词:DHCP; DHCP中继; 工学结合; 工作过程; 学习任务; 行动导向
中图分类号:TP393.02 文献标识码:A 文章编号:1006-3315(2014)08-141-002
1.引言
工学结合课程的内涵是:“学习的内容是工作,通过工作实现学习”,学习过程具有工作过程的完整性。要求学生在综合行动中思考和学习,完成从明确任务、制订计划、实施检查到评价反馈整个过程。学习领域即一门课程,是由若干学习任务组成,学习任务是以典型工作任务为基础设计的学习载体,是对典型工作任务进行的“教学化”处理结果。学习任务的质量,是职业教育课程质量的真正体现。
2.学习任务的情境设计
DHCP中继的教学目标是使学生能运用DHCP及中继技术在多子网网络中实现IP协议的动态管理,所以在学习情境设计中要提供一个多子网的工作情境。学习任务情境设计要能真实反映工作情境,如某有限公司从事信息产业,总部拥有500台左右PC,分为行政部(20)、财务部(25)、人事部(20)、市场部(200)、技术部(200)和网络中心(20),要求按照部门规划VLAN及IP地址,并采用DHCP及中继技术动态管理IP地址。
在工作情境中,往往客户是不会在要求中提出具体的解决方案,指明所需的设备、网络拓扑、IP地址分配。所以在情境中不应该有具体的要求,只提出具体的实现目标。DHCP服务可以由Windows Server服务器、Linux服务器等软件系统实现,也可以采用路由器、三层交换机等硬件系统实现,同样DHCP中继也能相应的软硬件系统实现。同时不同的网络拓扑,不同的IP地址分配方案可以决定不同的DHCP及中继的配置。至于采用何种设备与软件系统,如何实现相关配置,等待学生在实践学习任务的工作过程中不断探索发现。这样的学习情境设计包含了DHCP及中继技术的综合应用领域,使学习任务变得复杂而具有挑战性。
3.学习任务具体的成果要求
根据学习情境所要求实现的DHCP中继技术应用部署就是该学习任务具体的成果,即实现在多子网环境下能够动态地为网络中的其他主机提供IP地址、掩码、网关、DNS服务器IP地址等参数,最终实现网络的互联互通。虽然在预先没有指明具体解决方案的情况下,实现任务目标的途经是多样的,但都有着共同的成果,就是DHCP及中继技术实现在多子网环境下能够动态IP协议管理,实现主机间的互联互通。这样,学习任务就具有了清晰的任务轮廓和明确而具体的成果。
在学习任务的实施过程中,还要引导和鼓励学生采用不同的解决方案,实现DHCP中继学习任务,各小组不同的解决方案也为师生归纳总结DHCP及中继技术应用提供了良好的讨论素材。
4.构建一个完整的工作过程
当学生接触这样一个不同于案例教学任务,没有明确具体解决方案的学习任务时,往往不知从何入手,这时学生工作页就起到引导作用,这也是行动导向教学的精髓处在。如何设计好学生工作页是构建一个DHCP及中继术应用完整工作过程的关键。
传统案例教学中,往往就具体的、完整的一个DHCP及中继技术应用的案例开展部署实施,这对于学生来说缺少了重要的设计解决方案环节,并不是一个完整的工作过程。而解决方案的设计恰恰是有效增强高职学生分析问题解决问题的能力的关键。所以要求学生能在学习中参考相关资料,从解决方案的设计开始,依据各组设计的解决方案进行实施,直到完成最终的网络测试,这样才能为学习任务构建一个完整的工作过程。
DHCP及中继技术应用的难点并存在于相关系统与设备的配置,这些都可以参考典型案例掌握。所以DHCP及中继应用的学生工作页设计难点在于如何构建一个适合不同DHCP及中继解决方案设计的工作页,这时要针对DHCP及中继技术的特点,主要考虑以下几点:①选择硬件设备与软件系统;②DHCP作用域的定义;③DHCP排除地址的定义;④DHCP路由选项的定义;⑤DCHP DNS选项的定义。不同的选择决定了不同DHCP及中继应用解决方案的产生。
在学生工作页设计时,首先要引导学生从软硬件设备选择开始,逐步引导学生完成网络拓扑设计、网络规划、IP地址规划、设备端口连接表、测试目标,最终完成解决方案的设计。各小组完成的解决方案将是师生讨论的第一个核心问题,不同的软硬件、网络拓扑、IP地址规划、设备端口连接、作用域的定义、排除地址、路由选项、DCHP DNS选项的定义(如下表1)与选择,将设计出不同的解决方案。当然有一些解决方案是学校教学条件限制不能实施,有些则不符合情境,有一些则存在错误的设计,这时师生在讨论、点评过程中可逐一修改解决方案中的错误或是不适宜的设计。
当各小组解决方案基本确定后,就可以依据各自方案开始实施。实施过程中必须确定小组成员的分工职责与工作角色,并计划好相应的实施进度,充分体现分工协作的团队精神。这时的学生工作页内容主要是帮助学生定义网络各节点配置的参数,如IP地址、掩码、网关、路由、DNS参数等,使各小组成员在协作分工实施时有一个统一的网络配置。同时根据学生的学习任务实施情况,讲解、分析典型案例,帮助学生理解相关的DHCP及中继等技术问题。
最终,各小组要根据其设计的测试目标,对学习任务的完成情况进行测试并记录结果。如果未能达到预期测试目标,则通过小组讨论、师生讨论来分析问题并解决问题,以实现任务目标。
5.如何将理论和技能相结合
DHCP及中继技术应用有多种多样的解决方案,学生通过该学习任务所要达到的技能目标是能根据不同解决方案的优缺点,针对不同的工作情境要求,设计解决方案,并能完成DHCP及中继技术应用的部署。DHCP及中继理论的学习在学生工作頁的准备阶段主要完成对DHCP及中继技术概况的了解,了解DHCP及中继技术的应用领域。在任务实施过程中,针对学生所遇到的问题,通过若干典型的案例示范与解读,使学生进一步理解DHCP及中继所涉及的网络协议、工作原理、网络参数选项等理论知识,并能将所掌握的这些理论知识应用到学习任务中,成为能解决具体工作任务的技能。
6.培养学生自主学习与交流能力
从不同需求角度出发,会设计出不同的DHCP及中继技术应用解决方案,也往往不能在工作页中一一给出相应的案例。这时,基于网络的自主学习显得尤为重要,大量网络信息也使得学生不知所措,师生间、同学间的交流和讨论对学生的学习起到非常大的帮助。在行动导向教学过程中,逐渐培养了学生的自主学习与交流能力。
7.对学习成果的评价
当学习任务结束时,对学习成果的评价是非常重要的,对学生在学习过程中的综合表现、各组设计的不同DHCP及中继解决方案及实施成果展示都是评价的依据。解决方案及实施情况的评价标准要基于对网络工程评价的共同标准,主要有可行性、可用性、安全性、可靠性、实施进度、测试结果,也是对DHCP及中继技术相关知识的归纳与总结。
8.结束语
基于工作过程的DHCP及中继技术应用学习任务的设计与实施,活跃了课堂气氛,充分体现工学结合的课程特征,通过综合性的学习任务,培养了学生对具体问题的分析能力、解决能力,在多种解决方案的实施中,不仅能锻炼学生的专业能力,还能提升其综合素质。
参考文献:
[1]赵志群.《对工学结合课程一些概念的认识》[J]中国职业教育,2008(4)
[2]王炜波.《工学结合课程建设的内涵与着力点》[J]职业技术教育,2011(34)
[4]刘琰.《行动导向教学法在高职计算机专业教学中的应用与研究》[J]南方职业教育学刊,2012(2)
FreeBSD DHCP的工作过程DHCP服务器 第4篇
DHCP的优缺点
DHCP服务优点不少:网络管理员可以验证IP地址和其它配置参数,而不用去检查每个主机;DHCP不会同时租借相同的IP地址给两台主机;DHCP管理员可以约束特定的计算机使用特定的IP地址;可以为每个DHCP作用域设置很多选项;客户机在不同子网间移动时不需要重新设置IP地址。
但同时也存在不少缺点:DHCP不能发现网络上非DHCP客户机已经在使用的IP地址;当网络上存在多个DHCP服务器时,一个DHCP服务器不能查出已被其它服务器租出去的IP地址;DHCP服务器不能跨路由器与客户机通信,除非路由器允许BOOTP转发。
工作流程
DHCP服务的工作过程是这样的:
1.发现阶段,即DHCP客户机寻找DHCP服务器的阶段。DHCP客户机以广播方式(因为DHCP服务器的IP地址对于客户机来说是未知的)发送DHCP discover发现信息来寻找DHCP服务器,即向地址255.255.255.255发送特定的广播信息。网络上每一台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应(如图1)。
2.提供阶段,即DHCP服务器提供IP地址的阶段。在网络中接收到DHCP discover发现信息的DHCP服务器都会做出响应,它从尚未出租的IP地址中挑选一个分配给DHCP客户机,向DHCP客户机发送一个包含出租的IP地址和其他设置的DHCP offer提供信息(如图2)。
3.选择阶段,即DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。如果有多台DHCP服务器向DHCP客户机发来的DHCP offer提供信息,则DHCP客户机只接受第一个收到的DHCP offer提供信息,然后它就以广播方式回答一个DHCP request请求信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。之所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址(如图3)。
编辑推荐TCP/IP协议专题
TCP/IP(传输入控制地议/网际协议)是一种网络通信协议,它规范了网络上的所有通信设备,尤其是一个主机与..
管理好DHCP服务器 为企业网管员减负路由器在DHCP服务器中的具体应用详解教您用Cisco交换机做DHCP服务器交换机DHCP服务器 为你解决配置问题路由器搭建DHCP服务器
4.确认阶段,即DHCP服务器确认所提供的IP地址的阶段,
当DHCP服务器收到DHCP客户机回答的DHCP request请求信息之后,它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCP ack确认信息,告诉DHCP客户机可以使用它所提供的IP地址。然后DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址(如图4)。
5.重新登录。以后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地址。
6.更新租约。DHCP服务器向DHCP客户机出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回出租的IP地址。如果DHCP客户机要延长其IP租约,则必须更新其IP租约。DHCP客户机启动时和IP租约期限过一半时,DHCP客户机都会自动向DHCP服务器发送更新其IP租约的信息。
为了便于理解,我们把DHCP客户机比做餐馆里的客人,DHCP服务器比做服务员(一个餐馆里也可以有多个服务员),IP地址比做客户需要的食物。那么可以这样描述整个过程:客人走进餐馆,问:“有没有服务员啊?”(DHCP discover),多个服务员同时回答:“有,我这有鸡翅”“有,我这有汉堡”(DHCP offer)。客人说:“好吧,我要一份汉堡”(DHCP request,这个客人比较死板,总是选择第一次听到的食物),端着汉堡的服务员回应了一声:“来啦”(DHCP ack),并把食物端到客人面前,供其享用(将网卡和IP地址绑定)。客人下次来的时候,就直接找上次那个服务员点自己喜欢的汉堡了(DHCP request),如果还有汉堡,服务员会再次确认并上菜(DHCP ack),而如果已经卖完了,服务员则会告诉客人:“不好意思,已经卖完了”(DHCP nack)。当然,服务员隔一段时间会来收拾一次桌子,除非客人特别说明这菜还要继续吃的,服务员会将剩菜端走。
【责任编辑:佟媛微 TEL:(010)68476606】
编辑推荐TCP/IP协议专题
TCP/IP(传输入控制地议/网际协议)是一种网络通信协议,它规范了网络上的所有通信设备,尤其是一个主机与..
FreeBSD DHCP的工作过程DHCP服务器 第5篇
netsh dhcp server export :dhcp.txt all
2.当出现图1所示提示后,停止原DHCP服务器服务。
图1 完成命令后的提示
3.将文件Copy至新的DHCP服务器C盘后,在命令提示符下运以如下命令:
netsh dhcp server import c:dhcp.txt all
FreeBSD DHCP的工作过程DHCP服务器 第6篇
DHCP服务的安装
DHCP指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。首先,DHCP服务器必须是一台安装有Windows2000Server/AdvancedServer系统的计算机;其次,担任DHCP服务器的计算机需要安装TCP/IP协议,并为其设置静态IP地址、子网掩码、默认网关等内容。默认情况下,DHCP作为Windows2000Server的一个服务组件不会被系统自动安装,必须把它添加进来:
1.依次点击“开始设置控制面板添加/删除程序添加/删除Windows组件”,打开相应的对话框。
2.用鼠标左键点击选中对话框的“组件”列表框中的“网络服务”一项,单击[详细信息]按钮,出现带有具体内容的对话框。
3.在对话框“网络服务的子组件”列表框中勾选“动态主机配置协议(DHCP)”,单击[确定]按钮,根据屏幕提示放入Windows2000安装光盘,复制所需要的程序。
4.重新启动计算机后,在“开始程序管理工具”下就会出现“DHCP”一项,说明DHCP服务安装成功。
DHCP服务器的授权
出于对吐绨踩管理的考虑,并不是在Windows2000Server中安装了DHCP功能后就能直接使用,还必须进行授权操作,未经授权操作的服务器无法提供DHCP服务。对DHCP服务器授权操作的过程如下:
1.依次点击“开始程序管理工具DHCP”,打开DHCP控制台窗口。
2.在控制台窗口中,用鼠标左键点击选中服务器名,然后单击右键,在快捷菜单中选中“授权”,此时需要几分钟的等待时间。注意:如果系统长时间没有反应,可以按F5键或选择菜单工具中的“操作”下的“刷新”进行屏幕刷新,或先关闭DHCP控制台,在服务器名上用鼠标右键点击。如果快捷菜单中的“授权”已经变为“撤消授权”,则表示对DHCP服务器授权成功。此时,最明显的标记是服务器名前面红色向上的箭头变成了绿色向下的箭头。这样,这台被授权的DHCP服务器就有分配IP的权利了。
添加IP地址范围
当DHCP服务器被授权后,还需要对它设置IP地址范围。通过给DHCP服务器设置IP地址范围后,当DHCP客户机在向DHCP服务器申请IP地址时,DHCP服务器就会从所设置的IP地址范围中选择一个还没有被使用的IP地址进行动态分配。添加IP地址范围的操作如下:
1.点击“开始程序管理工具DHCP”,打开DHCP控制台窗口。
2.选中DHCP服务器名,在服务器名上点击鼠标右键,在出现的快捷菜单中选择“新建作用域”,在出现的窗口中单击[下一步]按钮,在出现的对话框中输入相关信息,单击[下一步]按钮,如图1所示,
3.在图1所示的窗口中,根据自己网络的实际情况,对各项进行设置,然后单击[下一步]按钮,出现如图2所示的窗口。
4.在图2所示的窗口中,输入需要排除的IP地址范围。由于校园网络中有很多网络设备需要指定静态IP地址(即固定的IP地址),如服务器、交换机、路由器等,此时必须把这些已经分配的IP地址从DHCP服务器的IP地址范围中排除
FreeBSD DHCP的工作过程DHCP服务器 第7篇
【关键词】档案馆;IP地址;DHCP;汇聚交换机;VLAN DHCP Snooping
随着互联网普及,人们的工作,学习和生活与网络联系越来越紧密,数字档案馆成为信息时代的产物。数字档案馆是规划和建设信息技术对档案事业发展和要求的必然结果。而网络及其计算机设备是数字档案馆运行的基础,无论从便于管理和安全等方面考虑,数字档案馆的网络设计中大多采用的是“三网一库”(即档案馆局域网、地方(或部门政务网)和公众网),一库是保存档案资源的大型数据库)的设计。在实现数字档案馆的网络管理是大型计算机成功的关键因素,时下利用DHCP服务已经显得相当流行。动态主机分配协议(DHCP)的运用也显得越来越重要。在实际的操作过程中,构建DHCP服务器也是常见的。而采用DHCP技术动态地为主机配置参数,可以有效地解决目前IP地址资源不足和用户的移动性等问题,并能极大地减轻大型网络管理员的工作台量,减少手工网络配置的错误,有利于搭建一个大型网络或修改其网络配置。本文以档案馆DHCP服务器为基础,描述了DHCP服务器的构建过程。
DHCP,动态主机配置协议,是一种让系统得以连接到网络上,并获取所需要的配置参数手段。DHCP服务器的搭建一般可采用两种方式。
方式一:采用三层交换机自带的DHCP服务器功能,为各接入交换机下的计算机用户自动分配IP地址。使用三层交换机做DHCP服务器的好处在于:
(1)在三层交换机上实现DHCP服务器功能后,大量的DHCP UDP请求报文将不会直接转发到三层交换机上去,由此,相比于传统的方式,它有减少局域网负荷的优点。
(2)节省网络建设投资,不需另外采购一台服务器作为学校的DHCP服务器。
(3)由于三层交换机本身运行稳定,带来DHCP服务器的运行稳定。
(4)使用三层交换机来做DHCP服务器,不容易受到病毒的影响。
方式二:操作系统+服务器。操作系统可以是window2003、Linux、Solaris、FreeBSD等。
尽管采用汇聚交换机做DHCP服务器有众多的优点,可是在实际的网络环境中,还存在一些比较旧的汇聚交换机,它们或是不能提供DHCP Server的功能,或是所能提供的IP地址池的数量有限,不能实现该汇聚交换机上的所有VLAN动态获取IP地址。
基于上述考虑,在档案馆网络动态获取IP地址的实现上可采用这两种方式的其中一种。能够提供足够IP地址池的三层交换机则直接为下面的用户提供DHCP Server服务;不能够提供足够IP地址池的三层交换机则提供DHCP中继服务,用户的IP地址由一台专门的DHCP服务器提供。考虑到DHCP服务需长久稳定的运行,因此选择FreeBSD做为DHCP服务器的操作系统平台。
一、规划
将DHCP服务器放置在档案馆网络服务器群中,基本设置如下
DHCP服务器名:dhcpserver
DHCP服务器所在域:dagl.cn
DHCP服务器网关:172.16.1.254
DNS:202.103.224.68 172.16.1.33
DHCP服务器IP:172.16.1.16
DHCP服务器MASK:255.255.255.0
二、安装FreeBSD操作系统
FreeBSD操作系统安装十分简单,如在安装过程中遇到问题,可直接在互联网上进行查询,本文不再进行叙述。
三、安装DHCP服务器
安装好FreeBSD后,我们使用ports方式安装DHCP服务。
cd /usr/ports/net/isc-dhcp3-server/
make install
至此,DHCP服务安装完毕。在进行配置之前,先对与DHCP服务器的相关的几个文件及说明
/usr/local/sbin/dhcpd
dhcpd 是静态连接的,并安装到 /usr/local/sbin 中。
/usr/local/etc/dhcpd.conf
dhcpd 需要配置文件,即 /usr/local/etc/dhcpd.conf 才能够向客户机提供服务。这个文件需要包括应提供给客户机的所有信息,以及关于服务器运行的其他信息。
/var/db/dhcpd.leases
DHCP服务器会维护一个它签发的租用地址数据库,并保存在这个文件中,这个文件是以日志的形式保存的。
/usr/local/sbin/dhcrelay
dhcrelay 在更为复杂的环境中,可以用来支持使用 DHCP 服务器转发请求给另一个独立网络上的 DHCP 服务器。
四、配置DHCP服务器
下面编辑示范 dhcpd.conf, 默认情况下,它的名字应该是/usr/local/etc/dhcpd.conf.sample, 在开始修改之前,您需要把它复制为 /usr/local/etc/dhcpd.conf。
cp /usr/local/etc/dhcpd.conf.sample /usr/local/etc/dhcpd.conf
ee /usr/local/etc/dhcpd.conf
dhcpd.conf 包含了一系列关于子网和主机的定义,下面的例子可以帮助您理解它:
option domain-name"dagl.cn ";
option domain-name-servers 202.103.224.68,172.16.1.33;
default-lease-time 864000;
max-lease-time 864000;
ddns-update-style ad-hoc;
subnet 172.16.1.0 netmask 255.255.255.0 {
option routers 172.16.1.254}
这个选项指定了提供给客户机作为默认搜索域的域名。
这个选项用于指定一组客户机使用的DNS服务器,它们之间以逗号分隔。
客户机可以请求租约的有效期,而如果没有,则服务器将指定一个租约有效期,也就是这个值(单位是秒)。
这是服务器允许租出地址的最大时长。如果客户机请求了更长的租期,则它将得到一个地址,但其租期仅限于max-lease-time秒。
这个选项用于指定DHCP服务器在一个地址被接受或释放时是否应对应尝试更新DNS。这一选项是必须指定的。
该服务器IP所在网段。如不进行描述,则会出现“Not configured to listen on any interfaces”的错误提示。
至此,DHCP服务器的配置基本完毕,剩下的工作就是将需要动态分配的IP地址写入dhcpd.conf文件中。假设我们需要建立两个地址池,一个地址池是172.17.1.0/24,可分配IP是172.17.1.1-253,网关是172.17.1.24;另一个地址池是172.16.2.0/25,可分配IP地址是172.17.2.1-127,网关是172.17.2.128。设置及解释如下:
subnet 172.17.1.0 netmask 255.255.255.0 {
range 172.17.1.1 172.17.1.253;
option routers 172.17.1.254;}
subnet 172.17.2.0 netmask 255.255.255.128{
range 172.17.2.1 172.17.2.127;
option routers 172.17.2.128;}
指定地址池中可以用来分配给客户机的IP地址范围。在这个范围之间,以及其边界的IP地址将分配给客户机。
定义客户机的默认网关。
如果还需要更多的IP地址池,可直接按照上面的例子写入dhcpd.conf文件中。
一旦您撰写完dhcpd.conf,就可以用下面的命令来启动服务:
# /usr/local/sbin/dhcpd
五、设置系统自动启动DHCP服务
ee /etc/rc.local
/usr/local/sbin/dhcpd -cf /usr/local/etc/dhcpd.conf rl0
/sbin/route add -host DHCPserver(服务器名)-interface rl0
参考文献
[1]FreeBSD使用手册.http://doc.chinahtml.com/Manual/freebsd-handbook/,浏览时间:2007-12-11.
[2]王子华.用Linux FreeBSD轻松构建网络世界[M].北京:清华大学出版社,2001.
作者简介:甘萍(1967—),女,广西贵港人,助理馆员,现供职于广西财经学院综合档案室。
FreeBSD DHCP的工作过程DHCP服务器 第8篇
服务器用于充当DHCP服务器,负责分配IP地址,同时还作为文件服务器备份机房各种相关资料,如驱动程序、习题、镜像文件等。由于学生机没有光驱、软驱且无硬盘保护卡,为了便于维护系统,因此配置了远程启动功能,并在服务器上做了系统的镜像备份,这样一旦系统被学生破坏,可以很方便地通过网络克隆来恢复。
故障现象
在一次学生上机课中,发生学生机无法获得IP地址的情况,系统提示DHCP服务器不可用,无法获得IP地址,从而无法上网,重新启动计算机故障依旧。
原因分析
因为是DHCP错误,故障原因当然和DHCP有关。DHCP的工作过程是这样的:客户机启动后首先以广播方式发送DHCP discover信息,以获得DHCP服务器的IP地址;接下来,DHCP服务器收到DHCP客户机广播的DHCP discover信息后,它会向DHCP客户机发送DHCP offer信息,其中包括一个可租用的IP地址。如果DHCP服务器没有对客户机的请求作出反应,即初始化失败,这时客户机会自动给自己分配一个IP地址并且在后台每隔5分钟发送四次DHCP discover信息直至收到DHCP offer信息,
一旦客户机收到DHCP offer信息,就将使用服务器所提供的IP地址。
从DHCP的工作过程来分析,学生机无法获得IP地址应该是DHCP服务器没有做出响应,或者是学生机没有收到DHCP服务器的响应造成的。测试网线后首先排除了学生机收不到DHCP服务器响应的问题,由此判断DHCP服务器没有做出正常响应,但是DHCP服务器为什么没有做出响应呢?经查,当时机房内正有几台系统被学生破坏的计算机在进行网络克隆恢复,服务器需要进行大量的数据传输,这样就使得服务器负担过重,无法及时响应学生机发出的DHCP请求,从而造成客户由于无法获得IP地址不能访问互联网的结果。
笔者等到网络克隆过程全部结束后,重新启动客户机,客户机果然很顺利地获得了IP地址,问题得以解决。
不过,这样的问题只有通过升级服务器才能得以彻底解决,从而避免服务器负担过重
FreeBSD DHCP的工作过程DHCP服务器 第9篇
1、 备份、还原DHCP服务器配置信息
在网络管理工作中,备份一些必要的配置信息是一项重要的工作,以便当网络出现故障时,能够及时的恢复正确的配置信息,保障网络正常的运转。在配置DHCP服务器时也不例外,Windows 2003服务器操作系统中,也为我们提供了备份和还原DHCP服务器配置的功能。
第一步:打开DHCP控制台,在控制台窗口中,展开“DHCP”选项,选择已经建立好的DHCP服务器,右键单击服务器名,选择“备份”。(如图1)
图1:选择要备份配置信息的服务器(点击看大图)
第二步:这时便会弹出一个要求用户选择备份路径的选项。默认情况下,DHCP服务器的配置信息是放在系统安装盘的“windowssystem32dhcpbackup”目录下。如有必要,我们可以手动更改备份的位置。点击确定后就完成了对DHCP服务器配置文件的备份工作。(如图2)
图2:选择要备份配置文件的位置
第三步:当出现配置故障时,我们需要还原DHCP服务器的配置信息,右键单击DHCP服务器名,选择“还原”选项即可,同样会有一个确定还原位置的选项,选择我们备份时使用的文件夹单击“确定”按钮,这时会有一个“关闭和重新启动服务”的对话框,选择“确定”后,DHCP服务器就会自动恢复到最初的备份配置。(如图3)
图3:确定停止和重新启动DHCP服务
2、 移植DHCP服务器数据库
在有些使用相同DHCP服务器配置又不在同一台服务器的时候,这时网管员朋友会考虑使用重新配置,但手工重新配置会比较麻烦,这里我们为大家介绍一种最简单有效的方式:移植DHCP服务器数据库。
Windows 2003对windows 2003的DHCP服务器数据库移植:
第一步:首先在已经配置好DHCP服务器的机器上,点击“开始”菜单,打开运行对话框,输入“CMD”命令。(如图4)
图4:在“运行”对话框中输入“CMD”
第二步:在弹出的“命令提示符”对话框中,我们需要使用“NETSH”命令实现DHCP服务器的配置备份和移植。输入“netsh dhcp server export e:dhcp.txt all”命令,将DHCP服务器数据库信息备份到E盘,直到屏幕显示“命令成功完成”的提示返回提示符下,就表示已经将DHCP服务器数据库信息成功的备份到E盘当中,再次打开E盘,就会看到一个名为DHCP服务器的文本文件。(如图5)
图5:备
FreeBSD DHCP的工作过程DHCP服务器 第10篇
组播域实现了MADCAP以提供组播IP地址(D类)给客户端。超级作用域实际上将属于一个网络段的作用域与一个更大的逻辑实体绑定,它对于地址池之间的转移是十分有用的。新超级作用域和组播作用域的创建和管理类似于普通作用域。
1)打开DHCP服务器管理界面。
2)将焦点移到服务器节点,右键单击它以打开上下文菜单。
3)选择“NewScope”以启动相应的向导。如选择“NewSuperscope”或“NewMulticastScape”也将启动相应的用于收集所需信息的向导。
4)输入该作用域的名字及其描述。这些属性以后也可在作用域的属性窗口修改。单击“Next”。
5)输入起始和结束IP地址以定义IP地址池。然后输入以句点分隔的十进制数形式的子网掩码,也可以指定IP地址的网络部分的二进制位长度。图15-8显示了该操作。B类网的一部分地址被分配给该地址池,IP地址的最后一个字节是子网号。定义完后单击“Next”.
6)“NewScopeWizard”提供了一个窗口,在该窗口中列出的IP地址将被从作用域中排除。这里没有排除任何地址的必要,并且可以在以后修改该列表。单击“Next”
7)缺省的八天租借期也可以改变。在改变租借期时要理解改变可能带来的影响,尤其是对可能启用的任何DDNS清理,
接受缺省值或设置一个值,然后单击“Next”。
8)选择是否设置新作用域的选项。这些选项都可以人工设置,但如果你有多个作用域的话,使用缺省值更方便。作出选择后单击“Next”。
9)如果选择以后再配置选项,操作就结束了。否则需按指导一屏接一屏地提供一些设置,如网关值,客户端所属的DNS域,客户端使用的DNS服务器和WINS服务器。此后,还需选择是否立刻激活该作用域。
单击“Finish”后,新作用域被加到左边的长方框中服务器的下方,如图15-9所示。没有必要从作用域中排除任何地址。任何时候在管理窗口中扩展作用域节点,然后对地址池节点使用“NewExclusionRange”选项后就可修改被排除的IP地址。类似的租借期可以在任何时候使用作用域的属性设置,设置的单位为天,小时,分钟,最长可达999天。记住在调整租借期的同时要与DDNS的配置相协调。
新创建的作用域现在列出在管理控制台中,在相应的折叠夹上有一个白圈,白圈内部有一个向下的红色小箭头。(本例中更低的一个名为hq.example)该向下的箭头图标说明该作用域还未启用。在该作用域的上下文菜单中只有“Activate”而没有“Deactive”选项。在使用该作用域租借以前最好设置它的作用域选项。
注意不需先删除然后再创建某个作用域,只需将该作用域禁止而就可以实现对该作用域的维护或诊断,这样做是十分方便的。该方法通常在超级域内使用以确信存在的客户端不会被弃之不管,超级域是作用域的集合,但像一个单独的作用域一样使用。
编辑推荐TCP/IP协议专题
TCP/IP(传输入控制地议/网际协议)是一种网络通信协议,它规范了网络上的所有通信设备,尤其是一个主机与..
FreeBSD DHCP的工作过程DHCP服务器 第11篇
一、实验目的
(1)熟悉DHCP服务器的相关配置文件。(2)掌握DHCP服务器的配置方法。
(3)掌握利用命令行及图形化工具访问设置DHCP服务器的方法。(4)掌握DHCP客户端的设置方法
二、实验内容
配置DHCP服务器,为子网A内的客户机提供DHCP服务。具体参数如下: IP地址段:192.168.学号后两位.101-192.168.学号后两位.200 子网掩码:255.255.255.0 网关地址:192.168.学号后两位.254 域名服务器:192.168.0.1 子网所属域的名称:ncie.org 默认租约有效期:1天 最大租约有效期:3天 实验步骤:
1.配置服务器:
为服务器自身设置静态IP地址。编辑/etc/sysconfig/network-scripts目录下脚本文件ifcfg-eth0,内容形式如下: DEVICE=”eth0”
IPADDR=”192.168.学号后两位.10” NETMASK=“255.255.255.0” ONBOOT =”yes” BOOTPROTO=”none”
编辑/etc/sysconfig/network文件,内容如下: NETWORKING=yes HOSTNAME=”dhcpserver.ncie.org” GATEWAY=”192.168.学号后两位.254” GATEWAYDEV=”eth0”
启动TCP/IP网络:service network restart 为广播地址设置主机名称为dhcp。在/etc/hosts文件中加入如下一行: 255.255.255.255 dhcp 把广播地址加入路由表:route add –host dhcp dev eth0 编辑/etc/dhcpd.conf文件,内容如下:
subnet 192.168.xx.0 netmask 255.255.255.0 default-lease-time 86400;max-lease-time 259200;option routers 192.168.xx.254;option subnet-mask 255.255.255.0;option domain-name “ncie.org”;option domain-name-servers 192.168.0.1;{ range 192.168.xx.101 192.168.xx.200;} 建立租约数据库文件:touch /var/lib/dhcp/dhcpd.leases 启动dhcp服务器:service dhcpd start 检测dhcp服务器是否启动正常: netstat-utl 2.配置客户端: 配置客户机使用DHCP获取网络参数。编辑/etc/sysconfig/network-scripts下的ifcfg-eth0文件,内容形式如下: DEVICE=”eth0” ONBOOT=”yes”
BOOTPROTO=”dhcp”
浅析DHCP服务器故障 第12篇
DHCP服务器故障之不适当的地址分配
一个非常常见的DHCP相关问题是意外的IP地址分配。例如,假设你的DHCP服务器的IP地址范围配置为192.168.0.1到192.168.0.50.你希望电脑主机被分配以这个范围内的IP地址。现在,假设来自你网络上的一个工作站与网络服务器通信似乎出现问题。你发送一个IPCONFIG/ALL命令来查看工作站的IP地址配置。与期望的地址范围相反,工作被分配了一个以169.254开始的地址。
发生了什么事?如果来自你网络上的主机被意外地分配以169.254开始的地址,你又可以确认这个地址不是由你的DHCP服务器分配的。就是说工作站无法与DHCP服务器通信。当这种情况发生时,工作站将采用名为自动专用IP寻址(APIPA)的Windows特征给自身分配一个IP地址。
微软自动建立专用IP寻址到窗口,以帮助那些有很小的网络的机器。例如,如果你是要建立一个很小的Windows网络,即使网络上没有DHCP服务器,你也不需要手动配置IP地址。APIPA将自动在网络上为每台机器分配一个唯一的B类IP地址。这非常适合小型家庭网络,但完全不适合较大型的网络。
如果一个工作站依靠APIPA分配地址,这是因为它请求IP地址没有得到回应。有几种可能的原因造成这一问题。假定网络上的其他计算机能够从你的DHCP服务器获得一个IP地址,你可以排除DHCP服务器的问题。
极有可能的是,这个问题与安装在工作站中的网络硬件故障有关。例如,网络接口卡被分配以一个错误的驱动。另一个可能的原因是网线没插入网络接口卡,或者没有连接到另一端的开关。
当然,仅因为网络上的一台计算机在获取IP地址方面有问题并不能完全排除服务器的问题。如果其他工作站都能成功获取IP地址,那么可以肯定服务器正常工作。然而,也可能因为服务器已经分配完了可用的IP地址。通过将网络上请求来自DHCP服务器的IP地址的装置的数目与DHCP地址范围大小进行比较,你可以很容易地分辨是否是IP地址用尽的问题。
DHCP服务器故障之常见的DHCP服务器问题
如果多个工作站遇到租用IP地址的问题,那么问题很可能与DHCP服务器自身有关。如果你怀疑DHCP是造成问题的原因,那么你可以通过借助一些Ping的测试以确认DHCP能够在整个网络间通信来开始检测问题。
如果DHCP服务器能够与网络上的其他计算机通信,那么我建议核实DHCP服务器是否有一个符合范围的IP地址,并且服务器配置为这个指定的地址,
例如,如果DHCP服务器的地址范围从192.168.0.1到192.168.0.50,服务器实际上无法分配这些地址,除非服务器自身在同一个子网范围内已经分配了一个静态地址,如192.168.0.0或192.168.0.51。
如果这仍然不能解决问题,那么我建议检查基本配置。例如,你应该保证DHCP服务器仍然被当前目录授权可以租用IP地址。你同样应该检查,保证IP地址范围仍然有效,并且DHCP服务器上正在运行必要的服务。
DHCP服务器故障之IP地址冲突
另一个偶尔出现的问题涉及动态配置地址是IP地址冲突。当你创建一个DHCP范围时,DHCP服务器的责任就是确保范围内的地址一次只能租用给一个用户。如果那样的话,怎么可能在动态分配地址时出现IP地址冲突呢?
我碰到过两种情况可能导致这个问题。第一次遇到时,我能够决定哪台PC被分配给了重复的地址。当我检查这些机器上的TCP/IP时,我发现其中一台机器的IP地址被手动配置过。说来话长,但那台机器的使用者运行未授权的应用程序,需要一个静态IP地址。用户觉得每次使用应用程序时都要重新配置很麻烦,所以他们采用动态分配给他们的地址,将它当成一个静态地址输入。
今天这种情况发生的可能性非常小。上文中提到的特定情况的时候我使用的是Windows98。Windows98缺乏许多今天我们认为理所当然的安全机制。一个有正常安全防护的、系统为Windows XP或Windows VISTA的工作站应该能防止终端用户的重配置。即使如此,我想至少应该注意这个问题,因为如果你在解决这个问题上有疑难时使得你有据可查。
该问题一个更普遍的原因是多个DHCP服务器正在使用中,而那些DHCP服务器地址范围有重叠。如果你在自己的网络中仅有一个DHCP服务器,不要忽视这个可能造成问题的原因。十有八九,有一个非法DHCP服务器正与你的主要DHCP服务器冲突。
Windows 服务器和Windows服务器均以该方式设计,以防止非法DHCP服务器造成问题。DHCP服务器仅能够在被当前目录授权后发送地址。问题在于这仅适合于Windows平台下的DHCP服务器。其他操作系统上运行的DHCP服务器免费租用IP地址给用户,不需要被当前目录授权。
所以用户真正遭受了Linux平台下安装DHCP服务器的麻烦了吗?可能没有。更有可能的解释是,一个无线接入点,或者一个针对电缆或者DSL因特网连接的路由器造成问题。这样的装置内大多数都有DHCP。这些装置通常使用一个192.168.0.x或者192.168. 1.x的范围。如果凑巧与你的主要DHCP服务器所用的IP地址相同,那么你就陷入了这样一个困境,两个DHCP服务器均使用同一个地址资源发布地址!
DHCP服务器故障结论
FreeBSD DHCP的工作过程DHCP服务器 第13篇
dhcpd.conf-dhcpd 配置文件
描述
dhcpd.conf 文件包括ISC DHCP的dhcpd的配置信息。
dhcpd.conf文件是一个普通格式的ASCII码文档,它由内置的递归解析器解释。
dhcpd.conf文件可能会包含许多额外的tab和空格、空行,它们的目的是让文件更容易阅读。其中的关键字对大小写不敏感。注释语句可以放在任何位置(除了引号中)注释语句用# 开头,这一行结束时注释语句自然结束。
文件包括一组语句,语句在一对大括号中,包含参数和声明。
参数语句说明如何做一件事(例如,租期是多长时间),或者是否做一件事情。(例如,dhcpd 是否为未知客户提供地址),或者给客户提供哪种参数(例如,使用网关220.177.244.7)。
声明用来描述网络的拓扑结构、网络上的客户,提供可以为客户端分配的地址,或者对某个客户端组应用组(group)参数。在任何组参数中,所有的这些组参数必须比使用这些组参数的语句先出现。
网络声明包含多子网的网络(有些地方译为:超网,但超网太难理解了,这里叫“多子网网络”)和子网的拓扑声明。对于有地址被动态分配给客户端的子网,子网声明中必须有一个range声明语句。对于静态分配的地址,或者是已知客户的安装,每个客户端都必须使用一个host声明语句。如果一个参数应用到一组声明中,这些声明并不只与某个子网相关,可以定义一个“组参数”。
对每一个要服务的子网,每个dhcp服务器连接的子网,都必须有一个子网声明,用来告诉dhcpd如何处理那个子网上的地址。即使一个子网不需要分配任何地址,也需要一个子网声明。
一些物理网络上不只有一个IP子网存在,例如,如果一个网络需要一个8位的子网,但是当业务发展使总的节点数超过了254台,就需要增加一个8位的子网。这时,就增加了一个新的物理网络,这种情况下,2个网络的子网声明必须包含在一个“多子网网络声明(超级作用域)”中。
有些网络的客户端不只有一个子网,可能会为同一子网中一些客户端分配的一些参数与其它的客户端不同。这样的用户可以使用host语句来定义,一些参数也可以定义在“组参数”语句中,它被这些客户端共同调用。对于需要根据不同情况获得不同地址的客户端,可能会使用“类声明(class declarations)”和“条件声明(conditional declarations)”语句,这样可以根据客户端发送的信息来决定分配给客户端的参数。
当一个客户端启动时,服务器先查看是否有匹配客户端的host语句,如果没有,再看是否有匹配的“类声明(class declarations)”语句,接着查看是否有“池pool”匹配,“子网subnet”匹配和“多子网网络(超级作用域)shared-net-work”匹配。(根据这些匹配,)将符合这个客户端的参数提供给它。每种参数都不会被分析第2次,如果它们出现了2次或2次以上,那么会使用那个最精确出现的地方。
dhcpd首先查找客户端是否有包含固定IP地址的host语句,这个地址要在客户端启动的那个子网中,或者“多子网网络”中,如果没有对应的host语句匹配,那就查找非固定地址的声明。
例如:
一个典型的dhcpd.conf 文件将会象下面这样:
global parameters...subnet 204.254.239.0 netmask 255.255.255.224 {
subnet-specific parameters...range 204.254.239.10 204.254.239.30;
}
subnet 204.254.239.32 netmask 255.255.255.224 {
subnet-specific parameters...range 204.254.239.42 204.254.239.62;
}
subnet 204.254.239.64 netmask 255.255.255.224 {
subnet-specific parameters...range 204.254.239.74 204.254.239.94;
}
group {
group-specific parameters...host zappo.test.isc.org {
host-specific parameters...}
host beppo.test.isc.org {
host-specific parameters...}
host harpo.test.isc.org {
host-specific parameters...}
}
图 1
注意文件的开始,它是全局参数放置的地方,可能会是:
组织的域名,DNS服务器的地址(如果这个服务器对整个网络都是一样的)和其它一些。比如:
option domain-name “isc.org”;
option domain-name-servers ns1.isc.org, ns2.isc.org;
图 2
如图2中所示,可以使用DNS服务器的名称而不使用它的IP地址,如果指定不只一个DNS服务器地址,那么只要有可能,所有地址都会提供给客户端。
每个子网都要指明的最可能必须的参数是router,如图1所示。因此对于第一个子网,它就应该是这个样子的 option routers 204.254.239.1;
注意这里的地址是数字形式的,如果每个网关都有域名,这就不是必须的,使用域名也是合法的。然而,很多情况下,多个网关只有一个域名,这样就不能使用域名了。
在图1中,有一个group 语句,它为一组host语句zappo,beppo和harpo提供了通用的参数。如你所见,这些主机都在test.isc.org这个域里,这样它在“组参数”中指明就会覆盖全局设置的参数:
option domain-name “test.isc.org”;
而且,指明它们的域,可能用在测试机器中,如果我们要测试DHCP的租约机制,可以在这里设置比默认值更短的租约:
max-lease-time 120;
default-lease-time 120;
你可能注意到有些参数以option 关键字开头,有些不。以option 关键字开头的语句对应实际的DHCP选项,不以option关键字开头的选项控制服务端(例如,租期)或客户端的选项不在DHCP协议中(例如,服务器名或文件名)
在图1中,每个host 都有指定的参数,它会包含象hostname选项,要上传的文件名(filename 参数),还有要上传的服务器的地址(next-server 参数)。通常,任何参数都可以在任何可以出现的地方出现,并且按照参数出现位置确定应用范围。
假设你的环境中有许多没有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 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;}
}
地址池
“池”语句(pool)用来定义一个地址池,即便是在同一个网段或者子网,也可以定义几个池,系统将通过“池”来区分它们。例如,你可能想提供一大段地址分配给DHCP客户端时同时提供很短的租约的一小段地址,用来给未知客户。如果有防火墙,你可能会安排一段地址池能上网,另一个地址池不能上网,这可以鼓励用户注册到DHCP系统中来,也就需要建立两个地址池:
subnet 10.0.0.0 netmask 255.255.255.0 {
option routers 10.0.0.254;
# Unknown clients get this pool.pool {
option domain-name-servers bogus.example.com;
max-lease-time 300;
range 10.0.0.200 10.0.0.253;
allow unknown-clients;
}
# Known clients get this pool.pool {
option domain-name-servers ns1.example.com, ns2.example.com;
max-lease-time 28800;
range 10.0.0.5 10.0.0.199;
deny unknown-clients;
}
}
上面这个例子中,已知客户和未知客户在相同的子网中,也可能将已知和未知客户分配在不同的子网中,或者在“多子网层次(超级作用域)”,这样地址池的范围可能跨越不同的子网。正如前面的例子,地址池可以允许或拒绝一个控制用户存取的组,这个组名前面要有allow或 deny 关键字。
如果一个池有一个允许列表,只有匹配的客户端才可以获得地址池的地址,如果这个池有一个拒绝列表,只有不匹配的客户端才可以获得池中的地址,如果同时存在允许和拒绝列表,那么只有在允许列表并且不在拒绝列表中的客户端才可以获得池中的地址。
动态地址分配
地址分配实际只在客户端在初始状态并且发送一个 DHCPDISCOVER信息时完成。如果客户端认为它有一个有效的租约并且发送了一个DHCPREQUEST信息来初始化或者更新租约,服务器就只有3个选择:(1)它可以忽略DHCPREQUEST信息,并且返回一个DHCPNAK 信息来告诉客户端,要求客户端停止使用这个地址,(2)或者发送一个DHCPACK信息,告诉客户端继续再使用这个地址一段时间,如果服务器找到客户端要求的地址,并且这个地址对于这个客户也是可用的,服务器会发送一个DHCPACK信息,如果这个地址已经不能用了,客户端就不能使用它,此时服务器将会发送一个DHCPNAK信息,(3)如果服务器不知道这个地址,它会先保持沉默,除非这个地址对于客户端依附的地址段是不正确的,这种情况下服务器会发送一个DHCPNAK,即便它完全不知道这个地址。
如果有一个host语句定义了客户端,同时host语句中包含了固定地址(fixed-address),这个IP地址对于客户端实际连接的网段也是合法的,此时DHCP服务器不动态分配地址,而是发送host语句指明的地址。如果此时用户发送了DHCPREQUEST信息来获得其它地址,服务器会回应一个DHCPNAK信息,来拒绝为用户分配其它地址。
当一个DHCP服务器为客户端分配一个新的地址时(记住,这只发生在客户端发送DHCPDISCOVER信息时),它首先查找lease文件,看客户机是否存在一个有效的地址租约,或者此客户机原来是否有一个地址(这个地址已经过期),如果有,服务器就会检查那个地址,看客户端是否被允许使用这个地址,如果客户端已经不被允许使用这个地址(通常是客户机从另外一个子网登录了,或者此地址被其它客户端占用),并且服务器lease文件中显示原来的租约还存在,服务器就释放这个租约,事实上,此时是客户端发送的DHCPDISCOVER信息,它已经证明客户端实际并没有使用这个租约。如果没有找到存在的租约,或者客户端被强迫接收一个已经存在的租约,那么服务器就会查找客户端所在网段的地址池,找一个允许客户端使用而又没有使用的地址,它会按顺序遍历每个地址池(所有地址池外的“范围”range定义语句都组成一个没有允许列表的单独的池)。如果地址池的允许列表允许客户端得到一个池中的地址,这个地址池会被检查是否有可用的地址,如果有,客户端将会得到这个地址;否则,会检查下一个地址池。如果一直都没有找到可用的地址,服务器就不发送回应。如果找到一个地址,这个地址以前从未被任何客户端使用过,这个地址将立即分配给这个客户,如果这个地址曾经分配给另一个客户端,服务器会尝试查找一个从未分配的地址给客户端。
DHCP服务器使用哈希表(hash table)来产生一组可用的IP地址,这意味着地址不以任何特定的顺序存放,这样也就不能预测DHCP服务器下一个要分配的地址。前一个版本的ISC DHCP服务器使用降序来分配地址,现在不是了,并且在这个版本里也没有办法配置服务器分发地址的顺序(ISC DHCP 3)。
防止IP地址冲突
DHCP服务器在分配IP地址前检查它们是否被使用来防止冲突。它通过向准备分配的IP地址发送ICMP Echo 请求信息来完成,如果1秒内没有接收到ICMP Echo reply信息,就假定这个地址是可用的。这只对在range语句中指明的租约,并且租约被DHCP服务器认为可用时有效。例如,DHCP服务器或者它的热备机没有列出这个租约在使用中。如果收到ICMP Echo回应,DHCP服务器会假定出现了配置错误――IP地址被网络上的主机使用了,然后它标记这个地址为“废弃地址”,不再把它分配给客户端。如果DHCP客户端试图得到一个地址,但是却没有可用的地址,服务器会(随机)标记一个“废弃地址”为“可用”,然后向这个地址发送同样的ICMP Echo 请求,如果没有得到 ICMP Echo reply回应,这个地址就会分配给这个客户。
如果要收回的第一个IP地址是可用的,DHCP服务器不会去循环使用“废弃地址”。而且,当下一个客户的DHCPDISCOVER信息到达时,它会用相同的方法开始一个新的分配,并且尝试分配一个新的IP地址。
在Linux中配置DHCP服务器 安装DHCP服务器
DHCP配置文件
可以使用RHEL 5.0自身携带的RPM包安装,安装结束后DHCP端口监督程序dhcpd配置文件是/etc目录中的名为dhcpd.conf的文件。下面手工建立/etc/dhcpd.conf文件,该文件通常包括3个部分,即parameters参数、declarations声明和option选项。
1.DHCP配置文件中的parameters
parameters表明如何执行任务,以及是否要执行任务或将哪些网络配置选项发送给客户端,主要参数如表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 分配给客户端一个固定的地址
authritative 拒绝不正确的IP地址的要求
2.DHCP配置文件中的declarations declarations用来描述网络布局及提供客户的IP地址等,主要声明 声 明 解 释
shared-network 用来告知是否一些子网络共享相同网络 subnet 描述一个IP地址是否属于该子网 range起始IP终止IP 提供动态分配IP的范围 host主机名称 参考特别的主机 group 为一组参数提供声明 续表 声 明
解 释
allow unknown-clients﹔deny unknown-client 是否动态分配IP给未知的使用者
allow bootp;deny bootp 是否响应激活查询
allow booting﹔deny 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
为客户端设定格林威治时间的偏移时间,单位是秒
配置实例
在下面的实例中使用一个example.com的虚拟域名,用户需要修改其中的内容以满足网络的需求。/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 192.0.34.43,193.0.0.236;
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.conf to complete the redirection).log-facility local7;
# Handle client dynamic dns updates
ddns-update-style none;# Example Network 1(on eth0)
subnet 192.168.200.0 netmask 255.255.255.0 {
option domain-name “corp.example.com”;
range 192.168.200.100 192.168.200.200;
option routers 192.168.200.254;
}
上面的实例配置文件分为两个部分,即子网配置信息和全局配置信息。可以有多个子网,这里为了简化,只指定了一个子网。
(1)Subnet。
在上面的例子中,一个子网声明以“subset”关键字开始,所以子网信息包括在{}中。{}中的配置信息只对该子网有效,会覆盖全局配置。
(2)Global。
所有子网以外的配置都是全局配置,如果同一个全局配置没有被子网配置覆盖,则其将对所有子网生效。
(3)Configuration Options。
下面是上例中配置指令的解释说明。
option domain-name-servers 192.0.34.43,193.0.0.236;
这一行指定客户端应该使用的DNS服务器,该选项可以用于全局参数或者子网参数。
default-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服务器发送的日志信息的日志级别。
ddns-update-style none;
该配置可以指定一个方法,客户端用该方法来更新IP对应的域名信息,本例中禁用了该特性。
subnet 192.168.200.0 netmask 255.255.255.0 {
option domain-name “corp.example.com”;
range 192.168.200.100 192.168.200.200;
option routers 192.168.200.254;
}
上面内容为子网配置,第1行指定该子网地址和掩码。DHCP服务器必须拥有该子网的一个IP,domain-name设置该客户端的域名。DHCP服务器可以负责整个子网的信息,也可以只负责子网的一段。
option routers配置默认网关IP。
启动DHCP服务器
1.建立客户端租约文件
运行DHCP服务器还需要一个名为“dhcpd.leases”的文件,其中保存所有已经分发的IP地址。在Red Hat Linux发行版本中,该文件位于/var/lib/dhcp/目录中。如果通过RPM安装ISC DHCP,那么该目录应该已经存在。dhcpd.leases的文件格式为:
Leases address {statement}
一个典型的文件内容如下:
lease 192.168.1.255 { #DHCP服务器分配的IP地址#
starts 1 2005/05/02 03:02:26;# lease 开始租约时间#
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 “010000350240%206”;#用来验证客户机的UID标志#
client-hostname “cjh1”;#客户机名称#
}
注意:lease开始租约时间和lease结束租约时间是格林威治标准时间(GMT),不是本地时间。
第1次运行DHCP服务器时,dhcpd.leases是一个空文件,也不用手工建立。如果不是通过RPM安装ISC DHCP,或者dhcpd已经安装,那么应该试着确定dhcpd将其lease文件写到何处并确保该文件存在。也可以手工建立一个空文件:
#touch /var/lib/dhcp/dhcpd.leases
2.启动和检查DHCP服务器
使用命令启动DHCP服务器:
#service dhcpd start
使用ps命令检查dhcpd进程:
#ps-ef | grep dhcpd
root 2402 1 0 14:25 ? 00:00:00 /usr/sbin/dhcpd
root 2764 2725 0 14:29 pts/2 00:00:00 grep dhcpd
使用netstat检查dhcpd运行的端口:
# netstat-nutap | grep dhcpd
udp 0 0 0.0.0.0:67 0.0.0.0:* 2402/dhcpd
3.设置DHCP转发代理
DHCP的转发代理(dhcrelay)允许把无DHCP服务器子网内的DHCP和BOOTP请求转发给其他子网内的一台或多台DHCP服务器。当某个DHCP客户端请求信息时,DHCP转发代理把该请求转发给DHCP转发代理启动时所指定的一台DHCP服务器。当某台DHCP服务器返回一个回应时,该回应被广播或单播给发送最初请求的网络。除非使用INTERFACES指令在/etc/sysconfig/dhcrelay文件中指定了接口,否则DHCP转发代理监听所有接口上的DHCP请求。要启动DHCP转发代理,使用命令:
service dhcrelay start
4.从指定端口启动DHCP服务器
如果系统连接不止一个网络接口,但是只想让DHCP服务器启动其中之一,则可以配置DHCP服务器只在相应设备上启动。在/etc/sysconfig/dhcpd中,把接口的名称添加到DHCPDARGS的列表中:
# Command line options here
DHCPDARGS=eth0
如果有一个带有两块网卡的防火墙机器,这种方法就会大派用场。一块网卡可以被配置成DHCP客户端从互联网上检索IP地址;另一块网卡可以被用做防火墙之后的内部网络的DHCP服务器。仅指定连接到内部网络的网卡使系统更加安全,因为用户无法通过互联网来连接其守护进程。
其他可在/etc/sysconfig/dhcpd中指定的命令行选项如下。
(1)-p
:指定dhcpd应该监听的UDP端口号码,默认值为67。DHCP服务器在比指定的UDP端口大一位的端口号上把回应传输给DHCP客户端。例如,如果使用默认端口67,服务器就会在端口67上监听请求,然后在端口68上回应客户。如果在此处指定了一个端口号,并且使用了DHCP转发代理,所指定的DHCP转发代理所监听的端口必须是同一端口。
(2)-f:把守护进程作为前台进程运行,在调试时最常用。
(3)-d:把DCHP服务器守护进程记录到标准错误描述器中,在调试时最常用。如果未指定,日志将被写入/var/log/messages中。
(4)-cf
(5)-lf
(6)-q:在启动该守护进程时,不要显示整篇版权信息。
5.管理DHCP服务器端口
常见的DHCP服务器是dhcpd,可以通过命令行设定其监听端口。例如,使用以下命令:
#dhcpd eth0
该命令允许dhcpd进程只在eth0网络端口上工作,默认为监听所有端口。由于DHCP同样使用67和68端口通信,所以更改该端口将造成DHCP服务无法正常使用。
设置DHCP客户端
1.在Linux下配置DHCP客户端
配置DHCP客户端的第1步是确定内核能够识别网卡,多数网卡会在安装过程中被识别,系统会为该网卡配置恰当的内核模块。如果在安装后添加了一块网卡,Kudzu应该会识别它,并提示为其配置相应的内核模块。通常网管员选择手工配置DHCP客户端,需要修改/etc/sysconfig/network文件来启用联网;修改/etc/sysconfig/network-scripts目录中每个网络设备的配置文件,在该目录中的每种设备都有一个叫做“ifcfg-eth?”的配置文件。eth?是网络设备的名称,如eth0等。如果想在引导时启动联网,NETWORKING变量必须被设为yes。除此之外,/etc/sysconfig/network文件应该包含以下行:
NETWORKING=yes
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
每种需要配置使用DHCP的设备都需要一个配置文件。其他网络脚本包括的选项如下。
(1)DHCP_HOSTNAME:只有当DHCP服务器在接收IP地址前需要客户端指定主机名时才使用该选项。
(2)PEERDNS=:取值为如下之一。
yes:使用来自服务器的信息来修改/etc/resolv.conf。若使用DHCP,那么yes是默认值。
no:不要修改/etc/resolv.conf。
(3)SRCADDR=:是用于输出包的指定源IP地址。
(4)USERCTL=:取值为如下之一。
yes:允许非根用户控制该设备。
no:不允许非根用户控制该设备。
2.在Windows下设置DHCP客户端
Windows 2000和Windows XP的配置方法相同,DHCP客户端的配置很简单。只需要在“控制面板”中双击“网络连接”图标,然后在如图8-1所示的“本地连接属性”对话框中选择“Internet协议(TCP/IP)”属性。
“常规”选项卡中选择“自动获取IP地址”和“自动获取DNS服务器地址”单选按钮。
3.测试端口监督程序
现在应该已经可以将一个客户机接入到网络中,并通过DHCP请求一个IP地址。要通过Windows客户端测试,在DOS提示符下执行以下操作。(1)清除适配器可能已经拥有的IP地址信息,执行命令:
ipconfig /release
(2)向DHCP服务器请求一个新的IP地址,执行命令:
ipconfig /renew
显示从DHCP服务器获得的信息,应该会看到Primary WINS Server、DNS Servers和Connection-specific DNS Suffix域都获得了dhcpd.conf文件中提供的数据
DHCP简介
DHCP的前身是BOOTP,它工作在OSI的应用层,是一种帮助计算机从指定的DHCP服务器获取配置信息的自举协议。DHCP使用客户端/服务器模式,请求配置信息的计算机叫做“DHCP客户端”,而提供信息的叫做“DHCP服务器”。DHCP为客户端分配地址的方法有3种,即手工配置、自动配置和动态配置。DHCP最重要的功能就是动态分配,除了IP地址,DHCP还为客户端提供其他的配置信息,如子网掩码,从而使得客户端无须用户动手即可自动配置并连接网络。
为什么使用DHCP
DHCP在快速发送客户网络配置方面很有用,当配置客户端系统时,若管理员选择DHCP,则不必输入IP地址、子网掩码、网关或DNS服务器,客户端从DHCP服务器中检索这些信息。DHCP在网络管理员想改变大量系统的IP地址时也有用,与其重新配置所有系统,不如编辑服务器中的一个用于新IP地址集合的DHCP配置文件。如果某机构的DNS服务器改变,这种改变只须在DHCP服务器中,而不必在DHCP客户端上进行。一旦客户端的网络被重新启动(或客户端重新引导系统),改变就会生效。除此之外,如果便携电脑或任何类型的可移动计算机被配置使用DHCP,只要每个办公室都有一个允许其联网的DHCP服务器,它就可以不必重新配置而在办公室间自由移动。
DHCP的工作流程
1.发现阶段
即DHCP客户端查找DHCP服务器的阶段。客户机以广播方式(因为DHCP服务器的IP地址对于客户端来说是未知的)发送DHCP discover信息来查找DHCP服务器,即向地址255.255.255.255发送特定的广播信息。网络上每一台安装了TCP/IP的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应。
2.提供阶段
即DHCP服务器提供IP地址的阶段,在网络中接收到DHCP discover信息的DHCP服务器都会做出响应。它从尚未出租的IP地址中挑选一个分配给DHCP客户端,向其发送一个包含出租的IP地址和其他设置的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客户端发送一个包含其所提供的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客户端使用),则DHCP服务器给DHCP客户端回答一个DHCP NACK信息。当原来的DHCP客户端收到此信息后,必须重新发送DHCP discover信息来请求新的IP地址。
6.更新租约
DHCP服务器向DHCP客户端出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回该IP地址。如果DHCP客户端要延长其IP租约,则必须更新其IP租约。DHCP客户端启动时和IP租约期限过一半时,DHCP客户端都会自动向DHCP服务器发送更新其IP租约的信息。
DHCP的设计目标
(1)DHCP应该是一种机制而不是策略,它必须允许本地系统管理员控制配置参数,本地系统管理员应该能够对所希望管理的资源进行有效的管理。
(2)客户端不需要手工配置,而应该在不参与的情况下发现合适于本地机的配置参数,并利用这些参数加以配置。
(3)不需要为单个客户端配置网络,在通常情况下,网络管理员没有必要输入任何预先设计好的用户配置参数。
(4)DHCP不需要在每个子网上配置一台服务器,出于经济原因,DHCP服务器必须可以和路由器或BOOTP转发代理一起工作。
(5)DHCP客户端必须能对多个DHCP服务器提供的服务做出响应,出于网络稳定与安全的考虑,有时需要在网络中添加多台DHCP服务器。
(6)DHCP必须静态配置,而且必须用现存的网络协议实现。
(7)DHCP必须能够和BOOTP转发代理互操作。
(8)DHCP必须能够为现有的BOOTP客户端提供服务。
(9)不允许有多个客户端同时使用一个网络地址。
(10)在DHCP客户端重新启动后仍然能够保留其原先的配置参数,如果可能,客户端应该被指定为相同的配置参数。
(11)在DHCP服务器重新启动后仍然能够保留客户端的配置参数,如果可能,即使DHCP机制重新启动,也应该能够为客户端分配原有的配置参数。
(12)能够为新加入的客户端自动提供配置参数。
(13)支持对特定客户端永久固定分配网络地址。
上面(9)~(13)的设计目标是对于网络层参数的设计而言的,在网络层参数上,DHCP必须做到这几点。
安装DHCP服务器
DHCP配置文件
可以使用RHEL 5.0自身携带的RPM包安装,安装结束后DHCP端口监督程序dhcpd配置文件是/etc目录中的名为dhcpd.conf的文件。下面手工建立/etc/dhcpd.conf文件,该文件通常包括3个部分,即parameters参数、declarations声明和option选项。
1.DHCP配置文件中的parameters
parameters表明如何执行任务,以及是否要执行任务或将哪些网络配置选项发送给客户端,主要参数如表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 分配给客户端一个固定的地址
authritative 拒绝不正确的IP地址的要求
2.DHCP配置文件中的declarations
declarations用来描述网络布局及提供客户的IP地址等,主要声明
声明 声
明
解
释
shared-network 用来告知是否一些子网络共享相同网络
subnet 描述一个IP地址是否属于该子网
range起始IP终止IP 提供动态分配IP的范围
host主机名称
参考特别的主机
group 为一组参数提供声明
续表
声
明
解
释
allow unknown-clients﹔deny unknown-client 是否动态分配IP给未知的使用者 allow bootp;deny bootp 是否响应激活查询
allow booting﹔deny 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 为客户端设定格林威治时间的偏移时间,单位是秒
配置实例
在下面的实例中使用一个example.com的虚拟域名,用户需要修改其中的内容以满足网络的需求。/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 192.0.34.43, 193.0.0.236;
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.conf to complete the redirection).log-facility local7;
# Handle client dynamic dns updates
ddns-update-style none;# Example Network 1(on eth0)
subnet 192.168.200.0 netmask 255.255.255.0 {
option domain-name “corp.example.com”;
range 192.168.200.100 192.168.200.200;
option routers 192.168.200.254;}
上面的实例配置文件分为两个部分,即子网配置信息和全局配置信息。可以有多个子网,这里为了简化,只指定了一个子网。
(1)Subnet。
在上面的例子中,一个子网声明以“subset”关键字开始,所以子网信息包括在{}中。{}中的配置信息只对该子网有效,会覆盖全局配置。
(2)Global。
所有子网以外的配置都是全局配置,如果同一个全局配置没有被子网配置覆盖,则其将对所有子网生效。
(3)Configuration Options。
下面是上例中配置指令的解释说明。
option domain-name-servers 192.0.34.43, 193.0.0.236;
这一行指定客户端应该使用的DNS服务器,该选项可以用于全局参数或者子网参数。
default-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服务器发送的日志信息的日志级别。
ddns-update-style none;
该配置可以指定一个方法,客户端用该方法来更新IP对应的域名信息,本例中禁用了该特性。
subnet 192.168.200.0 netmask 255.255.255.0 {
option domain-name “corp.example.com”;
range 192.168.200.100 192.168.200.200;option routers 192.168.200.254;}
上面内容为子网配置,第1行指定该子网地址和掩码。DHCP服务器必须拥有该子网的一个IP,domain-name设置该客户端的域名。DHCP服务器可以负责整个子网的信息,也可以只负责子网的一段。
option routers配置默认网关IP。
启动DHCP服务器
1.建立客户端租约文件
运行DHCP服务器还需要一个名为“dhcpd.leases”的文件,其中保存所有已经分发的IP地址。在Red Hat Linux发行版本中,该文件位于/var/lib/dhcp/目录中。如果通过RPM安装ISC DHCP,那么该目录应该已经存在。dhcpd.leases的文件格式为:
Leases address {statement}
一个典型的文件内容如下:
lease 192.168.1.255 { #DHCP服务器分配的IP地址#
starts 1 2005/05/02 03:02:26;# lease 开始租约时间#
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 “010000350240%206”;#用来验证客户机的UID标志#
client-hostname “cjh1”;#客户机名称# }
注意:lease开始租约时间和lease结束租约时间是格林威治标准时间(GMT),不是本地时间。第1次运行DHCP服务器时,dhcpd.leases是一个空文件,也不用手工建立。如果不是通过RPM安装ISC DHCP,或者dhcpd已经安装,那么应该试着确定dhcpd将其lease文件写到何处并确保该文件存在。也可以手工建立一个空文件:
#touch /var/lib/dhcp/dhcpd.leases
2.启动和检查DHCP服务器
使用命令启动DHCP服务器:
#service dhcpd start
使用ps命令检查dhcpd进程:
#ps-ef | grep dhcpd
root 2402 1 0 14:25 ? 00:00:00 /usr/sbin/dhcpd
root 2764 2725 0 14:29 pts/2 00:00:00 grep dhcpd
使用netstat检查dhcpd运行的端口:
# netstat-nutap | grep dhcpd
udp 0 0 0.0.0.0:67 0.0.0.0:* 2402/dhcpd
3.设置DHCP转发代理
DHCP的转发代理(dhcrelay)允许把无DHCP服务器子网内的DHCP和BOOTP请求转发给其他子网内的一台或多台DHCP服务器。当某个DHCP客户端请求信息时,DHCP转发代理把该请求转发给DHCP转发代理启动时所指定的一台DHCP服务器。当某台DHCP服务器返回一个回应时,该回应被广播或单播给发送最初请求的网络。除非使用INTERFACES指令在/etc/sysconfig/dhcrelay文件中指定了接口,否则DHCP转发代理监听所有接口上的DHCP请求。要启动DHCP转发代理,使用命令:
service dhcrelay start
4.从指定端口启动DHCP服务器
如果系统连接不止一个网络接口,但是只想让DHCP服务器启动其中之一,则可以配置DHCP服务器只在相应设备上启动。在/etc/sysconfig/dhcpd中,把接口的名称添加到DHCPDARGS的列表中: # Command line options here
DHCPDARGS=eth0
如果有一个带有两块网卡的防火墙机器,这种方法就会大派用场。一块网卡可以被配置成DHCP客户端从互联网上检索IP地址;另一块网卡可以被用做防火墙之后的内部网络的DHCP服务器。仅指定连接到内部网络的网卡使系统更加安全,因为用户无法通过互联网来连接其守护进程。
其他可在/etc/sysconfig/dhcpd中指定的命令行选项如下。
(1)-p
:指定dhcpd应该监听的UDP端口号码,默认值为67。DHCP服务器在比指定的UDP端口大一位的端口号上把回应传输给DHCP客户端。例如,如果使用默认端口67,服务器就会在端口67上监听请求,然后在端口68上回应客户。如果在此处指定了一个端口号,并且使用了DHCP转发代理,所指定的DHCP转发代理所监听的端口必须是同一端口。
(2)-f:把守护进程作为前台进程运行,在调试时最常用。
(3)-d:把DCHP服务器守护进程记录到标准错误描述器中,在调试时最常用。如果未指定,日志将被写入/var/log/messages中。
(4)-cf
(5)-lf
(6)-q:在启动该守护进程时,不要显示整篇版权信息 5.管理DHCP服务器端口
常见的DHCP服务器是dhcpd,可以通过命令行设定其监听端口。例如,使用以下命令:
#dhcpd eth0
该命令允许dhcpd进程只在eth0网络端口上工作,默认为监听所有端口。由于DHCP同样使用67和68端口通信,所以更改该端口将造成DHCP服务无法正常使用。
设置DHCP客户端
1.在Linux下配置DHCP客户端 配置DHCP客户端的第1步是确定内核能够识别网卡,多数网卡会在安装过程中被识别,系统会为该网卡配置恰当的内核模块。如果在安装后添加了一块网卡,Kudzu应该会识别它,并提示为其配置相应的内核模块。通常网管员选择手工配置DHCP客户端,需要修改/etc/sysconfig/network文件来启用联网;修改/etc/sysconfig/network-scripts目录中每个网络设备的配置文件,在该目录中的每种设备都有一个叫做“ifcfg-eth?”的配置文件。eth?是网络设备的名称,如eth0等。如果想在引导时启动联网,NETWORKING变量必须被设为yes。除此之外,/etc/sysconfig/network文件应该包含以下行:
NETWORKING=yes
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes
每种需要配置使用DHCP的设备都需要一个配置文件。其他网络脚本包括的选项如下。
(1)DHCP_HOSTNAME:只有当DHCP服务器在接收IP地址前需要客户端指定主机名时才使用该选项。
(2)PEERDNS=:取值为如下之一。
yes:使用来自服务器的信息来修改/etc/resolv.conf。若使用DHCP,那么yes是默认值。
no:不要修改/etc/resolv.conf。
(3)SRCADDR=:是用于输出包的指定源IP地址。
(4)USERCTL=:取值为如下之一。
yes:允许非根用户控制该设备。
no:不允许非根用户控制该设备。
2.在Windows下设置DHCP客户端
Windows 2000和Windows XP的配置方法相同,DHCP客户端的配置很简单。只需要在“控制面板”中双击“网络连接”图标,然后在如图8-1所示的“本地连接属性”对话框中选择“Internet协议(TCP/IP)”属性。“常规”选项卡中选择“自动获取IP地址”和“自动获取DNS服务器地址”单选按钮。
3.测试端口监督程序
现在应该已经可以将一个客户机接入到网络中,并通过DHCP请求一个IP地址。要通过Windows客户端测试,在DOS提示符下执行以下操作。
(1)清除适配器可能已经拥有的IP地址信息,执行命令:
ipconfig /release
(2)向DHCP服务器请求一个新的IP地址,执行命令:
ipconfig /renew
显示从DHCP服务器获得的信息,应该会看到Primary WINS Server、DNS Servers和Connection-specific DNS Suffix域都获得了dhcpd.conf文件中提供的数据:
ipconfig /all
DHCP服务器的故障排除
通常配置DHCP服务器很容易,有一些技巧可以帮助避免出现问题。对服务器而言,要确保网卡正常工作并具备广播功能;对客户端而言,要确保网卡正常工作。最后,要考虑网络的拓扑,以及客户端向DHCP服务器发出的广播消息是否会受到阻碍。另外,如果dhcpd进程没有启动,那么可以浏览syslog消息文件来确定是哪里出了问题,这个消息文件通常是/var/ log/messages。
客户端无法获取IP地址
DHCP服务器配置完成且没有语法错误,但是网络中的客户端却无法取得IP地址。这通常是由于Linux DHCP服务器无法接收来自255.255.255.255的DHCP客户端的request封包造成的,一般是Linux DHCP服务器的网卡没有设置MULTICAST功能。为了让dhcpd(dhcp程序的守护进程)能够正常地和DHCP客户端沟通,dhcpd必须传送封包到255.255.255.255这个IP地址。但是在有些Linux系统中,255.255.255.255这个IP地址被用来作为监听区域子网域(local subnet)广播的IP地址。所以需要在路由表(routing table)中加入255.255.255.255以激活MULTICAST功能,执行命令:
route add-host 255.255.255.255 dev eth0
如果报告错误消息:
255.255.255.255:Unkown host
那么修改/etc/hosts,加入如下行:
255.255.255.255 dhcp
DHCP客户端程序和DHCP服务器不兼容
由于Linux有许多发行版本,不同版本使用的DHCP客户端和DHCP服务器程序也不相同。Linux提供了4种DHCP客户端程序,即pump、dhclient、dhcpxd和dhcpcd。了解不同Linux发行版本的服务器端和客户端程序对于排除常见错误是必要的,如果使用SuSE Linux 9.1 DHCP服务器和使用Mandrake Linux 9.0客户端不兼容的情况,则必须更换客户端程序。方法是停止客户端的网络服务,卸载原程序,然后安装和服务器端兼容的程序。表8-4所示为主要Linux发行版本使用的DHCP客户端。
主要Linux发行版本使用的DHCP客户端
发行版本
默认DHCP客户端
可选DHCP客户端
DHCP客户端启动脚本
附加配置文件
RHEL 4.0 dhclient
无
/sbin/ifup
/etc/sysconfig/network /etc/sysconfig/network-scripts/ifcfg-eth0 Debian Linux 3.0 dhclient
无
/sbin/ifup /etc/network/interfaces /etc/dhclient.conf Mandrake Linux 9.1 dhclient
dhcpcd、dhcpxd和pump /sbin/ifup
/etc/sysconfig/network /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/dhclient-eth0.conf SuSE Linux 9.1 dhcpcd dhclient
/sbin/ifup-dhcp
/etc/sysconfig/network/dhcp /etc/sysconfig/network/ifcfg-eth0 管理监控DHCP服务器
/etc/dhcpd.conf通常包括3个部分,即parameters、declarations和option,共40多个参数,可以使用Gdhcpd管理监控DHCP服务器。
Gdhcpd是一个在GNOME及KDE桌面环境下的DHCP管理工具,基本上能实现命令行模式下的所有功能。由于DHCP是一个非常复杂的协议,所以配置工作也是比较麻烦的。
Gdhcpd是一套在GTK+图形界面下开发并用于帮助管理员在桌面环境下完成DHCP设置工作的DHCP前端程序。通过Gdhcpd,网络管理员可以管理DHCP,包括启动及停止DHCP服务器的服务。也可以直接修改配置文件,或决定系统重新启动的时间。几乎所有与DHCP相关的功能都能使用Gdhcpd直接完成。1.下载安装 #Wget linux/gdhcpd/gdhcpd-0.2.9.tar.gz">http://mange.dynalias.org/linux/gdhcpd/gdhcpd-0.2.9.tar.gz 2.系统要求
硬件要求为中央处理器兼容Intel X86处理器,PentiumII 400以上,64 MB(推荐128 MB)内存,150 MB以上硬盘空间,显示内存4 MB。软件要求为内核版本基于2.4或以上,GNOME 1.2以上。桌面分辨率至少为640×480,桌面颜色至少65 000色(16位元)。3.安装前的准备工作
安装过程中需要编译,因此需要GCC(2.96以上)、Qt(2.0以上)和GTK+2.0支持,需要使用RPM来确认:
rpm-qa | grep gcc;rpm-qa | grep qt;rpm-qa | grep gtk+ 4.在命令行下安装软件 命令如下:
gunzip gdhcpd-0.2.9.tar.gz tar vxf gdhcpd-0.2.9.tar cd gdhcpd-0.2.9./configure;make;make install 5.运行软件
执行一个终端运行命令“/usr/sbin/gdhcpd”,显示Scopes设置界面,如图所示。Scopes设置界面
在这个界面中可以设置/etc/dhcpd.conf的parameters、declarations及option。在Single hosts界面中可以设置Hostname和Hardware address等,Single hosts设置界面
在中型网络中,数百台计算机的IP地址的管理是一个大问题。为了解决这个问题,相信许多校园网网管会使用DHCP来动态地为客户端分配IP地址。但是这同样意味着如果DHCP服务器因为某种原因瘫痪,DHCP服务自然也就无法使用。客户端也就无法获得正确的IP地址,从而影响整个网络的运行。为解决这个问题,配置两台以上的DHCP服务器即可。如果其中的一台DHCP服务器故障,另外一台DHCP服务器就会自动承担分配IP地址的任务。对于用户来说,这个过程是透明的,他们并不知道DHCP服务器的变化。
另外,在一个具备多个子网的网络中,提供冗余是一个非常重要的方法。由于DHCP中DHCP服务器负责分配IP地址,一旦DHCP服务器出现故障,那么所有的客户端就无法正确获得IP地址,从而不能访问网络。
可以同时设置多台DHCP服务器来提供冗余,然而Linux的DHCP服务器本身不提供备份。它们占用的IP地址资源也不能重叠,以免发生客户端IP地址冲突的现象。提供容错能力即通过分割可用的IP地址到不同的DHCP服务器上,多台DHCP服务器同时为一个网络服务,从而使得一台服务器发生故障还能正常执行操作。通常为了进一步增强可靠性,还可以将不同的DHCP服务器放置在不同子网中,互相使用中转提供服务。
例如,在两个子网中各自有一台DHCP服务器。标准的做法可以不使用DHCP中转,各子网中的服务器为各个子网服务。然而为了达到容错的目的,可以互相为另一个子网提供服务,通过设置中转或路由器转发广播以达到互为服务的目的。
例如,位于192.168.3.0网络上的srv1的配置文件片段为: subnet 192.168.3.0 netmask 255.255.255.0 {
range 192.168.3.10 192.168.3.199;
}
subnet 192.168.4.0 netmask 255.255.255.0 { range 192.168.4.200 192.168.4.220;} 位于192.168.4.0网络上的srv2的配置文件片段可能为: subnet 192.168.4.0 netmask 255.255.255.0 { range 192.168.4.10 192.168.4.199;}subnet 192.168.3.0 netmask 255.255.255.0 { range 192.168.3.200 192.168.3.220;} 注意:上述设置都是设置样例,标准情况下还需分别指定各option,用于设置IP地址及其相关设置。
可以看出两台服务器都能为两个网络上的客户端分配IP地址,而各自又有一个主要服务的网络。每个网络上的IP地址主要放在本地的服务器上,但也有少部分地址放在另一台子网中的服务器中(地址资源不能冲突),这样提供了一定的容错能力。实际上在多子网网络中,没有必要每个子网设置一台服务器,并使用另外的服务器备份。一般网络中有2台~3台DHCP服务器即可。其他子网可以通过DHCP中转的方式,为该子网提供DHCP服务。以debug模式运行DHCP服务器 执行命令如下: #dhcpd-d 该命令指明dhcpd将出错信息记录到标准的错误描述器,记录的信息将根据/etc/syslog.conf文件的配置保存在指定的文件中。例如,在/etc/syslog.conf文件中要指定记录debug信息:
logalldebuginformationinto/var/log/dameon.log dameon.=debug/var/log/dameon.log
小结