网络 IPV6

IPv6的地址长度为128位,是IPv4地址长度的4倍。于是IPv4点分十进制格式不再适用,采用十六进制表示。IPv6有3种表示方法。

一、冒分十六进制表示法
  格式为X:X:X:X:X:X:X:X,其中每个X表示地址中的16b,以十六进制表示,例如:
  ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
  这种表示法中,每个X的前导0是可以省略的,例如:
  2001:0DB8:0000:0023:0008:0800:200C:417A→ 2001:DB8:0:23:8:800:200C:417A

二、0位压缩表示法
  在某些情况下,一个IPv6地址中间可能包含很长的一段0,可以把连续的一段0压缩为“::”。但为保证地址解析的唯一性,地址中”::”只能出现一次,例如:
  FF01:0:0:0:0:0:0:1101 → FF01::1101
  0:0:0:0:0:0:0:1 → ::1
  0:0:0:0:0:0:0:0 → ::

三、内嵌IPv4地址表示法
  为了实现IPv4-IPv6互通,IPv4地址会嵌入IPv6地址中,此时地址常表示为:X:X:X:X:X:X:d.d.d.d,前96b采用冒分十六进制表示,而最后32b地址则使用IPv4的点分十进制表示,例如::192.168.0.1与::FFFF:192.168.0.1就是两个典型的例子,注意在前96b中,压缩0位的方法依旧适用

 

/64就是前缀长度,表示前面64位为网络位,作用就是标示网络地址,
这个地址是简写,完整64位是21DA:00D3:0000:2F3B::/64

 

IPv6的报文头部结构如图:

版本号表示协议版本.值为6
流量等级主要用于QoS
流标签用来标识同一个流里面的报文
载荷长度表明该IPv6包头部后包含的字节数,包含扩展头部
下一报头该字段用来指明报头后接的报文头部的类型,若存在扩展头,表示第一个扩展头的类型,否则表示其上层协议的类型,它是IPv6各种功能的核心实现方法
跳数限制该字段类似于IPv4中的TTL,每次转发跳数减一,该字段达到0时包将会被丢弃
源地址标识该报文的来源地址
目的地址标识该报文的目的地址

扩展头部:IPv6报文中不再有“选项”字段,而是通过“下一报头”字段配合IPv6扩展报头来实现选项的功能。使用扩展头时,将在IPv6报文下一报头字段表明首个扩展报头的类型,再根据该类型对扩展报头进行读取与处理。每个扩展报头同样包含下一报头字段,若接下来有其他扩展报头,即在该字段中继续标明接下来的扩展报头的类型,从而达到添加连续多个扩展报头的目的。在最后一个扩展报头的下一报头字段中,则标明该报文上层协议的类型,用以读取上层协议数据

 

地址类型

IPv6协议主要定义了三种地址类型:单播地址(Unicast Address)、组播地址(Multicast Address)和任播地址(Anycast Address)。与原来在IPv4地址相比,新增了“任播地址”类型,取消了原来IPv4地址中的广播地址,因为在IPv6中的广播功能是通过组播来完成的。

单播地址:用来唯一标识一个接口,类似于IPv4中的单播地址。发送到单播地址的数据报文将被传送给此地址所标识的一个接口。

组播地址:用来标识一组接口(通常这组接口属于不同的节点),类似于IPv4中的组播地址。发送到组播地址的数据报文被传送给此地址所标识的所有接口。

任播地址:用来标识一组接口(通常这组接口属于不同的节点)。发送到任播地址的数据报文被传送给此地址所标识的一组接口中距离源节点最近(根据使用的路由协议进行度量)的一个接口。

IPv6地址类型是由地址前缀部分来确定,主要地址类型与地址前缀的对应关系如下:

地址类型地址前缀(二进制)IPv6前缀标识
单播地址未指定地址00…0(128 bits)::/128
环回地址00…1(128 bits)::1/128
链路本地地址1111111010FE80::/10
唯一本地地址1111 110

FC00::/7

(包括FD00::/8和

不常用的FC00::/8)

站点本地地址(已弃用,被唯一本地地址代替)1111111011FEC0::/10
全局单播地址其他形式-
组播地址 11111111FF00::/8
任播地址 从单播地址空间中进行分配,使用单播地址的格式

[11] 

单播地址

IPv6单播地址与IPv4单播地址一样,都只标识了一个接口。为了适应负载平衡系统,RFC3513允许多个接口使用同一个地址,只要这些接口作为主机上实现的IPv6的单个接口出现。单播地址包括四个类型:全局单播地址、本地单播地址、兼容性地址、特殊地址。

一、全局单播地址:等同于IPv4中的公网地址,可以在IPv6 Internet上进行全局路由和访问。这种地址类型允许路由前缀的聚合,从而限制了全球路由表项的数量。

二、本地单播地址:

