On Tue, Jun 25, 2019 at 01:59:27PM -0000, Dan Purgert wrote:
Michael Stone wrote:
weren't constant, but people didn't seem to care as much about the
nuances because "that's the way it's always been". (Sometimes it was an
eth, sometimes it was a wlan, etc.) Why were those differences ok but
these differences aren't? Familiarity.

The old names were constant across systems with the same interface(s) --
i.e. an ethernet or a wifi (or both).

Unless you were born with that knowledge (unlikely) someone needed to explain why some interfaces had different names than others. Now there's just more to explain. (Actually, it's about the same, because other things we used to have to know have faded away entirely.) Or, in the common case, you just don't worry about it. Only if you're in the awkward spot of really wanting to do something with a named interface based on old knowledge, and aren't willing to learn the new rules, is this an issue.

The "problem" with them was that they apparently weren't consistent
across boots if you had multiples of the same "type" -- although I can't
remember that ever happenening, even on crazy frankenboxes that had 3
and 4 PCI NICs in them (barring moving things around, but these
"predictable names" change too).

The problem got increasingly bad as intialization was parallellized, to the point that it was *quite noticible* given a large sample set of servers. The "solution" was to lock a name to a mac via udev, but that just made the system stable as far as which random name was assigned at install time. So, for example, on a large set of servers with both internal NICs and external NICs, sometimes eth0 would be an internal 1G copper interface, and sometimes eth0 would be an external 10G fiber interface. This sucked. The "solution" of locking the name to a MAC made things even worse, because if you replaced a failed NIC it was guaranteed to *not* have the same name on boot unless you went in and manually changed the udev config. (And--DANGER WILL ROBINSON--if you simply nuked the udev config entirely you were back to a coin flip as to which interfaces would have which names and the machine might or might not have a working network configuration on startup. This sucked.) Now with a large population of servers your built-in NIC will come up as something like eno1 and your add-in NIC will be something like ens1f0 and its second interface will be ens1f1 and even if that looks "weird" to some, it's one hell of a lot better than flipping a coin at boot. If hardware is replaced (literally swapped) it will come back the same way. That's very, very good. And, again, if you're not in a position where you want to learn what names will be used in a given situation because you're not managing a bunch of servers, then just ignore the interface names because they don't matter for simpler systems.

While the new naming has forced "predictability" of some regard, it
comes at the cost of having removed the "predictability" of naming when
communicating about disparate systems. That is, before these names a
"network problem" could be resolved with an interaction along the lines
of:

 (0) (problem description)
 (1) OK, run 'ip a list eth0 | nc termbin.com 9999' and share the link
 (2) (get the output)
 (3) Ah, there you go - it's only getting an APIPA address, check on
     your DHCP server...

Nowadays, with these "predictable" names, if we tell the other party the
"wrong" name, all we get is an error message that "Device 'en###'
doesn't exist".

That's a good example of "the interface doesn't matter". Just run "ip a" instead. If there's only one interface it's simple enough to ignore the lo entry and if there's more than one interface *you needed to know that anyway* because that could be the source of the problem.

Reply via email to