IPv6 基础协议-NDP

IPv6 基础协议报文

何为基础协议?像v4中的icmp、arp、hdcp之类的
在v6中只需要NDP协议,他是通过ICMPv6报文完成的,她能够实现邻居发现、无状态地址检测、重复地址检测、PMTU等功能
在这里插入图片描述

RS(133)RA(134)NS(135)NA(136)重定向(137)
地址解析✔️✔️
前缀公告✔️✔️
前缀重编址✔️✔️
DAD✔️✔️
路由重定向✔️

如上四种报文很重要:
 RS(Router Solicitation):路由器请求报文
 RA(Router Advertisement):路由器通告报文
 NS(Neighbor Solicitation):邻居请求报文
 NA(Neighbor Advertisement):邻居通告报文

🐴1. 地址解析

 IPv6的地址解析不再使用ARP,也不再使用广播方式。
 地址解析在三层完成,针对不同的链路层协议可以采用相同的地址解析协议
 通过ICMPv6(类型135的NS及类型136的NA报文)来实现地址解析。
 NS报文发送使用组播的方式,报文的目的IPv6地址为被请求的IPv6地址对应的“被请求节点组播地址”,报文的目的MAC为组播MAC。
 采用组播的方式发送NS消息相比于广播的方式更加的高效,也减少了对其他节点的影响和对二层网络的性能压力。
 可以使用三层的安全机制(例如IPSec)避免地址解析攻击。

通信过程:

R1请求R2的mac地址
在这里插入图片描述

首先R1向R2发送NS报文↓
在这里插入图片描述

邻居请求(Neighbor Solicitation)(组播)
 Type=135,code=o
 Target Address 需要解析的IPv6地址


然后R2回复NA报文↓

邻居请求(Neighbor Advertisement)(单播)
 Type=136,code=o
 R标志(Router flag)表示发送者是否为路由器,如果1则表示是;
 S标志(Solicited fag)表示发送邻居通告是否是响应某个邻居请求如果1则表示是(0例如路由器或PC重启后主动发送NA邻居通告,就不是回应其他人的NS,类似免费ARP):
 O标志(Overide flag)表示邻居通告中的消息是否覆盖已有的条目信息,如果1则表示是;
 Target Address 所携带的链路层地址对应的IPv6地址
 最重要的MAC地址再Options中

组播报文这样封装的好处是
在这里插入图片描述

 目的mac是一个组播mac,目的ip也是一个组播IP,因为我们知道要请求的目标ip地址是多少,所以能够根据他的ip地址计算出组播mac和组播ip,目标设备由于配置了这个要访问的地址,所以是自动加入这个组播地址的,当其他计算机收到此报文后,由于并不在这个组播组中,所以当看到组播mac地址,而自己并不在组播组中,因此网卡直接丢弃不再往下看,节省设备计算资源。(如何生成组播mac与组播IP查看【2 IPv6的地址类型】)

附上两个实际的报文 ↓ 可对应上文查看
在这里插入图片描述

在这里插入图片描述

当拿到mac地址后IPv6不再像IPv4使用ARP表存储IP与MAC映射,而是维护一张IPv6邻居表

dis ipv6 neighbors  //查看邻居缓存表

在这里插入图片描述

 其中能够查看对方地址、状态、链接时间等。NDP还具有邻居状态跟踪功能,具体下一篇会介绍
相比v4 有和优势 ?
 V4 是用arp 广播实现地址解析和重复地址检测
  ① v6 是用组播形式 ,减轻设备性能压力
  ② v6 在三层完成地址解析,适用更多的链路层(介质独立性)
  ③ v6 在三层完成解析,可以使用自身ipsec安全认证机制提高安全性,避免类似v4中的arp欺骗

🐷2. 邻居状态跟踪

