Machen Sie eine virtuelle MAC-Adresse

10

Ich möchte einige virtuelle MAC-Adressen für meinen Netzwerkadapter oder WLAN-Adapter erstellen, damit ich von einem Computer oder Laptop aus eine Verbindung zum Netzwerk mit mehr als einer IP-Adresse herstellen kann.

Wie kann ich es tun? (Ich weiß, dass es möglich ist, weil einer meiner Freunde es an der Universität gemacht hat und mehr als eine - manchmal bis zu 255 - IP-Adresse in einem Netzwerk hat).

Moein Hosseini
quelle
Sie müssen angeben, welches Betriebssystem Sie verwenden und schließlich welche Verteilung.
andcoz
@ Moein7tl Beachten Sie, dass wenn sysadmin die Bandbreite für jeden Benutzer reduziert, dies wahrscheinlich dazu führt, dass Personen nicht illegal herunterladen und wichtigeren Datenverkehr wie Suchdaten oder Cloud-Berechnungen mehr Priorität einräumen ... Versuchen Sie, das Limit des Systems nicht nur auszunutzen Holen Sie sich eine anständige Bandbreite.
Kiwy

Antworten:

18

Alles was Sie tun müssen, ist

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

Schalten Sie dann die virtuelle Netzwerkschnittstelle ein

ifconfig eth0.1 up

und dann optional eine ip über dhcp mit erwerben

dhclient -v eth0.1
myopenid
quelle
13

Sie benötigen nicht mehr als eine MAC-Adresse, um mehrere IP-Adressen auf einer einzigen Netzwerkschnittstelle zu haben. Diese Technik wird als IP-Aliasing bezeichnet .

Jedes Betriebssystem hat eine leicht unterschiedliche Syntax. Um jedoch unterschiedliche IP-Adressen auf derselben Schnittstelle festzulegen, müssen Sie normalerweise nur Folgendes tun:

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

Das obige Beispiel funktioniert unter Linux. Auf BSD benötigen Sie etwas wie:

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
quelle
In unserem drahtlosen Universitätsnetzwerk gibt das System jeder Mac-Adresse von 8.00 bis 21.00 Uhr eine IP-Adresse, und das System begrenzt jede IP-Adresse auf maximal 32 KB Geschwindigkeit, wenn ich eine virtuelle Mac-Adresse erstellen kann, sodass sie nicht erkannt werden kann Mein Laptop als einer und es wird mir mehr als eine IP-Adresse geben.
Moein Hosseini
Bitte @ Moein7tl, bearbeiten Sie Ihre Frage und geben Sie an, dass Sie nach einer Methode suchen, um mehr als eine IP-Adresse von Ihrem Universitäts- DHCP- Server zu erhalten.
andcoz
4

Bearbeiten: Hinweis zum Einrichten des virtuellen Geräts hinzufügen:

Richten Sie zuerst ein zusätzliches Gerät ein, z.

ifconfig eth0:1 up

Sie können zusätzlich eine IP hinzufügen. z.B:

ifconfig eth0:1 10.0.0.20 broadcast 10.255.255.255 netmask 255.255.255.255

Wenn Sie wirklich wollen, können Sie auch die MAC-Adresse ändern:

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

Beachten Sie, dass das zweite Bit des ersten Bytes gesetzt werden muss, um eine lokal verwaltete Adresse (LAA) zu signalisieren. Dies besagt, dass diese MAC-Adresse nur lokal gültig ist (z. B. innerhalb Ihres Unternehmensnetzwerks) und möglicherweise nicht weltweit eindeutig ist (also) Sie können Ihre eigenen MAC-Adressen zuweisen, ohne diese offiziell registrieren zu müssen.

Nils
quelle
Wenn ich jedoch eine Verbindung zu meinem drahtlosen Heimnetzwerk herstelle, kann dies nur die Mac-Adresse ändern, und mein Modem gibt mir nicht zwei oder mehr IP-Adressen. Auf meinen Modem-Seiten wird nur eine Mac-Adresse angezeigt.
Moein Hosseini
Natürlich müssen Sie zuerst ein zusätzliches virtuelles Gerät einrichten. Deshalb habe ich "auch" gesagt. Schauen Sie sich die Antwort auf Ihre Frage an, die das IP-Aliasing beschreibt. Ich bevorzuge für diese eine Netzmaske von 255.255.255.255. Sie haben jedoch nicht nach virtuellen IP-Adressen gefragt, und manchmal reicht es aus, ein Gerät mit einem MAC zum Laufen zu bringen.
Nils
1
Soweit ich weiß, können Sie für eth0und ´eth0: 1´ keine unterschiedlichen MAC-Adressen haben . Angenommen, Sie erstellen eth0:1wie beschrieben. Natürlich habe ich es auf meinem System getestet. Der letzte Befehl ( ip link ...) hat die MAC-Adresse beider "Schnittstellen" geändert. Dies bedeutet, dass eth0selbst auch die neue MAC-Adresse erhalten wurde. Der Grund ist, dass dadurch ifconfig eth0:1 upkein neuer Link erstellt wird. Es wird nur eine IP-Adresse zu einer vorhandenen hinzugefügt. Das Erstellen eines macvlanLinks scheint der richtige Weg zu sein.
JojOatXGME
3

