Why MHMP is still not operational

Vasilenko Eduard <vasilenko.eduard@huawei.com> Mon, 01 August 2022 20:12 UTC

Return-Path: <vasilenko.eduard@huawei.com>
X-Original-To: ipv6@ietfa.amsl.com
Delivered-To: ipv6@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9527EC1594A8; Mon, 1 Aug 2022 13:12:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.896
X-Spam-Level:
X-Spam-Status: No, score=-1.896 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_MSPIKE_H2=-0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_KAM_HTML_FONT_INVALID=0.01, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id B3fauZrBz0NE; Mon, 1 Aug 2022 13:11:58 -0700 (PDT)
Received: from frasgout.his.huawei.com (frasgout.his.huawei.com [185.176.79.56]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 77C4EC159493; Mon, 1 Aug 2022 13:11:58 -0700 (PDT)
Received: from fraeml744-chm.china.huawei.com (unknown [172.18.147.200]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4LxTjq0bRxz67yQq; Tue, 2 Aug 2022 04:09:35 +0800 (CST)
Received: from mscpeml500001.china.huawei.com (7.188.26.142) by fraeml744-chm.china.huawei.com (10.206.15.225) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Mon, 1 Aug 2022 22:11:55 +0200
Received: from mscpeml500001.china.huawei.com (7.188.26.142) by mscpeml500001.china.huawei.com (7.188.26.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.24; Mon, 1 Aug 2022 23:11:54 +0300
Received: from mscpeml500001.china.huawei.com ([7.188.26.142]) by mscpeml500001.china.huawei.com ([7.188.26.142]) with mapi id 15.01.2375.024; Mon, 1 Aug 2022 23:11:54 +0300
From: Vasilenko Eduard <vasilenko.eduard@huawei.com>
To: "6man@ietf.org" <6man@ietf.org>
CC: v6ops list <v6ops@ietf.org>
Subject: Why MHMP is still not operational
Thread-Topic: Why MHMP is still not operational
Thread-Index: Adil2GrmE3vepLa2TFqTNR74rxw42A==
Date: Mon, 01 Aug 2022 20:11:54 +0000
Message-ID: <a4248748209f4b87ae1a4f0e5e639eaa@huawei.com>
Accept-Language: zh-CN, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
x-originating-ip: [10.81.201.138]
Content-Type: multipart/related; boundary="_004_a4248748209f4b87ae1a4f0e5e639eaahuaweicom_"; type="multipart/alternative"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <https://mailarchive.ietf.org/arch/msg/ipv6/Tq6S_Q_R_apOTtwbrzUQ118tgOU>
X-BeenThere: ipv6@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: "IPv6 Maintenance Working Group \(6man\)" <ipv6.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ipv6>, <mailto:ipv6-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ipv6/>
List-Post: <mailto:ipv6@ietf.org>
List-Help: <mailto:ipv6-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ipv6>, <mailto:ipv6-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 01 Aug 2022 20:12:03 -0000

Hi all,
There were a few comments on IETF to draft-vv-6man-nd-support-mhmp that the problem was resolved.
The finger was pointed to PvD (provisioning domains) RFC 8801.
I would say that RFC 8028 is more relevant (fixed more MHMP ND issues), but let's discuss PvD.

PvD in principle has a negligible influence on MHMP at the ND level.
Explicit (special ND options) or Implicit (separate LLA+RA) PvD just helps to emulate many virtual routers out of one physical.
Exactly the same effect would be on the link if many physical routers would be on the link.
It does not matter whether virtual or physical routers are feeding different information to the link.
OK. We would make this comment in the next version of the document. It looks obvious.
In fact, just a PIOs list per router is enough information to make an MHMP decision for ND. PvD does not help ND.
PvD is very valuable to connect PIOs to DNSes that is very needed for MHMP in general (proper DNS is important too) but not for the ND part.

The problem is about the assumption made throughout SASA (RFC 6724) that the next hop is chosen before the source address.

Section 7: "This specification of source address selection assumes that routing (more precisely, selecting an outgoing interface on a node with multiple interfaces) is done before source address selection."
As Brian pointed out to me, bind() may help to choose the source address first. That is probably the case for server applications.
The normal client application would probably use getaddrinfo() in the majority of cases. All OSes are compliant with RFC 6724. It means that the next hop would be chosen before the source address.
The next hop choice is currently specified as a random round-robin by RFC 4861.
Reminder, RFC 8028 and RFC 6724 have "Rule 5.5 of RFC 6724<https://datatracker.ietf.org/doc/html/rfc6724> states that the source address used to send to a given destination address should, if possible, be chosen from a prefix known to be advertised by the next-hop router for that destination."
It means that the only PIO1 leading to the "walled garden" would become not available for choice because it is sourced from Router1 only that was not chosen at random.
Ups, getaddrinfo() would choose the next hop (random) and then source address that would be filtered on the internet (it would not reach the destination).
The same problem would prevent choosing the best Carrier for cost/delay/latency/policy reasons. getaddrinfo() just randomly points to the wrong source address. In full compliance with RFC 6724.

RFC 6724 logic should be reversed. RFC 6724 is ready for it - it was assumed as an option.
draft-vv-6man-nd-support-mhmp section 4 and 6.1 discusses how to choose a source address.
DNS, PvD, and simpler methods are included.

It is the reason why ULA+NPT is the only way for Carrier redundancy yet.
getaddrinfo() randomly chooses the wrong source address if it has the choice.

PS: I am extremely surprised how it did happen that the forwarding decision (next hop) has been decided to make before the packet is constructed (source address is not chosen)?!? It is illogical. It is a request for trouble.

[cid:image001.png@01D3A7DF.E7D86320]
Best Regards
Eduard Vasilenko
Senior Architect
Europe Standardization & Industry Development Department
Tel: +7(985) 910-1105, +7(916) 800-5506