链路本地地址和唯一本地地址都属于本地单播地址,在IPv6中,本地单播地址就是指本地网络使用的单播地址,也就是IPV4地址中局域网专用地址。每个接口上至少要有一个链路本地单播地址,另外还可分配任何类型(单播、任播和组播)或范围的IPv6地址。

(1)链路本地地址(FE80::/10):仅用于单个链路(链路层不能跨VLAN),不能在不同子网中路由。结点使用链路本地地址与同一个链路上的相邻结点进行通信。例如,在没有路由器的单链路IPv6网络上,主机使用链路本地地址与该链路上的其他主机进行通信。

(2)唯一本地地址(FC00::/7):唯一本地地址是本地全局的,它应用于本地通信,但不通过Internet路由,将其范围限制为组织的边界。

(3)站点本地地址(FEC0::/10,新标准中已被唯一本地地址代替)

三、兼容性地址:在IPv6的转换机制中还包括了一种通过IPv4路由接口以隧道方式动态传递IPv6包的技术。这样的IPv6结点会被分配一个在低32位中带有全球IPv4单播地址的IPv6全局单播地址。另有一种嵌入IPv4的IPv6地址,用于局域网内部,这类地址用于把IPv4结点当作IPv6结点。此外,还有一种称为“6to4”的IPv6地址,用于在两个通过Internet同时运行IPv4和IPv6的结点之间进行通信。

四、特殊地址:包括未指定地址和环回地址。未指定地址(0:0:0:0:0:0:0:0或::)仅用于表示某个地址不存在。它等价于IPv4未指定地址0.0.0.0。未指定地址通常被用做尝试验证暂定地址唯一性数据包的源地址,并且永远不会指派给某个接口或被用做目标地址。环回地址(0:0:0:0:0:0:0:1或::1)用于标识环回接口,允许节点将数据包发送给自己。它等价于IPv4环回地址127.0.0.1。发送到环回地址的数据包永远不会发送给某个链接,也永远不会通过IPv6路由器转发 [12]  

组播地址

IPv6组播地址可识别多个接口,对应于一组接口的地址(通常分属不同节点)。发送到组播地址的数据包被送到由该地址标识的每个接口。使用适当的组播路由拓扑,将向组播地址发送的数据包发送给该地址识别的所有接口。任意位置的IPv6节点可以侦听任意IPv6组播地址上的组播通信。IPv6节点可以同时侦听多个组播地址,也可以随时加入或离开组播组。

IPv6组播地址的最明显特征就是最高的8位固定为1111 1111。IPv6地址很容易区分组播地址,因为它总是以FF开始的

任播地址

一个IPv6任播地址与组播地址一样也可以识别多个接口,对应一组接口的地址。大多数情况下,这些接口属于不同的节点。但是,与组播地址不同的是,发送到任播地址的数据包被送到由该地址标识的其中一个接口

通过合适的路由拓扑,目的地址为任播地址的数据包将被发送到单个接口(该地址识别的最近接口,最近接口定义的根据是因为路由距离最近),而组播地址用于一对多通信,发送到多个接口。一个任播地址必须不能用作IPv6数据包的源地址;也不能分配给IPv6主机,仅可以分配给IPv6路由器

使用协议

地址配置协议

IPv6使用两种地址自动配置协议,分别为无状态地址自动配置协议(SLAAC)和IPv6动态主机配置协议(DHCPv6)。SLAAC不需要服务器对地址进行管理,主机直接根据网络中的路由器通告信息与本机MAC地址结合计算出本机IPv6地址,实现地址自动配置;DHCPv6由DHCPv6服务器管理地址池,用户主机从服务器请求并获取IPv6地址及其他信息,达到地址自动配置的目的。

一、无状态地址自动配置
  无状态地址自动配置的核心是不需要额外的服务器管理地址状态,主机可自行计算地址进行地址自动配置,包括4个基本步骤:
  1. 链路本地地址配置。主机计算本地地址。
  2. 重复地址检测,确定当前地址唯一。
  3. 全局前缀获取,主机计算全局地址。
  4. 前缀重新编址,主机改变全局地址 [14]  。

二、IPv6动态主机配置协议
  IPv6动态主机配置协议DHCPv6是由IPv4场景下的DHCP发展而来。客户端通过向DHCP服务器发出申请来获取本机IP地址并进行自动配置,DHCP服务器负责管理并维护地址池以及地址与客户端的映射信息。
  DHCPv6在DHCP的基础上,进行了一定的改进与扩充。其中包含3种角色:DHCPv6客户端,用于动态获取IPv6地址、IPv6前缀或其他网络配置参数;DHCPv6服务器,负责为DHCPv6客户端分配IPv6地址、IPv6前缀和其他配置参数;DHCPv6中继,它是一个转发设备。通常情况下。DHCPv6客户端可以通过本地链路范围内组播地址与DHCPv6服务器进行通信。若服务器和客户端不在同一链路范围内,则需要DHCPv6中继进行转发。DHCPv6中继的存在使得在每一个链路范围内都部署DHCPv6服务器不是必要的,节省成本,并便于集中管理 [15]  。

