华为HCIE课堂笔记第十一章 IPv6概述

第十一章  IPv6概述

11.1 背景

      根本原因是:IPv4地址枯竭,IPv6是IPV4的升级版本

11.1.1 IPv6地址的优势:

  1. 地址空间足够大 128bit
  2. 支持即插即用
  3. 底层化地址结构:地址分配有一定的标准
  4. 相比于IPv4简化了报文的头部,提高了转发效率
  5. 安全特性:IPv6支持对IPv6报文进行认证(AH)和加密(ESP)
  6. 移动性:对于移动网络实时通信有较大改进,整个移动网络性能有比较大的提升。
  7. 增强Qos功能(Flow Label字段)。

11.1.2 IPv6的过渡技术

        IPv4地址枯竭,由于IPv6地址设计之初不兼容IPv4地址,因此出现了一些共存技术,通过共存技术,使得网络在IPv4向IPv6过渡的过渡过程中平缓演进。

  1. 隧道技术:通过隧道技术,使得IPv4孤岛在IPv6的网络中可以通信;或者IPv6孤岛可以在IPv4的网络中进行通信。
  2. 双栈技术:设备同时支持IPv4和IPv6技术
  3. 地址转换技术:将IPV4地址与IPV6地址之间进行互换(对报文头部进行整个更换),满足通信需求。NAT64

11.1.3 IPv6路由协议

  1. OSPFv3 新的协议,与OSPFV2不兼容,用于支持IPv6
    1. 基于链路(层)运行
    2. 取消了LSA头部中的IP地址,与网络层解耦,实现拓扑与路由计算分离
    3. 新增LSA支持路由的传递
  2. ISIS协议(协议版本未变)
    1. 通过新增一个网络层标识符和多个(2个)TLV用于传递路由
  3. BGP协议(多协议BGP,协议本身版本未变)
    1. 通过增加支持支持IPv6地址簇
    2. 通过增加两个NLRI支持IPV6的路由发布和撤销。
  4. PIM协议(协议版本未变)
    1. 协议本来就是协议无关组播协议,仅源目IP地址为IPv6地址

11.2 IPv6地址

11.2.1 IPV6地址格式

      128bit组成,分为网络前缀(IPv4的网络前缀)和接口标识(IPv4的主机位),通过冒分16进制表示,每16bit位一个小组,总共8小组。掩码表示网络前缀的长度,掩码仅能通过数值表示。

      例如:2001:0DB8:2345:CD30:1230:4567:89AB:CDEF/64

      IPV6地址的三种格式:

  1. 首选格式:没有经过压缩的格式,每16bit以小组,共8组,没有简写
    1. 例如:2001:0DB0:0000:0001:0000:0000:0000:45ff/64
  2. 压缩格式:
    1. 每段前导0可以省略,但是如果该段为全0,则至少保留一个“0”字符;拖尾的0不能被省略。
    2. 一个或多个连续的段为全0时,可用“::”表示,整个IPv6地址缩写中只允许有一个“::”。
    3. 结果例如:2001:DB0:0: 1::45ff/64、或者2001:DB0:: 1:0:0:0:45ff/64
  3. 内嵌IPv4地址的格式,用于IPv4、IPv6相互兼容
    1. 地址的前96bit为IPv6地址格式,后32bit为IPv4地址格式。
    2. IPv6部分可采用首选或压缩格式,IPv4部分采用点分十进制格式。
    3. 例如:0:0:0:0:0:0:166.168.1.2/64。或者是::166.168.1.2/64

