DHCP 服务器 简介
# DHCP 服务器
# DHCP 概述
# 1.功能
DHCP(Dynamic Host Configuration Protocol)动态主机配置协议是一种基于 UDP 且仅限用于局域网的网络协议,通常被应用在大型的局域网络环境中,主要作用是集中地管理、分配 IP 地址,使网络环境中的主机动态获得 IP 地址、Gateway 地址、DNS 服务器地址等信息,并能够提升地址的使用率。另外,DHCP 也给移动客户机带来了很大的方便。因为某一子网为客户机设定的参数,往往只有在这个子网才能使用。如果移动到另一个子网,这些网络参数往往需要重新设置。采用动态地址分配可以解决这个问题,因为客户机事先是不设网络参数的,到了哪个子网,就可以从那个子网的 DHCP 服务器得到能正常工作的网络参数设置。
同时,采用 DHCP 可以节省 IP 地址资源。在很多网络中,并不是连网的计算机都会同时工作,如果为每一台计算机分配一个固定 IP,将会造成大量的 IP 地址资源浪费。如果采用动态地址分配,则只需要分配最大同时工作客户机的 IP 数即可。
# 2.工作方式
DHCP 通常是用于局域网内的一个通信协议,它主要是通过客户端发送广播数据包给整个物理网段内的所有主机,若局域网内有 DHCP 服务器时,才会响应客户端的 IP 参数要求。所以,DHCP 服务器与客户端是应该在同一个物理网段内。整个 DHCP 数据包在服务器与客户端间的交互情况如图
IP 参数的程序可以简化如下:
**⚫ 客户端:**利用广播数据包发送搜索 DHCP 服务器的数据包。
若客户端网络设置使用 DHCP 取得 IP,则当客户端开机或是重新启动网卡时,客户端主机会发送出查找 DHCP 服务器的 UDP 数据包给物理网段内的所有计算机。
**⚫ 服务器端:**提供客户端网络相关的租约以供选择。
DHCP 服务器在接收到客户端的要求后,会针对这个客户端的硬件地址(MAC)与本身的设置数据来进行下列工作:
① 到服务器的日志文件中查找该用户之前是否租用过某个 IP,若有且该 IP 目前无人使用,则提供此 IP 给客户端。若配置文件针对该 MAC 地址提供特定的固定 IP(static IP)时,则提供该固定 IP 给客户端。
② 若不符合上述两个条件,则随机选取当前没有使用过的 IP 参数给客户端,并记录下来。 总而言之,服务器端会针对客户端的要求提供一组网络参数租约给客户端选择。
**⚫ 客户端:**决定选择 DHCP 服务器提供的网络参数租约并向服务器确认。由于局域网内可能并非有一台 DHCP 服务器,但是客户端仅能接受一组网络参数租约。因此客户端需要选择。
当决定好使用此服务器的网络参数租约后,客户端便开始使用这组网络参数来配置自己的网络环境。因此,客户端也会发送一个广播数据包给所有在此物理段内的主机。告知已经接受该服务器的租约,其他的没有被接受的 DHCP 服务器就会收回该 IP 租约。 被接受的 DHCP 服务器会继续进行以下动作。
**⚫ 服务端:**记录该次租约行为,并向客户端发送响应数据包信息以确认客户端的使用。
当服务端接收到客户端的确认选择后,服务器会回送确认的相应数据包,告知客户端这个网络参数租约的期限,并且开始租约计时。
DHCP 服务程序涉及到的常见术语见表
名称 | 含义 |
---|---|
作用域 | 一个完整的 IP 地址段,DHCP 服务根据作用域来管理网络的分布、分配 IP 地址及其它配置参数 |
超级作用域 | 用于支持同一物理网络上多个逻辑 IP 地址子网段,包括作用域的列表,并对子作用域统一管理 |
排除范围 | 将某些 IP 地址在作用域中排除,确保这些 IP 地址不会被提供给 DHCP 客户机 |
地址池 | 在定义 DHCP 服务的作用域并应用排除范围后,剩余用来动态分配给 DHCP 客户机的 IP 地址范围 |
租约 | 即 DHCP 客户机能够使用动态分配到的 IP 地址的时间 |
预约 | 保证局域子网中特定设备总是获取到相同的 IP 地址 |
# 3.IP 分配方式
DHCP 有多种分配方式
这 3 种地址分配方式中,只有动态分配方式可以重复使用客户端不再需要的地址。其中分配的信息包括:网卡的 IP 地址、子网掩码、对应的网络地址、广播地址、默认网关地址、DNS 服务器地址。
分配方式 | 执行过程 |
---|---|
自动分配 | DHCP 服务器为主机指定一个永久性的 IP 地址,一旦 DHCP 客户端第一次成功从 DHCP 服务器租用到 IP 地址,就可以永久使用该地址 |
手动分配 | DHCP 服务器给主机指定一个有时间限制的 IP 地址,时间到期或主机明确表示放弃该地址时,该地址可以被其他主机使用 |
动态分配 | 客户端的 IP 地址是由网络管理员指定的,DHCP 服务器只是将指定的 IP 地址告诉客户端主机。 |
# 4.DHCP 与 DNS
**DHCP 服务与 DNS 服务有很高的相关性。**比如,局域网内有很多 Linux 服务器时,需要将私有 IP 加入到每台主机的/etc/hosts 里面,这样连接阶段的等待时间才不会有超时或者是等待太久的问题。但是如果计算机数量太大,又有很多测试机,还需要常常去更新维护那些重装过操作系统的机器的/etc/hosts/文件,就会变得很麻烦。
此时,在局域网内搭建一台 DNS 服务器负责主机名解析就很重要了。有 DNS 服务器帮忙进行主机名的解析,就不需要再反复去修改/etc/hosts 文件。未来的新机器或者新加入的计算机也不需要改写任务网络参数。
# 5.DHCP 配置
dhcpd 服务程序用于提供 DHCP 协议服务,可以使用 YUM 直接安装。dhcpd 服务程序与配置文件见表
主配置文件 | /etc/dhcp/dhcpd.conf |
---|---|
执行程序 | /usr/sbin/dhcpd |
/usr/sbin/dhcrelay |
一个标准的DHCP配置文件应该包括全局配置参数(用于定义整个配置文件的全局参数)、子网网段声明(配置整个子网段的地址属性)、地址配置选项以及地址配置参数,具体涉及到的部分参数见表
参数 | 作用 |
---|---|
ddns-update-style 类型 | 定义 DNS 服务动态更新的类型,类型包括:none(不支持动态更新),interim(互动更新模式)与 ad-hoc (特殊更新模式) |
allow/ignore client-updates | 允许/忽略客户机更新 DNS 记录 |
default-lease-time 2300 | 默认超时时间 |
max-lease-time 3211 | 最大超时时间 |
option domain-name-servers 8.8.8.8 | 定义 DNS 服务器地址 |
option domain-name "baidu.com" | 定义 DNS 域名 |
range | 定义用于分配的 IP 地址池 |
option subnet-mask | 定义客户机的子网掩码 |
option routers | 定义客户机的网关地址 |
broadcase-address | 定义客户机的广播地址 |
ntp-server IP 地址 | 定义客户机的网络时间服务器(NTP) |
nis-servers IP 地址 | 定义客户机的 NIS 域服务器的地址 |
hardware 硬件类型 MAC 地址 | 指定网卡接口的类型与 MAC 地址 |
server-name 主机名 | 通知 DHCP 客户机服务器的主机名 |
fixed-address IP 地址 | 将某个固定 IP 地址分配给指定主机 |