Maneira correta de alterar o endereço MAC em uma VM Linux?

13

Tentei alterar o endereço MAC em uma VM do ubuntu (virtualbox), mas depois disso ocorreram muitos erros durante a inicialização e não tive conexão com a internet.

Então vi que a interface foi renomeada para eth1, então editei / etc / network / interfaces para alterar eth0 para eth1, reiniciei (não sabia como reiniciar a rede) e a inicialização agora era mais rápida e a Internet funcionava bem.

Mas agora, toda vez que eu faço logon, recebo 1 ou 2 mensagens de erro que não dizem nada, elas só me perguntam se eu quero denunciá-las.

Então, eu queria saber, existe uma maneira adequada de alterar o endereço MAC, para evitar esses problemas?

HappyDeveloper
fonte
1
Há vários fatores envolvidos na alteração de um endereço mac, em uma VM ou de outra forma. Você pode explicar por que você quer mudar o mac, pode ajudar a encontrar a melhor solução ( meta.stackexchange.com/questions/66377/what-is-the-xy-problem )
Paul
@Paul Estou tentando aprender como diferentes programas rastreiam sua atividade, como fazê-lo e como evitá-lo. Por exemplo: IP, cookies, impressões digitais do navegador, etc. Agora, quero ver como alguns programas respondem a uma alteração de endereço MAC.
HappyDeveloper 4/12/12

Respostas:

15

É muito provável que você use o método "correto" para alterar o endereço MAC, se estiver fazendo isso nas configurações avançadas de rede do VirtualBox. No entanto, uma alteração temporária, como na outra resposta de Zuul, pode ser melhor para seus propósitos, pois alterará o MAC sem causar muitos problemas adicionais - no entanto, não sobreviverá a uma reinicialização.

Mudá-lo no VirtualBox certamente sobreviverá a uma reinicialização, mas o problema que você está enfrentando é esse udev. Este é o processo que analisa o hardware e o define /dev(ou o que mais precisar ser feito). Uma das coisas que faz por padrão é tentar manter nomes persistentes para placas de interface de rede [nics]. Isso ocorre porque quando você tem várias placas de rede, deseja que elas sempre tenham o mesmo nome ethX, para que sua /etc/network/interfacesconfiguração tenha como alvo o nic certo a cada inicialização. O sistema operacional não pode confiar neles apenas estando fisicamente no mesmo local toda vez - você pode movê-los por exemplo, ou alguns sistemas não relatam suas conexões físicas na mesma sequência a cada inicialização.

Portanto, udevusa regras de persistência com base no endereço MAC da placa de rede. Se houver uma entrada para eth1 com um endereço MAC conhecido e um cartão aparecer com um endereço MAC diferente, ele alocará um nome de dispositivo ethX diferente para a interface.

Para combater isso, você só precisa atualizar as udevregras. Editar:

vi /etc/udev/rules.d/70-persistent-net.rules

e procure a linha com o seu MAC atual:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="11:22:33:44:55:66", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"

Se você alterar o endereço MAC aqui para o novo que você escolheu nas configurações do VirtualBox, ele manterá o mesmo número de desenvolvedor ethX na próxima inicialização.

A melhor sequência provavelmente seria editá-la aqui primeiro, depois desligar a VM, depois editar a configuração do VB MAC e depois inicializar.

Paulo
fonte
Editar o arquivo manualmente não funcionou para mim, mas lembrei-me de ler que você pode remover esse arquivo todo o resto e, após a reinicialização, ele é gerado automaticamente. E isso realmente funcionou :) +1 para mostrar a localização do arquivo.
Eduard Luca #
@Paul Por que, então, eu posso clonar um sistema Linux de uma máquina física para outra do mesmo tipo (mas endereços MAC diferentes) e não encontrar esse problema?
Arney
1
@ arney Eu acho que é porque é uma NIC completamente diferente, não apenas as alterações no endereço MAC. No arquivo que é mencionado por Paulo, você pode ver: ATTR{dev_id}=="0x0". Isso deve ser diferente.
MarioDS 12/06
@ arney Eu acho que você está certo, Arney, se o nic não existir, a regra do udev não será aplicada. É o mesmo que se fosse uma nova máquina. Sem os erros, é difícil dizer. Mas excluir as regras de persistência ajudará se for o udev.
Paulo
8

Você pode alterar o endereço MAC com 4 etapas simples usando o ifconfig :

Abra um terminal (atalho de teclado: ctrl+ alt+ t)

  1. Encontre o endereço mac atual:

    ifconfig | grep HWaddr
    
  2. Encerre a interface (supondo que seja eth0para as próximas etapas) :

    ifconfig eth0 down
    
  3. Defina o novo endereço mac:

    ifconfig eth0 hw ether 00:1E:68:35:FF:91
    
  4. O sinalizador faz com que a interface seja ativada:

    ifconfig eth0 up
    

Agora você pode verificar novamente o endereço MAC da interface:

ifconfig eth0 |grep HWaddr

Nota: Você pode escolher qualquer endereço hexadecimal de 48 bits como seu endereço MAC.


Para fins de integridade, você pode combinar as etapas 2 e 3 em uma linha:

ifconfig eth0 down hw ether 00:00:00:00:00:01
Zuul
fonte
@ DownVoter: Se houver um problema com a minha resposta, um comentário ajudaria muito a melhorar! Tks.
Zuul