11.2.2 IPV6组成

  1. 前缀部分:注意前缀的长度(掩码)
    1. 2001::/16     //用于IPV6网络的公网地址(已分配的IPV6地址的前三bit固定为001)
    2. 2002::/16     //用于ipv6 6to4隧道专用地址
    3. FE80::/10     //链路本地地址,用于链路本地通信使用,仅链路有效。多种协议使用该地址进行通信。
    4. FF00::/8      //IPV6的组播地址
    5. ::/128        //未指定地址,与IPV4的0.0.0.0相似
    6. ::1/128       //环回口地址。
  2. 接口ID部分:手工、动态获取(DHCPv6、无状态自动配置EUI-64,系统自动生成(如Windows系统根据一定算法计算得到接口ID))
    1. 动态获取,EUI-64方式:该方式用于无状态自动配置,通过ICMPv6的报文通告前缀,自动根据EUI-64算法计算出接口ID,组合前缀和接口ID形成IPv6地址。
    2. EUI-64计算和IPV6生成(无状态自动配置)
      1. 48bit的MAC地址,前24bit是OUI,后24bit厂商指定,在OUI和厂商指定的部分中间插入FFFE
      2. 并将MAC地址的第7bit取反,为0的取值1,形成了64bit的接口ID
      3. 根据收到的64位前缀,组合成IPV6地址。

11.2.3 IPv6地址分类

  1. 任播地址:主要用于DNS和HTTP协议,将同一个单播地址配置在不同的设备上,并携带任播参数,终端访问任播地址选择最近的路由到达。当最近的出现故障,路由收敛后,再次选择剩余的设备中最近的任播地址进行访问。
  2. 组播地址:FF00::/8前缀,表示IPv6中接受相同数据的一组成员。与IPv4概念相同。
    1. 结构:FF+4bit Flags+4bit Scop字段+80bit预留字段+32bit组播组ID
      1. FF固定1B
      2. Flags:0000表示永久组播组地址,0001表示临时组播组地址。
      3. Scop范围:表示该组播地址的有效范围,0预留的,2表示链路本地范围(FF02::1),E表示全球范围(FF0E::1)
    2. 常用组播地址:
      1. FF02::2    //所有路由器节点组播地址
      2. FF02::1    //所有设备节点的组播地址
      3. FF02::5    //所有启用了OSPFV3的接口的组播地址
      4. FF02::6    //OSPFv3的DR的组播地址
      5. FF02::D    //PIMv2协议的组播地址(224.0.0.13)
    3. IPv6组播地址对应的组播MAC地址
      1. 该组播MAC地址的前16bit固定为33:33
      2. 将IPV6组播地址的后32bit复制到组播MAC地址后32bit形成33:33+复制部分,形成IPv6地址对应的组播MAC地址。
    4. 被请求节点组播组地址:
      1. FF02::1:FF00:1   //被请求节点组播组地址
      2. 格式:FF02::1:FF00/104 前缀固定+24bit内容(从单播/任播IPV6地址映射而来)
      3. 用于邻居发现(类似IPV4的 MAC地址解析)和重复地址检测(IPV4 免费ARP)
    5. 邻居发现:通过被请求节点组播组地址进行,类似ARP解析地址的过程。
      1. PC1和PC2直连进行通信,PC1封装NS报文(ICMPV6 135号)用于请求邻居PC2的MAC地址,报文内容:帧头+IPv6头部+ICMPv6报文
        1. IPv6报文中的原IP地址为自己的IPV6的地址,目的IPv6地址为被请求单节点对应的组播组地址(PC2对应的被请求节点组播组地址)。
        2. ICMPv6报文内的目标地址PC2的单播地址,源MAC地址是自己的MAC地址。
        3. 帧头中:源MAC地址是自己的MAC地址,目的MAC地址是请求节点组播组地址对应的组播MAC地址(33:33+IPV6地址后32bit)
      2. 除被请求节点PC2收到外需要回复,其他节点收到后,发现被请求节点组播组地址不是自己的IP地址加入的被请求节点组播组地址,从而丢弃报文。PC2单播回复响应报文(NA报文)。单播相应中的ICMPv6报文中的目标地址是本端的IPv6地址(对端请求解析的地址)。
  3. 单播地址:
    1. 全球单播地址(GUA),类似IPV4的公网IP地址,已分配的IP地址前3bit位001(即第一个16进制字符为2或者3)
    2. 本地唯一地址LUA,类似IPV4的私网地址,具有全球唯一性,前缀FC::/7(分为了两个部分:FC::/8FD::/8),目前使用的仅FD::/8,另一半用于以后扩展。
    3. 链路本地地址LLA:作用范围仅在本链路有效,格式:
      1. FE80::/10    //其中前缀/10的bit保持不变+54bit 0+64bit接口ID

