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

HCIE学习笔记:IPV6 地址、ICMP V6、NDP 、DAD (更新补充中)

系列文章目录

在这里插入图片描述


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 系列文章目录
  • 前言
  • 一、IPV4、IPv6包头对比
    • 1. IPV4包头
    • 2.IPv6包头
    • 3.IPV6扩展包头
  • 二、IPV6基础知识地址结构、地址分类
  • 三、ICMPV4、ICMPV6
    • 1、 lnternet控制消息协议
    • 2、ICMP差错检测
    • 3、ICMP错误报告
  • 四、 ICMPv6的应用
    • 1、差错报文
      • 1.1、ICMPV6信息报文应用-Ping (ICMPv6 type:128-129)
      • 1.2、ICMPv6差错报文应用-Path MTU发现(ICMPv6 type:2)
    • 2、信息报文(NDP使用133-137的ICMP报文)
      • 2.1、ICMPv6消息报文应用:NDP包括 (ICMPv6 type:133-137)
      • 2.2、NDP邻居发现协议的功能
        • 1、路由器发现: (使用ICMP的RS+RA报文)发现链路上的路由器,获得路由器通告的信息。
          • 1 .1路由器发现流程-主机请求触发
          • 1.2、路由器发现流程-路由器周期性发送
        • 2、地址解析:请求目的网络地址对应的数据链路层地址,类似IPv4的ARP。(使用ICMP的NS+NA报文)
        • 3、无状态自动配置:通过路由器通告的地址前缀,终端自动生成IPv6地址。
        • 4、重定向:告知其他设备,到达目标网络的更优下一跳。
  • 五、 IPv6单播地址业务流程
    • 1、邻居发现协议NDP
    • 2、地址配置
    • 3、DAD Duplicate Address Detection | 重复地址检测】
    • 4、地址解析
  • 总结


前言

一、IPV4、IPv6包头对比

1. IPV4包头


IHL:首部长度,如果不带Option字段,则为20,最长为60,该值限制了记录路由选项。以4字节为一个单位
Type of Service:服务类型。只有在有QoS差分服务要求时这个字段才起作用。
Total Length(16bit):,整个IP数据报的长度,包括首部和数据之和,单位为字节,最长65535,总长度必须不超过最大传输单元MTU。
**Identification (16bit):**标识,主机每发一个报文,加1,分片重组时会用到该字段。
Flags(3bit):

Bit 0: 保留位,必须为0。
Bit 1: DF(Don’t Fragment),能否分片位,0表示可以分片,1表示不能分片。
Bit 2: MF(More Fragment),表示是否该报文为最后一片,0表示最后一片,1代表后面还有。

Fragment Offset(12bit)片偏移: 分片重组时会用到该字段。表示较长的分组在分片后,某片在原分组中的相对位置。以8个字节为偏移单位。
Time to Live(8bit)生存时间: 可经过的最多路由数,即数据包在网络中可通过的路由器数的最大值。
Protocol(8bit)协议: 下一层协议。指出此数据包携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给哪个进程处理。

常见值:0: 保留Reserved
1: ICMP, Internet Control Message [RFC792]
2: IGMP, Internet Group Management [RFC1112]
3: GGP, Gateway-to-Gateway [RFC823]
47: GRE (General Routing Encapsulation)
50: ESP Encap Security Payload [RFC2406]
51: AH (Authentication Header) [RFC2402] *
Header Checksum 16比特 首部检验和,只检验数据包的首部,不检验数据部分。这里不采用CRC检验码,而采用简单的计算方法。
Source Address 32比特 源IP地址。
Destination Address 32比特 目的IP地址。
Options 可变 选项字段,用来支持排错,测量以及安全等措施,内容丰富(请参见下表)。选项字段长度可变,从1字节到40字节不等,取决于所选项的功能。
Padding 可变 填充字段,全填0。

2.IPv6包头

在这里插入图片描述

