简述
本文主要介绍IPv6地址。
含义
IPv6,互联网协议第6版本,英文全称Internet Protocol Version 6,用于替代IPV4的下一代IP协议。IPv6地址是独立接口的标识符,所有的IPv6地址都被分配到接口,而非节点。类别上可分为单播地址、任播地址、组播地址等。
IPv4的地址是32位,地址空间只有4,294,967,296(2的32次方)个地址,减去私有网段、网络ID、广播ID、保留网段、本地环回127.0.0.0网段、组播224.0.0.0网段,大概剩余25亿左右。
IPv6的地址是128位,是IPv4地址长度的4倍,采用十六进制表示。
地址格式
IPv6地址长度为128位,由两个逻辑部分组成:一个64位的网络前缀和一个64位的主机地址。
首选格式:通常表示写成8段,每段为四个十六进制数的形式,用[ :]作为分隔符。如:
fe80:0000:0000:0000:cd04:c16b:9adf:dfe7
前导零压缩法:将每一段的前导零省略,但是每一段都至少应该有一个数字。如
fe80:0:0:0:cd04:c16b:9adf:dfe7
双冒号法:如果连续段位的值都是0,那么这些0就可以简单的以::来表示,每个地址中只能有一个::。如
fe80::cd04:c16b:9adf:dfe7
十六进制数字不区分大小写,但IETF建议使用小写字母。
IPv6+端口号:把IPv6的地址用[]包起来,如:[fe80::cd04:c16b:9adf:dfe7]:45001
地址类型
RFC2373中定义了三种IPv6地址类型,单播地址、任播地址和组播地址。
单播地址(Unicast IPv6 Addresses)
一个地址标识单个接口,发送给单播地址的分组将传输到该地址标识接口。
可聚合全球单播地址(Aggregatable Global Unicast Addresses):可在全球范围内路由和到达的,相当于IPv4里面的global addresses。前三个bit是001,如
2000::1:2345:6789:abcd
本地链路地址(Link-Local Addresses):用于同一个链路上的相邻节点之间通信,相当于IPv4里面的169.254.0.0/16地址。Ipv6的路由器不会转发链路本地地址的数据包。前10个bit是1111 1110 10,由于最后是64bit的interface ID,所以它的前缀总是FE80::/64。如
FE80::1
站点本地地址(Site-Local Addresses):对于无法访问Internet的本地网络,可以使用站点本地地址,这个相当于IPv4里面的private address(10.0.0.0/8, 172.16.0.0/12, and 192.168.0.0/16)。它的前10个bit是1111 1110 11,它最后是16bit的Subnet ID和64bit的interface ID,所以它的前缀是FEC0::/48。
唯一的本地IPv6单播地址(ULA,Unique Local IPv6 Unicast Address):在RFC4193中标准化了一种用来在本地通信中取代单播站点本地地址的地址。ULA拥有固定前缀FD00::/8,后面跟一个被称为全局ID的40bit随机标识符。
未指定地址(Unspecified address):0:0:0:0:0:0:0:0 或者::
当一个有效地址还不能确定,一般用未指定地址作为源地址。未指定地址不能作为一个目标地址来使用。
回环地址(Loopback address):
回环地址::1用于标识一个回环接口,可以使一个节点可以给自己发送数据包。相当于IPv4的回环地址127.0.0.1
兼容IPv4的地址(IPv4-compatible address):形如::w.x,y.z,这里的w.x.y.z是IPv4公共地址的十进制点号表示法,用于IPv6/IPv4节点们(同时支持)在使用仅支持IPv4的网络上用IPv6的协议进行通信。
IPv4映射地址(IPv4-mapped address):形如::FFFF:w.x.y.z,这里的w.x.y.z是IPv4公共地址的十进制点号表示法,用于一个仅支持IPv4的节点表现为一个IPv6的节点
6over4地址:[64bit-prefix]:0:0:WWXX:YYZZ,其中的WWXX:YYZZ是w.x.y.z IPv4公共地址的十进制点号表示法,用于一个使用6to4协议的隧道机制的节点。
6to4地址:2002:WWXX:YYZZ:[SLA ID]:[Interface ID],用于表示一个使用6to4协议的隧道机制节点。
任播地址(Anycast Address)
任意点传送地址是一组接口的地址,发送到一个任意点传送地址的信息包只会发送到这组接口中的一个(根据路由协议对距离的测定,该接口距离发送点最近)。
组播地址(Multicast Address)
IPv6组播地址是由固定的8bit地址前缀FF00::/8,4bit的标志位,4bit组播范围和112bit多播组标识符(组ID)组成。
一个多播地址标识位于不同设备上的一组接口,发送给多播地址的分组将传输到该地址标识的所有接口,多播地址不会作为源地址出现。
FF01::到FF0F::的多播地址是保留专用地址;FF01::1 节点本地范围所有节点多播地址;FF02::1 链路本地范围所有节点多播地址;FF01::2 节点本地范围所有路由器多播地址;FF02::2 链路本地范围所有路由器多播地址;FF05::2 站点本地范围所有路由器多播地址;