RHEL / CENTOS6 Nomenclatura de interface e atribuição de IP para MACs rotativos

4

Histórico:

Estou criando uma imagem de disco do RHEL6 OS que será potencialmente transmitida para muitos computadores diferentes com hardware idêntico (exceto para números de série, como MACs). A imagem é pré-configurada e é copiada depois que o sistema é configurado. (Portanto, não há firstboot etc.) Uma vez que a imagem é colocada em um HDD, o HDD pode ser colocado em vários computadores diferentes.

Eu quero que todas as interfaces de rede criadas sejam nomeadas eth0, independentemente do MAC. Eu removi / modifiquei as regras do udev persistent-net para garantir que a única interface de rede disponível seja chamada eth0. (Com a regra do udev persistent-net, a eth * continuaria contando à medida que a unidade fosse passada entre os computadores.) Como tal, isso está funcionando.

Declaração do problema:

Eu também quero que todos esses computadores usem um endereço IP estático. Preciso que o endereço IP seja atribuído mesmo se não houver uma rede válida conectada ao computador. Eu modifiquei o ifcfg-eth0 para definir o endereço IP, mas isso é dependente do MAC, então não funciona quando eu movo o disco para outro computador. (O NetworkManager também é dependente do MAC, até onde eu sei).

Se o arquivo ifcfg-eth0 não tiver a linha HWADDR, funcionará bem quando for movido entre computadores. Eu adicionei um comando RUN ao final da minha regra do udev para executar um script que removeria a linha HWADDR de ifcfg-eth0, mas isso não funciona, porque tenho certeza de que o sistema de arquivos é montado como somente leitura durante o udev. não pode realmente modificar o ifcfg-eth0.

Eu quero que a interface de rede única no computador seja inicializada com um endereço IP pré-especificado, independentemente do MAC atual. Eu acho que sou muito próximo, mas parece que não consigo encontrar os bits finais para forçá-lo a atribuir o endereço IP a qualquer interface que esteja disponível.

EDITAR:

ifcfg-eth0:

DEVICE=eth0
IPADDR=10.10.10.10
BROADCAST=10.10.10.255
ONBOOT=yes
NAME=eth0
BOOTPROTO=none
NETMASK=255.255.255.0
TYPE=Ethernet
HWADDR=##:##:##:##:##:##
IPV6INIT=no
USERCTL=no
NM_CONTROLLED=no

Se a linha HWADDR corresponder ao MAC no computador no momento em que estiver tudo bem. Mas se a linha HWADDR não coincidir com o kernel reclama durante a inicialização dizendo:

Bringing up interface eth0:  Device eth0 has different MAC address than expected, ignoring.   [FAILED]

Se a linha HWADDR não estiver presente na inicialização, ela funcionará bem, mas preencherá essa linha automaticamente em algum momento, portanto, da próxima vez que você mover a unidade, ela não funcionará. Pensei em apenas usar sed e remover a linha HWADDR na inicialização durante o udev, mas por causa do sistema de arquivos somente leitura, não acho que seja realmente uma boa ideia (ou funcionaria).

    
por moderj 18.01.2013 / 16:57

1 resposta

2

Defina o bit imutável no arquivo para que ele não possa ser modificado (sem remover o bit):

chattr + i / etc / sysconfig / scripts de rede / ifcfg-eth0

    
por 18.01.2013 / 21:18