ICMPv6报文与邻居状态跟踪

news2024/11/26 8:32:52

ICMPv6报文

ICMPv6(Internet Control Message Protocol for the IPv6)是IPv6的基础协议之一。
在IPv4中,Internet控制报文协议ICMP(Internet Control Message Protocol)向源节点报告关于向目的地传输IP数据包过程中的错误和信息。它为诊断、信息和管理目的定义了一些消息,如:目的不可达、数据包超长、超时、回应请求和回应应答等。在IPv6中,ICMPv6除了提供ICMPv4常用的功能之外,还是其它一些功能的基础,如邻接点发现、无状态地址配置(包括重复地址检测)、PMTU发现等等。
在这里插入图片描述
报文中字段解释如下:
Type:表明消息的类型,0-127表示差错报文类型,128255表示消息报文类型。
Code:表示此消息类型细分的类型。
Checksum:表示ICMPv6报文的校验和。

ICMPv6错误报文的分类

ICMPv6错误报文用于报告在转发IPv6数据包过程中出现的错误。ICMPv6错误报文可以分为以下4种:

目的不可达错误报文

在IPv6节点转发IPv6报文过程中,当设备发现目的地址不可达时,就会向发送报文的源节点发送ICMPv6目的不可达错误报文,同时报文中会携带引起该错误报文的具体原因。
目的不可达错误报文的Type字段值为1。根据错误具体原因又可以分为:
Code=0:没有到达目标设备的路由。
Code=1:与目标设备的通信被管理策略禁止。
Code=2:未指定。
Code=3:目的IP地址不可达。
Code=4:目的端口不可达。

数据包过大错误报文

在IPv6节点转发IPv6报文过程中,发现报文炒锅出接口的链路MTU时,则向发送报文的源节点发送ICMPv6数据包过大错误报文,其中携带出接口的链路MTU值,数据包过大错误报文是Path MTU发现机制的基础。
数据包过大错误报文的Type字段值为2,Code字段值为0。

时间超时错误报文

在IPv6报文收发过程中,当设备收到Hop Limit字段值等于0的数据包,后者当设备将Hop Limit字段值减为0时,会向发送报文的源节点发送ICMPv6超时错误报文。对于分段重组报文的操作,如果炒锅定时时间,也会产生一个ICMPv6超时报文。
时间超时错误报文的Type字段值为3,根据错误具体原因又可以细分为:
Code=0:在传输中超越了跳数限制。
Code=1:分片重组超时。

参数错误报文

当目的节点收到一个IPv6报文时,会对报文进行有效性检查,如果发现问题会向报文的源节点回应一个ICMPv6参数错误差错报文。
参数错误报文的Type字段值为4,根据错误具体原因又可以细分为:
Code=0:IPv6基本头或扩展头的某个字段有错误。
Code=1:IPv6基本头或扩展头的NextHeader值不可识别。
Code=2:扩展头重出现未知的选项。

ICMPv6信息报文的分类

ICMPv6信息报文提供诊断功能和附加的主机功能,比如多播侦听发现和邻居发现。常见GICMPv6信息报文主要包括会送请求报文(Echo Request)和回送应答报文(Echo Reply),这两种报文也就是通常使用的ping报文。
会送请求报文:会送请求报文用于发送到目标节点,以使目标节点立即发回一个会送应答报文。回送请求报文的Type字段值为128,Code字段的值为0。
会送应答报文:当收到一个会送请求报文时,ICMPv6回用会送应用报文响应。会送应答报文的Type字段的值为129,Code字段的值为0。

IPv6地址配置方式

IPv6邻居发现协议

邻居发现协议NDP(Neighbor Discovery Protocol)是IPv6协议体系中一个重要的基础协议。邻居发现协议替代了IPv4的ARP(Address Resolution Protocol)和ICMP路由器发现(Router Discovery),它定义了使用ICMPv6报文实现地址解析,跟踪邻居状态,重复地址检测,路由器发现以及重定向等功能。

地址解析

在IPv4,当主机需要和目标主机通信时,必须先通过ARP协议获得目的主机的链路层地址。在IPv6中,同样需要从IP地址解析到链路层底子好的功能。邻发现协议实现了这个功能。
ARP报文时直接封装在以太网报文中,以太网协议类型为0x806,普遍观点认为ARP定位为第2.5层的协议。ND本身基于ICMPv6实现,以太网协议类型为0x86DD ,即IPv6报文, IPv6下一个报文头字段值为58,表示ICMPv6报文,由于ND协议使用的所有报文均封装在ICMPv6报文中,一般来说,ND被看作第三层的协议。在三层完成地址解析,主要带来一下几个好处:
地址解析在三层完成,不同的二层介质可以采用相同的地址解析协议。
可以使用三层的安全机制避免地址解析攻击。
使用组播方式发送请求报文,减少了二层网络的性能压力。
地址解析过程中使用了两种ICMPv6报文:邻居请求报文NS(Neighbor Solicitation)和邻居通告报文NA(Neighbor Advertisement)。
NS报文:Type字段值为135,Code字段值为0,在地址解析中的作用类似于IPv4中的ARP请求报文。
NA报文:Type字段值为136,Code字段值为0,在地址解析中的作用类似于IPv4中的ARP应答报文。
地址解析的过程:
在这里插入图片描述
Host A在向Host B发送报文之前它必须要解析出Host B的链路层地址,所以首先Host A会发送一个NS报文,其中源地址为Host A的IPv6地址,目的地址为Host B的被请求节点组播地址,需要解析的目标IP为Host B的IPv6地址,这就表示Host A想要知道Host B的链路层地址。同时需要指出的是,在NS报文的Options字段中还携带了Host A的链路层地址。
当Host B接收到了NS报文之后,就会回应NA报文,其中源地址为Host B的IPv6地址,目的地址为Host A的IPv6地址(使用NS报文的Host A 的链路层地址进行单播),Host B的链路层地址被放在Options字段中,这样就完成了一个地址解析的过程。

邻居状态跟踪

通过邻居或到达邻居的通信,会因各种原因而中断,包括硬件故障、接口卡的热插入等。如果目的地失效,则恢复是不可能的,通信失败;如果路径失效,则恢复是可能的。因此节点需要维护一张邻居表,每个邻居都有相应的状态,状态之间可以迁移。
在这里插入图片描述
1.A先发送NS报文,并生成缓存条目,此时,邻居状态为incomplete。

[AR1]display ipv6 neighbors
-----------------------------------------------------------------------------
IPv6 Address : 2001:1::2                                         
Link-layer   : 0000-0000-0000                     State : INCMP        
Interface    : GE0/0/0                            Age   : 0                   
VLAN         : -                                  CEVLAN: -                   
VPN name     :                                    Is Router: FALSE            
Secure FLAG  : UN-SECURE                          

---------------------------------------

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1257692.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

抖音本地生活服务商申请入口门槛过高,该怎么办?

近年来,短视频平台的举起让直播带货和本地生活服务行业逐渐兴起,并且以其便捷、高效的特点受到了广大用户的欢迎。很多创业者也加入了本地生活服务商的行列中,但有消息传出,抖音本地生活服务商申请入口可能会关闭,由于…

防雷接地电阻和接地网的区别及其应用

接地是电气工程中的一种重要的安全措施,它可以保护电气设备和人员免受雷击和过电压的危害,也可以提高电气系统的运行稳定性和可靠性。接地的基本原理是将电气设备或人体与大地连接成同一电位,从而消除或减小危险电压。 地凯科技接地的实现方式…

掌握你的Mac,iStat Menus带你了解mac系统状态

iStat Menus for mac是一款强大的mac系统状态监控工具,它能够提供实时的系统信息和性能监测,帮助用户全面了解和管理自己的Mac设备。无论是CPU、内存、网络、硬盘还是传感器数据,iStat Menus都能直观地展示,并且支持自定义布局和样…

组装自己的稳定扩散模型

在本文中,我们将利用 Hugging Face Diffusers 库的组件实现自己的稳定扩散模型,可以像 diffuser.diffuse() 一样简单地生成图像。 在线工具推荐: Three.js AI纹理开发包 - YOLO合成数据生成器 - GLTF/GLB在线编辑 - 3D模型格式在线转换 - 可编…

基于AC6969的蓝牙控制RGB彩灯

程序的实现思路:单片机与手机app之间通过蓝牙实现通讯,通过点击屏幕上的对应色块然后app会把对应的RGB值发送到单片机。然后单片机会对数据进行解析然后把数字量转换为模拟量,然后通过PWM控制IO口输出不同的电压以此来达到控制RGB灯 RGB彩灯原…

运动蓝牙耳机哪个品牌好?什么运动耳机好用?运动蓝牙耳机推荐

​运动耳机作为现代人运动时不可或缺的装备,除了能够提供稳固舒适佩戴体验之外,还带来了高品质音质体验。我们在选择运动耳机时,需要考虑到它们的音质、稳定性、舒适度和耐用性等方面,以确保在运动中获得最佳的体验和效果。下面&a…

ubuntu下载vscode并运行程序

如有帮助点赞收藏关注! 如需转载,请注明出处! 好久没有在linux下编译c代码了,由于换了酷炫彩灯的电脑。又要重新安装一次喽。做个记录,可以帮助到有需要的人,接下来不要错过每一个步骤。 我们一起手把手运行…