11.3 IPv6报文格式

11.3.1 IPv6的报文格式

     IPv6头部固定40B,包含以下字段:

  1. Version版本:4bit,取值6表示IPV6
  2. Traffic class流分类:8bit,对IPv6数据包进行标识的,类似IPv4 TOS字段
  3. Flow Label流标签:20bit,对IPv6报文进行标识,用于增强Qos功能
  4. Payload Length载荷长度:16bit,不包含IPv6头部,包含IPv6扩展头部和载荷部分的总长度。
  5. Next Header下一个头部:8bit,IPV6基本头部之后的数据应该交给谁处理,用于标识上层协议。为6表示上层协议是TCP,为17表示是UDP,为其他的表示是其他协议。每一个扩展头部也有对应的协议号。
  6. Hop Limit跳数限制:8bit,类似IPV4的TTL值,用于三层环路预防。
  7. 源IP地址:通信的源IPV6地址
  8. 目的IP地址:通信的目的IPv6地址

11.3.2 IPv6与IPv4的变化

     取消了一些字段:

  1. IPv6头部长度固定40B,因此取消了IPv4头部有的“头部长度”字段。
  2. IPv6的分片在源端进行,IPv4的包分配在任何设备上需要的时候进行。因此取消了IPv4“标识”、“标志”、“片偏移”字段,通过分片扩展头部携带根据需要携带该功能。
  3. 取消了IPV4中包含的头部校验和字段(2层和4层都已经校验,IPv6认为3层网络层不需要再重复校验)
  4. 取消了Option字段,Option字段中的源路由功能通过IPV6扩展头部根据需求携带。
  5. 取消了Padding字段,由于IPV6都不定长为40B,是4B的倍数,不需要填充到4B倍数,因此基本头部中取消该字段。

      增加了功能:

  1. 增加了Flow Label字段,用于增强QoS功能。

      修改了字段名称:

  1. 修改了字段名称,使得字段名称更加精确:Hop Limit、Next Header、Traffic class字段

11.3.3 IPv6扩展头部格式

    IPV6扩展头部格式:

  1. 下一个头部字段:标识上层协议或者下一个扩展头部(如有)
  2. 扩展头部长度:扩展头部的长度不包含下一个头部字段
  3. 扩展头部数据:扩展头部的数据部分(不是载荷数据),可变长字段,通常通过填充字段使得扩展头部为8B的整数倍。

11.3.4 IPv6的扩展头部

  1. 逐跳选项头部:如果要携带该扩展头 Next Header取值为0,标识该下一个头部为该扩展头。每个路由器都需要处理的头部,比如:巨型净荷选型,允许IPv6报文的最大字段是65535B
  2. 目的选项头部:如果要携带该扩展头 Next Header取值为60,标识该下一个头部为该扩展头。目的选项扩展头部携带的只有目的地址可以处理的信息。
  3. 路由选项头部:如果要携带该扩展头 Next Header取值为43,标识该下一个头部为该扩展头。作用类似IPV4中的宽松源站路由,在该头部中携带一系列去往目的地需要经过的IPv6地址,根据其中Segment 字段将列表中的地址更新到基本IPV6头部中的目的地址字段,从而控制IPV6报文的转发路径。
  4. 分段选项头部:如果要携带该扩展头 Next Header取值为44,标识该下一个头部为该扩展头。通过Path MTU发现,发现转发源目IPv6地址的报文经过的路径上最小的MTU值,在源端进行IPv6分片,并携带该扩展头部,用于报文的重组。
  5. 认证选项头部(AH):如果要携带该扩展头 Next Header取值为51,标识该下一个头部为该扩展头。用于支持IPV6报文的认证,防止报文被篡改。
  6. 封装安全载荷头部(ESP):如果要携带该扩展头 Next Header取值为50,标识该下一个头部为该扩展头。用于支持IPV6报文的加解密