Dies funktioniert für mich unter Linux (Kali). Möglicherweise müssen Sie Adressen, Gateways oder Netzmasken entsprechend Ihrer persönlichen Situation ändern. Tut mir leid, wenn Sie das nicht brauchen, damit die nächste Person hier stolpert, wie ich es vor wenigen Augenblicken getan habe.

Wo <your-nicN>ist was du von einem ifconfigwie eth0oder siehstwlan0

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

Dadurch wird eine neue "virtuelle" Schnittstelle namens mac0 erstellt und aufgerufen. Ich habe den Befehl up hinzugefügt, weil ich zuerst dachte, dass dies nicht funktioniert, aber sudo ip link show [tab][tab]zusätzlich zu einer doppelten Registerkarte mit einer Liste, die mac0 enthält, habe ich ihn mit ifconfig aufgerufen und ihm eine Adresse zugewiesen.

Denken Sie daran, ihm eine IP-Adresse zuzuweisen oder ihm zu sagen, dass er DHCP verwenden soll

ifconfig mac0 inet 192.168.1.107 netmask 255.255.255.0 #static/manual config

oder

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

Wenn Sie ein Standard-Gateway zuweisen müssen:

sudo ip route add default via 192.168.1.1 

Der Ort, von dem ich etwas davon bekommen habe, ist hier: http://www.pocketnix.org/posts/Linux%20Networking:%20MAC%20VLANs%20and%20Virtual%20Ethernets

Edit3: Ich habe versucht, mit "Bond" herumzuspielen, ifenslaveaber ich muss ein bisschen mehr darüber lernen , ich konnte es nicht wirklich herausfinden. Was ich jedoch getan habe, als ich einen "EtherSwitch Router" in GNS3 eingerichtet und dann zehn der macNGeräte an einem "Ende" und dann eine andere "Cloud" einem VMware-Host-Adapter zugewiesen habe, würde Virtualbox wahrscheinlich genauso funktionieren , am anderen "Ende", werde ich ein bisschen damit herumspielen und sehen, ob ich die Geschwindigkeit auf den macNGeräten begrenzen kann , um eine "Aggregation" zu simulieren, oder ob ich die Last auf die zehn Verbindungen verteilen kann, um "erhöht" zu werden. Bandbreite. Vielleicht, wenn ich sie alle auf txqueuelen: 10 unter Linux setze. Ich habe DragonflyBSD am anderen "Ende", ich werde versuchen, es über GNS3 mit meinem echten Router zu verbinden.

Edit2: Hier ist ein schnelles Skript, um mit dhclient so viele zu erstellen, wie Sie benötigen. Es muss als root ausgeführt werden. Erstellen Sie also die Datei chmod 750 <script>und führen Sie sie aus, sudowenn Sie können / müssen. Ich benutze es so: ./crazy-mac.sh 20Es nimmt das erste Argument und erstellt so viele neue Schnittstellen, jede mit ihrer eigenen Mac- und IP-Adresse. Es gibt keine Gesundheitsprüfungen, also benutze sie mit Bedacht oder füge sie selbst hinzu;)

Hinweis: Stellen Sie sicher, dass Sie sich zuerst mit Ihrem normalen wlan0 verbinden, da dies sonst nicht funktioniert. Manuelles Herstellen einer Verbindung zu einer drahtlosen App Auch wenn es sich um eine Mac-Zugriffssteuerungsliste auf dem Router handelt, müssen Sie möglicherweise etwas schnüffeln, um eine Liste der vom Router akzeptierten Mac-Adressen zu erhalten. Sie müssen dann das Skript bearbeiten, um eine Datei mit dieser Liste zu analysieren und für jede Datei $iin der Sequenz eine Zeile zu verwenden, anstatt zuzulassen, dass zufällige Mac-Adressen erstellt werden.

Hinweis 2: Möglicherweise möchten Sie sleep <N>irgendwo ein a in die Schleife einfügen. Dadurch werden viele "Geräte" nacheinander aufgerufen und möglicherweise einige rote Fahnen gesetzt, wenn jemand auf das Netzwerk achtet. Ich glaube nicht, dass einige Geräte unter normalen Umständen auf diese Weise auftauchen werden.

#!/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

Und um sie zu Fall zu bringen: Wieder nur ein kurzes Skript ...

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

Wenn Sie eine Liste mit Mac-Adressen benötigen, funktioniert dies mit bash, wenn eine Datei eine Liste mit einer Mac-Adresse pro Zeile in der Datei enthält.

#!/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

Bearbeiten: Ich habe gerade über "Lagg" -Geräte (zumindest für Unix) gelesen, die verwendet werden können, um mehrere Schnittstellen zu einer einzigen "Lagg" -Schnittstelle zusammenzufassen, um die Leistung zu steigern oder um Rückschläge zu erzielen, falls einer aus irgendeinem Grund ausfällt.

Ich habe gerade darüber nachgedacht, wie dies in einer Situation nützlich sein könnte, in der die Bandbreite pro Mac-Adresse begrenzt ist. In einer solchen Situation kann sie möglicherweise verwendet werden, sodass Sie alle vielen virtuellen macN-Schnittstellen verwenden und die Bandbreite zu einer zusammenfassen können einzelne Schnittstelle und dann vielleicht auf einen virtuellen Host oder so etwas einstellen / tippen. Das ist interessant für mich. Ich werde versuchen, ein Bandbreitenlimit für mein persönliches WLAN pro Mac-Adresse festzulegen, um das Szenario neu zu erstellen, und dies zu versuchen. Ich komme wieder.

Overloaded_Operator
quelle