Hacer alguna dirección MAC virtual

10

Quiero crear algunas direcciones MAC virtuales para mi adaptador de red o adaptador inalámbrico, para poder conectarme a la red con más de una dirección IP desde una computadora o computadora portátil.

¿Cómo puedo hacerlo? (Sé que es posible, porque uno de mis amigos lo hizo en la universidad y tiene más de una, a veces hasta 255, direcciones IP en una red).

Moein Hosseini
fuente
debe especificar qué sistema operativo está utilizando y, finalmente, qué distribución.
andcoz
@ Moein7tl tenga en cuenta que si los administradores de sistemas reducen el ancho de banda de cada usuario, probablemente sea para evitar que las personas descarguen ilegalmente y dar más prioridad al tráfico más importante como los datos de búsqueda o el cómputo en la nube ... Intente no explotar el límite del sistema solo para obtener un ancho de banda decente.
Kiwy

Respuestas:

18

Todo lo que necesitas hacer es

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

luego encienda la interfaz de red virtual

ifconfig eth0.1 up

y luego opcionalmente adquirir una ip a través de dhcp con

dhclient -v eth0.1
miopenida
fuente
13

No necesita más de una dirección MAC para tener varias direcciones IP en una sola interfaz de red. Esta técnica se llama alias de ip .

Cada sistema operativo tiene una sintaxis ligeramente diferente pero, por lo general, para configurar diferentes direcciones IP en la misma interfaz, solo necesita hacer algo como:

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

El ejemplo anterior funciona en Linux. En BSD, necesitas algo como:

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
fuente
En la red inalámbrica de nuestra universidad, el sistema proporciona una dirección IP a cada dirección mac desde las 8 a.m. hasta las 9 p.m., y el sistema limita cada ip a un máximo de 32 KB de velocidad, si puedo hacer una dirección mac virtual, por lo que no puede detectar mi computadora portátil como una y me dará más de una dirección IP.
Moein Hosseini
@ Moein7tl, edite su pregunta y especifique que está buscando un método para que su servidor dhcp de la universidad le asigne más de una dirección IP .
andcoz
4

Editar: agregue una pista para configurar el dispositivo virtual:

Primero configure un dispositivo adicional, por ejemplo:

ifconfig eth0:1 up

También puede agregarle una IP. p.ej:

ifconfig eth0:1 10.0.0.20 broadcast 10.255.255.255 netmask 255.255.255.255

Si realmente quieres, también puedes alterar la dirección MAC:

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

Tenga en cuenta que el segundo bit del primer byte debe configurarse para señalar una dirección administrada localmente (LAA), que dice que esta dirección MAC solo es válida localmente (por ejemplo, dentro de la red de su empresa) y podría no ser única en todo el mundo (por lo tanto puede asignar sus propias direcciones MAC sin la necesidad de registrarlas oficialmente).

Nils
fuente
pero cuando me conecto a la red inalámbrica de mi hogar con ella, solo puede cambiar la dirección de Mac, y mi módem no me da 2 o más direcciones IP. Solo veo una dirección de Mac en mis páginas de módem.
Moein Hosseini
Primero debe configurar un dispositivo virtual adicional, por supuesto. Por eso dije "también". Mire la respuesta a su pregunta que describe el alias de ip. Prefiero usar una máscara de red de 255.255.255.255 para estos. Pero no solicitó direcciones IP virtuales, y a veces es suficiente tener un dispositivo en funcionamiento con un MAC.
Nils
1
Que yo sepa, no puede tener diferentes direcciones MAC para eth0y 'eth0: 1'. Asumiendo que crea eth0:1como se describe. Para estar seguro, lo probé en mi sistema. El último comando ( ip link ...) ha cambiado la dirección MAC de ambas "interfaces". Esto significa que eth0también tiene la nueva dirección MAC. La razón es que ifconfig eth0:1 upeso no creará un nuevo enlace. Solo agregará una dirección IP a una existente. Crear un macvlanenlace parece ser el camino a seguir.
JojOatXGME
3

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 ifconfigtal como eth0owlan0

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 ifenslavepero 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 macNdispositivos 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 macNdispositivos 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 sudosi puedes / tienes que hacerlo. Lo uso así: ./crazy-mac.sh 20toma 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 $ien 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.

Overloaded_Operator
fuente