[RHEL5企业级企业级企业级企业级Linux服务攻略服务攻略服务攻略服务攻略]--第第第第3季季季季DHCP服务全攻略服务全攻略服务全攻略服务全攻略标签:LinuxDHCPRHEL5服务攻略攻略dhcpd[推送到技术圈]版权声明版权声明版权声明版权声明::::原创作品,谢绝转载!否则将追究法律责任。1DHCP原理原理原理原理1.1DHCP概述概述概述概述DHCP(DynamicHostConfigurationProtocal)就是动态主机配置协议哈,可以自动配置主机的IP地址、子网掩码、网关及DNS等TCP/IP信息。所以DHCP可以有效地降低客户端IP地址配置的复杂度和网络的管理成本。如果路由器能够转发DHCP请求,只需要在一个子网中配置DHCP服务器就可以向其他子网提供TCP/IP配置的服务支持哈~~1.2DHCP的应用环境的应用环境的应用环境的应用环境DHCP主要应用在以下两个应用环境,一个就是局域网中存在大量主机,第二种就是局域网中存在比较多的移动办公设备。1.3DHCP术语术语术语术语DHCP服务器服务器服务器服务器::::配置DHCP服务的计算机DHCP客户端客户端客户端客户端::::启用DHCP设置的计算机作用域作用域作用域作用域::::一个完整连续的可用IP地址范围,DHCP服务主要就是通过作用域来管理网络分布、IP地址分配及其他相关配置参数。超级作用域超级作用域超级作用域超级作用域::::管理级的作用域集合,用于支持同一物理网络上的多个逻辑IP子网。超级作用域包含子作用域的列表,对子作用域进行统一管理。排除范围排除范围排除范围排除范围::::排除范围是作用域内从DHCP服务中排除的有限IP地址序列。排除范围确保在这些范围中的任何地址都不是由网络上的服务器提供给DHCP客户机的。地址池地址池地址池地址池::::在定义DHCP作用域并应用排除范围之后,剩余的地址在作用域内形成可用地址池,也就是作用域中包含的可用IP地址范围哈,地址池中的地址可以由DHCP服务器动态分配给DHCP客户机。租约租约租约租约::::客户计算机可以使用动态分配的IP地址的时间,这个时间可以由DHCP服务器设定哈。当向一台客户机发出租约后,此租约就被看作是活动的,在租约终止前,客户机可以向DHCP服务器更新其租约。当租约到期或被服务器删除后,它就变成不活动的了,租约持续时间决定了租约什么时候终止及客户机隔多久向DHCP服务器更新其租约。预约预约预约预约::::创建从DHCP服务器到客户机的永久地址租约指定,预约可以保证子网上的特定硬件设备总是使用相同的IP地址,这对于远程访问网关、DNS服务器等必须要配置IP地址的计算机非常有用。选项类型选项类型选项类型选项类型::::DHCP服务器向DHCP客户机提供租约服务时可以指定的其他客户机配置参数。典型地这些选项类型由各个作用域启用和配置。虽然大多数选项都是在RFC2132中预定义了,但若需要的话,我们还是可以使用DHCP管理器定义并添加自定义选项类型。选项类别选项类别选项类别选项类别::::DHCP服务用于进一步提供给客户机的选项类型的方法。选项类别可以在用户的DHCP服务器上配置以提供特定的客户机支持。当一个选项类别添加到服务器后,就可以为该类别的客户机配置提供特定类别的选项类型。1.4DHCP工作原理工作原理工作原理工作原理我们来了解下DHCP的工作原理哈~~(1)当DHCP客户机第一次登录网络时,如果客户机上没有任何IP信息设定,它会向网络发出DHCPDISCVER数据包,为保证服务器能够接收到请求,数据包源地址设定为0.0.0.0,而目的地址为255.255.255.255,以广播形式发送DHCPDISCOVER的信息。(2)当DHCP服务器监听到客户端发出的DHCPDISCOVER广播后,它会从那些还没有租出的地址范围内选择可用的IP及其他TCP/IP设定以DHCPOFFER数据包的形式发送给客户机。(3)如果客户端收到网络上多台DHCP服务器的响应,客户端会挑选最快的一个DHCPOFFER并向网络发送一个DHCPREQUEST广播封包,告诉所有DHCP服务器它将使用哪一台服务器提供的IP地址。同时,客户端还会向网络发送ARP广播数据包,查询网络上面有没有其他机器使用该IP地址,如果发现该IP地址已经被占用,客户端则会发送一个DHCPDECLINE数据包给DHCP服务器,拒绝接受其DHCPOFFER,并重新发送DHCPREQUEST信息。注:实际上并不是所有DHCP客户端都会无条件接受DHCP服务器的响应,客户端可以保留自己的一些TCP/IP设定,比如网关、DNS地址等等哈~~~(4)将地址分配给客户端后,DHCP服务器会发送一个DHCPACK消息,以确认IP租约的正式生效,结束完整的DHCP工作过程。(5)DHCP客户端成功地从服务器取得IP地址之后,一般不需要再发送DHCPDISCOVER信息了,除非其租约已经到期或者IP地址重新设定回0.0.0.0。此时客户端会直接使用已经租用到的IP地址向为其发此IP地址的DHCP服务器发出DHCPREQUEST信息,DHCP服务器会尽量让客户端使用原来的IP地址,如果没有特殊的情况,会直接响应DHCPACK,允许客户端继续使用该IP地址。如果该地址已经失效或者已经被其他主机使用了,服务器则会响应一个DHCPNACK数据包给客户端,要求其重新执行DHCPDISCOVER。注意:客户端执行DHCPDISCOVER后,如果没有DHCP服务器响应客户端的请求,客户端会随机使用169.254.0.0/16网段中的一个IP地址配置本机地址。2安装安装安装安装DHCP服务服务服务服务2.1DHCP所需软件所需软件所需软件所需软件dhcp-3.0.5-7.el5.i386.rpm这是DHCP主程序包,包括DHCP服务和中继代理程序,安装该软件包进行相应配置,即可以为客户机动态分配IP地址及其他TCP/IP信息。dhcp-devel-3.0.5-7.el5.i386.rpm这是DHCP服务器开发工具软件包,为DHCP开发提供库文件支持。dhcpv6-0.10-33.el5.i386.rpm这是DHCP的IPv6扩展工具,使DHCP服务器能够支持IPv6的最新功能,如IPv6地址的动态配置以及IPv6中继代理等等哈~~dhcpv6_client-0.10-33.el5.i386.rpm这是DHCP客户端IPv6软件包,帮助客户端获取动态IP地址。2.2DHCP的安装的安装的安装的安装我们先检测下系统是否已经安装了DHCP相关软件哈~:rpm-qa|grepdhcp我们安装DHCP主程序包哈~如果需要我们还可以安装DHCP服务器开发工具软件包和DHCP的IPv6扩展工具安装完后我们再查询下哈~3DHCP常规服务器配置常规服务器配置常规服务器配置常规服务器配置基本的基本的基本的基本的DHCP服务器搭建流程服务器搭建流程服务器搭建流程服务器搭建流程:(1)编辑主配置文件dhcpd.conf,指定IP作用域(指定一个或多个IP地址范围)。(2)建立租约数据库文件。(3)重新加载配置文件或重新启动dhcpd服务使配置生效。DHCP工作流程工作流程工作流程工作流程::::(1)客户端发送广播向服务器申请IP地址。(2)服务器收到请求后查看主配置文件dhcpd.conf,先根据客户端的MAC地址查看是否为客户端设置了固定IP地址。(3)如果为客户端设置了固定IP地址则将该IP地址发送给客户端。如果没有设置固定IP地址,则将地址池中的IP地址发送给客户端。(4)客户端收到服务器回应后,客户端给于服务器回应,告诉服务器已经使用了分配的IP地址。(5)服务器将相关租约信息存入数据库。3.1主配置文件主配置文件主配置文件主配置文件dhcpd.conf1))))dhcpd.conf主配置文件组成部分主配置文件组成部分主配置文件组成部分主配置文件组成部分parameters((((参数参数参数参数))))declarations((((声明声明声明声明))))option((((选项选项选项选项))))2)dhcpd.conf主配置文件整体框架主配置文件整体框架主配置文件整体框架主配置文件整体框架dhcpd.conf包括全局配置和局部配置。全局配置可以包含参数或选项,该部分对整个DHCP服务器生效。局部配置通常由声明部分来表示,该部分仅对局部生效,比如只对某个IP作用域生效哈~dhcpd.conf文件格式:#全局配置参数或选项;#全局生效#局部配置声明{参数或选项;#局部生效}当DHCP主程序包安装好后会自动生成主配置文件的范本文件/usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample而在/etc目录下会建立一个空白的dhcpd.conf主配置文件。现在我们将范本配置文件复制到/etc目录下替换掉空白dhcpd.conf主配置文件。dhcp范本配置文件内容包含了部分参数、声明以及选项的用法,其中注释部分可以放在任何位置,并以“#”号开头,当一行内容结束时,以“;”号结束,大括号所在行除外哈~~~可以看出整个配置文件分成全局和局部两个部分。但是并不容易看出哪些属于参数,哪些属于声明和选项哈~3.2常用参数介绍常用参数介绍常用参数介绍常用参数介绍参数主要用于设置服务器和客户端的动作或者是否执行某些任务,比如设置IP地址租约时间、是否检查客户端所用的IP地址等等哈~常见参数使用如下:((((1))))ddns-update-style(none|interim|ad-hoc)作用:定义所支持的DNS动态更新类型。none:表示不支持动态更新interim:表示DNS互动更新模式ad-hoc:表示特殊DNS更新模式注意:这个选项是必选参数哈,配置文件中必须包含这一个参数并且要放在第一行。((((2))))ignoreclient-updates作用:忽略客户端更新注意:这个参数只能在服务器端使用。((((3))))default-lease-timenumber(数字数字数字数字)作用:定义默认IP租约时间((((4))))max-lease-timenumber(数字数字数字数字)作用:定义客户端IP租约时间的最大值注意:(3)、(4)都是以秒为单位的租约时间,该项参数可以作用在全局配置中,也可以作用在局部配置中。3.3常用声明介绍常用声明介绍常用声明介绍常用声明介绍声明一般用来指定IP作用域、定义为客户端分配的IP地址池等等哈~声明格式如下:声明{选项或参数;}常见声明的使用如下:((((1))))subnet网络号网络号网络号网络号netmask子网掩码子网掩码子网掩码子网掩码{......}作用:定义作用域,指定子网注意:网络号必须与DHCP服务器的网络号相同((((2))))range起始起始起始起始IP地址地址地址地址结束结束结束结束IP地址地址地址地址作用:指定动态IP地址范围注意:可以在subnet声明中指定多个range,但多个range所定义IP范围不能重复哈~3.4常用选项介绍常用选项介绍常用选项介绍常用选项介绍选项通常用来配置DHCP客户端的可选参数,比如定义客户端的DNS地址、默认网关等等。选项内容都是以option关键字开始滴~常见选项使用如下:((((1))))optionroutersIP地址地址地址地址作用:为客户端指定默认网关((((2))))optionsubnet-mask子网掩码子网掩码子网掩码子网掩码作用:设置客户端的子网掩码((((3))))optiondomain-name-serversIP地址地址地址地址作用:为客户端指定DNS服务器地址注意:(1)、(2)、(3)选项可以用在全局配置中,也可以用在局部配置中。3.5租约数据库文件租约数据库文件租约数据库文件租约数据库文件租约数据库文件用于保存一系列的租约声明,其中包含客户端的主机名、MAC地址、分配到的IP地址,以及IP地址的有效期等相关信