一. DHCP概述
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一个主机IP简化分配管理的TCP/IP协议,用户通过DHCP服务器动态的分配给客户端IP地址及其他环境的配置工作,包括IP地址、子网掩码、网关和DNS等。
DHCP基于服务器/客户端模式,当客户机启动时,自动与DHCP服务器通信,要求提供自动分配IP地址的服务,而安装了DHCP的服务器则会响应客户端的请求。DHCP服务器拥有固定的IP地址,客户端的IP地址则是由DHCP服务器动态分配的。
DHCP服务主要应用在网段内计算机数量非常多,上百台的计算机需要网络管理员逐一配置IP地址、网关和DNS等参数时,工作量巨大,而且以后维护工作十分繁重;公司单位具有相当多的移动设备,如笔记本电脑,需要临时配置IP地址,容易造成IP地址冲突等现象。以上情况下,架设DHCP服务器是十分必要的。
二、DHCP的工作原理
DHCP主要通过客户端发送广播包给整个物理网段,如果在局域网内有DHCP服务器,则会响应客户端的请求,因此,DHCP服务器与客户机应在同一个网段内。客户端取得IP整个过程如下:
1、DHCP客户端寻找DHCP服务器。
如果客户端设置使用DHCP取得IP地址,则客户端开机或重新启动时,客户端以广播方式在整个物理网段内发送DHCP请求,只有DHCP服务器才会响应,其他的主机收到该请求则会直接丢弃。
2、DHCP服务器提供IP地址。
DHCP服务器接收到客户端的请求后,从IP地址池中选择一个尚未分配的IP地址分配给客户端,向该客户端发送包含租借的IP地址和其他配置信息的数据包。
此外,DHCP服务器还会提供给客户端一个租约时间,并等待客户端的响应。
3、客户端接收服务器提供的参数并设置本身的网络环境。
客户端收到服务器传来的数据包参数,如IP地址、子网掩码、网关和DNS,对本身的网络环境进行设置,完成配置后,即向DHCP服务器发送一个数据包,确认该参数已被接收。
4、DHCP服务器记录该次租约行为。
客户端与DHCP服务器建立租约行为后,该次租约记录到DHCP服务器的日志文件中,并且开始租约计时。租约到时解除的行为主要以下几种情况:
(1)客户端离线:离线主要包括重新启动、关机和关闭网络接口等,这时DHCP服务器就会收回分配的IP地址,并放回服务器备用区内,以便日后使用。
(2)客户端租约到期:由于DHCP服务器分配的IP地址是有使用期限的,客户端使用此IP地址到期,而且没有再次向DHCP服务器提出申请,这时DHCP服务器就会收回该IP地址。
客户端取得IP整个过程如图所示。
三、DHCP服务的配置
DHCP服务器安装后,并没有生产配置文件,需要配置文件dhcpd.conf,配置内容主要设置IP作用域、DHCP选项、租约和保留特定IP地址等。
DHCP配置文件dhcpd.conf的格式如下:
选项/参数 #这些选项/参数全局有效
声明{
选项/参数 #这些选项/参数局部有效
}
(1)声明
声明定义作用域、分配给客户端的IP地址范围等,如下表11.1所示。
表11.1 dhcpd.conf文件中常用的声明及功能
声明 | 功能 |
shared-network 名称 {…} | 定义超级作用域 |
subnet 网络号 netmask 子网掩码 {…} | 定义作用域(或IP子网) |
range 起始IP地址 终止IP地址 | 定义作用域(或IP子网)范围 |
host 主机名 {…} | 定义保留地址 |
group {…} | 定义一组参数 |
(2)参数
参数是必选的或控制DHCP行为的值。常用参数及功能如表11.2所示.
表11.2 dhcpd.conf文件中常用的选项及功能
选项 | 功能 |
ddns-update-style 类型 | 定义所支持的DNS动态更新类型(必选) |
allow/ignore client-updates | 允许/忽略客户机更新DNS记录 |
default-lease-time 数字 | 指定默认的租约期限 |
max-lease-time 数字 | 指定最大租约期限 |
hardware 硬件类型 MAC地址 | 指定网卡接口类型和MAC地址 |
server-name 主机名 | 通知DHCP客户机服务器的主机名 |
fixed-address IP地址 | 分配给客户端一个固定的IP地址 |
(3)选项
选项用来配置客户端的可选参数,它们用option作为开头,如表11.3所示。
表11.3 dhcpd.conf文件中常用的选项及功能
选项 | 功能 |
subnet-mask 子网掩码 | 为客户端指定子网掩码 |
domain-name “域名” | 为客户端指定DNS域名 |
domain-name-servers IP地址 | 为客户端指定DNS服务器的IP地址 |
host-name “主机名” | 为客户端指定主机名 |
routers IP地址 | 为客户端指定默认网关 |
broadcast-address 广播地址 | 为客户端指定广播地址 |
netbios-name-servers IP地址 | 为客户端指定WINS服务器的IP地址 |
netbios-node-type 节点类型 | 为客户端指定节点类型 |
ntp-server IP地址 | 为客户端指定网络时间服务器的IP地址 |
nis-servers IP地址 | 为客户端指定NIS域服务器的地址 |
nis-domain “名称” | 为客户端指定所属的NIS域的名称 |
time-offset 偏移差 | 为客户端指定与格林尼治时间的偏移差 |
【实例】架设一台DHCP服务器,要求如下:
1子网192.168.2.0,子网掩码为255.255.255.0,建立一个IP作用域,并将在192.168.2.20~192.168.2.100范围之内的IP地址动态分配给客户机。
2假设子网中的DNS服务器地址为192.168.2.2,IP路由器地址为192.168.2.1,所在的网域名为test.com,将这些参数指定给客户机使用。
3为某台主机保留192.168.2.50这个IP地址。
配置代码如下:
ddns-update-style interim;
ignore client-updates;
subnet 192.168.2.0 netmask 255.255.255.0 {
range 192.168.2.20 192.168.2.100;
option routers 192.168.2.1;
option subnet-mask 255.255.255.0;
option domain-name "test.com";
option domain-name-servers 192.168.2.2;
option broadcast-address 192.168.2.255;
default-lease-time 86400;
max-lease-time 172800;
host pc1 {
hardware ethernet 00:01:6c:e3:c0:f7;
fixed-address 192.168.2.50;
}
}