LINUX RHEl6 DHCP服务器详细说明配置与故障排除.docx

上传人:b****6 文档编号:8000788 上传时间:2023-01-27 格式:DOCX 页数:16 大小:55.24KB
下载 相关 举报
LINUX RHEl6 DHCP服务器详细说明配置与故障排除.docx_第1页
第1页 / 共16页
LINUX RHEl6 DHCP服务器详细说明配置与故障排除.docx_第2页
第2页 / 共16页
LINUX RHEl6 DHCP服务器详细说明配置与故障排除.docx_第3页
第3页 / 共16页
LINUX RHEl6 DHCP服务器详细说明配置与故障排除.docx_第4页
第4页 / 共16页
LINUX RHEl6 DHCP服务器详细说明配置与故障排除.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

LINUX RHEl6 DHCP服务器详细说明配置与故障排除.docx

《LINUX RHEl6 DHCP服务器详细说明配置与故障排除.docx》由会员分享,可在线阅读,更多相关《LINUX RHEl6 DHCP服务器详细说明配置与故障排除.docx(16页珍藏版)》请在冰豆网上搜索。

LINUX RHEl6 DHCP服务器详细说明配置与故障排除.docx

LINUXRHEl6DHCP服务器详细说明配置与故障排除

DHCP服务器的工作原理

  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地址对于客户端来说是未知的)发送DHCPdiscover信息来查找DHCP服务器,即向地址255.255.255.255发送特定的广播信息。

网络上每一台安装了TCP/IP的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应。

  2.提供阶段

  即DHCP服务器提供IP地址的阶段,在网络中接收到DHCPdiscover信息的DHCP服务器都会做出响应。

它从尚未出租的IP地址中挑选一个分配给DHCP客户端,向其发送一个包含出租的IP地址和其他设置的DHCPoffer信息。

  3.选择阶段

  即DHCP客户端选择某台DHCP服务器提供的IP地址的阶段。

如果有多台DHCP服务器向DHCP客户端发送DHCPoffer信息,则DHCP客户端只接受第1个收到的DHCPoffer信息。

然后它就以广播方式回答一个DHCPrequest信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。

之所以要以广播方式回答,是为了通知所有DHCP服务器,它将选择某台DHCP服务器所提供的IP地址。

  4.确认阶段

  即DHCP服务器确认所提供的IP地址的阶段。

当DHCP服务器收到DHCP客户端回答的DHCPrequest信息之后,它向DHCP客户端发送一个包含其所提供的IP地址和其他设置的DHCPACK信息,告诉DHCP客户端可以使用该IP地址,然后DHCP客户端便将其TCP/IP与网卡绑定。

另外,除DHCP客户端选中的服务器外,其他的DHCP服务器都将收回曾提供的IP地址。

  5.重新登录

  以后DHCP客户端每次重新登录网络时,不需要发送DHCPdiscover信息,而是直接发送包含前一次所分配的IP地址的DHCPrequest信息。

当DHCP服务器收到这一信息后,它会尝试让DHCP客户端继续使用原来的IP地址,并回答一个DHCPACK信息。

如果此IP地址已无法再分配给原来的DHCP客户端使用(比如此IP地址已分配给其他DHCP客户端使用),则DHCP服务器给DHCP客户端回答一个DHCPNACK信息。

当原来的DHCP客户端收到此信息后,必须重新发送DHCPdiscover信息来请求新的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配置文件

  可以使用RHEL6.0自身携带的RPM包安装,安装结束后DHCP端口监督程序dhcpd配置文件是/etc/dhcp目录中的名为dhcpd.conf的文件。

下面手工建立/etc/dhcp/dhcpd.conf文件,该文件通常包括3个部分,即parameters参数、declarations声明和option选项。

  1.DHCP配置文件中的parameters(参数)

  parameters表明如何执行任务,以及是否要执行任务或将哪些网络配置选项发送给客户端。

DHCP配置文件中的主要参数

参数

解释

ddns-update-style

配置DHCP-DNS互动更新模式

default-lease-time

指定默认租赁时间的长度,单位是秒

max-lease-time

指定最大租赁时间长度,单位是秒

hardware

指定网卡接口类型和MAC地址

server-name

通知DHCP客户端服务器名称

get-lease-hostnamesflag

检查客户端使用的IP地址

fixed-addressip

分配给客户端一个固定的地址

authoritative

拒绝不正确的IP地址的要求

  2.DHCP配置文件中的declarations(声明)

  declarations用来描述网络布局及提供客户的IP地址等。

主要声明

声明

解释

shared-network

用来告知是否一些子网络共享相同网络

subnet

描述一个IP地址是否属于该子网

range起始IP终止IP

提供动态分配IP的范围

host主机名称

参考特别的主机

group

为一组参数提供声明

