forum.wfido.ru  

Вернуться   forum.wfido.ru > Прочие эхи > RU.UNIX.BSD

Ответ
 
Опции темы Опции просмотра
  #1  
Старый 17.08.2016, 13:58
Vassily Kiryanov
Guest
 
Сообщений: n/a
По умолчанию О съезжании номеров сетевых интерфейсов.

Vassily Kiryanov написал(а) к All в Apr 15 09:19:55 по местному времени:

Нi All!

Стоит у меня сервер НP ProLiant ML350e Gen8, на котором встроены в материнке пара сетевых интерфейсов. Виделись системой (FreeBSD-10.1-p5) при перезагрузке как igb0 и igb1. Переименовывались и юзались, тащили несколько vlan-ов и проблем не создавали. Стало мало сетевых дырок, добавил в систему две двухпортовки. И, как на грех, эти двухпортовки тоже на чипах, поддерживаемых драйвером if_igb. В результате у меня стало в системе не два, а шесть интерфейсов igb. Чего я и добивался установкой сетевух, собственно говоря.
Но как распределились номера новых и старых интерфейсов?
1) старые остались 0-м и 1-м, новые получили номера от 2-го до 5-го
2) старые стали 4-м и 5-м, новые получили номера от 0-го до 3-го
3) старые стали 2-м и 3-м, новые получили номера от 0,1,4,5

Наиболее удобным был-бы вариант номер 1. Менее удобным, но легко объяснимым был-бы вариант номер 2. Правильным оказался ответ номер 3.

Стал читать документацию на материнку. Она прямо на внутренней стороне крышки приклеена, что порадовало. Слоты расширения: шесть штук, все PCIe, простых PCI нет.

1) PCIe3, форм-фактор x8, умеет соединения x1, x4
2) PCIe3, форм-фактор x16, умеет соединения x1, x4, x8, x16
3) PCIe3, форм-фактор x16, умеет соединения x1, x4, x8, x16
4) PCIe3, форм-фактор x16, умеет соединения x1, x4, x8
5) PCIe2, форм-фактор x8, умеет соединения x1, x4
6) PCIe2, форм-фактор x4, умеет соединения x1

Добавочная инфа: слоты расширения 3 и 4 относятся ко второму процессору, а слоты 1, 2, 5, 6 относятся к первому.

Я сетевухи впихнул в слоты номер 5 (увиделась системой как интерфейсы igb0 и igb1) и 3 (увиделась, как igb4 и igb5). Проверил вытаскиванием.

Краткий итог: сначала система раздала номера интерфейсам, находящимся в слотах PCIe, относящимся к первому CPU, затем выделила номера интерфейсам, встроенным в материнку, затем раздала номера интерфейсам, находящимся в слотах PCIe, относящимся ко второму CPU. Логики я или не увидел, или не понял.

Главный вопрос: можно-ли как-то влиять на раздачу номеров интерфейсам во время загрузки? Например, указывая желаемый номер интерфейса и его MAC-адрес?

Менее главный вопрос: а почему номера раздались именно так? Ну просто интересно.

Всего хорошего. "За верную и прибыльную дружбу!" (c) Яго.
Vassily
---
Ответить с цитированием
  #2  
Старый 17.08.2016, 13:58
Alex Korchmar
Guest
 
Сообщений: n/a
По умолчанию Re: О съезжании номеров сетевых интерфейсов.

Alex Korchmar написал(а) к Semen Panevin в Apr 15 09:32:44 по местному времени:

From: Alex Korchmar <noreply@linux.e-moe.ru>

Semen Panevin <Semen.Panevin@f121.n5025.z2.fidonet.org> wrote:

SP> Вот чес-слово не знаю как у вас в бзде, а у нас в линуксе эту проблему
ты и про линуксы не знаешь ровно ничего, похоже.
SP> решили с помощью udev, активно ругаемого Виссарионовым.
в линупсе этой "проблемы" не было за, внимание: ДЕСЯТЬ лет до появления
у..ща под названием udev.

