Re: WGLC for draft-ietf-mboned-driad-amt-discovery
Leonard Giuliano <[email protected]> Tue, 23 Apr 2019 12:32:03 -0700
| Newsgroups | gmane.ietf.mboned |
|---|---|
| Message-ID | <alpine.DEB.2.02.1904221136490.27433@contrail-ubm-wing.svec1.juniper.net> |
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. | </jh> | | Sect 2.3.2: “See Section 2.5.5 for further …” | -“See Section 2.5.5 of this doctment for further…” to eliminate | confusion, as when I first read this, I wasn't sure if it was referring to | RFCs 7450 or 8305 (turns out, neither). | | <jh> | That sounds fine to me, my local copy is updated to add "of this document" after | the section reference and before "for further...". | </jh> | | Sect 2.4.1: How about #6- The application layer includes a suggested relay | address (as a hint) | -this is what we’ve done in the VLC with AMT GW build. | Specifically, VLC has a configurable AMT relay address, which uses a | well-known FQDN (amt-relay.m2icast.net) which has multiple A records of | known, healthy relays. Or is this scenario covered by #3? | | <jh> | This scenario is covered by #3. | | Do you think we need a definition of "administrative configuration" in section | 1.2.2 or something (and maybe "administratively" added before "configured" in | #3)? I had assumed the concept was reasonably well understood, but if this | wasn't clear, maybe it's not obvious enough in the text. | | (Any WG opinions here on whether #3 is already clear enough on allowing this | usage?) OK, re-reading, I'm convinced #3 is good enough to get this idea across, though if others have an opinion, please speak up. | </jh> | | Sect 2.4.2: I found this sect a little tough to follow. There are 3 | enumerated options, but the text that follows includes other options (like | admin config). Also, I found it curious that you have Global Anycast so | high in the list of prefs (before DRIAD). Global Anycast seems very | unlikely to ever be a good deployment option since it’s so vulnerable to | DoS (recall Mikael and my comments in the mtg in Prague) | <jh> | My presentation in Prague focused largely on why I felt the update to put the | global anycast IP before DRIAD was necessary. For easy reference, here's a | link to the video (from 3m44s into my presentation, where I begin directly | addressing this point): | https://urldefense.proofpoint.com/v2/url?u=https-3A__www.youtube.com_watch-3Fv-3DjIDYHFpJYV8-26t-3D55m44s&d=DwIGaQ&c=HAkYuh63rsuhr6Scbfh0UjBXeMK-ndb3voDTXcWzoCI&r=iw2TU3OZ0CDpCbqeV23zdah2FoG9Do-zEmGgWTaavDg&m=5B2Q9Qi_7Vs-C0IJQ8m6_1mazviWrkJeBlTCBKB5rvs&s=UUvXd2wmB1kONtQbcaewEPwiIY3HFmclRqqq4S_ruBo&e= | | If that was unclear, I guess I'd like to get some more specific questions about | it? | | As painful as it is to see myself speak, I re-watched that whole thing, and I | heard Toerless give some comments speaking directly to this question (to which | I responded in another thread [1]), but I think Mikael's comment was not about | this, and I didn't see any mic comments from you about this. Were there some | other comments you meant to recall? | [1] https://urldefense.proofpoint.com/v2/url?u=https-3A__mailarchive.ietf.org_arch_msg_mboned_pgw9SLTUvjSGZ4jGKDjYmyheFOA&d=DwIGaQ&c=HAkYuh63rsuhr6Scbfh0UjBXeMK-ndb3voDTXcWzoCI&r=iw2TU3OZ0CDpCbqeV23zdah2FoG9Do-zEmGgWTaavDg&m=5B2Q9Qi_7Vs-C0IJQ8m6_1mazviWrkJeBlTCBKB5rvs&s=rUqinpiSDianQ6D3sbqDY4e0VquYNevgB61tr3kPxeY&e= 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. | </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. | | Additionally, I'll remove the numbers on the long-form explanations | above this piece in 2.4.2, since I think multiple different numbering | schemes in the same section would add confusion. | | If you think it's better, I could also put this in front of the big | explanations, take out "Accordingly, ", and add in something like "the | reasoning for this preference ordering is described below". That's not | done in my local copy, but if I get responses with "yes, that's better" | here I'm happy to make the change. Whatever's most clear would be great. | | (Or if that doesn't address your concerns, can you suggest some text that | would, which takes into account the above considerations? Thanks.) 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? And having a simple numbered list with explanations for each, and perhaps rationalization for the order, sounds like agood approach. | </jh> | | Sect 3.2.1: 1st para, last sentence, “… by finding a A or AAAA records..” | -“ by finding an A or AAAA record” or “by finding A or AAAA | records” | <jh> | Fixed locally, thanks. | </jh> | | | Other Relay discovery options- as I mentioned, in the VLC build with AMT, | we have a configurable option for the relay address with a well-known fqdn | with multiple A records as the default. It will then receive all the A | records as an ordered list and try to use one at a time until it receives | data. This method provides relay discovery and resilience, but not | optimality. In Prague, got a suggestion from Tom P that you could get | optimality by pinging each of the relays from the list of A records and | choosing the one with the lowest latency (or perhaps joining all relays | and then selecting the one with the healthiest stream and pruning the | others). Do you think these options should be mentioned anywhere in this | doc? | <jh> | I like this idea, and I agree it's a good concept to get into the doc somewhere. | I think it works well as a heuristic that should be mentioned somewhere. | | I think recommending ping specifically is a bad idea (it's not so clear that the | ICMP path RTT will be the same as the UDP path RTT), though I guess it's maybe | reasonable in a lot of places. RTT of the response between sending the Request | packet and receiving the Membership Query packet (plus history of that metric | when it's known) sounds like a better approach in general, so I guess if we're | putting something in about this, I'd like it to capture that usage, or I'd at | least prefer to avoid a mention of ping in particular as compared with other | measurements. | | What do you think of a change in section 2.4.2 to integrate this suggestion? | Would this cover what you're looking for? | | OLD: | Among relay addresses that still have an equivalent preference after | the above orderings, a gateway MUST make a non-deterministic choice | for relay preference ordering, in order to support load balancing by | DNS configurations that provide many relay options. (Note that | gateways not implementing a Happy Eyeballs algorithm are not required | to use the Destination Address Selection ordering, but are still | required to use non-deterministic ordering among equally preferred | relays.) | | NEW: | Among relay addresses that still have an equivalent preference after | the above orderings, a gateway MUST make a non-deterministic choice | for relay preference ordering, in order to support load balancing by | DNS configurations that provide many relay options. | | 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 ..."? | | (This suggestion also cuts out what I think having re-read this bit is | probably a useless side note that happens to be in the same spot, but if | somebody doesn't like the edit, please let me know as a separate point.) | </jh> | | <jh> | Thanks very much for your comments, and please anyone feel free to jump | in here with opinions and responses. | | Best regards, | Jake | </jh> | | On Fri, 12 Apr 2019, Leonard Giuliano wrote: | | | | | In Prague, there appeared to be solid support to initiate last call, so we | | would like to officially begin working group last call for | | draft-ietf-mboned-driad-amt-discovery. Please post whether you support/oppose | | the advancement of this draft as well as any comments you may have to the list | | by May 3. Also, please note if you are aware of any IPR involved in this | | draft (we must hear from the author about IPR). | | | | Most recent version of the draft can be found here: | | | | https://urldefense.proofpoint.com/v2/url?u=https-3A__datatracker.ietf.org_doc_draft-2Dietf-2Dmboned-2Ddriad-2Damt-2Ddiscovery_&d=DwIGaQ&c=HAkYuh63rsuhr6Scbfh0UjBXeMK-ndb3voDTXcWzoCI&r=iw2TU3OZ0CDpCbqeV23zdah2FoG9Do-zEmGgWTaavDg&m=5B2Q9Qi_7Vs-C0IJQ8m6_1mazviWrkJeBlTCBKB5rvs&s=bdXOvMCVQ0eopeNSHcSHJLpx0E8A_abVYFeOYvbtwVw&e= | | | | _______________________________________________ | MBONED mailing list | [email protected] | https://urldefense.proofpoint.com/v2/url?u=https-3A__www.ietf.org_mailman_listinfo_mboned&d=DwIGaQ&c=HAkYuh63rsuhr6Scbfh0UjBXeMK-ndb3voDTXcWzoCI&r=iw2TU3OZ0CDpCbqeV23zdah2FoG9Do-zEmGgWTaavDg&m=5B2Q9Qi_7Vs-C0IJQ8m6_1mazviWrkJeBlTCBKB5rvs&s=cfmFRgGtQ5R5k-SgsRnt8-P5lkvvJ_5apkUetxJjkm0&e= | | | _______________________________________________ MBONED mailing list [email protected] https://www.ietf.org/mailman/listinfo/mboned