LINUX.ORG.RU

Мы дадим вам enp1s0, говорили они, имена интерфейсов зафиксируются, говорили они

 


1

6

А потом втыкаешь видеокарту и enp1s0 становится enp2s0, и всё равно всё ломается.

Ну и. Ради чего? Всю жизнь жил с net.ifnames=0 в CONFIG_CMDLINE и дальше буду жить.

★★★★★

Ща придёт интелфкс и скажет что так и надо, вы все дураки ничего не понимаете потеринг царь, а системд пути неисповедимы.

Deleted
()

Ну и. Ради чего? Всю жизнь жил с net.ifnames=0 в CONFIG_CMDLINE и дальше буду жить.

И продолжай. Эта фича была сделана совсем не для админов подкроватного локалхоста.

Deleted
()

Т. е. без видеокарты в lspci у тебя сетевая карта на 01:00, а с видеокартой на 02:00, при этом физический слот один и тот же? Тут точно systemd виноват?

deadNightTiger ★★★★★
()

Кто все эти люди?

lo               UNKNOWN        00:00:00:00:00:00 <LOOPBACK,UP,LOWER_UP> 
ether_realtek    DOWN           12:34:56:78:90:ab <NO-CARRIER,BROADCAST,MULTICAST,UP> 
ether_intel      UP             12:34:56:78:90:ab <BROADCAST,MULTICAST,UP,LOWER_UP> 
Надо бы переименовать в upper и lower для большего удобства.

anonymous
()

Сейм щит хере.

Жил-был линукс-роутер, не много-не мало, три интерфейса.

Потом воткнул туда ещё fxo карту для АТС. И, таки шо ви думаете?! Все, ***, съехало! Все эти енпХсУ, все эти зафиксированные непокобелимые имена...

Двухминутный даунтайм превратился в незапланированные 30 минут (пока выяснили, пока починили) - весь офис рад был )

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

Т. е. без видеокарты в lspci у тебя сетевая карта на 01:00, а с видеокартой на 02:00, при этом физический слот один и тот же? Тут точно systemd виноват?

Конечно, это всё поттерингоподелка.

/thread

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

Конечно, это всё поттерингоподелка.

Да ну, это всё хардварь виновата, она не так работает, как поттеринг ожидал.

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

это всё хардварь виновата

Именно.

она не так работает, как должна, если бы была сделана не индусами

Вот-вот.

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

Именно.

Да.

она не так работает, как должна, если бы была сделана не индусами

Вот-вот.

Когда меня цитируешь не приписывай больше отсебятины. Она сделана китайцами.

anonymous
()

Всегда даю осмысленные имена сетевым интерфейсам, благо там ограничение вроде в 15 символов.

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

Она сделана китайцами.

Проектировали скорее не они. Вообще, если вернуться к оригинальной теме, встроенные сетевые адаптеры должны бы быть enoN, но вот это вот десктопное железо такое десктопное. https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterface...

Когда меня цитируешь не приписывай больше отсебятины.

Это такой «литературный» приём.

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

она не так работает, как должна по стандартам и здравому смыслу

Но виноват-то лично поттеринг и его поделка. Это даже не обсуждается.

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

Но виноват-то лично поттеринг и его поделка. Это даже не обсуждается.

Виновата хардварь. Вы не в чём вы не виноваты. Посылайте всех, забейте и запилите ещё один велосипед.

anonymous
()

подправь interfaces

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

Даёшь линейку open hardware под брендом systemd.

Я бы взял.

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

Если серьёзно, то никаких велосипедов не нужно. Есть стандарты на то, как должно вести себя железо, есть systemd, которая этим стандартам следует.

Если у тебя кусок noncompliant дерьма вместо железа — идёшь в /etc/systemd/network/99-default.link и пишешь там NamePolicy=mac, какие проблемы-то.

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

Эта фича была сделана совсем не для админов подкроватного локалхоста.

Ну расскажи, для кого.

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

