DHCP

介绍

DHCP协议即动态主机配置协议(Dynamic Host Configuration Protocol)是一种网络管理协议,用于集中对用户IP地址进行动态管理和配置。DHCP协议采用客户端/服务器通信模式,由客户端(DHCP Client)向服务器(DHCP Server)提出配置申请,DHCP Server为网络上的每个设备动态分配IP地址、子网掩码、默认网关地址,域名服务器(DNS)地址和其他相关配置参数,以便和其他IP网络通信。

为什么要有DHCP协议?

在局域网内的每台设备都有一个内网ip,该ip具有唯一性,如果让网络管理员手动配置岂不是要花费大量的精力和时间,还要承担配置错误的风险。

最好的解决办法就是实现一个服务,可以管理多个网段的配置信息,当某个网段的配置发生变化时,管理员只需要更新DHCP服务器上的相关配置即可,实现集中化管理,这就是DHCP。

因此DHCP有如下优势:

  • 准确的IP配置:IP地址配置参数必须准确,点分十进制的ip在配置时很容易出错,使用DHCP服务器可以最大程度的降低这种风险。
  • 减少IP地址冲突:每个连接的设备都必须有一个IP地址,但是每个地址只能使用一次,手动配置地址时,在面对大量仅定期连接的端点(移动设备)时,会发生冲突情况,DHCP可以确保每个地址仅使用一次。
  • IP地址管理的自动化:没有DHCP,网络管理员需要手动分配和撤销地址,这工作量太大了。DHCP允许集中化管理。
  • 高效的变更管理:DHCP的使用时更换地址,范围或端点变得非常简单,只需要更改DHCP服务器的配置即可!

DHCP协议工作流程原理

DHCP协议采用UDP作为传输协议,DHCP客户端使用源端口号为68,目的端口号为67发送请求消息到DHCP服务器,DHCP服务器使用源端口号为67,目的端口号为68回应DHCP客户端。
DHCP的客户端和DHCP的服务器必须在同一个网段下才可以工作,当DHCP客户端和DHCP服务器不在同一个网段时,必须部署DHCP中继来转发DHCP客户端和DHCP服务器之间1的DHCP报文,在DHCP客户端看来,DHCP中继就像DHCP服务器;在DHCP服务器看来DHCP中继就像DHCP客户端。

触发DHCP协议分配IP地址的常见场景

  • 设备首次接入网络,比如电脑、手机连接网络,若未配置静态IP。
  • DHCP租约到期,DHCP分配的IP地址具有租期,租期过半时,客户端发送DHCP Request请求续约,若未续约,IP会被回收并重新分配。
  • 网络接口(Wi-Fi/网卡)重启和设备重启,会触发DHCP请求确认或更新IP地址。
  • 强制释放与重新获取,用户手动执行命令,(ipconfig/release + ipconfig/renew)。
  • 切换子网。

DHCP流程

  • 客户端首先发起DHCP发现报文(DHCP DISCOVER)的IP数据包,由于客户端没有IP地址,也不知道DHCP服务器的地址,所以使用的是UDP广播通信,其使用广播目的地址255.255.255.255(端口67)并且使用0.0.0.0(端口68)作为源IP地址。
  • DHCP服务器用DHCP提供报文(DHCP OFFER)向客户端做出响应,该报文仍然使用IP地址IP广播地址255.255.255.255,该报文信息携带服务器提供可租约的IP地址、子网掩码、默认网关、DNS服务器以及IP地址租用期。
  • 客户端收到一个或多个DHCP服务器后选择一个服务器,发送DHCP请求报文DHCP REQUEST进行响应。
  • 最后,DHCP服务器用DHCP ACK报文对DHCP请求报文进行响应。

在DHCP交互全程,使用的都是UDP广播通信。

疑问

如果DHCP服务器和客户端不在同一个局域网内,路由器无法转发广播包,那岂不是就无法分配ip了吗?难道说每一个局域网都要分配一个DHCP服务器吗?

为了解决这一问题,就出现了DHCP中继代理,有了中继代理之后,对不同网段的IP地址分配也可以由一个DHCP服务器进行统一管理。

  • DHCP客户端向DHCP中继代理发送DHCP请求包,而DHCP中继代理在收到广播包之后,再以单播的形式发给DHCP服务器。
  • 服务器端收到该包之后向DHCP中继代理返回应答,并由DHCP以广播给DHCP客户端。
如果觉得本文对您有所帮助,可以支持下博主,一分也是缘分😊
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