Debian – zmiana nazwy interfejsów sieciowych

Konrad Kowalski
  • Konrad Kowalski
  • 27/02/2015
  • Debian
  • 0 komentarzy
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-0   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

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:16 Memory:dfa00000-dfa20000

Dodaj komentarz