路由协议

IPSec机制协议安全的实现IPSec机制协议安全的实现 [16]

IPv4初期对IP地址规划的不合理,使得网络变得非常复杂,路由表条目繁多。尽管通过划分子网以及路由聚集一定程度上缓解了这个问题,但这个问题依旧存在。因此IPv6设计之初就把地址从用户拥有改成运营商拥有,并在此基础上,路由策略发生了一些变化,加之IPv6地址长度发生了变化,因此路由协议发生了相应的改变。

与IPv4相同,IPv6路由协议同样分成内部网关协议(IGP)与外部网关协议(EGP),其中IGP包括由RIP变化而来的RIPng,由OSPF变化而来的OSPFv3,以及IS-IS协议变化而来的IS-ISv6。EGP则主要是由BGP变化而来的BGP4+ [17]  。

一、RIPng
  下一代RIP协议(RIPng)是对原来的RIPv2的扩展。大多数RIP的概念都可以用于RIPng。为了在IPv6网络中应用,RIPng对原有的RIP协议进行了修改:
  UDP端口号:使用UDP的521端口发送和接收路由信息。
  组播地址:使用FF02::9作为链路本地范围内的RIPng路由器组播地址。
  路由前缀:使用128位的IPv6地址作为路由前缀。
  下一跳地址:使用128位的IPv6地址。

二、OSPFv3
  RFC 2740定义了OSPFv3,用于支持IPv6。OSPFv3与OSPFv2的主要区别如下:
  1. 修改了LSA的种类和格式,使其支持发布IPv6路由信息。
  2. 修改了部分协议流程。主要的修改包括用Router-lD来标识邻居,使用链路本地地址来发现邻居等,使得网络拓扑本身独立于网络协议,以便于将来扩展。
  3. 进一步理顺了拓扑与路由的关系。OSPFv3在LSA中将拓扑与路由信息相分离,在一、二类LSA中不再携带路由信息,而只是单纯的拓扑描述信息,另外增加了八、九类LSA,结合原有的三、五、七类LSA来发布路由前缀信息。
  4. 提高了协议适应性。通过引入LSA扩散范围的概念进一步明确了对未知LSA的处理流程,使得协议可以在不识别LSA的情况下根据需要做出恰当处理,提高了协议的可扩展性。

三、BGP 4+
  传统的BGP 4只能管理IPv4的路由信息,对于使用其他网络层协议(如IPv6等)的应用,在跨自治系统传播时会受到一定的限制。为了提供对多种网络层协议的支持,IETF发布的RFC2858文档对BGP 4进行了多协议扩展,形成了BGP4+
  为了实现对IPv6协议的支持,BGP 4+必须将IPv6网络层协议的信息反映到NLRl(Network Layer Reachable Information)及下一跳(Next Hop)属性中。为此,在BGP4+中引入了下面两个NLRI属性。
  MP_REACH_NLRI:多协议可到达NLRI,用于发布可到达路由及下一跳信息。
  MP_UNREACH_NLRI:多协议不可达NLRI,用于撤销不可达路由。
  BGP 4+中的Next Hop属性用IPv6地址来表示,可以是IPv6全局单播地址或者下一跳的链路本地地址。BGP 4原有的消息机制和路由机制没有改变。

四、ICMPv6协议
  ICMPv6协议用于报告IPv6节点在数据包处理过程中出现的错误消息,并实现简单的网络诊断功能。ICMPv6新增加的邻居发现功能代替了ARP协议的功能,所以在IPv6体系结构中已经没有ARP协议了。除了支持IPv6地址格式之外,ICMPv6还为支持IPv6中的路由优化、IP组播、移动IP等增加了一些新的报文类型

 

优势特点

IPv4和IPv6地址对比IPv4和IPv6地址对比

与IPV4相比,IPV6具有以下几个优势

一、IPv6具有更大的地址空间。IPv4中规定IP地址长度为32,最大地址个数为2^32;而IPv6中IP地址的长度为128,即最大地址个数为2^128。与32位地址空间相比,其地址空间增加了2^128-2^32个。

二、IPv6使用更小的路由表。IPv6的地址分配一开始就遵循聚类(Aggregation)的原则,这使得路由器能在路由表中用一条记录(Entry)表示一片子网,大大减小了路由器中路由表的长度,提高了路由器转发数据包的速度。

三、IPv6增加了增强的组播(Multicast)支持以及对流的控制(Flow Control),这使得网络上的多媒体应用有了长足发展的机会,为服务质量(QoS,Quality of Service)控制提供了良好的网络平台。

