IPV6概述
IPv6协议是网络层协议的第二代标准协议,作为IPv4的升级版本,IPv6设计之初的目的就是取代IPv4,IPv4在现网中面临的最大问题是地址数量不够用,虽然衍生出网络地址转换等技术来延缓地址匮乏的现象,但是这样会增加网络部署的复杂性,同时也没有从根本上去解决网络地址不够用这样的一个问题,因此互联网工程任务组就设计了IPv6协议规范。
IPv4现状

在2011年2月3号,全球最后468万个IPv4地址全部分配完毕,它也就意味着再也没有多余的IPv4地址可以进行分配了,这是为什么呢,一方面可以看出IPv4是一个非常成功的协议,因为它帮助了全球上亿设备进行互联,同时另一方面也衍生出了它的弊端,它的地址数量非常匮乏,其实这也和互联网的迅速发展有关。大家可以回想一下,在通信发展这10~20年境况中,互联网的发展可以说是非常爆炸的,各种新型应用层出不穷,用户也是呈爆炸的指数进行上升,针对IPv4的地址的需求就越来越多,所以在IPv4中面临最大的问题就是如何解决IPv4地址不够用这个问题,可能在运行IPv4的时候,提出各种技术去延缓扩展IPv4,但是还是无法从根本上去解决它不够用的问题,因此需要一个新的下一代协议,帮助去扩展IPv4地址,那就是IP下一代协议,也就是所学的IPv6。
全球IPv6发展现状

全球IPv6单栈演进趋势观察-中国教育和科研计算机网CERNET



国内关于IPv6的发展推动是比较缓慢的,大家想像一个,IPv6有没有给互联网带来一些革命性的创造呢?比如想到一个应用场景,它只能够由IPv6去实现,而IPv4是无法实现的,好像在现实生活中可能想到这样一个场景,所以从用户和运营商的角度去看待,IPv6虽然帮助解决了IPv4不够用这个问题,降低了部署网络的复杂性和运营成本,但是它没有很大的产业帮助作为一个助力,去推动IPv6的发展,这也是在国内IPv6推动的比较缓慢的一个原因。然而换一个方向去思考,从战略发展的角度去看的话,去学习IPv6和推动相关产业助力IPv6的部署,是一个非常重要的战略意义,因此十分有必要去学习和了解IPv6技术。
Why IPv6 ?

在IPv4中可能会存在很多问题,公网地址已经枯竭了,报头设计方面不太合理,那是因为IPv4的基本报头里面,可能有些内容是不需要去检查的,换句话说就是路由器收到IPv4检查IP报头的时候,只要它存在,就必须去检查,无论它是否有意义,这样就减缓了转发效率,同时在IPv4中路由表也非常庞大,根据逐比特去比较的话,转发效率也是非常缓慢的,最后还有一些比如说针对ARP协议的依赖,ARP协议的请求报文是广播报文,这样就有可能导致广播泛滥等等。于是在IPv4的基础之上,就进行了改良,其实不难理解,IPv4虽然有很多缺陷,但不可否认它依然是一个非常成功的协议,那么在这一个巨人的肩膀上去设计去设计下一代互联网地址协议的时候,肯定要考虑到它诸多的缺陷,因此为了弥补它的不足之处,就针对IPv4进行了改良,那么IPv6就有很多优点,比如说无限的地址,即插即用等功能。
IPv6优势

IPv6的长度一共128bit,相较于不够用的IPv4地址而言,它的数量级别是非常庞大的,所以它又号称地球上的每一粒沙子都可以去分配一个IP地址。
层次化的地址结构,因为IP地址的数量级非常庞大,所以在分配以及规划的时候,它非常具有特征,在分配方面就更加符合规范性,比如说更加有利于做路由聚合以及快速查表,提高数据包转发效率等等功能。
IPv6支持即插即用,它是通过IPv6的无状态地址配置协议来实现这样的一个功能,就能够帮助终端用户网络更加快速的接入到互联网中,实现一个用户通信。
针对IPv4的报文头部,简化了它的报文头部,提高了转发效率,将一些基本的全部包含在IPv6的基本报文头部中,剩下的额外的内容放在扩展报头中,根据需求决定是否添加,
然后相较于IPv4而言,IPv6的安全性就更加高了,它本身没有什么安全方面的机制,而IPv6完善的支持了IPSec,可以实现一个端到端数据通信交互的安全,这也是一个非常关键的因素。
移动性,在移动IP通信过程中,如果是基于IPv4的话,可以存在三角网络,这个时候需要找家乡代理,而使用IPv6之后,数据包不用再转回到家乡代理,提高了数据包的转发效率。
IPv6定义了相关的流标签,在QoS服务里面更好的支持了某些特定的应用程序,为它做一些更增强的QoS服务,在传统的IPv4网络里面,只能根据五元组信息来去确定数据流,最后再执行相应的操作,而在IPv6里面,可以根据源IP加上流标签,去区分所定义的特殊数据流,来更好的提高QoS服务特性。
IPv6过渡技术简介(1)

