I tried to reassign eth(x) to physical NICs as per Udo's advice given on this forum a while back and it doesn't work, respectively it reassigns eth numbers in arbitrary fashion.
I followed this advice:
I have only changed the numbering of 'eth' in 70-persistent-net.rules file and it did result in some changes but only some were as desired.
Then I have completely reordered lines in that 70-persistent-net.rules file and that again made some changes but again not as desired. Its upsetting not having any control over things.
I have two onboard NICs and two double port NICs added, for total of six physical ethernet ports.
Right now my 70-persistent-net.rules file shows desired state but if I do "dmesg | grep eth" I see different result there. I rebooted twice after doing the changes.
70-persistent-net.rules
I suppose I can live with installation default 'eth' assignment to physical NIC ports, I just thought to make it more logical.
The onboard ports are fine, they get eth0 and eth1 but then one NIC card gets asigned eth2&5 and the other eth3&4 ) for example. My idea was to have the first added NIC given eth2&3 and the other eth4&5 but that seems like too much to ask as it turns up. Or am I doing something wrong?
I followed this advice:
Udo: you can order your NICs like you want.
Just edit /etc/udev/rules.d/70-persistent-net.rules and reboot after that.
Udev will rename you NICs during boot - you can see with "dmesg | grep eth".
I have only changed the numbering of 'eth' in 70-persistent-net.rules file and it did result in some changes but only some were as desired.
Then I have completely reordered lines in that 70-persistent-net.rules file and that again made some changes but again not as desired. Its upsetting not having any control over things.
I have two onboard NICs and two double port NICs added, for total of six physical ethernet ports.
Right now my 70-persistent-net.rules file shows desired state but if I do "dmesg | grep eth" I see different result there. I rebooted twice after doing the changes.
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:0x163b (bnx2)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="a4:ba:db:2c:b9:4b", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
# PCI device 0x14e4:0x163b (bnx2)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="a4:ba:db:2c:b9:4c", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
# PCI device 0x8086:0x10c9 (igb)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1b:21:5d:5d:90", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"
# PCI device 0x8086:0x10c9 (igb)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1b:21:5d:5d:91", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth3"
# PCI device 0x8086:0x105e (e1000e)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1f:29:5f:ab:42", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth4"
# PCI device 0x8086:0x105e (e1000e)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:1f:29:5f:ab:43", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth5"
root@proxmox:~# dmesg | grep eth
bnx2 0000:02:00.0: eth0: Broadcom NetXtreme II BCM5716 1000Base-T (C0) PCI Expre ss found at mem d8000000, IRQ 16, node addr a4:ba:db:2c:b9:4b
bnx2 0000:02:00.1: eth1: Broadcom NetXtreme II BCM5716 1000Base-T (C0) PCI Expre ss found at mem da000000, IRQ 17, node addr a4:ba:db:2c:b9:4c
e1000e 0000:05:00.0: eth2: (PCI Express:2.5GT/s:Width x4) 00:1f:29:5f:ab:42
e1000e 0000:05:00.0: eth2: Intel(R) PRO/1000 Network Connection
e1000e 0000:05:00.0: eth2: MAC: 1, PHY: 4, PBA No: D51930-004
igb 0000:04:00.0: eth3: (PCIe:2.5GT/s:Width x4
igb 0000:04:00.0: eth3: MAC: 00:1b:21:5d:5d:90
igb 0000:04:00.0: eth3: PBA No: E43709-003
e1000e 0000:05:00.1: eth4: (PCI Express:2.5GT/s:Width x4) 00:1f:29:5f:ab:43
e1000e 0000:05:00.1: eth4: Intel(R) PRO/1000 Network Connection
e1000e 0000:05:00.1: eth4: MAC: 1, PHY: 4, PBA No: D51930-004
igb 0000:04:00.1: eth5: (PCIe:2.5GT/s:Width x4
igb 0000:04:00.1: eth5: MAC: 00:1b:21:5d:5d:91
igb 0000:04:00.1: eth5: PBA No: E43709-003
udev[460]: renamed network interface eth2 to eth2-eth4
udev[461]: renamed network interface eth4 to eth4-eth5
udev[447]: renamed network interface eth5 to eth5-eth3
udev[445]: renamed network interface eth3 to eth2
ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.PMI0._GHL] (Node ffff88023f0aff60), AE_AML_BUFFER_LIMIT
ACPI Error (psparse-0537): Method parse/execution failed [\_SB_.PMI0._PMC] (Node ffff88023f0af420), AE_AML_BUFFER_LIMIT
udev[460]: renamed network interface eth2-eth4 to eth4
udev[461]: renamed network interface eth4-eth5 to eth5
udev[447]: renamed network interface eth5-eth3 to eth3
device eth0 entered promiscuous mode
bnx2 0000:02:00.0: eth0: using MSIX
ADDRCONF(NETDEV_UP): eth0: link is not ready
bnx2 0000:02:00.0: eth0: NIC Copper Link is Up, 1000 Mbps full duplex, receive & transmit flow control ON
vmbr0: port 1(eth0) entering forwarding state
ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready
eth0: no IPv6 routers present
root@proxmox:~#
I suppose I can live with installation default 'eth' assignment to physical NIC ports, I just thought to make it more logical.
The onboard ports are fine, they get eth0 and eth1 but then one NIC card gets asigned eth2&5 and the other eth3&4 ) for example. My idea was to have the first added NIC given eth2&3 and the other eth4&5 but that seems like too much to ask as it turns up. Or am I doing something wrong?
Last edited: