0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

手工配置IP地址麻烦还会出错?普及下DHCP的各种工作原理

jf_qwOiugB3 来源:网络工程师笔记 2023-06-19 09:14 次阅读

在终端规模较大的网络中手工配置IP地址时,为避免IP地址重复,需要事先规划每个终端的IP地址,导致工作量大且容易出错!

当终端位置经常变更时(例如企业出差人员的便携电脑),每次变更都需要重新手工配置IP地址,烦神又烦力呀...

某些特殊的无盘工作站,无法手工配置IP地址,该如何与网络实现互通?

其实吧,有了动态主机配置协议DHCP(Dynamic Host Configuration Protocol),上面的问题都可以解决了。小伙伴们再也不用担心手工配错,费神费力了。

DHCP能够实现动态为主机分配IP地址,而且是目前应用很广泛的一种技术。例如,办公室,网吧里的固定PC;咖啡厅,机场等提供WIFI接入的地方用手机上网,这些都会用到DHCP。

本期就由小编来给大家普及下DHCP的各种工作原理

DHCP工作原理

一、什么是DHCP?

DHCP,动态主机配置协议,前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,常用的2个端口

67(DHCP server),68(DHCP client)。

DHCP通常被用于局域网环境,主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。简单来说,DHCP就是一个不需要账号密码登录的、自动给内网机器分配IP地址等信息的协议。

二、DHCP协议中的报文

DHCP报文共有以下几种:

DHCP DISCOVER客户端开始DHCP过程发送的包,是DHCP协议的开始

DHCP OFFER :服务器接收到DHCP DISCOVER之后做出的响应,它包括了给予客户端的IP(yiaddr)、客户端的MAC地址、租约过期时间、服务器的识别符以及其他信息

DHCP REQUEST :客户端对于服务器发出的DHCP OFFER所做出的响应。在续约租期的时候同样会使用。

DHCP ACK :服务器在接收到客户端发来的DHCP REQUEST之后发出的成功确认的报文。在建立连接的时候,客户端在接收到这个报文之后才会确认分配给它的IP和其他信息可以被允许使用。

DHCP NAK :DHCP ACK的相反的报文,表示服务器拒绝了客户端的请求。

DHCP RELEASE :一般出现在客户端关机、下线等状况。这个报文将会使DHCP服务器释放发出此报文的客户端的IP地址。

DHCP INFORM :客户端发出的向服务器请求一些信息的报文。

DHCP DECLINE :当客户端发现服务器分配的IP地址无法使用(如IP地址冲突时),将发出此报文,通知服务器禁止使用该IP地址。

DHCP的工作流程:

a503e956-0e37-11ee-962d-dac502259ad0.png

三、DHCP协议包的组成

Xid :随机生成的一段字符串,两个数据包拥有相同的xid说明他们属于同一次会话。

Ciaddr :客户端会在发送请求时将自己的ip地址放在此处。

Yiaddr :服务器会将想要分配给客户端的ip地址放在此处。

Siaddr :一般来说是服务器的ip地址.但是注意!根据openwrt源码给出的注释,当报文的源地址、siaddr、option­>server_id字段不一致(有经过跨子网转发)时,通常认为option­>srever_id字段为真正的服务器ip,siaddr有可能是多次路由跳转中的某一个路由的ip (下图中wireshark抓包中也有标明siaddr为nextserver ip address)。

Chaddr:客户端的mac地址。

Giaddr :如果需要跨子网进行DHCP地址发放,则在此处填入经过的路由器的ip地址。

Sname :服务器主域名。

Options :可以自由添加的部分,用于存放客户端向服务器请求信息和服务器的应答信息。

a542660e-0e37-11ee-962d-dac502259ad0.png

DHCP 客户端

一、什么是DHCP客户端?

DHCP客户端一般来说是局域网中独立的PC主机。

DHCP客户端发出的DHCP DISCOVER包是DHCP协议的开始。

延续租期、发现、释放IP地址等大多数DHCP中的行为都是由DHCP客户端主动发起。

二、DHCP 自动状态机

DHCP获得ip地址的4步骤:discover­>offer­>request­>ack(nak)

DHCP刷新租期的步骤:request­>ack(nak)

DHCP释放ip的步骤:release

wnr2000v5 1.0.0.8的代码中没有发现rebooting、init­reboot状态。所以DHCP client的状态一般从init开始,完整的状态机如下图(红色代表客户端的状态跳转):

a591d31a-0e37-11ee-962d-dac502259ad0.png

DHCP工作过程详解

一、DHCP客户机初始化:

1.寻找DHCP Server

当DHCP客户机第一次登录网络的时候(也就是客户机上没有任何IP地址数据时),它会通过UDP 67端口向网络上发出一个DHCPDISCOVER数据包(包中包含客户机的MAC地址和计算机名等信息)。因为客户机还不知道自己属于哪一个网络,所以封包的源地址为0.0.0.0,目标地址为255.255.255.255,然后再附上DHCP discover的信息,向网络进行广播。

DHCP discover的等待时间预设为1秒,也就是当客户机将第一个DHCP discover封包送出去之后,在1秒之内没有得到回应的话,就会进行第二次DHCP discover广播。若一直没有得到回应,客户机会将这一广播包重新发送四次(以2,4,8,16秒为间隔,加上1-1000毫秒之间随机长度的时间)。如果都没有得到DHCP Server的回应,客户机会从169.254.0.0/16这个自动保留的私有IP地址中选用一个IP地址。并且每隔5分钟重新广播一次,如果收到某个服务器的响应,则继续IP租用过程。

2. 提供IP地址租用

当DHCP Server监听到客户机发出的DHCP discover广播后,它会从那些还没有租出去的地址中,选择最前面的空置IP,连同其它TCP/IP设定,通过UDP 68端口响应给客户机一个DHCP OFFER数据包(包中包含IP地址、子网掩码、地址租期等信息)。此时还是使用广播进行通讯,源IP地址为DHCP Server的IP地址,目标地址为255.255.255.255。同时,DHCP Server为此客户保留它提供的IP地址,从而不会为其他DHCP客户分配此IP地址。

由于客户机在开始的时候还没有IP地址,所以在其DHCP discover封包内会带有其MAC地址信息,并且有一个XID编号来辨别该封包,DHCP Server响应的DHCP OFFER封包则会根据这些资料传递给要求租约的客户。

3. 接受IP租约

如果客户机收到网络上多台DHCP服务器的响应,只会挑选其中一个DHCP OFFER(一般是最先到达的那个),并且会向网络发送一个DHCP REQUEST广播数据包(包中包含客户端的MAC地址、接受的租约中的IP地址、提供此租约的DHCP服务器地址等),告诉所有DHCP Server它将接受哪一台服务器提供的IP地址,所有其他的DHCP服务器撤销它们的提供以便将IP地址提供给下一次IP租用请求。此时,由于还没有得到DHCP Server的最后确认,客户端仍然使用0.0.0.0为源IP地址,255.255.255.255为目标地址进行广播。

事实上,并不是所有DHCP客户机都会无条件接受DHCP Server的OFFER,特别是如果这些主机上安装有其它TCP/IP相关的客户机软件。客户机也可以用DHCP REQUEST向服务器提出DHCP选择,这些选择会以不同的号码填写在DHCP Option Field里面。客户机可以保留自己的一些TCP/IP设定。

4.租约确认

当DHCP Server接收到客户机的DHCP REQUEST之后,会广播返回给客户机一个DHCP ACK消息包,表明已经接受客户机的选择,并将这一IP地址的合法租用以及其他的配置信息都放入该广播包发给客户机。

客户机在接收到DHCP ACK广播后,会向网络发送三个针对此IP地址的ARP解析请求以执行冲突检测,查询网络上有没有其它机器使用该IP地址;如果发现该IP地址已经被使用,客户机会发出一个DHCP DECLINE数据包给DHCP Server,拒绝此IP地址租约,并重新发送DHCP discover信息。此时,在DHCP服务器管理控制台中,会显示此IP地址为BAD_ADDRESS。

如果网络上没有其它主机使用此IP地址,则客户机的TCP/IP使用租约中提供的IP地址完成初始化,从而可以和其他网络中的主机进行通讯。

二、DHCP客户机租期续约:

客户机会在租期过去50%的时候,直接向为其提供IP地址的DHCP Server发送DHCP REQUEST消息包。如果客户机接收到该服务器回应的DHCP ACK消息包,客户机就根据包中所提供的新的租期以及其它已经更新的TCP/IP参数,更新自己的配置,IP租用更新完成。如果没有收到该服务器的回复,则客户机继续使用现有的IP地址,因为当前租期还有50%。

如果在租期过去50%的时候没有更新,则客户机将在租期过去87.5%的时候再次向为其提供IP地址的DHCP联系。如果还不成功,到租约的100%时候,客户机必须放弃这个IP地址,重新申请。如果此时无DHCP可用,客户机会使用169.254.0.0/16中随机的一个地址,并且每隔5分钟再进行尝试。





