Linux(CentOS 5.4 Linux)服务器配置之DHCP服务器配置应用Linux 下的DHCP服务器配置不像Windows 下那样在图形化界面设置,而是在文本上设置的。DHCP服务器工作时要求客户机和服务器进行交互,由客户机通过广播向服务器发起申请IP地址的请求,然后由服务器分配一个IP地址以及其他TCP/IP配置信息。整个过程可以分为以下几个步骤:
(1)、IP租用请求。DHCP客户机初始化TCP/IP,通过UDP端口67和68向网络中发送一个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所示。
表 1、DHCP配置文件中声明
声明 | 描述 |
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所示。
表2、DHCP配置文件中的参数
参数 | 解释 |
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 /release和ipconfig /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给两台计算机。