FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > CentOS > CentOS

 
 
LinkBack Thread Tools
 
Old 11-23-2009, 12:38 AM
Gordon McLellan
 
Default again, nic driver order

I have two servers with identical hardware ... TYAN i3210w system
boards with dual intel gigabit interfaces, and a PCI intel gigabit
nic. I'm running Centos 5.4, x86_64, 2.6.18-164.6.1.el5

Every other time I reboot, the nics initialize in a different order.

anaconda had setup /etc/modprobe.conf with alias lines for the cards:

alias eth0 e1000
alias eth1 e1000e
alias eth2 e1000e

However, introducing the bonding driver into the mix seems to have
thrown a wrench in the works.

alias bond0 bonding
options bond0 miimon=80 mode=5 #or something like that, can't get to
the machine right now - no console and the network is down

So, I read about the ifcfg options and try assigning each config
script an HWADDR line.

after rebooting, /var/log/messages announces that hardware address for
eth1 does not match, skipping ... same for eth2

Reading the archives seems to indicate modprobe.conf doesn't do much
and is made obsolete by udev, and that hwaddr is discouraged because
it's a band-aid. The archives seem to suggest fiddling with udev to
be the answer. So I modify /etc/udev/rules.d/60-net (or something)
and add a few rules found in an ancient example (those aren't my mac
addresses):
KERNEL=="eth?", SYSFS{address}=="00:37:e9:17:64:af", NAME="eth0" #
MAC of first NIC in lowercase
KERNEL=="eth?", SYSFS{address}=="00:21:e9:17:64:b5", NAME="eth1" #
MAC of second NIC in lowercase

Now, all three network cards get assigned as eth0! eth1 and eth2 are
no longer found. The pci-express nics (onboard) get detected first,
and the pci nic is last, so it ends up "owning" the eth0 alias.

I don't really care which alias gets assigned to which nic, but I want
that assignment to be constant.

All suggestions are appreciated!

Gordon
_______________________________________________
CentOS mailing list
CentOS@centos.org
http://lists.centos.org/mailman/listinfo/centos
 
Old 11-23-2009, 01:33 AM
Tom H
 
Default again, nic driver order

On Mon, Nov 23, 2009 at 2:38 AM, Gordon McLellan <gordonthree@gmail.com> wrote:
> The archives seem to suggest fiddling with udev to
> be the answer. *So I modify /etc/udev/rules.d/60-net (or something)
> and add a few rules found in an ancient example (those aren't my mac
> addresses):
> KERNEL=="eth?", SYSFS{address}=="00:37:e9:17:64:af", NAME="eth0" *#
> MAC of first NIC in lowercase
> KERNEL=="eth?", SYSFS{address}=="00:21:e9:17:64:b5", NAME="eth1" *#
> MAC of second NIC in lowercase
>
> Now, all three network cards get assigned as eth0! eth1 and eth2 are
> no longer found.*The pci-express nics (onboard) get detected first,
> and the pci nic is last, so it ends up "owning" the eth0 alias.

Changing SYSFS to ATTR should do it.
_______________________________________________
CentOS mailing list
CentOS@centos.org
http://lists.centos.org/mailman/listinfo/centos
 
Old 11-23-2009, 12:04 PM
Gordon McLellan
 
Default again, nic driver order

On Sun, Nov 22, 2009 at 9:33 PM, Tom H <tomh0665@gmail.com> wrote:
> On Mon, Nov 23, 2009 at 2:38 AM, Gordon McLellan <gordonthree@gmail.com> wrote:
>> KERNEL=="eth?", SYSFS{address}=="00:21:e9:17:64:b5", NAME="eth1" *#
>> Now, all three network cards get assigned as eth0! eth1 and eth2 are
>> no longer found.*The pci-express nics (onboard) get detected first,
>> and the pci nic is last, so it ends up "owning" the eth0 alias.
>
> Changing SYSFS to ATTR should do it.
> _______________________________________________

Tom,

Now I get in the syslog: Unknown key: ATTR{address}

