Como atribuo um nome arbitrário a uma interface de rede com base na localização do hardware? (CentOS 7)

Como atribuo um nome arbitrário a uma interface de rede com base na localização do hardware? (CentOS 7)

Tenho vários dispositivos idênticos executando o CentOS 7 com quatro NICs integradas. Para manter uma sensação semelhante a uma versão mais antiga do dispositivo executando RHEL6 (ou seja, ethX), quero usar o esquema de nomenclatura de rede usado pelo RHEL6. Também quero minimizar o número de alterações necessárias após a criação de um disco de sistema genérico para uso em cada dispositivo.

Se eu entendi o esquema de nomenclatura no CentOS 7, o esquema de nomenclatura é consistente com base na localização do hardware, portanto, se o hardware for idêntico, terei os mesmos nomes de interface de rede para cada instância do dispositivo.

Devido às demandas dos clientes, preciso fazer com que as interfaces de rede do aparelho tenham o mesmo nome nas versões CentOS 7 e RHEL6.

Uma abordagem é estender a linha de comando do kernel net.ifnames=0conforme descritoaquie então criar meus próprios ifcfg-ethXarquivos. No entanto, pelo que sei, isso requer modificação manual do arquivo de configuração. Isso é ainda mais complicado porque a ordem herdada é corrigida, mas arbitrária, então eu teria que modificar esses arquivos para cada sistema. :-/

Uma ideia que tive foi usar o esquema de nomenclatura do CentOS 7, mas depois adicionar um alias a cada um, para que o esquema de nomenclatura arbitrário pudesse ser aplicado com base na localização do hardware. É possível fazer isso?

Alguma outra idéia sobre como posso obter dois nomes para o mesmo dispositivo e endereço IP?

NOTA: Não estou perguntando como adicionar vários endereços IP ao mesmo dispositivo, o que é bastante simples.

EDITAR: Eu realmente preciso renomeá-lo, mas gostaria de fazê-lo programaticamente.

Responder1

Um nome pode ser "arbitrário" e "baseado na localização do hardware" ao mesmo tempo? Essas palavras se contradizem.

  • Os eth#nomes são atribuídos pelo próprio kernel com base na ordem de detecção em cada inicialização – em outras palavras, eles são “primeiro a chegar, primeiro a ser servido” e não têm nada a ver com a localização do hardware.

    Versões mais antigas do udev usadas para gerar automaticamente um arquivo em/etc/udev/rules.dpara vincular essas atribuições aos endereços MAC das placas. Provavelmente você pode copiar esse arquivo para os novos sistemas.

    Você também pode escrever regras personalizadas do udev para definir o NAME=parâmetro com base no endereço ou localização do PCI. (Observe que no futuro o udev poderá se recusar a renomear uma interface para eth*, se ainda não o fizer. E mesmo se for permitido, essa renomeação é muito frágil e pode falhar se os dispositivos forem descobertos em uma ordem diferente.)

  • Embora, até onde eu saiba, o RHEL 6 usassenome do biosdevpara gerar os nomes das interfaces baseadas em física (kernel switch biosdevname=0). RHEL 7 usa o net_id integrado do systemd-udevd para essa finalidade (kernel switch net.ifnames=0).

    Para obter op1p2nomes de estilo, você pode yum install biosdevnameativá-lo através da linha de comando do kernel ( biosdevname=1 net.ifnames=0). Veja oDocumentação da Red Hat.

As interfaces de rede não podem ter aliases.

informação relacionada