netnames v0.3 [25 Jun 2020] by Dominic
Description
netnames shows the current names, the 'biosdevnames' (if biosdevname is installed) and the 'predictable names' of network devices on a host Linux/GNU system, and together with the help information below may be helpful if you have a modern system and want to migrate the network device naming scheme (especially from a legacy naming scheme to the modern Predictable Names Scheme).
Background
On most modern Linux/GNU systems the Predictable Names Scheme (see below, not to be confused with the *Persistent* Names Scheme) is used by default (via udev and systemd) to select names for network devices (although it can exceptionally be overridden to use names of your choosing - for example, if using netplan, in /etc/netplan/config.yaml). However a system that has been in existence for a number of years is likely to retain legacy network device name settings, even if it has otherwise been updated.
The idea of the Predictable Names Scheme is to ensure that devices have a consistent name even if other things on the system change. One price paid for this is that the names are less easy on the eye e.g. wlp2s0 instead of the old-style wlan0.
To change the network devices naming scheme in use on a system, read the guidance below. Be careful as it may break other things: for example if using netplan you may need to update network device names in /etc/netplan/config.yaml (then do 'netplan apply') or if using systemd-networkd without netplan you may need to update /etc/network/interfaces.
Further information can be found at https://wiki.debian.org/NetworkInterfaceNames and https://lists.ubuntu.com/archives/ubuntu-devel/2015-May/038761.html.
Naming Schemes
Network devices are identified and named at boot time according to a naming scheme. You can change the scheme in use by following the instructions below.
1. [Legacy] Persistent Names Scheme: This, if set up, may (always?) override any of the other schemes below. Originally based on udev rule /lib/udev/rules.d/75-persistent-net-generator.rules which on first boot creates a MAC address -> current name mapping and writes /etc/udev/rules.d/70-persistent-net.rules. It was retired a while ago (for Debian/Ubuntu) but may persist on long-standing systems. To remove it, ensure you have kernel settings for the Predictable Names Scheme (below), and:
ln -s /dev/null /etc/udev/rules.d/75-persistent-net-generator.rules
and/or (to force pickup of new bios network device names by /lib/udev/rules.d/80-net-setup-link.rules):
rm /etc/udev/rules.d/80-net-setup-link.rules 2>/dev/null
2. [Legacy] Old Simple Scheme: Use kernel options 'net.ifnames=0 biosdevname=0', and ensure that it is not overridden by the Persistent Names Scheme (above). Network device names at boot time follow the old convention of eth0 / eth1 etc, with some risk of existing devices being renumbered in unpredictable ways if a network device is added or taken away.
3. [Legacy] Biosdevname Scheme: Use kernel options 'net.ifnames=0 biosdevname=1', and ensure that it is not overridden by the Persistent Names Scheme (above), and that program biosdevname is installed. However biosdevname is now largely superseded and if it is still active on your system you should consider migrating to the Predictable Names Scheme (below).
4. Predictable Names Scheme: Use kernel options 'net.ifnames=1 biosdevname=0', and ensure that it is not overridden by the Persistent Names Scheme (above). At the time of writing (2020) this is the preferred scheme in most situations.
Notes
1. The easiest way to alter a kernel option permanently is to set it using space-separated settings in GRUB_CMDLINE_LINUX_DEFAULT in /etc/default/grub before doing 'update-grub'.
2. If program 'biosdevname' is installed, the kernel may (but might not) use the biosdevname scheme unless you explicitly set biosdevname=0 in kernel options. If program 'biosdevname' is not installed, you should not need the biosdevname=0 parameter (and biosdevname=1 should have no effect).
3. Modern OSes such as Debian 9+ and Ubuntu 16.04+ use net.ifnames=1 as default so this does not have to specified. Older OSes use net.ifnames=0 as default.
4. After making any changes, to ensure they are propagated through to the boot sequence, do:
Usage
Options
-h - show this help and exit
-l - show changelog and exit
-q - only show device names, no other noise
Dependencies
udevadm [biosdevname - not required but used if present]
License
Copyright © 2020 Dominic Raferd. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at https://www.apache.org/licenses/LICENSE-2.0. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Changelog
0.3 [25 Jun 2020]: updated help
0.2 [05 Jun 2020]: added formal help, changelog, make publishable
0.1 [04 Jun 2020]: initial version
Download netnames
Donation
I have provided this software free gratis and for nothing. If you would like to thank me with a contribution, please let me know and I will send you a link. Thank you!
My Other Sites
- TimeDicer - Onsite/offsite data backup for Windows (uses rdiff-backup)
- Finding a 4D Backup Solution
- Web Scraping How To - extracting data from web sites
My Programs
Here is a selection of some (other) programs I have written, most of which run under GNU/Linux from the command line (CLI), are freely available and can be obtained by clicking on the links. Dependencies are shown and while in most cases written and tested on an x86-based Linux server, they should run on a Raspberry Pi, and many can run under Windows using Windows Subsystem for Linux (WSL) or Cygwin. Email me if you have problems or questions, or if you think I could help with a programming requirement.
Backup Utilities
- TimeDicer - Onsite/offsite data backup for Windows (uses rdiff-backup) [ GNU/Linux & MS Windows©: 2008-20 ]
- rdiff-backup-regress - GNU/Linux script to regress an rdiff-backup archive. [ GNU/Linux: 2012-24 ]
Debian/Ubuntu kernel and LVM Utilities
- kernel-remove - GNU/Linux script to list the installed GNU/Linux kernels in a Debian-based distro (e.g. Ubuntu), and can be used to remove an unwanted kernel and related packages, updating grub appropriately. [ GNU/Linux-Debian/Ubuntu: 2010-24 ]
- lvm-usage - GNU/Linux script to show available disk space and how it is used; run as cron job to warn if usage is above a set percentage. Provides additional information if LVM is in use. [ GNU/Linux: 2012-24 ]
- lvm-delete-snapshot - GNU/Linux script to remove LVM snapshot that has been left over by another process. [ GNU/Linux: 2012-21 ]
- lv-convert2cache - GNU/Linux script to convert an existing LV into a cache LV using a smaller faster device as a cache. [ GNU/Linux: 2022-23 ]
Miscellaneous Programs
- sleepwalker - Windows© program which can be run from a remote machine to 'wake up' a Windows© machine behind a router, wait for it to start and then initiate Remote Desktop session. [MS Windows©: 2008-22]
- numliststat - GNU/Linux program giving statistical value(s) for a piped-in list of numbers. [ GNU/Linux: 2022-24 ]
- relay-enforcer - GNU/Linux program enabling a postfix-based mail server relaying to Gmail to act on reports from Gmail about blocked emails. [ GNU/Linux: 2016-24 ]
- pdf-compress - GNU/Linux program to create smaller b/w pdf file from an original large pdf file, especially when original resulted from scanning. [ GNU/Linux: 2016-23 ]
- tiny-device-monitor - GNU/Linux program to test webpages (including password-protected) or machines to check they are live; use as a cron job for your own websites, for hardware presenting a webpage, or for any machines with a presence on your local LAN or on the internet. [ GNU/Linux: 2009-24 ]
- form-extractor - GNU/Linux program to extract form tags from a web page or downloaded file. [ GNU/Linux: 2012-20 ]
- mythic-dns-sync - GNU/Linux program to update DNS record at mythic-beasts.com to match local external ip. [ GNU/Linux: 2016-23 ]
- saynoto0870 - For UK, a GNU/Linux script which performs automated lookup of the www.saynoto0870.com database, finding cheap or free geographic number replacements for expensive non-geographic (087* or 084*) numbers. [ GNU/Linux: 2012-12 ]
- bind9-resolved-switch - GNU/Linux program for switching permanently between using bind9 or systemd-resolved as the system DNS resolver. [ GNU/Linux: 2016-24 ]
- unlock - GNU/Linux remote program for easy entering of decrypt passphrase on a remote machine which has root dm-crypt+LUKS. [ GNU/Linux: 2017-18 ]
- wifi-updown - GNU/Linux program to take down wifi interface if there is a working wired interface (or restore wifi if not). [ GNU/Linux: 2018-23 ]
- routefix - GNU/Linux program to restore a default ip traffic route if there is none such (e.g. after running wifi-updown). [ GNU/Linux: 2018-23 ]
- dutree - GNU/Linux program to show a tree-style list of files and directories at the specified location which are greater than the specified size (default 1GB). [ GNU/Linux: 2012-24 ]
- Accounts - Multi-business multi-currency accounting software, uses Access [MS Windows©: 1996-2024]
- Rents Program - Residential lettings/landlord front office program, with many special features for UK market [MS Windows©: 1991-2024]
This section is closed. If you have a question, please submit it by email, thank you.