ICMPv6报文与邻居状态跟踪

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                          

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

计算一个Series序列的n阶滞后相关系数Series.autocorr()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 计算一个时间序列的 n阶滞后自相关系数 Series.autocorr(n) [太阳]选择题 以下代码的说法中正确的是? import pandas as pd s1 pd.Series([1,2,3,4,5,6]) print("【显示】s1:\n",…

【JAVA学习笔记】71 - JDBC入门

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter25/src/com/yinhai/dao_ 一、JDBC概述 1.基本介绍 1. JDBC为访问不同的数据库提供了统一的接口,为使用者屏蔽了细节问题。 2. Java程序员使用JDBC,可以连接任何提供了JDBC驱动…

opencv-利用DeepLabV3+模型进行图像分割去除输入图像的背景

分离图像中的人物和背景通常需要一些先进的图像分割技术。GrabCut是一种常见的方法,但是对于更复杂的场景,可能需要使用深度学习模型。以下是使用深度学习模型(如人像分割模型)的示例代码: #导入相关的库 import cv2 …

VMware上面安装部署centos7镜像系统【详细含镜像】

VMware上面安装部署centos7镜像系统【详细含镜像】 废话不多说直接开始 下载centos7镜像 网上有好多,但是我相信来看小编文章的基本上应该都有centos7的镜像了吧,毕竟咱们都是同一类人,哈哈不卖关子了,小编直接给大家一个百度云盘…

OpenCV项目开发实战--基本图像分割图生成器

欢迎回到我们有关 OpenCV 的系列文章以及我们如何利用其强大的图像预处理功能。在我们之前的文章的基础上,今天我们向您展示如何创建基本的图像分割图生成器。 具体来说,我们的图像掩模应该帮助识别每个像素是否: 背景的一部分(指定值为0)在感兴趣的对象的边缘(指定值 …

答题活动小程序竞品分析

答题小程序竞品分析 答题活动小程序竞品分析 知识竞赛小程序竞品分析 ~ 从2020年开始,机缘巧合,我开始涉及答题小程序的开发,从最初的刷题场景到答题活动场景,已经走过了三个年头,这期间我开发的答题小程序产品也逐…

laravel8中常用路由使用(笔记四)

目录 1、框架路由目录统一放该目录 2、基本路由,路由都调用Route方法 3、控制器使用路由 4、路由参数 5、路由组 6、命名路由 7、命令查看当前路由列表 8、路由缓存 在Laravel 8中,路由定义了应用程序中接受请求的方式。它们定义了URL和相应的控制器方法之间的…

ros2智能小车中STM32地盘需要用到PWM的模块

我做的地盘比较简单,使用了一下模块: 4个直流减速电机,(每个模块用到了一个PWM)---这会通过L298N的ENA,ENB来实现控制 光电对射测速模块(不用PWM) 超声波测距模块(不用PWM,只需要…

Ceph----CephFS文件系统的使用:详细实践过程实战版

CephFS 介绍 是一个基于 ceph 集群 且兼容 POSIX 标准的文件系统。 创建 cephfs 文件系统时 需要在 ceph 集群中添加 mds 服务,该服务 负责处理 POSIX 文件系统中的 metadata 部分, 实际的数据部分交由 ceph 集群中的 OSD 处理。 cephfs 支持以内核模块…

中南大学2021级云计算复习笔记

选择题 20分 10个 填空题 10分 10个 判断题 10分 5个 简答题 20分 4个 编程题 40分 2个 云计算基础 云计算的概念:云计算是一种商业计算模型。它将计算任务分布在大量计算机构成的资源池上,使各种应用系统能够根据需要获取计算力、存储空间和信息服…

Blender学习笔记:做一个小车

文章目录 轮廓车窗轮胎和车灯 教程地址:八个案例教程带你从0到1入门blender【已完结】 轮廓 1 创建立方体,将其拉伸成长方体。Tab进入编辑模式;CtrlR添加一个纵向的循环边;3进入面模式;E选中后上方的面向上拉伸&…

蓝桥杯-动态规划-子数组问题

目录 一、乘积最大数组 二、乘积为正数的最长子数组长度 三、等差数列划分 四、最长湍流子数组 心得: 最重要的还是状态表示,我们需要根据题的意思,来分析出不同的题,不同的情况,来分析需要多少个状态 一、乘积最…

7.前端--CSS-字体属性【2023.11.26】

CSS字体属性 CSS Fonts (字体)属性用于定义字体样式、粗细、大小、和字形。 1.文字样式 CSS 使用 font-style 属性设置文本的风格。 语法: p { font-style: normal; }属性: 2字体粗细 CSS 使用 font-weight 属性设置文本字体的粗细。 语法&#xff1a…

Deep Learning(wu--46)

文章目录 ContentsBeginBasic逻辑回归SGD导数计算图(反向传播)向量化广播numpy Neural Network向量化激活函数梯度下降深层表示反向传播 Contents Begin Basic 逻辑回归 SGD 导数 计算图(反向传播) 向量化 广播 numpy Neural Netw…

嵌入式八股 | 笔试面试 | 校招秋招 | 题目精选

嵌入式八股精华版1.0所有216道题目如下: 欢迎关注微信公众号【赛博二哈】并加入嵌入式求职交流群。提供简历模板、学习路线、岗位整理等 欢迎加入知识星球【嵌入式求职星球】获取完整嵌入式八股。 提供简历修改、项目推荐、求职规划答疑。另有各城市、公…

Grafana采用Nginx反向代理

一、场景介绍 在常规操作中,一般情况下不会放开许多端口给外部访问,特别是直接 ip:port 的方式开放访问。但是 Grafana 的请求方式在默认情况下是没有任何规律可寻的。 为了满足业务需求(后续通过 Nginx 统一一个接口暴露 N 个服务&#xf…

基于Java SSM框架+Vue留学生交流互动论坛网站项目【项目源码+论文说明】计算机毕业设计

基于java的SSM框架Vue实现学生交流互动论坛网站演示 摘要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所…

【开源】基于Vue和SpringBoot的个人健康管理系统

项目编号: S 040 ,文末获取源码。 \color{red}{项目编号:S040,文末获取源码。} 项目编号:S040,文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 健康档案模块2.2 体检档案模块2.3 健…

python爬取招聘网站信息

废话不多说,直接上代码,开箱即用。该文件抓取的是智联招聘网站的招聘信息,可以根据需要设置输入搜索关键词和查找页数,就会得到结果,可以搜索到每个岗位的岗位名称、公司名称、学历要求、公司规模、福利待遇、行业、薪…

【Web】PHP反序列化刷题记录

目录 ①[NISACTF 2022]babyserialize ②[NISACTF 2022]popchains ③[SWPUCTF 2022 新生赛]ez_ez_unserialize ④[GDOUCTF 2023]反方向的钟 再巩固下基础 ①[NISACTF 2022]babyserialize <?php include "waf.php"; class NISA{public $fun"show_me_fla…