网络协议学习-DHCP

最近的工作重点一直在局域网的设备发现,昨天开会,领导说他在局域网内部开启的DHCP服务,能够获得到所有终端的类型,甚至连你手机的型号都能获得!
在这里插入图片描述

看来DHCP服务也有一些神秘的地方值得学习,话不多说,让领导帮忙给抓了一段报文发给我学习一下。
在这里插入图片描述
配合百度搜索DHCP交互流程,自然快速入手
在这里插入图片描述

从网上找到了一张流程图,与这个抓包过程基本一致
在这里插入图片描述
整个流程大致如下
1.discover阶段,终端物理连接通了之后,自己没有IP,那么需要以广播的方式,寻找本网络中的DHCP服务,让它给自己分配网络参数。
在这里插入图片描述

此处顺带介绍一下DHCP的协议端口,DHCP采用了UDP方式,发送端口为68,接收端口为67,即客户端通过UDP67端口广播,然后通过UDP68端口接收DHCP服务端给到的响应。
在这里插入图片描述
这个是discover报文的样例,DHCP头部都是固定格式,包含固定长度的一部分和可选项options,格式如下。
在这里插入图片描述

字段含义
op报文的操作类型。分为请求报文和响应报文。客户端发送给服务器的包为请求报文,值为 1;服务器发送给客户端的包为响应报文,值为 2。
htypeDHCP 客户端的 MAC 地址类型。MAC 地址类型其实是指明网络类型,htype 值为 1 时表示为最常见的以太网 MAC 地址类型。
hlen硬件地址长度。以太网 MAC 地址长度为 6 个字节,即 hlen 值为 6
hops跳数,DHCP 报文经过的中继数量。每经过一个路由器,该字段就会增加 1。如果没有经过路由器,则值为 0(同一网内)
xid事务 ID。客户端发起一次请求时选择的随机数,用来标识一次地址请求过程。在一次请求中所有报文的 xid 都是一样的
secsDHCP 客户端从获取到 IP 地址或者续约过程开始到现在所过去的时间,以秒为单位。在没有获得 IP 地址前,该字段始终为 0
flagsBOOTP 标志位。只使用第 0 比特位,是广播应答标识位,用来标识 DHCP 服务器应答报文是采用单播还是广播发送。其中,0 表示采用单播发送方式,1 表示采用广播发送方式。其余位尚未使用
ciaddrDHCP 客户端的 IP 地址。仅在 DHCP 服务器发送的 ACK 报文中显示,在其他报文中均显示为 0。这是因为在得到 DHCP 服务器确认前,DHCP 客户端还没有分配到 IP 地址
yiaddrDHCP 服务器分配给客户端的 IP 地址。仅在 DHCP 服务器发送的 Offer 和 ACK 报文中显示,其他报文中显示为 0
siaddr为 DHCP 客户端分配 IP 地址等信息的其他 DHCP 服务器 IP 地址。仅在 DHCP Offer、DHCP ACK 报文中显示,其他报文中显示为 0
giaddr转发代理(网关)IP 地址,DHCP 客户端发出请求报文后经过的第一个 DHCP 中继的 IP 地址。如果没有经过 DHCP 中继,则显示为 0
chaddrDHCP 客户端的 MAC 地址。在每个报文中都会显示对应 DHCP 客户端的 MAC 地址
sname为客户端分配 IP 地址的服务器名称(DNS 域名格式)。只在 DHCP Offer 和 DHCP ACK 报文中显示发送报文的 DHCP 服务器名称,其他报文显示为 0
fileDHCP 服务器为 DHCP 客户端指定的启动配置文件名称及路径信息。仅在 DHCP Offer 报文中显示,其他报文中显示为空
options可选选项,格式为“代码+长度+数据”

上述资料为网络上寻得,大家都知道,网络上会有很多东西有漏洞。不过,这里并没有漏洞
在这里插入图片描述
没有漏洞才怪。
在这里插入图片描述
通过抓取的报文,我们可以看到这里报文与前面的截图有些不同
在这里插入图片描述
在file和Options中间,还有个Magic cookie,十六进制为63 82 53 63,这四个字节在处理数据的时候,一定要注意,因为DHCP协议和BOOTP协议格式完全一致,那么区分点,就在于这四个特征字。所以我们在过滤dhcp报文的时候,首先要关注这四个数字是不是dhcp的特征字,是则处理,不是则抛弃。
就这么豪横。
在这里插入图片描述
第一部分说的有点长了,简单来说,就是DHCP客户端广播,寻找DHCP服务器,在附带的Options中,我们发现很多有故事的内容
在这里插入图片描述
例如
在这里插入图片描述
这里就发现了终端的类型,MAC地址和主机名,根据这些信息,就足以让DHCP服务端发现终端的类型,从而在网关终端列表中,赋予不同的图标
在这里插入图片描述
秀不秀?
在这里插入图片描述
2.offer阶段,DHCP服务器可是一直在监听着67端口的广播,突然收到一个新人的呐喊,还是有点兴奋,马上分配了一系列参数给它来欢迎新人。
在这里插入图片描述
什么ip啊,掩码啊,网关啊,DNS啊,能给它分的,全给它分咯。

在这里插入图片描述
3.Request阶段,其实新人也不是谁都没见过的主,也要挑一挑的,怎么挑呢,自然是谁先回应就挑谁咯,简单直接暴力。
在这里插入图片描述
那么选好喜欢的配置,就要告诉DHCP服务器

在这里插入图片描述
4.Ack回应,DHCP服务端收到client发送的Request,那么需要确认一下,OK,这个配置就是你的了,你能用一段时间吧
在这里插入图片描述
整个阶段可以概况为DORA,即取了各个阶段的首字母,发现,分配,请求,回应。简单快速有效。
主要阶段介绍完毕,那么还有一些辅助的阶段
1.允许续约,如果DHCP客户端再次登录,需要使用网络的时候,如果本身不需要改变,则可以再次发送Request请求,如果DHCP服务端允许,则会返回ack,允许继续使用
2.无法续约,如果DHCP服务端发现,你想用的网络配置已经被人占用,那么会返回NAK回应,那么客户端就需要重新discover了。
3.IP冲突,客户端在接收到DHCP ack广播后,会向网络发送三个针对此IP地址的ARP解析请求以执行冲突检测,查询网络上有没有其它机器使用该IP地址;如果发现该IP地址已经被使用,客户机会发出一个DHCP decline数据包给DHCP服务器,拒绝此IP地址租约,并重新发送DHCP discover信息。此时,在DHCP服务器管理控制台中,会显示此IP地址为BAD_ADDRESS
4.主动释放IP,客户端可以发送DHCP release,来释放自己占用的IP资源
5.发送消息,客户端还可以发送DHCP Inform,来回应DHCP服务端。

关于DHCP,就写这么多吧,明天又是周末了,可惜只能休息一天,一天也是休息,不要想工作就对了。在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

胖哥王老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值