DHCP

1、DHCP服务又两个角色,一个是server,一个是client。DHCP是基于UDP传输,server的端口号为67,client的端口号为68。

2、DHCP请求过程:

①client端发送discover报文进行全网泛洪。该报文的主要属性,源ip为0.0.0.0,目的ip为255.255.255.255,源mac为自己的mac,目的mac为广播mac(一堆F)。之后client进入init状态。

②DHCP服务器收到该报文之后将回复一个offer报文(为单播),该报文中包含了client所需要的各种信息(ip、子网掩码、DNS等)。

③client收到offer报文后在广播一个request报文,该报文为正式请求使用该ip地址。这里使用广播的原因是该网络中可能不止一个DHCP服务器,可能有多个服务器,当client请求时可能有多个服务器响应了这个请求,那么他就要告诉其他的服务器自己用了别的DHCP分配的资源。收到offer报文之后进入selecting状态。发送request报文进入requesting状态。

④DHCP服务器收到request报文之后,将回复一个ACK确认报文,此时才正式的将该ip分配给客户端。

⑤当client获得这个ip之后,他会在这个局域网中广播一个arp报文,作用就是看看这个网络中有没有人在使用这个ip地址(防止IP地址冲突)。收到ACK报文之后进入到BOUND状态。

3、DHCP相关报文:

①discover报文:用于client请求DHCP服务器。

②offer报文:server响应client的请求。

③request报文:client正式请求。

④ack报文:server确认client的请求。

⑤DHCP NAK报文:该报文一般时地址无效或者client重复请求时发送,发送该报文后,client会重新进入到原始状态重新请求地址

4、DHCP租用更新:

①到地址的租期时间到达50%的时候,client进入RENEW状态,然后重新续订租用。client会单播一条request报文给服务器申请租用时间更新,如果DHCP服务器可用,就会发送一条ACK作为响应,然后更新租期。

②如果DHCP不可用,也就是没有响应client的租约更新请求。那么当租约时间到达87.5%的时候,客户端进入REBIND状态,此时并发送一条广播的request报文,如果有响应,则使用新的配置ip。如果没有响应则到达租期结束的时候就无法在使用该地址并终止上网。

5、DHCP的安全问题:

问题:恶意攻击者在局域网内通过短时间发送大量的discover报文向DHCPserver请求地址,但是地址是有限的,当DHCP地址池耗尽的时候,攻击者在伪造成一台DHCP服务器给此client分配地址等信息,那么该网络中就完全由攻击者控制了,这是非常危险的。

解决:在交换机上启用DHCP snooping技术,凡是开启了该技术的交换机,在对应的vlan下的所有接口将会被置为untrunst状态,该状态下自动拒绝offer和ack报文,这样就可以防止攻击者冒充DHCP服务器了。

关于DHCP snooping在DHCP snooping在记录。

Original: https://www.cnblogs.com/WorldNoBug/p/16644159.html
Author: Ant_blog
Title: DHCP

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/615617/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 动词分类

    及物动词 及物动词需要带物品或人物动作是有对象的对象为宾语 及物动词和不及物动词合起来就是”实义动词”(也叫做行为动词)因为这些动词通常都有实际意义 当然也…

    Python 2023年6月15日
    083
  • 在实际应用中联合体union的妙用

    关键字union,又称为联合体、共用体,联合体的声明和结构体类似,但是它的行为方式又和结构体不同,这里的行为方式主要指的是其在内存中的体现,结构体中的成员每一个占据不同的内存空间,…

    Python 2023年10月13日
    074
  • [De1CTF 2019]SSRF Me

    SSRF?没怎么体会到,这道题我更愿意称它为python中的flask框架代码审计题。吐槽一下这个鬼题目,缩进都没有,纯纯一个文本文件。我会美化代码?不存在的,我直接从别的师傅那偷…

    Python 2023年8月12日
    063
  • 集群报错 /lib64/libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found

    集群报错:ImportError: /lib64/libstdc++.so.6: version GLIBCXX_3.4.29' not found</p> …

    Python 2023年8月1日
    053
  • 重命名和合并(renaming and combining)

    通常情况下,数据会带有列名、索引名或其他我们不满意的命名约定。在这种情况下,您将学习如何使用 pandas 函数将违规条目的名称更改为更好的名称。您还将探索如何组合来自多个 Dat…

    Python 2023年8月21日
    041
  • 实战讲解pandas中merge, join, concat的区别

    1.从一个需求说起 最近经常有这么一堆数据需要处理一下,而且是很常见的需求:有一个数据集,数据集里全是数字,需要对数据集按区间段进行个数统计,并计算各区间段的占比,所以本质上就是个…

    Python 2023年8月21日
    048
  • flask中的static

    static_folder指的是flask的静态文件夹的名称 static_url_path指的是src的文件目录 一般在模板里面写静态文件的时候用 {{ url_for(&#82…

    Python 2023年6月3日
    088
  • Python笔记22——飞机大战(下)

    1 使用定时器添加敌机 在 pygame中可以使用pygame.time.set_timer()来添加 定时器 所谓 定时器,就是 *每隔一段时间,去执行一些动作 set_time…

    Python 2023年9月18日
    050
  • 弹幕全是“二刷”,这部剧有多好看?Python爬取腾讯视频1.1W弹幕,做词云分析

    《猎罪图鉴》可以说是国产悬疑剧之光了,上线首周热度不断飙升。该剧讲述了因一起尘封旧案而结怨的模拟画像师沈翊和刑警队长杜城,在机缘巧合下被迫搭档,两人联手侦破多起离奇疑案,共同追踪谜…

    Python 2023年11月9日
    074
  • 初学者必犯的10个Python错误

    前言 当我们开始学习Python时,我们会养成一些不良编码习惯,而更可怕的是我们连自己也不知道。 在学习成为的过程中,我们可能有过这样的经历,我们编写的代码只能完成一次工作,但随后…

    Python 2023年5月24日
    059
  • 数据科学—使用Pandas进行操作数据

    | 1.1 Pandas是什么? Pandas是Python中最受欢迎的数据科学库之一。它使用起来很容易,它是基于 Numpy之上,并共享了许多功能和属性。 使用 Pandas,您…

    Python 2023年8月7日
    074
  • 数据处理任务——知识点总结

    前言 如何使用pandas处理Excel表格数据呢? 在生活和科研任务中,我们经常需要处理大量的Excel数据。面对几W条数据,甚至几十万条数据,在Excel中操作是远远不够的。这…

    Python 2023年8月7日
    049
  • 什么是前缀索引?

    一、什么是前缀索引? 所谓前缀索引,说白了就是对文本的前几个字符建立索引( 具体是几个字符在建立索引时去指定),比如以产品名称的前 10 位来建索引,这样建立起来的索引更小,查询效…

    Python 2023年10月20日
    080
  • conda使用详细

    〇、Anaconda环境变量 一、常用命令 1、创建Python虚拟环境 2、切换环境 3、对虚拟环境中安装额外的包 4、关闭虚拟环境(即从当前环境退出返回使用PATH环境中的默认…

    Python 2023年9月9日
    064
  • 非参数统计 期末复习

    非参数统计 期末复习 非参数统计:第二章 单样本问题 非参数统计:第三章 两样本数据 非参数统计:第四章 多样本数据 非参数统计:第六章 相关检验 非参数统计:第七、八章 分类数据…

    Python 2023年6月12日
    088
  • Unittest、pytest、TestNg的前置和后置总结

    1.Unittest前置和后置 setUpModule()和tearDownMoudle()setUp()和tearDown()setUpClass和tearDownClass()…

    Python 2023年9月11日
    063
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球