dhcp是什么协议(dhcp协议用在什么情况下)

文章主要脉络如下。

dhcp是什么协议(dhcp协议用在什么情况下)

哈喽小伙伴们大家好啊,本篇文章我们来聊一聊 DHCP 协议。在聊之前,先想象一个场景。

你现在站在地铁上或者坐在办公室中,你的手机也好,电脑也好都有一个 IP 地址,假如这个 IP 地址是你手动输入的,你需要写下面这些东西 ……

dhcp是什么协议(dhcp协议用在什么情况下)

电脑配置这些还好,直接咔咔咔的配置完了,如果你用的是手机,那么你需要点到 IP 地址,输入 IP 地址,点到子网掩码,输入子网掩码,点到默认路由,输入路由,点到 DNS 服务器,输入 DNS 服务器 …… 这玩意这么麻烦啊,恰好你刚配置完,领导叫你开会,得嘞,刚配置好的地址白瞎了。换了一个环境,需要重新配置 IP 地址,于是你把上面的步骤再重复了一遍,这时候散会了,然后你炸了。。。。。。

我们还省去了你有可能配置错误的时候。

上面这段描述最让人恼火的就是你需要手动配置 IP 地址,woc,为啥不能设置成自动配置 IP 地址呢?谁说不能的,能!那就是用 DHCP, 这也是我们下面要聊的内容。

认识 DHCP

DHCP的全称是 Dynamic Host Configuration Protocol动态主机配置协议。使用 DHCP 就能实现自动设置 IP 地址、统一管理 IP 地址分配。也就是不管你是在开会还是在工位干活,都省去了手动配置 IP 地址这一步繁琐的操作,同时 DHCP 也大大减少了可能由于你手动分配 IP 地址导致错误的几率。

DHCP 与 IP 密切相关,它是 IP 网络上所使用的协议。如果你想要使用 DHCP 提供服务的话,那么在整条通信链路上就需要 DHCP 服务器的存在,连接到网络的设备使用 DHCP 协议从 DHCP 服务器请求 IP 地址。DHCP 服务器会为设备分配一个唯一的 IP 地址。

除了 IP 地址外,DHCP 服务器还会把子网掩码,默认路由,DNS 服务器告诉你。

DHCP 服务器

现在,你不需要手动配置 IP 地址,也不再需要管理 IP 地址了,管理权已经移交给了 DHCP 服务器,DHCP 服务器会维护 IP 地址池,在网络上启动时会将地址租借给启用 DHCP 的客户端。

由于 IP 地址是动态的(临时分配)而不是静态的(永久分配),因此不再使用的 IP 地址会自动返回 IP 地址池中进行重新分配。

那么 DHCP 服务器由谁维护呢?

网络管理员负责建立 DHCP 服务器,并以租约的形式向启用 DHCP 的客户端提供地址配置,啊,既然不需要我管理,那就很舒服了~

好了,现在你能舒舒服服的开发了,你用 postman 配了一条 192.168.1.4/x/x 的接口进行请求,请求能够顺利进行,但是过了一段时间后,你发现 192.168.1.4/x/x 这个接口请求不通了,这是为啥呢?然后你用 ipconfig查询了一下自己的 IP 地址,发现 IP 地址变成了 192.168.1.7,怎么我用着用着 IP 地址还改了?DHCP 是个垃圾,破玩意!!@#¥%¥%……¥%

其实,这也是一个 DHCP 服务器的一个功能,DHCP 服务器通常为每个客户端分配一个唯一的动态 IP 地址,当该 IP 地址的客户端租约到期时,该地址就会更改。

唯一意思说的就是,如果你手动设置了一个静态 IP,同时 DHCP 服务器分配了一个动态 IP,这个动态 IP 和静态 IP 一样,那么必然会有一个客户端无法上网。

我就遇到过这种情况,我使用虚拟机配置的静态 IP 是192.168.1.8,手机使用 DHCP 也同样配置了 192.168.1.8 的 IP 地址,此时我的虚拟机还没有接入网络,当我接入网络时,我怎样也连不上虚拟机了,一查才发现 IP 地址冲突了 ……

虽然 DHCP 服务器能提供 IP 地址,但是他怎么知道哪些 IP 地址空闲,哪些 IP 地址正在使用呢?

实际上,这些信息都配置在了数据库中,下面我们就来一起看一下 DHCP 服务器维护了哪些信息。

  • 网络上所有有效的 TCP/IP 配置参数

