See https://lists.ubuntu.com/archives/ubuntu-devel/2015-May/038761.html for more details about the change, and /usr/share/doc/udev/README.Debian.gz how the current schema works, and how to set custom names or change the policy, if you desire so.
So the lack of /etc/udev/rules.d/70-persistent-net.rules is intended, unless this was an upgrade from trusty -- in that case the file should of course continue to exist (we don't remove it automatically on upgrades). But it sounds like this was a new install. So for the most part this all works as intended. The main point of contention is the naming of USB devices ("enx8cae4cff4099") -- see the ML discussion for why this is currently done. I'm fine to change this to a different policy if desired by the server or other teams, but everytime I asked about it I get a resounding silence as an answer :-) Retitling the bug accordingly. I. e. an alternative policy would be: Always use the kernel names for USB devices. As long as you have only one, it will always be eth0, but as soon as you have multiple ones *and* you need to refer to their names in configuration files, then you need to define a naming policy yourself, as the kernel names are not persistent and predictable. In theory we could also use the path based names for USB devices, which would name the interface according to the port you plug it into. That'd be a good policy for things like a RasPi where you deploy the same image (with that policy) to lots of devices and port location would make sense. This policy makes less sense on a laptop where you might plug in your mobile phone on different ports every time -- but then again those usually use NetworkManager and dynamic configurations where you don't care about device names. ** Summary changed: - No udev persistent rules in Xenial = strange device names for NICs + Strange device names for USB NICs ** Changed in: systemd (Ubuntu) Status: New => Incomplete ** Changed in: systemd (Ubuntu) Importance: Undecided => Medium -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to systemd in Ubuntu. https://bugs.launchpad.net/bugs/1544747 Title: Strange device names for USB NICs Status in systemd package in Ubuntu: Incomplete Bug description: Fresh install of Xenial on an intel NUC with 1 onboard GigE and one USB GigE NIC. I was setting up networking for MAAS and discovered that the device names were ridiculous: bladernr@critical-maas:/etc/udev$ ifconfig |grep HWaddr eno1 Link encap:Ethernet HWaddr ec:a8:6b:fb:9f:66 enx8cae4cff4099 Link encap:Ethernet HWaddr 8c:ae:4c:ff:40:99 In the previous Trusty install on this NUC with the same USB dongle, they were named eth0 and em1. The predictable standard device names. Looking at udevadm: P: /devices/pci0000:00/0000:00:19.0/net/eno1 E: DEVPATH=/devices/pci0000:00/0000:00:19.0/net/eno1 E: ID_BUS=pci E: ID_MM_CANDIDATE=1 E: ID_MODEL_FROM_DATABASE=82579LM Gigabit Network Connection E: ID_MODEL_ID=0x1502 E: ID_NET_DRIVER=e1000e E: ID_NET_LABEL_ONBOARD=en L1U1 E: ID_NET_LINK_FILE=/lib/systemd/network/99-default.link E: ID_NET_NAME_MAC=enxeca86bfb9f66 E: ID_NET_NAME_ONBOARD=eno1 E: ID_NET_NAME_PATH=enp0s25 E: ID_OUI_FROM_DATABASE=ELITEGROUP COMPUTER SYSTEMS CO., LTD. E: ID_PATH=pci-0000:00:19.0 E: ID_PATH_TAG=pci-0000_00_19_0 E: ID_PCI_CLASS_FROM_DATABASE=Network controller E: ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller E: ID_VENDOR_FROM_DATABASE=Intel Corporation E: ID_VENDOR_ID=0x8086 E: IFINDEX=2 E: INTERFACE=eno1 E: SUBSYSTEM=net E: SYSTEMD_ALIAS=/sys/subsystem/net/devices/eno1 E: TAGS=:systemd: E: USEC_INITIALIZED=5400250 P: /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5:1.0/net/enx8cae4cff4099 E: DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.5/2-1.5:1.0/net/enx8cae4cff4099 E: ID_BUS=usb E: ID_MM_CANDIDATE=1 E: ID_MODEL=AX88178 E: ID_MODEL_ENC=AX88178\x20 E: ID_MODEL_FROM_DATABASE=AX88178 E: ID_MODEL_ID=1780 E: ID_NET_DRIVER=asix E: ID_NET_LINK_FILE=/lib/systemd/network/90-mac-for-usb.link E: ID_NET_NAME=enx8cae4cff4099 E: ID_NET_NAME_MAC=enx8cae4cff4099 E: ID_NET_NAME_PATH=enp0s29u1u5 E: ID_OUI_FROM_DATABASE=Plugable Technologies E: ID_PATH=pci-0000:00:1d.0-usb-0:1.5:1.0 E: ID_PATH_TAG=pci-0000_00_1d_0-usb-0_1_5_1_0 E: ID_REVISION=0001 E: ID_SERIAL=ASIX_Elec._Corp._AX88178_000002 E: ID_SERIAL_SHORT=000002 E: ID_TYPE=generic E: ID_USB_CLASS_FROM_DATABASE=Vendor Specific Class E: ID_USB_DRIVER=asix E: ID_USB_INTERFACES=:ffff00: E: ID_USB_INTERFACE_NUM=00 E: ID_USB_SUBCLASS_FROM_DATABASE=Vendor Specific Subclass E: ID_VENDOR=ASIX_Elec._Corp. E: ID_VENDOR_ENC=ASIX\x20Elec.\x20Corp. E: ID_VENDOR_FROM_DATABASE=ASIX Electronics Corp. E: ID_VENDOR_ID=0b95 E: IFINDEX=3 E: INTERFACE=enx8cae4cff4099 E: SUBSYSTEM=net E: SYSTEMD_ALIAS=/sys/subsystem/net/devices/enx8cae4cff4099 /sys/subsystem/net/devices/enx8cae4cff4099 E: TAGS=:systemd: E: USEC_INITIALIZED=8700146 And finally, looking in /etc/udev: bladernr@critical-maas:/etc/udev$ sudo ls -ra /etc/udev/* /etc/udev/udev.conf /etc/udev/rules.d: .. . /etc/udev/hwdb.d: .. . There are NO rules at all in udev for persistent names. Not even some samples and defaults. Looking at a completely different Xenial system with a single GigE NIC: bladernr@galactica:~$ ifconfig enp2s0 Link encap:Ethernet HWaddr 40:8d:5c:51:5b:0d P: /devices/pci0000:00/0000:00:1b.2/0000:02:00.0/net/enp2s0 E: DEVPATH=/devices/pci0000:00/0000:00:1b.2/0000:02:00.0/net/enp2s0 E: ID_BUS=pci E: ID_MM_CANDIDATE=1 E: ID_MODEL_FROM_DATABASE=Killer E220x Gigabit Ethernet Controller E: ID_MODEL_ID=0xe091 E: ID_NET_DRIVER=alx E: ID_NET_LINK_FILE=/lib/systemd/network/99-default.link E: ID_NET_NAME_MAC=enx408d5c515b0d E: ID_NET_NAME_PATH=enp2s0 E: ID_OUI_FROM_DATABASE=GIGA-BYTE TECHNOLOGY CO.,LTD. E: ID_PATH=pci-0000:02:00.0 E: ID_PATH_TAG=pci-0000_02_00_0 E: ID_PCI_CLASS_FROM_DATABASE=Network controller E: ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller E: ID_VENDOR_FROM_DATABASE=Qualcomm Atheros E: ID_VENDOR_ID=0x1969 E: IFINDEX=2 E: INTERFACE=enp2s0 E: SUBSYSTEM=net E: SYSTEMD_ALIAS=/sys/subsystem/net/devices/enp2s0 E: TAGS=:systemd: E: USEC_INITIALIZED=752502 and again, nothing in the udev rules: bladernr@galactica:~$ ls -a /etc/udev/* /etc/udev/udev.conf /etc/udev/hwdb.d: . .. /etc/udev/rules.d: . .. ProblemType: Bug DistroRelease: Ubuntu 16.04 Package: udev 228-6ubuntu1 ProcVersionSignature: Ubuntu 4.4.0-2.16-generic 4.4.0 Uname: Linux 4.4.0-2-generic x86_64 ApportVersion: 2.19.4-0ubuntu2 Architecture: amd64 Date: Thu Feb 11 16:36:35 2016 InstallationDate: Installed on 2016-02-10 (1 days ago) InstallationMedia: Ubuntu 16.04 LTS "Xenial Xerus" - Alpha amd64 (20160210) ProcEnviron: TERM=xterm PATH=(custom, no user) XDG_RUNTIME_DIR=<set> LANG=en_US.UTF-8 SHELL=/bin/bash ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.4.0-2-generic.efi.signed root=UUID=b53bf9e5-5cab-4ebd-98cc-a07ddffe53af ro quiet splash vt.handoff=7 SourcePackage: systemd UpgradeStatus: No upgrade log present (probably fresh install) dmi.bios.date: 03/03/2014 dmi.bios.vendor: Intel Corp. dmi.bios.version: RKPPT10H.86A.0032.2014.0303.1322 dmi.board.asset.tag: To be filled by O.E.M. dmi.board.name: D53427RKE dmi.board.vendor: Intel Corporation dmi.board.version: G87971-403 dmi.chassis.type: 3 dmi.modalias: dmi:bvnIntelCorp.:bvrRKPPT10H.86A.0032.2014.0303.1322:bd03/03/2014:svn:pn:pvr:rvnIntelCorporation:rnD53427RKE:rvrG87971-403:cvn:ct3:cvr: To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/systemd/+bug/1544747/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp