当前位置: 首页 > news >正文

1.DHCP服务器

文章目录

  • 1.DHCP服务器
    • DHCP 服务介绍
    • DHCP 通信过程
    • 多个 DHCP 服务器
    • 部署 DHCP 服务器
      • 安装 DHCP 软件
      • 配置 DHCP 服务器
        • 典型的 DHCP 配置示例
        • 配置说明
      • 验证 DHCP 配置
      • 启用并启动服务
    • 基于 MAC 地址预留 IP 地址
      • 客户端 MAC 地址查看
      • 重启服务
      • 客户端验证

1.DHCP服务器

DHCP 服务介绍

在大型网络中,系统静态分配 IP 地址面临问题:

  1. 确保不要同时在多个系统上使用同一个地址。
  2. 部署新系统通常需要手动分配其 IP 地址。在云环境中,实例的网络是自动化配置的。

动态主机配置协议(DHCP-Dynamic Host Configuration Protocol)提供了一种自动配置网络参数的方法,例如 IP 地址、默认网关、DNS 服务器和域或 NTP 服务器。在网络中部署 DHCP 服务器,您可以集中控制这些参数。

DHCP 有两种协议:

  • 用于 IPv4 网络的 DHCPv4。
  • 用于 IPv6 网络的 DHCPv6。

本课程只介绍 DHCPv4。

DHCP 通信过程

  1. 客户端使用 DHCPv4 配置网络接口时,网卡将 DHCPDISCOVER 数据包发送到 255.255.255.255 广播目标。因为路由器通常不转发该广播地址,所以必须将 DHCP 服务器与客户端安装在同一物理网络上,以便它可以接收 DHCPDISCOVER 数据包。您也可以将路由器配置为 DHCP 中继代理,转发 DHCP 消息到其他网络。
  2. DHCP 服务器收到 DHCPDISCOVER 数据包后,响应 DHCPOFFER 数据包,该数据包包含其自己的 IP 地址和客户端应使用的 IP 地址。该数据包还包括一个租用期限,以指示所提供的 IP 地址有效的时间,以及其他网络参数,例如默认网关和 DNS 服务器。
  3. 客户端收到 DHCP 服务器 DHCPOFFER 数据包后,发送 DHCPREQUEST 广播数据包,请求 DHCP 服务器提供的 IP 地址。这似乎很多余,但是网络上可能有多个 DHCP 服务器,或者路由器可能会将 DHCPOFFER 转发到多个网络。因此,客户端可能会从不同的 DHCP 服务器收到响应。客户端的 DHCPREQUEST 数据包包括接受请求的 DHCP 服务器的 IP 地址。
  4. DHCP 服务器收到 DHCPREQUEST 数据包后,会发送 DHCPACK 数据包,确认客户端对客户端 IP 地址具有独占权限,直到租约到期为止。
  5. 租约到期后,重新向 DHCP 服务器续约。
  6. DHCP 服务器,同意客户端续约。

在 DHCP 服务器上,可以使用journalctl --unit=dhcpd.service命令来访问客户端与服务端通信消息。以下摘录显示了客户端通过 DHCP 请求 IP 地址:

  1. DHCPDISCOVER from 52:54:00:01:fa:0b via eth0
  2. DHCPOFFER on 10.1.8.150 to 52:54:00:01:fa:0b (hosta) via eth0
  3. DHCPREQUEST for 10.1.8.150(10.1.8.2) from 52:54:00:01:fa:0b(hosta) via eth0
  4. DHCPACK on 10.1.8.150 to 52:54:00:01:fa:0b(hosta) via eth0

在租约到期之前,客户端会定期向服务器发送 DHCPREQUEST 数据包,以确保服务器不会收回 IP 地址。

多个 DHCP 服务器

尽管 DHCP 支持在物理网络上运行多个 DHCP 服务器,但不建议这么做。正常情况下,同一个物理网络中只需要一台 DHCP 服务器应回答客户端的请求即可。

在同一网络上运行多个服务器的情况下,当新客户端发送 DHCPDISCOVER 数据包以获取地址时,它可能会收到多个 DHCPOFFER 数据包。客户端仅接受其中一台服务器提供的配置,并广播包含该服务器 IP 地址的 DHCPREQUEST 数据包。其他 DHCP 服务器释放它们为客户端准备的 IP 地址。

