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=0
conforme descritoaquie então criar meus próprios ifcfg-ethX
arquivos. 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.d
para 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 paraeth*
, 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 switchnet.ifnames=0
).Para obter o
p1p2
nomes de estilo, você podeyum install biosdevname
ativá-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.