Sistema Linux clonado e /etc/udev/rules.d/70-persistent-net.rules


9

Eu configurei um sistema Ubuntu e o configurei corretamente, incluindo a definição eth0em /etc/network/interfaces. Eu então imaginei esse sistema e o clonei em um novo sistema.

Quando eu iniciei o sistema pela primeira vez, tudo estava bem, mas algumas reinicializações mais tarde fui recebido com o tempo limite da configuração da rede. Quando entrei, descobri que eth0não estava disponível.

Minha pesquisa inicial me permitiu tentar ifdown -ae o ifup -aque fiz algumas vezes sem efeito aparente.

A pesquisa acabou me apontando para /etc/udev/rules.d/70-persistent-net.rulesonde descobri que o endereço MAC do novo sistema havia criado o eth1. Boa ideia, mas não o que eu queria que acontecesse.

Quando inicializei agora, descobri que /etc/udev/rules.d/70-persistent-net.rulesagora existem seis entradas para seis endereços HW diferentes, o que acho estranho, pois existe apenas uma interface.

Minha pergunta é: meu uso de ifup -aalguma forma criou novos endereços MAC a serem criados? Caso contrário, há alguma opinião sobre como isso aconteceu? Alterei /etc/udev/rules.d/70-persistent-net.rulespara nomear o Endereço HW atual eth0e parece estar funcionando, mas posso ter certeza de que o endereço não será alterado novamente em uma reinicialização?


Futuros visitantes deste P: Esta não é uma VM, é um sistema físico que o OP clonou no novo hardware!
slm

Respostas:


7

Ocorreu exatamente esse mesmo problema no CentOS de tempos em tempos quando clonava máquinas virtuais (VMs). O problema decorre da VM original ter recebido uma entrada nesse arquivo para configurar o dispositivo Ethernet eth0.

Arquivo .rules de amostra

# This file was automatically generated by the /lib/udev/write_net_rules
# program, run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single
# line, and change only the value of the NAME= key.

# net device () (custom name provided by external tool)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:52:00:ff:ff:dd", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

O problema aumenta sua cabeça quando você clona a primeira VM, e isso cria um novo endereço MAC, sob algumas tecnologias de virtualização, como a KVM para uma. Esse novo endereço MAC é detectado automaticamente quando a VM clonada é inicializada e visualizada como um novo dispositivo Ethernet /lib/udev/write_net_rulese, portanto, uma segunda entrada é adicionada ao arquivo acima.

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:52:00:ff:ff:de", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"

Normalmente, eu abro este arquivo, 70-persistent-net.rulesem um editor e simplesmente consolido as linhas para que o novo endereço MAC seja atribuído ao eth0dispositivo e reinicie.

...
# net device () (custom name provided by external tool)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="54:52:00:ff:ff:de", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

EDIT # 1

O OP seguiu a pergunta com as seguintes informações novas.

Item # 1: Hmmm. Isso não funcionará no meu caso, porque estou executando um software com uma licença flexível que se vincula ao endereço mac. A mudança constante de endereços torna o software inútil.

@Zobal - Estou familiarizado com o Flex. Como é uma VM, você pode alterar o MAC da VM (no software da VM - VirtualBox, KVM, etc.).

NOTA: Flex é uma tecnologia de licenciamento fornecida pela Flexera . Eles costumavam ser chamados de GlobeTrotter Software. Essa tecnologia permite que o software seja vinculado a um host físico ou pode ter licenças gerenciadas de um servidor central como "tokens", onde os clientes podem fazer o check-out dos tokens por um período de tempo. As licenças são normalmente ligados a um host, e este alojamento é normalmente identificado por um número único que pode encontrar usando o comando hostid.

Por exemplo:

$ hostid
a8c0c801

Item 2: No meu caso, não é uma VM. Eu clonei um sistema físico em outro sistema físico.

Ao que eu respondi: Bem, sua única opção é alterar o endereço MAC do novo sistema para o mesmo que o MAC do outro sistema. Perceba que esses 2 sistemas não podem existir na mesma rede, caso contrário, eles entrarão em conflito. Além disso, o licenciamento Flex normalmente não usa o MAC, eles usam o número identificável usando o comando hostid!

Referências


Hummm. Isso não funcionará no meu caso, porque estou executando um software com uma licença flexível que se vincula ao endereço mac. Mudar constantemente de endereço torna o software inútil ...
Zobal

@Zobal - Estou familiarizado com o Flex. Como é uma VM, você pode alterar o MAC da VM (no software da VM - VirtualBox, KVM, etc.).
slm

No meu caso, não é uma VM. Eu clonei um sistema físico em outro sistema físico.
Zobal 23/01

@Zobal - bem, sua única opção é alterar o endereço MAC do novo sistema para o mesmo que o MAC do outro sistema. Perceba que esses 2 sistemas não podem existir na mesma rede, caso contrário, eles entrarão em conflito. Além disso, o licenciamento Flex normalmente não usa o MAC, eles usam o número identificável usando o comando hostid!
slm

as licenças flexíveis são as que criamos para vincular nosso software a uma máquina específica e, nesse caso, ele usa o MAC. Novo desenvolvimento: Reinstalei o UBUNTU do zero (não da imagem) e estou tendo o mesmo comportamento. Na verdade, ele só aparece em desligamentos sujos (a energia é puxada). Alguma ideia?
Zobal

0

hostid é tão único quanto o endereço IP do seu servidor.
No seu exemplo, hostid é a8c0c801, o endereço IP do seu servidor é 192.168.1.200?
A8C0 C801 -> C0A8 01C8
C0: 192
A8: 168
01: 1
C8: 200

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.