为什么会存在过渡技术呢?在现网中大量部署的全部是IPv4的网络,如果想要全网改造成IPv6网络的话,需要慢慢的将某些网络一步一步的进行改造,进行变迁,这个时候就会涉及到一些过滤技术,帮助去实现IPv4和IPv6技术互通或者共存这样的一些应用场景,常见的过渡技术一共分为三类,双栈技术,隧道技术和转换技术。
IPv6过渡技术简介(2)

双栈技术也是现网中用的最多的一个过渡技术。现在互联网大部分用的是IPv4网络,如果将它改造成IPv6网络,这个时候可能会产生出一些问题,比如说某些应用程序或者设备,它不支持IPv6网络,如果将该部分的网络改造成IPv6网络的话,终端设备或者说终端一些应用程序它就无法正常运行,困此面对这些比较旧的,应用程序或者设备,一般提出可以使用双栈设备,双栈设备指的是设备既支持IPv4,又支持IPv6,这样就能够保证原有IPv4的网络的用户不受任何影响,同时扩展了IPv6网络的部署,但是它的缺点在于中间运行的设备必须既支持IPv4又支持IPv6,所以针对成本而言,可能是比较高的。但是这也是针对网络规划和演进的一个最佳方案选择。
隧道技术,隧道技术一般比较适用于孤岛互通的技术,什么叫孤岛互通呢?假设现在改造了网络,左边和右边分别都是IPv6,但是中间的网络依然是IPv4,现在中间这两个IPv6要经过IPv4的网络进行互相通信,这个时候应该怎么办?可以使用隧道技术,将IPv6封装在隧道里面,然后通过隧道传递给对端设备,实现两个IPv6网络进行互通,但是这种隧道技术一般只局限于临时性两个孤岛业务互通这样的一个应用场景,不太适用于长期的应用场景,所以它的支持是有限的。
转换技术,地址转换技术,这个技术一般是应用在IPv4和IPv6网络进行互通的这样一个应用场景,比如说按照图中的案例,IPv6要去访问IPv4网络,可能就需要将IPv6的流量转化成IPv4,然后递交给IPv4的网络进行访问,但是这在中间的过程中会遇到很多问题,比如说破坏了端到端的连通的完整性,而且中间的一些设备还要支持一 些ALG的功能,在管理方面审计方面将会变得非常的复杂,因此在使用地址转换技术,去实现IPv4和IPv6网络进行通信的时候,比较麻烦。
通过以上这三种过渡技术的简单介绍,不难看出最适用于简单去部署网络或者说改造网络的可能就是双栈技术。
IPv6路由协议简介