allowunknown-clients﹔denyunknown-client

是否动态分配IP给未知的使用者

allowbootp;denybootp

是否响应激活查询

allowbooting﹔denybooting

是否响应使用者查询

filename

开始启动文件的名称,应用于无盘工作站

next-server

设置服务器从引导文件中装入主机名,应用于无盘工作站

  3.DHCP配置文件中的option(选项)

option用来配置DHCP可选参数,全部用option关键字作为开始。

主要选项

选项

解释

subnet-mask

为客户端设定子网掩码

domain-name

为客户端指明DNS名字

domain-name-servers

为客户端指明DNS服务器的IP地址

host-name

为客户端指定主机名称

routers

为客户端设定默认网关

broadcast-address

为客户端设定广播地址

ntp-server

为客户端设定网络时间服务器的IP地址

time-offset

为客户端设定格林威治时间的偏移时间,单位是秒

nis-server

为客户端设定nis域名

4.配置实例

RadhadRHEL6.2DHCP服务器安装过程

1),加载光驱

首先插入Redhat的安装光盘,加载光驱

#mount/dev/cdrom/media/

mount:

blockdevice/dev/cdromiswrite-protected,mountingread-only

加载成功!

2),安装DHCPD服务软件

#rpm-ivh/media/Packages/dhcp-4.1.1-25.P1.el6.i686.rpm

warning:

/media/Packages/dhcp-4.1.1-25.P1.el6.i686.rpm:

HeaderV3RSA/SHA256Signature,keyIDfd431d51:

NOKEY

Preparing...###########################################[100%]

1:

dhcp###########################################[100%]

提示100%说明安装成功.

3),DHCP服务的配置

dhcpd.conf是DHCP服务的配置文件,DHCP服务所有参数都是通过修改dhcpd.conf文件来实现,安装后dhcpd.conf是没有做任何配置的,dhcpd.conf文件是在/etc/dhcp/目录下的.

我们可以使用#catdhcpd.conf命令来查看一下文件内容:

#

#DHCPServerConfigurationfile.

#see/usr/share/doc/dhcp*/dhcpd.conf.sample

#see'man5dhcpd.conf'

这里的意思告诉我们,这个文件是一个dhcp服务器的配置文件,配置要参考dhcpd.conf.sample来配置.

接下来我们就将/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample复制为dhcpd.conf文件进行配置:

#cp/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample/etc/dhcp/dhcpd.conf

cp:

是否覆盖"dhcpd.conf"?

y

复制好了,先看一下模板的内容:

#catdhcpd.conf

通过文件内容,我们可以发现模板里就是有几个子网的模板信息,告诉我们可以怎么样来定义我们要分配的IP地址.文件内容里很多都是用到域名,其实在实际使用过程我们都是使用IP地址的,”#”号后面的内容都是注释,都是可以删除的,同样,你若不需要哪一句就可以把注释掉.

  在下面的实例中使用一个的虚拟域名,用户需要修改其中的内容以满足网络的需求。

/etc/dhcp/dhcpd.conf文件的内容如下:

  #Theoptionsoutsideasubnetdirectiveareglobalunless

  #over-riddenbythesamesettinginsidethesubnetdirective.

  optiondomain-name-servers192.0.34.43,193.0.0.236;

default-lease-time6000;

max-lease-time7200;

#IfthisDHCPserveristheofficialDHCPserverforthelocal

  #network,theauthoritativedirectiveshouldbeuncommented.authoritative;

  #Usethistosenddhcplogmessagestoadifferentlogfile(youalso

  #havetohacksyslog.conftocompletetheredirection).log-facilitylocal7;

  #Handleclientdynamicdnsupdates

ddns-update-stylenone;

subnet192.168.200.0netmask255.255.255.0{

  optiondomain-name"";

  range192.168.200.100192.168.200.200;

  optionrouters192.168.200.254;

  }

  上面的实例配置文件分为两个部分,即子网配置信息和全局配置信息。

可以有多个子网,这里为了简化,只指定了一个子网。

  

(1)Subnet。

  在上面的例子中,一个子网声明以“subset”关键字开始,所以子网信息包括在{}中。

{}中的配置信息只对该子网有效,会覆盖全局配置。

  

(2)Global。

  所有子网以外的配置都是全局配置,如果同一个全局配置没有被子网配置覆盖,则其将对所有子网生效。

  (3)ConfigurationOptions。

  下面是上例中配置指令的解释说明。

  optiondomain-name-servers192.0.34.43,193.0.0.236;

  这一行指定客户端应该使用的DNS服务器,该选项可以用于全局参数或者子网参数。

  default-lease-time6000;max-lease-time7200;

  这两行是相关的,default-lease-time指定客户端需要刷新配置信息的时间间隔(秒),max-lease-time为客户端用于无法从服务器获得任何信息的时间,超过该时间则会丢弃之前从该DHCP服务器获得的所有信息,而转向使用OS的默认设置。

  authoritative;

  指定当一个客户端试图获得一个不是该DHCP服务器分配的IP信息,DHCP将发送一个拒绝消息,而不会等待请求超时。

