IPv6地址结构 下载本文

IPv6地址结构 RFC 3513

1.前言

本文描述了ipv6的地址结构,ipv6 地址的文本表示,IPv6的单播地址、任播地址,多播地址以及IPv6结点所必须的地址的定义。

IPv6的不同的地址的基本格式(单播,任播,以及多播)。

2.IPv6选址

IPv6地址是对接口或接口集合的128-bit的标识符。有三种类型的地址:

单播(Unicast):针对一个接口的标识符。一个发向单播地址的数据包被送往该地址所确定的接口。

任播(Anycast):接口的一个集合的标识符(代表性的属于不同结点)。一个发向任播地址的数据包被发送到为该地址所标识的一集接口之一(即,按照路由协议的测量距离的“最近的”接口)。

多播(Multcast):接口的一个集合的标识符。一个发向多播地址的数据包被发往所有以该地址做标识的接口。

在IPv6中,没有广播地址,广播地址的功能被多播地址的能力所取代。

本文中,给地址字段一个种名,如“子网(subnet)。当一个做标识符用的“ID”跟在种名后面”一起使用(如“subset ID)”,则表示种名字段的内容。当它和一个“prefix”的术语一起使用时(如“subset prefix”),它指所有的从左一直到并包含本字段的所有地址。

在IPv6中,除非明确声明排除,则所有全0或全1的字段值是合法的。特定的,前缀可能

包含,或以全0字段值结束。

2.1地址模型

所有类型的IPv6地址分配给接口,而不是分配给结点。一个IPv6单播地址与单个接口相关。由于每个接口只属于一个结点,故任何一个结点的单播地址可用来做为结点的标识。

所有接口必须至少有一个单播link-local地址(见2.8结点必需的地址)。一个接口也可能有多个任意类型的或任意范围的IPv6地址(单播,任播和多播)。不做为来自或发送到非邻居的IPv6包的源或目的的接口不需要用超出链路范围的单播地址。这对于点到点的连接的接口有时是非常方便的。这个地址模型有一个例外:

在执行中,如果将多个物理接口视为一个接口,当它出现在网络层时,一个单播地址或一个单播地址集可能被分配到多个物理接口上。这有利于在多个物理接口上进行负载分担。

当前,IPv6沿用IPv4模型中的子网前缀关联一条链路。多个子网前缀可分配到同一条链路上。

2.2地址的文本表示

有三种惯用方式用文本字符串表示IPv6地址:

1. 首选方式x:x:x:x:x:x:x:x,x是16进制数组成的一块,用以表示一个16bit的二进制数。8个块组成一个地址。

例如:FEDC:BA98:7654:3210:FEDC:BA98:7654:3210 1080:0:0:0:8:800:200C:417A

注意:在每个单独的字段,没有必要写前面的0,但是每个字段至少有一

个数值。

2. 由于分配某些风格的IPv6地址的方法不同,地址中包含一长串0是很平常的。为了易于书写包含多个0bit的地址,可用一种简单语法来压缩这些0。

用“::”来表示一组或多组0。“::”只可在地址中出现一次。“::”也可用来压缩地址中打头和末尾的0。

例如:

1080:0:0:0:8:800:200C:417A 一个单播地址 FF01:0:0:0:0:0:0:101 一个多播地址 0:0:0:0:0:0:0:1 loopback地址 0:0:0:0:0:0:0:0 未指明地址 可表示如下:

1080::8:800:200C:417A 一个单播地址 FF01::101 一个多播地址 ::1 loopback地址 :: 未指明地址

3. 当处理IPv4和IPv6结点都存在的混合环境时,使用一种可替代的形式有时要更方便些。

X 表示处于6个地址高位的16-bit的16进制数;d表示处于地址低4位的8-bit的10进制数(标准IPv4表示式)。例如:

0