ip link set dev ... name NEWNAME - фича еще времен ведра 2.3 и команды ank@,
ныне по... простите, пошедшего в эффективные менеджеры.

И да, уродец udev использует именно эту команду, сам по себе он не умеет делать
решительно ничего полезного.

SP> решения, а вот лично я нет, поэтому когда втыкнул новую четырёхпортовку -
SP> просто переназначил человеческие имена интерфейсов по макам
а теперь представь куда более частый сценарий, чем втыкание новых
четырехпортовок в уютной серверной - сгорела сетевуха или вся мать,
и заменена новой, километров тыщи этак за четыре от тебя.

И линупс, точнее как раз udev, в точном подобии поделки майкрософта,
которую он все пыжится догнать и перегнать по количеству неуправляемых явлений,
радостно рапортует, что дивайса eth0, для которого есть конфигурация,
он что-то не нашел, зато "обнаружено новое устройство", и щас-щас-щас,
ага, ой - eth1 не сконфигурено, нажмите any key для продолжения банкета.
Ой, что, у вас был доступ только через ssh?

SP> У вас там вроде тоже udev или аналог есть, не?
к счастью, нету. Есть devfs, который в линупсе, к сожалению, пал в неравном
бою с эффективными менеджерами - как и большинство хороших идей после
2003го года.

SP> list the MAC addresses
да-да, при аварийной замене сетевухи получим точное подобие линупсу.
Нах не надо.

VK>> Менее главный вопрос: а почему номера раздались именно так? Ну просто
VK>> интересно.
SP> Тайна, покрытая мраком...
ох уз эти сказоськи, ох уз эти сказосьники:
встроенные сетевухи подключены в первый pci bridge (они в него
включаются, хотя разъемов и не видно, вот сюрприз-то, да? Вы-то думали, они
магическим каналом через эфирные слои подцеплены?) и имеют id выше, чем
у слотов, чтобы, если их понадобится отключить, не перенумеровалась к чертям
вся система, обеспечив windows-подобным ОС массу новых чудес.

Открытие, что мосты pci подсоединены к отдельным процессорам - это к автору
исходного послания. Инженеры интела рыдали, когда это узнали.


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


> Alex

--- ifmail v.2.15dev5.4
Ответить с цитированием
  #3  
Старый 17.08.2016, 13:58
Serguei E. Leontiev
Guest
 
Сообщений: n/a
По умолчанию Re: О съезжании номеров сетевых интерфейсов.

Serguei E. Leontiev написал(а) к Vassily Kiryanov в Apr 15 12:55:52 по местному времени:

From: "Serguei E. Leontiev" <leo@sai.msu.ru>

Привет Василий,

От 17 апреля 2015 г., 9:19:55 в fido7.ru.unix.bsd ты писал:
VK> понял. Главный вопрос: можно-ли как-то влиять на раздачу
VK> номеров интерфейсам во время загрузки? Например, указывая
VK> желаемый номер интерфейса и его MAC-адрес? Менее главный

Можно, и не только номер, смотри man rc.conf и/или man ifconfig на предмет:

ifconfig<интерфейс>name="имя"

ifconfig <interface> name <name>

Смотри так же замечание Алексея об удобстве, не только при добавлении,
но при аварийной замене.

--
Успехов, Сергей Леонтьев. E-mail: lse@CryptoPro.ru


--- ifmail v.2.15dev5.4
Ответить с цитированием
  #4  
Старый 17.08.2016, 13:58
Serguei E. Leontiev
Guest
 
Сообщений: n/a
По умолчанию Re: О съезжании номеров сетевых интерфейсов.

Serguei E. Leontiev написал(а) к Alex Korchmar в Apr 15 13:12:53 по местному времени:

From: "Serguei E. Leontiev" <leo@sai.msu.ru>

Привет Алексей,

От 17 апреля 2015 г., 9:32:44 в fido7.ru.unix.bsd ты писал:
SP>> четырёхпортовку - просто переназначил человеческие имена
SP>> интерфейсов по макам
AK> а теперь представь куда более частый сценарий, чем втыкание
AK> новых четырехпортовок в уютной серверной - сгорела сетевуха или
AK> вся мать, и заменена новой, километров тыщи этак за четыре от
AK> тебя. И линупс, точнее как раз udev, в точном подобии поделки
AK> майкрософта, которую он все пыжится догнать и перегнать по
AK> количеству неуправляемых явлений, радостно рапортует, что
AK> дивайса eth0, для которого есть конфигурация, он что-то не
AK> нашел, зато "обнаружено новое устройство", и щас-щас-щас, ага,
AK> ой - eth1 не сконфигурено, нажмите any key для продолжения
AK> банкета. Ой, что, у вас был доступ только через ssh?

При "правильных", не проблема. Просто "линксойду" надо немного больше
думать :)

SP>> У вас там вроде тоже udev или аналог есть, не?
AK> к счастью, нету. Есть devfs, который в линупсе, к сожалению,
AK> пал в неравном бою с эффективными менеджерами - как и
AK> большинство хороших идей после 2003го года.

Ну, hald есть же :) Обработка событий по внешним устройствам FreeBSD
практически не отличается от Solaris и того же Linux.

--
Успехов, Сергей Леонтьев. E-mail: lse@CryptoPro.ru


--- ifmail v.2.15dev5.4
Ответить с цитированием
  #5  
Старый 17.08.2016, 13:58
Vassily Kiryanov
Guest
 
Сообщений: n/a
По умолчанию О съезжании номеров сетевых интерфейсов.

Vassily Kiryanov написал(а) к Semen Panevin в Apr 15 14:03:48 по местному времени:

Нi Semen!

17 Apr 15 08:53, Semen Panevin wrote to Vassily Kiryanov:

VK>> Главный вопрос: можно-ли как-то влиять на раздачу номеров
VK>> интерфейсам во время загрузки? Например, указывая желаемый номер
VK>> интерфейса и его MAC-адрес?
SP> Вот чес-слово не знаю как у вас в бзде, а у нас в линуксе эту проблему
SP> решили с помощью udev, активно ругаемого Виссарионовым. Он возможно и
SP> знает другие пути решения, а вот лично я нет, поэтому когда втыкнул
SP> новую четырёхпортовку - просто переназначил человеческие имена
SP> интерфейсов по макам как мне удобно в рулесах udev.

SP> У вас там вроде тоже udev или аналог есть, не?

SP> Вот тут
SP> https://forums.freebsd.org/threads/r...interfaces.271
SP> 00/ говорят

SP> If you're going to go the manual route like that, then you are better
SP> off writing your own script to:

SP> list the MAC addresses
SP> rename the interfaces to some temp name
SP> rename the interfaces to the "correct" igbX name, based on the MAC
SP> address

SP> Then insert that into the boot order before the netif script runs. See
SP> rcorder(8) and rc() for details on how to do that.

Да не вопрос сделать именно так, именно через "ifconfig igbX name igbY" просто жалею, что этого изначально нет. М.б. пока нет?


VK>> Менее главный вопрос: а почему номера раздались именно так? Ну
VK>> просто интересно.
SP> Тайна, покрытая мраком...

SP> А ещё там же вот что говорят:

SP> Go into the BIOS. Go to the page with the PCI options. Change the
SP> order for device enumeration. :)

Там не BIOS нормальный, там linux кастрированный, не полезу я туда :)


Всего хорошего. "За верную и прибыльную дружбу!" (c) Яго.
Vassily
---
Ответить с цитированием
  #6  
Старый 17.08.2016, 13:58
Vassily Kiryanov
Guest
 
Сообщений: n/a
По умолчанию О съезжании номеров сетевых интерфейсов.

Vassily Kiryanov написал(а) к Alex Korchmar в Apr 15 14:40:29 по местному времени:

Нi Alex!

17 Apr 15 09:32, Alex Korchmar wrote to Semen Panevin:

AK> а теперь представь куда более частый сценарий, чем втыкание новых
AK> четырехпортовок в уютной серверной - сгорела сетевуха или вся мать,
AK> и заменена новой, километров тыщи этак за четыре от тебя.