四、IPv6加入了对自动配置(Auto Configuration)的支持。这是对DHCP协议的改进和扩展,使得网络(尤其是局域网)的管理更加方便和快捷。

H3C IPv6网解决方案H3C IPv6网解决方案

五、IPv6具有更高的安全性。在使用IPv6网络中用户可以对网络层的数据进行加密并对IP报文进行校验,在IPV6中的加密与鉴别选项提供了分组的保密性与完整性。极大的增强了网络的安全性。

六、允许扩充。如果新的技术或应用需要时,IPV6允许协议进行扩充。

七、更好的头部格式。IPV6使用新的头部格式,其选项与基本头部分开,如果需要,可将选项插入到基本头部与上层数据之间。这就简化和加速了路由选择过程,因为大多数的选项不需要由路由选择。

八、新的选项。IPV6有一些新的选项来实现附加的功能

安全性能

原来的Internet安全机制只建立于应用程序级,如E-mail加密、SNMPv2网络管理安全、接入安全(HTTPSSL)等,无法从IP层来保证Internet的安全。IP级的安全保证分组的鉴权和私密特性,其具体实现主要由IP的AH(Authentication Header)和ESP(Encapsulating Security Payload)标记来实现。IPv6实现了IP级的安全。

一、安全协议套:是发送者和接收者的双向约定,只由目标地址和安全参数索引(SPI)确定。

二、包头认证:提供了数据完整性和分组的鉴权。

三、安全包头封装:ESP根据用户的不同需求,支持IP分组的私密和数据完整性。 它既可用于传送层(如TCPUDPICMP)的加密, 称传送层模式ESP,同时又可用于整个分组的加密,称隧道模式ESP。

四、ESPDES-CBC方式:ESP处理一般必须执行DES-CBC加密算法,数据分为以64位为单位的块进行处理,解密逻辑的输入是现行数据和先前加密数据块的与或。

五、鉴权加私密方式:根据不同的业务模式,两种IP安全机制可以按一定的顺序结合,从而达到分组传送加密的目的。按顺序的不同,分为鉴权之前加密和加密之前鉴权

 

 

 

IPV6作为IPV4的续命神术,从被提出到现今,逾26年之久。而IPV6在中国更是犹抱琵琶半遮面,千呼万唤难出来,IPV6取代IPV4之路,为何道阻且长?

 

2011年2月3日,IANA宣布:IPv4地址空间最后5个地址块已经被分配给下属的5个地区委员会。2011年4月15日,亚太区委员会APNIC对外宣布,除了个别保留地址外,本区域所有的IPv4地址基本耗尽。一时之间,IPv4地址作为一种濒危资源身价陡增。

 

 

NAT技术的发明 让推广IPV6没有动力

我国互联网起步晚,所以领悟出IPV4地址不够用这一道理也很晚,但这并不妨碍我国猛士弯道超车敢于创新——我们利用NAT技术创造出了世界上最大的私网。

私网,与公网的概念对应。以邮寄系统作比喻,假设你有一个公网IP,就相当于你在虚拟世界里有了具体的地址,此种情境下,你可以此地址给人通信,别人也可通过你的地址给你传送消息。

但私网就不一样了,就好像你住在一个大院里,你没有具体的地址,所以你所有进出邮件都得由有地址的传达室传达,这种情境下,假如有一封邮件,需要由你本人签收,传达室的大爷就会说:对不起,他没有签收的权利,所有的邮件都得由我中转。于是邮局人员只好作罢。

 

文中多次提及,现整个互联网都是在4网的运作下实现,在4网下,IP地址虽不够,但算是地址一一分配妥当,而IPV6的推广,地址的分配又成了新的问题,地址手动分配是不可能的,自动分配监管又容易出岔子。最好的方法是,互联网从头来过,IPV4地址同时消失,然后静待IPV6地址的分配,这就是难题所在了,IPV6诞生的初衷是为互联网续命,但此种分配方式直接让互联网涅槃。

其次,IPV6地址多,这会诱发什么情景呢?比如IP地址太多,你可以随意注册网站了,随意发布一张自拍,随手一注册,一个公网就诞生了;再有,IPV6加密,导致监管困难,你不仅注册公网简单,国家还难以查到你,这会给国家带来多少安全隐患?我们国家,多灾多难,现在稳定朝前最重要,这样讲,你听懂了么?

 

2、NAT介绍

  NAT是一项神奇的技术,它的出现几乎让IPv4起死回生。更因为NAT给IP网络模型带来了深远影响,其身影遍布网络每个角落。根据一份最近的研究报告,70%的P2P用户位于NAT网关以内。因为P2P主要运行在终端用户的个人电脑之上,这个数字意味着大多数PC通过NAT网关连接到Internet。如果加上2G和3G方式联网的智能手机等移动终端,在NAT网关之后的用户远远超过这个比例。

  求本溯源时却发现一个很奇怪的事实:NAT这一意义重大的技术,竟然没有公认的发明者。NAT第一个版本的RFC作者,只是整理归纳了已被广泛采用的技术。

 