当请求被拒绝,客户端会重新向当前DHCP发送IP请求获得新地址。

  log-facilitydaemon;

  指定DHCP服务器发送的日志信息的日志级别。

  ddns-update-stylenone;

  该配置可以指定一个方法,客户端用该方法来更新IP对应的域名信息,本例中禁用了该特性。

  subnet192.168.200.0netmask255.255.255.0{

  optiondomain-name"";

  range192.168.200.100192.168.200.200;

  optionrouters192.168.200.254;

  }

  上面内容为子网配置,第1行指定该子网地址和掩码。

DHCP服务器必须拥有该子网的一个IP,domain-name设置该客户端的域名。

DHCP服务器可以负责整个子网的信息,也可以只负责子网的一段。

  optionrouters配置默认网关IP。

  启动DHCP服务器

  1.建立客户端租约文件

  运行DHCP服务器还需要一个名为“dhcpd.leases”的文件,其中保存所有已经分发的IP地址。

在RedHatLinux发行版本中,该文件位于/var/lib/dhcp/目录中。

如果通过RPM安装ISCDHCP,那么该目录应该已经存在。

dhcpd.leases的文件格式为:

  Leasesaddress{statement}

  一个典型的文件内容如下:

  lease192.168.1.255{#DHCP服务器分配的IP地址#

  starts12005/05/0203:

02:

26;#lease开始租约时间#

  ends12005/05/0209:

02:

26;#lease结束租约时间#

  bindingstateactive;

  nextbindingstatefree;

  hardwareethernet00:

00:

e8:

a0:

25:

86;#客户机网卡MAC地址#

  uid"\001\000\000\350\240%\206";#用来验证客户机的UID标志#

  client-hostname"cjh1";#客户机名称#

  }

  注意:

lease开始租约时间和lease结束租约时间是格林威治标准时间(GMT),不是本地时间。

  第1次运行DHCP服务器时,dhcpd.leases是一个空文件,也不用手工建立。

如果不是通过RPM安装ISCDHCP,或者dhcpd已经安装,那么应该试着确定dhcpd将其lease文件写到何处并确保该文件存在。

也可以手工建立一个空文件:

  #touch/var/lib/dhcp/dhcpd.leases

  2.启动和检查DHCP服务器

  使用命令启动DHCP服务器:

  #servicedhcpdstart

  使用ps命令检查dhcpd进程:

  #ps-ef|grepdhcpd

  root24021014:

25?

00:

00:

00/usr/sbin/dhcpd

  root27642725014:

29pts/200:

00:

00grepdhcpd

  使用netstat检查dhcpd运行的端口:

  #netstat-nutap|grepdhcpd

udp000.0.0.0:

670.0.0.0:

*2402/dhcpd

设置服务器重启后也自动重启dhcpd服务

#chkconfigdhcpdon

  3.设置DHCP转发代理

  DHCP的转发代理(dhcrelay)允许把无DHCP服务器子网内的DHCP和BOOTP请求转发给其他子网内的一台或多台DHCP服务器。

当某个DHCP客户端请求信息时,DHCP转发代理把该请求转发给DHCP转发代理启动时所指定的一台DHCP服务器。

当某台DHCP服务器返回一个回应时,该回应被广播或单播给发送最初请求的网络。

除非使用INTERFACES指令在/etc/sysconfig/dhcrelay文件中指定了接口,否则DHCP转发代理监听所有接口上的DHCP请求。

要启动DHCP转发代理,使用命令:

  servicedhcrelaystart

  4.从指定端口启动DHCP服务器

  如果系统连接不止一个网络接口,但是只想让DHCP服务器启动其中之一,则可以配置DHCP服务器只在相应设备上启动。

在/etc/sysconfig/dhcpd中,把接口的名称添加到DHCPDARGS的列表中:

  #Commandlineoptionshere

  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

指定配置文件的位置,默认为/etc/dhcpd.conf。

  (5)-lf

指定租期数据库文件的位置。

如果租期数据库文件已存在,在DHCP服务器每次启动时使用同一个文件至关重要。

建议只在无关紧要的机器上为调试目的才使用该选项,默认为/var/lib/dhcp/dhcpd.leases。

  (6)-q:

在启动该守护进程时,不要显示整篇版权信息。

  5.管理DHCP服务器端口

  常见的DHCP服务器是dhcpd,可以通过命令行设定其监听端口。

例如,使用以下命令:

  #dhcpdeth0

  该命令允许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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1