认识IP V6 地址

来源:互联网 发布:知乎 山下智博 编辑:程序博客网 时间:2024/05/01 10:59

IPV6

IPv6是"Internet Protocol Version 6"的缩写,也被称作下一代互联网协议,它是由IETF小组(Internet工程任务组Internet Engineering Task Force)设计的用来替代现行的IPv4(现行的IP)协议的一种新的IP协议。  
    我们知道,Internet的主机都有一个唯一的IP地址,IP地址用一个32位二进制的数表示一个主机号码,但32位地址资源有限,已经不能满足用户的需求了,因此Internet研究组织发布新的主机标识方法,即IPv6。在RFC1884中(RFC是Request for Comments document的缩写。RFC实际上就是Internet有关服务的一些标准),规定的标准语法建议把IPv6地址的128位(16个字节)写成8个16位的无符号整数,每个整数用四个十六进制位表示,这些数之间用冒号(:)分开,例如:3ffe:3201:1401:1280:c8ff:fe4d:db39

    IPv6相对于现在的IP(即IPv4)有如下特点:

    扩展的寻址能力  
    IPv6将IP地址长度从32位扩展到128位,支持更多级别的地址层次、更多的可寻址节点数以及更简单的地址自动配置。通过在组播地址中增加一个“范围”域提高了多点传送路由的可扩展性。还定义了一种新的地址类型,称为“任意播地址”,用于发送包给一组节点中的任意一个;
    简化的报头格式  
    一些IPv4报头字段被删除或变为了可选项,以减少包处理中例行处理的消耗并限制IPv6报头消耗的带宽;
    对扩展报头和选项支持的改进  
    IP报头选项编码方式的改变可以提高转发效率,使得对选项长度的限制更宽松,且提供了将来引入新的选项的更大的灵活性;
    标识流的能力  
    增加了一种新的能力,使得标识属于发送方要求特别处理(如非默认的服务质量获“实时”服务)的特定通信“流”的包成为可能;
    认证和加密能力  
    IPv6中指定了支持认证、数据完整性和(可选的)数据机密性的扩展功能。

IPv6地址语法 

IPv4地址表示为点分十进制格式,32位的地址分成48位分组,每个8位写成十进制,中间用点号分隔。而IPv6128位地址则是以16位为一分组,每个16位分组写成4个十六进制数,中间用冒号分隔,称为冒号分十六进制格式。  

下面试举一例,先看一个以二进制形式表示的IPv6地址:   

 0010000111011010000000001101001100000000000000000010111100111011  

 0000001010101010000000001111111111111110001010001001110001011010  

 该128位地址以16位为一分组可表示为: 

 0010000111011010 0000000011010011 0000000000000000 0010111100111011 

 0000001010101010 0000000011111111 1111111000101000 1001110001011010 

 每个16位分组转换成十六进制并以冒号分隔: 

 21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A 

 IPv6可以将每4个十六进制数字中的前导零位去除做简化表示,但每个分组必须至少保留一位数字。去除前导零位后,上述地址可写成: 

 21DA:D3:0:2F3B:2AA:FF:FE28:9C5A 

零压缩 

某些类型的地址中可能包含很长的零序列,为进一步简化表示法,IPv6还可以将冒号十六进制格式中相邻的连续零位进行零压缩,用双冒号“::”表示。 例如链路本地地址FE80:0:0:0:2AA:FF:FE9A:4CA2可压缩成FE80::2AA:FF:FE9A:4CA2;多点传送地址FF02:0:0:0:0:0:0:2压缩后,可表示为FF02::2 

