Estou tentando renomear alguns dispositivos de virtio ethernet em uma VM Ubuntu 16.04. Eu fiz isso com sucesso muitas vezes em sistemas não-Ubuntu com interfaces físicas e sistemas Ubuntu mais antigos. No entanto, apesar de seguir o conselho de Renomeando a interface de rede no Ubuntu 16.04 com o systemd falha e vendo Nomenclatura persistente da interface de rede e kvm ainda não está sendo renomeado. Isso está em uma VM openstack, mas isso realmente não deve importar muito.
Eu tentei usar o udev (minha abordagem normal):
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="fa:16:3e:bf:be:d0", NAME="enet"
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="fa:16:3e:64:fb:74", NAME="snet"
Eu tentei usar arquivos systemd.link (com e sem 99-default.link sendo vinculado a / dev / null):
[Match]
MACAddress=fa:16:3e:bf:be:d0
[Link]
Name=enet
e
[Match]
MACAddress=fa:16:3e:64:fb:74
[Link]
Name=snet
Eu tentei com links udev e systemd. Eu certamente corri sudo update-initramfs -u
Tanto o systemd quanto o udev reconhecem o novo nome em alguma extensão
systemctl
diz:
sys-devices-pci0000:00-0000:00:03.0-virtio0-net-ens3.device loaded active plugged Virtio network device
sys-devices-pci0000:00-0000:00:03.0-virtio0-net-enet.device loaded active plugged Virtio network device
sys-devices-pci0000:00-0000:00:04.0-virtio1-net-ens4.device loaded active plugged Virtio network device
sys-devices-pci0000:00-0000:00:04.0-virtio1-net-snet.device loaded active plugged Virtio network device
udevadm info /sys/class/net/ens3
P: /devices/pci0000:00/0000:00:03.0/virtio0/net/ens3
E: DEVPATH=/devices/pci0000:00/0000:00:03.0/virtio0/net/ens3
E: ID_BUS=pci
E: ID_MODEL_FROM_DATABASE=Virtio network device
E: ID_MODEL_ID=0x1000
E: ID_NET_DRIVER=virtio_net
E: ID_NET_LINK_FILE=/etc/systemd/network/80-etr-net-names.link
E: ID_NET_NAME_MAC=enxfa163ebfbed0
E: ID_NET_NAME_PATH=enp0s3
E: ID_NET_NAME_SLOT=ens3
E: ID_PATH=virtio-pci-0000:00:03.0
E: ID_PATH_TAG=virtio-pci-0000_00_03_0
E: ID_PCI_CLASS_FROM_DATABASE=Network controller
E: ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller
E: ID_VENDOR_FROM_DATABASE=Red Hat, Inc
E: ID_VENDOR_ID=0x1af4
E: IFINDEX=2
E: INTERFACE=ens3
E: SUBSYSTEM=net
E: SYSTEMD_ALIAS=/sys/subsystem/net/devices/enet /sys/subsystem/net/devices/ens3
E: TAGS=:systemd:
E: USEC_INITIALIZED=1532927
Mas, de alguma forma, o dispositivo mantém o nome do ensX. Eu não estou executando o NetworkManager
2: ens3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether fa:16:3e:bf:be:d0 brd ff:ff:ff:ff:ff:ff
3: ens4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether fa:16:3e:64:fb:74 brd ff:ff:ff:ff:ff:ff