I also tried ATTRS{address} seen in some examples, same error.

Digging around google a bit more I came up with different rules, and
fingers crossed, they seem to work!

SUBSYSTEM=="net", SYSFS{address}=="00:1b:21:4d:c3:e8", NAME="eth0" # pro/1000gt
SUBSYSTEM=="net", SYSFS{address}=="00:e0:81:b5:7a:30", NAME="eth1" # internal 1
SUBSYSTEM=="net", SYSFS{address}=="00:e0:81:b5:7a:31", NAME="eth2" # internal 2

I also performed chmod +x on the 60-net.rules file, I noticed some
other files in rules.d were marked as executable, so I figured it
couldn't hurt!

Gordon
_______________________________________________
CentOS mailing list
CentOS@centos.org
http://lists.centos.org/mailman/listinfo/centos
 
Old 11-23-2009, 12:29 PM
Gordon McLellan
 
Default again, nic driver order

On Mon, Nov 23, 2009 at 8:04 AM, Gordon McLellan <gordonthree@gmail.com> wrote:
> Digging around google a bit more I came up with different rules, and
> fingers crossed, they seem to work!
>
> SUBSYSTEM=="net", SYSFS{address}=="00:1b:21:4d:c3:e8", NAME="eth0" *# pro/1000gt
> SUBSYSTEM=="net", SYSFS{address}=="00:e0:81:b5:7a:30", NAME="eth1" *# internal 1
> SUBSYSTEM=="net", SYSFS{address}=="00:e0:81:b5:7a:31", NAME="eth2" *# internal 2
>

Replying to myself here, as I'm going crazy anyway.

It turns out it was just a fluke the server booted up with the correct
order. Another reboot and the nic's are all screwed up again, the
built in and external card sharing eth0, the second built in as eth1.

On the second server, things are the same even with the new rules, nic
drvier order is seemingly chosen at random with each boot.

Any other thoughts and suggestions!?

Gordon
_______________________________________________
CentOS mailing list
CentOS@centos.org
http://lists.centos.org/mailman/listinfo/centos
 
Old 11-23-2009, 12:52 PM
Les Mikesell
 
Default again, nic driver order

Gordon McLellan wrote:
> On Mon, Nov 23, 2009 at 8:04 AM, Gordon McLellan <gordonthree@gmail.com> wrote:
>> Digging around google a bit more I came up with different rules, and
>> fingers crossed, they seem to work!
>>
>> SUBSYSTEM=="net", SYSFS{address}=="00:1b:21:4d:c3:e8", NAME="eth0" # pro/1000gt
>> SUBSYSTEM=="net", SYSFS{address}=="00:e0:81:b5:7a:30", NAME="eth1" # internal 1
>> SUBSYSTEM=="net", SYSFS{address}=="00:e0:81:b5:7a:31", NAME="eth2" # internal 2
>>
>
> Replying to myself here, as I'm going crazy anyway.
>
> It turns out it was just a fluke the server booted up with the correct
> order. Another reboot and the nic's are all screwed up again, the
> built in and external card sharing eth0, the second built in as eth1.
>
> On the second server, things are the same even with the new rules, nic
> drvier order is seemingly chosen at random with each boot.
>
> Any other thoughts and suggestions!?

