Определение имен сетевых интерфейсов в NetBSD

Определение имен сетевых интерфейсов в NetBSD

Кто-нибудь знает, есть ли способ определить, как будет называться сетевой интерфейс в NetBSD, если заранее известно, какую сетевую карту/драйвер вы будете использовать?

Я пытаюсь автоматизировать части настройки NetBSD для множества различных машин и хотел бы написать файл /etc/ifconfig.xx, но никогда не знаю, какой будет часть 'xx'. Я знаю, что, например, моя сетевая карта Intel использует 'wm' в качестве суффикса, но откуда NetBSD берет эту информацию?

решение1

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

С другой стороны, во время загрузки системы или после первой загрузки список известных интерфейсов выдается командой ifconfig -l.

Конечно, это все еще не скажет вам, к какому интерфейсу подключен кабель Ethernet, например, если в вашей системе имеется несколько интерфейсов на материнской плате, или установлено несколько карт Ethernet, или многопортовая карта и т. д. Некоторые интерфейсы появляются автоматически, когда они устанавливают соединение с коммутатором/концентратором/чем-либо еще, и если это так, то они ifconfig -aпокажут вам всю информацию обо всех известных интерфейсах, включая то, какой из них активен и какую среду они используют (линии status:и media:соответственно).

Однако, если ваша целевая среда использует DHCP для назначения адресов, то вы можетеобычнообойтись просто использованием следующей строки/etc/rc.conf

dhclient=YES

поскольку по умолчанию он попытается запросить адрес на каждом доступном (с возможностью широковещательной передачи) интерфейсе.

решение2

Я думаю, вы могли бы использовать dhcpd.conf или какой-нибудь скрипт ifconfig(8) после загрузки, чтобы переназначить интерфейсы, ссылаясь на их аппаратные MAC-адреса, которые будут уникальными, даже если вы используете несколько одинаковых сетевых карт. Было бы неплохо иметь возможность ссылаться на MAC-адресавместоиз имен интерфейсов XXn, но ifconfig(8), похоже, не имеет такой опции.

решение3

Я думал, что NetBSD проверяет это через использование Vendor- и PCI-ID. Возможно, pcidevs.h и pcidevs_data.h вам помогут.

Связанный контент