* [gentoo-user] udev upgrade renames eth-interfaces
@ 2013-03-16 13:14 Dan Johansson
2013-03-16 13:39 ` [gentoo-user] " Jonathan Callen
0 siblings, 1 reply; 5+ messages in thread
From: Dan Johansson @ 2013-03-16 13:14 UTC (permalink / raw
To: gentoo-user
Hello,
Today I upgraded udev on one of my boxes (after hesitating a long time).
Even if I have /etc/udev/rules.d/80-net-name-slot.rules and my old 70-persistent-net.rules in place, my interfaces gets renamed (eth0 gets swapped with eth1) which then messes up my whole configuration (routing tables and firewall rules).
Any suggestion how to keep my old names and order?
Regards,
--
Dan Johansson, <http://www.dmj.nu>
***************************************************
This message is printed on 100% recycled electrons!
***************************************************80-net-
^ permalink raw reply [flat|nested] 5+ messages in thread
* [gentoo-user] Re: udev upgrade renames eth-interfaces
2013-03-16 13:14 [gentoo-user] udev upgrade renames eth-interfaces Dan Johansson
@ 2013-03-16 13:39 ` Jonathan Callen
2013-03-16 17:03 ` Dan Johansson
0 siblings, 1 reply; 5+ messages in thread
From: Jonathan Callen @ 2013-03-16 13:39 UTC (permalink / raw
To: gentoo-user; +Cc: Dan Johansson
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
On 03/16/2013 09:14 AM, Dan Johansson wrote:
> Hello,
>
> Today I upgraded udev on one of my boxes (after hesitating a long
> time). Even if I have /etc/udev/rules.d/80-net-name-slot.rules and
> my old 70-persistent-net.rules in place, my interfaces gets renamed
> (eth0 gets swapped with eth1) which then messes up my whole
> configuration (routing tables and firewall rules). Any suggestion
> how to keep my old names and order?
>
> Regards,
>
Udev, as of version 187, will now refuse to rename a network interface
to the name of a network interface that already exists -- which, due
to race conditions, can be the case if you are attempting to rename a
network device to a name the kernel will later use to name the next
enumerated device. The fix for this issue is to *not* use names that
match "eth[0-9]*", "wlan[0-9]*", etc. and instead use a name that the
kernel would *not* automatically assign. Unfortunately, that means
that you *cannot* keep your old names and order (upstream claims that
the means used to ensure those names were used was unreliable and
prone to race conditions anyway, which, looking at the code, I can
believe).
- --
Jonathan Callen
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.19 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/
iQIcBAEBCgAGBQJRRHYFAAoJELHSF2kinlg4d0MQAJhJs73Nlja+TGoq77TaYMOz
vrJmZmPDewp+1imFjfnddhC6c5ePn5+XCQ7vWmcB3LVVh8JAOqRq1pEV/u4F3HYO
8VE5VI/s0K2MO/+8aLOOSnB91tmEmZ9ziKnIjvZPKqDKH5JB2iCShnvvgfdWIlQB
HwaZknzlvl1bNCBmDfaXFoGzPmEIiyIysuzI9xFxv1/m+VOMeDkN5a7qJmC7mXld
gu9Shx15Y2LBJZvQaUH8aM6Qv4BsMc9IJ0XWp/aHpbefMuj+Vb5038caRRfHqyUN
aNmYmiEvvkb2IqrMSJ8x4faC3iVj/YimovEQhiDZmwaHcl2IqmlngJ1qAPk30/Lh
fwUVDCTwtJ/zoOoTxGpd4zZ/wUVVPaupsOc2D7ZMXlw2o5RzsuSwRE5FrHv/0MXO
Ne3I3QVHvPJvYfwi0AyOv5wHEKkCdF9MjgWqCErjEPaFUrrPuiWp4ESQp/HE5rVQ
YG77ZSugSnFddZgwYenlSgDhHkkMaHV8zeNautVOPRMsvqbKbnVjEtT7YXHJBN0B
OnnCQhZR7lBKCkxc5Xq/TWXe9imT/1Of8tLn80SuICthUGLgFg1tlv0AIjKmWU9q
FIoQ+xD6rTav2zdPkTF86HsODqwe38br64NLPhUSfd+s7e5iiqh++XTtwTnXSKXW
QbQb+npPnCZ0DgqW9aCM
=/24C
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [gentoo-user] Re: udev upgrade renames eth-interfaces
2013-03-16 13:39 ` [gentoo-user] " Jonathan Callen
@ 2013-03-16 17:03 ` Dan Johansson
2013-03-16 18:08 ` Canek Peláez Valdés
0 siblings, 1 reply; 5+ messages in thread
From: Dan Johansson @ 2013-03-16 17:03 UTC (permalink / raw
To: gentoo-user
On Saturday 16 March 2013 09.39:17 Jonathan Callen wrote:
> > Hello,
> >
> > Today I upgraded udev on one of my boxes (after hesitating a long
> > time). Even if I have /etc/udev/rules.d/80-net-name-slot.rules and
> > my old 70-persistent-net.rules in place, my interfaces gets renamed
> > (eth0 gets swapped with eth1) which then messes up my whole
> > configuration (routing tables and firewall rules). Any suggestion
> > how to keep my old names and order?
> Udev, as of version 187, will now refuse to rename a network interface
> to the name of a network interface that already exists -- which, due
> to race conditions, can be the case if you are attempting to rename a
> network device to a name the kernel will later use to name the next
> enumerated device. The fix for this issue is to *not* use names that
> match "eth[0-9]*", "wlan[0-9]*", etc. and instead use a name that the
> kernel would *not* automatically assign. Unfortunately, that means
> that you *cannot* keep your old names and order (upstream claims that
> the means used to ensure those names were used was unreliable and
> prone to race conditions anyway, which, looking at the code, I can
> believe).
This is great...
(I hope you can hear the irony)
OK, so I removed the two udev rules (70-persistent-net and 80-net-name-slot) files, thinking if this is the way the "upstream devs" are going then I have to check it out.
After removing the udev-rules and rebooting I got my two new network interfaces called enp0s4 and enp0s5 (no idea what that is supposed to mean).
My next step was to replace eth0 with enp0s5 and eth1 with enp0s4 in /etc/conf.d(net and create two new links (net.lo -> net.enp0s[45]) in /etc/init.d
Now I could start the two network interfaces (/etc/init.d/net.enp0s[45] start).
BUT, as soon as I try to start some service (sshd, ntpd, ...) that is using the network I get a lot of complains that eth0 and eth1 is not started (and can not be started) and the service wont start.
What have I missed???
Regards,
--
Dan Johansson, <http://www.dmj.nu>
***************************************************
This message is printed on 100% recycled electrons!
***************************************************
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [gentoo-user] Re: udev upgrade renames eth-interfaces
2013-03-16 17:03 ` Dan Johansson
@ 2013-03-16 18:08 ` Canek Peláez Valdés
2013-03-17 9:53 ` Dan Johansson
0 siblings, 1 reply; 5+ messages in thread
From: Canek Peláez Valdés @ 2013-03-16 18:08 UTC (permalink / raw
To: gentoo-user
On Sat, Mar 16, 2013 at 11:03 AM, Dan Johansson <Dan.Johansson@dmj.nu> wrote:
> On Saturday 16 March 2013 09.39:17 Jonathan Callen wrote:
>> > Hello,
>> >
>> > Today I upgraded udev on one of my boxes (after hesitating a long
>> > time). Even if I have /etc/udev/rules.d/80-net-name-slot.rules and
>> > my old 70-persistent-net.rules in place, my interfaces gets renamed
>> > (eth0 gets swapped with eth1) which then messes up my whole
>> > configuration (routing tables and firewall rules). Any suggestion
>> > how to keep my old names and order?
>> Udev, as of version 187, will now refuse to rename a network interface
>> to the name of a network interface that already exists -- which, due
>> to race conditions, can be the case if you are attempting to rename a
>> network device to a name the kernel will later use to name the next
>> enumerated device. The fix for this issue is to *not* use names that
>> match "eth[0-9]*", "wlan[0-9]*", etc. and instead use a name that the
>> kernel would *not* automatically assign. Unfortunately, that means
>> that you *cannot* keep your old names and order (upstream claims that
>> the means used to ensure those names were used was unreliable and
>> prone to race conditions anyway, which, looking at the code, I can
>> believe).
> This is great...
> (I hope you can hear the irony)
>
> OK, so I removed the two udev rules (70-persistent-net and 80-net-name-slot) files, thinking if this is the way the "upstream devs" are going then I have to check it out.
That's the smart thing to do.
> After removing the udev-rules and rebooting I got my two new network interfaces called enp0s4 and enp0s5 (no idea what that is supposed to mean).
http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames
http://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c
Basically, "en" is for "ethernet", "p" is for "PCI bus", and "0s4" and
"0s5" is for the topology of the cards in your machine: the cards are
in the PCI bus number 0, slot number 4 and 5. In other words, if you
do "find /sys -name enp0s4", I'm betting you will get something like:
/sys/devices/pci0000:00/0000:00:1c.1/0000:00:004.0/net/enp0s4
The "0000:00:004.0" is the part that determines the naming of yout
device. This naming is deterministic: as long as you don't move the
cards from PCI slot, they will be named like that always.
> My next step was to replace eth0 with enp0s5 and eth1 with enp0s4 in /etc/conf.d(net and create two new links (net.lo -> net.enp0s[45]) in /etc/init.d
> Now I could start the two network interfaces (/etc/init.d/net.enp0s[45] start).
> BUT, as soon as I try to start some service (sshd, ntpd, ...) that is using the network I get a lot of complains that eth0 and eth1 is not started (and can not be started) and the service wont start.
> What have I missed???
Do you have net.eth0 or net.eth1 in /etc/rc.conf?
Regards.
--
Canek Peláez Valdés
Posgrado en Ciencia e Ingeniería de la Computación
Universidad Nacional Autónoma de México
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [gentoo-user] Re: udev upgrade renames eth-interfaces
2013-03-16 18:08 ` Canek Peláez Valdés
@ 2013-03-17 9:53 ` Dan Johansson
0 siblings, 0 replies; 5+ messages in thread
From: Dan Johansson @ 2013-03-17 9:53 UTC (permalink / raw
To: gentoo-user
On Saturday 16 March 2013 12.08:23 Canek Peláez Valdés wrote:
> On Sat, Mar 16, 2013 at 11:03 AM, Dan Johansson <Dan.Johansson@dmj.nu> wrote:
> > On Saturday 16 March 2013 09.39:17 Jonathan Callen wrote:
> >> > Hello,
> >> >
> >> > Today I upgraded udev on one of my boxes (after hesitating a long
> >> > time). Even if I have /etc/udev/rules.d/80-net-name-slot.rules and
> >> > my old 70-persistent-net.rules in place, my interfaces gets renamed
> >> > (eth0 gets swapped with eth1) which then messes up my whole
> >> > configuration (routing tables and firewall rules). Any suggestion
> >> > how to keep my old names and order?
> >> Udev, as of version 187, will now refuse to rename a network interface
> >> to the name of a network interface that already exists -- which, due
> >> to race conditions, can be the case if you are attempting to rename a
> >> network device to a name the kernel will later use to name the next
> >> enumerated device. The fix for this issue is to *not* use names that
> >> match "eth[0-9]*", "wlan[0-9]*", etc. and instead use a name that the
> >> kernel would *not* automatically assign. Unfortunately, that means
> >> that you *cannot* keep your old names and order (upstream claims that
> >> the means used to ensure those names were used was unreliable and
> >> prone to race conditions anyway, which, looking at the code, I can
> >> believe).
> > This is great...
> > (I hope you can hear the irony)
> >
> > OK, so I removed the two udev rules (70-persistent-net and 80-net-name-slot) files, thinking if this is the way the "upstream devs" are going then I have to check it out.
>
> That's the smart thing to do.
>
> > After removing the udev-rules and rebooting I got my two new network interfaces called enp0s4 and enp0s5 (no idea what that is supposed to mean).
>
> http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames
>
> http://cgit.freedesktop.org/systemd/systemd/tree/src/udev/udev-builtin-net_id.c
>
> Basically, "en" is for "ethernet", "p" is for "PCI bus", and "0s4" and
> "0s5" is for the topology of the cards in your machine: the cards are
> in the PCI bus number 0, slot number 4 and 5. In other words, if you
> do "find /sys -name enp0s4", I'm betting you will get something like:
>
> /sys/devices/pci0000:00/0000:00:1c.1/0000:00:004.0/net/enp0s4
>
> The "0000:00:004.0" is the part that determines the naming of yout
> device. This naming is deterministic: as long as you don't move the
> cards from PCI slot, they will be named like that always.
>
> > My next step was to replace eth0 with enp0s5 and eth1 with enp0s4 in /etc/conf.d(net and create two new links (net.lo -> net.enp0s[45]) in /etc/init.d
> > Now I could start the two network interfaces (/etc/init.d/net.enp0s[45] start).
> > BUT, as soon as I try to start some service (sshd, ntpd, ...) that is using the network I get a lot of complains that eth0 and eth1 is not started (and can not be started) and the service wont start.
> > What have I missed???
>
> Do you have net.eth0 or net.eth1 in /etc/rc.conf?
No, but I still had the links in /etc/init.d/. Removing those and adding lins for enp0s[45] did the trick.
Thanks,
--
Dan Johansson, <http://www.dmj.nu>
***************************************************
This message is printed on 100% recycled electrons!
***************************************************
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2013-03-17 9:53 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-16 13:14 [gentoo-user] udev upgrade renames eth-interfaces Dan Johansson
2013-03-16 13:39 ` [gentoo-user] " Jonathan Callen
2013-03-16 17:03 ` Dan Johansson
2013-03-16 18:08 ` Canek Peláez Valdés
2013-03-17 9:53 ` Dan Johansson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox