web-dev-qa-db-fra.com

Manière appropriée pour changer l'adresse MAC dans une machine virtuelle Linux?

J'ai essayé de changer l'adresse MAC dans un ubuntu VM (virtualbox), mais après cela, des erreurs se sont glissées au démarrage et je n'ai plus eu de connexion Internet.

Puis j'ai vu que l'interface avait été renommée eth1. J'ai donc modifié/etc/network/interfaces pour changer eth0 en eth1, puis redémarré (je ne savais pas comment redémarrer le réseau). Le démarrage était maintenant plus rapide et Internet fonctionnait bien.

Mais maintenant, chaque fois que je me connecte, je reçois un ou deux messages d'erreur qui ne disent rien, ils me demandent seulement si je veux les signaler.

Je me demandais donc s'il existait un moyen approprié de modifier l'adresse MAC pour éviter ces problèmes.

13
HappyDeveloper

Vous utilisez très probablement la méthode "correcte" pour modifier l'adresse MAC, si vous le faites dans les paramètres réseau avancés de VirtualBox. Cependant, un changement temporaire comme dans l'autre réponse de Zuul peut être mieux adapté à vos besoins, car il modifiera le code MAC sans causer trop de problèmes supplémentaires - toutefois, il ne survivra pas à un redémarrage.

Le changer dans VirtualBox survivra bien sûr au redémarrage, mais le problème auquel vous êtes confronté est avec udev. Il s’agit du processus qui examine le matériel et le configure dans /dev (ou tout autre travail à effectuer). Une des choses qu'il fait par défaut est d'essayer de conserver des noms persistants pour les cartes d'interface réseau [nics]. En effet, lorsque vous avez plusieurs nics, vous voulez qu’ils aient toujours le même nom ethX, de sorte que votre configuration /etc/network/interfaces cible le bon nic à chaque démarrage. Le système d'exploitation ne peut pas compter uniquement sur le fait qu'ils se trouvent physiquement au même endroit. Vous pouvez par exemple les déplacer, ou encore certains systèmes ne signalent pas leurs connexions physiques dans le même ordre à chaque démarrage.

Donc, udev utilise des règles de persistance basées sur l'adresse MAC de la carte réseau. S'il contient une entrée pour eth1 avec une adresse MAC connue et qu'une carte apparaît avec une adresse MAC différente, un nom de périphérique ethX différent sera attribué à l'interface.

Pour y remédier, il vous suffit de mettre à jour les règles udev. Modifier:

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

et cherchez la ligne avec votre MAC actuel:

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

Si vous modifiez ici l'adresse MAC par la nouvelle que vous avez choisie dans les paramètres de VirtualBox, elle conservera le même numéro ethX dev au prochain démarrage.

La meilleure séquence serait probablement de l'éditer ici d'abord, puis d'arrêter la VM, puis d'éditer le paramètre VB MAC, puis de démarrer.

15
Paul

Vous pouvez changer l'adresse MAC en 4 étapes simples en utilisant ifconfig :

Ouvrir un terminal (raccourci clavier: ctrl + alt + t)

  1. Trouvez l'adresse mac actuelle:

    ifconfig | grep HWaddr
    
  2. Arrêtez l'interface (en supposant que ce soit eth0 pour les prochaines étapes):

    ifconfig eth0 down
    
  3. Définissez la nouvelle adresse mac:

    ifconfig eth0 hw ether 00:1E:68:35:FF:91
    
  4. L'option Flag provoque l'activation de l'interface:

    ifconfig eth0 up
    

Maintenant, vous pouvez revérifier votre adresse MAC d'interface:

ifconfig eth0 |grep HWaddr

Remarque: Vous pouvez choisir une adresse hexadécimale de 48 bits comme adresse MAC.


Par souci d'exhaustivité, vous pouvez combiner les étapes 2 et 3 en une seule ligne:

ifconfig eth0 down hw ether 00:00:00:00:00:01
8
Zuul