王龙龙 发表于 2024-2-28 15:27

IPV6详细介绍

      IPv4协议是目前广泛部署的因特网协议。在因特网发展初期,IPv4以其协议简单、易于实现、互操作性好的优势而得到快速发展。但随着因特网的迅猛发展,IPv4设计的不足也日益明显,IPv6的出现,解决了IPv4的一些弊端。
      IPv6(Internet Protocol Version 6)也被称为IPng(IP Next Generation)。它是Internet工程任务组IETF(Internet Engineering Task Force)设计的一套规范,是IPv4(Internet Protocol Version 4)的升级版本。
      IANA,是负责全球互联网IP地址编号分配的机构。IANA将部分IPv4地址分配给大洲级的RIR,再由各RIR进行所辖区域内地址分配,五大RIR包括:
      RIPE:Reseaux IP Europeans,欧洲IP地址注册中心,服务于欧洲、中东地区和中亚地区;
      LACNIC:Latin American and Caribbean Internet Address Registry,拉丁美洲和加勒比海Internet地址注册中心,服务于中美、南美以及加勒比海地区;
      ARIN:American Registry for Internet Numbers,美国Internet编号注册中心,服务于北美地区和部分加勒比海地区;
      AFRINIC:Africa Network Information Centre,非洲网络信息中心,服务于非洲地区;
      APNIC:Asia Pacific Network Information Centre,亚太互联网络信息中心,服务于亚洲和太平洋地区。
      实践证明IPv4是一个非常成功的协议,它本身也经受住了Internet从少量计算机组网发展到目前上亿台计算机互联的考验。但该协议是几十年前基于当时的网络规模而设计的。在今天看来,IPv4的设计者们对于Internet的估计和预想显得很不充分。随着Internet的扩张和新应用的不断推出,IPv4越来越显示出它的局限性。
      Internet规模的快速扩张是当时完全没有预料到的,特别是近十年来,更是爆炸式增长,已经走进了千家万户,人们的日常生活已经离不开它。但正因为发展太快,IP地址空间耗尽的问题迫在眉睫。
      20世纪90年代,IETF推出NAT(Network Address Translation,网络地址转换)与CIDR(Classless Inter Domain Routing,无类别域间路由)等技术来推迟IPv4地址耗尽发生的时间点。但是这些过渡方案只能减缓地址枯竭的速度,并不能从根本上解决问题。

      数据来源:《2019 IPv6支持度报告》——下一代互联网国家工程中心
      综合IPv6部署率是根据各个国家地区的网络(IPv6 Prefix/Transit IPv6 AS),IPv6网站及IPv6用户等数据按照一定权值并计算得出的IPv6部署综合情况。


      近乎无限的地址空间:与IPv4相比,这是最明显的好处。IPv6地址是由128 bit构成,单从数量级来说,IPv6所拥有的地址容量是IPv4的约8×1028倍,号称可以为全世界的每一粒沙分配一个网络地址。这使得海量终端同时在线,统一编址管理,变为可能,为万物互连提供了强有力的支撑。
      层次化的地址结构:正因为有了近乎无限的地址空间,IPv6在地址规划时就根据使用场景划分了各种地址段。同时严格要求单播IPv6地址段的连续性,便于IPv6路由聚合,缩小IPv6地址表规模。
      即插即用:任何主机或者终端要获取网络资源,传输数据,都必须有明确的IP地址。传统的分配IP地址方式是手工或者DHCP自动获取,除了上述两个方式外,IPv6还支持SLAAC(Stateless Address Autoconfiguration,无状态地址自动配置)。
      端到端网络的完整性:大面积使用NAT技术的IPv4网络,从根本上破坏了端到端连接的完整性。使用IPv6之后,将不再需要NAT网络设备,上网行为管理、网络监管等将变得简单,与此同时,应用程序也不需要开发复杂的NAT适配代码。
      安全性得到增强:IPsec( Internet Protocol Security,因特网协议安全协议)最初是为IPv6设计的,所以基于IPv6的各种协议报文(路由协议、邻居发现等),都可以端到端地加密,当然该功能目前应用并不多。而IPv6的数据面报文安全性,跟IPv4+IPsec的能力,基本相同。
      可扩展性强:IPv6的扩展属性报文头部,并不是主数据包的一部分,但是在必要的时候,这些扩展头部会插在IPv6基本头部和有效载荷之间,能够协助IPv6完成加密功能、移动功能、最优路径选路、QoS等,并可提高报文转发效率。
      移动性改善:当一个用户从一个网段移动到另外一个网段,传统的网络会产生经典式“三角式路由”,IPv6网络中,这种移动设备的通信,可不再经过原“三角式路由”,而做直接路由转发,降低了流量转发的成本,提升了网络性能和可靠性。
      QoS可得到进一步增强:IPv6保留了IPv4所有的QoS属性,额外定义了20Byte 的流标签字段,可为应用程序或者终端所用,针对特殊的服务和数据流,分配特定的资源,目前该机制并没有得到充分的开发和应用。
      