实际通讯中邻居表会存在中状态分别是:
INCOMPLETE 未完成,邻居请求已经发送到目标节点的请求组播地址,但没有收到邻居的通告;
REACHABLE 可达,收到确认,不续再发包确认;
STALE 陈旧,从收到上一次可达性确认后过了超过30s:
DELAY 延迟,在stale状态后发送过一个报文,并且5s内没有可达性确认
PROBE 探查,每隔1s重传邻居请求来主动请求可达性确认,直到收到确认。
在这里插入图片描述

绿色箭头标识正常流程
注意1:像ARP报文一样,业务报文并不能刷新邻居表项。邻居表项只能靠NDP(icmpv6报文)刷新。
注意2:即使一直通信,状态仍然会变迁到stale–delay,只是这个过程是短暂的。因为发送NS请求后,一旦对方回复了NA则状态又被刷新到Reachable。
注意3:如果一直通信,且双方链路正常,则会一直在Reachable—>Stale—>Delay 状态循环变迁。只是停留在Stale和Delay状态时间很短。
注意4:邻居状态是Reachable、Stale、Delay、Probe时,表项依然有效,依然可以按邻居表封包发包。Incomplete不可用

🐱3. 无状态自动配置

 IPv6获取地址的方式分为手动自动
 自动又分为有状态无状态自动配置,有状态就像DHCPv6,无状态自动配置就是今天要说到的一种方法(缩写SLAAC)

如何理解有状态、无状态?
 像DHCPv6,他有个服务器给下端设备分配地址,同时服务器还要维持地址表,比如给谁分配了哪个地址,租期多长是否续约,可以理解为要维持一个状态
而无状态,他是根据下发的前缀自动生成的,不需要别人维护

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

在这里插入图片描述

 链路上的路由器会定期发送RA报文,收到RA报文的主机将加入默认路由表中,根据路由器RA中携带的前缀信息通过软件算法或EUI-64生成IPv6地址
在这里插入图片描述
在这里插入图片描述

 在前缀中又两个时间字段,优选时间(Preferred Lifetime)和可用时间(Valid lifetime)
 一般可用时间大于优选时间
 当地址处于优选时间内(优先阶段),地址可以任意使用
 当地址超过了优选时间但没超过有效时间(废弃阶段),这个地址虽然能用但不能再主动访问,只能被当作目的地址
 如果超过可用时间还没有续租,则进入不可用阶段,回收地址
 由于路由器会每隔250s(可选250s-650s)一个周期下发前缀,如果设备一直在线则会持续收到路由器的RA报文来刷新优选时间,只有长时间不通信或长时间关机才有可能进入废弃阶段及不可用

报文中常用的几个flags位

在这里插入图片描述
Managed address configuration:M位默认为0,为0时,收到该RA的主机使用RA中包含的IPv6前缀用于无状态地址自动配置。当为1时表示采用有状态配置,也就是DHCP
Other Configuration:Other-Config-Flag,默认为0,表示主机不使用DHCPv6 配置DNS、域名等其他参数。
Router Lifetime:单位是秒,主机将路由器视为缺省路由器的时间。主机使用路由器link-local地址作为网关,并生成缺省路由,缺省路由有效时间1800s。周期性的RA报文会刷新该时间。

 因为无状态配置只能配置地址不能指定DNS域名等其他参数,此时可以使用M=0,O=1的方法,也就是前缀获取地址,dhcp获取其他配置

ipv6 nd autoconfig managed-address-flag   //设置Managed address configuration的值ipv6 nd autoconfig other-fag   //设置Other Configuration的值

🐮4. 重复地址检测DAD

 所有单播地址都要做DAD检测 (包括link-local)
 会使用到NS与NA报文完成交互过程
 在IPv6中检测重复地址的思路和v4差不多,只不过v6是通过特殊的NS报文请求自己的地址,v4是通过arp报文请求自己地址
在这里插入图片描述
 和正常NS比这里的NS报文原地是::也就是未指定地址,把要检测的地址放在报文中

如果两个地址冲突,则会收到NA回包
在这里插入图片描述

再查看接口地址
在这里插入图片描述
会发现地址后面有一个Duplicate,表示地址冲突,处于不能用的状态

🦝5. 重定向

