本帖最后由 雨夜 于 2010-9-26 23:28 编辑
多播地址
多播地址是一组节点的标识符,由高位字节FF或二进制表示的 1111 1111 来标识。一个节点可以属于多个组播。ipv4中存在多播,但在ipv6中进行了重新定义和改进。多播地址格式如下:
+++++++++++++++++++++++++++++++++
|1111 1111| 标志| 范围| 组标识符 +
+++++++++++++++++++++++++++++++++
8位 4位 4位 112位
第一个字节表示该地址为多播地址。接下来的4位是标志(Flag),定义如下:标志字段的前3位必须是0;它们是为将来的使用而保留的。标志字段的最后一位表示该地址是否被永久分配,也就是说,它是一个由IANA分配的共知多播地址;还是一个临时的多播地址。如果最后一位是0,表示这是一个众所周知的地址;1则表示这是一个临时地址。范围(Scope)字段用于限制一个多播地址的范围
范围取值 说明
0 保留
1 本地节点范围
2 本地链路范围
3、4 未分配
5 本地站点范围
6、7 未分配
8 本地组织范围
9、A、B、C、D 未分配
E 全局范围
F 保留
共知的多播地址
地址的最后112位携带着多播组ID。RFC 2375定义了那些被永久分配的ipv6多播地址的初始分配方案。有些地址分配给固定的范围,有些地址则在所有的范围内都有效。
本地接口或节点范围 说明
FF01:0:0:0:0:0:0:1 全节点地址
FF01:0:0:0:0:0:0:2 全路由器地址
本地链路范围 说明
FF02:0:0:0:0:0:0:1 全节点地址
FF02:0:0:0:0:0:0:2 全路由器地址
FF02:0:0:0:0:0:0:3 未分配
FF02:0:0:0:0:0:0:4 DVMRP 路由器
FF02:0:0:0:0:0:0:5 OSPFIGP
FF02:0:0:0:0:0:0:6 OSPFIGP指定的路由器
FF02:0:0:0:0:0:0:7 ST路由器
FF02:0:0:0:0:0:0:8 ST主机
FF02:0:0:0:0:0:0:9 RIP路由器
FF02:0:0:0:0:0:0:A EIGRP 路由器
FF02:0:0:0:0:0:0:B 移动代理
FF02:0:0:0:0:0:0:D 所有的PIM路由器
FF02:0:0:0:0:0:0:E RSVP封装
FF02:0:0:0:0:0:1:1 链路名称
FF02:0:0:0:0:0:1:2 所有DHCP代理
FF02:0:0:0:0:1:FFXX:XXXX 请求节点地址
本地站点范围
FF05:0:0:0:0:0:0:2 所有路由器
FF05:0:0:0:0:0:1:3 所有的DHCP服务器
FF05:0:0:0:0:0:1:4 所有的DHCP中继
FF05:0:0:0:0:0:1:1000 到FF05:0:0:0:0:0:1:13FF 服务地点
举个例子,让我们来看看RFC 2373中介绍的一个地址。有一个为所有NTP服务器定义的多播组ID。该多播组ID是0x101。该组ID可以使用不同的范围值,如下:
FF01:0:0:0:0:0:0:101 表示在同一节点上的所有NTP服务器都是发送方
FF02:0:0:0:0:0:0:101 表示在同一链路上的所有NTP服务器都是发送方
FF05:0:0:0:0:0:0:101 表示在同一站点上所有NTP服务器都是发送方
FF0E:0:0:0:0:0:0:101 表示因特网上所有NTP服务器
临时分配的多播地址只在一个定义好的范围内才有意义
注意:多播地址不应该用作IPv6数据包中的源地址,或出现在任何路由器报头中。
请求节点多播地址
请求节点多播地址是每个节点必需为分配给它的每个单播地址和任播地址加入的一个多播地址。它用于重复地址检测过程。RFC 2373中规定了请求节点多播地址。
该地址是通过取出一个IPv6地址的低24位,并把这些位附加到共知的前缀FF02:0:0:0:0:1:FF00::/104之上而形成的。因此,请求节点多播地址范围是从
FF02:0:0:0:0:1:FF00:0000到FF02:0:0:0:0:1:FF00:FFFF:FFFF.
例如,我们主机的MAC地址为00-22-A1-01-C2-A1。IPv6地址为fe80::202:a1ff:fe01:c2a1。于是,相应的请求节点多播地址就是FF02::1:ff01:c2a1。如果该主机具有其他的IPv6单播或任播地址,那么每个地址都将有一个相应的请求节点多播地址。
原创文章,作者:雨夜,如若转载,请注明出处:https://www.ipv6s.com/basis/20100926155.html