ND协议——无状态地址自动配置 (SLAAC)
参考学习:计算机网络 | 思科网络 | 无状态地址自动配置 (SLAAC) | 什么是SLAAC_瘦弱的皮卡丘的博客-CSDN博客
与 IPv4 类似,可以手动或动态配置 IPv6 全局单播地址。但是,动态分配 IPv6 全局单播地址有两种方法:
- 如图所示,无状态地址自动配置 (SLAAC)
- IPv6 的动态主机配置协议(有状态 DHCPv6)
有状态 DHCPv6分配IPv6地址可以阅读我的上一篇文章
一文读懂DHCP协议 && DHCPv6协议
过程")
一、SLAAC概述
SLAAC 是一种可以在没有 DHCPv6 服务器服务的情况下获取 IPv6 全局单播地址的方法。SLAAC 的核心是 ICMPv6。
ICMPv6 与 ICMPv4 类似,但它包括其他功能,也是一种更稳定的协议。SLAAC 使用 ICMPv6 路由器请求消息和路由器通告消息提供通常本由 DHCP 服务器提供的编址和其他配置信息。
- 路由器请求 (RS) 消息 - 当配置客户端以使用 SLAAC 自动获取其编址信息时,该客户端会将 RS 消息发送至路由器。将 RS 信息发送至 IPv6 所有路由器组播地址 FF02::2。
- 路由器通告 (RA) 消息 - 路由器发送 RA 消息来提供所配置客户端的编址信息,以自动获取其 IPv6 地址。RA 消息包括本地数据段的前缀和前缀长度。客户端使用此信息创建自己的 IPv6 全局单播地址。**路由器定期发送 RA 消息或响应 RS 消息。**默认情况下,思科路由器每隔 200 秒发送一次 RA 消息。始终将 RA 消息发送到 IPv6 全节点组播地址 FF02::1。
SLAAC 是无状态的。无状态服务意味着没有维护网络地址信息的服务器。与 DHCP 不同,没有 SLAAC 服务器知道哪些 IPv6 地址正在使用中,哪些地址是可用的。
二、SLAAC 工作原理
路由器必须启用 IPv6 路由,然后才能发送 RA 消息:
Router(config)# ipv6 unicast-routing
在图 1 所示的示例拓扑中,配置 PC1 以自动获取 IPv6 编址。自启动开始,PC1 未收到一条 RA 消息,因此,它发送 RS 消息至所有路由器组播地址来通知本地 IPv6 路由器它需要 RA。
如图 2 所示,R1 接收 RS 消息并以 RA 消息作为回应。RA 消息中包括网络的前缀和前缀长度。以路由器的本地链路地址为 IPv6 源地址将 RA 消息发送至 IPv6 全节点组播地址 FF02::1。
PC1 收到包含本地网络前缀和前缀长度的 RA 消息。PC1 会使用此信息创建自己的 IPv6 全局单播地址。PC1 现在有一个 64 位网络前缀,但是还需要一个 64 位接口 ID **(IID) **来创建全局单播地址。
PC1 可以使用两种方式创建自己的唯一 IID:
- EUI-64 - PC1 将使用 EUI-64 进程通过其 48 位 MAC 地址创建一个 IID。
- 随机生成 - 该 64 位 IID 可以是客户端操作系统随机生成的数值。
如图 3 所示,PC1 可以将 64 位前缀与 64 位 IID 相结合创建一个 128 位 IPv6 全局单播地址。PC1 会将路由器的本地链路地址用作其 IPv6 默认网关地址。
由于 SLAAC 是无状态的过程,PC1 必须先验证此新创建的 IPv6 地址是唯一的,然后才能使用。
如图 4 所示,PC1 使用一个特殊构造的多播地址发送 ICMPv6 邻居请求消息,此地址称为请求节点组播地址,它复制 PC1 的 IPv6 地址的最后 24 位。
- 如果没有其他设备回应邻居通告消息,则实际上确保该地址是唯一的,可被 PC1 使用。
- 如果 PC1 接收到邻居通告,那么该地址就不是唯一的,而且操作系统必须确定可用的新接口 ID。
此过程是 ICMPv6 邻居发现的一部分,称为重复地址检测 (DAD)
三、SLAAC 和 DHCPv6
是否要配置客户端以使用 SLAAC、DHCPv6 或两者的组合来自动获取其 IPv6 地址信息取决于 RA 消息中的设置。
这两个标记是管理地址配置标记(M 标记)和其他配置标记(O 标记)。
如图所示,如果使用 M 标记和 O 标记的不同组合,RA 消息会包含 IPv6 设备的三个编址选项之一。
- SLAAC(仅路由器通告【RA】)【A=1, M=0, O=1】
- 无状态 DHCPv6(路由器通告【RA】和 DHCPv6)
- 有状态 DHCPv6(仅限 DHCPv6)【A=0, M=1】
注:虽然 RA 消息指定了客户端在动态获取 IPv6 地址时应使用的过程,但是客户端操作系统也可能选择忽略 RA 消息,并且只使用 DHCPv6 服务器的服务。
=2023/10/10更新=====
ICMPv6路由器请求(Router Solicitation)消息
其中字段含义如下:
Options(选项)字段:只能是源链路层地址选项,表明该报文发送者的链路层地址,不过如果IPv6报头的源地址为未指定地址,则不能包括该选项。
ICMPv6路由器请求(Router Solicitation)消息:Type字段值为133,节点启动后,通过RS消息向路由器发出请求,请求前缀和其他配置信息,用于节点的自动配置。
ICMPv6路由器通告(Router Advertisement)消息
其中字段含义如下:
选项字段中个选项的含义如下:
1)源链路层地址选项:路由器发送RA报文的接口的链路层地址。
2)MTU选项:包含了在链路上运行的链路层协议所能支持的MTU最大值。
3)前缀信息选项(Prefix Information Option):用于地址自动配置的前缀信息,可包含多个。前缀信息选项在RFC2461中定义,用于表示地址前缀和有关地址自动配置的信息,值用于RA报文中;在其他的消息中,此选项应该被忽略。其格式如下图所示:
其各字段的含义如下所示:
4)路由信息选项(Route Information Option):用于主机生产默认路由。路由信息选项在RFC4191中定义,取代了原前缀信息选项的功能。接收RA报文的主机将选项中的信息添加到自己的贝蒂路由表中,以便在发送报文时做出更好地转发决定,其个数如下图所示:
其中各字段含义如下所示:
ICMPv6路由器通告(Router Advertisement)消息:Type字段值为134,对RS消息进行回应。在没有抑制RA消息发布的条件下,路由器会周期性地发布RA消息,其中包括前缀信息选项和一些标志位的信息。
在Native模式下分为RA模式和PD模式。板子如果在Native模式下,会先启动RA模式,再到PD模式。
而SLAAC在RA模式下启动,DHCPv6在PD模式启动。
相关文章:

