DHCP原理与配置

DHCP 工作原理

当局域网络中有大量的主机时,如果逐个为每一台主机手动设置IP地址、默认网关、DNS服务器地址等网络参数,显然是一个费力也未必讨好的办法。

而DHCP(Dynamic Host Configuration Protocol, 动态主机配置协议)服务器的应用,正好可以解决这一问题。

1.了解DHCP服务

DHCP(Dynamic Host Configuration Protocol, 动态主机配置协议)由Internet工作任务小组设计开发专门用于为TCP/IP网络中的计算机自动分配TCP/IP参数的协议

DHCP 服务避免了因手动设置IP 地址所产生的错误,同时也避免了把一个IP地址分配给多台工作站所造成的地址冲突。DHCP 提供了安全、可靠且简单的TCP/IP 网络设置,降低了配置IP地址的负担。

2.使用DHCP的好处

Internet是目前世界上用户最多的服务之一,有几十亿人在使用 Intemet。由于上网时间的不确定性以及使用人员的技术水平不同,为每位用户分配一个固定的IP地址,不仅造成了IP地址的浪费,也会为ISP服务商带来高额的维护成本。而使用DHCP服务则有以下好处。

> 减少管理员的工作量。

> 避免输入错误的可能。

> 避免IP地址冲突。

> 当网络更改IP地址段时,不需要再重新配置每个用户的IP地址。

> 提高了IP地址的利用率。

> 方便客户端的配置。

3.DHCP的分配方式

DHCP的典型应用模式如下:在网络中架设一台专用的DHCP 服务器,负责集中分配各种网络地址参数(主要包括IP地址、子网掩码、广播地址、默认网关地址、DNS 服务器地址);其他主机作为DHCP 客户机,将网卡配置为自动获取地址,即可与DHCP 服务器进行通信,完成自动配置过程。在 DHCP 的工作原理中, DHCP 服务器提供了三种IP 地址分配方式:自动分配(Automatic Allocation)、手动分配和动态分配 (DynamicAllocation )。

> 自动分配是当DHCP客户机第一次成功地从DHCP服务器获取到一个IP地址后,就永久地使用这个IP地址。

> 手动分配是由DHCP服务器管理员专门指定IP地址。

> 动态分配是当DHCP客户机第一次从DHCP服务器获取到IP地址后,并非永久地使用该地址,而是在每次使用完后,DHCP 客户机就会释放这个IP 地址,供其他客户机使用。

4.DHCP的租约过程

客户端从DHCP服务器获取IP地址的过程称之为DHCP租约过程,此过程主要分为以下四个步骤。

> 客户端在网络中搜索服务器;

> 服务器向客户端响应服务;

> 客户端向服务器发出服务请求;

> 服务器向客户端提供服务。

具体过程如下:

(1)客户机请求IP地址

当一个DHCP 客户机启动时,客户机还没有IP 地址,所以客户机要通过DHCP 获取一个合法的地址。此时DHCP 客户机以广播方式发送 DHCP Discover 发现信息来寻找DHCP 服务器

(2)服务器响应

当DHCP 服务器接收到来自客户机请求IP 地址的信息时,它就在自己的IP 地址池中查找是否有合法的IP 地址提供给客户机。如果有,DHCP 服务器就将此IP 地址做上标记,加入到DHCP Offer的消息中,然后DHCP 服务器就广播一则DHCP Offer 消息。

(3)客户机选择IP 地址

DHCP客户机从接收到的第一个DHCP Offer消息中提取IP地址,发出IP地址的DHCP服务器将该地址保留,这样该地址就不能再分配给另一个DHCP 客户机。之后DHCP 客户机会向服务器发送DHCP Request 消息。

(4)服务器确定租约

DHCP服务器接收到DHCP Request 消息后,以DHCPACK消息的形式向客户机广播成功确认,该消息包含有IP地址的有效租约和其他可配置的信息。当客户机收到DHCPACK消息时,它就配置了IP地址,完成TCP/IP的初始化。

(5)重新登录

DHCP客户机每次重新登录网络时,不需要再发送DHCP Discover 信息,而是直接发送包含前一次所分配的IP 地址的DHCP Request 请求信息。

(6)更新租约

