Debian – zmiana nazwy interfejsów sieciowych

Avatar photo
  • Konrad Kowalski
  • 27/02/2015
  • Debian
  • 1 komentarz
Debian

Kolejność interfejsów sieciowych w systemach Linux bywa czasem nieprzewidywalna. Podczas restartów nazwy interfejsów pozostają takie same, jednakże po wprowadzaniu większych zmian w konfiguracji, dodaniu, wymianie karty sieciowej ich kolejność może się zmienić. Na przykład dotychczasowy interfejs eth0 może zmienić się w eth1 albo eth2 itp.

Aby wyświetlić wszystkie interfejsy sieciowe należny wydać polecenie ifconfig -a

eth0      Link encap:Ethernet  HWaddr 00:25:90:00:00:01
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:20 Memory:de100000-de120000

eth1      Link encap:Ethernet  HWaddr 00:25:90:00:00:02
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:16 Memory:dfa00000-dfa20000

Aby dodkonać zmiany nazwy interfejsów sieciowych w systemie Debian należy dokonać modyfikacji parametrów „NAME” w pliku: /etc/udev/rules.d/70-persistent-net.rules

# PCI device 0x8086:/sys/devices/pci0000:00/0000:00:1c.4/0000:02:00.0 (e1000e)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:25:90:00:00:02", 
ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

# PCI device 0x8086:/sys/devices/pci0000:00/0000:00:19.0 (e1000e)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:25:90:00:00:01", 
ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

W przypadku zamiany nazwy interfejsu eth0 na eth1 i eth1 na eth0 wpis wyglądał by następująco (UWAGA: jeden wpis to jedna linijka w pliku konfiguracyjnym):

# PCI device 0x8086:/sys/devices/pci0000:00/0000:00:1c.4/0000:02:00.0 (e1000e)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:25:90:00:00:02", 
ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

# PCI device 0x8086:/sys/devices/pci0000:00/0000:00:19.0 (e1000e)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:25:90:00:00:01", 
ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

Można oczywiście użyć też innych nazw:

# PCI device 0x8086:/sys/devices/pci0000:00/0000:00:1c.4/0000:02:00.0 (e1000e)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:25:90:00:00:02", 
ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="intel-1"

# PCI device 0x8086:/sys/devices/pci0000:00/0000:00:19.0 (e1000e)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:25:90:00:00:01", 
ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="intel-2"

Po dokonaniu zmian należy również pamiętać o konfiguracji w pliku: /etc/network/interfaces. W przypadku wprowadzania zmian w nim również należy odpowiednio zmodyfikować nazwy interfejsów sieciowych.

Po restarcie systemu interfejsy powinny mieć ustawione przez nas nazwy:

intel-1   Link encap:Ethernet  HWaddr 00:25:90:00:00:02
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:20 Memory:de100000-de120000

intel-2   Link encap:Ethernet  HWaddr 00:25:90:00:00:01
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:16 Memory:dfa00000-dfa20000

W nowszych wersjach Debiana (w przypadku gdyby powyższe wskazówki nie zadziałały), zamiast wcześniej wspomnianych plików można stworzyć plik /etc/udev/rules.d/76-netnames.rules z wpisami:

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:25:90:00:00:02", NAME="intel-1"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:25:90:00:00:01", NAME="intel-2"

Warto przeczytać

1 komentarz

Możesz dodawać komentarze do tego artykułu.


  • Twoja wskazówka pozwoliła mi na wykonanie klona maszyny na której stoi cała domena Active Directory. Klon dysku ze skonfigurowanym AD zakładam do nowej maszyny podmieniam tylko mac kary i BINGO domena uratowana w góra 5 minut. 😉
    Możemy spać spokojnie.
    Dziękuję serdecznie

    Leszek 6 lat ago Reply


Dodaj komentarz