二、NAT工作模型和特点

1、NAT的概念模型

  NAT(网络地址转换):替换IP报文头部的地址信息。NAT通常部署在一个组织的网络出口位置,通过将内部网络IP地址替换为出口的IP地址提供公网可达性和上层协议的连接能力。

  RFC1918规定了三个保留地址段落:10.0.0.0-10.255.255.255;172.16.0.0-172.31.255.255;192.168.0.0-192.168.255.255。这三个范围分别处于A,B,C类的地址段,不向特定的用户分配,被IANA作为私有地址保留。 

  这些地址可以在任何组织或企业内部使用,和其他Internet地址的区别就是,仅能在内部使用,不能作为全球路由地址。这就是说,出了组织的管理范围这些地址就不再有意义,无论是作为源地址,还是目的地址。

  对于有Internet访问需求而内部又使用私有地址的网络,就要在组织的出口位置部署NAT网关,在报文离开私网进入Internet时,将源IP替换为公网地址,通常是出口设备的接口地址。 

  一个对外的访问请求在到达目标以后,表现为由本组织出口设备发起,因此被请求的服务端可将响应由Internet发回出口网关。出口网关再将目的地址替换为私网的源主机地址,发回内部。这样一次由私网主机向公网服务端的请求和响应就在通信两端均无感知的情况下完成了。依据这种模型,数量庞大的内网主机就不再需要公有IP地址了。

 

三、NAT技术特点

1、NAT的优点

  • 节省公共IP地址资源:理论上所有网络端口有多少,一个公网IP就能支持多少台机器联网,解决了IP地址不够用的问题;
  • 安全防护:实际机器隐藏自己的真实IP,仅通过端口来区分是内网中哪台机器,保证了自身安全。

2、NAT的缺点

(1)无法进行端到端的IP跟踪

  NAT在实现上将多个内部主机发出的连接复用到一个IP上,这就使依赖IP进行主机跟踪的机制都失效了。如网络管理中需要的基于网络流量分析的应用无法跟踪到终端用户与流量的具体行为的关系。基于用户行为的日志分析也变得困难,因为一个IP被很多用户共享,如果存在恶意的用户行为,很难定位到发起连接的那个主机。即便有一些机制提供了在NAT网关上进行连接跟踪的方法,但是把这种变换关系接续起来也困难重重。基于IP的用户授权不再可靠,因为拥有一个IP的不等于一个用户或主机。一个服务器也不能简单把同一IP的访问视作同一主机发起的,不能进行关联。有些服务器设置有连接限制,同一时刻只接纳来自一个IP的有限访问(有时是仅一个访问),这会造成不同用户之间的服务抢占和排队。有时服务器端这样做是出于DOS攻击防护的考虑,因为一个用户正常情况下不应该建立大量的连接请求,过度使用服务资源被理解为攻击行为。但是这在NAT存在时不能简单按照连接数判断。总之,因为NAT隐蔽了通信的一端,把简单的事情复杂化了。  

(2)使IP会话的保持时效变短

  因为一个会话建立后会在NAT设备上建立一个关联表,在会话静默的这段时间,NAT网关会进行老化操作。这是任何一个NAT网关必须做的事情,因为IP和端口资源有限,通信的需求无限,所以必须在会话结束后回收资源。通常TCP会话通过协商的方式主动关闭连接,NAT网关可以跟踪这些报文,但总是存在例外的情况,要依赖自己的定时器去回收资源。而基于UDP的通信协议很难确定何时通信结束,所以NAT网关主要依赖超时机制回收外部端口。通过定时器老化回收会带来一个问题,如果应用需要维持连接的时间大于NAT网关的设置,通信就会意外中断。因为网关回收相关转换表资源以后,新的数据到达时就找不到相关的转换信息,必须建立新的连接。当这个新数据是由公网侧向私网侧发送时,就会发生无法触发新连接建立,也不能通知到私网侧的主机去重建连接的情况。这时候通信就会中断,不能自动恢复。即使新数据是从私网侧发向公网侧,因为重建的会话表往往使用不同于之前的公网IP和端口地址,公网侧主机也无法对应到之前的通信上,导致用户可感知的连接中断。NAT网关要把回收空闲连接的时间设置到不发生持续的资源流失,又维持大部分连接不被意外中断,是一件比较有难度的事情。在NAT已经普及化的时代,很多应用协议的设计者已经考虑到了这种情况,所以一般会设置一个连接保活的机制,即在一段时间没有数据需要发送时,主动发送一个NAT能感知到而又没有实际数据的保活消息,这么做的主要目的就是重置NAT的会话定时器。

