ARGH udev nie przestanie zmieniać nazw moich interfejsów!

6

Mam następujące w /etc/udev/rules.d/70-persistent-net.rules

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="d0:50:99:50:43:17", KERNEL=="eth*", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="d0:50:99:50:43:18", KERNEL=="eth*", NAME="eth1"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="68:05:ca:1a:ce:9d", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"

Jednak przy rozruchu udevnienawidź mnie. Dlaczego?

dmesg nożyce:

[   13.328778] e1000e 0000:01:00.0 eth0: registered PHC clock
[   13.328781] e1000e 0000:01:00.0 eth0: (PCI Express:2.5GT/s:Width x1) 68:05:ca:1a:ce:9d
[   13.328783] e1000e 0000:01:00.0 eth0: Intel(R) PRO/1000 Network Connection
[   13.970303] igb 0000:07:00.0: Intel(R) Gigabit Ethernet Network Connection
[   13.970305] igb 0000:07:00.0: eth1: (PCIe:2.5Gb/s:Width x1) d0:50:99:50:43:17
[   13.970434] igb 0000:07:00.0: eth1: PBA No: 001300-000
[   14.013474] igb 0000:08:00.0: Intel(R) Gigabit Ethernet Network Connection
[   14.013476] igb 0000:08:00.0: eth2: (PCIe:2.5Gb/s:Width x1) d0:50:99:50:43:18
[   14.013603] igb 0000:08:00.0: eth2: PBA No: 001300-000
[   16.274874] systemd-udevd[155]: renamed network interface eth2 to p121p1
[   16.847244] systemd-udevd[160]: renamed network interface eth1 to p119p1
[   19.425858] systemd-udevd[607]: renamed network interface eth0 to eth2

Dlaczego trzecie działa, a pierwsze dwa nie?

Jonathan S. Fisher
źródło
Właśnie zobaczyłem notatki tutaj: wiki.debian.org/Wiązanie o UDEV. Spróbuję zmienić nazwę według adresu PCI i zobaczę, czy to pomoże.
Jonathan S. Fisher
Nie, to też nie działało ...
Jonathan S. Fisher
1
Właściwie udało mi się w końcu pracować z identyfikatorem adresu PCI. Musisz umieścić to w etc/default/grub:GRUB_CMDLINE_LINUX_DEFAULT="ipv6.disable=1 net.ifnames=1 biosdevname=0"
Jonathan S. Fisher

Odpowiedzi:

5

Właściwie udało mi się w końcu pracować z identyfikatorem adresu PCI. Dwie rzeczy, musisz:

  1. Umieść / edytuj to w etc/default/grub:

    GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=1 biosdevname=0
    

    następnie zrób sudo update-grub

  2. Wpisz swoje pożądane nazwy w /etc/udev/rules.d/70-persistent-net.rulesnastępujący sposób:

    SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", KERNELS=="0000:03:00.0", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
    

    Gdzie 0000:03:00.0znajduje się adres PCI, który znajduje się na dmesgwyjściu.

Uwaga: Nie trzeba wyłączać IPV6, zapomniałem, że tam jest flaga. Po prostu go nie używamy, dlatego wyłączamy go ze względów bezpieczeństwa.

Jonathan S. Fisher
źródło
3
  1. Dodaj to do / etc / default / grub:

    GRUB_CMDLINE_LINUX_DEFAULT="net.ifnames=0 biosdevname=0"
    
  2. Zaktualizuj program ładujący:

    sudo update-grub
    
  3. Restart!

    reboot
    

Testowane na Ubuntu 15.10

MSS
źródło
OP opublikował już odpowiedź w komentarzu ... również zaakceptowana odpowiedź już tu jest.
cmks
źle zrobiłem to zrobiłem i jeśli nie ustawisz net.ifnames=0jądra zmieni nazwę interfejsów. Naprawdę nie wiem, może w innej wersji to się różni.
MSS