Received: from mx1.tetrasec.net (mx1.tetrasec.net [66.245.176.36]) by nld3-dev1.alpinelinux.org (Postfix) with ESMTPS id 7A1767819B4 for <~alpine/devel@lists.alpinelinux.org>; Tue, 28 Jul 2020 16:10:43 +0000 (UTC) Received: from mx1.tetrasec.net (mail.local [127.0.0.1]) by mx1.tetrasec.net (Postfix) with ESMTP id BD60CDFAD2; Tue, 28 Jul 2020 16:10:41 +0000 (UTC) Received: from ncopa-desktop.copa.dup.pw (67.63.200.37.customer.cdi.no [37.200.63.67]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: alpine@tanael.org) by mx1.tetrasec.net (Postfix) with ESMTPSA id 3058BDFAD1; Tue, 28 Jul 2020 16:10:40 +0000 (UTC) Date: Tue, 28 Jul 2020 18:10:33 +0200 From: Natanael Copa To: Ariadne Conill Cc: ~alpine/devel@lists.alpinelinux.org Subject: Re: Proposed system change: ifupdown-ng as default network device manager Message-ID: <20200728181033.4e9b92ab@ncopa-desktop.copa.dup.pw> In-Reply-To: <12372156.q0HFhEdf7Z@localhost> References: <12372156.q0HFhEdf7Z@localhost> X-Mailer: Claws Mail 3.17.6 (GTK+ 2.24.32; x86_64-alpine-linux-musl) MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit On Tue, 28 Jul 2020 09:36:13 -0600 Ariadne Conill wrote: > Hello, Hi, > > At present, Alpine uses BusyBox ifupdown as default network device manager, > and a few additional 'addon' packages which provide additional scripts that > interact with ifupdown. > > We additionally provide Debian ifupdown and, more recently, ifupdown-ng as > alternatives. > > This has gotten us very far over the past decade. However, in many > situations, ifupdown is quite limited, such as in dual-stack scenarios and > complex configurations where virtual devices depend on parent devices to be > brought up first. > > ## What is ifupdown-ng? > > ifupdown-ng is a lightweight network device manager that is backwards > compatible with Debian ifupdown and busybox ifupdown. ... This is awesome! > Another benefit to ifupdown-ng is the executor concept. With the current addon > scripts, they automatically run for every interface at bring-up and take-down. > This means that a misconfiguration may result in the addon script doing > something to an interface that was not intended. By contrast, if you use > ifupdown-ng's executors, they will only run when explicitly requested with a > use statement. > > ifupdown-ng is 100% backwards compatible with ifupdown, This is where I am sold. > and can even > automatically convert an /e/n/i file to use the new syntax with the new > ifquery(8) utility, but that's optional. What are the current limitations? > ## Benefits to Alpine > > * The networking initscript can start interfaces more intelligently by > leveraging ifquery(8). Right now this is achieved by attempting to parse the > /e/n/i file with awk. Instead, we can change networking initscript to bring > interfaces up in order according to the dependency tree. This should solve https://gitlab.alpinelinux.org/alpine/aports/-/issues/11562 > * Configuration of IPv4+IPv6 dual-stack environment is simplified, as > you can just specify a dual-stack configuration. Right now to use > dual-stack, you have to either use up/down statements or use Debian > ifupdown which is still limited to configuring a single address. > > * Future plans for ifupdown-ng include hotplug support, wifi > configuration, openrc integration, etc. Early adoption of > ifupdown-ng as default network device manager allows for streamlined > adoption of these later features. > > * If ifupdown is dropped from BusyBox, the difference in install size > requirement is only 8KB. I assume the size would increase as new features are added, but I think its worth it. > ## Testing > > ifupdown-ng is available in edge right now, in the testing > repository. Simply do `apk add ifupdown-ng`. > > ## Contingency Plan > > If ifupdown-ng has release-critical problems, we will simply revert > the change and continue using BusyBox ifupdown as default, with > ifupdown-ng as an optional package and revisit this in a future > release cycle. sounds good to me. > > ## Timeline > > I would like to flip the default sometime in September, before > feature freeze, but allowing users enough time to test and validate > ifupdown-ng with their setups. sounds good. Thank you for you work on this! -nc > > Ariadne >