Я выполняю некоторых Ubuntu Гостеприимные экземпляры на частном облаке OpenStack и сталкиваюсь с проблемой с предсказуемым именованием сетевого интерфейса. Я попытался отключить его путем установки GRUB_CMDLINE_LINUX="net.ifnames=0 biosdevname=0"
в /etc/default/grub
. После перезагрузки первый сетевой интерфейс все еще имеет свое старое 'предсказуемое' имя (ens3
), но второй интерфейс имеет свое старое название (eth1
).
dmesg
имеет [ 1.403328] virtio_net virtio0 ens3: renamed from eth0
Как я настраиваю Ubuntu, таким образом, мой первый сетевой интерфейс называют eth0
?
Отредактируйте Ваш/etc/udev/rules.d/70-persistent-net.rules. Формат довольно прост. Только 1 строка на интерфейс, и просто скопировать/вставить существующая строка и изменение MAC-адрес и имя устройства.
Вот то, на что похожа запись:
# PCI device 0x10ec:0x8168 (r8169)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="20:1a:06:d8:65:ae", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
Я думаю, что более чистое решение:
sudo ln -s /dev/null /etc/udev/rules.d/80-net-setup-link.rules
и перезагрузка. Это возвратит старое интерфейсное именование.
Если Вы хотите присвоить определенные названия сетевых интерфейсов, и у Вас есть персистентные MAC-адреса, то можно следовать за решением heynnema или использовать systemd.link.