On Sun, Apr 07, 2013 at 03:09:43PM -0500, William Hubbs wrote: > > The significance is that the kernel determines the eth* name order. > Right now, you are lucky in that the order is what you think it should > be, but if something changes in the kernel causing your cards to be > initialized in a different order, you will not be allowed to swap them > around in the eth* name space, e.g. eth1 can't become eth0 or visa > versa. > > That is why it is recommended that you use something like net0, net1, > etc for your interface names. > > William
This doesn't seem consistent with my experience. The reason that I edited the 70-persistent-net.rules file to begin with is to make the NICs whatever eth* I wanted, regardless of the order the kernel loaded them. Since the modules are built-in, and both NICs use the same module, I think this won't change. The server has two built-in NICs. One is being used to connect it to the switch, and the other is not in use (backup). One has ID 1 and the other ID 2. The kernel was loading the one with the higher MAC address first, and the lower MAC address second. The lower MAC number is the one with the stamp ID 1 on the back of the server, so I edited the rules file to load it always as eth1 so my /etc/conf.d/net can use static IPs (like everything wired on the LAN); because the ethernet cable is connected from ID 1 to the switch. Thus: server ~ # dmesg | grep -i eth [ 11.691830] tg3 0000:03:00.0: eth0: Tigon3 [partno(BCM95721) rev 4101] (PCI Express) MAC address 00:d0:68:0b:87:67 [ 11.691985] tg3 0000:03:00.0: eth0: attached PHY is 5750 (10/100/1000Base-T Ethernet) (WireSpeed[1], EEE[0]) [ 11.692192] tg3 0000:03:00.0: eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[1] TSOcap[1] [ 11.692340] tg3 0000:03:00.0: eth0: dma_rwctrl[76180000] dma_mask[64-bit] [ 11.699283] tg3 0000:02:00.0: eth1: Tigon3 [partno(BCM95721) rev 4101] (PCI Express) MAC address 00:d0:68:0b:87:66 [ 11.699439] tg3 0000:02:00.0: eth1: attached PHY is 5750 (10/100/1000Base-T Ethernet) (WireSpeed[1], EEE[0]) [ 11.699591] tg3 0000:02:00.0: eth1: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] TSOcap[1] [ 11.699738] tg3 0000:02:00.0: eth1: dma_rwctrl[76180000] dma_mask[64-bit] [ 82.703869] tg3 0000:02:00.0: eth1: Link is up at 1000 Mbps, full duplex [ 82.703875] tg3 0000:02:00.0: eth1: Flow control is off for TX and off for RX server ~ # cat /etc/udev/rules.d/70-persistent-net.rules # This file was automatically generated by the /lib/udev/write_net_rules # program, run by the persistent-net-generator.rules rules file. # # You can modify it, as long as you keep each rule on a single # line, and change only the value of the NAME= key. # PCI device 0x14e4:0x1659 (tg3) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:d0:68:0b:87:66", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1" # PCI device 0x14e4:0x1659 (tg3) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:d0:68:0b:87:67", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" server ~ # ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo 2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000 link/ether 00:d0:68:0b:87:67 brd ff:ff:ff:ff:ff:ff 3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000 link/ether 00:d0:68:0b:87:66 brd ff:ff:ff:ff:ff:ff inet 192.168.100.3/24 brd 192.168.100.255 scope global eth1 The Linux router has 3 NICs in use. Two of them are identical Intel cards. It controls 3 networks, and there's a backup NIC of the same brand. So it's important for me to know the assignment of them, and again, 70-persistent-net.rules allows me to keep the ordered according to MAC address: router log # zgrep -i eth* kern.log-20130326.gz Mar 25 18:31:47 router kernel: [ 1.434939] pata_amd 0000:00:06.0: setting latency timer to 64 Mar 25 18:31:47 router kernel: [ 1.436360] e1000e: Intel(R) PRO/1000 Network Driver - 1.9.5-k Mar 25 18:31:47 router kernel: [ 1.437229] e1000e 0000:02:00.0: (unregistered net_device): Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode Mar 25 18:31:47 router kernel: [ 1.540889] e1000e 0000:02:00.0: eth0: (PCI Express:2.5GT/s:Width x1) 68:05:ca:03:05:50 Mar 25 18:31:47 router kernel: [ 1.541039] e1000e 0000:02:00.0: eth0: Intel(R) PRO/1000 Network Connection Mar 25 18:31:47 router kernel: [ 1.541185] e1000e 0000:02:00.0: eth0: MAC: 3, PHY: 8, PBA No: E46981-007 Mar 25 18:31:47 router kernel: [ 1.542263] e1000e 0000:03:00.0: (unregistered net_device): Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode Mar 25 18:31:47 router kernel: [ 1.644050] e1000e 0000:03:00.0: eth1: (PCI Express:2.5GT/s:Width x1) 68:05:ca:03:05:5d Mar 25 18:31:47 router kernel: [ 1.644196] e1000e 0000:03:00.0: eth1: Intel(R) PRO/1000 Network Connection Mar 25 18:31:47 router kernel: [ 1.644345] e1000e 0000:03:00.0: eth1: MAC: 3, PHY: 8, PBA No: E46981-007 Mar 25 18:31:47 router kernel: [ 1.644806] forcedeth: Reverse Engineered nForce ethernet driver. Version 0.64. Mar 25 18:31:47 router kernel: [ 1.645462] forcedeth 0000:00:07.0: setting latency timer to 64 Mar 25 18:31:47 router kernel: [ 1.705185] forcedeth 0000:00:07.0: ifname eth2, PHY OUI 0x732 @ 1, addr f4:6d:04:e8:1d:d9 Mar 25 18:31:47 router kernel: [ 1.705326] forcedeth 0000:00:07.0: highdma pwrctl mgmt gbit lnktim msi desc-v3 Mar 25 18:31:47 router kernel: [ 1.705851] ehci_hcd 0000:00:02.1: setting latency timer to 64 Mar 25 18:31:47 router kernel: [ 1.714810] hub 1-0:1.0: 10 ports detected Mar 25 18:31:47 router kernel: [ 1.715266] ohci_hcd 0000:00:02.0: setting latency timer to 64 Mar 25 18:31:47 router kernel: [ 1.769859] hub 2-0:1.0: 10 ports detected Mar 25 18:31:47 router kernel: [ 1.773762] rtc0: alarms up to one year, y3k, 114 bytes nvram, hpet irqs Mar 25 18:31:47 router kernel: [ 1.777459] Netfilter messages via NETLINK v0.30. Mar 25 18:31:47 router kernel: [ 1.777746] nf_conntrack version 0.5.0 (16384 buckets, 65536 max) Mar 25 18:31:47 router kernel: [ 1.778444] ctnetlink v0.93: registering with nfnetlink. Mar 25 18:31:47 router kernel: [ 1.778660] ip_tables: (C) 2000-2006 Netfilter Core Team Mar 25 18:31:47 router kernel: [ 1.779172] NET: Registered protocol family 17 Mar 25 18:31:47 router kernel: [ 16.553800] forcedeth 0000:00:07.0: irq 49 for MSI/MSI-X Mar 25 18:31:47 router kernel: [ 16.553824] forcedeth 0000:00:07.0: eth2: MSI enabled Mar 25 18:31:50 router kernel: [ 19.165275] e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None Mar 25 18:31:50 router kernel: [ 19.441463] e1000e: eth1 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: None router log # cat /etc/udev/rules.d/70-persistent-net.rules # This file was automatically generated by the /lib/udev/write_net_rules # program, run by the persistent-net-generator.rules rules file. # # You can modify it, as long as you keep each rule on a single # line, and change only the value of the NAME= key. # PCI device 0x8086:0x10d3 (e1000e) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="68:05:ca:03:05:5d", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" # PCI device 0x8086:0x10d3 (e1000e) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="68:05:ca:03:05:50", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1" # PCI device 0x10de:0x03ef (forcedeth) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="f4:6d:04:e8:1d:d9", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2" router log # ip addr show 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 inet 127.0.0.1/8 scope host lo 2: dummy0: <BROADCAST,NOARP> mtu 1500 qdisc noop state DOWN link/ether f2:58:cb:48:72:b3 brd ff:ff:ff:ff:ff:ff 3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 68:05:ca:03:05:50 brd ff:ff:ff:ff:ff:ff inet 192.168.54.1/24 brd 192.168.54.255 scope global eth0 4: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether 68:05:ca:03:05:5d brd ff:ff:ff:ff:ff:ff inet 192.168.100.1/24 brd 192.168.100.255 scope global eth1 5: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000 link/ether f4:6d:04:e8:1d:d9 brd ff:ff:ff:ff:ff:ff inet <public IP> brd <munged> scope global eth2 If you can show me where my reasoning is technically wrong, and why/what should be changed, I'm open to learn. At this point I don't see the kernel messing up my setup(s). Thanks, Bruce -- Happy Penguin Computers >') 126 Fenco Drive ( \ Tupelo, MS 38801 ^^ supp...@happypenguincomputers.com 662-269-2706 662-205-6424 http://happypenguincomputers.com/ A: Because it messes up the order in which people normally read text. Q: Why is top-posting such a bad thing? A: Top-posting. Q: What is the most annoying thing in e-mail? Don't top-post: http://en.wikipedia.org/wiki/Top_post#Top-posting