On Fri, 15 Feb 2013, Les Mikesell wrote:
On Fri, Feb 15, 2013 at 10:16 PM, me@tdiehl.org wrote:
What is messing with udev rules supposed to be necessary?
You should have a line in /etc/udev/rules.d/70-persistent-net.rules that associates the MAC address with the eth? name for each of your NICs. Certain things (like removing the file, and maybe some hardware changes) will make it be reconstructed during boot and if you only have one NIC you wouldn't have much chance of it being wrong. But, if the name set there doesn't match the name of the /etc/sysconfig/network-scripts/ifcfg-eth* file with the correct MAC address, that interface should not start.
Empirical evidence seems to suggest that if the correct udev entry is missing udev will create the entry on its own.
FWIW, the cards I am changing out have 3 ports on them and again after doing 15 of these, I have never messed with udev.
I did not even know about this "problem" until I read about it on this list.
From what I've seen, the ports on a single card will be detected in
the same order every time. The issue is that if you have some motherboard NICs and one or more pci cards, the order of detection of the groups will be a matter of chance. Our servers mostly have some Broadcomm's on the MB plus a few multi-port Intel cards. If you remove the udev rules, there is no way to know whether the MB NICs or the add-ons will be eth0 and eth1.
Agreed, I have seen that behavior but I was talking about what happens if you change a card, put the new MAC address in ifcfg-eth* and do nothing with the udev rules.
I always use ks to build the machines and the interfaces are pre-defined in the ks setup.
Interestingly enough, I just looked at the udev file and it contains not only the new mac addresses but also the old ones.
For example the entries for eth1 looks like the following:
# PCI device 0x10ec:0x8167 (r8169) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:30:18:a9:e4:ad", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
# PCI device 0x8086:0x1076 (e1000) (custom name provided by external tool) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:30:18:a4:eb:d0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
I did not put any of these entries in there and I wonder what "external tool" is providing the "custom name"?
Don't know about the tool, but note that this would come out differently if you added the new card, booted, then shut down and removed the old card.
Is there anyone here who actually knows how this is supposed to work?
Randomly, I guess...
I am beginning to believe that. I guess some more research is in order.
Regards,