Да в вас проблема. Чуть что где всплывёт, так первый комментарий от вас, что вы хорошие, а остальные — дерьмо. Что от тебя, что от лёни.

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

Ну расскажи, для кого.

Для тех, кому надо автоматически разворачивать одинаковые сервера с >1 сетевым интерфейсом.

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

совсем не для админов подкроватного локалхоста

ты его фотки видел?
там не подкроватный, там жесть такая, что в погреб не поместится.

system-root ★★★★★
()
Последнее исправление: system-root (всего исправлений: 1)

Да, у меня тоже так было, когда под активно под куду писал. Втыкаешь или вытыкаешь для теста видеокарту, и всё поехало. Поттер, ты вообще стараешься?

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

Для тех, кому надо автоматически разворачивать одинаковые сервера с >1 сетевым интерфейсом.

Я разворачиваю сервера, бывает, с десятком физических интерфейсов. Какой бред ты мне ещё расскажешь?

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

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

Я не против системд, уже. Но все-же косяки обнаруживаются и часто не приятные. И крики про то что «Рафик неуиновен» просто раздражают.

chenger ★★
()

Я вообще не понимаю этих новых имён. Раньше было eth1, eth2, eth3. А сейчас чёрт ногу сломит. Enp чётатам, s чётатам. А то ещё же у тебя может быть wi-fi карточка, которая назовёт себя не wlpкак-то там, а ath чётатам. И это predictable?

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

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

Очевидно-же!

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

Я разворачиваю сервера, бывает, с десятком физических интерфейсов.

Ты либо делаешь это единично и вручную, либо достаточно везучь, чтобы не напороться на проблемы с рандомным именованием интерфейсов.

В современном ядре линукса инициализация устройств происходит асинхронно, в разных потоках. Если несколько eth-портов висят на физически одном устройстве, управляемым одним драйвером, то обычно всё хорошо и они нумеруются строго последовательно. Но если драйверов больше одного (случается, например, на некоторых блейдах, где 1 gbe и 10 gbe интерфейсы реализованы двумя разными чипами на материнке), то из-за их одновременной инициализции, номера интерфейсов могут перепутаться. eth0 займёт драйвер того устройства, который успеет это сделать первым.

И если тебе надо автоматически без участия человека развернуть систему на, допустим, сотне одинаковых серверов с таким железом, то без консистентного именования интерфейсов, предоставляемого systemd или biosdevname, где-то на десятке установок из сотни возникнут проблемы. Проще говоря, eth0 будет воткнут не в тот свитч, в который ты ожидаешь.

Кстати, та же проблема существует с дисками, особенно если используется FC. Но она уже давно решена при помощи udev и /dev/disk/by-*.

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

то из-за их одновременной инициализции, номера интерфейсов могут перепутаться.

Нехрен было выкидывать код, умеющий переименовать интерфейсы.

Проще говоря, eth0 будет воткнут не в тот свитч, в который ты ожидаешь.

В udev ещё до systemd можно было делать привязку имён. Ничто не мешало создать и разложить соответствующее правило. Кстати, и сейчас бы не мешало, но нехрен было выкидывать ранее упомянутый код. В принципе, в общем-то, сейчас тоже не мешает, если использовать какой-нибудь ether<N>, но нужно переделывать дофига чего, заточенного на имя eth<N> из-за бригады, так сказать, оптимизаторов.

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

Нехрен было выкидывать код, умеющий переименовать интерфейсы.

«Код, умеющий переименовывать интерфейсы» был stateful. Проще говоря — при первом запуске выбирался какой-то порядок именования и фиксировался в файле. Теперь алгоритм переименования полностью stateless и полностью детерминистичный. Нужно объяснять, зачем это нужно?

В udev ещё до systemd можно было делать привязку имён. Ничто не мешало создать и разложить соответствующее правило.

А сейчас что мешает?

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

Нехрен было выкидывать код, умеющий переименовать интерфейсы.

Что это за код такой? Можно ссылку?

В udev ещё до systemd можно было делать привязку имён.

Я знаю. А ещё был (да и всё ещё есть) biosdevname, который помогает с тем же самым без systemd.

Ничто не мешало создать и разложить соответствующее правило.

Я не очень понимаю зачем это делать руками, когда всё уже продумано и автоматизировано. И, кстати, удачи с добавлением кастомного правила udev в инсталлятор дистрибутива.

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

Ссылку на этот код плз.

В принципе, в общем-то, сейчас тоже не мешает, если использовать какой-нибудь ether<N>, но нужно переделывать дофига чего, заточенного на имя eth<N> из-за бригады, так сказать, оптимизаторов.

Ни разу не видел чего-либо, привязанного к имени ethN. Именование интерфейсов вроде не особо стандартизовано и никогда не было.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от system-root

Я было подумал, что речь об админе этого самого локалхоста. ;)

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

Если есть андроид смартфон, воткни его в комп и включи RNDIS режим.

Там с именованием ещё хуже. Что-то навроде xxxAbCdEf. Удивился когда в ifconfig посмотрел, а так всё равно — работает и ладно.

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

Проще говоря — при первом запуске выбирался какой-то порядок именования и фиксировался в файле.

Ты не понял. Речь про ситуацию, когда нужное имя занято ядром.

А сейчас что мешает?

То, что eth, скажем, 0 уже может быть занят, и переименовывать надо через временное имя.

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

Что это за код такой? Можно ссылку?

Ссылку искать лень. Смысл в ответе intelfx-у описал: зачем-то выброшен момент с переименованием через временный ethN.

Ни разу не видел чего-либо, привязанного к имени ethN

Значит ты, всё же, не видел десятков интерфейсов и не имел необходимости их контролировать как-то одинаково.

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

По-моему, это ты не понял, что хотел сказать @mironov_ivan.

Почему не понял. Понял. Только это ошибочное мнение, что что-то стало лучше, хотя стало ровно наоборот.

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

Потому что ты принялся опровергать что-то, чего никто не говорил.

Я, вроде бы, понятно написал, что это плохо - убрать возможность иметь названия ethN. Что тут непонятного? Ну сделали бы enp1s0 для мазохистов, зачем остальное-то ломать?

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

Что тут непонятного?

Я не знаю, что тебе тут непонятного, что ты решил приплести какую-то «ситуацию, когда нужное имя занято ядром», хотя про неё как раз речи и не было никакой.

intelfx ★★★★★
()
$ cat /lib/udev/rules.d/80-net-name-slot.rules
# do not edit this file, it will be overwritten on update

ACTION!="add", GOTO="net_name_slot_end"
SUBSYSTEM!="net", GOTO="net_name_slot_end"
NAME!="", GOTO="net_name_slot_end"

IMPORT{cmdline}="net.ifnames"
ENV{net.ifnames}=="0", GOTO="net_name_slot_end"

NAME=="", ENV{ID_NET_NAME_ONBOARD}!="", NAME="$env{ID_NET_NAME_ONBOARD}"
NAME=="", ENV{ID_NET_NAME_SLOT}!="", NAME="$env{ID_NET_NAME_SLOT}"
NAME=="", ENV{ID_NET_NAME_PATH}!="", NAME="$env{ID_NET_NAME_PATH}"

LABEL="net_name_slot_end"
Deleted
()
Ответ на: комментарий от intelfx

«ситуацию, когда нужное имя занято ядром», хотя про неё как раз речи и не было никакой.

В вашем udev не будет стабильного переименования в ситуации

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="xxx", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="yyy", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="zzz", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth2"

Так понятно? Почему - это надо объяснить?

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

А поясни, пожалуйста, для кого?

У нас достаточно большой енв (пару тысяч хостов), разворачивается через кобблер и все образы имеют опцию для стандартного названия интерфейсов.

Я не могу найти применение этой киллер-фичи.

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

Ссылку искать лень.

потому что как всегда ты «слышал звон, да не знаешь где он».

Значит ты, всё же, не видел десятков интерфейсов

но ты ведь так и не понял для чего это

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