Version 4比特 4:表示为IPV4;6:表示为IPV6。
Traffic class 8比特 :流量类别。该字段及其功能类似于IPv4的业务类型字段。该字段以区分业务编码点(DSCP)标记一个IPv6数据包,以此指明数据包应当如何处理。
Flow Label 20比特 :流标签。该字段用来标记IP数据包的一个流,当前的标准中没有定义如何管理和处理流标签的细节。
Payload length 16比特 :该字段表示有效载荷的长度,有效载荷是指紧跟IPv6基本报头的数据包,包含IPv6扩展报头。
Next header 8比特 :下一报头,该字段指明了跟随在IPv6基本报头后的扩展报头的信息类型。
Hop limit 8比特 :跳数限制,该字段定义了IPv6数据包所能经过的最大跳数,这个字段和IPv4中的TTL字段非常相似。
Source Address 128比特: 该字段表示该报文的源地址。
Destination Address 128比特 :该字段表示该报文的目的地址。
Extension Headers 可变 扩展报头。IPv6取消了IPv4报头中的选项字段,并引入了多种扩展报文头,在提高处理效率的同时还增强了IPv6的灵活性,为IP协议提供了良好的扩展能力。当超过一种扩展报头被用在同一个分组里时,报头必须按照下列顺序出现:

3.IPV6扩展包头

在这里插入图片描述

二、IPV6基础知识地址结构、地址分类

1、 lpv6;128bit 包含2的128次方个lp地
2、 lpv6使用【:分十六进行】的形式进行表示
3、与IPv4地址类似,IPv6也用“IPv6地址/掩码长度”的方式来表示IPv6地址。
在这里插入图片描述

优点
lpv6的中间转发路由器不再作分片和重组的工作,整条链路采用路径MTU发现机制,整个链路使用最小MTU发送数据

4、IPv6单播地址接口标

  • 手工配置
  • 系统自动生成 通过IEEE
  • EUI-64规范生成

三、ICMPV4、ICMPV6

NDP协议中一共有五种ICMPv6报文类型,分别是RS,RA,NS,NA和Redirect报文

1、 lnternet控制消息协议

ICMP【lnternet control Message protocol】是lp协议的辅助协议
ICMP协议用来在网络设备间传递各种差错和控制信息,对于收集各种网络信息、诊断和排除各种网络故障等方面起着至关重要的作用。

ICMPv6报文需要封装成IPv6数据报进行发送:在这里插入图片描述

Type 1字节 定义了报文的类型,该字段决定了其它部分的报文格式。
Code 1字节 该字段依赖TYPE字段,在TYPE字段的基础上,它被用来在基本类型上创建更详细的报文等级。
Checksum 2字节用来在ICMPv6报文中检验数据和部分IPv6首部的完整性。

2、ICMP差错检测

ICMP Echo消息常用于诊断源和目的地之间的网络连通性,同时还可以提供其他信息,如报文往返时间等。
ICMP的一个典型应用是Ping。Ping是检测网络连通性的常用工具,同时也能够收集其他相关信息。

用户可以在Ping命令中指定不同参数,如ICMP报文长度、发送的ICMP报文个数、等待回复响应的超时时间等,设备根据配置的参数来构造并发送ICMP报文,进行Ping测试

3、ICMP错误报告

ICMP定义了各种错误消息,用于诊断网络连接性问题;根据这些错误消息,源设备可以判断出数据传输失败的原因。

四、 ICMPv6的应用

报文分为两类:
ICMPv6报文可以被分为2大类:差错报文与消息报文。
当TYPE取值范围在0~127范围时,被标识为差错报文,
当TYPE取值范围在128~255范围时,则标识为消息报文。

1、差错报文

1、差错报文【Error Messages】I也称为差错消息I Type字段最高bit为0I也就是ICMPv6 Type=[0 I127]
2、差错消息用于报告在转发lpv6数据包过程中出现的错误I如常见的目的不可达、超时等等

1.1、ICMPV6信息报文应用-Ping (ICMPv6 type:128-129)

Ping基于ICMPV6信息报文实现
Echo Request:用于发送到目标节点,以使目标节点立即发回一个Echo Reply应答报文。
Echo Reply:当收到一个Echo Request报文时,ICMPV6会用Echo Reply报文响应
在这里插入图片描述

1.2、ICMPv6差错报文应用-Path MTU发现(ICMPv6 type:2)

• 在IPv6中,中间转发设备不对IPv6报文进行分片报文的分片将在源节点进行。
• 依赖PMTUD,数据的发送方可以使用所发现到的最优PMTU与目的地节点进行通信,
可以避免数据包在从源传输到目的的过程之中,被中途的路由器分片而导致性能的下降。1.首先PC1用1500字节作为MTU向PC2发送IPv6数据包。2.R1意识到数据包过大,出站接口MTU为1400字节,于是回复一个ICMPv6(Type=2)报文给PC1,指定MTU值为1400字节。3.然后,PC1开始使用1400作为MTU发送IPv6数据4.数据包到达R2后,R2意识到出站接口MTU为1300字节,于是发送一个ICMPv6(Type=2)报文给PC1,指定MTU值为1300字节5.PC1开始使用1300作为MTU发送IPv6数据