11.3.5 扩展头部出现的顺序

    如果IPv6报文中携带多个IPV6的扩展头部,则按照以下顺序出现:

    基本头部+逐跳选项+目的选项+路由选项+分段+认证+封装安全净荷+目的选项+上层协议头部

  1. 除了目的选项可以出现两次(一次在路由选项前,一次在上层协议头前),其他的扩展头部只能出现一次。
  2. 逐跳选项扩展头被沿途所有的路由器查看,其他的扩展头正常的转发都不会被查看,保证转发效率。

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

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

相关文章

关于CNN卷积神经网络与Conv2D标准卷积的重要概念

温故而知新,可以为师矣! 一、参考资料 深入解读卷积网络的工作原理(附实现代码) 深入解读反卷积网络(附实现代码) Wavelet U-net进行微光图像处理 卷积知识点 CNN网络的设计论:NAS vs Handcra…

解决Gitee每次push都需要输入用户名和密码

其实很简单,只需要使用命令 git config --global credential.helper store 在你下次push时只需要再输入一次用户名和密码,电脑就会保存下来,之后就无需进行输入了。

OpenHarmony底座升级指南(3.2升级4.0)

前言 本文旨在帮助开发者完成底座升级,文中主要以OpenHarmony 3.2 release 升级至OpenHarmony 4.0 release为模板描述。 一、流程概览: 1.1 准备工作 在准备阶段,需要完整收集所有的定制化修改,明确修改人;并且要将…

嵌入式项目——平衡小车(1)

焊接 驱动板需要焊接的如上图。 陀螺仪8pin排母电机两路排线插口。(个别同学需要焊接)两个电池仓,注意电池仓分正反。 安装 底部电池板 4个 双通尼龙柱M3*224个 尼龙螺钉M3*6电机驱动板

【算法笔记】深入理解dfs(两道dp题)

DFS过程的概述 一个一个节点的搜,如果是树状结构的话,先找到最左边那一条分支搜到最后一个节点,这个时候最后一个节点(假设是b)的数据会被更新(具体看题目的要求),然后返回到上一个…

UnityShader(八)Unity中的基础光照(上)

目录 前言 光源(light source) 辐照度(irradiance) 散射和吸收(scattering and absorption) 着色(Shading) BRDF光照模型 前言 渲染时如何决定一个像素的颜色呢?从…

二、安全与风险管理—法律法规符合性与职业道德

目录 一、攻击的演变 二、不同的法律体系 2.1 法律分类 2.2 知识产权 2.3 隐私保护

【计算机图形学】NAP: Neural 3D Articulation Prior

文章目录 1. 这篇论文做了什么事,有什么贡献?2. Related Work铰接物体建模3D中的Diffusion model扩散模型 3. Pipeline铰接树参数化基于Diffusion的铰接树生成去噪网络 4. 实验评价铰接物体生成——以往做法与本文提出的新指标NAP捕捉到的铰接物体分布质…

玩转Mysql 四(MySQL逻辑架构与数据引擎)

一路走来,所有遇到的人,帮助过我的、伤害过我的都是朋友,没有一个是敌人。 一、MySQL逻辑架构 1、从Oracle收购MySQL后,MySQL逻辑架构受Oracle影响,MySQL8版本中逻辑架构受Oracle的影响逐步完善查询缓存,O…

Linux 服务器安全策略技巧:使用 Bcrypt 或 Argon2 进行密码哈希

