曲径通幽论坛

标题: IPv6 Multicast 地址 (多点广播地址) [打印本页]

作者: beyes    时间: 2013-8-10 10:08
标题: IPv6 Multicast 地址 (多点广播地址)
IPv6 multicast 地址与 IPv4 一样是用来代表一组网络接口,也就是多个节点可加入到同一 multicast 组,它们都可通过共同的 multicast 地址来监听 multicast 请求。一个节点也可以加入多个 multicast 组,也就是它可以同时通过多个 multicast 地址来监听 multicast 流量,下图是 multicast 地址结构:
[attach]1735[/attach]

其中,最高位 8 位固定为 1111 1111,也就是十六进制的 FF 。

Flags 目前有以下两值:

1. 0000 :表示它是由 IANA 组织 ( Internet Assigned Numbers Authority )固定分配给 well-known multicast 地址的地址。

2. 0001 :表示它尚未被 IANA 固定分配使用,是一个临时 multicast 地址。

scope 用来表示 multicast 地址可发送的范围,当路由器收到 multicast 地址的数据包时,它可以根据 socpe 来决定是否要路由此数据包。Scope 最常见的值为 1 (表示 node-local scope。node-local : 发送给节点自己),2 ( 表示 link-local scope ) 和 5 ( 表示 site-local )。举例来说,如果路由器收到一个要发送到 FF02::2 的数据包时,由于数据包的范围为 link-local,因此路由器并不会将此数据包发送到超出此本地链接(local link)以外的链接。

Goup ID 用来代表此组的唯一组 ID,它占用 112 位,不过 RFC 3513 建议只使用最低的 32 位,其余的填 0.

从 FF01:: 到 FF0F:: 是保留的 well-known multicast 地址,例如:
FF01::1 ( node-local scope all-nodes multicast address )
FF02::1 ( link-local scope all-nodes multicast address )
FF01::2 ( node-local scope all-routers multicast address )
FF02::2 ( link-local scope all-routers multicast address )
FF05::2 ( site-local scope all-routers multicast address )

solicited-node multicast 地址
在 IPv4 中是利用 ARP request 来进行 IP 地址解析工作(解析物理层地址,以 Ethernet 网络来说就是 MAC 地址),由于它是 MAC-level 的广播数据包,因此会干扰到网段内的所有节点。在 IPv6 中通过发出 Neighbor Solicitation 信息来进行 IP 地址解析工作,而且为了减少对链接内所有节点的干扰,因此信息目的地不是采用 link-local scope all-nodes multicast 地址,而是 solicited-node multicast 地址,此地址是从网络接口的 unicast 地址转换而来,如下图所示:
[attach]1736[/attach]

其前缀为 FF02::1:FF00:0/104 ,最后的 24 位是获取自 unicast 地址的 Interface ID 的最右 24 位。

注意,IPv6 不再使用广播地址,所有原先在 IPv4 中使用广播地址的方式,在 IPv6 中都改用 multicast 地址。

例如某台主机的网络接口的 link-local IPv6 地址为 FE80::10DF:D9F4:DE2D:369B,由于其最右边 24 位为 2D:369B,故其 solicited-node multicast 地址为 FF02::1:FF2D:369B,该主机会注册并拥有此地址,并通过此地址来监听 IP 地址解析请求。

Anycast 地址 (任意点广播地址)
Anycast 地址可被分配给多个网络接口(通常位于不同的节点上),发送到 anycast 地址的数据包,并不是被发送到拥有此 anycast 地址的所有节点,而只会发送到其中一个节点,它是距离最近的节点(指路由距离)。

Anycast 地址目前只能够用在数据包的目的地址上,而且只能分配给路由器来使用。Anycast 地址是来自 unicast 地址,因此它的表示法与 unicast 没有差别,且它的发送范围与所使用的 unicast 地址一样。

在 Anycast 地址中有一个提前定义好的地址:subnet-Router anycast 地址,它是路由器必须支持的地址,发送给 subnet-router anycast 的数据包,会被发送到该子网中的一个路由器上。subnet-router 地址的格式如下图所示:
[attach]1737[/attach]

其中的 subnet prefix 表示网络接口所在的链接 (link, 也可以说是子网),其长度视不同的 unicast 地址有所不同,后面剩下的位都是 0 。




欢迎光临 曲径通幽论坛 (http://www.groad.net/bbs/) Powered by Discuz! X3.2