IPv6(五)

文章目录

  • IPv6协议
    • ICMPv6
    • NDP邻居发现

IPv6协议

ICMPv6

IPv6的基础协议之一

在IPv4中,Internet 控制报文协议 ICMP 向源节点报告关于向目的地传输IP数据包过程中的错误和信息。它为诊断、信息和管理目的定义了一些消息,如:目的不可达、数据包超长、超时、回应请求和回应应答等。

在IPv6中,ICMPv6除了提供ICMPv4常用的功能之外,还是其它一些功能的基础,如邻接点发现、无状态地址配置(包括重复地址检测)、PMTU发现等。

ICMPv6的协议类型号(即IPv6报文中的Next Header字段的值)为58

  • Type:表明消息的类型,0至127表示差错报文类型,128至255表示消息报文类型。
  • Code:表示此消息类型细分的类型。
  • Checksum:表示ICMPv6报文的校验和。
  • type:
    0-127表示差错报文类型
    128-255表示消息报文类型
    128 : Request
    129 : Reply
    133 : RS //寻找路由器的报文
    134 : RA //路由器发送的报文
    135 : NS //类似于ARP-Request报文
    136 : NA //类似于ARP-Reply报文
    137 : ICMPV6重定向

NDP邻居发现

邻居发现协议NDP(Neighbor Discovery Protocol)是IPv6协议体系中一个重要的基础协议

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


邻居通告报文:

  • 邻居请求报文NS:类型字段值为135
  • 邻居通告报文NA:类型字段值为136
  • 在路由器发现中使用了两种ICMPv6报文:路由器通告和路由器请求报文:
  • 路由器通告RA:类型字段值为134
  • 路由器请求RS:类型字段值为133
  • 重定向使用了一种新的ICMPv6报文:重定向报文。重定向报文类型字段值为137




地址解析

类似于IPv4中的ARP协议

  • 基于ICMPv6实现
  • 包括NS报文和NA报文
#PC1 发送NS消息(135)请求
Source IP:自己的IPv6地址                 目的IP:PC2的请求节点组播地址#(物理接口的地址可以推出来请求节点组播地址)
Source MAC:自己的MAC                    目的MAC:33开头的组播MAC地址
target address:PC1的IP地址
Option:自己的MAC地址

#PC2 回应NA消息(136)应答,回复的时候发送的是单播报文
Source IP:自己的IPv6地址                 目的IP:PC1的IPv6地址
Source MAC:自己的MAC                    目的MAC:PC1的MAC
target address:PC2的IP地址
Option:自己的MAC地址

IPv6定义了五种邻居状态

Empty状态为空白状态

  • 未完成(Incomplete)
  • 可达(Reachable)
  • 陈旧(Stale)
  • 延迟(Delay)
  • 探查(Probe)
#下面以A、B两个邻居节点之间相互通信过程中A节点的邻居状态变化为例(假设A、B之前从未通信),说明邻居状态迁移的过程。
1.A先发送NS报文,并生成缓存条目,此时邻居状态变为Incomplete。
2.若B回复NA报文,则邻居状态由Incomplete变为Reachable,如固定时间后未收到NA报文则邻居状态由Incomplete变为Empty,即删除表项。此状态可以通信
3.邻居链路空余固定时间后,邻居状态由Reachable变为Stale,即未知是否可达。
4.如果在Reachable状态,A收到B的非请求NA报文,且报文中携带的B的链路层地址(NAC地址)和表项中不同,则邻居状态马上变为Stale。
5.在Stale状态若A要向B发送数据,则邻居状态由Stale变为Delay,并发送NS请求。如果有NA应答,变成Reachable。
6.再经过一段固定时间后,邻居状态由Delay变为Probe,期间若有NA应答,则邻居状态由Delay变为Reachable。
7.在Probe状态,A每隔一定时间间隔发送单播NS,发送固定次数后,有应答则邻居状态变为Reachable,无应答则邻居状态变为Empty,即删除表项。

dis ipv6 neighbors    //查看IPv6邻居状态

debugging ipv6 nd    //开启Debug测试
terminal debugging    //终端显示Debug信息
terminal monitor    //监控显示Debug信息

DAD重复地址检测

IPv4使用免费ARP进行重复地址的检测、IPv6使用DAD进行地址冲突的检测

  • 基于ICMPv6实现

  • 包括 NS 报文和 NA 报文

  • 在进行DAD检测是,一个IPv6单播地址在分配给一个接口之后且通过重复地址检测之前称为试验地址(Tentative Address)。此时该接口不能使用这个试验地址进行单播通信,但是仍然会加入两个组播组:ALL-NODES组播组和实验地址所对应的Solicited-Node组播组。

  • IPv6重复地址检测技术和IPv4中的免费ARP类似:节点向一个自己即将使用的试验地址所在Solicited-Node组播组发送一个以该试验地址为请求的目标地址的NS报文,如果收到某个其他站点回应的NA报文,就证明该地址已被网络上使用,节点将不能使用该实验地址通讯,如果没有收到某个其他站点发送的NA报文,那么这个试验地址转换为正式地址就可以使用了

#DAD检测过程
1、PC1的IPv6地址为2001::1为新配置的地址,即试验地址,PC1向2001::1所在的 Solicited-Node 组播组发送一个以 2001::1 为请求的目标地址的NS报文进行冲突检测,由于2001::1报文的源地址为未指定地址,PC2收到该NS报文后,有两种处理方法
	(1)、如果PC2发现2001::1是自身的一个试验地址,则PC2放弃使用该地址作为接口地址,并且不会发送NA报文
	(2)、如果PC2发现2001::1是自己已经在使用的地址,PC2会向该地址所在的All-Node组播组发送一个NA报文,消息中包含			2001::1。之后PC1收到消息之后就会停止使用该地址



路由发现

  • 基于ICMPv6实现
  • 发现与本地链路相连的路由器
  • 获取与地址自动配置相关的前缀和其他配置参数
  • 包括RA和RS报文

在IPv6中,IPv6地址可以支持无状态的自动配置,即主机通过某种机制获取网络前缀信息,然后主机自己生成地址的接口标识部分。路由器发现功能是IPv6地址自动配置功能的基础,主要通过以下两种报文实现:

  • 路由器通告RA(Router Advertisement)报文:每台路由器为了让二层网络上的主机和路由器知道自己的存在,定时都会组播发送RA报文,RA报文中会带有网络前缀信息,及其他一些标志位信息。RA报文的Type字段值为134。
  • 路由器请求RS(Router Solicitation)报文:很多情况下主机接入网络后希望尽快获取网络前缀进行通信,那么此时主机可以立刻发送RS报文,网络上的路由器将回应RA报文。RS报文的Type字段值为133。


    RA消息的源IP:自己 的Link-local地址 目的地址是FF02::1
#当存在以下情况时,忽略RA发送的前缀
1、ICMPv6里的Option字段的Flag中的Auto未置位
2、前缀与已有地址前缀重复(包括Link-local地址)
3、RA报文选项中 Preferred lifetime 时间大于 Valid lifetime
4、前缀长度与接口ID长度之和不等于128位
#除以上情况外,主机获得前缀同时也获取一些相关的时间参数
1、Preferred time 发起通讯的有效时间
2、valid lifetime 原有通讯的有效时间
#主机会周期新的发送RA报文,并根据此报文来更新自己的时间参数




ICMPv6中的Flag字段

M位置1:表示有状态–DHCPv6
M位置0:表示无状态–RA消息自动获取
O位置1:表示通过无状态获取到 IP 地址,但是通过有状态的方式获取到其他信息、比如DNS




ICMPv6----RA消息中的Flag字段:

  1. Cur Hop Limit:64----该字段用于帮助主机完成跳数限制。当PC使用该RA通告的前缀构建IPv6地址后,该PC发送的IPv6报文的跳数限制被设置为该值(64)
  2. Managed address configuration----M位默认为0,0时收到该RA的主机使用RA中包含的IPv6前缀用于无状态地址自动配置
    ----使用如下命令,可将该值设置为1----ipv6 nd autoconfig managed-address-flag
    ----当该值为1时,收到该RA的主机将采用有状态自动配置,也就是DHCPv6的方式来获取IPv6地址
  3. Other Configuration,默认为0,表示主机不应该使用有状态自动配置机制来配置除了IPv6地址外的其他参数
    ----使用命令:ipv6 nd autoconfig other-flag----将该值置1,则主机需使用DHCPv6来配置除了IPv6地址外的其他信息,如DNS,域名等,但是IPv6地址还是无状态自动获取的
  4. Router Lifetime:1800----单位是秒,主机将路由器视为缺省路由器的时间。该计时器到计数为0时,该路由器将不会出现在主机的缺省网关列表中



    对于M位和O位,配置强制置1命令之后需要重新使能一下接口来进行实现

Author:DC

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

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

相关文章

CefSharp_Vue交互(Element UI)_WinFormWeb应用---设置应用透明度(含示例代码)

一、界面预览 1.1 设置透明(整个页面透明80%示例) 限制输入值:10-100(数字太小会不好看见) 1.2 vue标题栏 //注册类与js调用 (async function(

11年计算机考研408-数据结构

设执行了k次。 解析: d要第一个出,那么abc先入栈,d入栈然后再出栈,这前面是一个固定的流程,后面就很灵活了,可以ecba,ceba,cbea,cbae。 答案是4个序列。 解析&#xff1a…

CSS 复合选择器简单学习

目录 1. Emmet 语法 1.1 快速生成 HTML 结构语法 1.2 快速生成 CSS 样式 1.3 格式化工具 2. 调试 2.1 打开调试工具 2.2 使用调试工具 3. 复合选择器 3.1 后代选择器 3.2 子选择器 3.3 并集选择器 3.4 伪类选择器 3.3.1 链接伪类选择器 3.3.2 :focus 伪类选择器 …

OpenCV特征检测(5)检测图像中的角点函数cornerMinEigenVal()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 计算用于角点检测的梯度矩阵的最小特征值。 该函数类似于 cornerEigenValsAndVecs,但它计算并存储协方差矩阵导数的最小特征值&…

帧率和丢帧分析理论

一、丢帧问题概述 应用丢帧通常指的是在应用程序的界面绘制过程中,由于某些原因导致界面绘制的帧率下降,从而造成界面卡顿、动画不流畅等问题。以60Hz刷新率为例子,想要达到每秒60帧(即60fps)的流畅体验,每…

NLP 主要语言模型分类

文章目录 ngram自回归语言模型TransformerGPTBERT(2018年提出)基于 Transformer 架构的预训练模型特点应用基于 transformer(2017年提出,attention is all you need)堆叠层数与原transformer 的差异bert transformer 层…

1--SpringBoot外卖项目介绍及环境搭建 详解

目录 软件开发整体流程 软件开发流程 角色分工 软件环境 苍穹外卖项目介绍 项目介绍 产品原型 技术选型 开发环境搭建 前端环境搭建 后端环境搭建 完善登录功能 导入接口文档 Swagger 介绍 使用方式 常用注解 软件开发整体流程 软件开发流程 需求分析&#x…

Shiro-721—漏洞分析(CVE-2019-12422)

文章目录 Padding Oracle Attack 原理PKCS5填充怎么爆破攻击 漏洞原理源码分析漏洞复现 本文基于shiro550漏洞基础上分析,建议先看上期内容: https://blog.csdn.net/weixin_60521036/article/details/142373353 Padding Oracle Attack 原理 网上看了很多…

ElasticSearch-2-核心语法集群高可用实战-Week2

ES批量操作 1.批量获取文档数据 这里多个文档是指,批量操作多个文档,搜索查询文档将在之后的章节讲解 批量获取文档数据是通过_mget的API来实现的 (1)在URL中不指定index和type 请求方式:GET 请求地址:_mget 功能说明 &#…

