IPv6 multicast addresses: Is the Group ID field effectively 112 bits or 32 bits?
I'm trying to understand the rules for choosing an IPv6 multicast address Group ID, and the RFC seems somewhat inconsistent. For example, in RFC 2373 section 2.7 this diagram is shown:
| 8 | 4 | 4 | 112 bits |
+------ -+----+----+---------------------------------------------+
|11111111|flgs|scop| group ID |
+--------+----+----+---------------------------------------------+
... but then in section 2.7.2 it shows this:
| 8 | 4 | 4 | 80 bits | 32 bits |
+------ -+----+----+---------------------------+-----------------+
|111开发者_开发问答11111|flgs|scop| reserved must be zero | group ID |
+--------+----+----+---------------------------+-----------------+
So my question is, are the upper 80 bits of the Group ID field usable or not? If they are usable, is it only under certain circumstances (e.g. when using non-Ethernet networking technology?) What problems should I expect to experience if I set these bits when multicasting over an Ethernet LAN?
According to Stevens UNP, Volume 1, Third edition, there are two formats defined for IPv6 multicast addresses, the flags
field differentiates between them (flags=00PT
):
- if P = 0 then it's normal multicast address. 80 bits are all zero, the T flag tells between well-known and transient addresses,
- if P = 1 then this is a unicast-based address, 80 bits contain length and value of the unicast prefix.
The book mentions RFC 3306 for the latter.
RFC 3307 [Haberman 2002] describes the allocation mechanism for the low-order 32 bits of an IPv6 group address (the group ID), independent of the setting of the P flag.
Nikolai's description of the P
bit in IPv6 multicast addresses is correct, but I don't think that it's the basis of the difference between the two addressing sections in RFC2373.
Section 2.7.2 describes the recommendation to use multicast addresses that use the lower 32 bits as they will map to unique multicast ethernet MAC addresses.
IPv6 multicast addresses map to an ethernet MAC address in the following format (described in rfc2464):
33:33:xx:xx:xx:xx
, where xx:xx:xx:xx
is the lower 32 bits of the IPv6 multicast address.
精彩评论