[Ubuntu] Udev probleem met eigen MAC-adres

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • ari3
  • Registratie: Augustus 2002
  • Niet online
Het gaat om een machine met twee identieke NICs:
$ dmesg | grep eth
[    0.946042] eth0: RTL8168c/8111c at 0xffffc90000676000, 00:30:18:af:9d:a8, XID 1c4000c0 IRQ 27
[    0.957122] eth1: RTL8168c/8111c at 0xffffc90000656000, 00:30:18:af:9d:a9, XID 1c4000c0 IRQ 28
[    9.248764] udev: renamed network interface eth1 to eth2
[    9.730994] r8169: eth0: link up
[    9.731001] r8169: eth0: link up


Voor eth1 heb ik een ander MAC-adres ingesteld in /etc/network/interfaces:
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
        address 192.168.0.2
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        gateway 192.168.0.1

auto eth1
iface eth1 inet dhcp
        hwaddress ether 00:02:aa:bb:cc:dd
        vendor "Aminoaminet130fisys"


Op basis van bovenstaande wordt het volgende in /etc/udev/ruled.d/70-persistent-net.rules gegenereert:
# PCI device 0x10ec:0x8168 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:30:18:af:9d:a8", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x10ec:0x8168 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:02:aa:bb:cc:dd", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x10ec:0x8168 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:30:18:af:9d:a9", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"


Het probleem is dat na een boot alleen eth0 beschikbaar is. Aantrappen van eth1 lukt niet:
$ sudo ifconfig eth1 up
eth1: ERROR while getting interface flags: No such device


Aantrappen van eth2 lukt wel maar die heeft dus een verkeerd MAC-adres. Waarom is eth2 er uberhaupt? Ik heb toch het MAC-adres gewijzigd in /etc/network/interfaces? Dit heeft voorheen gewerkt, dus waarom nu niet meer? Als ik de rule voor eth2 verwijder uit /etc/udev/ruled.d/70-persistent-net.rules dan wordt deze niet verwerkt bij een restart van udev. Bij een reboot wordt de rule voor eth2 ook weer opnieuw toegevoegd. Hoe kan ik dit oplossen?

"Kill one man, and you are a murderer. Kill millions of men, and you are a conqueror. Kill them all, and you are a god." -- Jean Rostand


Acties:
  • 0 Henk 'm!

  • Super_ik
  • Registratie: Maart 2001
  • Laatst online: 09:27

Super_ik

haklust!

je hebt geen eth1 omdat er geen rule is die matched met een eth met dat mac address (00:02:aa:bb:cc:dd) voor udev.
en je hebt een eth2, omdat udev een nieuwe eth heeft gevonden, en eth1 al bezet is door een eth met mac address 00:02:aa:bb:cc:dd

dit komt doordat udev wil matchen op het mac address. je nieuwe mac address is dan nog niet gezet.

De volgorde van acties is hier dus van belang. Maak het zo dat udev matched op 00:30:18:af:9d:a9 en dan wijzigt naar 00:02:aa:bb:cc:dd

8<------------------------------------------------------------------------------------
Als ik zo door ga haal ik m'n dood niet. | ik hou van goeie muziek


Acties:
  • 0 Henk 'm!

  • ari3
  • Registratie: Augustus 2002
  • Niet online
Dat is verhelderend, Super_ik! Uiteindelijk is het nu opgelost door /etc/udev/ruled.d/70-persistent-net.rules aan te passen naar onstaande:

# PCI device 0x10ec:0x8168 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:30:18:af:9d:a8", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x10ec:0x8168 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:30:18:af:9d:a9", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x10ec:0x8168 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:02:aa:bb:cc:dd", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

Na een reboot had ik weer een eth1 met MAC-adres 00:02:aa:bb:cc:dd.

"Kill one man, and you are a murderer. Kill millions of men, and you are a conqueror. Kill them all, and you are a god." -- Jean Rostand