在这里插入图片描述

重定向有专用的重定向报文,类型是137
 Target Address是更好的路径下一跳地址。
 Destination Address是需要重定向转发的报文的目的地址,也就是最终想访问的目标的IP
在这里插入图片描述

🐹6. PMTU发现

 IPv6在转发过程中是不进行分片的,而是在源节点进行分片,在目的节点进行组装
所以我们需要探测出整个链路中最小MTU称为PMTU,在源端按照最小MTU进行切片
那又是如何探测最小的PMTU呢?
在这里插入图片描述

 R1先以自己 的MTU为大小发包,当R3收到报文时发现报文过大回复ICMP error报文告诉R1报文太大请发1300的包,R1重新发送1300大小的包,此包顺利到达终点,R3回复R1PMTU为1300
PMTU最小为1280bytes(IPv6要求链路层所支持的MTU最小为1280)

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据库原理及应用(MySQL版-李月军)-习题参考答案

数据库原理及应用(MySQL版)-微课视频版 习题参考答案 习 题一 一.选择题 1、D 2、C 3、C 4、B 5、D 6、B 7、A 8、B 9、C 10、A 11、B 12、C 13、①A②B③C 14、①E②B 15、①B②C③B 16、B 17、A 18、D 二.填空题 1、文件…

用Python开启人工智能之旅(四)深度学习的框架和使用方法

第四部分:深度学习的框架和使用方法 用Python开启人工智能之旅(一)Python简介与安装 用Python开启人工智能之旅(二)Python基础 用Python开启人工智能之旅(三)常用的机器学习算法与实现 用Pyt…

洛谷 P1725:琪露诺 ← 单调队列+DP

【题目来源】https://www.luogu.com.cn/problem/P1725【题目描述】 在幻想乡,琪露诺是以笨蛋闻名的冰之妖精。 某一天,琪露诺又在玩速冻青蛙,就是用冰把青蛙瞬间冻起来。但是这只青蛙比以往的要聪明许多,在琪露诺来之前就已经跑到…

win11永久修改pdf默认打开方式

