TCP/IP详解——DHCP 协议

文章目录

  • [1. DHCP 协议](#1. DHCP 协议)
    • [1.1 DHCP 概念](#1.1 DHCP 概念)
    • [1.2 DHCP 原理](#1.2 DHCP 原理)
    • [1.3 DHCP 续约](#1.3 DHCP 续约)
    • [1.4 DHCP 报文种类](#1.4 DHCP 报文种类)
    • [1.5 DHCP 报文格式](#1.5 DHCP 报文格式)
    • [1.6 DHCP 协议抓包分析](#1.6 DHCP 协议抓包分析)
      • [1.6.1 Wireshark 抓包查看](#1.6.1 Wireshark 抓包查看)
      • [1.6.2 CSNAS 抓包分析](#1.6.2 CSNAS 抓包分析)
    • [1.7 DHCP 的 Option](#1.7 DHCP 的 Option)
    • [1.8 思考](#1.8 思考)

1. DHCP 协议

1.1 DHCP 概念

DHCP协议称为动态主机配置协议

DHCP作用:自动给网络中的主机分配IP地址。

DHCP地址池:比如一个地址池中有多个IP地址,可以分配给使用的用户。

DHCP作用域:IP、子网掩码、网关、DNS、租期。

DHCP协议端口6768 端口(UDP协议)服务端是67,客户端是68。

优点:减少工作量,避免地址冲突,提高地址利用率。

1.2 DHCP 原理

四个步骤:

  • 步骤一:客户机发送 dhcp discovery 广播包,客户机广播请求ip地址(包含客户机的mac地址)。

  • 步骤二:服务器响应 dhcp offer 单播包 ,服务器提供ip地址,但是不提供子网掩码、网关等参数。(谁先给offer包,就先给谁提供ip地址)。

  • 步骤三:客户机发 dhcp request 广播包,我准备使用这个ip地址,请把这个地址的子网掩码和网关发给我。客户机选择ip,对分配的IP地址进行确认。

  • 步骤四:服务器发送 dhcp ack 单播包 ,ack表示确认的意思,服务器确定租约,并提供网卡详细参数ip、子网掩码、dns、网关、租期等。

在客户机发送discovery广播包,意味着网络中的所有主机都可以收到。而客户机是根据谁先给发送offer包,那么就选哪个,然后和选择了的服务器进行确认,还要和没有选择的服务器打一个招呼表示不使用这个IP地址了。

当租约到期,或者是不在使用这个IP了,那么就会发送一个dhcp release报文。

1.3 DHCP 续约

概念

  • 默认租期是一天,当IP的租期过了50%后,客户机再次发送dhcp request请求包,然后进行续约,如果服务器无响应,则继续使用。并在++87.5%++的时候再次发送dhcp request请求包进行续约,如果仍然无响应,并释放ip地址及重新发送dhcp discovery 广播包来获取IP地址。
  • 如果在这个期间没有任何服务器响应,则自动给自己分配一个169.254.x.x /16,这个IP地址属于全球统一无效地址,用于临时内网通信。

1.4 DHCP 报文种类

1.5 DHCP 报文格式

Wireshark数据包信息

1.6 DHCP 协议抓包分析

1.6.1 Wireshark 抓包查看

在抓包的时候先释放本机的IP地址,然后重新获取IP地址。

sh 复制代码
ipconfig /release	# 释放IP
ipconfig /renew		# 重新获取IP

67 是服务器所使用的端口,68是客户端使用的端口。

查看第一个数据包

第二个数据包

第三个数据包

第四个数据包

通过观察数据包,发现客户端在发送数据包的时候是以FF这样的广播MAC来进行二层广播的。

1.6.2 CSNAS 抓包分析

释放IP地址release的数据包

discovery数据包

offer数据包

request数据包

ack数据包

1.7 DHCP 的 Option

Option 1:用于指定客户端所在子网的子网掩码。

Option 3:用于指定默认网关的IP地址。

Option 6:用于指定DNS服务器的IP地址。

Option 12:用于指定客户端设备的主机名。

Option 15:用于指定本地域名。

Option 51:IP地址租约时间

Option 53:DHCP信息类型

Option 54:服务器标识

Option 58:更新时间值(用于指定客户端请求续约租约的时间间隔。)

Option 59:重新链接时间值(用于指定客户端请求重新绑定租约的时间间隔。)

Option 60:用于指定客户端设备的类型或厂商信息。

DHCP报文中的Options字段可以用来存放普通协议中没有定义的控制信息和参数。详见RFC2132 Options字段由TypeLengthValue三部分组成。

1.8 思考

DHCP的NAK报文和Decline报文都是拒绝IP地址,它们有什么区别

  • DHCP的NAF报文表示服务器拒绝客户端的请求。
  • DHCP的Decline报文是当客户端发现服务器分配的IP无法使用的时候(如IP地址冲突),将发送该报文,通过服务器禁止。
相关推荐
幺零九零零2 小时前
【计算机网络】TCP协议面试常考(一)
服务器·tcp/ip·计算机网络
热爱跑步的恒川2 小时前
【论文复现】基于图卷积网络的轻量化推荐模型
网络·人工智能·开源·aigc·ai编程
云飞云共享云桌面3 小时前
8位机械工程师如何共享一台图形工作站算力?
linux·服务器·网络
音徽编程6 小时前
Rust异步运行时框架tokio保姆级教程
开发语言·网络·rust
幺零九零零7 小时前
【C++】socket套接字编程
linux·服务器·网络·c++
23zhgjx-NanKon7 小时前
华为eNSP:QinQ
网络·安全·华为
23zhgjx-NanKon7 小时前
华为eNSP:mux-vlan
网络·安全·华为
点点滴滴的记录7 小时前
RPC核心实现原理
网络·网络协议·rpc
Lionhacker8 小时前
网络工程师这个行业可以一直干到退休吗?
网络·数据库·网络安全·黑客·黑客技术
程思扬9 小时前
为什么Uptime+Kuma本地部署与远程使用是网站监控新选择?
linux·服务器·网络·经验分享·后端·网络协议·1024程序员节