IPv6过渡技术简介 (1)
      由于NAT技术的应用,缓解了IPv4地址不足产生的问题,但是部署IPv6是解决IPv4地址不足的最终方案。当前世界上不同地区对部署IPv6的需求强烈程度不一,且当前IPv4网络仍然占主流地位,因此短时间内IPv6和IPv4将会共存。
      IPv4网络演变为IPv6网络主要有以下三种技术:
      双栈技术:在一台设备上同时启用IPv4协议栈和IPv6协议栈的技术。
      隧道技术:将一种协议的数据封装在另一种协议中的技术。
      转换技术:将IPv6地址和IPv4地址进行转换的一种技术。
      没有最好的过渡技术方案,没有任何一种技术方案能够解决所有问题,通常是多种技术组合成不同的过渡方案,满足不同的网络访问场景。






      IPv4地址使用点隔开的4段十进制数加上掩码来表示,例如192.168.1.1/24。IPv6的地址有128位,沿用IPv4的十进制表示方法就显得太笨拙了,所以在RFC2373中定义了不同于IPv4的格式。




      IPv6前缀 IANA最新定义

      目前有三种方式可以产生IPv6接口ID:
      IEEE EUI-64规范
      接口ID的典型长度是64位,IEEE EUI-64规范给出了一个由48位MAC地址自动生成64位Interface ID的方法。
      具体的转换算法为:将上述的第7bit0转换为1,在MAC地址的中间(24bit处)插入两个字节:FFFE。
      这种由MAC地址产生IPv6地址接口ID的方法可以减少配置的工作量,只需要获取一个IPv6前缀就可以与接口ID形成IPv6地址。
      使用这种方式最大的缺点就是某些恶意者可以通过二层MAC推算出三层IPv6地址。
      设备随机生成
      设备采用随机生成的方法产生一个接口ID,目前Windows操作系统使用该方式。
      手动配置
      顾名思义,手动配置就是人为指定接口ID来实现。



      可以向运营商申请GUA或者直接向所在地区的IPv6地址管理机构申请。



         以太网传输单播IP报文的时候,目的MAC地址是下一跳的MAC地址。但是在传输组播数据包时,其目的地不再是一个具体的接收者,而是一个成员不确定的组,所以要使用组播MAC地址。
      IPv4组播MAC地址
      IANA规定,IPv4组播MAC地址的高24bit为0x01005E,第25bit为0,低23bit为IPv4组播地址的低23bit映射。
      由于IPv4组播地址的高4bit是1110,代表组播标识,而低28bit中只有23bit被映射到IPv4组播MAC地址,这样IPv4组播地址中就有5bit信息丢失。于是,就有32个IPv4组播地址映射到了同一个IPv4组播MAC地址上,因此在二层处理过程中,设备可能要接收一些本IPv4组播组以外的组播数据,而这些多余的组播数据就需要上层进行过滤了。
      IPv6组播MAC地址
      在以太网链路上发送IPv6组播数据包时,对应的MAC地址是0x3333-A-A-A-A,其中A-A-A-A是组播IP地址的后32bit的直接映射。




      被请求节点组播地址的应用场景举例:在IPv6中,ARP及广播都被取消,当设备需要请求某个IPv6地址对应的MAC地址时,设备依然需要发送请求报文,但是该报文是一个组播报文,其目的IPv6地址是目标IPv6单播地址对应的被请求节点组播地址,由于只有目标节点才会侦听这个被请求节点组播地址,所以该组播报文可以被目标节点所接收,同时不会占用其他非目标节点的网络性能。



      任播过程涉及一个任播报文发起方和一个或多个响应方。
      任播报文的发起方通常为请求某一服务(例如,Web服务)的主机。
      任播地址与单播地址在格式上无任何差异,唯一的区别是一台设备可以给多台具有相同地址的设备发送报文。
      网络中运用任播地址有很多优势:
      业务冗余。比如,用户可以通过多台使用相同地址的服务器获取同一个服务(例如,Web服务)。这些服务器都是任播报文的响应方。如果不是采用任播地址通信,当其中一台服务器发生故障时,用户需要获取另一台服务器的地址才能重新建立通信。如果采用的是任播地址,当一台服务器发生故障时,任播报文的发起方能够自动与使用相同地址的另一台服务器通信,从而实现业务冗余。
      提供更优质的服务。比如,某公司在A省和B省各部署了一台提供相同Web服务的服务器。基于路由优选规则,A省的用户在访问该公司提供的Web服务时,会优先访问部署在A省的服务器,提高访问速度,降低访问时延,大大提升了用户体验。



