DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)
8.1.1 DHCP概述
DHCP服务器为DHCP客户机分配IP地址的过程。
8.1.2 实例—设置DHCP服务器
DHCP服务器的配置文件是dhcpd.conf,位于/etc目录下,对DHCP服务器的配置其实就是对dhcpd.conf文件的修改。
实例8-1 设置DHCP服务器第1步:复制dhcpd.conf文件默认情况下/etc/dhcpd.conf文件不存在,或者没有内容,但是当安装了DHCP服务器后,便提供了一个配置文件模板,即/usr/share/doc/dhcp-3.0p11/dhcpd.conf.sample文件,可以使用如下命令将dhcpd.conf.sample文件复制到/etc目录中。
#cp /usr/share/doc/dhcp-3.0p11/dhcpd.conf.sample /etc/dhcpd.conf
dhcpd.conf.sample文件的内容如下:
ddns-update-style interim;
ignore client-updates;
subnet 192.168.0.0 netmask 255.255.255.0 {
# --- default gateway
option routers 192.168.0.1;
option subnet-mask 255.255.255.0;
option nis-domain "domain.org";
option domain-name "domain.org";
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.0.128 192.168.0.254;
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;
}
}
第2步:修改dhcpd.conf文件修改后的/etc/dhcpd.conf文件内容如图8-1所示,保存该文件,然后执行如下命令启动DHCP服务器。
#service dhcpd start(#service dhcpd restart重启,#service dhcpd stop停止)
对dhcpd.conf文件的说明见表8-1,并且后面将对该文件的语法进行讲解。
表8-1 对配置文件/etc/dhcpd.conf的说明行号
说明
1
ddns-update-style interim; //配置使用过渡性DHCP-DNS互动更新模式
2
ignore client-updates; //忽略客户端更新
3
subnet 192.168.0.0 netmask 255.255.255.0 {
//设置子网声明,dhcpd为了向一个子网提供服务,需要知道子网的网络地址和网络掩码
5
option routers 192.168.0.1; //为DHCP客户设置默认网关
6
option subnet-mask 255.255.255.0; //为DHCP客户设置子网掩码
7
option broadcast-address 192.168.0.255; //为DHCP客户设置广播地址
9
option domain-name "test.edu.cn"; //为DHCP客户设置DNS域
10
option domain-name-servers 192.168.0.5; //为DHCP客户设置DNS服务器地址
11
option time-offset -18000; # Eastern Standard Time //设置与格林威治时间的偏移时间
18
default-lease-time 21600; //为DHCP客户设置默认的地址租期
19
max-lease-time 43200; //为DHCP客户设置最长的地址租期
21
range 192.168.0.20 192.168.0.254; //允许DHCP服务器为DHCP客户分配IP地址的范围(地址池)
23~28
用来给客户机分配一个永久的IP地址,可以将网卡和某个IP地址绑定
1.dhcpd.conf 文件组成
dhcpd.conf文件由参数类语句、声明类语句和选项类语句构成。
参数类语句:主要告诉dhcpd网络参数,如租约时间、网关和DNS等。表明如何执行任务,是否要执行任务,或将哪些网络配置选项发送给客户。
声明类语句:是描述网络的拓扑,用来表明网络上的客户、要提供给客户的IP地址以及提供一个参数组给一组声明等。描述网络拓扑的声明语句有shared-network和subnet声明。如果要给一个子网里的客户动态指定IP地址,那么在subnet声明里必须有一个range声明,说明地址范围。如果要给DHCP客户静态指定IP地址,那么每个这样客户都要有一个host声明。对于每个要提供服务的与DHCP服务器连接的子网,都要有一个subnet声明,即使这是个没有IP地址要动态分配的子网。
选项类语句:用来配置DHCP可选参数,全部用option关键字作为开始。
第3步:客户租约文件/var/lib/dhcp/dhcpd.leases
要运行DHCP服务器,还需要一个名为 dhcpd.leases 的文件,保持所有已经分发出去的 IP 地址。在红帽系列的Linux发行版中,该文件位于/var/lib/dhcp/目录中。如果通过RPM 安装DHCP,那么该文件应该已经存在。如果不是通过RPM安装DHCP,也可以执行如下命令手工建立一个空文件。
#touch /var/lib/dhcp/dhcpd.leases
首次运行DHCP服务器时,dhcpd.leases是一个空文件,也不用人为修改,在DHCP服务器运行的过程中,dhcpd会自动将租用信息保存在/var/lib/dhcp/dhcpd.leases文件中,该文件不断被更新,从这里面可以查到IP地址分配的情况。
dhcpd.leases文件的格式为:leases address {statement}
一个典型的文件内容如下:
# 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.0.254 { #重启第1块网络接口卡后,从DHCP服务器获取的网络配置信息
starts 2 2008/05/20 04:13:00; # lease开始租约时间
ends 2 2008/05/20 10:13:00; # lease结束租约时间
binding state active;
next binding state free;
hardware ethernet 00:0a:eb:13:fc:6f; #客户机ztg17第1块网卡的MAC地址
uid "\001\000\012\353\023\374o"; #用来验证客户机的UID标示
client-hostname "ztg17";? #客户机名称
}
lease 192.168.0.253 { #重启第2块网络接口卡后(将该网卡与DHCP服务器相连)
#从DHCP服务器获取的网络配置信息
starts 2 2008/05/20 04:14:25;
ends 2 2008/05/20 10:14:25;
binding state active;
next binding state free;
hardware ethernet 00:0a:e6:a1:e3:e8; #客户机ztg17第2块网卡的MAC地址
uid "\001\000\012\346\241\343\350";
client-hostname "ztg17";
}
 注意:
lease开始租约时间(starts)和lease结束租约时间(ends)是格林威治标准时间(GMT),不是本地时间。
8.1.3 实例—设置DHCP客户机
DHCP客户可以从DHCP服务器获得相关的网络配置信息。
实例8-2 配置DHCP客户
1.Linux客户端
DHCP客户可以是Linux操作系统,也可以是Windows操作系统,在Linux操作系统上的配置如下:
进入界面,依次选择【系统】/【管理】/【网络】,在弹出的【网络配置】窗口中,双击要动态获取IP地址的网络接口,在弹出的【以太网设备】对话框中,进行如图8-2所示的选择,单击【确定】。然后在【网络配置】窗口中单击【激活】按钮。
在终端窗口执行#ifconfig命令查看动态获取的IP地址。

图8-2 动态获得IP地址
2.Windows客户端在Windows XP操作系统上的配置如下。
启用客户机的DNS功能,右键单击桌面的【网上邻居】图标,在右键菜单选择【属性】,双击本地连接,在弹出的对话框中选择【Internet协议(TCP/IP)】,并单击【属性】按钮,在弹出的对话框中选择【常规】选项卡,然后选择【自动获得IP地址】即可。