回想前面学习的三大路由协议,包括一些组播路由协议,在介绍这些路由协议的技术原理和相关配置的过程中,都是基于IPv4的网络,如果将网络改造成IPv6网络之后,这些路由会发生怎样的变化。
OSPF,学习的是基于IPv4的OSPFv2版本,如果现在要针对IPv6,就要变迁它的版本,那就是OSPFv3,在OSPFv3的版本里面,它是基于链路去运行的,同时针对LSA的头部信息会发生变迁,比如说取消了LSA头部的IP地址,针对未知的LSA重新定义了它所传播的范围,简单的来概括一下OSPFv3和v2的对比,基本的工作原理是一致的,但是在细微的工作方面是有些不同的。
IS-IS,IS-IS协议是基于TLV,所以针对IPv6的网络,它没有新的版本,只需要添加新的TLV,增加新的网络层协议,就能够标识它能够直接支持IPv6,从这里也不难看出IS-IS它的扩展性是非常强的。
BGP,BGP4+,其实它也不是一个新的协议或者版本,BGP支持多个协议簇,默认情况下,BGP是工作在IPv4的地址簇下,只要进入到相关的IPv6地址簇下进行配置,它就能够支持IPv6这样的一个协议,因此,它的工作原理和普通的BGP基本上是类似的,同时添加了新的网络层可达信息,用来支持IPv6网络。
PIM组播技术,它的工作原理可以说和IPv4是一模一样的,只不过将报文里面的组播地址从IPv4变成了IPv6。
前面还学习过静态路由协议,IPv6也支持静态路由协议,和IPv4的工作原理也是一模一样的,只不过将IPv4地址变成了IPv6地址。
总的来概括一下,前面学习的路由协议全部是基于IPv4的,如果变成IPv6之后,所学习的路由协议是不是会发生重大的改变,需要重新进行学习,在这里其实也不难看出,除了OSPF以外,甚至可以说包括OSPF,基于IPv6的路由协议和IPv4的路由协议工作原理,可以说90%以上是实现一个高度重合,只不过在一些额外的特性方面有一些增加或者说删除,所以从这里也不难看出,学习基于IPv4的路由协议的工作原理是非常有必要的,这样在后续再去学习关于IPv6这些路由协议的时候,一方面可以进行一个对比,第二个方面能够帮助非常快速的去掌握这些协议。
IPv6地址概述
IPv6地址概述
IPv6地址

IPv6地址一共128比特,中间用冒号去分割为8段,每一段16比特,用一个16进制数去表示,IPv4是用点分十进制去表示,如果将IPv6也采用类似的表达方式,这样就会显得IPv6的地址非常长,因此IPv6使用16进制数去表示,其中IPv6里面可能会存在一些16进制数的大A或者小a,在IPv6中这样的一个字母大小写并不敏感,其中IPv6的表达方式和IPv4也是一样的,采用IPv6地址加掩码长度的形式去表示这样的一个IPv6地址。
地址空间

为什么说IPv6是128比特,而不是说是64或者说是92,可能和CPU的处理效率有关,因为当时CPU处理的最大长度只有32比特,随着技术的发展,现在的CPU处理的指数越来越高,可能比较合适的就是128比特,将IPv6的地址和IPv4的地址数量级进行一个对比,IPv4一共有2的32方,约等于43亿,但是看一下IPv6的地址数量级,非常庞大,可以说地球上每平方米可以分配67万亿个地址,所以这么庞大的地址数量级的IP地址,从有限的生命去看的话,很难能够用完这么多地址,因此,大家可以知道为什么它号称地球上的每一粒沙子都可以分配一个IPv6,也就是说它从根本上解决了IPv4地址不够用的这样的一个问题。
IPv6地址格式

IPv6一共分为8段,每段16比特,用16进制去表示,示例中给了一个例子,这样的一个地址数非常多,书写起来不太方便,或者说记忆的时候不太方便,因此采取了一种叫做压缩格式的方法,简单化去书写IPv6的地址。
压缩格式,每一段的前导0可以忽略,但是如果这个0是在最后一位的话,拖尾0不能够被忽略,如果这一段全为0的话,至少保留一个0,按这样的一个压缩格式,可以把上面这一段进行缩写,
2001:DBB:0:1:0:0:0:45ff/64
如果一个或多个连续的全为0,可以用::来表示,连续的多段全为0的话,可以用::来统一进行缩写,但是::在整个IPv6的地址中只能出现一次,按照上面的缩写规则,2001:DBB:0:1::45ff/64。为什么说一个IPv6的地址格式只能出现一次::呢?假如一个IPv6,前半段为::,后半段隔着一个数字也为::,最后将IPv6地址进行还原的时候,怎么去判断这个数字中间,前面有几组连续为0,没有办法去还原这个IPv6地址,有可能还原成一个错误的IPv6,因此,这就是为什么它只允许出现一个::。
第三个是内嵌的IPv4的地址格式,IPv6的地址前96比特为IPv6的地址格式,后32比特直接将IPv4映射过来,采用了这样一个组合型的内嵌式的IPv4地址。
重要的一点是如何将一个IPv6地址进行压缩。
IPv6地址结构

