Hi
Interesting draft. I need to think more about it, but I have a
comment below.
On 3/29/2013 2:52 AM, Mark Smith wrote:
Hi Carsten,
Thanks very much for your review and comments.
----- Original Message -----
From: Carsten Bormann <[email protected]>
To: Mark Smith <[email protected]>
Cc: "[email protected]" <[email protected]>
Sent: Friday, 29 March 2013 7:21 PM
Subject: Re: "MLDv2 Procedures for Link-Layer Unicast Delivery of Multicast"
Hi Mark,
interesting draft. I'm interested in this from a 6LoWPAN perspective --
everything we can do to get rid of multicasts is very good for 6LoWPANs.
I don't understand how you think NUD would work with this (3.2) -- are you
saying that the multicast emitter actively runs NUD to the targets?
Yes. NUD is performed on the link-local addresses used as the source addresses
for the MLDv2 messages.
Originally when I was thinking about this, I thought that might be one of the things that
would need to be changed. However, when I reviewed the part of RFC3810 (MLDv2) related to
MLD Report source addresses, I came across the following in 5.2.13, "Source
Addresses for Reports":
On the other hand, routers MUST silently discard a message that is
not sent with a valid link-local address, without taking any action
on the contents of the packet. Thus, a Report is discarded if the
router cannot identify the source address of the packet as belonging
to a link connected to the interface on which the packet was
received. A Report sent with the unspecified address is also
discarded by the router. This enhances security, as unidentified
reporting nodes cannot influence the state of the MLDv2 router(s).
It seems to me that the only way to be sure a MLDv2 source link-local address
is valid and belongs to the link is to test it's existence, which is of course
what neighbor discovery does using an NS/NA transaction. So the existing ND
neighor presence discovery mechanism can, and I think the above implies should
be used to determine MLDv2 link-local source address validity, and therefore
the ND NUD mechanism can then be used to determine when the neighbor
disappears, and therefore link-layer unicasting of mulicast IPv6 should stop
for that now absent listener.
(Out of interest, I checked to see if this sort of link-local address validity
checking is being performed by Linux and one of the BSDs (I can't remember
which one). Neither of them did, all they checked was that the source address
of the MLDv2 report was a link-local address. So they're vulnerable to MLDv2
reports with spoofed, non-existent link-local addresses ...)
I'm not at all surprised it's not checked. But note that even if such
a check is in place, there is a certain risk of spoofing. It's not that
hard to guess some valid link-local addresses. E.g. if SLAAC, just look
at the global addresses used. I'm wondering a bit if we should have, or
maybe still should, use hop limit 255 for MLDv2.
Stig
MLDv2 is a protocol that runs between multicast listeners and multicast routers.
How do you handle multicast emitters that aren't multicast routers?
The main use case scenario I've been thinking about is multicast IPTV over a
carrier network, towards a residential customer, where the last hop in the
customer's home is 802.11, and where the multicast performance problems appear.
So the multicast source servers would be wired, and on segments where the
volumes of multicast traffic didn't impact link performance.
My main overriding goals were to avoid changes to the end-hosts, leaving
changes to be made to the multicast router's behaviour (e.g. residential CPE),
and to reduce the number of multicasts as much as possible, but not eliminate
them. Low levels of multicast on 802.11 works ok, it's the high levels that
cause problems.
If a host implementation can be changed, then it could implement the procedures
I've described. It could listen to the MLDv2 reports (as non-Querier multicast
routers do), do neighbor discovery/NUD on the MLDv2 source link-local
addresses, and then proceed to link-layer unicast the multicast IPv6 traffic to
its on-link neighbors.
How do you wean MLDv2 itself off multicast? (Now that would be my holy grail.
We didn't get around to do this in RFC 6775 -- we didn't think we'd
have to, since we were addressing a subnet where subnet-multicast doesn't
work at all.) Maybe efficient-ND could do something here.
I've put a little bit of thought into this. If you're able to change the host and the
router implementations, then I've thought might be able to eliminate multicasts by
treating the broadcast/multicast link as a Non-Broadcast Multi-Access link, and then use
RFC2491, "IPv6 over Non-Broadcast Multiple Access (NBMA) networks" methods.
Briefly looking at it, it does mention how to handle the SMDS link layer, and my
understanding is that was a connectionless (rather than a connection oriented) NBMA
link-layer, so treating 802.11 or 802.3 as an NMBA link could probably use the NBMA IPv6
techniques used for SMDS.
Regards,
Mark.
Grüße, Carsten
--------------------------------------------------------------------
IETF IPv6 working group mailing list
[email protected]
Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
--------------------------------------------------------------------
--------------------------------------------------------------------
IETF IPv6 working group mailing list
[email protected]
Administrative Requests: https://www.ietf.org/mailman/listinfo/ipv6
--------------------------------------------------------------------