⦁      地址规划设计建议:
⦁      根据获取到的地址前缀,首先确定子网地址划分为几个功能块(如图中的3+3+6+N),明确各功能块的含义、占用多少bit,避免地址浪费。


⦁      从图中可以看出IPv6数据报文由以下几个部分组成:
⦁      IPv6基本报头(IPv6 Header)
⦁      每一个IPv6数据报文都必须包含报头,其长度固定为40字节。
⦁      基本报头提供报文转发的基本信息,会被转发路径上的所有路由器解析。
⦁      扩展报头(Extension Headers)
⦁      IPv6扩展报头是可能跟在基本IPv6报头后面的可选报头。IPv6数据包中可以包含一个或多个扩展报头,当然也可以没有扩展头,这些扩展报头可以具有不同的长度。IPv6报头和扩展报头代替了IPv4报头及其选项。新的扩展报头格式增强了IPv6的功能,使其具有极大的扩展性。与IPv4报头中的选项不同,IPv6扩展报头没有最大长度的限制,因此可以容纳IPv6通信所需要的所有扩展数据。扩展报头提供报文转发的扩展信息,并不会被路径上所有的路由器解析,一般只会被目的路由器解析处理。
⦁      上层协议数据单元(Upper Layer Protocol Data Unit)
⦁      上层协议数据单元一般由上层协议报头和它的有效载荷构成,有效载荷可以是一个ICMPv6报文、一个TCP报文或一个UDP报文。


⦁      IPv6基本报头也称之为固定报头。固定报头包含8个字段,总长度为40Byte。这8个字段分别为:版本(Version)、流量类型(Traffic Class)、流标签(Flow Label)、净荷长度(Payload Length)、下一个报头(Next Header)、跳数限制(Hop Limit)、源IPv6地址、目的IPv6地址。
⦁      版本(Version)
⦁      该字段规定了IP协议的版本,其值为6。长度为4bit。
⦁      流类别(Traffic Class)
⦁      该字段功能和IPv4中的服务类型功能类似,表示IPv6数据报文的类或优先级。长度为8bit。
⦁      流标签(Flow Label)
⦁      与IPv4相比,该字段是新增的。它用来标识这个数据报属于源节点和目标节点之间的一个特定数据报序列,它需要由中间IPv6路由器进行特殊处理。该字段长度为20bit。一般来说一个流可以通过源/目的IPv6地址和流标签来确定。
⦁      有效载荷长度(Payload Length)
⦁      该字段表示IPv6数据报有效载荷的长度。有效载荷是指紧跟IPv6报头的数据报的其它部分(即扩展报头和上层协议数据单元)。该字段长度为16bit,能表示最大长度为65535Byte的有效载荷。如果有效载荷的长度超过这个值,该字段会置0,而有效载荷的长度用逐跳选项扩展报头中的超大有效载荷选项来表示。
⦁      下一个报头(Next Header)
⦁      该字段定义紧跟在IPv6报头后面的第一个扩展报头(如果存在)的类型,或者上层协议数据单元中的协议类型。该字段长度为8bit。
⦁      跳数限制(Hop Limit)
⦁      该字段类似于IPv4中的TTL(Time to Live)字段。它定义了IP数据报所能经过的最大跳数。每经过一个路由器,该数值减去1,当该字段的值为0时,数据报将被丢弃。该字段长度为8bit。
⦁      源地址(Source Address)
⦁      表示发送方的地址,长度为128bit。
⦁      目的地址(Destination Address)
⦁      表示接收方的地址,长度为128bit。