但是,当客户端使用 DHCPREQUEST 数据包更新其 IP 地址时,服务器行为取决于服务器是否具有权威性。非权威的 DHCP 服务器会忽略 DHCPREQUEST 数据包中不知道的地址。当客户端发送的 IP 地址在权威 DHCP 服务器管理的地址范围内,但服务器以前不知道该 IP 地址时,它将拒绝该请求并发回 DHCPNAK 数据包。这可能意味着客户端最初是从网络上的另一台非权威的 DHCP 服务器获得其地址的。任何收到 DHCPNAK 数据包的客户端都不能再使用该地址,而必须请求一个新的地址。

使用默认配置启动 DHCP 服务器时,服务器不是权威服务器,这样可以防止非权威 DHCP 服务器接管权威服务器提供的地址。

部署 DHCP 服务器

要配置 DHCPv4 服务器,请首先使用ip addr命令确认您的网络接口配置是否指定了 BROADCAST 地址。

[root@server ~ 16:49:10]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope host valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:69:ce:f8 brd ff:ff:ff:ff:ff:ffinet 10.1.8.10/24 brd 10.1.8.255 scope global noprefixroute ens33valid_lft forever preferred_lft forever

服务器必须具有静态 IP 地址。

安装 DHCP 软件

#安装软件包
[root@server ~ 18:41:29]# yum install -y dhcp
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile* base: mirrors.aliyun.com* extras: mirrors.aliyun.com* updates: mirrors.aliyun.com
软件包 12:dhcp-4.2.5-83.el7.centos.2.x86_64 已安装并且是最新版本
无须任何处理

配置 DHCP 服务器

dhcpd 服务使用/etc/dhcp/dhcpd.conf配置文件。dhcp-server 软件包提供/usr/share/doc/dhcp-*/dhcpd.conf.example配置文件示例。

[root@server ~ 18:43:39]# cp /usr/share/doc/dhcp-*/dhcpd.conf.example /etc/dhcp/dhcpd.conf 
cp:是否覆盖"/etc/dhcp/dhcpd.conf"? y
[root@server ~ 18:46:20]# vim /etc/dhcp/dhcpd.conf 
典型的 DHCP 配置示例
subnet 10.1.8.0 netmask 255.255.255.0
range 10.1.8.150 10.1.8.254;
option routers 10.1.8.2;
option broadcast-address 10.1.8.255;
option domain-name-servers 10.1.8.2;
option domain-search "wsc.cloud";
default-lease-time 600;
max-lease-time 7200;
配置说明
  • authoritative:指示服务器对其所管理的子网具有权威性。
  • subnet:提供的子网详情。
  • range:指定服务器在该范围内分配 IP 地址。
  • option routers:指定服务器提供默认网关地址。
  • option domain-name-servers:指定服务器提供 DNS 名称服务器。
  • option domain-search:指定服务器提供 DNS 域搜索列表。
  • default-lease-time:提供网络信息默认租期,如果客户端不要求任何特定的租期。单位秒。
  • max-lease-time:指示服务器可以从客户端请求接受的最大租期。单位秒。

客户端系统上的 NetworkManager 使用domain-name-serversdomain-search更新resolv.conf文件中的nameserversearch参数。

验证 DHCP 配置

#验证配置文件语法
[root@server ~ 18:49:21]# dhcpd -t
Internet Systems Consortium DHCP Server 4.2.5
Copyright 2004-2013 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
Not searching LDAP since ldap-server, ldap-port and ldap-base-dn were not specified in the config file#输出结果为 0,表明配置文件没有问题
[root@server ~ 18:49:31]# echo $?
0

启用并启动服务

