Estou usando um servidor LTS Ubuntu 16.04 decapitado com duas placas de rede físicas, denominadas enp5s0f0 e enp5s0f1.
Eu gostaria de renomear essas interfaces e segui este exemplo . Por isso, criei o arquivo /lib/systemd/network/70-myinterface.link
(a fonte original não parece funcionar) assim (defino o endereço MAC correto):
[Match]
MACAddress=12:34:56:78:9a:bc
[Link]
Name=dmz0
e reiniciou o servidor. Infelizmente, a interface não foi renomeada, apesar de udevadm
mostrar que meu arquivo de configuração é usado:
$ udevadm info /sys/class/net/enp5s0f1
P: /devices/pci0000:00/0000:00:02.0/0000:01:00.0/0000:02:02.0/0000:05:00.1/net/enp5s0f1
E: DEVPATH=/devices/pci0000:00/0000:00:02.0/0000:01:00.0/0000:02:02.0/0000:05:00.1/net/enp5s0f1
E: ID_BUS=pci
E: ID_MODEL_FROM_DATABASE=80003ES2LAN Gigabit Ethernet Controller (Copper)
E: ID_MODEL_ID=0x1096
E: ID_NET_DRIVER=e1000e
E: ID_NET_LINK_FILE=/lib/systemd/network/70-myinterface.link <-- my file
E: ID_NET_NAME_MAC=enx123456789abc
E: ID_NET_NAME_PATH=enp5s0f1
E: ID_OUI_FROM_DATABASE=Intel Corporation
E: ID_PATH=pci-0000:05:00.1
E: ID_PATH_TAG=pci-0000_05_00_1
E: ID_PCI_CLASS_FROM_DATABASE=Network controller
E: ID_PCI_SUBCLASS_FROM_DATABASE=Ethernet controller
E: ID_VENDOR_FROM_DATABASE=Intel Corporation
E: ID_VENDOR_ID=0x8086
E: IFINDEX=3
E: INTERFACE=enp5s0f1
E: SUBSYSTEM=net
E: SYSTEMD_ALIAS=/sys/subsystem/net/devices/enp5s0f1
E: TAGS=:systemd:
E: USEC_INITIALIZED=1900192
Você tem alguma idéia de por que a renomeação não funcionou?
networking
server
16.04
muffel
fonte
fonte
MACAddress=
[Match]
não funciona para mim também noslink
arquivos, então acabei usandoPath=
. Você deveria tentar também. Além disso, você pode verificar quallink
arquivo corresponde ao seu dispositivo com oudevadm test-builtin net_setup_link /sys/class/net/enp5s0f1
comandoRespostas:
Isso pode ou não ajudar. Gostaria de verificar o /etc/udev/rules.d e ver se você possui 70-persistent-net.rules. Você poderá renomeá-los usando esse arquivo
O meu fica assim:
Se você tiver as entradas para seus cartões nesse arquivo, poderá alterar o nome para o que desejar, alterando o "NAME = TheNameYouWant"
fonte
Uma opção que não requer regras do udev (uma alternativa aos arquivos systemd-networkd .link) que funciona com o Ubuntu 16.04 e com muitas outras versões do Linux é
Exemplo:
No exemplo acima, peth0 é o nome da interface original e eth0 é o nome desejado. Conecte o nome que você possui atualmente onde peth0 está e o nome que deseja onde eth0 está. Nenhuma reinicialização é necessária ou sugerida. Repita o processo para a segunda placa de interface
Testado no Ubuntu 16.04 com o kernel 4.4.0-36-generic # 55-Ubuntu
Edit: Se você estiver procurando por uma solução persistente que sobreviva à reinicialização, consulte Alterando o nome de interfaces de rede Ubuntu 16.04
Fontes: https://www.freedesktop.org/software/systemd/man/systemd.link.html
http://kernelpanik.net/rename-a-linux-network-interface-without-udev/
Teste.
Nota: como o método @ antti-haapala funcionou antes e parou subitamente, você pode estar interessado em saber que "Como um caso especial, um arquivo vazio (tamanho 0) ou um link simbólico com o mesmo nome apontando para / dev / null desabilitam o arquivo de configuração inteiramente (é "mascarado") ". <-Fonte
fonte
Todos os três métodos de nomeação personalizados, explicados em systemd: nomes previsíveis da interface de rede , estão relacionados às regras do udev.
As regras do systemd .link & udev têm prioridade de pasta.
/etc
substituições/run
substituições/lib
.Portanto, verifique a configuração atual.
Após qualquer alteração nessas regras do udev (adição / remoção de arquivos de substituição), o disco RAM de inicialização deve ser atualizado:
Por padrão, esses são os únicos arquivos que você pode encontrar
Eu testei todos eles na instalação do VBox fresh 16.04, conforme documentado no link abaixo, todos os métodos funcionam conforme o esperado:
Nomes de interface complicada do Ubuntu 16.04
/etc/udev/rules.d/70-persistent-net-rules
é de versões mais antigas substituídas por systemd .link (mas elas não são criadas automaticamente), adicionei-a aqui para verificar sua existência quanto a problemas específicos, mas não no caso do AnttiHaapala .fonte
Você precisa atualizar o seu
initrd
com algo comoupdate-initramfs -k all -c
, uma vez que o udev já aplica essas configurações durante a execuçãoinitrd
.O Ubuntu 16.04 não tem mais o arquivo 70-persistent-net-rules.
fonte
Não tenho reputação suficiente para comentar, mas apenas para adicionar à resposta marcada, as instalações limpas do Ubuntu 16.04 não terão o arquivo /etc/udev/rules.d/70-persistent-net.rules presente. No entanto, se você criá-lo manualmente, poderá adicionar uma linha, como mostrado na resposta aqui, e deve funcionar como nas versões anteriores, com uma diferença notável - o parâmetro KERNEL deve ser especificado como o nome atribuído ao interface por padrão. Por exemplo, se o sistema nomeou a interface como "ens160" e você deseja alterá-la para "eth0", a linha pode se parecer com:
Isso diz à regra para corresponder apenas em uma interface que corresponda ao MAC especificado (no parâmetro ATTR {address}) e com um nome de kernel que corresponda ao parâmetro KERNEL. Como alternativa, você provavelmente poderia omitir o parâmetro KERNEL completamente e isso também deve funcionar.
EDIT: E como já mencionado, se você quiser usar o método de arquivo .link, será necessário atualizar o initramfs para que ele entre em vigor. Observe também que o arquivo .link personalizado deve ser criado em / etc / systemd / network e não em / lib / systemd / network (isso funcionará, mas a melhor prática é usar / etc / systemd / network, pois é para isso - permita arquivos .link personalizados que substituam os padrões em / lib / systemd / network).
fonte