LinuxCentOS 5.4 Linux)服务器配置之DHCP服务器配置应用

Linux 下的DHCP服务器配置不像Windows 下那样在图形化界面设置,而是在文本上设置的。DHCP服务器工作时要求客户机和服务器进行交互,由客户机通过广播向服务器发起申请IP地址的请求,然后由服务器分配一个IP地址以及其他TCP/IP配置信息。整个过程可以分为以下几个步骤:

(1) IP租用请求。DHCP客户机初始化TCP/IP,通过UDP端口6768向网络中发送一个DHCPDISCOVER广播包,请求租用IP地址。该广播包中的源IP地址为0.0.0.0,目标IP地址为255.255.255.255,并且包含客户机的MAC地址和主机名。

(2) IP租用提供。网络中任何接收到DHCPDISCOVER广播包并且能够提供IP地址的DHCP服务器,都会通过UDP端口68给客户机回应一个DHCPDISCOVER广播包,该广播包的源IP地址为DHCP服务器IP,目标IP地址为255.255.255.255,包中还包含提供的IP地址、子网掩码及租赁等信息。

(3) IP租用选择。客户机从不止一台DHCP服务器接收到提供之后,会选择第一个收到的DHCPDISCOVER包,并向网络中广播一个DHCPDISCOVER消息包,表明自己已经接受了一个DHCP服务器提供的IP地址。该广播包中包含所接受的IP地址和服务器的IP地址。所有其他的DHCP服务器撤销它们的提供,一遍将IP地址提供给下一次IP租用请求。

(4) IP租用确认。被客户机选择的DHCP服务器在收到DHCPDISCOVER广播包,会广播返回给客户机一个DHCPACK消息包,表明已经接受客户机的选择,并将该IP地址的合法租用以及其他的配置信息都放入该广播包发给客户机。客户机在收到DHCPACK包后,将使用该广播包中的信息来配置自己的TCP/IP,则租用过程完成,客户机可以在网络中通信。

配置DHCP服务器是通过DHCP服务器的配置文件/etc/dhcpd.conf来管理的,但是安装好DHCP服务器后并没有该文件的。不过在/usr/share/doc/dhcp-3.0.5目录下有一个名为dhcp.conf.sample的样本文件。把该文件复制到/etc目录下,并重命名为dhcpd.conf,然后使用文本编辑器打开这个文件修改。

DHCP配置文件有声明、参数和选项3个部分组成。

(1) 、声明。DHCP配置文件中的声明(Declarations)用来描述网络布局、提供客户的IP地址等,具体如表1所示。

表 1DHCP配置文件中声明

声明

描述

Shared-network

用于告知在同一物理网段中是否存在多个子网

Subnet 

说明一个IP地址是否属于该子网

Range 

提供可出租的IP地址范围

Host 

为特定的DHCP客户机提供IP地址

Group 

为一组参数提供声明

Allow unknown-clients

允许动态分配IP地址个未知的使用者

Deny unkonwn-clients

拒绝动态分配IP地址个未知的使用者

Allow bootp

允许响应激活查询

Deny bootp

拒绝响应激活查询

Allow booting

允许响应使用者查询

Deny booting

拒绝响应使用者查询

Filename 

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

Next-server

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

(2) 、参数。DHCP配置文件中的参数(Parameters)表明如何执行任务、是否要执行任务或将那些网络配置选项发送给客户,具体描述如表2所示。

2DHCP配置文件中的参数

参数

解释

Ddns-update-style

配置DHCP-DNS互动更新模式

Default-lease-time

指定默认出租时间的长短,单位为秒

Max-lease-time

指定最大出租时间,单位为秒

Hardware 

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

Server-name

通知DHCP客户服务器名称

Get-lease-hostname flag

检查客户端使用的IP地址

Fixed-address ip

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

Authritative 

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

(3) 、选项。DHCP配置文件中的选项(Option)用来配置DHCP服务器的可选参赛,这些参数全部用option关键字开始,具体描述如表3所示。

3、 DHCP配置文件中的选项

选项

解释

Subnet-mask

为客户端设定子网掩码,必须与所出租的IP地址对应

Domain-name

为客户端指明DNS服务器名字

Domain-name-servers

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

Host-name

为客户端指定主机名称

Routers 

为客户端设定默认网关

Broadcast-address 

为客户端设定广播地址

Ntp-server

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

Time-offset

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

下面是结合dhcpd.conf的文本详细介绍:

ddns-update-style interim; ....... 过渡性DHCP-DNS互动更新模式。一般不修改

ignore client-updates;       ........不允许各个客户端更新。一般不修改

