第05050505章DHCPDHCPDHCPDHCP服务的配置与应用本章导读�DHCP服务概述�DHCP服务的安装�DHCP服务的配置�启动和停止DHCP服务�DHCP客户端的配置5.1DHCP服务概述•DHCP服务的简介•DHCPDHCPDHCPDHCP服务工作原理DHCP服务的简介DHCP基于客户/服务器模式。当DHCP客户端启动时,它会自动与DHCP服务器通信,由DHCP服务器为DHCP客户端提供自动分配IP地址的服务。安装了DHCP服务软件的服务器称为DHCP服务器,而启用了DHCP功能的客户机称为DHCP客户端。DHCP服务器是以地址租约的方式为DHCP客户端提供服务的,它有以下两种方式。1.限定租期2.永久租用DHCP服务工作原理1.向DHCP服务器索取新的IP地址(1)DHCPDISCOVER(DHCP发现)(2)DHCPOFFER(DHCP提供)(3)DHCPREQUEST(DHCP请求)(4)DHCPACK(DHCP确认)DHCP服务工作原理2.更新IP地址租约①当DHCP客户端的IP地址使用时间达到租期的一半时,它就会向DHCP服务器发送一个新的DHCPREQUEST。若服务器在接收到该信息后并没有可拒绝该请求的理由,就会送一个DHCPACK信息。当DHCP客户端收到该应答信息后,就重新开始一个租用周期。②当进行IP地址的续租过程中出现以下两种特例中的任意一种时,需要另外处理。�DHCP客户端重新启动时�IP地址的租期超过一半但续约失败时5.2DHCP服务的安装RedHatEnterpriseLinux安装程序默认没有安装DHCP服务,使用下面的命令可以检查系统是否已经安装了DHCP服务或查看已经安装了何种版本。rpm-qdhcp如果系统还没有安装DHCP服务。如果现在需要安装,可将RedHatEnterpriseLinux5的第3张安装盘放入光驱,加载光驱后在光盘的Server目录下找到DHCP服务的RPM安装包文件dhcp-3.0.5-3.el5.i386.rpm,然后使用下面的命令安装DHCP服务。rpm-ivh/mnt/Server/dhcp-3.0.5-3.el5.i386.rpm5.3DHCP服务的配置•配置文件的格式•设置IP作用域•设置客户端的IP选项•设置租约期限•保留特定的IP地址•分配多网段的IP地址配置文件的格式DHCP配置文件dhcpd.conf的格式如下:选项////参数#这些选项/参数全局有效声明{{{{选项////参数#这些选项/参数局部有效}}}}定义一组参数group{…}定义保留地址host主机名{…}定义作用域(或IP子网)范围range起始IP地址终止IP地址定义作用域(或IP子网)subnet网络号netmask子网掩码{…}定义超级作用域shared-network名称{…}功能声明dhcpd.conf文件中常用的声明及功能配置文件的格式dhcpd.conf文件中常用的参数及功能分配给客户端一个固定的IP地址fixed-addressIP地址通知DHCP客户机服务器的主机名server-name主机名指定网卡接口类型和MAC地址hardware硬件类型MAC地址指定最大租约期限max-lease-time数字指定默认的租约期限default-lease-time数字允许/忽略客户机更新DNS记录allow/ignoreclient-updates定义所支持的DNS动态更新类型(必选)ddns-update-style类型功能参数配置文件的格式dhcpd.conf文件中常用的选项及功能为客户端指定与格林尼治时间的偏移差time-offset偏移差为客户端指定所属的NIS域的名称nis-domain“名称”为客户端指定NIS域服务器的地址nis-serversIP地址为客户端指定网络时间服务器的IP地址ntp-serverIP地址为客户端指定节点类型netbios-node-type节点类型为客户端指定WINS服务器的IP地址netbios-name-serversIP地址为客户端指定广播地址broadcast-address广播地址为客户端指定默认网关routersIP地址为客户端指定主机名host-name“主机名”为客户端指定DNS服务器的IP地址domain-name-serversIP地址为客户端指定DNS域名domain-name“域名”为客户端指定子网掩码subnet-mask子网掩码功能选项配置文件的格式DHCP服务的配置文件dhcpd.conf的内容如下:ddns-update-styleinterim;ignoreclient-updates;subnet192.168.16.0netmask255.255.255.0{range192.168.16.11192.168.16.100;optionrouters192.168.16.1;optionsubnet-mask255.255.255.0;optiondomain-namegdvcp.net;optiondomain-name-servers192.168.16.2,61.144.56.100;optionbroadcast-address192.168.16.255;default-lease-time86400;max-lease-time172800;hostpc1{hardwareethernet00:a0:cc:cf:9c:14;fixed-address192.168.16.20;}hostpc2{hardwareethernet04:20:c1:f8:37:11;fixed-address192.168.16.30;}}设置IP作用域IP作用域是一个IP子网中所有可分配的IP地址的连续范围。在DHCP服务器内必须设置一个IP作用域。当DHCP客户端向DHCP服务器请求IP地址时,DHCP服务器就可以从该作用域内选择一个尚未分配的IP地址,并将其分配给该DHCP客户端。在dhcpd.conf文件中,可用subnet语句来声明一个IP作用域。subnet语句的格式如下:subnetsubnetsubnetsubnet子网IDIDIDIDnetmasknetmasknetmasknetmask子网掩码{{{{rangerangerangerange起始IPIPIPIP地址结束IPIPIPIP地址;#指定可分配给客户端的IP地址范围IPIPIPIP参数;#定义客户端的IP参数,如子网掩码、默认网关等}}}}设置客户端的IP选项除了给DHCP客户端指定IP地址外,还可以利用DHCP服务器来设置客户端的工作环境。例如,可以设置其子网掩码、DNS服务器的地址和默认网关等。当DHCP客户端向DHCP服务器索取IP地址或更新租约时,DHCP服务器就会自动为DHCP客户端设置这些IP选项。在配置文件dhcpd.conf中,设置DHCP客户端IP选项的语句的基本格式为:optionoptionoptionoption选项代码设置内容;;;;设置租约期限租约期限是在DHCP服务器上指定的时间长度,在这个时间范围内DHCP客户端可以临时使用从DHCP服务器租借到的IP地址。在dhcpd.conf文件中,有下面两个与租约期限有关的设置。1.默认的租约期限default-lease-time2.最大租约期限max-lease-time保留特定的IP地址可以保留特定的IP地址给指定的DHCP客户端使用,也就是说,当这个客户端每次向DHCP服务器索取IP地址或更新租约时,DHCP服务器都会给该客户端分配相同的IP地址。要保留特定的IP地址给指定的DHCP客户端使用,可先用arp命令查出该客户端网卡的MAC地址;然后在/etc/dhcpd.conf文件中,加入如下格式的host语句。hosthosthosthost主机名{{{{hardwarehardwarehardwarehardwareethernetethernetethernetethernet网卡的MACMACMACMAC地址;;;;#指定DHCP客户端网卡的MAC地址fixed-addressIPfixed-addressIPfixed-addressIPfixed-addressIP地址;;;;#指定为该DHCP客户端分配的IP地址IPIPIPIP参数;;;;#指定默认网关等其他IP参数}}}}分配多网段的IP地址如果在一个规模比较大的物理网络中存在多个IP子网,而多个IP子网的主机都需要DHCP服务器来提供地址配置信息,那么可以采用的一种方法是:在每一个IP子网中都安装一台DHCP服务器,让它们分别为各个子网分配IP地址。但是,从节约成本的角度出发,一般情况下都不这样做,而是采用在一个子网中安装DHCP服务器并让它来为多个子网分配IP地址的方法。那么如何才能使该DHCP服务器向多个网段提供动态IP分配服务呢?这时可以考虑使用DHCP中继代理功能。DHCP中继代理(dhcrelay)允许将无DHCP服务器的子网内的DHCP客户请求转发给其他子网内的一个或多个DHCP服务器。分配多网段的IP地址1.在DHCP服务器上设置超级作用域修改DHCP服务器(192.168.16.177)上的dhcpd.conf文件,加入如下格式的shared-network语句。shared-networkshared-networkshared-networkshared-network名称{{{{subnetsubnetsubnetsubnet子网1111的网络IDIDIDIDnetmasknetmasknetmasknetmask子网掩码{{{{…………}}}}subnetsubnetsubnetsubnet子网2222的网络IDIDIDIDnetmasknetmasknetmasknetmask子网掩码{{{{…………}}}}}}}}2222.设置DHCPDHCPDHCPDHCP中继代理#Commandlineoptionshere#Commandlineoptionshere#Commandlineoptionshere#CommandlineoptionshereINTERFACES=eth1eth2INTERFACES=eth1eth2INTERFACES=eth1eth2INTERFACES=eth1eth2DHCPSERVERS=192.168.16.177DHCPSERVERS=192.168.16.177DHCPSERVERS=192.168.16.177DHCPSERVERS=192.168.16.1775.4启动和停止DHCP服务1.启动DHCP服务/etc/init.d/dhcpdstart2.停止DHCP服务/etc/init.d/dhcpdstop3.重新启动DHCP服务/etc//etc//etc//etc/init.d/dhcpdinit.d/dhcpdinit.d/dhcpdinit.d/dhcpdrestartrestartrestartrestart4.设置自动启动DHCP服务如果需要让DHCP服务随系统启动而自动加载,可以执行“ntsysv”命令启动服务配置程序,找到“dhcpd”服务,在其前面加上“*”星号,然后选择“确定”即可,5.4启动和停止DHCP服务5.5DHCP客户端的配置•Linux中DHCP客户端的配置•Windows2000/XP/2003中DHCP客户端的配置Linux中DHCP客户端的配置①直接编辑文件/etc/sysconfig/network-scripts/ifcfg-eth0,找到语句“BOOTPROTO=none”,将其改为“BOOTPROTO=dhcp”即可。②重新启动网卡ifdownifdownifdownifdowneth0;eth0;eth0;eth0;ifupifupifupifupeth0eth0eth0eth0或ifconfigifconfigifconfigifc