Faça algum endereço MAC virtual

10

Quero criar alguns endereços MAC virtuais para meu adaptador de rede ou adaptador sem fio, para que eu possa conectar-me à rede com mais de um endereço IP de um computador ou laptop.

Como eu posso fazer isso? (Eu sei que é possível, porque um dos meus amigos fez isso na universidade e tem mais de um - às vezes até 255 - endereços IP em uma rede).

Moein Hosseini
fonte
você precisa especificar qual sistema operacional você está usando e, eventualmente, qual distribuição.
andcoz
@ Moein7tl esteja ciente de que, se o sysadmin reduzir a largura de banda para cada usuário, provavelmente evitará o download ilegal de pessoas e dará mais prioridade ao tráfego mais importante, como dados de pesquisa ou computação em nuvem ... Tente não explorar o limite do sistema apenas para obtenha uma largura de banda decente.
Kiwy

Respostas:

18

Tudo que você precisa fazer é

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

depois ligue a interface de rede virtual

ifconfig eth0.1 up

e, opcionalmente, adquira um ip via dhcp com

dhclient -v eth0.1
myopenid
fonte
13

Você não precisa de mais de um endereço MAC para ter vários endereços IP em uma única interface de rede. Essa técnica é chamada de aliasing de ip .

Cada sistema operacional possui uma sintaxe ligeiramente diferente, mas geralmente, para definir endereços IP diferentes na mesma interface, você precisa apenas fazer 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

O exemplo acima funciona no Linux. No BSD, você precisa de 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
fonte
Em nossa rede sem fio da universidade, o sistema fornece um endereço IP para cada endereço Mac, das 8:00 às 21:00, e o sistema limita cada IP a no máximo 32KB de velocidade, se eu puder criar um endereço Mac virtual, para que ele não possa detectar. meu laptop como um e ele dará mais de um endereço IP para mim.
Moein Hosseini
Por favor, no Moein7tl, edite sua pergunta e especifique que você está pesquisando um método para obter mais de um endereço IP atribuído pelo servidor dhcp da universidade .
andcoz
4

Editar: adicione uma dica para configurar o dispositivo virtual:

Primeiro, configure um dispositivo adicional, por exemplo:

ifconfig eth0:1 up

Você também pode adicionar um IP a ele. por exemplo:

ifconfig eth0:1 10.0.0.20 broadcast 10.255.255.255 netmask 255.255.255.255

Se você realmente quiser, também pode alterar o endereço MAC:

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

Observe que o segundo bit do primeiro byte deve ser configurado para sinalizar um endereço administrado localmente (LAA) - o que diz que esse endereço MAC é válido apenas localmente (por exemplo, na rede da sua empresa) e pode não ser único em todo o mundo (portanto você pode atribuir seus próprios endereços MAC sem a necessidade de registrá-los oficialmente).

Nils
fonte
mas quando eu me conecto à minha rede sem fio doméstica com ela, ele só pode alterar o endereço MAC e o modem não fornece 2 ou mais endereços IP. Apenas vejo um endereço Mac nas páginas do modem.
Moein Hosseini
Você precisa configurar um dispositivo virtual adicional primeiro, é claro. Por isso eu disse "também". Veja a resposta à sua pergunta que descreve o alias de ip. Eu prefiro usar uma máscara de rede 255.255.255.255 para estes. Mas você não solicitou IPs virtuais e, às vezes, é suficiente ter um dispositivo em funcionamento com um MAC.
Nils
11
Tanto quanto eu sei, você não pode ter endereços MAC diferentes para eth0e ´eth0: 1 '. Supondo que você crie eth0:1conforme descrito. Para ter certeza, eu testei no meu sistema. O último comando ( ip link ...) mudou o endereço MAC das duas "interfaces". Isso significa que eth0ele também possui o novo endereço MAC. O motivo é que ifconfig eth0:1 upisso não criará um novo link. Ele adicionará apenas um endereço IP a um já existente. Criar um macvlanlink parece ser o caminho a percorrer.
JojOatXGME
3

Isso está funcionando para mim no Linux (Kali). Pode ser necessário alterar endereços, gateways ou máscaras de rede com base na sua situação pessoal. Desculpe se você não precisa disso, para a próxima pessoa tropeçar aqui, como eu fiz momentos atrás.

Onde <your-nicN>está o que você vê de alguém ifconfigcomo eth0ouwlan0

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

Isso cria uma nova interface "virtual" chamada mac0 e a abre. Eu adicionei o comando up porque, primeiro, achei que isso não funcionava, mas, sudo ip link show [tab][tab]além de uma guia dupla concluída com uma lista que incluía mac0, passei a apresentar o ifconfig e atribuir um endereço a ele.

Lembre-se de atribuir um endereço IP ou dizer para usar 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.

se você precisar atribuir um gateway padrão:

sudo ip route add default via 192.168.1.1 

O local onde obtive parte disso é aqui: http://www.pocketnix.org/posts/Linux%20Networking:%20MAC%20VLANs%20and%20Virtual%20Ethernets

Edit3: Eu tentei mexer com "bond" e, ifenslavemas eu preciso estudar um pouco mais sobre isso, eu realmente não conseguia descobrir. O que eu fiz apesar de configurar um "EtherSwitch Router" no GNS3 e depois atribuir uma "nuvem" dez dos macNdispositivos em uma "extremidade" e depois outra "nuvem" a um adaptador somente host de vmware, o virtualbox provavelmente funcionaria da mesma maneira , por outro lado, vou mexer um pouco com isso e ver se consigo limitar a velocidade nos macNdispositivos para simular uma "agregação" ou se posso distribuir a carga entre as dez conexões para "aumentado" largura de banda. Talvez se eu definir todos eles para txqueuelen: 10 no Linux. Eu tenho o DragonflyBSD do outro lado, tentarei conectá-lo ao meu roteador real via GNS3.

Edit2: Aqui está um script rápido para obter o número necessário com o dhclient. Ele precisa ser executado como root. Portanto, crie o arquivo chmod 750 <script>e execute-o sudose for necessário. Eu uso assim: ./crazy-mac.sh 20ele pega o primeiro argumento e cria muitas novas interfaces, cada uma com seu próprio endereço IP e Mac. Não há verificações de sanidade, então use-a com sabedoria ou adicione você mesmo;)

Nota: Certifique-se de conectar-se à sua wlan0 normal primeiro ou isso não funcionará. como conectar-se-manualmente-a-um-wireless-ap Além disso, se a lista de controle de acesso for mac no roteador, talvez seja necessário farejar alguns detalhes para obter uma lista de endereços mac aceitos pelo roteador. Você precisará editar o script para analisar um arquivo com essa lista e usar uma linha para cada uma $ina sequência, em vez de permitir que isso crie endereços MAC aleatórios.

Nota2: convém colocar alguns a sleep <N>no loop em algum lugar, isso exibirá muitos "dispositivos" sequencialmente e provavelmente aumentará algumas sinalizações vermelhas se alguém estiver prestando atenção na rede. Eu não acho que alguns dispositivos aparecerão dessa maneira em circunstâncias normais.

#!/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 para derrubá-los: Novamente, apenas um script rápido ...

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

E se você precisar de uma lista de endereços mac, isso funcionará com o bash quando um arquivo for uma lista de um endereço mac por linha no arquivo.

#!/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: Eu estava lendo sobre dispositivos "lagg" (pelo menos para unix) que podem ser usados ​​para agregar várias interfaces em uma única interface "lagg" para aumentar o desempenho ou fornecer fallbacks, caso seja necessário, por qualquer motivo.

Eu estava pensando sobre como isso seria útil em uma situação em que a largura de banda era limitada por endereço mac; ele pode ser usado em tal situação para que você possa pegar todas as muitas interfaces macN virtuais e agregar a largura de banda em um endereço MAC. interface única e talvez sintonize / toque em um host virtual ou algo assim. Isso é interessante para mim, vou tentar configurar o limite de largura de banda no meu endereço wifi pessoal por mac para recriar o cenário e tentar isso, voltarei.

Overloaded_Operator
fonte