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

DHC服务器

文章目录

  • DHC服务器
    • DHCP服务介绍
    • DHCP通信过程
    • 多个 DHCP服务器
    • 部署DHCP服务器
      • 前提条件
      • 实例:
        • 配置server服务端
          • 安装 DHCP 软件
          • 配置 DHCP 服务器
          • 配置参数说明
          • 验证 DHCP配置
          • 启动 DHCP 服务
        • 配置 DHCP 客户端
          • 添加一块网卡
        • 基于 MAC 地址预留 IP 地址
          • 获取客户端 MAC 地址
          • 配置 IP 预留
          • 客户端验证

DHC服务器

DHCP服务介绍

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

  1. 确保不要同时在多个系统上使用同一个地址。

  2. 部署新系统通常需要手动分配其IP地址。在云环境中,实例的网络是自动化配置的。

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

您可以集中控制这些参数。

DHCP有两种协议:

  • 用于IPv4网络的DHCPV4.

  • 用于IPv6网络的DHCPv6。

DHCP通信过程

  1. 客户端使用DHCP4配置网络接口时,网卡将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服务器,同意客户端续约,发送DHCPACK(续约确认)数据包。

    序号时间源 IP源 MAC目标 MAC目标 IP协议长度描述事务 ID
    5321:03:12.1890410.0.0.000:00:29:54:fd:88ff:ff:ff:ff:ff:ff255.255.255.255DHCP326DHCP Discover0x8a1ba7167
    5421:03:12.19827510.1.8.1000:0c:29:00:00:1800:00:29:54:fd:8810.1.8.20DHCP360DHCP Offer0x8a1ba7167
    5521:03:12.1988690.0.0.000:00:29:54:fd:88ff:ff:ff:ff:ff:ff255.255.255.255DHCP333DHCP Request0x8a1ba7167
    5621:03:12.19134210.1.8.1000:0c:29:00:00:1800:00:29:54:fd:8810.1.8.20DHCP363DHCP ACK0x8a1ba7167

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

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
4 eth0
5 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地址。

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

前提条件

  1. 确认网络接口配置:使用ip addr命令确认网络接口已指定BROADCAST地址,示例如下:

    2: ens160: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000link/ether 00:0c:29:e5:be:0f brd ff:ff:ff:ff:ff:ffinet 10.1.8.10/24 brd 10.1.8.255 scope global ens160valid_lft forever preferred_lft foreverinet6 fe80::20c:29ff:fee5:be0f/64 scope linkvalid_lft forever preferred_lft forever
    

实例:

配置server服务端
安装 DHCP 软件
#查看DHCP下载包
[root@server ~ 10:03:02]# yum list dhcp*
已加载插件:fastestmirror
... ...
可安装的软件包
dhcp.x86_64                12:4.2.5-83.el7.centos.2         updates  
dhcp-common.x86_64         12:4.2.5-83.el7.centos.2         updates  
dhcp-devel.i686            12:4.2.5-83.el7.centos.2         updates  
dhcp-devel.x86_64          12:4.2.5-83.el7.centos.2         updates  
dhcp-libs.i686             12:4.2.5-83.el7.centos.2         updates  
dhcp-libs.x86_64           12:4.2.5-83.el7.centos.2         updates  
dhcpcd.x86_64              9.5.2-2.el7                      epel     
dhcpd-pools.x86_64         3.2-1.el7                        epel     
dhcpdump.x86_64            1.9-1.el7                        epel     
dhcping.x86_64             1.2-13.el7                       epel     #下载
[root@server ~ 10:11:27]# yum install -y dhcp
已加载插件:fastestmirror
... ...     作为依赖被升级:dhclient.x86_64 12:4.2.5-83.el7.centos.2                           dhcp-common.x86_64 12:4.2.5-83.el7.centos.2                        dhcp-libs.x86_64 12:4.2.5-83.el7.centos.2    
完毕!
配置 DHCP 服务器

DHCP 服务器的核心配置文件为/etc/dhcp/dhcpd.conf,系统提供示例配置文件/usr/share/doc/dhcp-*/dhcpd.conf.example.