IPv6地址格式也分为两部分,分别为网络前缀和接口标识,网络前缀类似于IPv4中的网络位一样,接口ID类似于IPv4中的主机ID一样,前缀就由子网掩码去确定它有多少位为网络位。

IPv6是通过层次化的地址结构格式,比如说在分配的时候,将IPv6的地址划分得非常精细,其中某些前缀已经固定为某一种类型,比如全球单播地址前缀为2001::/16,还有相关的组播地址、链路本地地址等等。
IPv6地址接口标识

接口标识正常情况下有三种办法,第一种是管理员手工配置,但是非常长,如果接口IP有64比特,需要手工配置64位的这样的一个接口ID,第二个是系统自动生成,比如说Windows系统,去给它分配一个网络前缀,他的系统会根据网络前缀,然后随机生成一个接口ID,将它们组合在一起,成为一个IPv6的地址。第三个在现网中最常用的,就是EUI-64规范,这个规范能够自动生成接口ID,同时非常有规律,唯一的缺点就是能够通过这样的一个接口ID,反推出设备的硬件MAC地址。
硬件MAC地址一共是48比特,也采用16进制去书写,现在将这48比特分为两段,前一段为24比特,后半段为24比特,在中间插入一个FFFE,48比特加16比特刚好就是64比特,将第一字节的第7比特取反,正常情况下,第7比特为0,0代表的是全局管理,取反的意思是将0变成1,那1代表的是本地管理,这样组合在一起就成为了接口ID。简单来概括一下EUI-64规范的标准,就是将设备硬件的MAC地址拆成两段,从中间插入FFFE,然后将第1字节第7比特取反,就成了一个接口ID,然后再加上给它去分配的IPv6网络前缀,就形成了一个IPv6网络地址。
IPv6地址类型

相较于IPv4而言,IPv6的地址类型就非常多了,而且是比较复杂的。
首先将IPv6的地址类型划分为三大类,分别是组播、单播、任播。和IPv4不同的在于多了一个任播地址,但是没有广播地址这个概念了。单播地址又分为很多类型,比如说链路本地,全球单播以及唯一本地,这些不同类型的单播地址,在不同的应用场景分别有不同的作用。组播地址类似于在IPv4中关于组播地址的定义也是一样的,主要是用来标识多个接口,其中最关键的是任播地址,任播地址的定义是标识了一组网络接口,它在现网中一些服务器配置任播地址的时候,能帮助用户去根据路径选择,访问最优的这样的一个服务器,同时能够起到一个冗余的作用。
IPv6常见单播地址-GUA

单播地址分为很多类型,全球单播地址相当于IPv4中的公网地址一样,它由两部分组成,分别是网络部分和接口ID,其中在网络部分又分为三大类,其中001代表了固定比特位,包含了一个45bit的全局路由前缀,中间单独把16bit划分出来,作为划分子网去使用,从这里不难看出,在IPv6地址的划分上面,是非常清晰明了的,这是整个全球单播地址的这样一个划分,它后面还分了很多小的类型。
IPv6常见单播地址-ULA

唯一本地地址类似于在IPv4中的私网地址一样,它有相应的固定比特位,还有一个随机产生的比特位以及子网ID,唯一本地地址使用FC00::/7地址块,但是在现网中只使用FD00::/8这个地址块,剩下的作为扩展去使用的,这里不禁可能会产生一个疑问,IPv6地址数量级别非常多,可以说每一个人都有足够的IP地址去使用,直接使用公网地址不就可以了,为什么还和IPv4一样多了一个私网IP地址,又有什么意义呢?确实是这样,从互联网发展的角度去看,IPv6的产生的根本原因就是为了解决IPv4不够用的问题,而正是因为它庞大的数量级,帮助去解决了这样的一个难题,可以说是完全不需要私网IP地址了,但是从安全的角度去看,如果企业里面所有的地址全部采用IPv6的公网地址在互联网上进行通信,这样针对数据交互的安全性其实是很难保障的,很容易被攻击,所以在IPv6中私有地址的概念,可能它的应用场景就是企业为了隐藏内部的网络,使用私网地址在局域网内部通信,然后再互联网通信的时候,可能还需要通过网络地址转换技术,变成公网交互,这样就隐藏了整个内部网络的架构,不再对外透明化。
IPv6常见单播地址-LLA

