当前位置: 首页 > news >正文

华为HCIE课堂笔记第十二章 ICMPv6和NDP协议

第十二章  ICMPv6和NDP

12.1 背景

ICMPv6协议用于IPV6协议的消息传递:地址解析、重复地址检测、无状态地址配置、NDP协议、路径MTU发现。

12.2 ICMPv6介绍

ICMPv6的头部字段包含Type字段、Code字段、校验和字段。

消息分为两种:

  1. 查错消息:Type字段(8bit),最高bit位为0的消息,即Type字段取值为0-127。主要的消息种类如下:
    1. 目的不可达,Type为1
    2. 数据包过长,Type为2,用于路径MTU发现
    3. 超时,Type为3
    4. 参数错误,Type 类型为4
  2. 信息消息:Type字段的最高bit位为1的消息,即Type字段取值范围是128-255。常见的消息类型如下:
    1. ICMPv6的请求消息,消息类型为128
    2. ICMPv6的应答消息,消息类型为129

邻居发现(RFC2461和RFC4861)如下:

    1. Type=133,路由器请求(Router Solicitation)
    2. Type=134,路由器公告(Router Advertisement)
    3. Type=135,邻居请求(Neighbor Solicitation)
    4. Type=136,邻居公告(Neighbor Advertisement)
    5. Type=137,重定向  (Redirect)

组播侦听者发现协议(RFC2710RFC3810),组播发现协议有两个版本MLDv1MLDv2,对应IGMPv2IGMPv3,原理相同,使用报文如下:

    1. Type=130,查询消息
    2. Type=131,报告消息
    3. Type=132,离开消息
    4. Type=143,MLDv2报告消息

12.3 ICMPv6报文的应用

12.3.1 Path-MTU发现(路径MTU发现)

IPV6的通信仅在源端进行报文的分片操作,路径中的设备不进行报文分片仅依据基本IPV6头部转发数据,提高转发效率。因此源端需要探测出源端到达目的端的最小MTU值。

原理:源端按照自己的MTU值发送数据给到目的端,沿途经过的设备如果出现报文的大小大于自己的MTU值时,则向源端发送Type类型为2的ICMPv6报文,表示数据包过大,并提供本地的MTU值,直到报文到达目的端,因此源端获取了整个路径上的最小MTU值,按照最小MTU值转发数据。

12.4 NDP协议邻居发现协议

12.4.1 路由器发现(RA和RS报文)

  1. 路由器发现:主机选择链路上的哪个路由器作为缺省网关,通过RA报文通告参数。
  2. 前缀发现:路由器通过RA报文通告自己的前缀,主机根据获取前缀配置IPv6地址。(无状态自动配置)
  3. 参数发现:路由器通过RA报文通告相应的参数:缺省跳数限制,地址配置方式。
  4. RA报文的发送方式:
    1. 周期发送,发送间隔默认200s-600s之间
    2. 触发发送,主机发送RS报文之后,路由器通过RA响应。
  5. 主机通过接收到RA报文之后,产生缺省路由,缺省路由下一跳指向路由器的该链路的链路本地地址。

12.4.2 地址解析

1、PC1访问PC2,首先进行MAC地址解析,发送NS报文(邻居请求报文),目的IP地址为PC2的接口的IPV6的地址对应的被请求节点组播组地址。

2、PC2收到后,确认目的IPv6组播地址是自己加入的组播组,因此相应ICMPv6的NA报文,单播将自己的MAC地址返回给PC1

12.4.3 邻居发现

存在5个状态:

  1. Incomplete(未完成):已经发送了NS报文,但是没有收到NA报文,本地的邻居表中不存在邻居的MAC地址,表项不完整
  2. Reachable状态(可达):收到邻居的NA报文,本地表项完整(包含MAC地址),在可达时间内(默认30s)
  3. Stale状态(陈旧):邻居表项闲置30s没有进行通信,则邻居状态从Reachable状态切换为Stale状态
  4. Delay状态(延迟):在Stale状态本地发送IPV6报文和NS报文给到邻居,进入到Delay状态等待回复。如果收到了NA回复,则再次进入到Reachable可达状态。如果规定时间没有收到NA回复,则进入到Probe状态。
  5. Probe状态(探测):在该状态连续3秒,每秒一次,发送三个NS报文进行邻居探测,如果规定时间有响应,则邻居状态切换为可达状态,如果没有响应,则删除表项。