在这里插入图片描述

2、信息报文(NDP使用133-137的ICMP报文)

1、信息报文【lnformation Messages】 I也称为信息消息IType字段最高bit为1I也就是ICMPv6 Type=[128 I255]
2、信息报文可以用来实现同—链路上节点间的通信和子网内的组播成员管理等

2.1、ICMPv6消息报文应用:NDP包括 (ICMPv6 type:133-137)

在这里插入图片描述
在这里插入图片描述

2.2、NDP邻居发现协议的功能

1、路由器发现: (使用ICMP的RS+RA报文)发现链路上的路由器,获得路由器通告的信息。
• 路由器发现可以同时实现以下三个功能:○ 路由器发现(Router Discovery):主机定位邻居路由器以及选择哪一个路由器作为缺省网关的过程。○ 前缀发现(Prefix Discovery):主机发现本地链路上的一组IPv6前缀的过程,用于主机的地址自动配置。○ 参数发现(Parameter Discovery):主机发现相关操作参数的过程,如输出报文的缺省跳数限制、地址配置方式等信息。
1 .1路由器发现流程-主机请求触发

当主机启动时,主机会向本地链路范围内所有的路由器发送RS报文,触发路由器响应RA报文。主机发现本地链路上的路由器后,自动配置缺省路由器,建立缺省路由表、前缀列表和设置其它的配置参数。
在这里插入图片描述

1.2、路由器发现流程-路由器周期性发送
• 对于定期发送的RA报文,其地址有如下要求:○ Source Address:必须是发送接口的链路本地地址。○ Destination Address : FF02..1

在这里插入图片描述

2、地址解析:请求目的网络地址对应的数据链路层地址,类似IPv4的ARP。(使用ICMP的NS+NA报文)
• 在三层完成地址解析,主要带来以下几个好处○ 地址解析在三层完成,不同的二层介质可以采用相同的地址解析协议。○ 可以使用三层的安全机制避免地址解析攻击。○ 使用组播方式发送请求报文,减少了二层网络的性能压力。

在这里插入图片描述

• 当PC1要传送数据包到PC2时,如果不知道PC2的链路层地址,则需要完成以下协议交互过程:
○ PC1发送一个NS报文到网络上,目的地址为PC2对应的被请求节点组播地址(FFO2::1:FF84:EFDC),选项字段中带上PC1的链路层地址000D-88F8-03B0。
○ PC2侦听到该NS报文后,由于报文的目的地址FF02::1:FF84:EFDC,自己在该组播组,处理该报文;同时,根据NS报文的源地址和源链路层地址选项更新自己的邻居缓存表项。
○ PC2发送一个NA报文应答NS,同时在消息的目标链路层地址选项中带上自己的链路层地址0013-7284-EFDC。
○ PC1接收到NA报文后,获悉了PC2的链路层地址,创建一个目标节点的邻居缓存表项
○ 这样通过交互后,PC1和PC2就知道了对方的链路层地址,建立其对方的邻居缓存表项(类似于IPv4的ARP表),就可以相互通信了。

3、无状态自动配置:通过路由器通告的地址前缀,终端自动生成IPv6地址。

重复地址检测DAD:获得地址后,进行地址重复检测,确保地址不存在冲突。
• 重复地址检测(Duplicate Address Detect,DAD)是指接口在使用某个IPv6地址之前,需要先探测是否有其它的节点使用了该地址,从而确保网络中没有两个相同的单播地址。
• 接口在启用任何一个单播IPv6地址前都需要先进行DAD,包括Link-Local地址。
发送NS如果规定时间没没有NA应答,认为本地链路上唯一
在这里插入图片描述

4、重定向:告知其他设备,到达目标网络的更优下一跳。

重定向是指网关设备发现报文从其它网关设备转发更优,它就会发送重定向报文告知报文的发送者,让报文发送者选择另一个网关设备。
在这里插入图片描述

五、 IPv6单播地址业务流程