链路本地地址,链路本地地址在IPv6中是一个非常重要的地址,因为很多路由协议的邻居发现,就是基于链路本地地址的,链路本地地址它也有固定的比特位,在IPv6邻居发现,包括无状态自动配置协议中都会用到链路本地地址,跟它的名字一样,所谓链路本地是指只在本地的这一条链路内有有效,超过这一链路,这个IP地址就没有任何意义了。从图中可以看到,链路本地地址它是无法跨网段之间通过链路本地地址进行通信的,只能在自己同一网段内进行通信,每一个IPv6地址的接口都必须有一个链路本地地址,它可以通过设备自动生成,或者手工配置。
IPv6组播地址

组播地址,组播地址和IPv4相比,它就稍微显得复杂一点。在IPv6中关于组播地址的定义,前8bit为固定位,后4bit为Flags,标识着这穿上组播地址是永久组播地址还是临时组播地址,永久组播地址指的是比如说一些路由协议,固定的组播地址。再到后面的4个bit,定义了该组播传播的范围,比如说是链路本地范围,站点本地,还是全球范围,再到后面的80bit暂时没有其他定义,固定取0,组播组的组ID为最后的32bit。可以看见,IPv6组播地址,它这样的一个地址格式架构非常层次化,同时为了实现IPv6组播地址和IPv4组播地址更好的去兼容以及转换,正常情况下,就可以将IPv4地址映射到后32bit,Group ID刚好是32bit,对应着IPv4的32bit。
IPv6组播MAC

既然有组播IP,自然需要组播MAC地址,组播的MAC地址前16bit固定为"33:33",后32bit,它是将组播(IPv6地址)的后32bit直接映射到组播MAC中,加上组播MAC前缀,就直接形成了组播MAC地址,使用起来也非常简单方便。
被请求节点组播地址

被请求节点组播地址也是一个非常重要的地址,在介绍关于IPv6的相关协议应用时,会经常用到这个被请求节点组播地址。
只要给IPv6接口配了一个单播或者全球任播地址之后,这就会生成这个地址,这个地址是用于邻居发现机制和地址重复检测功能。该地址前104比特为固定,后24bit由IPv6单播或任播地址拷贝而来,而IPv6单播地址后24bit,如果采用了EUI-64规范,这最后的24比特就是MAC地址的后24比特,然后就变成了被请求节点组播地址。
被请求节点组播地址-示例

在IPv4的通信过程中,需要知道对方的MAC地址进行封装的,而通过IP获取对方MAC地址这一过程,通过ARP这个协议去完成的,而ARP的请求报文又是一个广播地址,但是在IPv6里面取消了广播,因此,在IPv6里面也没有ARP协议了,有什么办法去获取对方MAC地址,可以通过邻居请求和邻居通告这样一个报文,去实现地址解析这一过程,和ARP功能是类似的。在这个报文里面会用到被请求节点组播MAC地址。在发送邻居请求的时候,目的IP就是对方接口单播地址所对应的被请求节点地址,也只有该节点能够匹配的上被请求节点组播地址,也只有这个节点能够接收到这个报文。当它接收到这样的报文之后,报文里包含了PC1自己接口的单播地址,和自己的链路层地址,也就是MAC地址。所以当对方收到这样的一个请求报文之后,就会将 IP和MAC做一个映射,绑定在自己的表中,然后再回复邻居请求报文。以邻居通告报文的形式去回复邻居请求报文,这个里面就包含了自己的IP和 MAC。通过这样的一个方式有点类似于ARP,将IP和MAC地址的映射关系,存放到表中,然后指导数据的转发。
使用被请求节点组播地址去实现ARP这样的一个功能,它的好处在于什么呢?
IPv6任播地址