【C++ Primer Plus习题】16.10

大家好,这里是国中之林! ❥前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。有兴趣的可以点点进去看看← 问题: 解答: #include <iostream> #include <string> #include <…

java自定义线程池详解

目录 线程池使用线程池的目的线程池工作原理线程池常用方法自定义线程池等待队列拒绝策略线程工厂 线程池 使用线程池的目的 资源复用&#xff0c;降低开销。重复利用已创建的线程&#xff0c;避免线程频繁地创建和销毁带来的性能开销。方便线程的可管理性。线程是稀缺资源&a…

【GVINS】

【GVINS】 1. GVINS的系统特点2. GVINS的融合导航存在问题3. GVINS的信号的组成4. GVINS的信号的组成 原理推导知乎 1. GVINS的系统特点 概述了一种名为GVINS的系统&#xff0c;它旨在解决视觉-惯性里程计&#xff08;VIO&#xff09;在长时间运行时出现的漂移问题。GVINS通过…

三菱变频器Modbus-RTU 通讯规格

能够从变频器的 RS-485 端子使用 Modbus-RTU 通讯协议&#xff0c;进行通讯运行和参数设定。 NOTE: 1、使用 Modbus-RTU 通讯协议时&#xff0c;请设定Pr.549 协议选择 “1” 2、从主机按地址0(站号0)进行hodbus-RTU通讯时&#xff0c;为广播通讯&#xff0c;变频器不向主机发…

软件设计画图,流程图、甘特图、时间轴图、系统架构图、网络拓扑图、E-R图、思维导图

目录 一、流程图 二、甘特图 三、时间轴图 四、系统架构图 五、网络拓扑图 六、E-R图 七、思维导图 一、流程图 是一种用符号表示算法、工作流或流程的图形。用不同的图形表示不同含义&#xff0c;如椭圆表示开始和结束、菱形表示判断等。 画图工具WPS office 应用市场…

idea启动oom了解决

解决 Error:java: java.lang.OutOfMemoryError: WrappedJavaFileObject[org.jetbrains.jps.javac.InputFileObject[file:///D:/mingan/pb/backend/src/main/java/com/cy/backend/service/impl/StorageServiceImpl.java]]pos36199: WrappedJavaFileObject[org.jetbrains.jps.j…

松材线虫目标检测数据集,12522张图-纯手工标注

松材线虫目标检测数据集&#xff0c;12522张图像&#xff0c;专家纯手工标注。 松材线虫目标检测数据集 数据集描述 该数据集是一个专门用于松材线虫&#xff08;Bursaphelenchus xylophilus&#xff09;检测的数据集&#xff0c;旨在帮助研究人员和开发者训练和评估基于深度…

地平线4登录xbox后提示需要登录档案怎么解决

这个游戏是真nt&#xff08;在联机上&#xff09;&#xff0c;典型搞联机2小时游玩半小时&#xff0c;多半时间都花费在联机上了&#xff0c;不是为了联机和朋友跑车&#xff0c;早给他卸载了。 本人的游戏问题&#xff1a;看了一些视频感觉没什么作用&#xff0c;我的现象就是…

gcc配合cython编译python源代码

以前我们一般用Nuitka或者Pyinstaller来将python源码编译成二进制可执行文件。今天我们学习如何直接用gcc来编译。 很简单的一个python程序&#xff0c;结构如下。包含一个model.py和main.py 步骤1&#xff1a;处理main.py 处理main.py。即主程序入口 cython -D -2 --embe…

BGP 路由反射器

转载&#xff1a;BGP 路由反射器 / 实验介绍: / 原理概述 缺省情况下&#xff0c;路由器从它的一个 IBGP 对等体那里接收到的路由条目不会被该路由器再传递给其他IBGP对等体&#xff0c;这个原则称为BGP水平分割 原则&#xff0c;该原则的根本作用是防止 AS 内部的 BGP 路由…

化学分子结构检测系统源码分享

化学分子结构检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer…