Re: [MBONED] MNAT draft

"Holland, Jake" <jholland@akamai.com> Thu, 12 November 2020 08:56 UTC

Return-Path: <jholland@akamai.com>
X-Original-To: mboned@ietfa.amsl.com
Delivered-To: mboned@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id C0EA43A146D for <mboned@ietfa.amsl.com>; Thu, 12 Nov 2020 00:56:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.1
X-Spam-Level:
X-Spam-Status: No, score=-2.1 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=akamai.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id mcIEWKKB569t for <mboned@ietfa.amsl.com>; Thu, 12 Nov 2020 00:55:59 -0800 (PST)
Received: from mx0a-00190b01.pphosted.com (mx0a-00190b01.pphosted.com [IPv6:2620:100:9001:583::1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id B21B33A1215 for <mboned@ietf.org>; Thu, 12 Nov 2020 00:55:59 -0800 (PST)
Received: from pps.filterd (m0050093.ppops.net [127.0.0.1]) by m0050093.ppops.net-00190b01. (8.16.0.42/8.16.0.42) with SMTP id 0AC8sEU3013915; Thu, 12 Nov 2020 08:55:59 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=akamai.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-id : content-transfer-encoding : mime-version; s=jan2016.eng; bh=ldUT2VmouKUIjeL/TbPyzmStXJz+UFiwl79blInoZAA=; b=Hf1KzQxuS9einerQFyxOjNXNMK5sqxkZPZaXSXygDzuDgzxSQ8ZPxcXFUHmMwSff8uXg Mj+q11vs++9w06/wGBfhc3/IYW5C8kXFA2odv+yKAnT4d06MW9Kwx8uic/CmmJW+TaUJ BKGwc2wMt1DjHrIb2NQFe/xfvjinDxd5SV/Z56g290ns2YP8LJO3iNjJQv29Yp1ybIyy znRmLmNebGmYupIujIlWEw2THiIcCfVXL4ye8uUqxX0t7U52Lr0GX1ZKN7FbYLL4DIZt b+HsfIye+GKGGwEzS6VF0hrauWyFghNzeDdKm0qCZQ789sdNMKMklDR9YenSu79EGJZO rQ==
Received: from prod-mail-ppoint3 (a72-247-45-31.deploy.static.akamaitechnologies.com [72.247.45.31] (may be forged)) by m0050093.ppops.net-00190b01. with ESMTP id 34p0b34qxg-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Thu, 12 Nov 2020 08:55:59 +0000
Received: from pps.filterd (prod-mail-ppoint3.akamai.com [127.0.0.1]) by prod-mail-ppoint3.akamai.com (8.16.0.42/8.16.0.42) with SMTP id 0AC8oAWJ007428; Thu, 12 Nov 2020 03:55:58 -0500
Received: from email.msg.corp.akamai.com ([172.27.165.118]) by prod-mail-ppoint3.akamai.com with ESMTP id 34nqt3264q-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Thu, 12 Nov 2020 03:55:58 -0500
Received: from USTX2EX-DAG1MB4.msg.corp.akamai.com (172.27.165.122) by ustx2ex-dag1mb4.msg.corp.akamai.com (172.27.165.122) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Thu, 12 Nov 2020 02:55:57 -0600
Received: from USTX2EX-DAG1MB4.msg.corp.akamai.com ([172.27.165.122]) by ustx2ex-dag1mb4.msg.corp.akamai.com ([172.27.165.122]) with mapi id 15.00.1497.007; Thu, 12 Nov 2020 02:55:57 -0600
From: "Holland, Jake" <jholland@akamai.com>
To: Leonard Giuliano <lenny@juniper.net>
CC: "mboned@ietf.org" <mboned@ietf.org>
Thread-Topic: [MBONED] MNAT draft
Thread-Index: AQHWtr2ss/1yEolC40a95hFZfLlPwKnET/0A///EQ4A=
Date: Thu, 12 Nov 2020 08:55:56 +0000
Message-ID: <4957CF9E-B91B-4593-B8F1-4A1B718E6E6F@akamai.com>
References: <893D0BA2-37C6-4A43-A05D-8B63249F2B9F@akamai.com> <4a8c8590-3e35-afaa-c42a-e4f74feb997e@juniper.net>
In-Reply-To: <4a8c8590-3e35-afaa-c42a-e4f74feb997e@juniper.net>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/16.42.20101102
x-ms-exchange-messagesentrepresentingtype: 1
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [172.27.164.43]
Content-Type: text/plain; charset="utf-8"
Content-ID: <FCD26B4BA19DA24BB1E633E156BB63D3@akamai.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.312, 18.0.737 definitions=2020-11-12_02:2020-11-10, 2020-11-12 signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 adultscore=0 phishscore=0 mlxscore=0 mlxlogscore=999 malwarescore=0 spamscore=0 bulkscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2011120054
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.312, 18.0.737 definitions=2020-11-12_02:2020-11-10, 2020-11-12 signatures=0
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 adultscore=0 spamscore=0 priorityscore=1501 mlxscore=0 lowpriorityscore=0 suspectscore=0 impostorscore=0 phishscore=0 malwarescore=0 clxscore=1015 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2009150000 definitions=main-2011120055
X-Agari-Authentication-Results: mx.akamai.com; spf=${SPFResult} (sender IP is 72.247.45.31) smtp.mailfrom=jholland@akamai.com smtp.helo=prod-mail-ppoint3
Archived-At: <https://mailarchive.ietf.org/arch/msg/mboned/SgRxZhJfiRWg4QUyZob-k49ig70>
Subject: Re: [MBONED] MNAT draft
X-BeenThere: mboned@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Mail List for the Mboned Working Group <mboned.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/mboned>, <mailto:mboned-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/mboned/>
List-Post: <mailto:mboned@ietf.org>
List-Help: <mailto:mboned-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/mboned>, <mailto:mboned-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 12 Nov 2020 08:56:02 -0000

Hi Lenny,

Thanks for taking a look.  Responses inline with <jake></jake>

On 11/11/20, 8:29 PM, "Leonard Giuliano" <lenny@juniper.net> wrote:

Jake,

Thanks for posting this draft.  Some comments:

-Based on the discussion in MBONED in IETF 108, my understanding of the 
purpose of this translation is to handle the situation where routers 
within a domain (eg, BGP-free core) do not have routes to the source and 
thus RPF will fail.  Is that the case, or am I misunderstanding the 
motivation of this translation?  I found 1.3 to be pretty vague and it's 
not terribly clear to me from the doc what is the exact problem being 
solved here.

<jake>
It wasn't just one problem.

Several different networks raised several different issues, and I
noticed they all can be solved by giving the network the ability
to assign their own local addresses for transporting traffic from
global (S,G)s.

I think I actually forgot to include the case where RPF fails
because the route to the source doesn't go backwards through the
ingest point.  That was one of the scenarios as well and I should
have included it, thanks for reminding me.  But even with a
solution for RPF, the other use cases I listed were still stoppers
to deploying multicast for at least one network each, and can be
solved by using locally assigned addresses for a global (S,G)'s
traffic.
</jake>

-If my assumption was correct, and this is trying to solve the issue of 
RPF failing bc intermediate routers lack source routes in the MRIB, there 
have been some other solutions proposed to solve this problem.  GTM 
(RFC7716) is one example, and I recall from long ago an "rpf-hint" was 
proposed, but I think that may have been abandoned in later versions of 
the Rosen MVPN draft.  Anyway, might be worth covering why these solutions 
fell short in solving the problem.

<jake>
I think some networks might be able to use RFC 7716 instead of this,
yes.  I was planning to suggest it as an alternative for those where
it's appropriate.  In cases where the egress is an on-path device in
the network, it's probably basically equivalent, I think.

However, one concern raised was that the CPEs would have to act as a
CE in the MVPN because the restrictions come from their access devices,
but upgrading the CPEs is too hard.

One of the benefits of using an HTTPS-based approach is that the end
receiver app can directly discover and connect to the MNAT service, so
that the CPE doesn't have to change in order to get the reassignment.
Although this might not be technically impossible to do with a VPN
client library, I think it would be a much harder sell for including
in for instance a browser, since a BGP connection and a VPN can be a
lot more heavyweight than a more targeted API that's just about
address mappings.

I can put something to that effect in the motivation section along with
an informative reference to 7716 if you think that's helpful.
</jake>

-I could find no mention of what is being translated, the source or the 
group?  Again, I would have assumed just the source, but this is never 
mentioned explicitly.  I can't think of a good reason for translating the 
group address, but maybe I'm missing something.  In any event, might be 
worth explaining whether it's the source or group or both being translated 
and why.

<jake>
Both the source and the group are (potentially) translated.  And
sorry, I agree this part of the text is rough, and I hope to flesh
it out to a better explanation if this moves along.  The YANG model
does provide for both options though (though I should also mention
that's undergoing development as I'm hacking on a prototype...)

One of the key reasons for translating the group is to support
deployment models where they are just using static routing for fanout
and replication (I think either in 239 or 233), but are willing to
allow external traffic on some set of dedicated group addresses.

Another reason group addresses need reassigning is to avoid collisions.

One of the ways people are working around legacy IGMPv2 systems is by
using an ASM join to a 232 group from within the home, but then
translating it into an SSM join for the same group at the BNG with a
configured source so it can propagate as SSM within the network.

However, this fails when there's a collision on the 232 group for an
external source.  By allowing the network to reassign the group address
for the global (S,G), the network can avoid collisions with externally
sourced traffic, even though they're using 232. 

Also for IPv4<->IPv6 translations, of course.
</jake>

-Sect 1, 2nd para: "for the purpose of working around various 
addressing-related issues"
	-this is pretty vague; might be good to specify some examples of those issues

<jake>
Section 1.3 lists examples, and the next sentence after this one
provides a reference to it.

I thought it was clearer this way than trying to make the sentence
longer to include examples.  I'm open to suggestions on making this
clearer, but everything I tried here seemed worse until I landed on
"put examples in a different section and reference that".  Do you
have any suggestions of text that does this better?
</jake>

-Sect 2.1: given that directionality of mcast routing can be relative 
(control plane goes in one direction, traffic in the other), might be 
helpful to specify that the "ingress node" is the translating node closest 
to the source while "egress node" is the node closest to the receiver to 
make it absolutely clear.

<jake>
I agree the terms "closest to the source" and "closest to the receiver"
are a very helpful clarification to include, probably both here and in
the definitions section, thanks.  I was thinking I'd also try to get a
diagram in here before long if this is to move forward, but I agree it's
important to be really clear on this point, and thanks for the suggestion.
</jake>

-Sect 1.3, 3rd bullet: "...packet replication channels with static group addresses ..."
	-static groups or static routing?

<jake>
I guess I probably mean static routing.  Now that you mention it though,
I'm not sure I know the difference, except that "static groups" might not
be defined.  I know everybody uses the term "static route", but I'm also
not sure where that's defined--do you think there's a good reference, or
that it's sufficiently well-understood if I just change it to "static
routing"?
</jake>

-Sect 1.3, next sentence: "...use of static provisioning of multicast groups..."
	-same as above, static provisioning, or static routing?  Can you 
be more specific about what is static here?

-Sec 2.1, last sentence: yes, a diagram would be very helpful.  The slide 
referenced was very helpful.

-Sect 2.1.1, penultimate para: "Premesis" misspelled.

-Sect 2.4.3, last para: "addreessing" misspelled

<jake>
Thanks, spelling errors fixed in my local copy.

And thanks very kindly for the review and all the thoughtful
comments!

-Jake
</jake>


-Lenny

On Mon, 9 Nov 2020, Holland, Jake wrote:

| 
| 
| Hi mboned,
| 
| I also wanted to draw to your attention a new draft I'll be
| going over in the upcoming meeting.  It's about automating
| multicast NAT to get global multicast traffic delivered in
| spite of restrictions that may prevent the use of the global
| addresses inside particular networks, for a few different
| reasons:
| https://urldefense.com/v3/__https://tools.ietf.org/html/draft-jholland-mboned-mnat-00__;!!NEt6yMaO-gk!WWrhysPgI-3oi4ENEZG06n5mKR9GaBavMtFzqhprxgPbUsFr9BxIDx7LOA1GhU4$
| 
| This work came out of the feedback I got about stoppers for
| ISPs to deploy delivery for externally sourced multicast
| traffic to clients inside their networks. So I think it's a
| suitable topic for mboned to consider as part of solving that
| end-to-end delivery problem.
| 
| I touched on this (under the name GNATS) in IETF 108[1], but
| now I've finally posted a draft with something closer to a
| detailed explanation of how it might work.  It's still kinda
| rough, but feedback is very welcome.
| 
| I took Lenny's suggestion to call it "Multicast NAT", but
| this name perhaps conflicts with some existing features in
| existing routers[2] that are only loosely related to what
| this doc is describing.  Maybe I need to change it to
| "Multicast NAT Service" or something, or maybe it needs a
| different name altogether, not sure.
| 
| I'm not sure how firm this particular approach is.  I'm still
| working on cobbling together a prototype and might encounter
| a need for some significant changes or extensions to the
| model, but I wanted to get a strawman version out there to kick
| around and see if anybody has a problem with the approach I'm
| proposing.
| 
| Assuming I don't find a fatal flaw in this approach before we
| meet, I'd like the WG to consider adoption (or suggest a
| better path forward), so please take a look at the draft if
| you get a chance.
| 
| Thanks and regards,
| Jake
| 
| [1] Page 7-9 of the slides from mboned 108:
| https://urldefense.com/v3/__https://www.ietf.org/proceedings/108/slides/slides-108-mboned-status-update-on-multicast-to-the-browser-00.pdf*page=7__;Iw!!NEt6yMaO-gk!WWrhysPgI-3oi4ENEZG06n5mKR9GaBavMtFzqhprxgPbUsFr9BxIDx7LNL6bFeI$
| 
| [2] For example, Juniper and Cisco each have configuration docs
| for multicast NAT:
| https://urldefense.com/v3/__https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ipaddr_nat/configuration/xe-16/nat-xe-16-book/iadnat-multicast-dynamic.html__;!!NEt6yMaO-gk!WWrhysPgI-3oi4ENEZG06n5mKR9GaBavMtFzqhprxgPbUsFr9BxIDx7LiRw-85I$
| https://urldefense.com/v3/__https://www.juniper.net/documentation/en_US/junos/topics/example/nat-multicast-traffic-configuring.html__;!!GjvTz_vk!DFkAbwF3nscWJGh0s2Yt0bG7GakNAlHE_DUY6YLvJP03HbOLOh6xvttE_1rL0QA$ 
| 
| 
| _______________________________________________
| MBONED mailing list
| MBONED@ietf.org
| https://urldefense.com/v3/__https://www.ietf.org/mailman/listinfo/mboned__;!!NEt6yMaO-gk!WWrhysPgI-3oi4ENEZG06n5mKR9GaBavMtFzqhprxgPbUsFr9BxIDx7LI6pWc6A$
|