(3)许多应用层协议无法识别

  NAT工作机制依赖于修改IP包头的信息,这会妨碍一些安全协议的工作。因为NAT篡改了IP地址、传输层端口号和校验和,这会导致认证协议彻底不能工作,因为认证目的就是要保证这些信息在传输过程中没有变化。对于一些隧道协议,NAT的存在也导致了额外的问题,因为隧道协议通常用外层地址标识隧道实体,穿过NAT的隧道会有IP复用关系,在另一端需要小心处理。ICMP是一种网络控制协议,它的工作原理也是在两个主机之间传递差错和控制消息,因为IP的对应关系被重新映射,ICMP也要进行复用和解复用处理,很多情况下因为ICMP报文载荷无法提供足够的信息,解复用会失败。IP分片机制是在信息源端或网络路径上,需要发送的IP报文尺寸大于路径实际能承载最大尺寸时,IP协议层会将一个报文分成多个片断发送,然后在接收端重组这些片断恢复原始报文。IP这样的分片机制会导致传输层的信息只包括在第一个分片中,NAT难以识别后续分片与关联表的对应关系,因此需要特殊处理。

3、NAT的局限性

(1)NAT违反了IP地址结构模型的设计原则。IP地址结构模型的基础是每个IP地址均标识了一个网络的连接。Internet的软件设计就是建立在这个前提之上,而NAT使得有很多主机可能在使用相同的地址,如10.0.0.1。

(2)NAT使得IP协议从面向无连接变成立面向连接。NAT必须维护专用IP地址与公用IP地址以及端口号的映射关系。在TCP/IP协议体系中,如果一个路由器出现故障,不会影响到TCP协议的执行。因为只要几秒收不到应答,发送进程就会进入超时重传处理。而当存在NAT时,最初设计的TCP/IP协议过程将发生变化,Internet可能变得非常脆弱。

(3)NAT违反了基本的网络分层结构模型的设计原则。因为在传统的网络分层结构模型中,第N层是不能修改第N+1层的报头内容的。NAT破坏了这种各层独立的原则。

(4)有些应用是将IP地址插入到正文的内容中,例如标准的FTP协议与IP Phone协议H.323。如果NAT与这一类协议一起工作,那么NAT协议一定要做适当地修正。同时,网络的传输层也可能使用TCP与UDP协议之外的其他协议,那么NAT协议必须知道并且做相应的修改。由于NAT的存在,使得P2P应用实现出现困难,因为P2P的文件共享与语音共享都是建立在IP协议的基础上的。

(5)NAT同时存在对高层协议和安全性的影响问题。RFC对NAT存在的问题进行了讨论。NAT的反对者认为这种临时性的缓解IP地址短缺的方案推迟了Ipv6迁移的进程,而并没有解决深层次的问题,他们认为是不可取的。

 

下面是由 Cloudflare 提供的数据:

Belgium, 56.47%
Ireland, 31.75%
Greece, 20.79%
Germany, 15.87%
Ecuador, 15.62%
Luxembourg, 15.51%
Portugal, 14.07%
Estonia, 13.75%
India, 11.84%
Peru, 10.57%

可以看到,比利时是排第一的,这个国家大约有 56.47% 的数据是通过 IPv6 传输的,这也是得益于比利时最大的运营商 Telenet 的极力推广,该运营商内 96.8% 的数据都已通过 IPv6 传输。


链接:https://www.zhihu.com/question/265026317/answer/289495297
 

其中美国IPv6普及率为34%,印度为33.5%,中国只有2.93%。比利时普及程度最高为52.6%

中国最大的网络运营商中国电信的 IPv6 的部署率仅为 0.96%。目前IPv4 地址空间已经枯竭,运营商智能通过无类别域间路由、网络地址转换(NAT)、运营级 NAT 等技术延长了 IPv4 的寿命。

 

IPV4与IPV6报文头部的区别

IPV4报文头部

在这里插入图片描述

 

ipv6

在这里插入图片描述

在这里插入图片描述

搞个中英互译。
Version(版本):长度4bit版本字段用来标识IP数据包使用的是IPV6协议封装,占4位对应值6(0110)
Traffic Class(通信分类):长度8bit,类似IPV4中的TOS字段。也是8位,用于QoS中标识优先级。
Flow lable(流标签):长度20bit,可用来标记报文的数据流类型,以便在网络层区分不同的报文。通过流标签、源地址、目的地址三元组(源,目IP,流标签)方式就可以唯一标识一条IPV6数据流。因为在IPV4中确定一条数据流要使用五元组(源 目IP,源 目端口,协议号)而流标签可唯一标识数据流,能够更好实现Qos。
Payload length(有效载荷长度):长度20bit,用于表示上层协议报文的大小,也就是除了IPV6的基本头部(40字节)以外的其他部分总长度
Next Header(下一个头部):长度8bit,用来标识上层协议或上层拓展报头,类似IPV4的Protocol。IPV6中增加了拓展报头,用于实现拓展功能如分片,加密等。
Hop Limit(跳数限制):长度8bit,类似IPV4报头中TTL。
源地址(Source IP Address)
源IP地址字段标识了发送该IPv6报文源节点的IPv6地址,占128位。
目的IP地址(Destination IP Address)
目的IP地址字段标识了IPv6报文的接受节点的IPv6地址,占128位。

