图解网络:什么是DHCP动态主机配置协议?

简介: DHCP是网络技术世界一项特别伟大的技术,解决了静态配置IP繁琐的过程,其动态分配IP地址的特性,使得网络变得灵活可扩展。如果没有 DHCP,很难想象我们将如何连接到互联网或本地网络,DHCP 是我们在 IP 网络上的设备如何相互通信以及与我们周围的世界通信的重要组成部分。

你好,这里是网络技术联盟站。

DHCP是网络技术世界一项特别伟大的技术,解决了静态配置IP繁琐的过程,其动态分配IP地址的特性,使得网络变得灵活可扩展。

如果没有 DHCP,很难想象我们将如何连接到互联网或本地网络,DHCP 是我们在 IP 网络上的设备如何相互通信以及与我们周围的世界通信的重要组成部分。

那么DHCP背后的原理是什么?为什么说DHCP是革命性的技术?在配置DHCP的时候要注意什么?

本文,瑞哥就用图解的形式带大家揭开DHCP的神秘面纱,让我们直接开始!

什么是DHCP?

  • 英文全称:Dynamic Host Configuration Protocol
  • 中文名称:动态主机配置协议
  • 是一种网络管理协议

DHCP术语

DHCP有许多专业术语,下面我们来简单了解一下:

  • DHCP Discover:当客户端 (PC) 启动时,它会通过以太网广播 DHCP Discover 消息来定位同一子网中的所有可用 DHCP 服务器,到达同一子网中的所有 DHCP 服务器。
  • DHCP Offer:当 DHCP 服务器收到来自客户端的 DHCP Discover 消息时,它还会通过以太网广播 DHCP Offer 消息,通知客户端它可用。
  • DHCP Request:收到 DHCP Offer 消息的客户端识别出在同一子网上有可用的 DHCP 服务器,然后它通过以太网向服务器广播 DHCP 请求消息,请求网络配置数据,包括自己的 IP 地址。
  • DHCP Reservation:网络的预定义 IP 地址范围
  • DHCP ACK:DHCP确认
  • DHCP Server:DHCP服务器,运行和管理 DHCP 信息的设备
  • DHCP Client:DHCP客户端,负责请求 IP 地址并与 DHCP 服务器建立 DHCP 连接
  • DHCP Relay Agent:DHCP 中继代理,是在本地 DHCP 客户端和远程 DHCP 服务器之间发送请求和回复的主机或路由器,当多个LAN中只有一个 DHCP 服务器时,中继代理会处理所有网络的请求。
  • Lease Time:租用时间,客户端可以使用分配给它的 IP 地址的时间

DHCP 基本拓扑

DHCP组成部分

上面我们介绍了DHCP的术语,一般DHCP会包含以下部分:

DHCP组成部分

这个就印证了上面的DHCP 基本拓扑图,IP地址池、子网、DHCP租约我们会在DHCP原理中介绍。

DHCP原理

DHCP 在应用层运行以动态地为客户端分配 IP 地址,这是通过共享 DHCP 事务或 DHCP 会话来实现的:

DHCP过程

我们来用一张图来简单的解释以下DHCP的握手过程:

DHCP的握手过程

  • 第一步:discover:客户端发送一个dhcp discover消息通知服务器
  • 第二步:offer:服务器回应一个可用的IP地址和其他参数
  • 第三步:request:客户端从服务器请求IP地址
  • 第四步:acknowledge:服务器回应一个可用的IP地址和其他参数

为了方便大家记忆,我们将图简化一下:

DHCP工作过程

我们来看一下DHCP工作过程的抓包:

DHCP工作过程的抓包分析

DHCP 租约

每个 IP 地址都不会无限期地属于某一台计算机,与 IP 地址一起,DHCP 服务器将发送一个称为租用时间的到期日期,表示主机何时需要更新地址,DHCP 租约可以避免一定程度上的IP地址的浪费,因为可能有些IP分配出去了,但是所属计算机已经不在某个局域网了,这个时候如果这个地址还不释放的话,久而久之就会造成浪费。

