DHCP与DHCPv6讲解

news/2025/2/9 2:46:03/

目录

DHCP

DHCP端口号

DHCP报文

DHCP工作过程

DHCP租期续租

DHCPv6

DHCPv6端口号

DHCPv6报文

DHCPv6工作原理


DHCP

DHCP端口号

DHCP主要有两个端口号,分别是UDP67和UDP68

DHCP客户端向DHCP服务器发送报文时采用68端口号,DHCP服务器向DHCP客户端发送报文时采用67端口号

DHCP报文

Discover 用来寻找DHCP服务器(广播)

Offer      服务器用来响应discover报文(携带了各种配置信息)(广播/单播)

Request 客户端初始化时用来回应服务器发送的Offer报文(广播);客户端重启时用来确认先前被分配的IP地址等配置信息(广播);客户端进行IP地址续约时发送(广播/单播)

Ack        服务器对Request报文的确认响应报文(客户端收到此报文后,才真正获得了IP地址和相关的配置信息)(广播/单播)

Decline  客户端发现服务器分配的地址冲突,发送此报文重新申请地址(单播)

Release  客户端主动释放服务器分配的IP地址(单播)

Inform   客户端获取IP地址后向服务器请求其他配置信息(网关地址、DNS服务器等信息)(单播)

Nak        服务器对客户端Request报文的拒绝响应报文(单播)

Relay     DHCP中继设备向服务器发送的报文(单播)

客户端发送报文:Discover、Request、Deline、Release、Inform

服务器发送报文:Offer、Ack、Nak

DHCP工作过程

1、客户端发送一个广播discover报文

2、Server收到报文后,会向客户端发送offer报文(携带为客户端分配的地址)

3、客户端收到offer报文后,会服务器发送广播request报文

4、Server收到报文之后会回复一条ACK进行确认

5、客户端收到ack之后会执行DAD(重复地址检测),如果冲突了会给服务器发送decline报文,告知这个地址无法使用,然后重新获取IP地址

为什么DHCP Request报文也是广播的

当网络中有多台server服务器,就会分配多个offer;客户端会使用第一个收到的offer报文中携带的地址作为本机地址;此时发送广播request报文,即可以告诉offer报文所对应DHCP服务器我使用了哪个地址,也可以告诉其它服务器将offer里的地址回收,可以分配给其他主机了

服务器发送Offer和Ack有单播和广播两种情况,具体如何发送?

这取决于客户端发送的Discover和Request报文中携带的Boot Flags字段(大多数情况下都是单播)

如果Boot Flags = 0x8000 ,则服务器回应时发广播

 如果Boot Flags = 0x0000 ,则服务器回应时发单播

DHCP租期续租

1、客户端发现租期只有一半时,发送单播Request报文(如果得不到服务器回应,还是会继续使用此地址)