在当今数字化时代,保护服务器和用户数据的安全至关重要。密码哈希是一种常用的安全策略,用于将用户密码转换为不可逆的散列值。本文将介绍在Linux服务器上使用Bcrypt或Argon2进行密码哈希的技巧。 Bcrypt密码哈希算法 Bcrypt是一种基于Blowfish密码算法的密码哈希函数。它是…

数据结构:树详解

创建二叉树 给出了完整的先序遍历序列,子树为空用’#’表示,所以这样我们在通过先序遍历序列创建二叉树时我们直到先序遍历序列是先进行根结点,然后左子树最后右子树的顺序进行遍历的,所以对于完整的先序遍历序列我们可以直到先序…

VS code的使用介绍

VS code的使用介绍 简介下载和安装常用的插件使用教程快捷键 集成Git未找到 Git。请安装 Git,或在 "git.path" 设置中配置。操作步骤打开文件夹初始化仓库文件版本控制状态提交文件到git打开git操作栏位 好用的插件ChineseDraw.io Integration实体关系 Gi…

Windows电脑无法睡眠解决办法

原因 电脑无法休眠的原因,是打开离开模式策略后,windows内核会持续调用CPU资源,导致系统一直在运行而无法关闭。关闭后就好了。 解决步骤 修改注册表 操作步骤如下: 按winR,输入regedit,打开注册表编辑页面。输入如下…

YOLOv5+混合注意力机制再涨4.3%,Transformer混合设计依旧可以卷

在工业生产过程中,由于低效率、不统一的评估、高成本以及缺乏实时数据,传统的手动检测焊接缺陷不再被应用。 为了解决表面贴装技术中焊接缺陷检测的低准确率、高误检率和计算成本问题,提出了一种新方法。该方法是一种专门针对焊接缺陷检测算法…

STM32入门教程-2023版【3-2】STM32如何使用库函数及几种方法

关注 点赞 不错过精彩内容 大家好,我是硬核王同学,最近在做免费的嵌入式知识分享,帮助对嵌入式感兴趣的同学学习嵌入式、做项目、找工作! 五、库函数的使用方法 (1)第一种 想使用库函数,可以先打开.h文件&…

PyCharm自动化环境部署

目录 方法一 一、安装python 二 继续安装pycharm 三,安装selenium包 四,下载webdriver 五,进行测试 方法二 第一步:下载Anaconda</

ios CoreGraphics 随笔

CoreGraphics 图形绘制&#xff1a;使用 CoreGraphics 可以绘制各种基本图形&#xff0c;如线条、矩形、圆形、多边形等。 图像处理&#xff1a;CoreGraphics 可以用于对图像进行缩放、旋转、裁剪、颜色调整等操作。 文本处理&#xff1a;可以使用 CoreGraphics 绘制文本&am…

Nginx快速入门:worker、master进程的作用和热部署原理(十)

0. 引言 我们通过查询nginx进程&#xff0c;可以发现nginx有两个进程&#xff1a;worker和master。一个程序启动了两个进程&#xff0c;那么这两个进程的作用和区别是什么呢&#xff1f;nginx又是如何利用这两个进程进行工作的呢&#xff1f;nginx不停机热部署又是如何实现的&…

12月笔记

#pragma once 防止多次引用头文件&#xff0c;保证同一个&#xff08;物理意义上&#xff09;文件被多次包含&#xff0c;内容相同的两个文件同样会被包含。 头文件.h与无.h的文件&#xff1a; iostream是C的头文件&#xff0c;iostream.h是C的头文件&#xff0c;即标准的C头文…

一个H3C交换机周期性断网并自动恢复的排查案例

一个朋友发我一个H3C日志&#xff0c;这个交换机是汇聚层交换机&#xff0c;1和2口是trunk口&#xff0c;其它接口是access接口&#xff0c;17-21口据说接的都是监控、终端。日志里面看到大量的拓朴改变&#xff0c;好几个网口up、down的日志&#xff0c;怀疑是环路&#xff0c…