12.4.5 重复地址检测

任何一个单播地址在使用前都需要进行重复地址检测,此时单播地址的状态是实验地址:

  1. PC1与PC2地址重复,PC1新配置,PC2早配置(PC2的地址已经经过了重复地址检测)
  2. PC1通过NS报文进行探测,NS报文中的源IPV6地址为::,目的IPv6地址为待检测的IPV6地址的被请求节点组播组地址。
  3. 如果存在地址冲突,PC2则会响应该NS报文,通过NA报文告知PC1,报文中源IPV6地址是重复地址(已通过检测的),目的地址所有节点组播地址。PC1收到后,确定接口的地址存在地址冲突
  4. 特殊情况:双方同时使用一个相同地址,两边的地址状态都是实验地址,一边先发发送NS报文,则另一边收到后不会发送NS报文,也不会发送NA,直接放弃使用该地址。(先后问题)

12.4.6 重定向功能

和IPV4情况相同

相关文章:

  • 云计算:OpenStack 分布式架构部署(单控制节点与多计算节点)
  • Visual Studio调试模式下无法使用右键菜单将ppt转换到pdf
  • React 实现 Step组件
  • 少儿编程 中国电子学会图形化编程2022年3月等级考试Scratch二级真题解析(选择题、判断题)
  • 一个可以用于生产环境得PHP上传函数
  • YoloV5改进策略:基于频域多轴表示学习模块|全网首发|高效涨点|代码注释详解
  • 基于多反应堆的高并发服务器【C/C++/Reactor】(中)子线程 WorkerThread的实现 和 线程池ThreadPool的初始化
  • Wnmp本地部署结合内网穿透实现任意浏览器远程访问本地服务
  • 银行十大主题域
  • MySQL之视图案例
  • ASP.NET可视化流程设计器源码
  • FPGA时序分析与时序约束(三)——I/O接口约束
  • 数脉观察二丨 详解CroPoolv2.0锁仓收益机制 文末附锁仓教程
  • 软件测试|测试平台开发-Flask 入门:编写第一个简单 Web 应用
  • 华为OD机试 - 寻找最优的路测线路(Java JS Python C)
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • java中的hashCode
  • Phpstorm怎样批量删除空行?
  • 不用申请服务号就可以开发微信支付/支付宝/QQ钱包支付!附:直接可用的代码+demo...
  • 从0实现一个tiny react(三)生命周期
  • 对JS继承的一点思考
  • 浮现式设计
  • 蓝海存储开关机注意事项总结
  • 聊一聊前端的监控
  • 区块链分支循环
  • 使用 QuickBI 搭建酷炫可视化分析
  • 微服务框架lagom
  • 小李飞刀:SQL题目刷起来!
  • 自制字幕遮挡器
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • ​一、什么是射频识别?二、射频识别系统组成及工作原理三、射频识别系统分类四、RFID与物联网​
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • (C语言)输入一个序列,判断是否为奇偶交叉数
  • (LNMP) How To Install Linux, nginx, MySQL, PHP
  • (Redis使用系列) Springboot 整合Redisson 实现分布式锁 七
  • (板子)A* astar算法,AcWing第k短路+八数码 带注释
  • (附源码)spring boot儿童教育管理系统 毕业设计 281442
  • (附源码)spring boot智能服药提醒app 毕业设计 102151
  • (力扣)1314.矩阵区域和
  • (免费领源码)Java#Springboot#mysql农产品销售管理系统47627-计算机毕业设计项目选题推荐
  • (七)Java对象在Hibernate持久化层的状态
  • (四)Linux Shell编程——输入输出重定向
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .NET CF命令行调试器MDbg入门(四) Attaching to Processes
  • .net 验证控件和javaScript的冲突问题
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .NET企业级应用架构设计系列之技术选型
  • .NET下ASPX编程的几个小问题
  • @NestedConfigurationProperty 注解用法
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...
  • [1204 寻找子串位置] 解题报告
  • [Android]RecyclerView添加HeaderView出现宽度问题
  • [EFI]Dell Latitude-7400电脑 Hackintosh 黑苹果efi引导文件
  • [EMWIN]FRAMEWIN 与 WINDOW 的使用注意
  • [Hadoop in China 2011] Hadoop之上 中国移动“大云”系统解析