AK> И линупс, точнее как раз udev, в точном подобии поделки майкрософта,
AK> которую он все пыжится догнать и перегнать по количеству неуправляемых
AK> явлений, радостно рапортует, что дивайса eth0, для которого есть
AK> конфигурация, он что-то не нашел, зато "обнаружено новое устройство",
AK> и щас-щас-щас, ага, ой - eth1 не сконфигурено, нажмите any key для
AK> продолжения банкета. Ой, что, у вас был доступ только через ssh?

Согласен, фича строгой привязки системного имени сетевого интерфейса к его MAC-адресу это штука обоюдоострая. Можно напороться именно так, как ты сказал. Но зачем привязку делать полностью строгой? Например, можно сделать так, если для какого-то имени интерфейса в файле привязок назначен MAC-адрес и этот MAC-адрес есть хоть на одной сетевухе, то назначаем такое имя именно этому интерфейсу. Если имя привязано к MAC-адресу, которого нет ни у одной сетевухи в системе, то это имя отправляется в пул свободных для раздачи и будет присвоено первому-же сетевому интерфейсу, для MAC-адреса которого привязки не назначено.
Ну, или даже можно сделать привязку либо обычной, либо обязательной. Сдаётся мне, что файлик /etc/ifaces.binding можно под такое завести и обрабатывать шелл-скриптом.

SP>> У вас там вроде тоже udev или аналог есть, не?
AK> к счастью, нету. Есть devfs, который в линупсе, к сожалению, пал в
AK> неравном бою с эффективными менеджерами - как и большинство хороших
AK> идей после 2003го года.

SP>> list the MAC addresses
AK> да-да, при аварийной замене сетевухи получим точное подобие линупсу.
AK> Нах не надо.

Тебе не надо. Мне не надо. А вдруг кому-то именно такой вариант поведения будет оптимальным? Лично я не возьмусь за всех решать.

VK>>> Менее главный вопрос: а почему номера раздались именно так? Ну
VK>>> просто интересно.
SP>> Тайна, покрытая мраком...
AK> ох уз эти сказоськи, ох уз эти сказосьники:
AK> встроенные сетевухи подключены в первый pci bridge (они в него
AK> включаются, хотя разъемов и не видно, вот сюрприз-то, да? Вы-то
AK> думали, они магическим каналом через эфирные слои подцеплены?) и имеют
AK> id выше, чем у слотов, чтобы, если их понадобится отключить, не
AK> перенумеровалась к чертям вся система, обеспечив windows-подобным ОС
AK> массу новых чудес.

Я в курсе, что встроенные сетевухи подключаются к CPU через встроенный в материнку мост, а дополнительные - могут через встроенный в мамку, а могут и ещё дополнительный на себе содержать так что после их втыкнутия система ещё одну PCI-шину обнаружит с сетевухами на ней. Но ситуация, когда встроенные в мамку интерфейсы пронумеровались позже подключеных в slot5 но раньше подключеных в slot3 мне кажется несколько странной с точки зрения проектирования подключений к материнке. Сдвинься нумерация встроенных в конец списка - удивляться было-бы нечему. Останься она без изменений - ещё лучше. Но она сдвинулась в середину списка.

AK> Открытие, что мосты pci подсоединены к отдельным процессорам - это к
AK> автору исходного послания. Инженеры интела рыдали, когда это узнали.

Я сам охренел, когда читал это. Хочешь, сфотографирую внутреннюю поверхность крышки корпуса, где хэпэшники такое написали?

AK> И да, эта нумерация связана с архитектурой платы, и не будет меняться
AK> непредсказуемым образом, пока плата остается той же самой.

Я догадался, что если на материнке не использовать ПЛИС, то схема соединения линий ввода-вывода со временем изменяться не должна.

Всего хорошего. "За верную и прибыльную дружбу!" (c) Яго.
Vassily
---
Ответить с цитированием
  #7  
