Créer une adresse MAC virtuelle

10

Je souhaite créer des adresses MAC virtuelles pour ma carte réseau ou ma carte sans fil, afin de pouvoir me connecter au réseau avec plusieurs adresses IP à partir d'un ordinateur ou d'un ordinateur portable.

Comment puis-je le faire? (Je sais que c'est possible, car un de mes amis l'a fait à l'université et a plus d'une - parfois jusqu'à 255 - adresses IP sur un réseau).

Moein Hosseini
la source
vous devez spécifier quel système d'exploitation utilisez-vous et, éventuellement, quelle distribution.
andcoz
@ Moein7tl sachez que si l'administrateur système réduit la bande passante pour chaque utilisateur, c'est probablement pour éviter que les gens téléchargent illégalement et pour donner plus de priorité au trafic plus important comme les données de recherche ou le calcul dans le cloud ... Essayez de ne pas exploiter la limite du système juste pour obtenir une bande passante décente.
Kiwy

Réponses:

18

Tout ce que vous devez faire c'est

ip link add link eth0 address 00:11:11:11:11:11 eth0.1 type macvlan

puis allumez l'interface réseau virtuelle

ifconfig eth0.1 up

puis éventuellement acquérir une adresse IP via DHCP avec

dhclient -v eth0.1
myopénide
la source
13

Vous n'avez pas besoin de plusieurs adresses MAC pour avoir plusieurs adresses IP sur une seule interface réseau. Cette technique est appelée alias IP .

Chaque système d'exploitation a une syntaxe légèrement différente mais généralement, pour définir des adresses IP différentes sur la même interface, il vous suffit de faire quelque chose comme:

ifconfig eth0 192.168.100.200 netmask 255.255.255.0
ifconfig eth0:1 192.168.120.200 netmask 255.255.255.0
ifconfig eth0:2 192.168.130.200 netmask 255.255.255.0

L'exemple ci-dessus fonctionne sous Linux. Sur BSD, vous avez besoin de quelque chose comme:

ifconfig lnc0 192.168.100.200 netmask 255.255.255.0
ifconfig lnc0 192.168.120.200 netmask 255.255.255.0 alias
ifconfig lnc0 192.168.130.200 netmask 255.255.255.0 alias
andcoz
la source
Dans notre réseau sans fil universitaire, le système donne une adresse IP à chaque adresse mac de 8 h à 21 h, et le système limite chaque ip à un maximum de 32 Ko de vitesse, si je peux créer une adresse mac virtuelle, donc il ne peut pas détecter mon ordinateur portable comme un seul et il me donnera plus d'une adresse IP.
Moein Hosseini
S'il vous plaît @ Moein7tl, modifiez votre question et spécifiez que vous recherchez une méthode pour obtenir plus d'une adresse IP attribuée par votre serveur DHCP universitaire .
andcoz
4

Modifier: ajoutez un conseil pour la configuration du périphérique virtuel:

Configurez d'abord un appareil supplémentaire, par exemple:

ifconfig eth0:1 up

Vous pouvez également y ajouter une adresse IP. par exemple:

ifconfig eth0:1 10.0.0.20 broadcast 10.255.255.255 netmask 255.255.255.255

Si vous le souhaitez, vous pouvez également modifier l'adresse MAC:

ip link set eth0:1 address 02:73:53:00:ca:fe

Notez que le deuxième bit du premier octet doit être défini pour signaler une adresse administrée localement (LAA) - qui indique que cette adresse MAC n'est valide que localement (par exemple au sein de votre réseau d'entreprise) et peut ne pas être unique dans le monde entier (donc vous pouvez attribuer vos propres adresses MAC sans avoir besoin de les enregistrer officiellement).

Nils
la source
mais lorsque je me connecte à mon réseau sans fil domestique avec lui, il ne peut changer que l'adresse mac, et mon modem ne me donne pas 2 adresses IP ou plus. Je ne vois qu'une seule adresse mac dans mes pages de modem.
Moein Hosseini
Bien sûr, vous devez d'abord configurer un périphérique virtuel supplémentaire. C'est pourquoi j'ai dit "aussi". Regardez la réponse à votre question qui décrit l'alias IP. Je préfère utiliser un masque de réseau de 255.255.255.255 pour ceux-ci. Mais vous n'avez pas demandé d'adresses IP virtuelles, et parfois il suffit d'avoir un appareil opérationnel avec un MAC.
Nils
1
Pour autant que je sache, vous ne pouvez pas avoir des adresses MAC différentes pour eth0et ´eth0: 1´. En supposant que vous créez eth0:1comme décrit. Pour être sûr, je l'ai testé sur mon système. La dernière commande ( ip link ...) a changé l'adresse MAC des deux "interfaces". Cela signifie que eth0lui-même a également obtenu la nouvelle adresse MAC. La raison en est que ifconfig eth0:1 upcela ne créera pas de nouveau lien. Il ajoutera uniquement une adresse IP à une adresse existante. La création d'un macvlanlien semble être la voie à suivre.
JojOatXGME
3

Cela fonctionne pour moi sur Linux (Kali). Vous devrez peut-être modifier les adresses, les passerelles ou les masques de réseau en fonction de votre situation personnelle. Désolé si vous n'en avez pas besoin, pour que la prochaine personne trébuche ici, comme je l'ai fait il y a quelques instants.

<your-nicN>est ce que vous voyez d'un ifconfigtel eth0ouwlan0

