renomeando interface de rede no Ubuntu 16.04 com systemd falha

13

Estou usando um Ubuntu 16.04 LTS Server sem cabeça com duas placas de rede físicas, chamadas enp5s0f0 e enp5s0f1.

Gostaria de renomear essas interfaces e seguir este exemplo . Eu, portanto, criei o arquivo /lib/systemd/network/70-myinterface.link (a fonte original parece não funcionar) assim (eu configurei o endereço MAC correto):

[Match]
MACAddress=12:34:56:78:9a:bc

[Link]
Name=dmz0

e reiniciei o servidor. Infelizmente a interface não foi renomeada, mesmo que udevadm mostre 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?

    
por muffel 06.06.2016 / 13:07

4 respostas

6

Isso pode ou não ajudar. Eu verificaria /etc/udev/rules.d e veria se você tem 70-persistent-net.rules. Você deve ser capaz de renomeá-los usando esse arquivo

O meu parece com isto:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="e0:cb:ee:d7:ff:9a", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

Se você tem as entradas para seus cartões neste arquivo, você pode mudar o nome para o que você quiser, alterando o "NAME = TheNameYouWant"

    
por John Orion 06.06.2016 / 13:28
3
  • Todos os três métodos de nomeação personalizados, explicados systemd: Nomes previsíveis de interface de rede , estão relacionados a regras do udev.

    systemd .link & amp; As regras do udev têm prioridade de pasta. /etc substitui /run substitui /lib .

    Portanto, verifique a configuração atual.

    # links
    ls -l /*/systemd/network/
    
    # rule that read links
    ls -l /*/udev/rules.d/80-net-setup-link.rules
    
    # rule that check for /etc/.../80-net-setup-link.rules & net.ifnames
    ls -l /*/udev/rules.d/73-usb-net-by-mac.rules
    

    Depois que qualquer alteração nessas regras do udev (adição / remoção de arquivos de substituição) for eficaz, o disco de RAM de inicialização deve ser atualizado:

    sudo update-initramfs -u
    

    Por padrão, esses são os únicos arquivos que você pode encontrar

    ~$ ls -l /*/systemd/network/
    /etc/systemd/network/:
    total 0
    
    /lib/systemd/network/:
    total 12
    -rw-r--r-- 1 root root 404 Jul 12 17:28 80-container-host0.network ##(virtual-interface)
    -rw-r--r-- 1 root root 482 Jul 12 17:28 80-container-ve.network ##(virtual-interface)
    -rw-r--r-- 1 root root  80 Jul 12 17:28 99-default.link
    
    
    ~$ ls -l /*/udev/rules.d/80-net-setup-link.rules
    -rw-r--r-- 1 root root 292 Jul 12 17:28 /lib/udev/rules.d/80-net-setup-link.rules
    
    ~$ ls -l /*/udev/rules.d/73-usb-net-by-mac.rules
    -rw-r--r-- 1 root root 551 Jul 12 16:37 /lib/udev/rules.d/73-usb-net-by-mac.rules
    

    Eu testei todos eles em VBox fresco 16.04 instalar como documentado no link abaixo, todos os métodos funciona como esperado:

    Nomes de interface complicados do Ubuntu 16.04

  • /etc/udev/rules.d/70-persistent-net-rules é de versões mais antigas substituídas por systemd .link (mas não são criadas automaticamente), eu as adicionei aqui para verificar sua existência para problemas específicos, mas não para O caso de AnttiHaapala .

por user.dz 08.09.2016 / 16:20
3

Uma opção que não requer regras do udev (uma alternativa aos arquivos systemd-networkd .link) que funciona com o Ubuntu 16.04, assim como muitas outras versões do Linux, é

Exemplo:

ifconfig peth0 down  
ip link set peth0 name eth0  
ifconfig eth0 up 

No exemplo acima peth0 é o nome da interface original e eth0 é o nome desejado. Conecte o nome que você tem atualmente onde peth0 é e o nome que você quer 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ê está procurando por uma solução persistente que sobrevive à reinicialização, veja Changing Nome de Interfaces de Rede Ubuntu 16.04

Fontes: link

link

Teste.

Nota: como o método @ antti-haapala funcionava antes e de repente parou você pode estar interessado em saber que "Como um caso especial, um arquivo vazio (tamanho de arquivo 0) ou um link simbólico com o mesmo nome apontando para / dev / null desabilita o arquivo de configuração inteiramente (é "mascarado") ". & lt; -source

    
por Elder Geek 03.09.2016 / 21:24
2

Você precisa atualizar seu initrd com algo como update-initramfs -k all -c , já que o udev aplica essas configurações enquanto executa initrd .

O Ubuntu 16.04 não tem mais arquivos com regras de rede persistentes.

    
por Jani Jaakkola 12.08.2016 / 00:40