2、客户端发现租期到87.5%时,发送广播Request报文(如果服务器还得不到回应,当租期到期后会发送Release释放此地址,重新发送Discover报文申请地址

注意:当服务器发生Request里的地址没有租约记录时,会发送nak报文进行回收


DHCPv6

DHCPv6没有广播报文,通过组播报文来实现,用到的组播地址有两个

FF02::1:2:所有DHCPv6服务器和中继代理的组播地址,用于客户端和相邻的服务器及中继代理之间通信

FF05::1:3:所有DHCPv6服务器组播地址,用于中继代理和服务器之间的通信

DHCPv6端口号

DHCPv6报文承载在UDPv6上

客户端侦听的UDP目的端口号是546;服务器、中继代理侦听的UDP端口号是547

即客户端发送时端口号为547,服务器发送时端口号为546

DHCPv6报文

Solicit           同dhcpv4 的discover

Advertise      同dhcpv4 的offer

Request        同dhcpv4 的request(请求IPv6地址)

Reply            同dhcpv4 的 ack/nck

Renew           同dhcpv4 的request(进行续约-单播)

Rebind          同dhcpv4 的request(Renew无应答,广播向任意服务器请求延长此地址)

Release         同dhcpv4 的release

Decline         同dhcpv4 的decline

Informmation-Request            同dhcpv4 inform

Confirm        客户端向任意可达的v6服务器发送此报文检查自己目前获得的IPv6地址是否适用与它所连接的链路

Reconfigure  服务器向客户端发送此报文,提示客户服务器上存在新的网络配置i休尼希

Relay-Forw   中继代理向服务器转发客户端的请求报文

Relay-Repl   服务器向中继代理发送报文(携带了转发给客户端的报文)

DHCPv6工作原理

四步获取地址

两步快速获取地址

1、DHCPv6客户端在发送的Solicit报文中携带Rapid Commit选项,标识客户端希望服务器能够快速为其分配地址和网络配置参数。

2、DHCPv6服务器接收到Solicit报文后,将进行如下处理:

        如果DHCPv6服务器支持快速分配地址,则直接返回Reply报文,为客户端分配IPv6地址和其他网络配置参数,Reply报文中也携带Rapid Commit选项。

        如果DHCPv6服务器不支持快速分配过程,则采用四步交互方式为客户端分配IPv6地址/前缀和其他网络配置参数。

无状态工作过程

1、DHCPv6客户端以组播方式向DHCPv6服务器发送Information-Request报文,该报文中携带Option Request选项,指定DHCPv6客户端需要从DHCPv6服务器获取的配置参数。

2、DHCPv6服务器收到Information-Request报文后,为DHCPv6客户端分配网络配置参数,并单播发送Reply报文,将网络配置参数返回给DHCPv6客户端。DHCPv6客户端根据收到Reply报文提供的参数完成DHCPv6客户端无状态配置。


http://www.ppmy.cn/news/248087.html

相关文章

宝塔安装ModStart常见问题

Q:环境提示PHP未禁用危险函数 安装系统时通常会需要解禁 system,exec,passthru,shell_exec,popen,proc_open 等危险函数。部分集成环境会提示危险函数风险,通常可以如下方式解决: 该函数在通常只是在系统 系统安装/系统升级/模块安装/模块升…

web自动化测试入门篇02——selenium安装教程

1. 目的 web自动化测试作为软件自动化测试领域中绕不过去的一个“香饽饽”,通常都会作为广大测试从业者的首选学习对象,相较于C/S架构的自动化来说,B/S有着其无法忽视的诸多优势,从行业发展趋、研发模式特点、测试工具支持&#x…

KafkaConsuner 指定开始消费的位置

KafkaConsumer 指定消费位置的基础 一个 Topic 对应着磁盘上的几个重要的文件: .log:数据文件,存储了该 topic 中的所有消息。.index:索引文件,对数据文件中的消息进行索引。关键就是可以按照 offset 来索引.timeind…

vue中的虚拟dom

目录 什么是虚拟DOMVue中虚拟DOM介绍Vue中虚拟DOM工作原理虚拟DOM具有以下优点v-for指令中为什么需要设置key值 什么是虚拟DOM DOM操作是Web开发中非常昂贵和低效的操作,尤其是在用户界面频繁更新的情况下。此时,在每次数据更新时重新渲染整个DOM树会导…

【Linux】多线程02 --- 线程的同步互斥问题及生产消费模型

🍎作者:阿润菜菜 📖专栏:Linux系统编程 目录 一、线程互斥1. 为什么要有共享资源临界保护? 2.理解加锁2.1 认识锁,使用锁 线程同步互斥问题是指多线程程序中,如何保证共享资源的正确访问和线程间…

bpmn是什么?bpmn.js的简单使用

文章目录 一、bpmn.js是什么?二、使用步骤1.引入bpmn2.使用bpmn3.引入bpmn-左侧工具栏4.引入bpmn-左侧工具栏5.引入bpmn数据导出6.数据导出为svg格式7.监听modeler并绑定事件7.监听element点击……8.自定义左侧工具栏图标9.自定义左侧工具栏完整效果 总结 一、bpmn.…

案例33:基于Springboot名城小区物业管理系统开题报告设计

博主介绍:✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专…

汇编学习教程:bp 寄存器

引言 我们在此前的学习中已经了解了CPU中众多的寄存器,比如通用寄存器 AX、BX、CX、DX,还有段寄存器 CS、DS、SS、ES。在内存访问和灵活寻址的学习中,我们重点学习了 BX 寄存器和 CX 寄存器。BX 寄存器通常配合 DS段寄存器来实现内存访问&am…