linux ethernet numbering reset

7

quando você coloca seu disco rígido em outra máquina e o Linux reconhece a nova NIC, haverá um novo número anexado a eth , por exemplo eth0 - > eth1

Isso divide alguns dos meus scripts pessoais, por exemplo, o endereço IP do sistema.

Existe alguma maneira de redefinir o número toda vez que reinicializar ou a nova NIC for encontrada?

    
por c2h2 26.04.2011 / 05:10

3 respostas

12

Verifique as regras do udev em /etc/udev/rules.d .

Na minha distribuição do Fedora, existe uma regra escrita automaticamente em 70-persistent-net.rules

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:f1:cc:2f:1a", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

que liga claramente o endereço Ethernet ao nome do dispositivo. Os comentários na parte superior do arquivo dão boas dicas de como ajustar esse comportamento.

    
por 26.04.2011 / 05:31
2

Adicione isso ao seu script. Pode ser necessário executar como root, dependendo do seu sistema.

ethX='ifconfig -s | awk 'NR==2 {print $1}''

Em seguida, você pode usar $ethX como uma variável em sua NIC.
Isso apenas pega a saída de ifconfig -s e analisa tudo, exceto o texto na linha 2 e coluna 1.

    
por 26.04.2011 / 05:42
1

Pelo que entendi, o Linux usa a numeração de barramento para determinar a ordem das interfaces e sua numeração em uma determinada máquina. Pode ser barramento PCI, mini-PCI ou qualquer outra coisa. Ultimamente, devido aos scripts de inicialização paralela de todos os tipos e tipos, as coisas tornaram-se aleatórias, às vezes, de uma inicialização para outra (na verdade, NICs foram mais ou menos nomeadas da mesma forma na mesma máquina, mas outros dispositivos nem tanto).

Obviosuly, a ordem dos dispositivos no ônibus muda de máquina para máquina. O que não muda é o endereço MAC.

Minha solução:

Se você estiver usando o udev, você pode usar as regras de configuração do udev semelhantes às que são descrito aqui (para Debin, o Ubuntu é similar) para forçar uma ligação entre a interface específica e o endereço MAC da NIC.

Caveat Emptor: algumas NICs permitem editar seus MACs. Nesse caso, não funcionará.

Informação extra-curricular: Uma alternativa mais difícil de implementar seria usar o novo mecanismo que o Matt Domsch / Dell está propondo para o Fedora, revisto aqui

No que diz respeito ao Ubuntu, há uma proposta para integrar esse esquema também. De acordo com 1 acima: Embora o Fedora esteja enviando o biosdevname primeiro , outras distribuições Linux também devem adotá-lo. Existe um projeto para integrar isso no Ubuntu 11.04 e uma solicitação de inclusão no OpenSUSE.

Espero que isso ajude.

    
por 26.04.2011 / 05:30