Esto está funcionando para mí en Linux (Kali). Es posible que deba cambiar las direcciones, las puertas de enlace o las máscaras de red según su situación personal. Lo siento si no necesitas esto, para que la próxima persona tropiece aquí, como lo hice hace unos momentos.
¿Dónde <your-nicN>
está lo que ves de un ifconfig
tal como eth0
owlan0
sudo ip link add link <your-nicN> mac0 type macvlan && sudo ifconfig mac0 up
Eso crea una nueva interfaz "virtual" llamada mac0 y la abre. Agregué el comando up porque primero pensé que esto no funcionaba, pero sudo ip link show [tab][tab]
además de una doble pestaña completada con una lista que incluía mac0, procedí a abrirlo con ifconfig y le asigné una dirección.
Solo recuerde asignarle una dirección IP o decirle que use 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.
si necesita asignar una puerta de enlace predeterminada:
sudo ip route add default via 192.168.1.1
El lugar del que obtuve algo de esto es aquí:
http://www.pocketnix.org/posts/Linux%20Networking:%20MAC%20VLANs%20and%20Virtual%20Ethernets
Edit3: Traté de jugar con el "vínculo" y ifenslave
pero necesito estudiar un poco más sobre eso, realmente no pude resolverlo. Sin embargo, lo que hice fue configurar un "enrutador EtherSwitch" en GNS3 y luego asignar una "nube" a diez de los macN
dispositivos en un "extremo" y luego otra "nube" a un adaptador de host vmware, virtualbox probablemente funcionaría igual , en el otro "extremo", voy a jugar un poco con eso y ver si puedo limitar la velocidad en los macN
dispositivos para simular una "agregación" o si puedo distribuir la carga entre las diez conexiones para "aumentar" banda ancha. Tal vez si los configuro a txqueuelen: 10 en Linux. Tengo DragonflyBSD en el otro "extremo" de esto, intentaré conectarlo a mi enrutador real a través de GNS3.
Edit2: Aquí hay un script rápido para obtener tantos como necesites con dhclient. Necesita ejecutarse como root. Así que crea el archivo, chmod 750 <script>
y ejecútalo sudo
si puedes / tienes que hacerlo. Lo uso así: ./crazy-mac.sh 20
toma el primer argumento y crea tantas interfaces nuevas, cada una con su propia dirección MAC e IP. No hay controles de cordura, así que úsalo sabiamente o agrégalo tú mismo;)
Nota: Asegúrese de conectarse primero con su wlan0 normal o de lo contrario esto no funcionará.
cómo-conectarse-manualmente-a-un-inalámbrico-ap
Además, si hay una lista de control de acceso de mac en el enrutador, es posible que tenga que rastrear un poco para obtener una lista de direcciones de mac aceptadas por el enrutador. Luego, deberá editar el script para analizar un archivo con esa lista y usar una línea para cada uno $i
en la secuencia en lugar de permitir que esto cree direcciones mac aleatorias.
Nota 2: es posible que desee poner algo de a sleep <N>
en el bucle en algún lugar, esto traerá muchos "dispositivos" secuencialmente y probablemente levantará algunas banderas rojas si alguien está prestando atención a la red. No creo que 20 algunos dispositivos aparecerán de esta manera en circunstancias 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
Y para derribarlos: de nuevo solo un guión rápido ...
#!/bin/sh
## crazy-down.sh
for i in $(seq ${1}); do
ifconfig mac${i} down && \
ip link delete mac${i};
done
Y si necesita una lista de direcciones mac, esto funciona con bash cuando un archivo es una lista de una dirección mac por línea en el archivo.
#!/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
Editar: Estaba leyendo sobre dispositivos "lagg" (al menos para Unix) que se pueden usar para agregar múltiples interfaces en una sola interfaz "lagg" para aumentar el rendimiento o proporcionar retrocesos en caso de que uno caiga por alguna razón.
Estaba pensando en cómo esto sería útil en una situación en la que el ancho de banda era limitado por dirección mac, podría usarse en tal situación para que pueda tomar todas las interfaces virtuales de macN y agregar el ancho de banda en un interfaz única y luego quizás sintonizar / tocar eso en un host virtual o algo así. Esto es interesante para mí, intentaré configurar el límite de ancho de banda en mi wifi personal por dirección de Mac para recrear el escenario e intentaré volver.