ND协议——无状态地址自动配置 (SLAAC)
参考学习:计算机网络 | 思科网络 | 无状态地址自动配置 (SLAAC) | 什么是SLAAC_瘦弱的皮卡丘的博客-CSDN博客 与 IPv4 类似,可以手动或动态配置 IPv6 全局单播地址。但是,动态分配 IPv6 全局单播地址有两种方法: 如图所示&#…...
iOS开发UITableView的使用,区别Plain模式和Grouped模式
简单赘述一下 的创建步骤 // 创建UITableView self.tableView [[UITableView alloc] initWithFrame:self.view.bounds style:UITableViewStylePlain]; // 设置数据源和代理 self.tableView.dataSource self; self.tableView.delegate self; // 注册自定义UITableViewCe…...
css美化滚动条
/*定义滚动条高宽及背景 高宽分别对应横竖滚动条的尺寸*/ ::-webkit-scrollbar { width: 8px; height: 8px; background-color: rgba(0,0,0,.2); } /*定义滚动条轨道 内阴影圆角*/ ::-webkit-scrollbar-track { -webkit-box…...

【CANoe】XML Test Module使用实例
文章目录 一、实操步骤1、增加XML Test Module节点2、配置XML Test Module节点3、XML Test Module节点增加CAPL脚本(.can文件)4、文件夹结构5、使用仿真节点开始测试6、测试结果与测试报告7、同理,在Test Setup也可如此操作 一、实操步骤 1、增加XML Test Module节…...
oracle的update语句where条件后的索引字段为空时不执行
问题描述: update 表名 set age ‘23’ where id1 and name‘lili’; 当在oracle执行以上sql时执行成功,但是当传入的name为null时,sql不成立。我的表中id和name是联合唯一索引,以为name不会为空,但实际上name可以为空…...
RabbitMQ的特点
RabbitMQ是一个开源的消息中间件,用于在不同的应用程序之间进行异步通信。它支持多种消息传递协议,如AMQP、MQTT、STOMP等。 RabbitMQ具有以下特点: 可扩展性:RabbitMQ可以通过添加更多的节点和队列来实现水平扩展。 可靠性&…...
JS单选框默认选中样式修改,为白色背景中心有黑色小圆点的样式
要修改JavaScript中默认选中的单选框的样式为白色背景并带有黑色小圆点,你可以使用CSS来实现。以下是一个示例,展示如何修改样式: <style>/* 修改默认选中单选框的样式 */input[type"radio"]:checked {appearance: none; /*…...
2023年下半年NPDP考试今天开始报名!
2023年第二次NPDP考试将于2023年12月2日(周六)举行,考试报名相关事项安排如下: 一、考试时间: 12月2日09:00-12:30。 二、报名时间: 10月18日08:00-11月10日23:59。 三、缴费及退考截止时间࿱…...

nfs+rpcbind实现服务器之间的文件共享
NFS简介 NFS服务及Network File System,用于在网络上共享存储,分为2,3,4三个版本,最新为4.1版本。NFS基于RPC协议,RPC为Remote Procedure Call的简写。 应用场景:用于A,B,C三台机器上需要保证被访问到的文件是一样…...

10-k8s-身份认证与鉴权
文章目录 一、ServiceAccount介绍二、ServiceAccount相关的资源对象三、dashboard空间示例 一、ServiceAccount介绍 ServiceAccount(服务账户)概念介绍 1)ServiceAccount是Kubernetes集群中的一种资源对象,用于为Pod或其他资源提供…...
如何分析K8S中的OOMKilled问题(Exit Code 137)
什么是 OOMKilled Kubernetes 错误(Exit Code 137) 当 Kubernetes 集群中的容器超过其内存限制时,Kubernetes 系统可能会终止该容器并显示“OOMKilled”错误,这表明该进程由于内存不足而被终止。此错误的退出代码是 137。 如果遇…...
【0day】泛微e-office OA未授权访问漏洞学习
注:该文章来自作者日常学习笔记,请勿利用文章内的相关技术从事非法测试,如因此产生的一切不良后果与作者无关。 目录 一、漏洞描述 二、影响版本 三、资产测绘 四、漏洞复现...

CSS盒子模型的详细解析
03-盒子模型 作用:布局网页,摆放盒子和内容。 盒子模型-组成 内容区域 – width & height 内边距 – padding(出现在内容与盒子边缘之间) 边框线 – border 外边距 – margin(出现在盒子外面) d…...

【mfc/VS2022】计图实验:绘图工具设计知识笔记2
按钮添加处理程序 1.类视图找到对应类右击,类向导 2. 找到对应的的按钮id 如何将画出的两个相交的圆都显示出来,而不是重叠(如下图)隐藏了一条圆弧 问题如图: 因为矩形和圆心其实是个背景色的封闭图形,所…...

Redis数据结构之quicklist
前言 为了节省内存,Redis 推出了 ziplist 数据类型,采用一种更加紧凑的方式来存储 hash、zset 元素。因为查找的时间复杂度是 O(N),且写入需要重新分配内存,所以它仅适用于小数据量的存储,而且它还存在 连锁更新 的风…...
MMKV(1)
内存准备 通过 mmap 内存映射文件,提供一段可供随时写入的内存块,App 只管往里面写数据,由操作系统负责将内存回写到文件,不必担心 crash 导致数据丢失。 数据组织 数据序列化方面选用 protobuf 协议,pb 在性能和空…...

centos 7.9 源码安装htop
1.下载源码 wget http://sourceforge.net/projects/htop/files/latest/download 2.上传到tmp目录,并解压 tar xvzf htop-1.0.2.tar.gz mv htop-1.0.2 /opt/ 进入到 cd /opt/htop-1.0.2/ 3.编译并安装 ./configure && make && make install 4.…...
Element UI之Button 按钮
Button 按钮 常用的操作按钮。 按需引入方式 如果是完整引入可跳过此步骤 import Vue from vue import { Button } from element-ui import element-ui/lib/theme-chalk/base.css import element-ui/lib/theme-chalk/button.css import element-ui/lib/theme-chalk/icon.cs…...

dig 简明教程
哈喽大家好,我是咸鱼 不知道大家在日常学习或者工作当中用 dig 命令多不多 dig 是 Domain Information Groper 的缩写,对于网络管理员和在域名系统(DNS)领域工作的小伙伴来说,它是一个非常常见且有用的工具。 无论是简单的 DNS 解析查找还…...
深度分析AMQP以及在rabbitMQ中的应用
文章目录 AMQP是什么AMQP在rabbitMQ中的应用AMQP协议的三层AMQP的三大组件AMQP的连接信道RabbitMQ 如何实现信道: AMQP是什么 AMQP(Advanced Message Queuing Protocol)是一种开放标准的消息队列协议。它提供了一个统一的、可靠的、异步的消…...

如何在看板中体现优先级变化
在看板中有效体现优先级变化的关键措施包括:采用颜色或标签标识优先级、设置任务排序规则、使用独立的优先级列或泳道、结合自动化规则同步优先级变化、建立定期的优先级审查流程。其中,设置任务排序规则尤其重要,因为它让看板视觉上直观地体…...
java 实现excel文件转pdf | 无水印 | 无限制
文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

前端开发面试题总结-JavaScript篇(一)
文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包(Closure)?闭包有什么应用场景和潜在问题?2.解释 JavaScript 的作用域链(Scope Chain) 二、原型与继承3.原型链是什么?如何实现继承&a…...

华硕a豆14 Air香氛版,美学与科技的馨香融合
在快节奏的现代生活中,我们渴望一个能激发创想、愉悦感官的工作与生活伙伴,它不仅是冰冷的科技工具,更能触动我们内心深处的细腻情感。正是在这样的期许下,华硕a豆14 Air香氛版翩然而至,它以一种前所未有的方式&#x…...
NPOI操作EXCEL文件 ——CAD C# 二次开发
缺点:dll.版本容易加载错误。CAD加载插件时,没有加载所有类库。插件运行过程中用到某个类库,会从CAD的安装目录找,找不到就报错了。 【方案2】让CAD在加载过程中把类库加载到内存 【方案3】是发现缺少了哪个库,就用插件程序加载进…...
在 Spring Boot 项目里,MYSQL中json类型字段使用
前言: 因为程序特殊需求导致,需要mysql数据库存储json类型数据,因此记录一下使用流程 1.java实体中新增字段 private List<User> users 2.增加mybatis-plus注解 TableField(typeHandler FastjsonTypeHandler.class) private Lis…...

Elastic 获得 AWS 教育 ISV 合作伙伴资质,进一步增强教育解决方案产品组合
作者:来自 Elastic Udayasimha Theepireddy (Uday), Brian Bergholm, Marianna Jonsdottir 通过搜索 AI 和云创新推动教育领域的数字化转型。 我们非常高兴地宣布,Elastic 已获得 AWS 教育 ISV 合作伙伴资质。这一重要认证表明,Elastic 作为 …...

从零开始了解数据采集(二十八)——制造业数字孪生
近年来,我国的工业领域正经历一场前所未有的数字化变革,从“双碳目标”到工业互联网平台的推广,国家政策和市场需求共同推动了制造业的升级。在这场变革中,数字孪生技术成为备受关注的关键工具,它不仅让企业“看见”设…...

rm视觉学习1-自瞄部分
首先先感谢中南大学的开源,提供了很全面的思路,减少了很多基础性的开发研究 我看的阅读的是中南大学FYT战队开源视觉代码 链接:https://github.com/CSU-FYT-Vision/FYT2024_vision.git 1.框架: 代码框架结构:readme有…...

DAY 45 超大力王爱学Python
来自超大力王的友情提示:在用tensordoard的时候一定一定要用绝对位置,例如:tensorboard --logdir"D:\代码\archive (1)\runs\cifar10_mlp_experiment_2" 不然读取不了数据 知识点回顾: tensorboard的发展历史和原理tens…...