sudo ip link add link <your-nicN> mac0 type macvlan && sudo ifconfig mac0 up

Cela crée une nouvelle interface "virtuelle" appelée mac0 et la fait apparaître. J'ai ajouté la commande up parce que je pensais d'abord que cela ne fonctionnait pas, mais en sudo ip link show [tab][tab]plus d'un double onglet complété par une liste qui comprenait mac0, j'ai ensuite procédé à la mise en place avec ifconfig et lui attribuer une adresse.

N'oubliez pas de lui attribuer une adresse IP ou de lui dire d'utiliser DHCP

ifconfig mac0 inet 192.168.1.107 netmask 255.255.255.0 #static/manual config

ou

dhclient mac0 # For a dhcp-client, to get ip from router.

si vous devez attribuer une passerelle par défaut:

sudo ip route add default via 192.168.1.1 

L'endroit où j'ai obtenu une partie de cela est ici: http://www.pocketnix.org/posts/Linux%20Networking:%20MAC%20VLANs%20and%20Virtual%20Ethernets

Edit3: J'ai essayé de jouer avec "bond" et ifenslavemais j'ai besoin de faire un peu plus d'étude à ce sujet, je ne pouvais pas vraiment le comprendre. Ce que j'ai fait, cependant, ce qui a mis en place un "routeur EtherSwitch" dans GNS3, puis assigné un "cloud" à dix des macNappareils à une "extrémité", puis un autre "cloud" à un adaptateur d'hôte vmware uniquement, virtualbox fonctionnerait probablement de la même manière , de l'autre côté, je vais jouer un peu avec ça et voir si je peux limiter la vitesse sur les macNappareils pour simuler une "agrégation" ou si je peux répartir la charge sur les dix connexions pour "augmenter" bande passante. Peut-être que si je les définissais tous sur txqueuelen: 10 sous Linux. J'ai DragonflyBSD à l'autre "extrémité" de cela, je vais essayer de le connecter à mon vrai routeur via GNS3.

Edit2: Voici un script rapide pour en obtenir autant que nécessaire avec dhclient. Il doit être exécuté en tant que root. Créez donc le fichier, puis chmod 750 <script>exécutez-le avec sudosi vous le pouvez / devez. Je l'utilise comme ceci: ./crazy-mac.sh 20il prend le premier argument et crée autant de nouvelles interfaces chacune avec sa propre adresse mac et ip. Il n'y a pas de contrôle de santé mentale, utilisez-le à bon escient ou ajoutez-en vous-même;)

Remarque: assurez-vous de vous connecter d'abord avec votre wlan0 normal, sinon cela ne fonctionnera pas. comment-connecter-manuellement-à-un-ap-sans-fil Aussi, si leur liste de contrôle d'accès est mac sur le routeur, vous devrez peut-être quelques renifler pour obtenir une liste d'adresses mac acceptées par le routeur. Vous devrez ensuite modifier le script pour analyser un fichier avec cette liste et utiliser une ligne pour chacun $idans la séquence au lieu de permettre à cela de créer des adresses mac aléatoires.

Note2: Vous voudrez peut-être en mettre un sleep <N>dans la boucle quelque part, cela fera apparaître de nombreux «périphériques» de manière séquentielle et déclenchera probablement des signaux d'alarme si quelqu'un fait attention au réseau. Je ne pense pas que certains appareils apparaîtront de cette façon dans des circonstances normales.

#!/bin/sh
## crazy-mac.sh
for i in $(seq ${1}); do
    ip link add link wlan0 mac${i} type macvlan && \
    ifconfig mac${i} up && \
    dhclient mac${i};
done

Et pour les faire tomber: Encore une fois juste un script rapide ...

#!/bin/sh
## crazy-down.sh
for i in $(seq ${1}); do
    ifconfig mac${i} down && \
    ip link delete mac${i};
done

Et si vous avez besoin d'une liste d'adresses mac, cela fonctionne avec bash lorsqu'un fichier est une liste d'une adresse mac par ligne dans le fichier.

#!/bin/bash
## crazy-mac2.sh
## Usage : crazy-mac2.sh <N> </path/to/mac-list.txt>
MACLIST=($(cat ${2}))

# This is for testing, comment this and uncomment out the other for loop
# if this one works the other should also.
for i in $(seq ${1}); do
    echo "mac${i} :  ${MACLIST[${i}-1]}"; done

#for i in $(seq ${1}); do
#    ip link add link wlan0 mac${i} address ${MACLIST[${i}-1]} type macvlan && \
#    ifconfig mac${i} up && \
#    dhclient mac${i};
#done

unset MACLIST

Edit: je venais de lire sur les périphériques "lagg" (au moins pour unix) qui peuvent être utilisés pour agréger plusieurs interfaces en une seule interface "lagg" pour augmenter les performances ou pour fournir des solutions de secours en cas de panne pour une raison quelconque.

Je pensais juste à la façon dont cela serait utile dans une situation où la bande passante était limitée par adresse mac, elle pourrait être utilisée dans une telle situation afin que vous puissiez prendre toutes les nombreuses interfaces macN virtuelles et agréger la bande passante dans un interface unique, puis peut-être régler / appuyer sur un hôte virtuel ou quelque chose. C'est intéressant pour moi, je vais essayer de configurer la limite de bande passante sur mon wifi personnel par adresse mac pour recréer le scénario et tenter cela, je serai de retour.

Overloaded_Operator
la source