Custom network interface names

From Alpine Linux
This material is proposed for merging ...

It should be merged with mdev. This could be part of a "configuring mdev" section in the mdev article (Discuss)

This article shows how to rename/change name of a network interface.

Alpine Linux uses busybox mdev by default to manage devices in /dev. mdev reads /etc/mdev.conf and according to mdev documentation one can define a command to be executed per device definition. The command which is going to be used to change network interface name is nameif.

/etc/mdev.conf configuration

Contents of /etc/mdev.conf

-SUBSYSTEM=net;DEVPATH=.*/net/.*;.* root:root 600 @/sbin/nameif -s

Here we tell mdev to call nameif for devices found in /sys/class/net/.

# ls -d -C -1 /sys/class/net/eth* /sys/class/net/eth1 /sys/class/net/eth2 /sys/class/net/eth3 /sys/class/net/eth4 /sys/class/net/eth5

nameif configuration

nameif itself reads /etc/mactab by default. Example line for a network interface with following hwaddr

# cat /sys/class/net/eth0/address 90:e2:ba:04:28:c0

would be

# grep 90:e2:ba:04:28:c0 /etc/mactab dmz0 90:e2:ba:04:28:c0

ramdisk rebuild

/etc/mdev.conf is part of ramdisk

# grep /etc/mdev.conf /etc/mkinitfs/features.d/*.files /etc/mkinitfs/features.d/base.files:/etc/mdev.conf

thus we need to rebuild ramdisk

# mkinitfs $(ls /lib/modules/) ==> initramfs: creating /boot/initramfs-lts

finalization

To use renamed network interface without reboot, just call nameif while the network interface is down.

# nameif -s

And finally reboot...