LINUX.ORG.RU

Куда делся eth0 на старте и откуда взялся IP?

 , , , ,


0

1

после обновления до bullseye повылазело:

$ dmesg | grep Fail
[   15.689909] systemd[1]: networking.service: Failed with result 'exit-code'.
[   15.691378] systemd[1]: Failed to start Raise network interfaces.
$ sudo systemctl status networking.service 
● networking.service - Raise network interfaces
     Loaded: loaded (/lib/systemd/system/networking.service; enabled; vendor preset: enabled)
     Active: failed (Result: exit-code) since Wed 2021-12-15 17:30:55 CET; 5min ago
       Docs: man:interfaces(5)
    Process: 319 ExecStart=/sbin/ifup -a --read-environment (code=exited, status=1/FAILURE)
   Main PID: 319 (code=exited, status=1/FAILURE)
        CPU: 322ms

дек 15 17:30:55 ishtar ifup[361]: Cannot find device "eth0"
дек 15 17:30:55 ishtar ifup[319]: ifup: failed to bring up eth0
Warning: journal has been rotated since unit was started, output may be incomplete.

Айпишник eth0 получила:

$ ifconfig 
enxb827eb115b85: flags=-28605<UP,BROADCAST,RUNNING,MULTICAST,DYNAMIC>  mtu 1500
        inet 192.168.1.239  netmask 255.255.255.0  broadcast 192.168.1.255
        inet6 fe80::ba27:ebff:fe11:5b85  prefixlen 64  scopeid 0x20<link>
        ether b8:27:eb:11:5b:85  txqueuelen 1000  (Ethernet)
        RX packets 3481  bytes 2710011 (2.5 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 2720  bytes 395436 (386.1 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 25  bytes 2567 (2.5 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 25  bytes 2567 (2.5 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

но откуда? В /etc/network/interfaces прописано совсем другое:

# interfaces(5) file used by ifup(8) and ifdown(8)

# Please note that this file is written to be used with dhcpcd
# For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf'

# Include files from /etc/network/interfaces.d:
#ya  source-directory /etc/network/interfaces.d
# Ethernet
auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.1.97
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1

А dhcpcd отключено и удалено, кто так щедро айпишники раздаёт?

Добавление /etc/systemd/network/eth0.network: ( https://www.stoll-it.com/kb/software/linux-software/linux-netzwerk/use-static... )

[Match]
Name=eth0

[Network]
Address=192.168.1.97/24
Gateway=192.168.1.1
DNS=192.168.1.1
DHCP=no

Ситуацию не исправило, всё те же 192.168.1.239, откуда?

По совету товарищей ( https://wiki.archlinux.org/title/systemd-networkd#Wired_adapter_using_a_stati... ) создал /etc/systemd/network/20-wired.network , заменил в нём устройство на enxb827eb115b85 :

[Match]
# Name=enp1s0
Name=enxb827eb115b85

[Network]
Address=192.168.1.97/24
Gateway=192.168.1.1
DNS=192.168.1.1

И получил свой статический айпишник после перезапуска малинки.

К длинным и корявым именам сетевых интерфейсов претензий не имею, привязка интерфейса к физическому устройству идея хорошая и давно в воздухе витала.


Ответ на: комментарий от erfea

Я откуда знаю, роутер выдал?

Вы проницательны, однако, зачем только его хост у рутера взял? И как он без dhcp его взял? Почему игнорирует статику?

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

Вы проницательны, однако, зачем только его хост у рутера взял?

Я выше выдал предположение. Network Manager

И как он без dhcp его взял?

Отсутсвие на хосте dhcpd != отсутсвие dhcp в сети. facepalm.png

Почему игнорирует статику?

Потому что /etc/network/interfaces.d - старый дистроспецифичный способ настройки сети, который тем же NM игнорируется за ненадобностью.

erfea ★★★★★ ()

И кстати:

Айпишник eth0 получила:

enxb827eb115b85: flags=-28605<UP,BROADCAST,RUNNING,MULTICAST,DYNAMIC> mtu 1500

/0

erfea ★★★★★ ()

Айпишник eth0 получила:

Имя enxb827eb115b85 у интерфейса тебя не смутило? Вангую, что обновлённое ядро у тебя стало само переименовывать интерфейс (раньше этим занимался юзерспейс), а по-умолчанию в udev нонче NamePolicy=keep то есть «однажды переименованное не трогаем». Покажи

dmesg | grep enxb827eb115b85

gremlin_the_red ★★★★★ ()
Последнее исправление: gremlin_the_red (всего исправлений: 1)
Ответ на: комментарий от gremlin_the_red

а я так и не понял откуда взялась эта бредятина с незапоминаемыми именами интерфейсов и зачем

если там что и нуждается в переименовании так это назад в eth0

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

Уже понял, вельми смутило

тут: https://raspberrypi.stackexchange.com/questions/133318/how-to-disable-the-dyn...

советуют снести connman за ненадобностью

dmesg | grep enxb827eb115b85
[   13.494490] lan78xx 1-1.1.1:1.0 enxb827eb115b85: renamed from eth0
[   19.136024] IPv6: ADDRCONF(NETDEV_CHANGE): enxb827eb115b85: link becomes ready
[   19.240048] 8021q: adding VLAN 0 to HW filter on device enxb827eb115b85

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

lan78xx 1-1.1.1:1.0 enxb827eb115b85: renamed from eth0

Ну да, ядерный драйвер переименовывает. Проще всего сделать так: Переименование интерфейса в debian (комментарий)

Но лучше перевести конфигурацию с /etc/interfaces на что-нибудь современное. Например, для твоей статики более чем достаточно systemd-networkd.

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

По совету товарищей ( https://wiki.archlinux.org/title/systemd-networkd#Wired_adapter_using_a_stati... ) создал /etc/systemd/network/20-wired.network , заменил в нём устройство на enxb827eb115b85 :

[Match]
# Name=enp1s0
Name=enxb827eb115b85

[Network]
Address=192.168.1.97/24
Gateway=192.168.1.1
DNS=192.168.1.1

И получил свой статический айпишник после перезапуска малинки.

К длинным и корявым именам претензий не имею, привязка интерфейса к физическому устройству идея хорошая и давно в воздухе витала.

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

Всем спасибо за помощь! Ранма — лапка!

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

К длинным и корявым именам претензий не имею, привязка интерфейса к физическому устройству идея хорошая и давно в воздухе витала.

Если речь идёт о том чтобы eth1 не превратился неожиданно в eth0 после чего-то, то для этого не обязательно делать шифровку из имени интерфейса.

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

Только эта бодяга привязывает к адресу устройства на шине, который может меняться, если, скажем, что-то выдернул. Полон интернет рассказов про сервера, из которых после настройки выдернули видяху, и от этого съехали имена сетевых девайсов. Единственное, что хорошо получается у системдэшников — это гадить.

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

К длинным и корявым именам претензий не имею,
привязка интерфейса к физическому устройству
идея хорошая и давно в воздухе витала.

Если речь идёт о том чтобы eth1
не превратился неожиданно в eth0 после чего-то,

Ага!

то для этого не обязательно делать шифровку
из имени интерфейса.

Ваши предложения?

Только эта бодяга привязывает к адресу устройства на шине,
который может меняться, если, скажем, что-то выдернул.
Полон интернет рассказов про сервера, из которых после
настройки выдернули видяху, и от этого съехали имена
сетевых девайсов.

Неожиданно.

Единственное, что хорошо получается у системдэшников —
это гадить.

Спорно, что-то ведь надо делать с зоопарком конфигов, причём каждый дистр придумывал что-то своё и далеко не всегда лучше, чем systemd

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

Есть же мак.

Что-то программно мешает его перезаписать? Кстати, он часто обнулён на ненадобностью.

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

Только эта бодяга привязывает к адресу устройства на шине

Только нет.

который может меняться, если, скажем, что-то выдернул

Подошёл к серверу, взял и выдернул? Догони и побей его. А админу ничего не мешает поправить конфигурацию перед выдёргиванием.

gremlin_the_red ★★★★★ ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.