#查看
[root@server ~ 10:11:57]# ls /etc/dhcp/
dhclient.d/            dhcpd.conf
dhclient-exit-hooks.d/ scripts/
dhcpd6.conf            #查看文件信息
[root@server ~ 10:11:57]# cat  /etc/dhcp/dhcpd.conf 
#
# DHCP Server Configuration file.
#   see /usr/share/doc/dhcp*/dhcpd.conf.example
#   see dhcpd.conf(5) man page
##复制模版
[root@server ~ 10:13:57]# cp /usr/share/doc/dhcp*/dhcpd.conf.example 
/etc/dhcp/dhcpd.conf
cp:是否覆盖"/etc/dhcp/dhcpd.conf"yes#修改模版
[root@server ~ 10:25:50]# vim /etc/dhcp/dhcpd.conf
[root@server ~ 10:42:03]# cat /etc/dhcp/dhcpd.conf
#配置域名
option domain-name "dyx.cloud";#配置DNS服务器
option domain-name-servers 223.5.5.5, 223.6.6.6;#默认租约时间
default-lease-time 600;#最大租约时间
max-lease-time 7200;#配置日志级别
log-facility local7;# 配置 DHCP 池
subnet 10.1.8.0 netmask 255.255.255.0 {range 10.1.8.101 10.1.8.130;#option domain-name-servers ns1.internal.example.org;#option domain-name "internal.example.org";option routers 10.1.8.2;option broadcast-address 10.1.8.255;#default-lease-time 600;#max-lease-time 7200;
}#根据MAC地址配置固定IP
host fantasia {hardware ethernet 08:00:07:26:c0:a5;fixed-address fantasia.fugue.com;
}
配置参数说明
参数说明
authoritative指示服务器对其所管理的子网具有权威性,防止非权威服务器干扰
subnet 子网 netmask 子网掩码定义要管理的子网
range 起始IP 结束IP指定动态分配的 IP 地址池范围
option routers 网关IP为客户端分配默认网关地址
option broadcast-address 广播IP为客户端分配广播地址
option domain-name-servers DNSIP为客户端分配 DNS 服务器地址(可多个,用逗号分隔)
option domain-search "域名"为客户端分配 DNS 域搜索列表(可多个,用逗号分隔)
default-lease-time 秒数客户端未指定租约时的默认租约时间
max-lease-time 秒数客户端可请求的最大租约时间
验证 DHCP配置
# 验证配置文件语法
[root@server ~ 16:04:32]# 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 file4# 输出结果为0,表明配置文件没有问题
[root@server ~ 17:08:28]# echo $?
0
启动 DHCP 服务
#启动DHCP
[root@server ~ 10:40:05]# 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 ~ 10:40:11]# 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 10:40:11 CST; 21s agoDocs: man:dhcpd(8)man:dhcpd.conf(5)Main PID: 11374 (dhcpd)Status: "Dispatching packets..."CGroup: /system.slice/dhcpd.service└─11374 /usr/sbin/dhcpd -f -cf /etc/dhcp/dhcpd.conf -us...925 10:40:11 server dhcpd[11374]: Copyright 2004-2013 Interne....
925 10:40:11 server dhcpd[11374]: All rights reserved.
925 10:40:11 server dhcpd[11374]: For info, please visit http.../
925 10:40:11 server dhcpd[11374]: Wrote 0 deleted host decls ....
925 10:40:11 server dhcpd[11374]: Wrote 0 new dynamic host de....
925 10:40:11 server dhcpd[11374]: Wrote 0 leases to leases file.
925 10:40:11 server dhcpd[11374]: Listening on LPF/ens33/00:0...4
925 10:40:11 server dhcpd[11374]: Sending on   LPF/ens33/00:0...4
925 10:40:11 server dhcpd[11374]: Sending on   Socket/fallbac...t
925 10:40:11 server systemd[1]: Started DHCPv4 Server Daemon.
Hint: Some lines were ellipsized, use -l to show in full.#确定防火墙是关闭状态
[root@server ~ 10:40:32]# systemctl status firewalld.service 
● firewalld.service - firewalld - dynamic firewall daemonLoaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)Active: inactive (dead)Docs: man:firewalld(1)
配置 DHCP 客户端
添加一块网卡
#查询网卡信息,此时属于动态获取
[root@client ~ 09:58:31]# ip -br a
lo               UNKNOWN        127.0.0.1/8 ::1/128 
ens33            UP             10.1.8.11/24 fe80::20c:29ff:fe87:c2b0/64 
ens37            UP             10.1.8.101/24 fe80::5e76:2ad1:7d10:d129/64 
#对比网卡信息
[root@client ~ 10:41:36]# ip -br link
lo               UNKNOWN        00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP> 
ens33            UP             00:0c:29:87:c2:b0 <BROADCAST,MULTICAST,UP,LOWER_UP> 
ens37            UP             00:0c:29:87:c2:ba <BROADCAST,MULTICAST,UP,LOWER_UP> 
[root@client ~ 10:45:48]# #00:0c:29:87:c2:ba
#重新激活
[root@client ~ 11:14:17]# nmcli connection up 有线连接\ 1 
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/4)#固定之后的网卡查询
[root@client ~ 11:14:49]# ip -br a
lo               UNKNOWN        127.0.0.1/8 ::1/128 
ens33            UP             10.1.8.11/24 fe80::20c:29ff:fe87:c2b0/64 
ens37            UP             10.1.8.100/24 fe80::5e76:2ad1:7d10:d129/64 
基于 MAC 地址预留 IP 地址

