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 ifconfig
como eth0
ouwlan0
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, ifenslave
mas 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 macN
dispositivos 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 macN
dispositivos 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 sudo
se for necessário. Eu uso assim: ./crazy-mac.sh 20
ele 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 $i
na 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.