:: Re: [DNG] Ethernet names revisited
Top Page
Delete this message
Reply to this message
Author: tito
Date:  
To: dng
Subject: Re: [DNG] Ethernet names revisited
On Sun, 13 Dec 2020 10:45:56 +0100
Antony Stone <Antony.Stone@???> wrote:

> On Sunday 13 December 2020 at 09:25:24, terryc wrote:
>
> > On Sat, 12 Dec 2020 14:15:53 +0100
> >
> > Antony Stone <Antony.Stone@???> wrote:
> > > Hi.
> > >
> > > I've just installed a couple of Beowulf systems, each of which has
> > > three ethernet interfaces; one on the motherboard, and two on a
> > > PCI card.
> > >
> > > I'm trying to work out how to give those interfaces the names I
> > > want; the motherboard as eth0, and the PCI card as eth1 / eth2.
> >
> > Err, what is not clear in 'man interfaces'
>
> If you're referring to the "mapping" section, I've tried that and it
> doesn't help.
>
> > FWIW, I've just had to do a fresh install of Beowulf and as I
> > always do I manuay define /etc/network/interfaces, e.g.
> >
> > # The primary network interface
> > allow-hotplug eth0
> > iface eth0 inet static
> >         address 192.168.x.y
> >         netmask 255.255.0.0
> >         gateway 192.168.x.z

> >
> > Just add the line
> >     hwaddress mac:add:dress:in:usual:format

> >
> > to match eth2 & eth3 to the desired card.
>
> I think that's entirely the wrong way round.
>
> Setting hwaddress in /etc/network/interfaces changes the MAC address
> of the interface according to its name (eth0, eth1, etc).
>
> I'm looking for the opposite - I want to make sure that the device
> whose MAC address is 78:ac:c0:f7:89:f7 gets called "eth0" (instead of
> "eth2", which is what I get from the kernel), and that the devices
> with MAC addresses 00:e0:4c:80:21:6b and 00:e0:4c:80:21:6c get called
> "eth1" and "eth2" respectively, instead of "eth0" and "eth1".
>
> I can only repeat - under Jessie and earlier, this was all handled by
> the settings in /etc/udev/rules.d/70-persistent-net.rules
>
> From Ascii onwards I get the errors:
>
> udevd[441]: Error changing net interface name eth2 to eth0: File
> exists udevd[441]: could not rename interface '4' from 'eth2' to
> 'eth0': File exists


Hi,
they cannot be renamed because the name is already taken

NIC1 NIC2 NIC3
eth0 eth1 eth2 (you have)
eth1 eth0 eth2 (you want)

udevd[441]: Error changing net interface name eth2 to eth0: File exists
udevd[441]: could not rename interface '4' from 'eth2' to 'eth0': File
exists

so renaming fails, use predictable names (remove ifnames=0)

NIC1 NIC2 NIC3
en1p1 en2p1 en3p1 (you have)
eth1 eth0 eth2 (you want)

as there is no name clash the interfaces can be renamed by
macaddress with udev rules

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:11:22:33:44:51", ATTR{type}=="1", KERNEL=="?*", NAME:="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:11:22:33:44:52", ATTR{type}=="1", KERNEL=="?*", NAME:="eth1"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:11:22:33:44:53", ATTR{type}=="1", KERNEL=="?*", NAME:="eth2"

This works for me on my devuan routers and I was bitten by what you are experiencing when I thought that adding ifname=0 was a good idea.
It was not and at the next reboot the interfaces could not be reordered to my liking anymore and were assigned in a wrong way which locked
me out of the router and broke internet for the joy of my coworkers.

Ciao,
Tito

> and so on.
>
>
> Antony.
>