DeprecateLegacyNetToolsSpec
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
As possible, migrate away from legacy network tools (in particular net-tools' ifconfig, netstat, and arp as well as bridge-utils' brctl; and also vlan); in favor of using iproute2 utilities based on netlink.
This means the phasing out of outdated packages (by way of demotions and unseeding, rather than removal from the archive) 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
Signoff
Use @SIG@ to sign-off your team on this Spec.
Team |
Signoff |
Foundations |
|
Server |
|
Juju |
|
DeprecateLegacyNetToolsSpec (last edited 2017-05-23 21:11:53 by cyphermox)