DHCP租约周期如下:

  1. 客户端通过向 DHCP 服务器请求一个 IP 地址租用的分配过程来获得一个 IP 地址租用。
  2. 如果客户端已从现有租约中获得 IP 地址,则在重启时需要刷新其 IP 地址,并联系 DHCP 服务器重新分配 IP 地址。
  3. 租约未到期,则客户端绑定相关租约和IP地址。
  4. 租约到期,客户端将联系最初授予租约的服务器来更新它,获得继续使用其 IP 地址的权力。
  5. 如果客户端移动到不同的网络,它的动态 IP 地址将被终止,它会从新网络的 DHCP 服务器请求一个新的 IP 地址。

配置DHCP

Windows

windows配置dhcp比较简单,而且也几乎是默认的配置方式:

  1. 打开【网络和internet设置】

网络和internet设置

  1. 点击你连接的网络的【属性】

网络属性

  1. 找到【IP设置】

找到【IP设置】

看到我的电脑已经是设置成DHCP获取的方式了

ip设置

点开【IP设置】我们看到有DHCP和手动两种设置方式。

我们来看下通过DHCP设置后,我的IP地址是多少:

查看本机IP地址

可以看到通过DHCP自动分配后,我的电脑IP地址为:192.168.50.234

Linux

我以我的一个云服务器为例子给大家演示一下,我的这台云服务器是香港的,Centos系统,那么网络配置文件都是在/etc/sysconfig/network-scripts/路径下。

我们来看一下这台服务器的网络设置:

more /etc/sysconfig/network-scripts/ifcfg-eth0

命令行显示:

# Created by cloud-init on instance boot automatically, do not edit.
#
BOOTPROTO=dhcp
DEVICE=eth0
MTU=1450
ONBOOT=yes
TYPE=Ethernet
USERCTL=no

服务器的网络设置

由此可见我的这台云服务器的ip地址也是DHCP的方式。

查看DHCP分配的地址租约

我们怎么去查看DHCP分配的地址租约呢?

还是以我这台香港的云服务器为例:

执行命令:

cat /var/lib/dhclient/dhclient--eth0.lease

结果显示:

lease {
  interface "eth0";
  fixed-address 172.16.2.231;
  option subnet-mask 255.255.0.0;
  option routers 172.16.0.1;
  option dhcp-lease-time 86400;
  option dhcp-message-type 5;
  option domain-name-servers 8.8.4.4;
  option dhcp-server-identifier 172.16.0.2;
  option interface-mtu 1450;
  option dhcp-renewal-time 40305;
  option classless-static-routes 32.169.254.169.254 172.16.0.2,0 172.16.0.1;
  option broadcast-address 172.16.255.255;
  option dhcp-rebinding-time 72705;
  option host-name "host-172-16-2-231";
  option domain-name "openstacklocal";
  renew 6 2022/07/09 09:49:26;
  rebind 6 2022/07/09 19:34:44;
  expire 6 2022/07/09 23:22:59;
}
lease {
  interface "eth0";
  fixed-address 172.16.2.231;
  option subnet-mask 255.255.0.0;
  option routers 172.16.0.1;
  option dhcp-lease-time 86400;
  option dhcp-message-type 5;
  option domain-name-servers 8.8.4.4;
  option dhcp-server-identifier 172.16.0.2;
  option interface-mtu 1450;
  option dhcp-renewal-time 39746;
  option classless-static-routes 32.169.254.169.254 172.16.0.2,0 172.16.0.1;
  option broadcast-address 172.16.255.255;
  option dhcp-rebinding-time 72146;
  option host-name "host-172-16-2-231";
  option domain-name "openstacklocal";
  renew 6 2022/07/09 20:31:46;
  rebind 0 2022/07/10 05:51:52;
  expire 0 2022/07/10 09:49:26;
}

DHCP分配的地址租约

我们看到有一项参数叫option dhcp-lease-time 86400,这个就是租期时间,单位是秒。

我们还能看出:

  • renew 6 2022/07/09 20:31:46;:重新设置的时间
  • rebind 0 2022/07/10 05:51:52;:将要重新绑定的时间
  • expire 0 2022/07/10 09:49:26;:到期时间

以上就是DHCP的设置部分,我们最后看看DHCP的优缺点。

DHCP的优缺点