subnet 192.168.1.0 netmask 255.255.255.0 {        ........声明子网及子网掩码

# --- default gateway

option routers 192.168.1.1;            ................为客户端设置默认网关

option subnet-mask 255.255.255.0;          ...............为客户端设置子网掩码

option nis-domain "domain.org";          .........设置网络信息服务(NIS)域的名称

option domain-name "domain.org";      .......网络的域名

option domain-name-servers 192.168.1.1;       ........设置DNS服务器的IP地址

option time-offset -18000; # Eastern Standard Time    . ......偏移时间

# option ntp-servers 192.168.1.1;           ..........网络时间服务器(NTP)的IP地址

# option netbios-name-servers 192.168.1.1;           ..........WINS服务器地址

# --- Selects point-to-point node (default is hybrid). Don't change this unless

# -- you understand Netbios very well

# option netbios-node-type 2;           .............netbios节点类型

range dynamic-bootp 192.168.0.128 192.168.0.200;    .......动态的地址池

default-lease-time 21600;                .............默认租约时间(秒)

max-lease-time 43200;               .............最大的租约时间(秒)

# we want the nameserver to appear at a fixed address      .....设置绑定主机

host ns {                                      ........绑定主机名称声明

next-server marvin.redhat.com;  ..定义服务器引导文件中转入的主机名,用户无盘站

hardware ethernet 00:0C:29:A7:CF:85;   .......要绑定的DHCP客户机的MAC地址

fixed-address 192.168.1.1;        .........绑定MAC地址的主机的对应IP地址

}

}

安装DHCP服务器,首先查看是否已经安装了DHCP软件包,查看的方法是在终端下输入【rpm -qa | grep dhcp】命令。如果安装了则会显示相关的信息,若无则会显示“rpmq: no arguments given for query”。

CentOS 5.4的光盘镜像放入光驱,进入光盘CentOS目录下找到dhcp*.*的相关软件包,

其中dhcp-* DHCP服务器的软件包,dhcp-devel-* DHCP开发工具,可选。安装 dhcp-3.0.5-21.el5.i386.rpm 的软件包。安装成功后的结果如图1所示。(安装命令:#rpm -ivh dhcp-3.0.5-21.el5.i386.rpm,另外也可以使用yum安装,命令:yum install dhcpd*


1

DHCP软件安装完成后,通过复制样本文件/usr/share/doc/dhcp-3.0.5/dhcpd.conf.sample文件到/etc/目录下,已得到dhcpd.conf文件,然后修改文件,完成DHCP服务器的配置。配置文件详细如下:

ddns-update-style interim;

ignore client-updates;

subnet 192.168.1.0 netmask 255.255.255.0 {

# --- default gateway

option routers 192.168.1.1;

option subnet-mask 255.255.255.0;

option nis-domain "guoguang.com";

option domain-name "guoguang.com";

option domain-name-servers 192.168.1.1;

option time-offset -18000; # Eastern Standard Time

# option ntp-servers 192.168.1.1;

# option netbios-name-servers 192.168.1.1;

# --- Selects point-to-point node (default is hybrid). Don't change this unless

# -- you understand Netbios very well

# option netbios-node-type 2;

range dynamic-bootp 192.168.1.10 192.168.1.100;

default-lease-time 21600;

max-lease-time 43200;

# we want the nameserver to appear at a fixed address

host ns {

next-server marvin.redhat.com;

hardware ethernet 12:34:56:78:AB:CD;

fixed-address 207.175.42.254;

}

}

DHCP客户下查看DHCP服务器是否已经正常工作了。以下以Windows XP为客户机,使用ipconfig /releaseipconfig /renew分别释放和获取IP地址,结果如图2所示。(服务器的IP地址为:192.168.1.2


2

配置Linux客户机的方法是修改/etc/sysconfig/network-scrits下的ifcfg-eth0文件,把"BOOTPROTO"修改为"BOOTPROTO=dhcp"(如果没有就在网卡名称下面添加一行)

另外,当DHCP服务器为某个DHCP客户机提供租约后,在/var/lib/dhcpd/dhcpd.leses文件中保存已经出租的IP地址信息。

# All times in this file are in UTC (GMT), not your local timezone.   This is

# not a bug, so please don't ask about it.   There is no portable way to

# store leases in the local timezone, so please don't request this as a

# feature.   If this is inconvenient or confusing to you, we sincerely

# apologize.   Seriously, though - don't ask.

# The format of this file is documented in the dhcpd.leases(5) manual page.

# This lease file was written by isc-dhcp-V3.0.5-RedHat

lease 192.168.1.100 {

  starts 5 2010/04/16 11:21:44;

  ends 5 2010/04/16 17:21:44;

  binding state active;

  next binding state free;

  hardware ethernet 00:0c:29:2e:99:db;

  uid "\001\000\014).\231\333";

  client-hostname "centOS-XP";

}

lease 192.168.1.99 {

  starts 5 2010/04/16 11:50:02;

  ends 5 2010/04/16 17:50:02;

  binding state active;

  next binding state free;

  hardware ethernet 00:0c:29:1b:ac:19;

}

从配置文件中可以看出DHCP服务器已经有租赁的两个IP给两台计算机。

本文出自 “花开不败” 博客,请务必保留此出处http://homechen.blog.51cto.com/1519170/303984