Re: WGLC for draft-ietf-mboned-driad-amt-discovery
Leonard Giuliano <[email protected]> Tue, 23 Apr 2019 14:24:05 -0700
| Newsgroups | gmane.ietf.mboned |
|---|---|
| Message-ID | <alpine.DEB.2.02.1904231409290.23529@contrail-ubm-wing.svec1.juniper.net> |
On Tue, 23 Apr 2019, Holland, Jake wrote: | <jh2>replies inline, and thanks Lenny!</jh2> | | On 2019-04-23, 12:32, "Leonard Giuliano" <[email protected]> wrote: | Jake- sorry for the delayed reply, took some time to fully digest. | Comments inline, and let me know if you already covered this in the | lastest version: | | On Mon, 15 Apr 2019, Holland, Jake wrote: | | | Thanks Lenny, much appreciated. <jh>Responses inline.</jh> | | | | On 2019-04-15, 09:10, "Leonard Giuliano" <[email protected]> wrote: | | | | | | <chair hat off> | | | | Overall, I think this doc is very thorough, clearly written and and | | addresses a much needed area of specification for AMT. Some comments: | | | | Sect 2.3.2: should the definition of connection completion take into | | consideration traffic health as well? That is, the relay is up and happy, | | but has no multicast connectivity to the source, hence you could have a | | blackhole. At the very least, should it be completion of the 3-way | | handshake? | | | | <jh> | | I'm not completely sure what you mean by "3-way handshake" here, but I'm assuming | | you mean the one mentioned in RFC 7450, particularly sections 5.1.3 and 5.1.4: | | https://urldefense.proofpoint.com/v2/url?u=https-3A__tools.ietf.org_html_rfc7450-23section-2D5.1.3&d=DwIGaQ&c=HAkYuh63rsuhr6Scbfh0UjBXeMK-ndb3voDTXcWzoCI&r=iw2TU3OZ0CDpCbqeV23zdah2FoG9Do-zEmGgWTaavDg&m=5B2Q9Qi_7Vs-C0IJQ8m6_1mazviWrkJeBlTCBKB5rvs&s=GnlMUunygK9RB-Dv7QFmxyc6Mk8ZVbhA6DdDeV4slPA&e= | | https://urldefense.proofpoint.com/v2/url?u=https-3A__tools.ietf.org_html_rfc7450-23section-2D5.1.4&d=DwIGaQ&c=HAkYuh63rsuhr6Scbfh0UjBXeMK-ndb3voDTXcWzoCI&r=iw2TU3OZ0CDpCbqeV23zdah2FoG9Do-zEmGgWTaavDg&m=5B2Q9Qi_7Vs-C0IJQ8m6_1mazviWrkJeBlTCBKB5rvs&s=9Z1ODsciEKqfCyQy8UvMrp9JOlQ8M2MzuTOAut8dee4&e= | | | | The definition in section 2.3.2 of this draft calls the connection complete | | during the 2nd part of this 3-way handshake, which is receipt of the Membership | | Query message. (Since we're talking about a gateway-side decision, I don't | | think there's anything the client knows about after the 3rd part of the handshake, | | before starting to receive data traffic.) | | | | I agree with you that it would be nice to have information about multicast | | connectivity to the source, but I don't think this can be safely discovered when | | probing connectivity of multiple connections in parallel (as described by the | | Happy Eyeballs part), because if we actually forward the subscription to | | one or more (S,G)s to multiple relays, we might start getting traffic from all | | of them, and that traffic might be larger than we should receive, or could | | result in forwarding multiple copies of packets routinely, if an implementation | | doesn't take specific steps to avoid it. | | | | Therefore, the way this doc handles it is to allow multiple connections to | | start in parallel up until receiving the Membership Query (which is stage 2 of | | the 3-way handshake), and then to pick the most preferred of those connections | | to get the Membership Update including a subscription to data traffic, and then | | after subscribing, to use the Traffic Health heuristics (section 2.5.4) to decide | | whether the gateway needs to restart discovery with a hold-down for the relay that | | had bad health on the traffic. | | | | Do you think I need a reference to 2.5.4 in section 2.3.2 to make this more | | clear? Or is there a deeper objection here? | | Yeah, I think that would be helpful, as I didn't quite get that | connection. Again, I'm concerned with the case where the AMT tunnel comes | up but the relay lacks multicast connectivity to the source, which I | suspect will not be an uncommon case. As you've worded above- probe the | relays til you get a good session, then join, then pick another relay if | you get no data, sounds reasonable to me. I think making that clear in | 2.3.2 would be helpful. | <jh2> | Does this work for you? | | OLD: | See Section 2.5.5 of this document for further information about the | relevance of the L flag to the establishment of a Happy Eyeballs | connection. | | NEW: | See Section 2.5.5 of this document for further information about the | relevance of the L flag to the establishment of a Happy Eyeballs | connection. See Section 2.5.4 for an overview of how to respond if | the connection does not provide multicast connectivity to the source. | </jh2> Looks good. | | In the same video (mboned mtg recording), I talked about this at 1:23:20 | till ~ 1:26:00 and then Mikael confirmed my suspicions that it was a bad | idea at 1:31:20. Bottom line is Global Anycast is a backhole waiting to | happen, so I don't think it'll be a viable deployment option. Now, local | relays using anycast addresses from a provider's space, such that each AMT | provider will have it's own anycast set (analogous to anycast RPs), does | seem like it'll be a good deployment option. | | <jh2> | Ah, I see. Thanks for pointing me there, now I remember. | | Yes, I agree global anycast is a blackhole waiting to happen, and won't | see wide deployment until at least after there's a way to do good brokering | somehow. | | What I'm trying to suggest here is that if you're an ISP providing multicast | connectivity, and you're deploying a relay near the end user edge, you can put | the global anycast address on that AMT relay and expect it to be discovered by | gateways inside your customers' networks.* (I think you've got that picture, | just wanted to check to make sure.) | | In the case when the ISP isn't supporting multicast and hasn't deployed a relay, | this means the gateway will try to discover the global anycast, hopefully in parallel | with the DRIAD discovery, with a slight head start (under the happy eyeballs logic). | | But yes, if it gets a response from the global anycast about the discovery, it'll use | that by preference under the latest proposal, maybe discover it's a black hole, and | then fail over to the DRIAD version according to 2.5.5. | | Do I understand correctly that this 2nd case is what you're most concerned about | with the preference ordering that puts the global anycast ahead of DRIAD? Yes, I would put DRIAD ahead of global anycast, but also that local relays should be preferred ahead of DRIAD. And yes, I recognize the potential contradiction/tension here. See below for suggested resolution... | | I agree that this can also be solved by administrative configuration, so that ISPs | operating a relay local to their customers can tell their customers to configure a | particular address or hostname on their gateways. | | However, by specifying that gateways should search for one particular thing (such as | the existing anycast address), we can hopefully make it possible for the ISPs to deploy | a relay without having to get all their customers to configure their gateways, even | where DNS-SD doesn't work (which I think is up to the router in the customer network, | which the ISP might not control). | | I see this as especially important for ISPs with customers that may have a lot of | mobile devices coming and going, with wifi hotspots or something, because you can't | get those devices to configure the gateway, so if the ISP can't capture the joins | when the customer network isn't operating its own local AMT relay, the ISP can't | really get those devices to make use of its multicast-enabled network instead of | discovering their own unicast tunnels. | </jh2> | | | </jh> | | | | Anyway, could this section just include a simple list of all the options | | in order of pref? Something like: | | | | 1) DNS-SD | | 2) DRIAD | | 3) Admin config of GW or App level | | 4) Global Anycast address | | | | <jh> | | I like this idea, thanks, I think it will make things clearer here. | | | | However, I don't think the ordering you've given is right. In the absence | | of administrative config, I think (pending further discussion of the above | | comment) the order would look like this: | | | | 1) DNS-SD | | 2) Global Anycast (mainly to support local usage!) | | 3) DRIAD | | | | I guess one way to look at this is to just put admin config in the very front: | | 0) Administrative config | | | | However, I think in general, administrative config is also capable of doing | | things like suppressing one or more of these steps, or changing the ordering | | of these steps, or adding other steps that take account of other information | | about the network to influence ordering. | | | | In that sense, I'm not sure just sticking "administrative config" on the front | | of the list makes as much sense as keeping it outside this list, in order to be | | a super-override for the list as a whole. | | | | So my proposed update to incorporate your excellent suggestion for making a | | numbered short summary list for easy reference is to make this change: | | | | OLD: | | Accordingly, AMT gateways SHOULD by default prefer relays first by | | DNS-SD if available, then with the anycast addresses defined in | | Section 7 of [RFC7450] (namely: 192.52.193.1 and 2001:3::1), then by | | DRIAD as described in this document (in precedence order, as | | described in Section 4.2.1). | | | | This default behavior MAY be overridden by administrative | | configuration where other behavior is more appropriate for the | | gateway within its network. | | | | NEW: | | Accordingly, AMT gateways SHOULD by default prefer relays in this | | order: | | | | 1. DNS-SD | | 2. Anycast addresses from Section 7 of [RFC7450] | | 3. DRIAD | | | | This default behavior MAY be overridden by administrative | | configuration where other behavior is more appropriate for the | | gateway within its network. | ... | | OK, what you suggest for the admin config sounds reasonable and does | provide ample wiggle room for flexibility. I am still a bit nervous about | having Global Anycast, a mechanism so fraught with peril, ahead of DRIAD, | though I do understand your pref for local relays. What if you mentioned | something like "#2 Locally deployed relays in the receiver's ISP, which | may (or may not) utilize the Anycast addresses from Section 7 of | [RFC7450]"? Or must it use the global anycast addresses? | | <jh2> | Well, this is about the behavior of the gateways performing discovery, and I | wanted something that the ISP can deploy which will definitely work, when | DNS-SD doesn't in some places. | | My problem is that the gateway can't easily distinguish between a local relay | it found with the global anycast address and a remote relay it found with the | global anycast address. Yeah, that's why I suggested the "may or may not use the global anycast address" verbage to provide enough wiggle room one way of the other. I recognize that these are vague and imprecise terms (eg, "local" is relative), but I'm thinking this early in evolution might be premature to optimize on a precise solution; it's more important to document the range of options for understanding and provide enough flexibility for future (potentially unimagined) innovations. | | Maybe a good solution is to explicitly allow a DRIAD relay with a shorter RTT | to be preferred to the global anycast... Would that cover your concerns? Nah, probably too complex to rely upon. | | I think this is allowed already with happy eyeballs--the gateway would have to | give the global anycast a particular minimum head start, but I think if the | connection finishes with DRIAD first, that could be used. But maybe another | similar alternative is that if there's a recent history of failing with the | global anycast, it could be skipped--would that work too? | </jh2> | | And having a simple numbered list with explanations for each, and perhaps | rationalization for the order, sounds like agood approach. | | | | NEW: | ... | | The gateway MAY introduce a bias in the non-deterministic choice | | according to network topology or timing information obtained out of | | band or from a historical record. The collection of this information | | is out of scope for this document, but a gateway in possession of | | such information MAY use it to prefer topologically closer relays. | | How about "... according to network topology or response to some sort of | probing mechanism obtained ..."? | <jh2> | I like adding "probing mechanism", thanks. Do you object to keeping "timing | information"? I'm thinking maybe a minor refinement here to make a bigger list | work better: | | NEW: | " | ... according to information obtained out of band or from a historical | record about network topology, timing information, or the response to a | probing mechanism, that indicates some expected benefits from selecting | some relays in preference to others. Details about the structure and | collection of this information is out of scope for this document, but a | gateway in possession of such information MAY use it to prefer | topologically closer relays. | " Looks good! | | (suggestions welcome on tightening that up, but I prefer to keep timing | information if possible.) | </jh2> | | | _______________________________________________ MBONED mailing list [email protected] https://www.ietf.org/mailman/listinfo/mboned