Live data from Hacker News

Eth0 no more?

lists.us.dell.com

21–30 of 53 posts

Re: Eth0 no more?

#21
post #20
post #19

Earlier quoted context omitted.

> If the machine is coldstarted then previous devices could be randomly reshufled. The detection order would change, but the ifcfg file (RH) or udev rules (SuSE and others) would not change, so your NICs will stay the same these days.

ifcfg file is auto-generated by the coldstart. But you are right, if we save and restore ifcfg files then it would work. However if this saving and restoring has to be done after machine is coldstarted, its eth0 could be connected to another network completely.

The first time the OS boots, the MAC addresses in ifcfg files are generated. Subsequent cold starts only read the files, they do not write them.

Re: Eth0 no more?

#22
People will whine and complain about this, but it's about time some sanity was brought to Linux's network device names. The eth* enumeration has been terrible for quite a long time, especially when dealing with servers housing multiple interfaces. And if you don't like the solution, they explicitly say you can just set biosdevname=0 on the kernel params and carry on with the previous insanity.

Re: Eth0 no more?

#24
post #18
post #6

Mac OS X and Linux are the only OS's that I'm aware of that put all ethernet nics in the same device namespace. Everyone else has separate device namespaces for - you might have an fxp0 , rl0, hme0, etc. on any BSD or Solaris machine. Rather than looking in /dev, they really ought to be parsing the output of ifconfig -a .

1. Linux gives unique names to each NIC. There are no namespace conflicts, because each NIC alias is unique within devices. I personally do not care about the chipset manufacturer and driver when working on a routing issue. 2. You mean (IIRC) 'ip link show'. ifconfig on linux isn't maintained, and breaks in a bunch of situations (Aliases on VLANs on bonds, for one) 3. And you should of course use python-procfs or you…

somewhat OT:

> 2. You mean (IIRC) 'ip link show'. ifconfig on linux isn't maintained, and breaks in a bunch of situations (Aliases on VLANs on bonds, for one)

This seemingly simple change seems to be taking forever to gain traction; "use `ip` for network config on linux".

There is so much googlable stuff instructing one to use ifconfig, route, etc. that it seems to self perpetuate. I often find people telling others that "you can't do that in Linux", when the real answer is along the lines of "you can't do that with the route command" (to give an example that I've seen a few times recently, route can't manipulate routing tables)

Re: Eth0 no more?

#26
post #18

Earlier quoted context omitted.

1. Linux gives unique names to each NIC. There are no namespace conflicts, because each NIC alias is unique within devices. I personally do not care about the chipset manufacturer and driver when working on a routing issue. 2. You mean (IIRC) 'ip link show'. ifconfig on linux isn't maintained, and breaks in a bunch of situations (Aliases on VLANs on bonds, for one) 3. And you should of course use python-procfs or you…

somewhat OT: > 2. You mean (IIRC) 'ip link show'. ifconfig on linux isn't maintained, and breaks in a bunch of situations (Aliases on VLANs on bonds, for one) This seemingly simple change seems to be taking forever to gain traction; "use `ip` for network config on linux". There is so much googlable stuff instructing one to use ifconfig, route, etc. that it seems to self perpetuate. I often find people telling others…

It's not that it self-perpetuates, it's that nearly every other Unix does it that way, and thus there's an expectation that ifconfig, if it exists, has similar functionality on all platforms.

If you're going to deprecate a command, make running the old one either:

1. Not exist, and thus have the shell throw an "command not found" error

2. Print a useful message like "Use instead"

3. Work, but do #2 as well.

The current situation is like leaving a pair of rusty pliers out in the open, and hiding the brand new socket set when the goal is tightening a bunch of bolts.

Re: Eth0 no more?

#28
post #21
post #20

Earlier quoted context omitted.

ifcfg file is auto-generated by the coldstart. But you are right, if we save and restore ifcfg files then it would work. However if this saving and restoring has to be done after machine is coldstarted, its eth0 could be connected to another network completely.

The first time the OS boots, the MAC addresses in ifcfg files are generated. Subsequent cold starts only read the files, they do not write them.

That is the the problem I am trying to convey -- the machines are coldstarted often and MAC addresses are reshufled on every first boot. If your cable to the management network is connected to left socket on the motherboard, that left socket needs to be eth0 on every coldstart. Sometimes it is not. "Yes" after the first boot when ifcfg files has been written it will be stable, but that mean someone has to go and either hand-edit ifcfg files or run ethtool -p eth0 and replug the cables.

> Subsequent cold starts only read the files

No they don't. Thare no files to read. You just wrote above in your commetn that the first time OS boots ifcfg are generated. So after a machine is coldstarted there are no ifcfg files! They are generated once per coldstart and saved. Then during each restart those files are read and everything is fine.

Now, I was saying, you can have a provisioning scheme where during coldstart, in your kickstart file you can fetch and write stable ifcfg files to prevent machines from creating their own. What we do instead is install a custom RPM with a udev script where an algorithm sorts the network interfaces in a stable way (since we only deal with a known and limited set of motherboards and network cards).

Re: Eth0 no more?

#29
post #26

Earlier quoted context omitted.

somewhat OT: > 2. You mean (IIRC) 'ip link show'. ifconfig on linux isn't maintained, and breaks in a bunch of situations (Aliases on VLANs on bonds, for one) This seemingly simple change seems to be taking forever to gain traction; "use `ip` for network config on linux". There is so much googlable stuff instructing one to use ifconfig, route, etc. that it seems to self perpetuate. I often find people telling others…

It's not that it self-perpetuates, it's that nearly every other Unix does it that way, and thus there's an expectation that ifconfig, if it exists, has similar functionality on all platforms. If you're going to deprecate a command, make running the old one either: 1. Not exist, and thus have the shell throw an "command not found" error 2. Print a useful message like "Use instead" 3. Work, but do #2 as well. The curre…

Love the tools analogy! So true. LOL

Re: Eth0 no more?

#30

I assume any consumer OS will generate a symlink for compatibility reasons.

I certainly hope so. There's just way too honking much literature out there oriented on ethX to simply make ethX go away.
Post reply on HN