IPv6基础概念


一、背景

20世纪80年代,IETF(Internet Engineering Task Force,因特网工程任务组)发布RFC791,即IPv4协议,标志IPv4正式标准化。在此后的几十年间,IPv4协议成为最主流的协议之一。

IPv4(Internet Protocol version 4):互联网协议(IP) 的是当前版本。IPv4地址为32 bit编码,通常用4个点分十进制数表示,这意味着IPv4地址是有限的。每个地址由一个网络号、(可选)子网掩码、主机号组成。网络号和(可选)子网掩码用于路由,主机号用于在网络或子网内部寻址到一台具体主机。

随着互联网的规模越来越大,以及5G、物联网等新兴技术的发展,IPv4面临的挑战越来越多。2011年2月3日,IANA(Internet Assigned Numbers Authority,因特网地址分配组织) 宣布将其最后的468万个IPv4地址平均分配到全球5个RIR(Regional Internet Registry,区域互联网注册管理机构),此后IANA再没有可分配的IPv4地址。

IPv4地址分配

简单点说就是IPv4地址有限,然后由一个组织进行分配,但是经过前期的分配不均以及一些其它原因,因此现在已经分配完了,必须进行扩展或者升级即从IPv4–>IPv6。

参考:网络协议与IP编址

二、IPv6是什么?

IPv6(Internet Protocol Version 6)是互联网协议的第六版,由互联网工程任务组(IETF)设计,作为IPv4的下一代标准来应对网络地址资源枯竭、提升网络性能、增强安全性以及支持未来互联网的扩展需求。

IPv6优势

版本对比:

IPv4-IPv6

总的来说就是IPv6就是IPv4的进阶版,解决了地址枯竭的问题,现在也是在不断地部署和铺设,截止到2024年目前已经有许多商用已经实现,比如一些应用和网站支持IPv6的访问了,但是毕竟一些改革是不能那么快完成的,我们作为网络工程师也需要慢慢熟悉一些IPv6的知识。

三、IPv6的报文结构与格式

3.1 IPv6报文格式

IPv6包头由一个IPv6基本包头(必须存在)和多个扩展包头(可能不存在)组成。

基本包头: 提供报文转发的基本信息,会被转发路径上的所有设备解析。

基本包头

基本包头字段:

  • Version:版本号,长度为4 bit。对于IPv6,该值为6。
  • Traffic Class:流类别,长度为8 bit。等同于IPv4中的ToS字段,表示IPv6数据包的类或优先级,主要应用于QoS。
  • Flow Label:流标签,长度为20 bit。IPv6中的新增字段,用于区分实时流量,不同的流标签+源地址可以唯一确定一条数据流,中间网络设备可以根据这些信息更加高效率的区分数据流。
  • Payload Length:有效载荷长度,长度为16 bit。有效载荷是指紧跟IPv6包头的数据包的其他部分(即扩展包头和上层协议数据单元)。
  • Next Header:下一个包头,长度为8 bit。该字段定义紧跟在IPv6包头后面的第一个扩展包头(如果存在)的类型,或者上层协议数据单元中的协议类型(类似于IPv4的Protocol字段)。
  • Hop Limit:跳数限制,长度为8 bit。该字段类似于IPv4中的Time to Live字段,它定义了IP数据包所能经过的最大跳数。每经过一个路由器,该数值减去1,当该字段的值为0时,数据包将被丢弃。
  • Source Address:源地址,长度为128 bit。表示发送方的地址。
  • Destination Address:目的地址,长度为128 bit。表示接收方的地址。

扩展包头: 扩展包头被置于IPv6基本包头和上层协议数据单元之间。一个IPv6报文可以包含0个、1个或多个扩展包头,仅当需要路由器或目的节点做某些特殊处理时,才由发送方添加一个或多个扩展头。与IPv4不同,IPv6扩展头长度任意,不受40 Byte限制,这样便于日后扩充新增选项。但是为了提高处理选项头和传输层协议的性能,扩展包头总是8 Byte长度的整数倍。

扩展包头

当超过一种扩展包头被用在同一个IPv6报文里时,包头必须按照下列顺序出现:

  • 逐跳选项包头:主要用于为在传送路径上的每跳转发指定发送参数,传送路径上的每台中间节点都要读取并处理该字段。
  • 目的选项包头:携带了一些只有目的节点才会处理的信息。
  • 路由包头:IPv6源节点用来强制数据包经过特定的设备。
  • 分段包头:当报文长度超过MTU(Maximum Transmission Unit,最大传输单元)时就需要将报文分段发送,而在IPv6中,分段发送使用的是分段包头。
  • 认证包头(AH):该包头由IPsec使用,提供认证、数据完整性以及重放保护。
  • 封装安全净载包头(ESP):该包头由IPsec使用,提供认证、数据完整性以及重放保护和IPv6数据包的保密。

IPv6报文必须包含基本包头,然后如果有一些类似于IPv4的option字段选项通过扩展包附加上,比如认证的需求。然后如果有多种扩展包需要按照一定顺序排列形成一条首尾相连的链状包头列表。

IPv6报文处理机制:

报文处理机制

3.2 IPv6报文格式

IPv6地址的长度为128 bit。一般用冒号分割为8段,每一段16 bit,每一段内用十六进制表示。IPv6地址中的字母大小写不敏感,例如A等同于a。

IPv6地址格式

与IPv4地址类似,IPv6也用IPv6地址/掩码长度的方式来表示IPv6地址。

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

  • IPv6地址: 2001:0DB8:2345:CD30:1230:4567:89AB:CDEF
  • 子网号: 2001:0DB8:2345:CD30::/64

总结:大致了解了下IPv6的发展来源与必要性。大致学习IPv6的报文结构与格式:IPv6长度为128bit,一般用冒号分割为8段,每一段16 bit,每一段内用十六进制表示,IPv6地址中的字母大小写不敏感。也采用地址/掩码的格式表示。


Chuck 2024年4月22日 14:50 收藏文档