LINUX.ORG.RU

Именование сетевых интерфейсов при загрузке

 , ,


0

1

Всем привет.

Продолжаю пожимать плоды обновления убунты до последней версии. Имею несколько сетевых карт, и они при каждой загрузке именовались по разному. Ну другими словами то eth0 eth1, то наоборот eth1 eth0. Это беда была давным давно решена файликом 70-persistent-net.rules с содержимым:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:04:23:A5:C1:B0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="E8:DE:27:03:6D:01", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"


Но тут проблема вернулась, а файлик остался.

# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether 00:04:23:a5:c1:b0  txqueuelen 1000  (Ethernet)
        RX packets 10014069  bytes 1175854175 (1.1 GB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 39240136  bytes 35848855376 (35.8 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.2  netmask 255.255.255.0  broadcast 192.168.0.255
        ether e8:de:27:03:6d:01  txqueuelen 1000  (Ethernet)
        RX packets 143145197  bytes 70484429364 (70.4 GB)
        RX errors 0  dropped 98  overruns 0  frame 0
        TX packets 412115164  bytes 125353385983 (125.3 GB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


Что-то поменялось? Как так то?!

man 5 systemd.link

Убери все самописные правила и напиши файлики условно /etc/systemd/network/eth0.link и /etc/systemd/network/eth1.link с примерным содержанием:

$ cat /etc/systemd/network/40-lan0.link 
[Match]
Type=ether
MACAddress=70:85:c2:f3:66:16

[Link]
Name=lan0
intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 1)

так вроде и так все правильно

00:04:23:a5:c1:b0 -> eth0

e8:de:27:03:6d:01 -> eth1

если udev не сработал я бы сильно удивился

anonymous
()
Ответ на: комментарий от intelfx

Ммм не будет ли это конфликтовать с /etc/network/interfaces ?
На сколько я понимаю чтобы эти линки заработали нужно разрешить systemd-networkd...

Spider55
() автор топика
Ответ на: комментарий от anonymous

Ну это сейчас нормально. После следющей загрузки может быть наоборот. Раз на раз....

Spider55
() автор топика
Ответ на: комментарий от Spider55

Вообще насколько я помню нет, это делает udev встроенными правилами, а не networkd. Но конфликтовать в любом случае не будет.

intelfx ★★★★★
()
Последнее исправление: intelfx (всего исправлений: 2)

другими словами то eth0 eth1…

Чтобы они так именовались, уже лет несколько ядру нужно передать специальный ключ. Если сделать по-умолчанию, может и не придется мудрить.

andytux ★★★★★
()
Ответ на: комментарий от Spider55

не будет ли это конфликтовать с /etc/network/interfaces

Уже несколько лет как не используется. И откуда только взялось.

andytux ★★★★★
()
Ответ на: комментарий от andytux
$ cat /proc/cmdline
BOOT_IMAGE=/vmlinuz-5.8.0-50-generic root=UUID=1b824c1c-67c5-4c80-8a6f-cc8082580039 ro net.ifnames=0 biosdevname=0 acpi=force resume=UUID=1b824c1c-67c5-4c80-8a6f-cc8082580039 resume_offset=25559040



Я так понимаю речь идёт о net.ifnames=0 biosdevname=0
Как видите стоят.

Spider55
() автор топика

Ничего из предложенного не помогло...
Сейчас имею такую картину:

# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        ether e8:de:27:03:6d:01  txqueuelen 1000  (Ethernet)
        RX packets 45335  bytes 3609899 (3.6 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 190369  bytes 140799687 (140.7 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.0.2  netmask 255.255.255.0  broadcast 192.168.0.255
        ether 00:04:23:a5:c1:b0  txqueuelen 1000  (Ethernet)
        RX packets 1007793  bytes 372201358 (372.2 MB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2320598  bytes 347668928 (347.6 MB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0


# ls -l /etc/systemd/network
итого 8
-rw-r--r-- 1 root root 66 мая 14 16:04 eth0.link
-rw-r--r-- 1 root root 66 мая 14 16:04 eth1.link


# cat /etc/systemd/network/*
[Match]
Type=ether
MACAddress=00:04:23:A5:C1:B0

[Link]
Name=eth0
[Match]
Type=ether
MACAddress=E8:DE:27:03:6D:01

[Link]
Name=eth1


#dmesg | grep -i -A 5 -B 5 eth

[   21.292001] cfg80211: Loaded X.509 cert 'sforshee: 00b28ddf47aef9cea7'
[   21.318986] intel_powerclamp: No package C-state available
[   21.354898] intel_powerclamp: No package C-state available
[   21.545552] r8169 0000:03:00.0: can't disable ASPM; OS doesn't have ASPM control
[   21.548968] libphy: r8169: probed
[   21.549576] r8169 0000:03:00.0 eth0: RTL8168e/8111e, e8:de:27:03:6d:01, XID 2c2, IRQ 31
[   21.549578] r8169 0000:03:00.0 eth0: jumbo features [frames: 9194 bytes, tx checksumming: ko]
[   21.613022] e1000 0000:07:02.0 eth1: (PCI:33MHz:32-bit) 00:04:23:a5:c1:b0
[   21.613028] e1000 0000:07:02.0 eth1: Intel(R) PRO/1000 Network Connection
[   21.676980] ath: EEPROM regdomain: 0x21
[   21.676982] ath: EEPROM indicates we should expect a direct regpair map
[   21.676983] ath: Country alpha2 being used: BB
[   21.676984] ath: Regpair used: 0x21
[   21.678510] ieee80211 phy0: Selected rate control algorithm 'minstrel_ht'



Оно меня игнорировало :(

Spider55
() автор топика
Ответ на: комментарий от gremlin_the_red

Вроде как этот ключик раньше отвечал за механизм переименования eth* в имена типа enp0s0. Нет? А потом вообще с 16.04ой убунты стал deprecated. Нет?

Spider55
() автор топика
Ответ на: комментарий от Spider55

Он полностью отключает новый механизм именования. А это значит, что .link-файлы перестают работать, потому что они используются именно этим механизмом.

gremlin_the_red ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.