🐧Fixing Persistent Ethernet Interface Naming Problems on Debian Buster🦚
Solve Ethernet Interface Naming Conflicts on Debian 10 by Making Names Persistent Using MAC Addresses

Driving SD-WAN Adoption in South Africa
Search for a command to run...
Solve Ethernet Interface Naming Conflicts on Debian 10 by Making Names Persistent Using MAC Addresses

Driving SD-WAN Adoption in South Africa
No comments yet. Be the first to comment.
Enhancing Security and Compliance with ManageEngine ADAudit Plus

Why Pings Aren't Enough & NMS is Essential

What is SD-WAN (Software Defined Wide Area Networking)? | The Mechanics of this Groundbreaking New Network Technology

Embracing First Principles & the Scientific Method

Ever Wondered | "Is My Internet Really 99.9% Reliable?" 🤔

When dealing with multiple Ethernet controllers on Debian 10, interface naming issues can arise, particularly if two controllers have non-persistent interface names. This guide walks through resolving such issues by making interface names persistent based on MAC addresses.
In a typical scenario:
First controller: Has six interfaces (e.g., eth0 to eth5), each with consecutive MAC addresses.
Second controller: Has two interfaces (eth6 and eth7).
The problem arises when the second controller's interface names are not consistent across reboots. This can cause networking services to fail if they depend on specific interface names.
Use the ip a command to list all network interfaces and their MAC addresses:
ip a
Note the MAC addresses associated with the interfaces. For example:
First controller: eth0 through eth5, with MAC addresses like 04:2b:58:0f:8f:90 to 04:2b:58:0f:8f:95.
Second controller: eth6 and eth7, with MAC addresses 04:2b:58:0f:9d:e0 and 04:2b:58:0f:9d:e1.
Define rules for persistent naming by creating a file in /etc/udev/rules.d/:
sudo nano /etc/udev/rules.d/70-persistent-net.rules
Add the following rules, replacing the example MAC addresses with the actual addresses from your system:
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="04:2b:58:0f:9d:e0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth6"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="04:2b:58:0f:9d:e1", ATTR{type}=="1", KERNEL=="eth*", NAME="eth7"
Reboot to apply the new udev rules:
sudo reboot
After reboot, verify that the interfaces eth6 and eth7 have been correctly assigned to the MAC addresses:
ip a
ethtoolVerify the MAC address assignments to ensure accuracy:
sudo ethtool -i eth6
sudo ethtool -i eth7
This confirms the interface is correctly linked to the MAC address. If the interface are SFP/+ then you should also be able to query the module details.
Confirm that the names are consistent and match the MAC addresses configured in the udev rules.
If the interfaces do not appear as expected, check the udev rule syntax and ensure no conflicts exist in /etc/udev/rules.d/.
Use udevadm to debug:
sudo udevadm test /sys/class/net/eth6
sudo udevadm test /sys/class/net/eth7
By defining persistent naming rules based on MAC addresses, you can ensure consistent interface names for your network controllers. This solution is robust for systems with multiple Ethernet controllers, providing stability for networking configurations across reboots.