这些参数主要包括主机名(Host name)、DHCP 客户端(DHCP client)、域名(Domain name)、IP 地址IP address)、网关(Netmask)、广播地址(Broadcast address)、默认路由(default rooter)。

  • 有效的 IP 地址和排除的 IP 地址,保存在 IP 地址池中等待分配给客户端
  • 为某些特定的 DHCP 客户端保留的地址,这些地址是静态 IP,这样可以将单个 IP 地址一致地分配给单个DHCP 客户端

好了,现在你知道 DHCP 服务器都需要保存哪些信息了,并且看过上面的内容,你应该知道一个 DHCP 的组件有哪些了,下面我们就来聊一聊 DHCP 中都有哪些组件,这些组件缺一不可。

DHCP 的组件

使用 DHCP 时,了解所有的组件很重要,下面我为你列出了一些 DHCP 的组件和它们的作用都是什么。

  • DHCP Server,DHCP 服务器,这个大家肯定都知道,因为我们上面就一直在探讨 DHCP 服务器的内容,使用 DHCP ,是一定要有 DHCP 服务器的,要不然谁给你提供服务呢?
  • DHCP Client,DHCP 客户端,这个大家应该也知道,毕竟只有一个服务端不行啊,没有客户端你为谁服务啊?DHCP 的客户端可以是计算机、移动设备或者其他需要连接到网络的任何设备,默认情况下,大多数配置为接收 DHCP 信息。
  • Ip address pool: 你得有 IP 地址池啊,虽然说你 DHCP 提供服务,但是你也得有工具啊,没有工具玩儿啥?IP 地址池是 DHCP 客户端可用的地址范围,这个地址范围通常由最低 -> 最高顺序发送。
  • Subnet:这个组件是子网,IP 网络可以划分一段一段的子网,子网更有助于网络管理。
  • Lease:租期,这个表示的就是 IP 地址续约的期限,同时也代表了客户端保留 IP 地址信息的时间长度,一般租约到期时,客户端必须续约。
  • DHCP relay:DHCP 中继器,这个一般比较难想到,DHCP 中继器一般是路由器或者主机。DHCP 中继器通常应对 DHCP 服务器和 DHCP 客户端不再同一个网段的情况,如果 DHCP 服务器和 DHCP 客户端在同一个网段下,那么客户端可以正确的获得动态分配的 IP 地址;如果不在的话,就需要使用 DHCP 中继器进行中继代理。

现在 DHCP 的组件你了解后,下面我就要和你聊聊 DHCP 的工作机制了。

DHCP 工作机制

在聊 DHCP 工作机制前,先来看一下 DHCP 的报文消息

DHCP 报文

DHCP 报文共有以下几种:

  • DHCP DISCOVER:客户端开始 DHCP 过程发送的包,是 DHCP 协议的开始
  • DHCP OFFER:服务器接收到 DHCPDISCOVER 之后做出的响应,它包括了给予客户端的 IP 租约过期时间、服务器的识别符以及其他信息
  • DHCP REQUEST:客户端对于服务器发出的 DHCPOFFER 所做出的响应。在续约租期的时候同样会使用。
  • DHCP ACK:服务器在接收到客户端发来的 DHCPREQUEST 之后发出的成功确认的报文。在建立连接的时候,客户端在接收到这个报文之后才会确认分配给它的 IP 和其他信息可以被允许使用。
  • DHCP NAK:DHCPACK 的相反的报文,表示服务器拒绝了客户端的请求。
  • DHCP RELEASE:一般出现在客户端关机、下线等状况。这个报文将会使 DHCP 服务器释放发出此报文的客户端的 IP 地址
  • DHCP INFORM:客户端发出的向服务器请求一些信息的报文
  • DHCP DECLINE:当客户端发现服务器分配的 IP 地址无法使用(如 IP 地址冲突时),将发出此报文,通知服务器禁止使用该 IP 地址。

DHCP 的工作机制比较简单,无非就是客户端向服务器租借 IP ,服务器提供 IP 给客户端的这个过程呗。嗯,你很聪明,大致是这样的,不过有一些细节需要注意下,下面我通过两张图来和你聊一下。

关于从 DHCP 中获取 IP 地址的流程,主要分为两个阶段。

第一个阶段是 DHCP 查找包的阶段

dhcp是什么协议(dhcp协议用在什么情况下)

查找包的阶段主要分为两步:第一步是 DHCP 发现包,第二步是 DHCP 提供包。

DHCP 客户端在通信链路上发起广播,看看链路上有没有能提供 DHCP 包的服务器,然后通信链路上的各个节点会检查自己是否能够提供 DHCP 包,这时 DHCP 服务器说它能够提供 DHCP 包,然后 DHCP 就发出一个 DHCP 包沿着通信链路返回给 DHCP 客户端。

第二个阶段是 DHCP 的请求阶段。

dhcp是什么协议(dhcp协议用在什么情况下)

DHCP 的请求包也分为两步:第一步是 DHCP 请求包,第二步是 DHCP 确认包。

DHCP 客户端在通信链路上发起 DHCP 请求包,请求包主要是告诉 DHCP 服务器,它想要用上一步提供的网络设置,然后 DHCP 服务器向 DHCP 客户端发送确认包,表示允许 DHCP 客户端使用第二步发送的网络设置。

至此,DHCP 的网络设置就结束了,然后通信链路上的主机之间就可以进行 TCP/IP 通信了。

当不需要 IP 地址时,可以发送 DHCP 解除包(DHCP RELEASE)进行解除。另外,DHCP 的设置中通常会有一个租期时间的设定,DHCP 客户端在这个时限内可以发送 DHCP 请求包通知想要延长这个期限。

DHCP 状态机

我们上面知道 DHCP 会发送几种请求包,我们知道,动作肯定伴随着状态的更改,DHCP 也是一样的,在 DHCP 发送/接收各种包的时候,其状态也在发生相应的改变。DHCP 协议可以在客户端和服务器上运行状态机。状态决定了协议接下来要处理的消息类型。

状态之间的转换(箭头)是由于接收和发送消息或者计时器到期才发生的转换。下面是 DHCP 的状态轮转图。

dhcp是什么协议(dhcp协议用在什么情况下)

客户端在开始时没有消息,此时处于 INIT状态,然后客户端会在通信链路上发起一个广播 DHCP DISCOVER。

在 Selecting选择状态下,客户端会收集 DHCPOFFER 消息,直到确定要使用的地址和服务器为止。

一旦 DHCP 客户端做好选择后,它就会发送 DHCPREQUEST 消息并进入 Requesting 状态,在这个状态下它很可能收到并不需要的 ACK 响应,如果这个状态下没有找到合适的地址的话,那么客户端就会发送DHCPDECLINE并恢复为 INIT 状态,但是这种发生的概率比较小。

在处于 Requesting 状态下的客户端很可能接受发送过来的 DHCPACK 消息,获取超时时间 T1和 T2,然后进入 Bound绑定状态,在这个状态下可以使用地址直到地址过期。

在第一个计时器 T1 到期时,客户端会进入 renewing续订状态,并重新尝试建立租约时间,如果收到新的 ACK 消息就表示续订成功,然后就恢复为 Bound 状态。

如果没有收到 ACK 那么 T2 会最终过期进入 Rebinding状态,进入这个状态的客户端会重新尝试获取地址,如果最终的租约到期,那么客户端必须放弃租约地址,并且如果没有其他地址或网络连接要使用,客户端将断开连接。

DHCP 冲突

现在我们讨论一下 DHCP 冲突的问题,DHCP 冲突其实就是 IP 重了,当一个子网中两个或者更多主机配置了相同的 IP 地址时,就会发生 IP 冲突的现象。发生这种情况可能导致的后果是两个冲突的主机混在一起,一台主机可能接收了另一台主机的数据包。

那么造成这种情况的原因是啥呢?

造成这种情况的原因有很多,这里我列举两个可能出现的情况:

  • 第一种情况是一台主机配置了静态 IP 地址,这台主机联网后,其 IP 地址不会在 DHCP 服务器中,然后另外一个主机入网,DHCP 服务器给这台主机自动分配了相同的 IP 地址,这两个地址就产生了 IP 冲突。
  • 第二种情况是,客户端从 DHCP 服务器获得了 IP 地址,然后这台主机下线了,随着租约到期,DHCP 会将这个 IP 地址又分配给了其他主机,等到这个主机重新上线后,由于某种原因,计算机无法访问 DHCP 服务器,这种情况下会造成 IP 冲突。

当检测到 IP 冲突时,通常 Windows 系统和 Mac 系统会弹出 IP 冲突的弹窗。