任播地址其实它是一个应用,在IPv6里面并没有单独的定义,任播地址它的网络前缀是多少,只要这个地址是全球单播地址,都可以手工配置它为全球任播地址,也就是说它只要是一个合法合规的全球单播地址,就能将它设置为任播地址。
任播地址的概念是指标识一组网络接口,正常情况下,它只能作为IPv6的目的地址,不能做为源。
作用,将服务器使用相同的IPv6地址,将该地址设为任播地址,然后用户去访问这个服务器所提供的Web服务功能,它会根据每个用户计算自己到哪个节点,服务器是最优路径,实现一个访问。按图中的案例,服务器1是最短路径,PC1想要访问这个Web服务,是直接访问Web服务器1,而PC2发现它去访问Web服务器2是最短路径,因此它会通过下面的这条路去访问Web服务器2。如果针对PC2而言,Web服务器2发生了故障,它会根据自己重新计算节点的最短路径,去寻找下一个备份服务器,给我提供服务。这个时候就有可能访问Web服务器1,因此,可以发现它一个非常大的优势能够实现一个给用户提供最短路径的这样的一个服务,提升用户的体验感,同时还能够达到一个备份的作用。比如说国内所有DNS的解析,用同一个任播地址,然后部署在所有的各个区域,每个区域用户都根据自己的节点去计算最短路径,任意服务器发生故障,用户自动去计算最短路径 节点,去寻找下一下服务器,来提供服务,这样使网络在部署的时候就更加简便。
IPv6地址和IPv4地址比较

在地址空间上面,IPv6,它的数量级别是非常庞大的,在表示方面采取的是16进制。在地址类型方面取消了广播,多了一个任播地址,在其它方面都有相关的对应项,能够看到IPv4的影子,同时,所谓的A类,B类,C类,这一类的概念,在IPv6中不复存在了,同时广播地址也没有了。
IPv6地址规划举例

IPv6地址,后64bit为接口ID, 前M-bit为网络前缀,预留了相关的比特位为子网,所以在规划的时候,针对子网而言,可以进一步去划分它的相关属性,使在部署的时候更加具有规范性。可以用3bit位来标识相关的网络业务平台。比如说业务平台地址是010,网络地址是000或者001。再到后面3bit为相关的骨干网,再通过6bit区域地域,最后剩下的比特位N-bit就成为子网分配的地址位。
从这里也不难看出,IPv6地址具有非常强大的规范性和非常强大的管理性,方便后续人员进行一系列的操作和维护。
IPv6地址使用建议

在针对网络要部署IPv6地址的时候,需要遵循一些日常规范。
如果从运营商去获取的话,一般前32bit为前缀,如果是企业用户去获取的话,一般长度为48bit,除了一些全球任播地址以外,剩下地址在配置的时候,最好具有连续性,可聚合性以及可扩展性。
推荐给Loopback接口使用128bit的IPv6地址,在P2P网络里面,去分配的一般是要求是127bit前缀。这样在后期做 一些网络聚合的时候是比较方便的,然后针对用户、终端、服务器、网关,推荐使用64前缀,这就是一个简单IP地址使用建议。设计规划的合理性,规范性,这样比较方便于后期去维护。
IPv6报文结构
IPv6报文构成

IPv6报文格式由基本报头、扩展报头以及上层协议数据单元这三部分组成,其中基本报送是所有IPv6报文里面必须包含的这样的一个报头,它提供了基本信息,其中扩展报头是根据需求确定是否要添加的内容,最后就是上层协议处理单元。
IPV6基本报头