DHCP优点

  • 减少 IP 冲突:手动分配 IP 地址会增加网络中不正确或重复地址的可能性,使用 DHCP可以确保通过集中控制自动、准确地分配地址。
  • 简化网络管理:借助DHCP,网络管理员可以轻松监控、管理和分配 IPv4 和 IPv6 地址。
  • 降低成本: 与手动分配 IP 相比,DHCP 有助于节省大量时间,尤其是对于大型企业而言,它还可以节省资金和其他资源,因为公司不需要有专门的专家来持续监督知识产权管理和分配。

DHCP缺点

  • DHCP 本身并不安全,如果恶意行为者访问 DHCP 服务器,他们可能会造成严重破坏。
  • 如果 DHCP 服务器没有备份并且服务器出现故障,它所服务的设备也会出现故障。
  • 如果网络只有一个 DHCP 服务器,则 DHCP 服务器可能是单点故障。

总结

DHCP 是 1985 年网络 IP 管理协议 Bootstrap 协议 ( BOOTP ) 的扩展,用于为网络上的每台主机动态分配 IP 地址和其他信息,以便它们能够高效地进行通信。DHCP 自动、集中管理 IP 地址的分配,简化了网络管理员的工作,除了IP 地址,DHCP 还为主机分配子网掩码、默认网关和域名服务器地址等配置,从而使网络管理员的工作更加轻松。

本文主要从以下方面剖析了DHCP的种种知识:

  • 什么是DHCP?
  • DHCP术语
  • DHCP 组成部分
  • DHCP 原理
  • DHCP 租约
  • 配置DHCP

    • Windows
    • Linux
    • 查看DHCP分配的地址租约
  • DHCP的优缺点

    • DHCP优点
    • DHCP缺点
  • 总结

感谢您的阅读,如果觉得文章对您有帮助,别忘了点赞👍、收藏⭐哦!有任何问题,欢迎在下方评论区与我讨论!!!

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
13天前
|
负载均衡 网络协议 算法
|
4天前
|
网络协议 网络安全 网络虚拟化
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算
本文介绍了十个重要的网络技术术语,包括IP地址、子网掩码、域名系统(DNS)、防火墙、虚拟专用网络(VPN)、路由器、交换机、超文本传输协议(HTTP)、传输控制协议/网际协议(TCP/IP)和云计算。通过这些术语的详细解释,帮助读者更好地理解和应用网络技术,应对数字化时代的挑战和机遇。
27 3
|
4天前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
15 2
|
6天前
|
网络协议 网络安全 数据安全/隐私保护
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
计算机网络概念:网关,DHCP,IP寻址,ARP欺骗,路由,DDOS等
26 4
|
7天前
|
网络虚拟化
生成树协议(STP)及其演进版本RSTP和MSTP,旨在解决网络中的环路问题,提高网络的可靠性和稳定性
生成树协议(STP)及其演进版本RSTP和MSTP,旨在解决网络中的环路问题,提高网络的可靠性和稳定性。本文介绍了这三种协议的原理、特点及区别,并提供了思科和华为设备的命令示例,帮助读者更好地理解和应用这些协议。
23 4
|
15天前
|
网络协议 安全 Go
Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
【10月更文挑战第28天】Go语言进行网络编程可以通过**使用TCP/IP协议栈、并发模型、HTTP协议等**方式
43 13
|
15天前
|
存储 缓存 网络协议
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点,GET、POST的区别,Cookie与Session
计算机网络常见面试题(二):浏览器中输入URL返回页面过程、HTTP协议特点、状态码、报文格式,GET、POST的区别,DNS的解析过程、数字证书、Cookie与Session,对称加密和非对称加密
|
16天前
|
网络协议 算法 网络性能优化
计算机网络常见面试题(一):TCP/IP五层模型、TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议
计算机网络常见面试题(一):TCP/IP五层模型、应用层常见的协议、TCP与UDP的区别,TCP三次握手、四次挥手,TCP传输可靠性保障、ARQ协议、ARP协议
|
1月前
|
安全 网络协议 网络安全
Cisco-DHCP配置
Cisco-DHCP配置
|
1月前
|
安全 小程序 网络安全
Cisco-DHCP中继配置
Cisco-DHCP中继配置