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.

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:

Warning /!\ 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

libvirt-daemon-system

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

netcf

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

qemu-system-common

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

Warning /!\ 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

Warning /!\ 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


CategorySpec

DeprecateLegacyNetToolsSpec (last edited 2017-05-23 21:11:53 by cyphermox)