Re: timeouts in draft-ietf-mboned-driad-amt-discovery (was: MBONED WG Call For Adoption: draft-jholland-mboned-driad-amt-discovery)

"Holland, Jake" <[email protected]> Fri, 1 Feb 2019 00:52:09 +0000
Newsgroups gmane.ietf.mboned
Message-ID <[email protected]>
Hi Mikael,

Thanks for the comments.  Responses inline with <jh></jh>.

-Jake

On 2019-01-28, 22:51, "Mikael Abrahamsson" <[email protected]> wrote:
...
    http://tools.ietf.org//rfcdiff?url1=https://www.ietf.org/archive/id/draft-jholland-mboned-driad-amt-discovery-03.txt&url2=https://www.ietf.org/id/draft-ietf-mboned-driad-amt-discovery-00.txt
    
    I read that, and your proposed approach to handle this seems fine. 
    However, do we really want to make this up to the implementor to decide 
    and not have more guidance? Again, I am no AMT expert so I'll defer that 
    to people who know more than I do.

<jh>
I'm trying to avoid formalizing bad advice that might accidentally get
implementations to do things that will disrupt the steady state
forwarding of traffic that's working well.  The main idea is "don't
rediscover when things traffic is flowing and everything's fine", plus
"here's all the indications I can think of that things aren't fine".

So although your point is well-taken, I think it's going to take some
more deployment experience before there's really solid advice to give
about fine tuning the rediscovery timing, especially considering the
different intended deployment environments.

On reflection, I'm even thinking the DNS expiry might be a bad idea to
include in the list of events that should cause a restart of
discovery--if you're connected to a relay that's working, it's probably
a good idea to stay with the relay you found. I'm not sure that point is
strong enough in 2.4.2 (Tunnel Stability), so maybe I'll add a SHOULD to
that effect and take out DNS expiry from the list of recommended events
that can trigger a restart of discovery.

That said, if you've learned a DNS record that expired 2 weeks ago, it
might not be a bad idea to re-discover from time to time, especially if
traffic is low, or there's no traffic actually joined.  So I'll maybe
add a note to that effect in the Flow Health or Tunnel Stability section
instead?

I'll think about it a bit and take my best guess. Suggestions are
welcome. :)
</jh>

    I realised another thing.
    
    3.2.1.  Sender-controlled Relays
    
        When a sender network is also operating AMT relays to distribute
        multicast traffic, as in Figure 6, each address could appear as an
        AMTRELAY RR for the reverse IP of the sender, or one or more domain
        names could appear in AMTRELAY RRs, and the AMT relay addresses can
        be discovered by finding an A or AAAA record from those domain names.
    
    Does this mean there can only ever be a single A *or* AAAA record? What 
    happens if there are 2 A records and 3 AAAA records? Which one does it 
    use, in what order? Should it implement some kind of "Happy Eyeball" 
    functionality to figure out the best way to talk to it?

<jh>
Good catch, thanks.  The intent was that all A and AAAA records resolved
from the domain name given by a type 3 AMTRELAY RR would be treated as
having the precedence from that RR.

I'll try to fix the wording in section 4.2.4 to clarify that for type 3
AMTRELAY RRs, when there are multiple A or AAAA for the domain name,
they should be treated for relay discovery the same as if there had been
multiple AMTRELAY records of type 1 for A or type 2 for AAAA, with the
same precedence and D-bit as the original type 3 RR (so there should be
a non-deterministic choice between the different options).

There was a mention of something similar to Happy Eyeballs, but I'm now
noticing it was buried in the last 2 paragraphs of 3.1.2:

   The discovery and connection process for multiple relays MAY operate
   in parallel, but when forwarding multicast group membership reports
   with new joins from an AMT gateway, membership reports SHOULD be
   forwarded to the most-preferred relays first, falling back to less
   preferred relays only after failing to receive traffic for an
   appropriate timeout, and only after reporting a leave to any more-
   preferred connected relays that have failed to subscribe to the
   traffic.

   It is RECOMMENDED that the default timeout for receiving traffic be
   no less than 3 seconds, but the value MAY be overridden by
   administrative configuration, where known groups or channels need a
   different timeout for successful application performance.

Maybe I should make that a more formal Happy Eyeballs reference?

I could maybe add a "Happy Eyeballs" section, make a reference to RFC
8305, and define a "connection" in this context as receipt of a
Membership Query from the relay without the L flag set.  The idea would
be to proceed in parallel for multiple candidates through Relay
Discovery + Relay Advertisement (if D-bit), then Request + Membership
Query response, and pick the best candidate that succeeds and did
not set the L flag.

I think I like that idea, at first glance.  I'll give it a little
more thought and aim to push an update hopefully sometime next week.

Please let me know if any of these ideas seem like a wrong approach, or
if you've got any other comments or questions, but I hope the next
update will address the issues you've raised so far.

Thanks again.

-Jake
</jh>


_______________________________________________
MBONED mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/mboned