Crea un indirizzo MAC virtuale


10

Voglio creare alcuni indirizzi MAC virtuali per la mia scheda di rete o la mia scheda wireless, così posso collegarmi alla rete con più di un indirizzo IP da un computer o laptop.

Come posso farlo? (So ​​che è possibile, perché uno dei miei amici lo ha fatto all'università e ne ha più di uno - a volte fino a 255 - indirizzi IP su una rete).


devi specificare quale sistema operativo stai usando e, eventualmente, quale distribuzione.
Andcoz,

@ Moein7tl essere consapevoli del fatto che se l'amministratore di sistema riduce la larghezza di banda per ogni utente è probabilmente per evitare che le persone scarichino illegalmente e che dia più priorità al traffico più importante come i dati di ricerca o il calcolo del cloud ... Cerca di non sfruttare il limite del sistema solo per ottenere una larghezza di banda decente.
Kiwy,

Risposte:


18

Tutto quello che devi fare è

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

quindi attiva l'interfaccia di rete virtuale

ifconfig eth0.1 up

e quindi facoltativamente acquisire un ip tramite dhcp con

dhclient -v eth0.1

13

Non è necessario più di un indirizzo MAC per avere più indirizzi IP su una singola interfaccia di rete. Questa tecnica si chiama aliasing ip .

Ogni sistema operativo ha una sintassi leggermente diversa ma di solito, per impostare indirizzi IP diversi sulla stessa interfaccia, devi solo fare qualcosa del tipo:

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'esempio sopra funziona su Linux. Su BSD, hai bisogno di qualcosa come:

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

Nella nostra rete wireless universitaria, il sistema fornisce un indirizzo IP a ciascun indirizzo mac dalle 8:00 alle 21:00 e il sistema limita ogni IP a una velocità massima di 32 KB, se posso creare un indirizzo MAC virtuale, quindi non può rilevare il mio laptop come uno e mi darà più di un indirizzo IP.
Moein Hosseini,

Per favore @ Moein7tl, modifica la tua domanda e specifica che stai cercando un metodo per ottenere assegnato più di un indirizzo IP dal tuo server dhcp dell'università .
Andcoz,

4

Modifica: aggiungi un suggerimento per la configurazione del dispositivo virtuale:

Innanzitutto imposta un dispositivo aggiuntivo, ad esempio:

ifconfig eth0:1 up

È possibile inoltre aggiungere un IP ad esso. per esempio:

ifconfig eth0:1 10.0.0.20 broadcast 10.255.255.255 netmask 255.255.255.255

Se lo desideri, puoi anche modificare l'indirizzo MAC:

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

Si noti che il secondo bit del primo byte deve essere impostato in modo da segnalare un indirizzo amministrato localmente (LAA), che indica che questo indirizzo MAC è valido solo localmente (ad esempio all'interno della rete aziendale) e potrebbe non essere univoco in tutto il mondo (quindi puoi assegnare i tuoi indirizzi MAC senza la necessità di registrarli ufficialmente).


ma quando mi collego alla mia rete wireless domestica con essa, può solo cambiare l'indirizzo mac e il mio modem non mi dà 2 o più indirizzi IP. Vedo solo un indirizzo mac nelle mie pagine modem.
Moein Hosseini,

Ovviamente devi prima impostare un dispositivo virtuale aggiuntivo. Ecco perché ho detto "anche". Guarda la risposta alla tua domanda che delinea l'ip-aliasing. Preferisco usare una maschera di rete di 255.255.255.255 per questi. Ma non hai richiesto IP virtuali e, a volte, è sufficiente avere un dispositivo attivo e funzionante con un MAC.
Nils,

1
Per quanto ne so, non puoi avere indirizzi MAC diversi per eth0e "0: 1". Supponendo di creare eth0:1come descritto. A dire il vero, l'ho provato sul mio sistema. L'ultimo comando ( ip link ...) ha modificato l'indirizzo MAC di entrambe le "interfacce". Questo significa che eth0ha anche il nuovo indirizzo MAC. Il motivo è che ifconfig eth0:1 upnon creerà un nuovo collegamento. Aggiungerà solo un indirizzo IP a uno esistente. La creazione di un macvlancollegamento sembra essere la strada da percorrere.
JojOatXGME

3

Questo funziona per me su Linux (Kali). Potrebbe essere necessario modificare indirizzi, gateway o maschere di rete in base alla situazione personale. Scusami se non ti serve, perché la prossima persona inciampa qui, come ho fatto pochi istanti fa.

Dov'è <your-nicN>ciò che vedi da un ifconfigtale eth0owlan0

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

Ciò crea una nuova interfaccia "virtuale" chiamata mac0 e la visualizza. Ho aggiunto il comando up perché in un primo momento ho pensato che non funzionasse, ma sudo ip link show [tab][tab]più una doppia scheda completata con un elenco che includeva mac0, quindi ho proceduto a visualizzarlo con ifconfig e assegnandogli un indirizzo.

Ricorda solo di assegnargli un indirizzo IP o di dirgli di usare dhcp

ifconfig mac0 inet 192.168.1.107 netmask 255.255.255.0 #static/manual config

o

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

se è necessario assegnare un gateway predefinito:

sudo ip route add default via 192.168.1.1 

Il posto da cui ho preso parte di questo è qui: http://www.pocketnix.org/posts/Linux%20Networking:%20MAC%20VLANs%20and%20Virtual%20Ethernets

Edit3: ho provato a scherzare con "bond" ifenslavema ho bisogno di studiare un po 'di più, non sono riuscito a capirlo. Quello che ho fatto, però, che cosa ha impostato un "EtherSwitch Router" in GNS3 e quindi assegnato un "cloud" dieci dei macNdispositivi su un "end" e quindi un altro "cloud" a un adattatore solo host vmware, virtualbox probabilmente funzionerebbe allo stesso modo , dall'altro "fine", ho intenzione di scherzare un po 'con quello e vedere se posso limitare la velocità sui macNdispositivi per simulare un "aggregazione" o se posso distribuire il carico tra le dieci connessioni per "aumentato" larghezza di banda. Forse se li impostassi tutti su txqueuelen: 10 su Linux. Ho DragonflyBSD all'altra "estremità" di questo, tenterò di collegarlo al mio router reale tramite GNS3.

Edit2: ecco uno script veloce per ottenerne quante ne hai bisogno con dhclient. Deve essere eseguito come root. Quindi crea il file, quindi chmod 750 <script>ed eseguilo con sudose puoi / devi. Lo uso in questo modo: ./crazy-mac.sh 20prende il primo argomento e crea molte nuove interfacce ognuna con il proprio indirizzo mac e ip. Non ci sono controlli di integrità, quindi usalo con saggezza o aggiungine qualcuno;)

Nota: assicurati di connetterti prima con il tuo normale wlan0, altrimenti non funzionerà. how-to-connect-manual-to-a-wireless-ap Inoltre, se la loro è una lista di controllo degli accessi mac sul router, potresti aver bisogno di fare un po 'di sniffing per ottenere un elenco di indirizzi mac accettati dal router. Sarà quindi necessario modificare lo script per analizzare un file con quell'elenco e utilizzare una riga per ciascuno $inella sequenza invece di consentire a questo di creare indirizzi mac casuali.

Nota2: Potresti voler inserire qualche a sleep <N>nel loop da qualche parte, questo farà apparire molti "dispositivi" in sequenza e probabilmente alzerà alcune bandiere rosse se qualcuno sta prestando attenzione alla rete. Non credo che 20 dispositivi appariranno in questo modo in circostanze normali.

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

E per abbatterli: di nuovo solo una breve sceneggiatura ...

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

E se hai bisogno di un elenco di indirizzi mac, questo funziona con bash quando un file è un elenco di un indirizzo mac per riga nel file.

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

Modifica: stavo solo leggendo dei dispositivi "lagg" (almeno per unix) che possono essere usati per aggregare più interfacce in una singola interfaccia "lagg" per aumentare le prestazioni o fornire fallback nel caso in cui uno dovesse andare in crash per qualsiasi motivo.

Stavo solo pensando a come questo sarebbe utile in una situazione in cui la larghezza di banda era limitata per indirizzo mac, potrebbe essere in grado di essere utilizzata in tale situazione in modo da poter prendere tutte le molte interfacce macN virtuali e aggregare la larghezza di banda in un singola interfaccia e quindi magari sintonizzarla / toccarla su un host virtuale o qualcosa del genere. Questo è interessante per me, proverò a impostare il limite di larghezza di banda sul mio indirizzo wifi personale per mac per ricreare lo scenario e tentare di tornare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.