Linux怎么配置DHCP服务器
Linux怎么配置DHCP服务——DHCP服务器的搭建
前言:当局域网络中有大量的主机时,如果逐个为每一台主机手动设置IP地址、默认网关、DNS服务器地址等网络参数,显然是一个非常笨拙的方法。而DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)服务器的应用,正好可以解决这一问题。
DHCP的典型应用模式:在网络中架设一台专用的DHCP服务器,负责集中分配各种网络地址参数,其他主机作为DHCP客户机,将网卡配置为自动获取地址,即可与DHCP服务器进行通信,完成自动配置过程。

DHCP服务
- 为大量客户机自动分配地址,提供集中管理
- 减轻管理和维护成本、提高网络配置效率
可分配的地址信息主要包括
- 网卡的IP地址、子网掩码
- 对应的网络地址、广播地址
- 默认网关地址
- DNS服务器地址
下面让我们一起了解在Linux系统中构建DHCP服务器,使用DHCP客户端的过程。
一、配置DHCP服务器
1.安装DHCP服务器软件
先执行"rpm -q dhcp"命令查看系统中是否已经安装dhcp软件包,如果还没有安装的话,只要挂载系统光盘,安装其中的dhcp软件包即可,可以使用rpm直接安装,也可以使用yum安装。安装dhcp软件包后系统将会自动复制相关程序,并添加名为dhcpd的系统服务。
示例:rpm安装dhcp服务

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

1)dhcpd.conf 的内容构成
如图所示:

如上图所示:
全局配置参数:通常会放在配置文件的开头部分
网段声明:以subnet字段开头
主机声明:以host字段开头
配置选项:由"option"引导,后面跟具体的配置关键字和对应的值
配置参数:由配置关键字和对应的值组成,总是以分号";"结束
2)确定dhcpd服务的全局配置
全局配置作用于整个 DHCP 服务器,通常会放在配置文件的开头部分,可以是配置参数,也可以是配置选项。常用的全局配置参数和选项如下图所示:

如上图所示:
option domain-name,默认搜索区域。为客户机指定解析主机名时的默认搜索域,该配置选项将体现在客户机的/etc/resolv.conf配置文件中。
option domain-name-servers,DNS服务器地址。为客户机指定解析域名时使用的DNS服务器地址,该配置选项同样将体现在客户机的/etc/resolv.conf配置文件中。需要设置多个DNS服务器地址时,应以逗号进行分隔。
default-lease-time,默认租约时间。单位为秒,表示客户端可以从DHCP服务器租用某个IP地址的默认时间。
max-lease-time,最大租约时间。单位为秒,表示允许DHCP客户端请求的最大租约时间,当客户端未请求明确的租约时间时,服务器采用默认租约时间。
ddns-update-style,动态DNS更新模式。用来设置与DHCP服务相关联的DNS数据动态更新模式。在实际的DHCP应用中很少用到该参数,将值设为"none"即可。
3)确定subnet网段声明
Subnet网段声明,只作用于指定的网段,一台服务器可以为对个网段提供服务,因此subnet网段声明可以有多个。网段声明常见的参数和选项如下图所示:

4)确定host主机声明(可选)
host声明用于设置单个主机的网络属性,通常用于为网络打印机或个别服务器分配固定的IP地址(保留地址),这些主机的共同特点是要求每次获取的IP地址相同,以确保服务的稳定性。
host声明通过host关键字指定需要使用保留地址的客户机名称,并使用"hardware ethernet"参数指定该主机的MAC地址,使用"fixed-address"参数指定保留给该主机的IP地址。
示例:为打印机prtsvr(MAC地址为00:c0:c3:22:46:81)分配固定的IP地址192.168.1.100。
图示:

3.启动dhcpd服务
在启动dhcpd服务之前,应确认提供DHCP服务器的网络接口具有一个静态指定的固定IP地址,并且至少有一个网络接口的IP地址与DHCP服务器中的一个subnet网段相对应,否则无法正常启动dhcpd服务。
安装dhcp软件包以后,对应的系统服务脚本位于/etc/rc.d/init.d/dhcpd,可以使用标准的系统服务进行控制。如下图所示:

dhcpd服务服务端使用的端口为:UDP67;客户端使用的端口为:UDP68。
需要关闭、重启dhcpd服务是,只需将上述操作命令中的start该为stop、restart即可。如果dhcpd服务启动失败,可以通过检查日志文件/var/log/messages末尾的错误提示信息,并根据提示进行排错。
二、使用DHCP客户端验证
当局域网内有可用的DHCP服务器时,在Linux客户机中可以设置使用DHCP的方式获取地址。只需要编辑对应网卡的配置文件,修改或添加"BOOTPROTO=dhcp"配置行,并重新加载配置文件或重新启动network服务即可。
示例:执行以下操作可以修改网卡配置文件,并重新加载配置以通过DHCP方式自动获取地址。

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

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

需要通过dhclient命令释放获取的IP租约时,可以结合"-r"选项。
示例:执行"dhclient -r eth0"将会释放之前为网卡eth0获取的IP租约。
图示:

此时再通过ifconfig eth0就看不到分配的IP地址了。
再啰嗦一句RHEL6网卡接口的名称是eth,RHEL7之后该为了ens33。(CentOS也一样)
相关推荐
-
nginx检查提示“unknown directive "stream" in /etc/*/nginx.conf”
nginx检查提示“unknown directive "stream" in /etc/*/nginx.conf”2025-02-26 00:38:21 -
php之多级目录下查找文件中是否含有某个字符串功能实现2025-02-26 00:36:35
-
mysql 启动不了1067错误如何解决?2025-02-26 00:33:31
-
MySQL简单INSERT超慢原因排查2025-02-26 00:22:42
-
mysql分布式数据库的主要构架是什么?2025-02-26 00:06:23