电脑总是重启或过一阵子就自动修改pdf文件打开方式为浏览器打开,按照传统方式 右键→属性,修改打开方式,不好使 得用更根本的方法!打开设置,找到 应用→默认应用 (或者 "winR"打开运行&#xff0…

解密MQTT协议:从QOS到消息传递的全方位解析

1、QoS介绍 1.1、QoS简介 使用MQTT协议的设备大部分都是运行在网络受限的环境下,而只依靠底层的TCP传输协议,并不 能完全保证消息的可靠到达。 MQTT提供了QoS机制,其核心是设计了多种消息交互机制来提供不同的服务质量,来满足…

跨语言数据格式标准化在 HarmonyOS 开发中的实践

文章目录 前言数据格式标准化的意义数据传递中的痛点标准化的优势 JSON 与 Protocol Buffers 的比较JSONProtocol Buffers HarmonyOS 跨语言数据传递示例示例代码:定义 Protocol Buffers 消息格式生成 Java 和 C 代码示例代码:Java 端序列化与传递数据C …

IPsec VPN配置实验(固定地址)

目录 实验需求 基础配置 配置第一阶段 IKE SA 配置第二阶段 IPsec SA 测试结果 清除IKE / IPsec SA命令 注意 就是IPsec的实验配置的话,它们两端的IP地址是固定的 那么就用第一阶段的主模式(Main Mode) 和第二阶段的快速模式&#xf…

Bert中文文本分类

这是一个经典的文本分类问题,使用google的预训练模型BERT中文版bert-base-chinese来做中文文本分类。可以先在Huggingface上下载预训练模型备用。https://huggingface.co/google-bert/bert-base-chinese/tree/main 我使用的训练环境是 pip install torch2.0.0; pi…

SpringBoot的pom.xml文件中,scope标签有几种配置?

1.compile(默认) 含义:表示该依赖在项目的所有阶段(编译、测试、运行)都需要。 当你依赖一个库,并且这个库是你项目的核心部分,比如 Spring Boot 的spring - boot - starter - web&#xff0c…

FPGA三模冗余TMR工具(二)

学术和商业领域有许多自动化的三模冗余TMR工具,本文介绍当前主流的基于寄存器传输级的三模冗余工具(Register-Transfer Level,RTL),基于重要软核资源的三模冗余工具,以及新兴的基于高层次综合的三模冗余工具…

STM32 I2C通信协议

单片机学习! 文章目录 目录 文章目录 前言 一、I2C通信 1.1 I2C总线 1.2 I2C通信线 1.3 同步半双工且数据应答 1.4 一主多从 二、硬件电路 2.1 I2C电路模型 2.2 I2C接线要求 2.3 I2C上拉电阻作用 三、I2C时序基本单元 3.1 起始终止条件 3.1.1 起始条件 3.1.2 终止条…

【开源】一款基于SpringBoot的智慧小区物业管理系统

一、下载项目文件 项目文件源码链接:https://pan.quark.cn/s/3998d958e182如出现网盘空间不够存的情况!!!解决办法是先用夸克手机app注册,然后保存上方链接,就可以得到1TB空间了!!&…

AMD | GPU | 深度学习 | 如何使用

问题:我在复现代码的时候,发现自己只拥有AMD的GPU,对于一个硬件小白来说,怎么办呢?我想看看怎么使用;解决: 首先要安装支持AMD的GPU的pytorch,pytorch; 使程序在安装了支…

【HarmonyOS】鸿蒙arrayBuffer和Uint8Array互相转化

【HarmonyOS】鸿蒙arrayBuffer和Uint8Array互相转化 前言 ArrayBuffer ArrayBuffer内部包含一块Native内存,该ArrayBuffer的JS对象壳被分配在虚拟机本地堆(LocalHeap)。与普通对象一样,需要经过序列化与反序列化拷贝传递&#x…

从 ELK Stack 到简单 — Elastic Cloud Serverless 上的 Elastic 可观察性

作者:来自 Elastic Bahubali Shetti, Chris DiStasio 宣布 Elastic Cloud Serverless 上的 Elastic Observability 正式发布 — 一款完全托管的可观察性解决方案。 随着组织规模的扩大,一个能够处理分布式云环境的复杂性并提供实时洞察的可观察性解决方…

MySQL数据库的索引

一、数据库的索引 1. 索引的概论 索引(Index)是书籍的重要组成部分,它列出了书中的重要名词及其对应的页码,方便读者快速查找这些名词的定义和含义。通过索引,用户无需通读整本书就能迅速找到所需的信息。 数据库索…

仓颉语言实战——1. 类型

仓颉语言实战——1. 类型 仓颉语言(Cangjie Language)是一个现代化的、简洁而强大的编程语言,它的类型系统为高效开发提供了极大的支持。本篇文章将围绕仓颉语言中的类型系统展开,结合实战代码,帮助开发者快速掌握这一…

【已解决】图片png转ico格式

起因: pyinstaller 打包时需要 ico 格式图片,但是通常手上只有png格式的图片,为了将png转为ico,直接改后缀会报错“struct.error: unpack requires a buffer of 16 bytes”,我就上网搜了一下,发现都是一些…

机器学习详解(11):分类任务的模型评估标准

模型评估是利用不同的评估指标来了解机器学习模型的性能,以及其优势和劣势的过程。评估对于确保机器学习模型的可靠性、泛化能力以及在新数据上的准确预测能力至关重要。 文章目录 1 介绍2 评估准则3 分类指标3.1 准确率 (Accuracy)3.2 精确率 (Precision)3.3 召回率…

Python-网络爬虫

随着网络的迅速发展,如何有效地提取并利用信息已经成为一个巨大的挑战。为了更高效地获取指定信息,需定向抓取并分析网页资源,从而促进了网络爬虫的发展。本章将介绍使用Python编写网络爬虫的方法。 学习目标: 理解网络爬虫的基本…