Назад | Перейти на главную страницу

Произвольное имя интерфейса VLAN

Есть ли способ назвать интерфейс VLAN произвольно, например eth72 или ext19 вместо четырех стандартных схем именования eth0.72, vlan19 (и варианты с мягкой подкладкой)?

Понятия не имею. Может удев?

OMG - это который легко:

Переименовать vlan 42 на eth0 к ext2:

ip link set dev eth0.42 name ext2

Мне не повезло с "ip link set dev bond0.10 name ext0". Если интерфейс включен, он получает ошибку ЗАНЯТО. Если интерфейс не работает, возникает ошибка НЕ ​​НАЙДЕНА.

Что мне действительно повезло, так это вот что: в моем базовом определении интерфейса для bond0,

post-up ip link add name ext0 link bond0 type vlan id 10
pre-down ip link delete dev ext0 type vlan

и

auto ext0
iface ext0 inet static
    address ...

Теперь я обнаружил, что «ifup bond0» не только создает VLAN, как показано в / proc / net / vlan / config, и создает устройство ext0, но даже если это устройство ext0. bond0.10 никогда не возникает.

В OpenBSD (и, возможно, в других BSD) вы можете установить описание интерфейса с помощью ifconfig, используя метко названный description аргумент, см. ifconfig (8). Это очень удобно, чтобы различать несколько интерфейсов. Но это тебе не поможет.

К сожалению, в Linux нет отличного способа сделать это.

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

Попробуйте программу вроде ifrename что позволит вам вручную указать имена интерфейсов. Он выглядит в первую очередь для того, чтобы гарантировать, что NIC0 всегда ассоциируется с eth0 но я считаю, что вы можете использовать его для присвоения имен вроде external и dmz к интерфейсам вместо eth0 и так далее. Udev также позволит вам изменять имена интерфейсов с помощью файла network.rules (см. Вот для примеров).

Вы должны быть осторожны, чтобы задокументировать это, поскольку обычно это не делается, но в отличие от @MichealHampton я не вижу в этом особых проблем. Лично я очень хорошо использую поле описания интерфейсов в моих установках BSD.

В debian вы используете /etc/network/interfaces для настройки сетевых интерфейсов.

Помните, что вам следует установить vlan пакет:

apt-get install vlan

Из man 5 interfaces:

Чтобы упростить настройку интерфейсов VLAN, интерфейсы, имеющие. (символ точки) в имени настроены как тегированный интерфейс виртуальной LAN 802.1q.

Например, интерфейс eth0.1 - это виртуальный интерфейс с eth0 в качестве физического канала с идентификатором VLAN 1.

Для получения дополнительной информации проверьте man 5 vlan-interfaces. По сути, вы можете дать своему vlan-интерфейсу любое имя и использовать vlan-raw-device чтобы связать vlan с вашим сетевым адаптером. Например, vlan10 на eth0 будет:

iface vlan10 inet static
    vlan-raw-device eth0
    address 192.168.10.1
    netmask 255.255.255.0

В дистрибутивах, отличных от debian, вы можете сделать то же самое с iproute2 следующим образом:

ip link add link enp3s0f1 name vlan10 type vlan id 10
ip addr add 192.168.10.1/24 dev vlan10

Не уверен, что это также относится к Debian, но в Ubuntu (и Red Hat) это легко сделать, отредактировав /etc/udev/rules.d/persistent-net.rules (или аналогичный; я не могу чек)

Переименование интерфейсов имеет ряд полезных преимуществ:

  • назначает известную семантику интерфейсу (например, 'management0', 'front0', 'back0')
  • наличие предсказуемого имени упрощает работу сценариев управления конфигурацией и т. д. (особенно правила брандмауэра)

Вы действительно должны убедиться, что ваша команда знает, чего ожидать. Это не проблема, обычно это очень приветствуется, особенно когда у вас много интерфейсов в системе (использование eth8 не является необоснованным для хоста с избыточными связанными ссылками на хранилище SAN)

Обсудив это недавно, если вы хотите переименовать на основе идентификатора VLAN, я бы посоветовал вам принять во внимание следующее:

  • Идентификаторы VLAN не так уж и запоминаются, и их легко опечатать и просмотреть.
  • у хоста обычно нет простого способа определить, в какой VLAN (если есть) он находится, или это если это собственная VLAN, а также порт доступа или магистрали (выполнение этого вручную с хоста иногда возможно, если вы tcpdump для сообщений CDP или знать, какой трафик соответствует какой VLAN). Таким образом, конфигурация основана на убеждениях, которые легко могут стать недействительными.

Используя nmcli в RedHat / CentOS / SL 7, вы получаете поддерживаемое системой постоянное произвольное имя для интерфейсов VLAN, просто:

$ nmcli con add type vlan ifname за пределами dev eno1 id 10

Так что это хорошо работает.

в / etc / network / interfaces:

auto lxdHost
iface lxdHost static
   pre-up ip link add link eth0 name lxdHost type vlan id 102
   address 192.1.1.1/25
   ...

тогда ifup lxdHost

pre-up, post-down и другие в интерфейсе man - это волшебные крючки, позволяющие делать что-то по-своему.