一个接口在发送IPv6报文之前要经历地址配置、DAD、地址解析这三个阶段,其中NDP【Neighbor Discovery Protocol | 邻居发现协议】在整个流程中扮演了重要角色

1、邻居发现协议NDP

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

2、地址配置

全球单播地址和链路本地地址是接口上最常见的IPv6单播地址,一个接口上可以配置多个IPv6地址

全球单播地址

  • 手工静态配置
    ▫ 采用EUI-64格式形成:接口的IPv6地址的前缀是所配置的前缀,而接口标识符
    则由接口自动生成
    ▫ 手工配置:用户手工配置IPv6全球单播地址
  • 有状态地址自动配置(不需要lpv6地址分配服务器)
    ▫ 有状态地址自动配置基于DHCPv6来实现
  • 无状态地址自动配置(需要lpv6地址分配服务器)
    ▫ 无状态地址自动配置方式基于NDP来实现

lpv6地址无状态自动配置过程
在这里插入图片描述

链路本地地址

  • 手工配置
  • 系统生成
  • 根据EUI-64规范动态生成

3、DAD Duplicate Address Detection | 重复地址检测】

类似于IPv4中的免费ARP检测,用于检测当前地址是否与其它接口冲突

4、地址解析

类似于IPv4中的ARP请求,通过ICMPv6报文形成IPv6地址与数据链路层地址【一般是MAC地址】的映射关系

总结

提示:这里对文章进行总结:

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 【路由器】RT-AC88U华硕配置DNS
  • 博客标题: 在 Spring Boot 中使用策略模式实现灵活的订单处理
  • 经纬恒润荣获小米汽车优秀质量奖!
  • SpringBoot统一功能处理——统一数据返回格式
  • 卷积神经网络 - 卷积神经网络与深度学习的历史篇
  • Python学习笔记(六)
  • 云存储技术:HBase HDFS 无感知迁移方案
  • cmake 编译教程
  • 编程-设计模式 23:模板方法模式
  • mfc140u.dll丢失的科学修复手段,简单又方便的mfc140u.dll修复
  • Ant-Design-Vue快速上手指南+排坑
  • 前端八股文笔记【三】
  • 前端(react)框架nextjs
  • C++ 数组 -- 指针 -- 字符串
  • 【系统分析师论文】论系统需求分析方法及应用
  • 2018一半小结一波
  • codis proxy处理流程
  • Javascript编码规范
  • Netty 4.1 源代码学习:线程模型
  • orm2 中文文档 3.1 模型属性
  • Sass Day-01
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 从重复到重用
  • 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题
  • 浏览器缓存机制分析
  • 软件开发学习的5大技巧,你知道吗?
  • 设计模式(12)迭代器模式(讲解+应用)
  • 微信小程序:实现悬浮返回和分享按钮
  • 学习ES6 变量的解构赋值
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • d²y/dx²; 偏导数问题 请问f1 f2是什么意思
  • AI算硅基生命吗,为什么?
  • shell使用lftp连接ftp和sftp,并可以指定私钥
  • 选择阿里云数据库HBase版十大理由
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • #我与虚拟机的故事#连载20:周志明虚拟机第 3 版:到底值不值得买?
  • #预处理和函数的对比以及条件编译
  • (04)odoo视图操作
  • (解决办法)ASP.NET导出Excel,打开时提示“您尝试打开文件'XXX.xls'的格式与文件扩展名指定文件不一致
  • (三)Kafka 监控之 Streams 监控(Streams Monitoring)和其他
  • (顺序)容器的好伴侣 --- 容器适配器
  • (转载)OpenStack Hacker养成指南
  • .net wcf memory gates checking failed
  • .NET 设计模式—适配器模式(Adapter Pattern)
  • .NET教程 - 字符串 编码 正则表达式(String Encoding Regular Express)
  • /etc/apt/sources.list 和 /etc/apt/sources.list.d
  • :中兴通讯为何成功
  • @Pointcut 使用
  • @Transactional注解下,循环取序列的值,但得到的值都相同的问题
  • []利用定点式具实现:文件读取,完成不同进制之间的
  • [<死锁专题>]
  • [2024-06]-[大模型]-[Ollama] 0-相关命令
  • [2024最新教程]地表最强AGI:Claude 3注册账号/登录账号/访问方法,小白教程包教包会
  • [Android]一个简单使用Handler做Timer的例子