dhcp是什么协议(dhcp协议用在什么情况下)

DHCP 中继代理

常规家庭网络(土豪除外)中大多数都只有一个以太网,也就是 LAN 网段,一个 DHCP 服务器完全可以满足 LAN 中的客户机使用。但是,在更复杂的网络中,比如企业或者学校,一台 DHCP 服务器显然就无法满足了。因此,这种情况下,往往需要 DHCP 的统一管理,具体实现方式可以通过 DHCP 中继代理来转发 DHCP 流量,如下图所示。

dhcp是什么协议(dhcp协议用在什么情况下)

如上图所示,存在两个网段 A 和网段 B,DHCP 客户机和 DHCP 服务器不在一个网段内,所以我们在通信链路上架设了一个中继代理,DHCP 客户机通过访问中继代理以达到访问 DHCP 服务器的目的。

使用这种方式,我们不再需要在每个网段都设置一个 DHCP 服务器,只需要在每个网段架设一个中继代理即可。它可以设置 DHCP 服务器的 IP 地址,从而可以在 DHCP 服务器上为每个网段注册 IP 地址的分配范围。

DHCP 客户端会向 DHCP 中继代理发送 DHCP 请求包,而 DHCP 中继代理在收到这个广播包之后再以单播的形式发送给 DHCP 服务器。服务器收到该包以后再向 DHCP 中继代理返回应答,并由 DHCP 中继代理将此包发送给 DHCP 客户端。

DHCP 认证

我们总是假想所有情况都能够顺利进行,害怕出问题,这也许意味着我永远只是个初级程序员吧。我们上面探讨的 DHCP 服务器都是合理的、合法的,但是互联网是一把双刃剑,不是所有人都是合法公民。如果假设了一个未经授权的 DHCP 服务器怎么办?它很可能会对网络造成影响。

为了避免这些问题,在 [RFC3118] 中指定了一种认证 DHCP 消息的方法。它定义了一个 DHCP 选项,即Authentication 选项,如下所示

dhcp是什么协议(dhcp协议用在什么情况下)

认证选项的主要目的就是确定 DHCP 消息是否来自一个授权的发送方。

身份验证的代码(code)属性值是 90,而长度(Length)给出了选项中的字节数(不包括代码和长度字段的字节)。如果协议(Protocol)和算法(Algorithm)属性被设置为 0 ,则认证信息字段将保存一个简单的共享配置的 token,token 大家开发应该都接触过吧,就是一条认证信息。只要配置令牌在客户端和服务器上匹配,这条消息就会被接受。

我们上面聊到的只是其中的一种,还有一种更安全的方法是涉及所谓的延迟身份认证,如果协议和算法都被设置为 1,就表示使用了延迟身份认证。在这种情况下,客户端的 DHCPDISCOVER 消息或 DHCPINFORM 消息包括身份验证选项,并且服务器以其 DHCPOFFER 或 DHCPACK 消息中包含的身份验证信息进行响应。这个认证信息中包括一个消息认证码,它提供对发送方的认证和消息的完整性校验。RDM 表示中继检测,中继检测包括一个单项递增的值,只要经过一个代理中继,那么这个中继检测的值就会 + 1。

虽然 DHCP 认证能够确保安全性,但是它没有被广泛使用,原因有两点:

  • 首先,该方法要求在 DHCP 服务器和每个需要身份验证的客户端之间分配共享密钥。
  • 其次,在 DHCP 已经被广泛使用之后,才指定了 Authentication 选项。

总结

这篇文章我和你探讨了计算机网络中一个比较容易忽视的概念,为什么说他容易忽视呢?因为我们平常开发过程中基本上不会管 IP 地址的配置的,也就是环境搭建的时候会用到一些,但是要系统学习计算机网络的话,DHCP 的重要性不可忽视,DHCP 包括工作机制、DHCP 报文消息,DHCP 状态机、DHCP 认证这些都是需要你了解并掌握的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2022年12月5日 下午1:42
下一篇 2022年12月5日 下午1:49