通过host声明将客户端 MAC 地址与固定 IP 绑定,适用于需要固定 IP 的服务器(如 Web、数据库服务器)。

获取客户端 MAC 地址
#查看客户端MAC地址
[root@server ~ 10:44:51]# cat /var/lib/dhcpd/dhcpd.leases
# The format of this file is documented in the dhcpd.leases(5) manual page.
# This lease file was written by isc-dhcp-4.2.5server-duid "\000\001\000\0010gh\013\000\014)S\311\236";lease 10.1.8.101 {starts 4 2025/09/25 02:41:13;ends 4 2025/09/25 02:51:13;cltt 4 2025/09/25 02:41:13;binding state active;next binding state free;rewind binding state free;hardware ethernet 00:0c:29:87:c2:ba;client-hostname "client";
}
配置 IP 预留
#修改,配置固定client
[root@server ~ 11:09:17]# vim /etc/dhcp/dhcpd.conf
[root@server ~ 11:09:00]# cat /etc/dhcp/dhcpd.conf
#配置域名
option domain-name "dyx.cloud";#配置DNS服务器
option domain-name-servers 223.5.5.5, 223.6.6.6;#默认租约时间
default-lease-time 600;#最大租约时间
max-lease-time 7200;#配置日志级别
log-facility local7;# 配置 DHCP 池
subnet 10.1.8.0 netmask 255.255.255.0 {range 10.1.8.101 10.1.8.130;#option domain-name-servers ns1.internal.example.org;#option domain-name "internal.example.org";option routers 10.1.8.2;option broadcast-address 10.1.8.255;#default-lease-time 600;#max-lease-time 7200;
}#根据MAC地址配置固定IP
host client.dyx.cloud {hardware ethernet 00:0c:29:87:c2:ba;fixed-address 10.1.8.100;
}[root@server ~ 11:12:28]# systemctl restart dhcpd
客户端验证
[root@client ~ 18:54:57]# nmcli connection up ens33
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/16)
[root@client ~ 19:10:22]# 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:87:c2:b0 brd ff:ff:ff:ff:ff:ffinet 10.1.8.11/24 brd 10.1.8.255 scope global noprefixroute ens33valid_lft forever preferred_lft forever
http://www.dtcms.com/a/407535.html

相关文章:

  • 【电脑桌面刷新后莫名其妙多一个空缺的问题解决】
  • 性能测试零基础入门:核心概念+实战指南!
  • 免费网站如何被百度收录云南省建设厅网站二建
  • 网站建设 开发 模板网页图片无法另存为
  • 农村做网站赚钱温州百度关键词搜索
  • 前端-JS基础-day2
  • 安徽富通建设工程有限公司网站中国建设银行北京市分行网站
  • 网站流量统计系统 来源概况分析 爬虫蜘蛛统计
  • 中山手机网站建设费用如何做一个宣传片
  • Maya绑定:IK 和 FK对比和使用、IK 和 目标约束的区别
  • 国外网站设计网站织梦网站安装出现dir
  • 【SQL】SQL 命令大全
  • 基于vue的城市智慧地铁管理系统73c2d(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • 湖南网站建设磐石网络郑州网站建设哪家公司好
  • Android DVM的进程和Linux的进程,应用程序的进程是否为同一个概念?
  • 博睿数据受邀出席东盟人工智能应用生态交流会,以“AI+可观测性”驱动数字化运维模式创新!
  • 镇江市质监站网址网络销售培训学校
  • Windows 7 的 RStudio 1.25 R4.4.0 R 文件莫名其妙被改动,导致 原来好的程序运行不了
  • 网站打开空白 重启iis就好了阿里云可以网站备案吗
  • 报名网站开发多钱噼里啪啦电影免费观看高清
  • 点子网站制作网站建设用什么
  • 安卓系统上怎样做网站前端开发织梦搬到WordPress
  • 网站开发属于计算机系统开发吗wordpress主题更换字体教程 | hu
  • C语言第22讲
  • 神经网络二分类任务详解:前向传播与反向传播的数学计算
  • 慈溪网站建设慈溪如何建设盈利网站
  • 免费网站软件app做网站 如何注册公司
  • 制作网站培训网页布局有哪几种
  • 给一张立方体图片的斜视图,对着图片建模的ppo模型,架构怎么设计 solidworks
  • Kafka 面试题及详细答案100道(51-65)-- 性能优化与调优