⦁      IPv6报头设计中对原IPv4报头所做的一项重要改进就是将所有可选字段移出IPv6报头,置于扩展头中。IPv6扩展报头是可能跟在基本IPv6报头后面的可选报头。为什么在IPv6中要设计扩展报头呢?因为在IPv4的报头中包含了所有的选项,每个中间路由器都必须检查这些选项是否存在,如果存在,就必须处理它们。这种设计方法会降低路由器转发IPv4数据包的效率。为了解决转发效率问题,在IPv6中,相关选项被移到了扩展报头中。中间路由器就不需要处理每一个可能出现的选项,这种处理方式提高了路由器处理数据包的速度,也提高了其转发性能。  
⦁      通常,一个典型的IPv6包,没有扩展头。仅当需要路由器或目的节点做某些特殊处理时,才由发送方添加一个或多个扩展头。与IPv4不同,IPv6扩展头长度任意,不受40Byte限制,以便于日后扩充新增选项,这一特征加上选项的处理方式使得IPv6选项能得以真正的利用。但是为了提高处理选项头和传输层协议的性能,扩展头总是8Byte长度的整数倍。

⦁      目前,RFC 2460中定义了以下6个IPv6扩展头:
⦁      逐跳选项报头:该扩展头被每一跳处理,可包含多种选项,如路由器告警选项。
⦁      目的选项报头:目的地处理, 可包含多种选项,如Mobile IPv6的家乡地址选项。
⦁      路由报头:指定源路由,类似IPv4源路由选项,IPv6源节点用来指定信息报到达目的地的路径上所必须经过的中间节点。IPv6基本报头的目的地址不是分组的最终目的地址,而是路由扩展头中所列的第一个地址。
⦁      分段报头:IP报文分片信息,只由目的地处理。
⦁      认证报头:IPSec用扩展头, 只由目的地处理。
⦁      封装安全净载报头:IPSec用扩展头,只由目的地处理。
⦁      逐跳选项扩展头和目的地选项扩展头内部提供选项功能,支持扩展性(如对移动性支持)。选项采用TLV方式。
⦁      如果数据报中没有扩展报头,也就是说数据包只包含基本报头和上层协议单元,基本报头的下一个报头(Next Header)字段值指明上层协议类型。在上例中,基本报头的下一个报头字段值为6,说明上层协议为TCP;如果报文有一个扩展报头,则基本报头的下一个报头(Next Header)字段值为扩展报头类型(在上例中,指明紧跟在基本报头后面的扩展报头为43,也就是路由报头),扩展报头的下一个报头字段指明上层协议类型;以此类推,如果数据报中报括多个扩展报头,则每一个扩展报头的下一个报头指明紧跟着自己的扩展报头的类型,最后一个扩展报头的下一个报头字段指明上层协议。








思考题:
⦁      (简答题)简述IPv6相比于IPv4的优点。
⦁      (简答题)简述IPv6报文头相比于IPv4的不同之处。

答案:
⦁      “无限”地址空间,层次化的地址结构,即插即用,简化的报文头部,安全特性,移动性,增强的QoS特性。
⦁      IPv6与IPv4的不同之处:
⦁      采用了基本报头+扩展报头的报文形式。
⦁      取消了IP的校验:第二层和第四层的校验已经足够健壮了,因此IPv6直接取消了IP的三层校验,节省路由器处理资源。
⦁      取消中间节点的分片功能:中间路由器不再处理分片,只在产生数据的源节点处理,省却中间路由器为处理分片而耗费的大量CPU资源。
⦁      定义定长的IPv6报头:有利于硬件的快速处理,提高路由器转发效率。
⦁      安全选项的支持:IPv6提供了对IPSec的完美支持,如此上层协议可以省去许多安全选项。
⦁      增加流标签:提高QoS效率。

嘀嘀柠柠 发表于 2024-2-28 21:50

每天坚持打卡学习签到!!

飞翔的苹果 发表于 2024-2-29 08:05

感谢分享,有助于工资和学习

月光下的眼睛 发表于 2024-2-29 08:32


每天坚持打卡学习签到!!

韩_鹏 发表于 2024-2-29 08:34

感谢分享                                                

Tough_future 发表于 2024-2-29 09:08

每天坚持打卡学习签到!!

思贤 发表于 2024-2-29 09:36

每天坚持打卡学习签到!!

牛风喜 发表于 2024-2-29 09:49

IPv6学习。每日一积累慢慢变专家

何茂源 发表于 2024-2-29 10:16

感谢分享,有助于工资和学习!

何东升 发表于 2024-2-29 10:21

感谢分享,有助于工资和学习!
页: [1] 2 3 4
查看完整版本: IPV6详细介绍