Yolov8训练数据集过程 + 测试测试集 + 继续训练

做自己第一次使用Yolov8训练的记录 1、下载代码 官网的我没找到对应的视频教程,操作起来麻烦,一下这个链接的代码可以有对应bilibili教程:完整且详细的Yolov8复现训练自己的数据集 选择这个下载: 2、安装需要的包: …

桥梁道路结冰传感器守护出行安全的重要工具

随着冬季的到来,气温逐渐降低,路面和桥梁容易结冰,给人们的出行带来安全隐患。为了解决这一问题, WX-JB2H 桥梁道路结冰传感器应运而生。本文将详细介绍桥梁道路结冰传感器的作用、原理及在冬季出行中的重要性。 一、桥梁道路结冰…

JVS-rules规则引擎导出与导入,确保业务连续性的关键

在复杂的系统环境中,规则和配置的迁移、备份及共享成为了确保业务连续性和一致性的关键过程。不同的环境可能需要相同的规则和配置数据,或者我们可能需要备份这些数据以防万一。JVS规则引擎提供了规则的导出与导入功能,使用户能够在多个环境间…

全排列问题

全排列问题: 求n个元素的全排列,n个元素中允许出现重复元素,通过实例验证算法。 思路: 设R={r1,r2,…,rn}是要进行排列的n个元素,Ri&#xff1…

Java学习路线第一篇:Java基础(1)

Java学习路线图,还不赶紧快来查收~ 这篇则分享Java学习路线第一part:Java基础(1) 从看到这篇内容开始,你就是被选定的天命骚年,将承担起学完Java基础的使命,本使命为单向契约,你可…

位图(bitset)和布隆过滤器

位图将数字映射到比特位上&#xff0c;用0&#xff0c;1来表示数据存在与否。 适用场景&#xff1a;大量数据(2^32次方约为40亿数据&#xff0c;0.5GB)&#xff0c;判断存在与否。 template<size_t N> class Bitset { public:Bitset(){// 在x86下size_t表示四个字节&am…

工行软件开发中心DDD奇文赏析

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 本文的内容和《经济形势下谈建模和伪创新-长点心和长点良心》相关。 关于DDD&#xff08;领域驱动设计&#xff09;&#xff0c;乱七八糟的文章很多。 一些比较明显的宣传文章&#x…

死磕Nacos系列:Nacos是如何更新服务信息的?

前言 说到服务信息&#xff0c;我们还是得回到NamingService&#xff0c;因为这是和NacosServer进行服务注册的核心组件&#xff0c;内部提供了注册、获取Nacos实例的能力。至于其他组件&#xff0c;如Ribbon&#xff0c;在调用时需要所有实例信息来进行负载&#xff0c;那肯定…

性价比高的学生台灯什么牌子好?备考用眼必备护眼台灯推荐

近期&#xff0c;浙江温州市场监督管理局开展了流通领域学生用品质量监督抽查&#xff0c;本期抽检4批LED读写台灯&#xff0c;检出1批产品不合格&#xff0c;不合格检出率为25%。广东久量股份有限公司生产的1款LED时尚无级调光台灯&#xff0c;检出“标记、爬电距离和电气间隙…

Unity 打印每次代码保存耗时

unity每次编辑代码的时候&#xff0c;都需要保存&#xff0c;unity右下角的小圆圈总是转个不停&#xff0c;那么每次编辑代码后&#xff0c;unity到底需要多久时间呢&#xff0c;下面就有代码可以获取 保存时间。 using UnityEngine; using UnityEditor; using UnityEditor.Com…

高功率工业RFID读写器怎么用?

工业读写器相比于通用型读写器&#xff0c;IP防护等级更高&#xff0c;抗干扰性能也更强&#xff0c;能够适应工业应用中的各种恶劣环境。在具体应用中&#xff0c;工业读写器根据功率大小也可分为大功率、中功率&#xff0c;功率大小直接影响读距远近&#xff0c;因此在实际应…

轻松配置PPPoE连接:路由器设置和步骤详解

在家庭网络环境中&#xff0c;我们经常使用PPPoE&#xff08;点对点协议过夜&#xff09;连接来接入宽带互联网。然而&#xff0c;对于一些没有网络专业知识的人来说&#xff0c;配置PPPoE连接可能会有些困难。在本文中&#xff0c;我将详细介绍如何轻松配置PPPoE连接&#xff…

Java代码生成器,一键在线生成,支持自定义模板

【Java代码生成神器】自动化生成Java实体类、代码、增删改查功能&#xff01;点击访问 推荐一个自己每天都在用的Java代码生成器&#xff01;这个网站支持在线生成Java代码&#xff0c;包含完整的Controller\Service\Entity\Dao代码&#xff0c;完整的增删改查功能&#xff01…