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

2024-01-07 17:30:28

第十一章 ?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. 逐跳选项扩展头被沿途所有的路由器查看,其他的扩展头正常的转发都不会被查看,保证转发效率。

文章来源:https://blog.csdn.net/m0_60875392/article/details/135332389
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。