IPV4和IPV6报文头部的区别:
IPV4报头长度(不包括选项字段):20字节
IPV6报头固定长度(基本):40字节
IPV6去除了IPV4报头中的Header Length(头部长度)、Identification(标识)、Flags(标志)、Fragment Offset(片偏移)、Checksum(头部校验和)、Option(选项)。却只增加了一个Flow lable(流标签)这一个字段。
去除Checksum(头部校验和)字段是因为在二层有FCS做校验,在四层有TCP/UDP等协议的Checksum做校验。所以IPV6报头无需再次校验,可以提升IPV6性能。
在讲IPV4,报头中,提到了头部校验和每经过一个设备,都要进行计算。在IPV6中去掉头部校验和,这样就可以提升转发效率。
先可以来看看IPV4报文分片,和IPV6分片的区别
IPV4报文分片:每个数据链路层协议都有自己的帧格式,在这个格式中有一个字段是MTU(最大传输单元),但数据包被封装成数据帧时,数据包的总长度就必须小于这个MTU的值。
IPV4数据包最大长度65535字节,如果MTU>65535,那么就不用分片。但是如果小于,那就应该吧数据包分成很多份(分片)。
怎么分片:1.每个数据包都有自己的头部,头部中大部分字段是重复的(如源目IP)。
2.校验和必须重新计算(上面讲过,头部校验和每经过一个设备都要重新计算)而校验和在IPV4报文头部中,分片的时候,最少有三个字段改变了(标识,标志,片偏移)
3.如果分片后遇到设备的MTU更小,则需要再次分片。
IPV4报文头部中,使用标识,标志,片偏移来进行数据包分片。
标识(Identification):长度占16位,标志了从源主机发出的数据包,标识与源IP组合确定唯一的数据包。在进行分片时,这个字段必须复制到所有的分片中,这样目的主机接收到所有分片的报文后,才知道把那些分片组装起来。
标志(Flags):3bit。

原文链接:https://blog.csdn.net/qq_45519920/article/details/104485145

========================================================

https://blog.csdn.net/weixin_39517902/article/details/111251648

正文

IPV6报文格式
如下图所示。IP报头部分固定为 40字节长度 ,而有效载荷部分最长不得超过65535字节。
a500961cc57191a5c97a2474ae770008.png

Pv6和IPv4之间的最大差别在于:IP地址的长度从32位到128位。

  • 通过裁剪IPv4报头中的某些字段,或把一些字段移入到扩展报头中,IPv6基本报头的总长度大大减小了。

  • IPv6使用固定长度的基本报头,从而简化了转发设备对IPv6报文的处理,提高了转发效率。

  • 尽管IPv6地址长度是IPv4地址长度的4倍,但IPv6基本报头的长度只有40字节,为固定的IPv4报文头长度(不包括选项字段)的2倍。

IPv6报头格式如下图所示:

c5836938cc929ab95fdd6fdb54b4e130.png

 

IPV6报文各字段作用
  • 版本(Version)

版本字段用来表示IP数据报使用的是IPv6协议封装,占4位,对应值为6(0110)。

  • 通信分类(Traffic Class)

通信分类字段用来标识对应IPv6的通信流类别,或者说是优先级别,占8位,类似于IPv4中的ToS(服务类型)字段。

  • 流标签(Flow Label)

流标签字段时IPv6数据报中新增的一个字段,占20位,可用来标记报文的数据流类型,以便在网络层区分不同的报文。

流标签字段有源节点分配,通过流标签、源地址、目的地址三元组方式就可以唯一标识一条通信流,而不用像IPv4那样需要使用五元组方式(源地址、目的地址、源端口、目的端口和传输层协议号)。

这样发动的最大好处有两点:

一是流标签可以和任意的关联,需要标识不同类型的流(可以是非五元组)时,无需对流标签做改动;

二是流标签在IPv6基本头中,使用IPSec时此域对转发路由器可见,因此转发路由器可以在使用IPv6报文IPSec的情况下仍然可以通过三元组(流标签、源地址、目的地址)针对特定的流进行QoS(质量服务)处理。

  • 有效载荷长度(PayLoad Length)

有效载荷长度字段是以字节为单位的标识IPv6数据报中有效载荷部分(包括所有扩展报头部分)的总长度,也就是除了IPv6的基本报头以外的其他部分的总长度,占20位。

  • 下一个头部(Next Header)