当DHCP服务器向客户机出租的IP 地址租期达到50%时就需要更新租约。客户机直接向提供租约的服务器发送DHCP Request 包,要求更新现有的地址租约。

使用DHCP动态配置主机地址

使用DHCP服务可以为大量客户机自动分配地址并提供集中管理,能够减轻管理和维护成本、提高网络配置效率。其中 DHCP 服务可分配的地址信息主要包括:

> 网卡的 IP 地址、子网掩码;

> 对应的网络地址、广播地址;

> 默认网关地址;

> DNS 服务器地址;

配置 DHCP 服务器

1. 安 装 DHCP 服务器软件

先执行"rpm-qdhcp"命令查看系统中是否已经安装 dhcp 软件包,如果没有安装,使用yum命令或rpm命令安装即可,具体操作如下。安装 dhcp 软件包后系统将会自动复制相关程序,并添加名为dhcpd的系统服务。

yum -y install dhcp
2. 建立主配置文件 dhcpd.conf

dhcpd 服务的主配置文件是/etc/dhcp/dhcpd.conf, 但是该文件中默认不包含任何有效配置,需要管理员手动建立。这时管理员可以根据文件中的提示,参考配置文件范本建立新的dhcpd.conf文件。

[root@localhost~]#cat /etc/dhcp/dhcpd.conf 
[root@localhost~]#cp /usr/share/doc/dhcp-4.2.5/dhcpd.conf.example /etc/dhcp/dhcpd.conf
/etc/dhcp/dhcpd.conf 文件的配置构成

在主配置文件 dhcpd.conf 中,可以使用声明、参数、选项这三种类型的配置,各自的作用和表现形式如下所述。

> 声明:用来描述 dhcpd 服务器中对网络布局的划分,是网络设置的逻辑范围。较常见的声明是 subnet、host, 其中 subnet 声明用来约束一个网段,host 声明用来约束一台特定的主机。

> 参数:由配置关键字和对应的值组成,总是以";"(分号)结束,一般位于指定的声明范围之内,用来设置所在范围的运行特性(如默认租约时间、最大租约时间等)。

> 选项:由"option "引导,后面跟具体的配置关键字和对应的值,也是以";"结束,用于指定分配给客户机的各种地址参数(如默认网关地址、子网掩码、DNS服务器地址等)。

dhcpd 服务的全局配置

为了使配置文件的结构更加清晰,全局配置通常会放在配置文件 dhcpd.conf 的开头部分,可以是配置参数,也可以是配置选项。常用的全局配置参数和选项如下所述。

> ddns-update-style, 动态DNS更新模式。用来设置与DHCP服务相关联的DNS数据动态更新模式。在实际的DHCP应用中很少用到该参数,将值设为none即可。

> default-lease-time, 默认租约时间。单位为秒,表示客户端可以从DHCP服务器租用某个 IP 地址的默认时间。

> max-lease-time, 最大租约时间。单位为秒,表示允许 DHCP 客户端请求的最大租约时间,当客户端未请求明确的租约时间时,服务器将采用默认租约时间。

> option-domain-name, 默认搜索区域。为客户机指定解析主机名时的默认搜索域,该配置选项将体现在客户机的/etc/resolv.conf配置文件中,如"search benet.com"

> option domain-name-servers,DNS 服务器地址。为客户机指定解析域名时使用的DNS 服务器地址,该配置选项同样将体现在客户机的/etc/resolv.conf配置文件中。需设置多个DNS服务器地址时,以逗号进行分隔。

subnet网段声明

一台 DHCP服务器可以为多个网段提供服务,因此subnet网段声明必须有而且可以有多个。

host主机声明(可选)

host声明用于设置单个主机的网络属性,通常用于为网络打印机或个别服务器分配固定的IP地址(保留地址),这些主机的共同特点是要求每次获取的IP 地址相同,以确保服务的稳定性。

host 声明通过 host 关键字指定需要使用保留地址的客户机名称,并用"hardware ethernet"参数指定该主机的 MAC地址,使用"fixed-address"参数指定保留给该主机的IP地址。

3. 启动dhcpd服务

