Login
升级VIP 登录 注册 安全退出
当前位置: 首页 > word文档 > 其他文档 > DHCP概述及dhcpd,DHCP概述

DHCP概述及dhcpd,DHCP概述

收藏

本作品内容为DHCP概述及dhcpd,格式为 docx ,大小 88630 KB ,页数为 24页

DHCP概述及dhcpd


('DHCP概述及dhcpd.conf详解一、DHCP概述1.采用DHCP的必要性在TCP/IP网络上,每台工作站要能存取网络上的资源之前,都必须进行基本的网络配置,一些主要参数诸如IP地址,子网掩码,缺省网关,DNS等必不可少,还可能需要一些附加的信息如IP管理策略之类。对于一个稍微大点的网络而言,网络的管理和维护的任务是相当繁重的。一台计算机从一个子网转移到另一个子网,就要重新对系统进行配置。对于普通水平的工作站用户是不能赋予他们配置自己的工作站网络的权限,而且也没有这个必要。如果一个没有相应技术水平的用户出于好奇或想学习一下的目的错误地更改了工作站的网络配置,造成网络故障,后果不言而喻。因此,需要有一种机制来让TCP/IP的配置和管理从用户端转移到网络管理端,实现IP的集中式管理。解决方案就是用DHCP。v2.DHCP的主要功能DHCP的全称是动态主机配置协议(DynamicHostConfigurationProtocol),由IETF(Internet网络工程师任务小组)设计,详尽的协议内容在RFC文档rfc2131和rfc1541里。目的就是为了减轻TCP/IP网络的规划、管理和维护的负担,解决IP地址空间缺乏问题。运行DHCP的服务器把TCP/IP网络设置集中起来,动态处理工作站IP地址的配置,用DHCP租约和预置的IP地址相联系,DHCP租约提供了自动在TCP/IP网络上安全地分配和租用IP地址的机制,实现IP地址的集中式管理,基本上不需要网络管理人员的人为干预。而且,DHCP本身被设计成BOOTP(自举协议)的扩展,支持需要网络配置信息的无盘工作站,对需要固定IP的系统也提供了相应支持。二、DHCP的工作原理1.几个DHCP名词在介绍DHCP工作原理以前,先解释这几个名词的含义:DHCP客户:DHCP客户是一通过DHCP来获得网络配置参数的Internet主机,通常就是普通用户的工作站。DHCP服务器:DHCP服务器是提供网络设置参数给DHCP客户的Internet主机。DHCP/BOOTP中继代理:在DHCP客户和服务器之间转发DHCP消息的主机或路由器。DHCP是基于客户机/服务器模型设计的,DHCP客户和DHCP服务器之间通过收发DHCP消息进行通讯。DHCP消息的格式与BOOTP消息大部分相同,这样设计可以增强BOOTP服务器工具,同时为BOOTP和DHCP两种客户服务。另外,BOOTP的中继代理可用来转发跨子网的DHCP请求。各段描述如下括号里的数字代表这个段以8位组为单位的大小,除options外,其余的段的长度都是固定的,options段的长度至少是312个8位组。如op(1代表这个段的长度为一个8位组op是消息操作代码,值为1代表BOOTREQUEST(自举请求)值为2代表BOOTREPLY(自举响应)在DHCP客户和DHCP服务器对话期间,op段被DHCP客户设置为BOOTREQUEST(1),被DHCP服务器设置为BOOTREPLY(2)。htype是硬件地址类型hlen是硬件地址长度hopsDHCP客户置这项为零,中继代理要用xidDHCP客户在寻求时产生的一个随机数,它提供了对所有后续的DHCP消息中的客户请求和服务器响应的一种联合。ciaddr客户机用来请求一个特定的IP地址,这个地址以前曾经分配给该客户机,希望保留。yiaddr由DHCP服务器填写,包含它提供给某一DHCP客户的IP地址。siaddr服务器的主机地址giaddr中继代理的IP地址chaddrDHCP客户硬件地址sname服务器主机名file启动文件名2.1options选项在获得IP地址前,DHCP客户用htype,hlen和chaddr段表明它的硬件地址,这个值由向客户硬件地址作出响应的服务器和中继代理利用。以前BOOTP协议中的两个没有用到的8位组的flags段在DHCP消息里有了定义。这个段的高位比特用于表明客户机能不能在IP地址没有被配置前接收Unicast回应,剩下的低位比特保留且必须置为零。hops和secs段在初始化过程中被中继代理有选择地利用。sname和file域可以被BOOTP或无盘站利用。2.2关于options选项选项附加在DHCP消息的固定长度段之后,为了与BOOTP工具兼容,选项段的前四个8位组包含了RFC1497中定义的magiccookies,余下的段就都是DHCP选项。在RFC1533里定义了DHCP的所有的选项的格式。大多数选项用于标志网络传输设置值,例如子网掩码(mask)、DNS服务器地址等其他选项被DHCP协议利用,且在大多数消息中是必需的。2.3DHCP选项的编码格式CodeLengthvalue262m1m2选项可以固定长度或可变长度,所有的选项都以一个8位组标识码开始,这个标识码用来标识选项。不带数据的固定长度选项就只由一个标识码构成。而且只有选项0和255是固定长度,其它的选项都可变长度的,为了标明选项数据的长度,在标识码后面是一个长度8位组,这个长度8位组的值不包含标识码和长度码本身。例如,DHCP选项里的子网掩码选项如下定义CodeLengthSubnetMask14m1m2m3m4标识码是1,长度是4个8位组,随后的4个8位组就是子网掩码DHCP消息类型选项的标识码是53,长度是1个8位组,值是从1到7,分别代表不同的DHCP消息类型。CodeLengthType5311-7值消息类型1DHCPDISCOVER2DHCPOFFER3DHCPREQUEST4DHCPDECLINE5DHCPACK6DHCPNAK7DHCPRELEASE最后一项选项是零长度的End(选项255),表明这是选项的结束以便DHCP客户处理。采用选项编码的好处是不论选项有多长,DHCP客户都可以正确接收,即使是它不认识的选项(不见得所有的DHCP客户程序都完全遵循RFC标准)。不论是DHCP客户还是DHCP服务器,都是通过按DHCP消息格式要求来填写各个段形成具体的DHCP消息,DHCP用的传输协议的非面向连接的UDP(用户数据报协议),从DHCP客户发出的DHCP消息送往DHCP服务器的端口67,DHCP服务器发给客户的DHCP消息送往DHCP客户的端口68,由于在取得服务器赋予的IP之前,DHCP客户并没有自己的IP,所以包含DHCP消息的UDP数据报的IP头的源地址段是0.0.0.0,目的地址则是255.255.255.2552.4DHCP分配IP地址的过程DHCP客户机初始化TCP/IP,在本地物理子网上广播一个DHCPDISCOVER消息,以确定DHCP服务器位置及其IP地址。如果DHCP服务器和客户不在同一个物理子网上,BOOTP中继代理将转发这个消息给DHCP服务器。由于网络上可能不止一个DHCP服务器,凡所有具有有效IP地址信息的DHCP服务器向客户机发出一个提议。客户机从接收到的第一个提议中选定IP地址信息,并广播一条租用地址的消息请求。由发出该提议的DHCP服务器响应该消息,指定IP地址信息给该客户机并发送一个确认,而所有其它DHCP服务器撤回各自的提议。客户机完成TCP/IP协议的初始化和绑定。配置完成后,客户机就可以使用普通网络通信和连接至其它IP主机时用到的所有IP服务和应用。三、DHCP服务器软件的安装在Linux几乎都采用的是PaulVixie/ISCDHCPd,来实现DHCP服务器端功能。可以访问http://www.isc.org/isc获得最新消息。目前大多书Linux发布都包含这个软件,如果是RedHat,以RPM形式提供,只要单地用RPM安装就可以了。#rpm-idhcpd-1.3.17pl5-i386.rpm四、基本应用从目前情况看,大多数LinuxDHCP服务器是为Windows95/98客户平台提供服务。1.增加主机路由为了使DHCP服务器能为正确MS的DHCP客户机器服务,需要创建一个到地址255.255.255.255的路由,把这条路由命令加到/etc/rc.d/rc.local,使得每次机器启动后自动运行。#routeadd-host255.255.255.255deveth0在一些老Linux核心的系统里可能会报告错误消息:255.255.255.255:Unkownhost可以试着加下面的条目到/etc/hosts文件里255.255.255.255dhcphost再用下面的命令#routeadd-hostdhcphostdeveth02.修改配置文件DHCPd默认的配置文件是/etc/dhcpd.conf,这是一个文本文件,DHCPd里有一个语法分析器,能对这个文件进行语法分析,获得配置参数。dhcpd.conf格式是递归下降的,关键字大小写敏感,可以有注释,注释以#开头,一直到该行结束。这里给出一个简单的dhcpd.conf的例子,所服务的网络为C类保留网络192.168.1.0#examples#缺省租约时间default-lease-time28800;#最大租约时间max-lease-time43200;#子网掩码选项optionsubnet-mask255.255.255.0;#广播地址optionbroadcast-address192.168.1.255;#路由器地址optionrouters192.168.1.1;#DNS地址optiondomain-name-servers192.168.1.1;#域名optiondomain-name"netreslab.org";#以上都是全局参数#子网声明和掩码subnet192.168.1.0netmask255.255.255.0{#范围range192.168.1.10192.168.1.100;#范围range192.168.1.150192.168.1.200;}这段配置文件将允许DHCP服务器分配两段地址范围给DHCP客户,192.168.1.10-100和192.168.1.150-200如果DHCP客户在申请租约时不请求一个特定租约失效时间,则以default-lease-time(28800秒)为租约时间,如果有请求一个特定的租约失效时间,则采用max-lease-time(432000秒)服务器发送下面的参数给DHCP客户机:子网掩码是255.255.255.0,广播地址是192.168.1.255,默认网关是192.168.1.1,DNS是192.168.1.1。如果要为一台叫做hotdog的机器指定固定的IP地址,可以在dhcpd.conf文件加一条3.dhcpd.leasesdhcpd.leases是DHCP客户租约的数据库文件,默认目录在/var/state/dhcp/,文件包含租约声明,每次一个租约被获取、更新或释放,它的新值就被记录到文件的的末尾。在DHCPd第一次安装后,并不会生成这个文件。但DHCPd的运行需要这个文件,所以可以建立一个空的文件。#touch/var/state/dhcp/dhcpd.leasesDHCPd记录这个文件的格式是leaseip-address{statements...}每个记录包含一个提供给客户的IP地址,在花括号里的语句包含一些租约信息。具体的租约信息因客户发出不同的DHCP请求而稍有差别。4.运行DHCPd要启动DHCPd,简单地键入/usr/sbin/dhcpd或用ntsysv把DHCPd服务自动启动,也可以用/etc/rc.d/init.d/dhcpdstart,这样启动后,DHCPd是启动在eth0上,如果DHCPd上的服务器还有另外一块网卡eth1,想在eth1上启动dhcpd,就键入#/usr/sbin/dhcpdeth1以上述例子的dhcpd.conf来启动dhcpd,如果我们启动一Windows95机器,Windows95的网络配置的TCP/IP选项里指定自动获得IP地址,也就是启用Windows95里的DHCP客户程序,这台95机器的主机名叫ONE,进入系统后,用winipcfg查看.在Windows95机器获得租约后,DHCPd会在dhcp.leases里建一条记录lease192.168.1.154{starts12000/05/1513:36:42;ends12000/05/1521:36:42;hardwareethernet00:00:21:4e:3f:58;uid01:00:00:21:4e:3f:58;client-hostname"one";}要注意的是dhcpd.leases的时间记录采用GMT时间,而不是本地时区的时间。要查看本机的GMT时间可以用date-u5.进一步说明dhcpd.conf5.1dhcpd.conf概述前面说过,dhcpd.conf是个递归下降格式的配置文件,有点象C的源程序风格,由参数和声明两大类语句构成,参数类语句主要告诉DHCPd网络参数,如租约的时间、网关、DNS等,而声明语句则是描述网络的拓扑,用来表明网络上的客户、要提供给客户的IP地址、提供一个参数组给一组声明等。描述网络拓扑的声明语句有shared-network和subnet声明。.如果要给一个子网里的客户动态指定IP地址,那么在subnet声明里必须有一个range声明,说明地址范围。如果要给DHCP客户静态指定IP地址,那么每个这样客户都要有一个host声明。对于每个要提供服务的与DHCP服务器连接的子网,都要有一个subnet声明,即使这是个没有IP地址要动态分配的子网。一个典型的dhcpd.conf如下#example#全局参数shared-network共享网络名{共享网络特定参数...subnet204.254.239.0netmask255.255.255.224{子网特定参数...range204.254.239.10204.254.239.30;}subnet204.254.239.32netmask255.255.255.224{子网特定参数...range204.254.239.42204.254.239.62;}}subnet204.254.239.64netmask255.255.255.224{子网特定参数...range204.254.239.74204.254.239.94;}group{组特定参数...hostws1.domain{特定主机参数...}hostws2.domain{特定主机参数...}hostws3.domain{特定主机参数...}}5.2语句参考因为DHCPd的语句很多,不可能一一列出,这里给出最常用和最重要的语句。声明类语句share-network语句shared-networkname{[参数][声明]}share-network用于告诉DHCP服务器某些IP子网其实是共享同一个物理网络。任何一个在共享物理网络里的子网都必须声明在share-network语句里。当属于其子网里的客户启动时,将获得在share-network语句里指定参数,除非这些参数被subnet或host里的参数覆盖。用share-network是一种权宜之计,例如某公司用B类网络145.252,公司里的部门A被划在子网145.252.1.0里,子网掩码为255.255.255.0,这里子网号为8个bit,主机号也为8个bit,但如果部门A急速增长,超过了254个节点,而物理网络还来不及增加,就要在原来这个物理网络上跑两个8bit掩码的子网,而这两个子网其实是在同一个物理网络上,share-network语句可以如下shared-networkshare1{subnet145.252.1.0netmask255.255.255.0{range145.252.1.10145.252.1.253;}subnet145.252.2.0netmask255.255.255.0{range145.252.2.10145.252.1.253;}这里的share1是个共享网络名。subnet语句:subnetsubnet-numbernetmasknetmask{[参数][声明]}subnet语句用于提供足够的信息来阐明一个IP地址是否属于该子网。也可以提供指定的子网参数和指明那些属于该子网的IP地址可以动态分配给客户,这些IP地址必须在range声明里指定。subnet-number可以是个IP地址或能被解析到这个子网的子网号的域名。netmask可以是个IP地址或能被解析到这个子网的掩码的域名。range语句:range[dynamic-bootp]low-address[high-address];对于任何一个有动态分配IP地址的subnet语句里,至少要有一个range语句,用来指明要分配的IP地址的范围。如果只指定一个要分配的IP地址,高地址部分可以省略。host语句:hosthostname{[参数][声明]}host语句的作用是为特定的客户机提供网络信息。group语句group{[参数][声明]}组语句给一组声明提供参数。allow和deny语句allow和deny语句用来控制DHCPd对客户的请求。unknown-clients关键字allowunknown-clients;denyunknown-clients;allowunknown-clients允许DHCPd可以动态分配IP给未知的客户,而denyunknown-clients则不允许。缺省是允许的。bootp关键字allowbootp;denybootp;指明DHCPd是否响应bootp查询,默认是允许的。参数类语句default-lease-time语句语法default-lease-timetime;指定缺省租约时间,这里的time是以秒为单位的。如果DHCP客户在请求一个租约但没有指定租约的失效时间,租约时间就是缺省租约时间。max-lease-time语句语法max-lease-timetime;最大的租约时间。如果DHCP在请求租约时间时有发出特定的租约失效时间的请求,则用最大租约时间。hardware语句语法hardwarehardware-typehardware-address;指明物理硬件接口类型和硬件地址。硬件地址由6个8位组构成,每个8位组以“:”隔开。如00:00:E8:1B:54:97例如:hardserver-name语句server-name"name";用于告诉客户服务器的名字。fixed-address语句fixed-addressaddress[,address...];fixed-address语句用于指定一个或多个IP地址给一个DHCP客户。只能出现在host声明里。选项类语句选项类语句以option开头,后面跟一个选项名,选项名后是选项数据,选项非常的多,这里列出一些常用的选项供参考optionroutersip-address[,ip-address];指明在客户子网内的路由器的地址,可以有多个;optiontime-serversip-address[,ip-address...];指明时间服务器的地址。optiondomain-name-serversip-address[,ip-address...];指明DNS的地址optionhost-anmestring;给客户指定主机名,string是个字符串。optiondomain-namestring;指明域名optioninterface-mtumtu;指明网络界面的MTU,这里mtu是个正整数例optioninterface-mtu1500;optionbroadcast-addressip-address;指定广播地址六、总结以上就是DHCPd常用配置,实际应用DHCP还要考虑IP分配的一些策略问题,同时要保证网络的健壮性,必须至少要有两台DHCP服务器一起工作,如果一台出了故障,另一台可以继续为DHCP客户服务。然而目前DHCP协议里并没有能让两台DHCP服务器协同工作的机制,不能有交叉重复的IP地址。作者:lonelykiller大多数的情况下Linux作为DHCP服务器而windows95/98作为DHCP客户。Linux也可以作为DHCP客户,即你要安装dhcpcdrpm软件包,Linux作为DHCP服务器,只需要安装dhcpdrpm包。一.DHCP服务器工作的前提条件:为了使DHCP服务器为windows机器服务,你可能需要创建一个到地址255.255.255.255的路由,加这条路由命令到/etc/rc.d/rc.local使得每次启动后自动运行。#routeadd-host255.255.255.255deveth0如果报告错误消息:255.255.255.255:Unkownhost试着加下面的入口到/etc/hosts文件:#routeadd-hostdhcpdeveth0。二.DHCPd后台程序总是读取配置文件/etc/dhcpd.conf,下面给出一个DHCP配置文件的例子:#Sample/etc/dhcpd.confdefault-lease-time1200;max-lease-time9200;optionsubnet-mask255.255.255.0;optionbroadcast-address192.168.1.255;optionrouters192.168.1.254;optiondomain-name-servers192.168.1.1,192.168.1.2;optiondomain-name"mydomain.org";subnet192.168.1.0netmask255.255.255.0{range192.168.1.10192.168.1.100;range192.168.1.150192.168.1.200;}这将允许DHCP服务器分配两段地址范围给客户192.168.1.10-100或者192.168.1.150-200,如果客户不继续请求DHCP地址则1200秒后释放IP地址,否则最大允许租用的时间为9200秒。服务器发送下面的参数给DHCP客户机:用255.255.255.0作为子网掩码,用192.168.1.255作为广播地址,用192.168.1.254作为默认网关,用192.168.1.1and192.168.1.2作为DNS服务器如果你要为windows客户指定一个WINS服务器,你需要包括下面的选项到dhcpd.conf文件中:optionnetbios-name-servers192.168.1.1。三.你也能为某块网卡指定固定的IP地址,无论何时,这块网卡将总是从DHCP服务器获得固定的IP地址,加下面的语句到/etc/dhcpd.conf:hosthaagen{hardwareethernet08:00:2b:4c:59:23;fixed-address192.168.1.222;}也可连写为一行:hostJephe{hardwareethernet00:a0:c9:a6:96:33;fixed-address192.168.1.12;}你也可为某台机器指定不同的网关地址,名服务器等:hostJephe{hardwareethernet00:a0:c9:a6:96:33;fixed-address192.168.1.12;optionrouters192.168.11.5;}四.大多数情况下,DHCP的安装不创建一个dhcpd.leases文件,在你启动DHCP服务器之前,你必须创建空文件dhcpd.leases:#touch/var/state/dhcp/dhcpd.leases为启动DHCP服务器,简单地打入/usr/sbin/dhcpd或者用#ntsysv把DHCP服务自动启动,这将启动dhcpd在eth0设备上;如果你想在eth1设备上启动dhcpd,则#/usr/sbin/dhcpdeth1;如果为了调试DHCP,则用#/usr/sbin/dhcpd-d-f。五.两块网卡的情况:有时你需要在一台安装了两块网卡(作防火墙或网关)的机器上安装DHCP服务,下面的例子指出一台防火墙机器上的一种DHCP设置,因为对外的网卡(internet)不需要提供DHCP服务。因此这样设置如下:subnet192.168.1.0netmask255.255.255.0{range192.168.1.2192.168.1.4;default-lease-time86400;max-lease-time259200;optionsubnet-mask255.255.255.0;optionbroadcast-address192.168.1.255;optionrouters192.168.1.254;optiondomain-name-servers192.168.1.254;}subnet202.102.34.102netmask255.255.255.255{}六.FAQa.为MAC机器固定IP地址?当设置MAC机用DHCP功能获得IP地址后,如不知得到何地址,可在MAC机上发送一邮件出去,收信者可通过mailheader检查发送者IP地址,而后ping该IP地址再利用arp命令检查arp缓存中的该IP地址的对应物理地址。b.若LAN上有windows机器装上了某DHCP功能的软件,如sygate,wingate之类,则可能其他windows客户会优先去寻找windowsDHCP服务器,而不是LinuxDHCP服务器',)


  • 编号:1700773908
  • 分类:其他文档
  • 软件: wps,office word
  • 大小:24页
  • 格式:docx
  • 风格:商务
  • PPT页数:88630 KB
  • 标签:

广告位推荐

相关其他文档更多>