Старый 17.08.2016, 13:58
Vassily Kiryanov
Guest
 
Сообщений: n/a
По умолчанию О съезжании номеров сетевых интерфейсов.

Vassily Kiryanov написал(а) к Serguei E. Leontiev в Apr 15 15:23:15 по местному времени:

Нi Serguei!

17 Apr 15 12:55, Serguei E. Leontiev wrote to Vassily Kiryanov:

SEL> От 17 апреля 2015 г., 9:19:55 в fido7.ru.unix.bsd ты писал:
VK>> понял. Главный вопрос: можно-ли как-то влиять на раздачу
VK>> номеров интерфейсам во время загрузки? Например, указывая
VK>> желаемый номер интерфейса и его MAC-адрес? Менее главный

SEL> Можно, и не только номер, смотри man rc.conf и/или man ifconfig на
SEL> предмет:

SEL> ifconfig<интерфейс>name="имя"

SEL> ifconfig <interface> name <name>

SEL> Смотри так же замечание Алексея об удобстве, не только при добавлении,
SEL> но при аварийной замене.

Да, спасибо, я в курсе про оба эти способа и ими успешно пользуюсь. Просто хочется чего-то вроде такого: делаем файл /etc/ifNames.binding

=========== start of file ifNames.binding ===========
net0 1a:2b:3c:4d:5e:6f
net1@ 1a:2b:3c:4d:5e:7f
net2 1a:2b:3c:4d:5e:8f
============ end of file ifNames.binding ============

Дальше стартовые скрипты смотрят, если есть интерфейс с MAC-адресом как в первой строке, то переименовываем его в имя из первой строки. Если нет такого интерфейса, то имя net0 должно быть присвоено первому из сетевых интерфейсов, MAC-адреса которых не упомянуты в строках этого файла. Далее, если есть интерфейс с MAC-адресом как во второй строке, то переименовываем его в имя из второй строки, отбросив символ "@". Но если нет интерфейса с таким MAC-адресом, то имя net1 не должно быть присвоено ни одному из сетевых интерфейсов, символ "@" означает строгую привязку. И так до последней строчки этого файла. Интерфейсы, MAC-адреса которых ни в этом файле не упомянуты, ни использованы для затыкания "дыр" в незащищённых знаком "@" строчках, можно оставлять с "родными" именами.
Думаю, что полезно заиметь такое было-бы в системе [инициализации] FreeBSD.


Всего хорошего. "За верную и прибыльную дружбу!" (c) Яго.
Vassily
---
Ответить с цитированием
  #8  
Старый 17.08.2016, 13:58
Serguei E. Leontiev
Guest
 
Сообщений: n/a
По умолчанию Re: О съезжании номеров сетевых интерфейсов.

Serguei E. Leontiev написал(а) к Vassily Kiryanov в Apr 15 14:07:25 по местному времени:

From: "Serguei E. Leontiev" <leo@sai.msu.ru>

Привет Василий,

От 17 апреля 2015 г., 14:40:29 в fido7.ru.unix.bsd ты писал:
AK>> нажмите any key для продолжения банкета. Ой, что, у вас был
AK>> доступ только через ssh?
VK> Согласен, фича строгой привязки системного имени сетевого
VK> интерфейса к его MAC-адресу это штука обоюдоострая. Можно
VK> напороться именно так, как ты сказал. Но зачем привязку делать
VK> полностью строгой? Например, можно сделать так, если для
VK> какого-то имени интерфейса в файле привязок назначен MAC-адрес
VK> и этот MAC-адрес есть хоть на одной сетевухе, то назначаем
VK> такое имя именно этому интерфейсу. Если имя привязано к
VK> MAC-адресу, которого нет ни у одной сетевухи в системе, то это
VK> имя отправляется в пул свободных для раздачи и будет присвоено
VK> первому-же сетевому интерфейсу, для MAC-адреса которого
VK> привязки не назначено. Ну, или даже можно сделать привязку либо
VK> обычной, либо обязательной. Сдаётся мне, что файлик
VK> /etc/ifaces.binding можно под такое завести и обрабатывать
VK> шелл-скриптом.