下一个头部字段用来标识当前报头(或者扩展报头)的下一个头部类型,占8位。

每种扩展报头都有其对应的值。下一个头部字段内定义的扩展报头类型与IPv4中的协议字段值类似,但在IPv6数据报中,紧接着IPv6报头的可能不是上层协议头部(当没有扩展报头或者为最后一个扩展报头时才是上层协议头),而是IPv6扩展报头。

这一机制下处理扩展报头更搞笑,因为标识了数据报中对应的上层协议或者扩展报头类型,转发路由器只需处理必须处理的扩展报头,提高了转发效率。

  • 跳数限制(Hop Limit)

跳数限制于IPv4报文中的TTL字段类似,指定了报文可以有效转发的次数,占8位。报文每经过一个路由器结点,跳数值就减1,当此字段值减到0时,则直接丢弃该报文。

  • 源地址(Source IP Address)

源IP地址字段标识了发送该IPv6报文源节点的IPv6地址,占128位。

  • 目的IP地址(Destination IP Address)

目的IP地址字段标识了IPv6报文的接受节点的IPv6地址,占128位。

IPv6扩展报头
在各字段介绍中我们讲到了,IPv6报文中可以携带可选的IPv6扩展报头

IPv6扩展报头是跟在IPv6基本报头后面的可选报头。由于在IPv4的报头中包含了几乎所有的可选项,因此每个中间路由器都必须检查这些选项是否存在。

在IPv6中,这些相关选项被统一移到了扩展报头中,这样中间路由器不必处理每一个可能出现的选项(仅有“逐跳选项”报头是必须要处理的),提高了处理器处理数据报文的速度,也提高了其转发的性能。

IPv6扩展报头附加在IPv6报头目的IP地址字段后面,可以有0个,或者多个扩展报头。

IPv6扩展报头分类:

  • 逐跳选项头(Hop-by-hop Options Header)

本扩展报头类型值为0(在IPv6报头下一个头部字段中定义,下同)。

此扩展报头须被转发路径所有节点处理。

目前在路由告警(RSVP和MLDv1)与Jumbo帧处理中使用了逐跳选项头,因为路由告警需要通知到转发路径中所有结点,而Jumbo帧是长度超过65535字节的报文,传输这种报文需要转发路径中所有结点都能正常处理。

  • 目的选项头(Destination Options Header)

本扩展报头类型值为60。只可能出现在两个位置:
1. 路由头前,这是此选项头被目的节点和路由头中指定的结点处理;
2. 上层头前(任何的ESP头后),此时只能被目的结点处理。

移动IPv6中使用了目的选项头,称为家乡地址选项。

家乡地址选项由目的选项头携带,用以移动结点离开“家乡”后通知接受节点此移动结点对应的家乡地址。

接受节点收到带有家乡地址选项的报文后,会把家乡地址选项中的源地址(移动节点的家乡地址)和报文中源地址(移动节点的转交地址)交换,这样上层协议始终认为是在和移动节点的家乡地址通信,实现了移动漫游功能。

  • 路由头(Routing Header)

本扩展报头类型值为43,用于源路由选项和移动IPv6。

  • 分段头

本扩展报头类型值为44,用于标识数据报的分段,在IPv4中就有对应的字段。当源节点发送的报文超过传输链路MTU(源节点和目的节点之间传输路径的MTU)时,需要对报文进行分段时使用。

  • 认证头

本扩展报头类型值为51,用于IPSec,提供报文验证,完整性检查。

  • 封装安全有效载荷头

本扩展头类型值为50,用于IPSec,提供报文验证、完整性检查差和加密。

  • 上层头

这是用来标识数据报中上层协议类型,如TCP、UDP、ICMP等。

注意:

  • 目的选项头最多出现两次,一次在路由头前,一次在上层协议头前,其他选项头最多只能出现一次。

  • IPv6节点必须能够处理选项头(逐跳选项头除外,它固定只能紧随基本报头之后)在任意位置出现,以保证互通性。

总结

1、对比IPv4数据报头部格式可以看出,IPv6去除了IPv4报头中的头部长度、标识、标志、段偏移、校验和、选项、填充这么多字段,却只增加了流标签这一个字段,因此IPv6报头处理和IPv4报头处理相比大大简化,提高了处理效率。

2、IPv6为了更好地支持各种选项处理,提出了扩展头的概念,新增选项时不必修改现有的结构就能做到,理论上可以无限扩展,体现了优异的灵活性。

以上来源网络,如有侵权,联系删除!

 

 

转载:

https://zhuanlan.zhihu.com/p/45532693

https://www.cnblogs.com/xiugeng/p/12023620.html

https://blog.csdn.net/qq_45519920/article/details/104485145

https://www.zhihu.com/question/265026317

https://baike.baidu.com/item/IPv6/172297#2

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值