Re: [v6ops] Our IPv6-only home network and future experiments

Vasilenko Eduard <vasilenko.eduard@huawei.com> Mon, 15 April 2024 07:04 UTC

Return-Path: <vasilenko.eduard@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 1C33FC14F682 for <v6ops@ietfa.amsl.com>; Mon, 15 Apr 2024 00:04:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.894
X-Spam-Level:
X-Spam-Status: No, score=-1.894 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_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 ogKlpYfDQqAq for <v6ops@ietfa.amsl.com>; Mon, 15 Apr 2024 00:03: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 B5B5CC14F5F2 for <v6ops@ietf.org>; Mon, 15 Apr 2024 00:03:57 -0700 (PDT)
Received: from mail.maildlp.com (unknown [172.18.186.216]) by frasgout.his.huawei.com (SkyGuard) with ESMTP id 4VHylY20mtz6JBSK; Mon, 15 Apr 2024 15:02:01 +0800 (CST)
Received: from mscpeml100003.china.huawei.com (unknown [10.199.174.67]) by mail.maildlp.com (Postfix) with ESMTPS id C1DAD140CB9; Mon, 15 Apr 2024 15:03:54 +0800 (CST)
Received: from mscpeml500004.china.huawei.com (7.188.26.250) by mscpeml100003.china.huawei.com (10.199.174.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.28; Mon, 15 Apr 2024 10:03:54 +0300
Received: from mscpeml500004.china.huawei.com ([7.188.26.250]) by mscpeml500004.china.huawei.com ([7.188.26.250]) with mapi id 15.02.1258.028; Mon, 15 Apr 2024 10:03:54 +0300
From: Vasilenko Eduard <vasilenko.eduard@huawei.com>
To: "Soni \"They/Them\" L." <fakedme+ipv6@gmail.com>, IPv6 Operations <v6ops@ietf.org>
Thread-Topic: [v6ops] Our IPv6-only home network and future experiments
Thread-Index: AQHajOKQainvZ81VEUSU3NSRL3/g/bFo6ouQ
Date: Mon, 15 Apr 2024 07:03:54 +0000
Message-ID: <7b89e8bd81674a61b364e1fec4176006@huawei.com>
References: <91ee2782-c98a-4ccf-ae8f-71be571420b6@gmail.com>
In-Reply-To: <91ee2782-c98a-4ccf-ae8f-71be571420b6@gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [10.199.56.41]
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/v6ops/CbMuGvG-W4PHq_VyhfMLGkDethI>
Subject: Re: [v6ops] Our IPv6-only home network and future experiments
X-BeenThere: v6ops@ietf.org
X-Mailman-Version: 2.1.39
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: Mon, 15 Apr 2024 07:04:03 -0000

The initiative looks strange for me.
It has an assumption that some *old* application insists to use IPv4 and this application *could not be changed* to use IPv6 properly. 
Then you propose to introduce new functions into libc that helps to support IPv4.
But then you need to re-compile and re-write the application to support this new functionality.
Sorry but if it is possible to change application then it is better to change it to support IPv6 natively.
Ed/
-----Original Message-----
From: v6ops <v6ops-bounces@ietf.org> On Behalf Of Soni "They/Them" L.
Sent: Friday, April 12, 2024 17:05
To: IPv6 Operations <v6ops@ietf.org>
Subject: [v6ops] Our IPv6-only home network and future experiments

Hello!

We've recently set up our home network as IPv6-only with NAT64, as such we no longer have DHCPv4 or any other IPv4 address assignment to end nodes. It has been... uneventful really; aside from needing to reboot our phone every time we get home, things just work, as expected.

We set this up so we could work on "Stackless IPv4". Traditionally, an OS will bring with it an IPv4 stack and an IPv6 stack, and (for our
purposes) some IPv4-IPv6 translation mechanism (NAT64/NAT46/SIIT) that takes packets from one stack and dumps them on the other stack, and from there the stack handles things such as routing and packet filtering and connection tracking and whatnot. We would like to try an alternative approach where we just don't have an IPv4 stack, and thus don't need to do any of the aforementioned operations (routing, packet filtering, connection tracking) in the IPv4 world.

Nevertheless a lot of apps only work on IPv4, with IPv4 APIs. Now that we have an IPv6-only network, our first project is what we call "CLAT in libc", where the CLAT functions are implemented entirely in libc, without kernel IPv4 support, in order to satisfy these apps. We didn't strictly need the IPv6-only network before trying to build this, the network just makes it significantly easier to test it. Additionally, we note that this approach easily allows us to work a CLAT into a DHCPv6 deployment with a single /128, but we don't really want to encourage bad practices so we have no plans to actually support that. And again, this can be accomplished without any of the features of an IPv4 stack: 
namely, without routing, packet filtering, or connection tracking (in the IPv4 world).

If we get CLAT in libc working, then we'll move on to enabling the use of this OS on IPv4-only and dual-stack networks, but again without introducing an IPv4 stack. This can be done by taking IPv4 packets from the wire, without passing through any functionality associated with an
IPv4 stack (routing, packet filtering, or connection tracking), and turning them into IPv6 packets, which then go on to get processed by the
IPv6 stack. The combination of CLAT in libc and this non-traditional SIIT would allow the OS to be deployed on existing IPv4-only and dual-stack networks, fully implemented without an IPv4 stack. Wouldn't it be exciting, as a sysadmin, to be able to use all-IPv6 tools for both
IPv4 and IPv6?

Well, that's the plan anyway. Let's see how much we can actually get done.

_______________________________________________
v6ops mailing list
v6ops@ietf.org
https://www.ietf.org/mailman/listinfo/v6ops