要想知道“::”究竟代表多少个“0”,我们可以做这样的计算:用8去减压缩后的分组数,再将结果乘以16。例如,在地址FF02::2中,有两个分组(“FF02”分组和“2”分组),那么被压缩掉的“0”共有(8-2*16 = 96位。 

值得注意的是,在一个特定的地址中,零压缩只能使用一次,也就是说,在任意一个冒号分十六进制格式中只能出现一个双冒号“::”,否则我们就无法知道每个“::”所代表的确切零位数了。 

IPv6 前缀 

前缀是地址中具有固定值的位数部分或表示网络标识的位数部分。IPv6的子网标识、路由器和地址范围前缀表示法与IPv4采用的CIDR标记法相同,其前缀可书写为:地址/前缀长度。例如21DA:D3::/48是一个路由器前缀,而21DA:D3:0:2F3B::/64是一个子网前缀。 

注意:在IPv4实现中普遍使用的被称为子网掩码的点分十进制网络前缀表示法在IPv6中已不再使用,IPv6仅支持前缀长度表示法。

IPv6地址类型 

    IPv6地址是独立接口的标识符,所有的IPv6地址都被分配到接口,而非节点。由于每个接口都属于某个特定节点,因此节点的任意一个接口地址都可用来标识一个节点。IPv6有三种类型地址: 

   

单播

用于确认单独接口的一个地址。发往单播地址的数据包被发送到该地址所确认的接口。按照数据包的可到达性,单播支持以下类型的地址

1、全球单播地址

能够全球到达和确认的地址。全球单播地址由一个全球选路前缀、一个子网ID 和一个接口ID 组成。当前全球单播地址分配使用的地址范围从二进制值001 (2000::/3) 开始,即全部IPv6 地址空间的八分之一。

2、站点本地单播地址:

只能在客户站点内到达和确认的地址,类似于IPv4 专用地址10.0.0.0/8 192.168.0.0/16。站点本地单播地址包含一个FEC0::/10 前缀、子网ID 以及接口ID

3、链路本地单播地址:

只能由与同一本地链路相连的节点到达和确认的地址。链路本地单播地址使用FE80::/ 10 前缀和一个接口ID

 单播地址interface ID 的64位的来历

        另外单播还包括一些其他特殊的地址 

  在IPv4IPv6的迁移过渡期,两类地址并存,我们还将看到一些特殊的地址类型:   

  IPv4兼容地址 

  IPv4兼容地址,可表示为0:0:0:0:0:0:w.x.y.z::w.x.y.zw.x.y.z是以点分十进制表示的IPv4地址),用于具有IPv4IPv6两种协议的节点使用IPv6进行通信。    

  IPv4映射地址 

  IPv4映射地址是又一种内嵌IPv4地址的IPv6地址,可表示为0:0:0:0:0:FFFF:w.x.y.z::FFFF:w.x.y.z。这种地址被用来表示仅支持IPv4地址的节点。    

  6to4地址 

6to4地址用于具有IPv4IPv6两种协议的节点在IPv4路由架构中进行通信。6to4是通过IPv4路由方式在主机和路由器之间传递IPv6分组的动态隧道技术。

 

任播

任播地址是分配给一套属于不同节点的接口的全球地址(如图所示)。发往一个任播地址的数据包被发送到

最近的接口。任播地址具有以下限制:

任播地址不得用作IPv6 数据包的源地址。

任播地址不得分配给IPv6 主机,但是可以分配给IPv6 路由器。

 

 

组播

与在IPv4 中一样,组播地址被分配给一套属于不同节点的接口。发往组播地址的数据包被发送到该地址所

确定的所有接口。IPv6 组播地址使用FF00::/8 前缀,全部IPv6 地址空间的1/256

IP v6地址目前分配状况:

 

补充一些常用的地址前缀

::/128      即0:0:0:0:0:0:0:0,只能作为尚未获得正式地址的主机的源地址,不能作为目的地址,不能分配给真实的网络接口
::1/128     即0:0:0:0:0:0:0:1,回环地址,相当于ipv4中的localhost(127.0.0.1),ping locahost可得到此地址

2001::/16     全球可聚合地址,由 IANA 按地域和ISP进行分配,是最常用的IPv6地址
2002::/16     6 to 4 地址,用于6to4自动构造隧道技术的地址
3ffe::/16     早期开始的IPv6 6bone试验网地址
注:上面三类属于单播地址,都是目前互联网上广泛应用的IPv6地址

fe80::/10     本地链路地址,用于单一链路,适用于自动配置、邻机发现等,路由器不转发
ff00::/8      组播地址

::A.B.C.D          其中<A.B.C.D>代表ipv4地址,兼容IPv4的IPv6地址。自动将IPv6包以隧道方式在IPv4网络中传送的IPv4/IPv6节点将使用这些地址
::FFFF:A.B.C.D     其中<A.B.C.D>代表ipv4地址,例如 ::ffff:202.120.2.30 ,是IPv4映射过来的IPv6地址,它是在不支持IPv6的网上用于表示IPv4节点

原创粉丝点击