Normally, the nic devices are renamed to match the DEVICE= name specified in the
/etc/sysconfig/ifcfg-eth? file with the matching HWADDR= mac address even if
they were detected as something else. Can you use these and still layer the
bonding on top of them (they don't have to have an IPADDR)? Note that they get
the name of the DEVICE= inside the file, not the eth? of the filename if they
happen to differ, and it may not work if you don't have matches for every nic.

--
Les Mikesell
lesmikesell@gmail.com
_______________________________________________
CentOS mailing list
CentOS@centos.org
http://lists.centos.org/mailman/listinfo/centos
 
Old 11-23-2009, 01:29 PM
Ross Walker
 
Default again, nic driver order

On Nov 23, 2009, at 8:29 AM, Gordon McLellan <gordonthree@gmail.com>
wrote:

> On Mon, Nov 23, 2009 at 8:04 AM, Gordon McLellan <gordonthree@gmail.com
> > wrote:
>> Digging around google a bit more I came up with different rules, and
>> fingers crossed, they seem to work!
>>
>> SUBSYSTEM=="net", SYSFS{address}=="00:1b:21:4d:c3:e8", NAME="eth0"
>> # pro/1000gt
>> SUBSYSTEM=="net", SYSFS{address}=="00:e0:81:b5:7a:30", NAME="eth1"
>> # internal 1
>> SUBSYSTEM=="net", SYSFS{address}=="00:e0:81:b5:7a:31", NAME="eth2"
>> # internal 2
>>
>
> Replying to myself here, as I'm going crazy anyway.
>
> It turns out it was just a fluke the server booted up with the correct
> order. Another reboot and the nic's are all screwed up again, the
> built in and external card sharing eth0, the second built in as eth1.
>
> On the second server, things are the same even with the new rules, nic
> drvier order is seemingly chosen at random with each boot.
>
> Any other thoughts and suggestions!?

Don't touch udev, expecting admins to write udev rules for network
interface binding is just not realistic. Udev rules are meant to be
static across hardware reconfigurations while ifcfg files are meant to
be modified to suit your current configuration.

Use HWADDR="00:1b:21:4d:c3:e8" in the ifcfg files along with NAME=eth0
for eth0 and so on.

modprobe.conf associates an alias with a driver, and the ifcfg files
associate a MAC address with an alias.

Also for CentOS 5 you can specify the bonding interface options in the
ifcfg files (so you can have varying types of bonded interfaces) with
MODPROBE_OPTIONS="".

-Ross



_______________________________________________
CentOS mailing list
CentOS@centos.org
http://lists.centos.org/mailman/listinfo/centos
 
Old 11-28-2009, 03:16 PM
Tom H
 
Default again, nic driver order

>>> KERNEL=="eth?", SYSFS{address}=="00:21:e9:17:64:b5", NAME="eth1" *#
>>> Now, all three network cards get assigned as eth0! eth1 and eth2 are
>>> no longer found.*The pci-express nics (onboard) get detected first,
>>> and the pci nic is last, so it ends up "owning" the eth0 alias.

>> Changing SYSFS to ATTR should do it.

> Tom,
>
> Now I get in the syslog: Unknown key: ATTR{address}
>
> I also tried ATTRS{address} seen in some examples, same error.
>
> Digging around google a bit more I came up with different rules, and
> fingers crossed, they seem to work!
>
> SUBSYSTEM=="net", SYSFS{address}=="00:1b:21:4d:c3:e8", NAME="eth0" *# pro/1000gt
> SUBSYSTEM=="net", SYSFS{address}=="00:e0:81:b5:7a:30", NAME="eth1" *# internal 1
> SUBSYSTEM=="net", SYSFS{address}=="00:e0:81:b5:7a:31", NAME="eth2" *# internal 2

Sorry. I was at an F12 box and udev uses there (and on U9.10)
"ATTR{address}". For CentOS, it is "SYSFS{address}" as you are
using...
_______________________________________________
CentOS mailing list
CentOS@centos.org
http://lists.centos.org/mailman/listinfo/centos
 
Old 11-28-2009, 06:01 PM
Tom H
 
Default again, nic driver order

>> Digging around google a bit more I came up with different rules, and
>> fingers crossed, they seem to work!

>> SUBSYSTEM=="net", SYSFS{address}=="00:1b:21:4d:c3:e8", NAME="eth0" *# pro/1000gt
>> SUBSYSTEM=="net", SYSFS{address}=="00:e0:81:b5:7a:30", NAME="eth1" *# internal 1
>> SUBSYSTEM=="net", SYSFS{address}=="00:e0:81:b5:7a:31", NAME="eth2" *# internal 2

> It turns out it was just a fluke the server booted up with the correct
> order. *Another reboot and the nic's are all screwed up again, the
> built in and external card sharing eth0, the second built in as eth1.

> On the second server, things are the same even with the new rules, nic
> drvier order is seemingly chosen at random with each boot.

Do you have anything else in 60-net.rules other than these three rules?

Try prepending "KERNEL=="eth*, "" and/or "ACTION=="add, "".
_______________________________________________
CentOS mailing list
CentOS@centos.org
http://lists.centos.org/mailman/listinfo/centos
 
Old 11-28-2009, 06:15 PM
Tom H
 
Default again, nic driver order

>>> Digging around google a bit more I came up with different rules, and
>>> fingers crossed, they seem to work!
>>> SUBSYSTEM=="net", SYSFS{address}=="00:1b:21:4d:c3:e8", NAME="eth0"
>>> # pro/1000gt
>>> SUBSYSTEM=="net", SYSFS{address}=="00:e0:81:b5:7a:30", NAME="eth1"
>>> # internal 1
>>> SUBSYSTEM=="net", SYSFS{address}=="00:e0:81:b5:7a:31", NAME="eth2"
>>> # internal 2

> Don't touch udev, expecting admins to write udev rules for network
> interface binding is just not realistic. Udev rules are meant to be
> static across hardware reconfigurations while ifcfg files are meant to
> be modified to suit your current configuration.

> Use HWADDR="00:1b:21:4d:c3:e8" in the ifcfg files along with NAME=eth0
> for eth0 and so on.

I read a while ago that udev overrode ifcfg-* settings so I did a
clean install of 5.4 and changed:
ifcfg-eth0 to ifcfg-eth9 (file name)
eth0 to eth9 (inside the file)
the last number of the HWADDR line

The nic came up as eth0 with the old/original mac address after a reboot.

So we unfortunately have to write udev rules when we have nic naming problems...
_______________________________________________
CentOS mailing list
CentOS@centos.org
http://lists.centos.org/mailman/listinfo/centos
 
Old 11-28-2009, 07:10 PM
Les Mikesell
 
Default again, nic driver order

Tom H wrote:
>>>> Digging around google a bit more I came up with different rules, and
>>>> fingers crossed, they seem to work!
>>>> SUBSYSTEM=="net", SYSFS{address}=="00:1b:21:4d:c3:e8", NAME="eth0"
>>>> # pro/1000gt
>>>> SUBSYSTEM=="net", SYSFS{address}=="00:e0:81:b5:7a:30", NAME="eth1"
>>>> # internal 1
>>>> SUBSYSTEM=="net", SYSFS{address}=="00:e0:81:b5:7a:31", NAME="eth2"
>>>> # internal 2
>
>> Don't touch udev, expecting admins to write udev rules for network
>> interface binding is just not realistic. Udev rules are meant to be
>> static across hardware reconfigurations while ifcfg files are meant to
>> be modified to suit your current configuration.
>
>> Use HWADDR="00:1b:21:4d:c3:e8" in the ifcfg files along with NAME=eth0
>> for eth0 and so on.
>
> I read a while ago that udev overrode ifcfg-* settings so I did a
> clean install of 5.4 and changed:
> ifcfg-eth0 to ifcfg-eth9 (file name)
> eth0 to eth9 (inside the file)
> the last number of the HWADDR line

Do you mean that you changed the HWADDR line so it no longer matched the actual
nic mac address? In that case, you shouldn't expect it to work.

> The nic came up as eth0 with the old/original mac address after a reboot.
>
> So we unfortunately have to write udev rules when we have nic naming problems...

I think the ifcfg-eth? files work when they match the nic mac addresses. They
may have to all match for any of them to work, though. I've seen some cases
where they all get renamed with a .bak extension and new ones are created but I
don't know what triggers that.

--
Les Mikesell
lesmikesell@gmail.com

_______________________________________________
CentOS mailing list
CentOS@centos.org
http://lists.centos.org/mailman/listinfo/centos
 

Thread Tools




All times are GMT. The time now is 12:39 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org