Не уверен, что описанная схема так уж хороша, но это ж пара, другая,
совершенно тривиальных и абсолютно понятных строчек в /etc/rc.conf,
например:

binding_ether001c42c2a76d=ext0
binding_ether001c4261a836=int0
for i in `ifconfig -l ether` ; do
eval ifconfig${i}_name=\$\{binding$(ifconfig $i ether | \
sed -n '/ether/s/[:[:space:]]//gp'):-$i\}
done

Что явно лучше, чем малопонятный и плохо описанный файл
/etc/ifaces.binding, которого на предыдущих версиях не было.

--
Успехов, Сергей Леонтьев. E-mail: lse@CryptoPro.ru


--- ifmail v.2.15dev5.4
Ответить с цитированием
  #9  
Старый 17.08.2016, 13:58
Alex Korchmar
Guest
 
Сообщений: n/a
По умолчанию Re: О съезжании номеров сетевых интерфейсов.

Alex Korchmar написал(а) к \"Serguei E. Leontiev\" в Apr 15 14:15:26 по местному времени:

From: Alex Korchmar <noreply@linux.e-moe.ru>

Serguei E. Leontiev <leo@sai.msu.ru> wrote:

SEL> Ну, hald есть же :) Обработка событий по внешним устройствам FreeBSD
это херня позаимствованна из того же линупса, где без нее долгое время
не работали иксы (когда-то, о чудо, чудо - умевшие обходиться без хала,
удева, eventd и вообще бывшие довольно таки обыденной программой в userspace
и без чудо-интерфейсов для взаимодействия с ядром через анус. К счастью
прогрессивного человечества, стая обезьянок и это успешно исправила.)
А к несчастью для позаимствовавших, пока они с этим копались, в линупсе hal
стало немодно (потому что в винде, с которой они в свою очередь бездумно
копипи$дили, стало немножко сложно и невоспроизводимо обезьянами), а модно
стало udev и теперь еще немножечко systemd. К тому времени как до
заимствователей это дойдет, новые модные иксы, почти уверен, без systemd
работать уже вообще разучатся.

> Alex

--- ifmail v.2.15dev5.4
Ответить с цитированием
  #10  
Старый 17.08.2016, 13:58
Serguei E. Leontiev
Guest
 
Сообщений: n/a
По умолчанию Re: О съезжании номеров сетевых интерфейсов.

Serguei E. Leontiev написал(а) к Vassily Kiryanov в Apr 15 15:13:58 по местному времени:

From: "Serguei E. Leontiev" <leo@sai.msu.ru>

Привет Василий,

От 17 апреля 2015 г., 15:23:15 в fido7.ru.unix.bsd ты писал:
VK> Далее, если есть
VK> интерфейс с MAC-адресом как во второй строке, то
VK> переименовываем его в имя из второй строки, отбросив символ
VK> "@". Но если нет интерфейса с таким MAC-адресом, то имя net1 не
VK> должно быть присвоено ни одному из сетевых интерфейсов, символ
VK> "@" означает строгую привязку.

Не ясно зачем нужна "строгая привязка" в такой формулировке. По
крайней мере, она не помогает, ни отказоустойчивости, ни
ремонтопригодности.

В примере Алексея, как я понял, основное - это заменил плату на
однотипную, и, почти всегда, почти везде, всё работает.

Что бы это сделать совсем уж честно, нужно, грубо говоря, получать имя
интерфейса не из файла (из файла станет только хуже), а по DНCP или
чего-то аналогичного. Что позволит привязать "имя", используемое в
дальнейших конфигурациях, с собственно проводом или тем, что за ним
находится.

Как вариант, вообще забыть об именах интерфейсов. Строго говоря, их
использование необязательно же.

--
Успехов, Сергей Леонтьев. E-mail: lse@CryptoPro.ru


--- ifmail v.2.15dev5.4
Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 08:06. Часовой пояс GMT +4.


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2024, vBulletin Solutions, Inc. Перевод: zCarot