审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 局域网
    +关注

    关注

    5

    文章

    692

    浏览量

    45371
  • 路由器
    +关注

    关注

    22

    文章

    3505

    浏览量

    111347
  • 状态机
    +关注

    关注

    2

    文章

    486

    浏览量

    27184
  • DHCP协议
    +关注

    关注

    0

    文章

    4

    浏览量

    4924

原文标题:手工配置IP地址麻烦还会出错?10张图带你了解DHCP技术原理

文章出处:【微信号:通信弱电交流学习,微信公众号:通信弱电交流学习】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    深度解析NAT和DHCP的原理以及配置

    两个区域内的DHCP服务器分配地址时只对办公接入区域的终端分配地址,Client/Sever 的 IP 地址采用
    发表于 06-12 14:10 1866次阅读
    深度解析NAT和<b class='flag-5'>DHCP</b>的原理以及<b class='flag-5'>配置</b>

    一文了解DHCP工作原理

    在终端规模较大的网络中手工配置IP地址时,为避免IP地址重复,需要事先规划每个终端的
    的头像 发表于 10-30 09:56 387次阅读
    一文了解<b class='flag-5'>DHCP</b>的<b class='flag-5'>工作原理</b>​

    dhcp工作过程详解

    对于学习DHCP来说,很重要的一部分就是对于DHCP工作过程的理解。那么首先DHCP分为两个部分:一个是服务器端,另一个是客户端。所有客户机的IP
    发表于 03-06 17:25 6142次阅读

    dhcp原理及其实现流程

    DHCP,动态主机配置协议,前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,常用的2个端口:67(DHCP server),68(
    发表于 03-06 18:03 2.7w次阅读

    DHCP工作原理的教学资料设计

    DHCP(Dynamic Host Configuration Protocol),即动态主机配置协议。它是TCP/IP协议簇中的一种,通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配
    发表于 05-05 08:00 3次下载
    <b class='flag-5'>DHCP</b><b class='flag-5'>工作原理</b>的教学资料设计

    DHCPIP地址分配与获取过程

    DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)用来为网络设备动态地分配 IP地址等网络配置
    的头像 发表于 01-23 09:48 2.1w次阅读
    <b class='flag-5'>DHCP</b>的<b class='flag-5'>IP</b><b class='flag-5'>地址</b>分配与获取过程

    DHCP的功能 DHCP与PPPoE之间有什么区别

    DHCP的英文全称为Dynamic Host Configuration Protocol,中文全称称为:动态主机配置协议,主要作用就是给计算机分配IP地址,运行
    的头像 发表于 08-18 18:19 9590次阅读

    华为DHCP和NAT组网

    两个区域内的DHCP服务器分配地址时只对办公接入区域的终端分配地址,Client/Sever 的 IP 地址采用
    的头像 发表于 06-12 14:12 534次阅读
    华为<b class='flag-5'>DHCP</b>和NAT组网

    开启了dhcp但获取不到ip

    IP地址时,可能会遇到一些问题。下面我将详细解释为何会出现这种情况,并提供相应的解决办法。 首先,让我们快速回顾一下DHCP工作原理。当
    的头像 发表于 11-27 14:47 2973次阅读

    dhcp配置详细步骤

    动态主机配置协议(Dynamic Host Configuration Protocol,简称DHCP)是一种用于在IP网络上自动分配IP地址
    的头像 发表于 11-27 14:50 3131次阅读

    dhcp服务异常怎么修复

    现异常,导致设备无法正常获取 IP 地址。本文将详细介绍如何修复 DHCP 服务异常问题。 一、了解 DHCP工作原理 在深入探讨如何修
    的头像 发表于 11-27 14:53 2375次阅读

    简述DHCP工作原理

    DHCP(Dynamic Host Configuration Protocol)是一种网络协议,它被用于自动分配IP地址和其他网络配置信息给网络中的设备。
    的头像 发表于 11-27 15:01 1236次阅读

    DHCP和DNS是如何工作的?两者之间有何区别?

    一下DHCP工作原理DHCP允许网络管理员动态地配置和分配IP地址给每个互联网连接的设备。当
    的头像 发表于 12-27 14:09 408次阅读

    什么是静态IP地址?什么是DHCPDHCP与静态IP到底有何区别呢?

    什么是静态IP地址?什么是DHCPDHCP与静态IP到底有何区别呢?DHCP与静态
    的头像 发表于 12-27 14:09 2176次阅读

    dhcp是什么在路由器怎么设置

    DHCP(动态主机配置协议)是一种用于在网络中自动分配IP地址的协议。它的作用是方便管理和配置大量设备的网络连接,减轻网络管理员的
    的头像 发表于 01-25 11:17 2036次阅读