#启动并启动服务
[root@server ~ 18:50:07]# systemctl enable dhcpd --now
Created symlink from /etc/systemd/system/multi-user.target.wants/dhcpd.service to /usr/lib/systemd/system/dhcpd.service.#查看服务状态
[root@server ~ 18:52:12]# systemctl status dhcpd
● dhcpd.service - DHCPv4 Server DaemonLoaded: loaded (/usr/lib/systemd/system/dhcpd.service; enabled; vendor preset: disabled)Active: active (running) since 四 2025-09-25 18:43:07 CST; 9min agoDocs: man:dhcpd(8)man:dhcpd.conf(5)Main PID: 12840 (dhcpd)Status: "Dispatching packets..."CGroup: /system.slice/dhcpd.service└─12840 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -us...925 18:43:07 server dhcpd[12840]: Copyright 2004-2013 Interne....
925 18:43:07 server dhcpd[12840]: All rights reserved.
925 18:43:07 server dhcpd[12840]: For info, please visit http.../
925 18:43:07 server dhcpd[12840]: Wrote 0 deleted host decls ....
925 18:43:07 server dhcpd[12840]: Wrote 0 new dynamic host de....
925 18:43:07 server dhcpd[12840]: Wrote 0 leases to leases file.
925 18:43:07 server dhcpd[12840]: Listening on LPF/ens33/00:0...4
925 18:43:07 server dhcpd[12840]: Sending on   LPF/ens33/00:0...4
925 18:43:07 server systemd[1]: Started DHCPv4 Server Daemon.
925 18:43:07 server dhcpd[12840]: Sending on   Socket/fallbac...t
Hint: Some lines were ellipsized, use -l to show in full.

基于 MAC 地址预留 IP 地址

在配置文件中,host声明可以将 MAC 地址绑定到 IP 地址。此配置对于始终为特定系统的网络接口提供相同的 IP 地址特别有用,尤其是 Web 或数据库系统之类的服务器。

客户端 MAC 地址查看

[root@server ~ 18:52:29]# ip link show ens33
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP mode DEFAULT group default qlen 1000link/ether 00:0c:29:69:ce:f8 brd ff:ff:ff:ff:ff:ff

/etc/dhcp/dhcpd.conf最后添加如下内容:

host client.linux.fun{
hardware ethernet 00:0c:29:ba:fd:88;
fixed-address 10.1.8.30;
}

重启服务

[root@server ~ 19:00:47]# systemctl restart dhcpd

客户端验证

[root@server ~ 19:03:55]# ip addr show ens33 
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:69:ce:f8 brd ff:ff:ff:ff:ff:ffinet 10.1.8.10/24 brd 10.1.8.255 scope global noprefixroute ens33valid_lft forever preferred_lft forever
http://www.dtcms.com/a/407080.html

相关文章:

  • 河南网站备案代理苏州专业网站建设公司
  • 电商网站seo公司网页怎么做成网站
  • 与TCP相比,UDP有什么优缺点?
  • 从0到1制作一个go语言服务器 (一) 配置
  • 沙姆定律原理/公式推导
  • leetcode 98 验证二叉搜索树
  • 国外外包网站天津百度搜索排名优化
  • 中国建设银行网站企业网银收费怎么在外国网站上找产品做跨境电商
  • 合肥网站优化搜索怎么做网站优化 site
  • 建站网络公司建筑二级建造师培训机构
  • 网站安全架构网站建设注意哪些问题
  • Python个性化新闻系统 新闻情感分析推荐系统 爬虫+情感分析+推荐算法(附源码)✅
  • Qt容器QList、QLinkedList、QVector特性浅谈
  • 时间序列分析新视角论文分享:LLM 搬进时间序列
  • 黑盒渗透DC-2报告总结
  • 英语培训网站建设东莞网站建设乐云seo
  • 怎么清理网站后门文件.net做网站教程
  • Qt常用控件之QLCDNumber
  • Java 实现LCRIME 雾凇变体算法
  • 做logo网站的公司高质量的猎建筑人才
  • 家居品牌网站建设巴中+网站建设
  • 大模型系列—— GPT-5 Codex 正式登陆 Azure AI Foundry
  • 互联网网站怎么做零售app开发公司
  • 有了自己的网站怎样做后台做网站怎么那么难
  • 【RK3576与USB转CAN收发C++实战ubuntu22.04】
  • FreeRTOS临界区管理使用中断的思路(一)
  • 义乌企业网站杭州网站建设推荐q479185700上墙
  • Spring 中的 Bean 有哪些作用域?单例 Bean 在多线程环境下会有线程安全问题吗?为什么?
  • 如何个网站做优化网站是用什么软件做的
  • 远程安全提示再升级!隐私屏开启位置突出、可录入被控锁屏...