相关推荐

  • “婴儿高温天被扔垃圾桶”,妇联回应婴儿父母找到了!

    如果你不想要孩子,那么就不要将孩子生下来,生下来就要对孩子以及自己负责。日前广东有一个婴儿在高温的天气情况下,被父母扔进垃圾桶,网友看到此消息纷纷怒骂其父母。扔婴儿进垃圾桶7

    2022年9月1日
    570
  • 什么是内容营销如何将内容营销做到深入人心

    内容营销是以内容为载体,通过内容传播进而使用户获取品牌信息的一种方式。内容营销里最关键的是内容,企业能够生产或者利用有价值的内部或者外部内容来传播自己的产品和服务,吸引目标用户的主内容营销是以内容为载

    2022年9月27日
    650
  • 文件转换pdf格式怎么转(九个实用的Word转PDF的方法)

    Word和PDF格式作为我们日常办公中常用的两种文档格式,它们之间的格式转换也是必不可少的。因为PDF格式除了不易编辑的特点之外,用它来查阅文档时,也不会收到在Word格式中无法去除的线条等干扰,受到了大家的喜爱。 不过很多人都不知道如何转换才不会破坏原文件中的文字和图片,以及怎样实现批量转换。因此,我为大家带来九个实用的Word转PDF的方法,为你解决格式…

    2023年2月12日
    540
  • 荷兰豆什么时候播种最合适(荷兰豆的种植方法以及注意事项)

    荷兰豆是蝶形花科豌豆属植物,原产于地中海周围的希腊和远东地区,大约已有八千多年的历史。由于明朝时期荷兰人将其传入中国,所以在中国被称为“荷兰豆”,有趣的是,荷兰豆在荷兰却被称为“中国豆”。接下来为大家介绍一下荷兰豆的种植方法以及注意事项。 一、种植方法 1.准备种子 挑选好种子后对种子进行催芽,用25%浓度的盐水将种子浸泡8-12个小时,同时筛出浮在水面上的…

    2024年7月28日
    10
  • 北京的景点排名前十名(2024北京旅游必去十大景点)

    北京,中国的首都,拥有着丰富的历史文化遗产和独特的城市风貌。对于游客来说,北京的魅力不仅仅在于其现代化都市的繁华,更在于那些充满历史沉淀的古迹。从天安门广场到故宫,从景山公园到国家博物馆,每一个景点都承载着深厚的历史底蕴和文化价值。而天坛、圆明园、颐和园等则展现了古代皇家园林的绝美与精致。今天,我们将为您详细介绍这些北京旅游必去景点,带您领略这座千年古都的独…

    2024年3月21日
    00
  • 配电屏和配电柜的区别(配电屏的作用是什么)

    在低压配电系统中,配电屏和配电柜的概念和区分依据是什么?想必大部分电气人员都非常清楚了,但是到目前仍然有不少电气人员是一知半解的。其实配电屏和配电柜这两种装置是没有本质的区别的,只是一种外观改变后的不同称呼。以前的配电装置,大多后面不设门,是敞开的,这样不利于防尘和防小动物,同时也容易发生误碰现象,外观像一面屏风一样,于是形象地称为配电屏。现在的配电装置,后…

    2024年7月31日
    10
  • 南充市有几个区几个县(南充属于哪个省)

    南充,又称“果城、绸都”,四川省辖地级市,成渝经济圈中心城市之一、“一带一路”战略重要节点城市、川东北城市群重要节点城市、中国优秀旅游城市、国家园林城市、全国清洁能源示范城市。今天,我们聊聊四川省的第

    2022年10月17日
    4870
  • 闪电贷为什么总是审核不通过(从这些原因来分析)

    众所周知,招商银行面向个人客户推出线上消费贷款业务“闪电贷”,可用于借款人经营周转或综合消费。但是有些人却好奇,闪电贷为什么总是审核不通过呢?原来是这些原因,一起去看看。招商银行一般来说,如果闪电贷审

    2022年10月2日
    800
  • 怎样喂猪长得快?(过了年喂猪还能不能挣钱呢?)

    过了年喂猪还能不能挣钱呢?我认为过了年喂猪还能挣大钱,过年后喂猪就和过去一样,如果喂三元杂交猪,采用配合饲料,那么6个月左右就可以出栏,出栏时间是在中秋节前,市场猪肉价格已经回升,肥猪价格应该是高的

    2022年10月13日
    430
  • 网商贷和借呗申请哪个更划算(来对比一下就知道了)

    支付宝里面有非常多的功能,其中最受人们欢迎的就是支付宝里面的网商贷和借呗,用户开通后就可以在里面借到钱,十分方便。那么,网商贷和借呗申请哪个更划算?针对这个问题,下面来了解下。网商贷根据了解,借呗是面

    2022年9月29日
    970

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信