在启动 dhcpd 服务之前,应确认提供DHCP 服务器的网络接口具有静态指定的固定 IP 地址,并且至少有一个网络接口的 IP 地址与DHCP 服务器中的一个 subnet网段相对应,否则将无法正常启动dhcpd 服务。

systemctl restart dhcpd

使用 DHCP 客户端

当局域网内有可用的DHCP服务器时,在Linux客户机中可以设置使用DHCP的方式获取地址。只需要编辑对应网卡的配置文件,修改或添加"BOOTPROTO=dhcp" 配置行,并重新加载配置文件或者重新启动 network 服务即可。例如,执行以下操作可修改网卡配置文件,并重新加载配置以通过DHCP方式自动获取地址。

[root@localhost ~]#vi /etcl/sysconfig/network-scripts/ifcfg-ens33
DEVICE=ens33 
ONBOOT=yes 
BOOTPROTO=dhcp 
[root@localhost ~]# systemctl restart network

在Linux 客户机中,还可以使用dhclient工具来测试DHCP服务器。若直接执行dhclient命令,则 dhclient将尝试为除回环接口lo以外的所有网络接口通过DHCP方式申请新的地 址,然后自动转入后台继续运行。当然,测试时可以指定一个具体的网络接口,并结合"-d" 选项使其在前台运行,测试完毕后按Ctrl+C 组合键终止。

[root@localhost ~]#dhclient -d ens33

在服务器端可以通过查看租约文件/var/lib/dhcpd/dhcpd.leases来了解服务器的IP 地 址分配情况。该租约文件中记录了分配出去的每个 IP地址信息(租约记录) ,包括IP地址、客户端的MAC地址、租用的起始时间和结束时间等。

[root@localhost~]#less /var/lib/dhcpd/dhcpd.leases

客户端需要通过dhclient命令释放获取的IP租约时,可以结合"-r"选项。例如,执行以下的dhclient-rens33将会释放之前为网卡ens33获取的IP租约。此时再通过执行ifconfigens33命令就看不到分配的IP 地址了。

[root@localhost~]# dhclient -r ens33

DHCP 中继

1.DHCP 中继原理

当企业内部网络规模比较大时,通常通过VLAN 将网络规划为多个不同的子网。但是在该情况下一台 DHCP服务器无法为不同网段的客户机同时提供服务,因为DHCP协议使用广播,而VLAN能隔离广播。

针对以上问题,一般有两种解决方案:

> 为每个网段安装一台DHCP服务器,但这种方式的弊端是:资源浪费与不利于管理;

> 在连接不同网段的设备上开启DHCP中继功能,将DHCP这种特殊的广播信息在VLAN之间转发,让其他VLAN 的客户机也能从DHCP服务器获取IP地址

2.DHCP 中继配置

DHCP中 继 的 配 置 命 令 :

ip

helper-address

DHCPsrv-IPAddress 。

其中,DHCPsrv-IpAddres为DHCP服务器的IP地址。在三层交换机上配置DHCP中继转发,首先需要保证交换机上个VLAN之间网络通信正常,然后依次在不包含DHCP服务器的VLAN上进行FHCP中继配置。

相关推荐
lshzdq4 分钟前
【CMake】基本概念和快速入门
linux·运维·服务器
爱技术的小伙子11 分钟前
Linux 磁盘管理与分区:使用fdisk、parted、df、du等命令管理磁盘和分区
linux·运维·服务器
Java小白白同学14 分钟前
Linux:CentOS 系统磁盘扩容操作
linux·服务器·centos
kinlon.liu18 分钟前
基于 Nginx + Spring Boot + Vue + JPA 的网站安全防护指南
网络·vue.js·spring boot·nginx·安全
semicolon_hello19 分钟前
使用C++编写TCP服务端程序
服务器·网络·c++·tcp/ip
不喜欢就睡大觉31 分钟前
Linux—网络设置
linux·运维·服务器
Roc-xb31 分钟前
使用ifconfig命令获取当前服务器的内网IP地址
运维·服务器·tcp/ip
qq_17780362232 分钟前
Windows系统服务器远程教程
运维·服务器·云计算·ddos·ip
我爱小白羊34 分钟前
【Linux】进程优先级 + 环境变量
linux·运维·服务器
seetimee34 分钟前
服务器工具集合推荐
运维·服务器