IPv6报头和IPv4基本报头的区别,做了两张表格,标出了相同保留字段和取消字段以及新增字段。
首先在IPv4中所定义的版本号源目IP,在IPv6中已经全部保留了,标识着ToS,Total Length,整个数据的长度,TTL,上层协议,在IPv6中只不过换了一个名字,表示的作用是一样的,比如说Hop Limit类似于IPv4中的TTL值。新增了一个流标签,流标签的新增帮助更好的去区分特殊的数据流,在IPv6中可以通过源目IP加上一个流标签,就可以区分所定义的特殊数据流,然后做出相应的一些操作,提高QoS的转发效率。
在IPv4中如果要对数据包分片,由中间的三个标识符来判断,换句话说,这三个标识符,是用于帮助在IPv4中进行分片,而IPv6没有,不需要进行分片,答案是否定的,因为IPv6支持扩展报头,如果需要分片,可以通过扩展报头来定义所要分片的内容。
比如首部头部长度,首部长度是根据Options选项有关的,如果不携带的话就是20字节,如果携带的话就是60字节,它表示了路由记录选项,从这里不难看出,IPv6正是由于这个Options选项最长为60字节,限制了IPv4的扩展,同时它有很多其他的这些选项,每个路由器在处理IPv4基本报头的时候全部要进行检查,只要它存在,无论它是否对本路由器有作用,都需要进行检查,然后再转发数据包,这样就大大影响了路由器的转发效率,而在IPv6中,把所有可选项内容全部放到扩展报头中,基本报头只完成路由器必须要进检查和转发数据包处理的这样的一个字节,这样就进一步提高了转发效率,能够通过支持相关的扩展特性,在后续互联网发展的过程中,如果需要IPv6针对某些特性增加新的支持,只需要添加额外的扩展报头,它就能支持该功能,由此可见,IPv6和IPv4相比,它的扩展能力更加优秀。
第一个,在IPv4中,针对二层和4层已经提出了校验,所以在IPv6中,针对三层就不需要校验了,也就是说上下层已经校验过了,在网络层就不需要校验了,这样就节约了路由器处理资源。第二个,取消了中间节点的分片功能。分片功能在IPv6中中间路由器不再处理任何分片,只有产生数据的源节点去处理,节省了中间设备所需要处理分片所消耗的CPU资源。第三个,定义了定长的IPv6报头,实现快速转发。第四个,在安全选项方面,IPv4针对安全方面是非常薄弱的,没有一些特殊定义,而在IPv6中,它完美提供了IPSec,实现了一个端到端的安全性交互。第五个,增加了流标签,提高了QoS的效率。
IPV6扩展报头(1)

扩展报头指在IPv6基本报头里面有一个叫做next header,这个里面就包含了支持的下一个扩展报头的数据内容,报头扩展长度,长度为8bit,能够支持多个扩展报头,根据用户需求去定义是否去添加额外的扩展报头,然后支持相应的功能。
IPv6扩展报头(2)

在后续互联网发展的过程中,可能还会添加新的额外扩展报头。
扩展报头的规范:第一个,如果扩展报头需要添加多个,必须按照图中列举的,从上而下的顺序,依次去添加,不可以乱序。第二个,除了目的选项报头以外,剩下的所有报头只能出现一次,而目的选项报头最多只能出现两次,一次是在路由报头之前,一次是在上层协议数据报文之前,如果没有路由报头,那么只能出现一次目的选项。
基本报头和扩展报头以及上层协议数据报文之间的一个关系,其实很简单,如果用一句话简单去概括一下,如果已经添加了额外的扩展报头,那么扩展报头里面下一下报头的选项内容,就是下一个扩展报头的协议号标识符。
第一个举的例子是IP基本报文头部,下个头部标识的是6,说明后面已经没有额外的扩展报头,标识的就是TCP的数据。第二个,IP基本报文头部标识的是43,下一个报文头部是路由,在检查下一个路由头部的时候,发现它后面标识的下一个头部就是TCP,代表后面已经没有相关的扩展报头。最后一个多报头的例子,路由报头后面下一个报头标识符44,代表下一个要检查的就是分段报头,分段报头的下一个头标识的是后面要检查的TCP报头,在检查的时候就表示着下一个就是TCP协议数据,用一句简单的话来概括一下,扩展报头是根据设备的需求,去确定是否添加一个或者多个同时按照要求进行排序,依次添加,同时它支持类似于嵌套的这样的一个功能,因为它能够添加多个报头,正是因为类似于嵌套的功能,能表示IPv6报头能够支持多个这样的一个服务,由此可见,IPv6和IPv4对比,确实它的扩展性更强。
本章总结
在IPv6的体系课程中,本章课程简单的介绍了一下IPv6的概述。包含了IPv6它的产生的原因,相较于IPv4而言,它的优势在于什么,其中最重要的在于在学习IPv6的过程中,必须掌握它的地址格式,同时以及它不同的地址类型。
IPv6的基本配置
配置介绍(1)

配置介绍(2)

安全:配置一个双栈网络(1)

案例:配置一个双栈网络(2)

案例:配置一个双栈网络(3)

配置验证
