DeprecateLegacyNetToolsSpec
7980
Comment:
|
7984
|
Deletions are marked like this. | Additions are marked like this. |
Line 2: | Line 2: |
||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;"><<TableOfContents(2)>>|| | |
Line 10: | Line 10: |
||<tablestyle="float:right; font-size: 0.9em; width:40%; background:#F1F1ED; margin: 0 0 1em 1em;" style="padding:0.5em;"><<TableOfContents(2)>>|| |
Please check the status of this specification in Launchpad before editing it. If it is Approved, contact the Assignee or another knowledgeable person before making changes.
Launchpad Entry: foundations-aa-deprecate-legacy-net-tools
Packages affected: See table below.
Summary
Migrate default installs from ifupdown to netplan as a preferred method of describing network configuration for users, and leaving the implementation details to netplan itself. Make sure people can easily describe complex network configurations without worrying about the syntax required by the software that will implement the configuration.
Deprecate ifupdown in Ubuntu for the 17.10 release. Ambitiously target a unified network stack of netplan, networkd, network-manager, and iputils2 across all 17.10 images in preparation for the 18.04 LTS.
This plan includes, as a stretch goal, the phasing out of outdated tools such as net-tools and the packages which are used as extensions to ifupdown and net-tools; in favor of the preferred, modern alternatives from iproute2: using the 'ip' command, for example.
Release Note
In this release, several networking tools have been modernized or replaced; the table below outlines the most common replacement for well-known commands:
Include cheat-sheet table here; e.g ifconfig == ip address / bridgectl addif eth0 br0 == bridge link set ...
Rationale
We've been carrying legacy tools that have been deprecated upstream for a while. Some of them are unmaintained or not well maintained at all, and many alternatives already do exist. Furthermore, given increasing demand for complex networking scenarios (large cloud uses often require complex layering of different features, such as bridges over bonds over VLANs, etc.), it has shown to be important to improve in the ease of configuring the network.
Use Cases
- John has been using brctl for a while to add interfaces for new virtual machines to his VM network; but wonders if there is a better way to do it.
- Mulan needs to list interfaces and their IPv4 and IPv6 addresses; she uses 'ip link' and 'ip addr' or 'ip -6 addr' to do so.
Implementation
Summary
Identify all code change targets
Set up transition tracker for packages that are obviously affected by the migration efforts, and start scanning the archive / default installs for other users that may not be declaring a Depends/Recommends/Suggest on affected packages.
There may be undocumented; non-obvious users of legacy tools on a default install. Scan default installed packages / check seeds to use of net-tools and other legacy packages for network configuration.
Code changes
There are multiple packages depending on one of the affected packages selected for replacement: http://paste.ubuntu.com/24500232/:
aranym |
1.0.2-2 |
artful/universe |
source, amd64, arm64, armhf, i386, ppc64el, s390x |
grub-legacy-ec2 |
0.7.9-113-g513e99e0-0ubuntu1 |
artful |
all |
controlaula |
1.8.0-3.1 |
artful/universe |
source, all |
ltsp-controlaula |
1.8.0-3.1 |
artful/universe |
all |
core-network-daemon |
4.8-3 |
artful/universe |
amd64, arm64, armhf, i386, ppc64el, s390x |
freedombox-setup |
0.8ubuntu1 |
artful/universe |
source, all |
ganeti-2.15 |
2.15.2-6build3 |
artful/universe |
all |
grml-btnet |
0.04ubuntu3 |
artful/universe |
source, all |
ifenslave |
2.7ubuntu1 |
artful |
source, all |
ifenslave-2.6 |
2.7ubuntu1 |
artful/universe |
all |
ifenslave-2.6 |
2.7ubuntu1 |
artful/universe |
all |
ifplugd |
0.28-19.2 |
artful/universe |
source, amd64, arm64, armhf, i386, ppc64el, s390x |
ifscheme |
1.7-5 |
artful/universe |
source, all |
ifupdown-scripts-zg2 |
0.6-1 |
artful/universe |
source, all |
2.5.0-3ubuntu7 |
artful |
amd64, arm64, armhf, i386, ppc64el, s390x |
|
lxc1 |
2.0.7-0ubuntu2 |
artful |
amd64, arm64, armhf, i386, ppc64el, s390x |
lxctl |
0.3.1+debian-3 |
artful/universe |
source, all |
|
|
|
|
netscript-2.4 |
5.4.11ubuntu1 |
artful/universe |
source, all |
netscript-2.4-upstart |
5.4.11ubuntu1 |
artful/universe |
all |
netscript-ipfilter |
5.4.11ubuntu1 |
artful/universe |
all |
neutron-linuxbridge-agent |
2:10.0.0-0ubuntu5.1 |
artful |
all |
nova-compute |
2:15.0.2-0ubuntu1 |
artful |
all |
nova-compute-libvirt |
2:15.0.2-0ubuntu1 |
artful |
all |
nova-network |
2:15.0.2-0ubuntu1 |
artful |
all |
pppoeconf |
1.21ubuntu1 |
artful |
source, all |
python-nemu |
0.3.1-1 |
artful/universe |
source, all |
1:2.8+dfsg-3ubuntu2.1 |
artful |
amd64, arm64, armhf, i386, ppc64el, s390x |
|
resolvconf |
1.79ubuntu4 |
artful |
source, all |
slapos-node-unofficial |
1.3.18-1 |
artful/universe |
all |
ubuntu-fan |
0.12.2 |
artful |
source, all |
ubuntu-minimal |
1.380 |
artful |
amd64, arm64, armhf, i386, ppc64el, s390x |
ubuntu-server |
1.380 |
artful |
amd64, arm64, armhf, i386, ppc64el, s390x |
ucarp |
1.5.2-2 |
artful/universe |
source, amd64, arm64, armhf, i386, ppc64el, s390x |
xen-utils-4.8 |
4.8.0-1ubuntu2 |
artful/universe |
amd64, arm64, armhf, i386 |
These, where possible, will need to be modified to use the "newer tools"; iproute2, etc. Packages for which Canonical is upstream will need to be ported (or dropped if it makes sense to do so), and packages where the upstream is elsewhere will need to be checked. Upstreams should be contacted with proposed patches to support the right commands for future-proofing.
When necessary, implement autopkgtests for the affected packages to ensure previous behavior is maintained.
UI Changes
This section only includes GUI changes.
- Drop gnome-nettools
Code Changes
Dropped packages
ifenslave, vlan, bridge-utils may have reverse-depends in main; these need to be reviewed and fixed/demoted/nuked.
systemd
Systemd may have bugs that would block proper use of the new tooling, especially when it comes to netplan generating systemd-networkd configuration -- this configuration is usually based on what the documentation expresses as being available, but actual implementation might fail (cf. MAC address issues in progress).
ubuntu-fan
Replace uses of bridge-utils / other "old tools" with the new.
lxd
Stop calling brctl or ifup / ifdown anywhere.
Infrastructure changes
Autopkgtests
Many packages may be using net-tools, bridge-utils or vlan to set up their environment for autopkgtest. Review this usage and apply fixes as appropriate.
Image build scripts
Any use of the "old commands" should be ported to the "new commands".
Other infrastructure
Review the use of old tools in Ubuntu infrastructure.
Migration
This impacts tools commonly used in user scripts, they would be broken unless we provide sufficient wrappers/redirections.
- The changes should be well documented, and a clear migration path identified in Release Notes for users.
- Replace some of the most commonly used tools with stubs or wrappers to point to the new way.
- Document changes in slideshow? MOTD?
Test/Demo Plan
- Testing should be ongoing to make sure there are no regressions. Expect feedback at any step of the migration.
Outstanding Issues
BoF agenda and discussion
BoF Notes
DeprecateLegacyNetToolsSpec (last edited 2017-05-23 21:11:53 by cyphermox)