* [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