Re: [v6ops] Possible issue with source address selection for ULAs...

"Chengli (Cheng Li)" <c.l@huawei.com> Wed, 22 December 2021 03:25 UTC

Return-Path: <c.l@huawei.com>
X-Original-To: v6ops@ietfa.amsl.com
Delivered-To: v6ops@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id D7E8B3A09D1; Tue, 21 Dec 2021 19:25:07 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.899
X-Spam-Level:
X-Spam-Status: No, score=-1.899 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
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 BCcnMra9lvWr; Tue, 21 Dec 2021 19:25:02 -0800 (PST)
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 6839B3A09CE; Tue, 21 Dec 2021 19:25:02 -0800 (PST)
Received: from fraeml714-chm.china.huawei.com (unknown [172.18.147.201]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4JJdtF1XmKz67XhD; Wed, 22 Dec 2021 11:22:29 +0800 (CST)
Received: from dggpemm100003.china.huawei.com (7.185.36.68) by fraeml714-chm.china.huawei.com (10.206.15.33) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Wed, 22 Dec 2021 04:24:57 +0100
Received: from dggpemm500003.china.huawei.com (7.185.36.56) by dggpemm100003.china.huawei.com (7.185.36.68) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Wed, 22 Dec 2021 11:24:56 +0800
Received: from dggpemm500003.china.huawei.com ([7.185.36.56]) by dggpemm500003.china.huawei.com ([7.185.36.56]) with mapi id 15.01.2308.020; Wed, 22 Dec 2021 11:24:56 +0800
From: "Chengli (Cheng Li)" <c.l@huawei.com>
To: Ted Lemon <mellon@fugue.com>
CC: Michael Richardson <mcr+ietf@sandelman.ca>, "ipv6@ietf.org" <ipv6@ietf.org>, IPv6 Ops WG <v6ops@ietf.org>
Thread-Topic: Possible issue with source address selection for ULAs...
Thread-Index: AQHX7nvjBZfUEuuABEGn5NMtjTx6s6wujimAgAA+hYCAAAhtAIAA/8+AgAzd8aD//8R9gIAAjvEw//+BWgCAAIZUoP//wqEAACIoo2A=
Date: Wed, 22 Dec 2021 03:24:56 +0000
Message-ID: <88b9f6a02b0445ad83da3241efe3e708@huawei.com>
References: <m1mvzqQ-0000IiC@stereo.hq.phicoh.net> <4915.1639327937@localhost> <CAPt1N1mVj7wmVmbgBc_5QwTXnwMEKwArozOv53A_S61AT-mW4w@mail.gmail.com> <7873.1639343172@localhost> <CAPt1N1=mB-YnPdru+yu8g=BuA5NG0yoibCm1ETut3T92_-LK-A@mail.gmail.com> <d0c4c1567bf74e63bc95c9e4f3b80657@huawei.com> <CAPt1N1k=rJfwmoMPq+CV6kF-WHfFNrMrihfwv_=gh7rPPBBuDQ@mail.gmail.com> <a2fc703640c840f2b35f8fd00097ac1a@huawei.com> <CAPt1N1nUui4034f_c8tZgSSgWsm9Uj+XNU6NspU0Vz3GT2MgAQ@mail.gmail.com> <357a4af8c55349d1919ce1c937c06b55@huawei.com> <CAPt1N1mKH-n_GvpE_UnM1=Q9M-Cie26Aa7scryZGChhg_+ZNJA@mail.gmail.com>
In-Reply-To: <CAPt1N1mKH-n_GvpE_UnM1=Q9M-Cie26Aa7scryZGChhg_+ZNJA@mail.gmail.com>
Accept-Language: zh-CN, en-US
Content-Language: zh-CN
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.112.40.81]
Content-Type: multipart/alternative; boundary="_000_88b9f6a02b0445ad83da3241efe3e708huaweicom_"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <https://mailarchive.ietf.org/arch/msg/v6ops/6T-U7G99Hh4D_4JT3RtWCNPLp-4>
Subject: Re: [v6ops] Possible issue with source address selection for ULAs...
X-BeenThere: v6ops@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: v6ops discussion list <v6ops.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/v6ops>, <mailto:v6ops-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/v6ops/>
List-Post: <mailto:v6ops@ietf.org>
List-Help: <mailto:v6ops-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/v6ops>, <mailto:v6ops-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 22 Dec 2021 03:25:08 -0000

Well, I may need to state it more clear. Copy v6ops as well.

The topology is shown below.

           |------------|           |-----------|
H1---|      SP1       |-------|    SP2       |-----H2
          |                     |           |                  |
          --------------|           |-----------|

The packet P1 is sent from H1 to H2, and the source address is a GUA like 2001:db8:1:1::1, and the DA is a GUA of H2 2001:db8:2:2::2.  So P1 =  (2001:db8:1:1::1, 2001:db8:2:2::2)

The route to H2 has been learnt by nodes in SP1 and SP2. But in SP2 network, they are using ULA for infrastructure address, like interface address or loopback address. Note that no GUA is configured for infrastructure.

The packet P1 is forwarding in SP2 network, and the route is a GUA route to H2. When an error occurs in forwarding ,for instance a node can not process the Extension header of P1, or the size of P1 exceeds the PMTU in that link, an ICMP message will be sent back to the SA of P1, which is 2002:db8:1:1::1, if these is a native IPv6 forwarding without tunnel. Then in this case, what source address of the ICMP packet will use? I guess it MUST be an ULA address of that node? So an ICMP packet (ULA_SA, 2001:db8:1:1::1)/ICMP payload is expected to send back to the H1.

So ULA of SP2 will be leaked outside the domain SP2 in this way? Or the edge node of SP2 will drop the ICMP packet and the H1 will not know why the packet is lost?

But my understanding may be wrong,  just  for discussion.

Respect,
Cheng





From: Ted Lemon [mailto:mellon@fugue.com]
Sent: Wednesday, December 22, 2021 2:38 AM
To: Chengli (Cheng Li) <c.l@huawei.com>
Cc: Michael Richardson <mcr+ietf@sandelman.ca>; ipv6@ietf.org
Subject: Re: Possible issue with source address selection for ULAs...

The problem is that in your example, a packet came _from_ the internet (or at least a GUA) _to_ your ULA. That's not possible unless routing is working, but if it does happen, the GUA is reachable, so presumably either the ULA sourced packet will get to the GUA, or it will be dropped somewhere along the path. But it can't have come from a GUA unless there was a route to the ULA. If you are thinking of configuring routers that route packets from/to the internet with ULAs only, don't do that—it's not a valid configuration.

The issue I'm pointing to is similar, but the problem is that both links have a ULA, but only one link has a route to the other link's ULA, whereas the other link has only a route to the GUA. And source address selection winds up choosing the (non-routable) ULA as a source address because it's a ULA, not because it matches the other ULA in any meaningful way. In this case I think it would be better to choose the GUA rather than the dissimilar ULA, absent some policy to the contrary.

On Tue, Dec 21, 2021 at 9:18 AM Chengli (Cheng Li) <c.l@huawei.com<mailto:c.l@huawei.com>> wrote:
Yes, I mean if we only have ULA, then the source address selection MUST choose ULA, so issues come.  Unless we have multiple address configured.



From: Ted Lemon [mailto:mellon@fugue.com<mailto:mellon@fugue.com>]
Sent: Tuesday, December 21, 2021 10:17 PM
To: Chengli (Cheng Li) <c.l@huawei.com<mailto:c.l@huawei.com>>
Cc: Michael Richardson <mcr+ietf@sandelman.ca<mailto:mcr%2Bietf@sandelman.ca>>; ipv6@ietf.org<mailto:ipv6@ietf.org>
Subject: Re: Possible issue with source address selection for ULAs...

In the case you describe, source address selection would not choose a ULA, so there would be no issue.

On Tue, Dec 21, 2021 at 09:01 Chengli (Cheng Li) <c.l@huawei.com<mailto:c.l@huawei.com>> wrote:
Hi Ted,

No, I may propose a new scenarios.

Think about a native IPv6 packet (A, B) is forwarding in your network. And an PMTU error or EH processing error occurs, then the node R1 should send back the ICMP message back to the source address B.

Therefore, a (ULA_SA, A) packet is sent back to the address A, in this way the source address ULA_SA is leaked.  We can avoid this by dropping  the packet (ULA_SA, A) at the edge node, then the source node will not have the idea of why my packet is lost ☹.

So I think ULA can be used ONLY in an ISOLATED network, where the ULA route/address will not be leaked outside the domain. The isolated means we will not accept any packets from outside the domain.
Otherwise, issues come: the ULA will leak anyway or the ICMP message will be dropped any way. Adding an extra GUA address may solve this problem.

Respect,
Cheng


From: Ted Lemon [mailto:mellon@fugue.com<mailto:mellon@fugue.com>]
Sent: Tuesday, December 21, 2021 9:18 PM
To: Chengli (Cheng Li) <c.l@huawei.com<mailto:c.l@huawei.com>>
Cc: Michael Richardson <mcr+ietf@sandelman.ca<mailto:mcr%2Bietf@sandelman.ca>>; ipv6@ietf.org<mailto:ipv6@ietf.org>
Subject: Re: Possible issue with source address selection for ULAs...

Do you mean because the two routers have no knowledge of the ULA on network A, they would send the ICMP response in the wrong direction? I think in this case R1 would have an address on the ULA prefix on its interface on network A, so that wouldn't be a problem. An ICMP port unreachable from H1 would not reach a host on network A, however, so you are correct about that. But I don't think it really changes the problem.

On Tue, Dec 21, 2021 at 3:57 AM Chengli (Cheng Li) <c.l@huawei.com<mailto:c.l@huawei.com>> wrote:
Hi Ted,

It seems like there are issues if we use ULA in carrier networks, at least it is not easy to handle as my understanding.

One more consideration regarding using ULA as the source address: When an error like PMTU exceeding or EH errors happen in a node, it needs to reply ICMP message like packet too big or other error message to the source node. If the packet come from outside the domain, the source ULA address will leak outside the domain?

If we do not allow forwarding the packet outside the domain if the source address is an ULA address, then the source node(of sending the data packet) will not know why the packet is lost at all, so problem comes? I think this is a normal operation problem which may happen in any network.

Respect,
Cheng


From: ipv6 [mailto:ipv6-bounces@ietf.org<mailto:ipv6-bounces@ietf.org>] On Behalf Of Ted Lemon
Sent: Monday, December 13, 2021 8:22 PM
To: Michael Richardson <mcr+ietf@sandelman.ca<mailto:mcr%2Bietf@sandelman.ca>>
Cc: ipv6@ietf.org<mailto:ipv6@ietf.org>
Subject: Re: Possible issue with source address selection for ULAs...

On Sun, Dec 12, 2021 at 4:06 PM Michael Richardson <mcr+ietf@sandelman.ca<mailto:mcr%2Bietf@sandelman.ca>> wrote:
okay.  I will fix that.  But, the Home Router (W) *is* advertising a GUA?
That it isn't to RFC7084-spec, but I'll take that tweak.
The Home Router could have that part turned off, or not be RFC7084 compliant, right?

Yes. It's possible that the operator disabled the ULA because it was breaking connectivity to network A. :)

    > Michael, the difference between a "stub router" and a "normal router" is
    > that the stub router connects to the network and establishes an on-link
    > prefix automatically when no usable on-link prefix is present.
    > A "normal
    > router" does not.

Does the R1 router for A have a ULA prefix? Or a GUA prefix that it got from W?
How?  HNCP? (I assume not...) DHCPv6-PD?  Does W know about R1's A-network prefix?

The router interfaces of the non-stub routers on network M do not have ULA prefixes from the prefix advertised by the stub router on network M because they are normal routers and do not listen to RAs.

    > The situation here is happening because the stub router
    > (B) incorrectly determines that there is no usable on-link prefix on the
    > link and starts advertising one; while this is going on, source address
    > selection chooses the mistakenly-advertised ULA rather than the GUA because
    > of longest-match when communicating to a host on network A.

This does seems reasonable given race conditions, hidden node issues with wifi,
flaky wiring, flaky power, ...

Exactly.


    > The thing is, the stub router's behavior is the wrong behavior for a stub
    > router, but it's not wrong behavior for a router. It's perfectly valid for
    > a router to advertise an on-link ULA prefix, and indeed many IPv6-capable
    > home routers do, because the CE router requirements document says to.

Is R1 an RFC7084 router, but W is not?

Maybe. Or maybe the operator configured it to provide a ULA. I don't think it matters for digging into this question. I think it's valid for the operator to have configured it the way it's configured.

    > So
    > from the network operator's perspective, they configured a router in a way
    > that worked and was valid, and then they added another router and suddenly
    > hosts on network A became unreachable. This seems broken to me. My point in
    > bringing this up is not that the stub router's behavior is correct, but
    > rather that the situation that we found ourselves in as a result of the
    > stub router's behavior could occur in a situation where "router B" is in
    > fact behaving correctly, and that this would still break reachability to
    > network A.

I'm gonna try to get the assumption right before I try to understand the
situation in which things fail. :-)

I'm sorry to be a pain here, but I think that it's best that we all
understand how things got this way.

No worries. I don't entirely agree, but I do agree that it's important to evaluate whether this is a plausible scenario. The question I'm asking arose as a result of something that I think was a bug, so I am not convinced that examining the /exact/ scenario closely adds a lot of value. The question is whether we believe this could happen IRL with things that aren't buggy (I have an example of how it could happen), whether we want to mitigate this problem, and whether my proposed mitigation is the right one.