2

When IPv6 Stateless Address Autoconfiguration is happening, an interface/node has to join the all-nodes multicast address and the solicited-node multicast address AFTER forming a "tentative" link-local address and BEFORE sending a Neighbor Solicitation in process of Duplicate Address Detection (RFC 4862 - Section 5.4.2.).

A node joins a multicast address by sending a Multicast Listener Discovery (MLD) report message (either MLDv1 or MLDv2) (RFC 4862 - Section 5.4.2.).

Both MLDv1 and MLDv2 include such a scenario in which a node sends an unsolicited Report:

  • MLDv1 - RFC 2710 - 4. Protocol Description:
    ...when a node starts listening to a multicast address on an interface, it should immediately transmit an unsolicited Report for that address on that interface, in case it is the first listener on the link.

  • MLDv2 - RFC 3810 - 2.2. Exchanging Messages between the Querier and the Listening Nodes:
    ...if the listening state of a node changes, the node immediately reports these changes through a State Change Report message.

In section 8 (Interoperation with MLDv1) of the MLDv2 protocol the interoperation with MLDv1 is specified as follows:

  • For routers:
    In order to be compatible with MLDv1 hosts, MLDv2 routers MUST operate in version 1 compatibility mode. ... The compatibility mode of a multicast address is determined from the Multicast Address Compatibility Mode variable, which can be in one of the two following states: MLDv1 or MLDv2.

  • For hosts:
    In order to be compatible with MLDv1 routers, MLDv2 hosts MUST operate in version 1 compatibility mode. ... A host's compatibility mode is determined from the Host Compatibility Mode variable which can be in one of the two states: MLDv1 or MLDv2.

If my assumption is correct, that means, that the Compatibility Mode variable of both router and host MUST initially be set to MLDv1, therefor neither the periodically send queries of the router nor the report message send by the host are MLDv2 messages.

MLDv2 got updated by RFC 4606 which does NOT modify the above behaviour:

RFC 4606 - Section 2.2.1.:
An SSM-aware host operating according to [IGMPv3, MLDv2] could send an IGMPv1, IGMPv2, or MLDv1 report for an SSM address when it is operating in "older-version compatibility mode." This is an exceptional (error) condition, indicating that the router(s) cannot provide the SFGMP support needed for SSM, and an error is logged when the host enters compatibility mode for an SSM address, as described below.

RFC 4606 - Section 3.5.:
An IGMPv1/v2 or MLDv1 report for an address in the source-specific range could be sent by a non-SSM-aware host. A router SHOULD ignore all such reports and specifically SHOULD NOT use them to establish IP forwarding state. This is a MODIFICATION to [IGMPv3, MLDv2].

To summarize: According to RFC 3810 (MLDv2) hosts MUST operate in version 1 compatibility mode, which means the report message send to join the all-nodes multicast address and the solicited-node multicast address is an MLDv1 message. According to RFC 4606 a MLDv2 router will ignore that report completely which means MLD is NOT WORKING AT ALL!


Questions:

  1. Is my assumption correct, that the initial compatibility mode version 1 means, that host and router will send MLDv1 messages?
    If not, what does compatibility mode version 1 mean then?

  2. If my assumption is correct, am I correct with the assumption that RFC 4606 does not modify that behvaiour?
    If not, where exactly is written that hosts will not send MLDv1 messages?

3

1. If not, what does compatibility mode version 1 mean then?

According to Mr. Rolland Vida, the author of RFC 3810, with routers/hosts MUST operate in version 1 compatibility mode is meant, that hosts/router should have version compatibility enabled. If MLDv2 is implemented in routers/host, they will start in Compatibility Mode MLDv2 (so the Compatibility Mode variable is set to MLDv2)

2. If not, where exactly is written that hosts will not send MLDv1 messages?

Because routers and host start in Compatibility Mode MLDv2, the host will send an MLDv2 message (more specifically an MDLv2 report message).

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.