Tudo o que você precisa fazer é
ip link add link eth0 address 00:11:11:11:11:11 eth0.1 type macvlan
ligue a interface de rede virtual
ifconfig eth0.1 up
e depois, opcionalmente, adquirir um ip via dhcp com
dhclient -v eth0.1
Eu quero fazer alguns endereços MAC virtuais para meu adaptador de rede ou adaptador sem fio, para que eu possa se conectar à rede com mais de um endereço IP de um computador ou laptop.
Como 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).
Tudo o que você precisa fazer é
ip link add link eth0 address 00:11:11:11:11:11 eth0.1 type macvlan
ligue a interface de rede virtual
ifconfig eth0.1 up
e depois, opcionalmente, adquirir um ip via dhcp com
dhclient -v eth0.1
Você não precisa mais de um endereço MAC para ter vários endereços IP em uma única interface de rede. Essa técnica é chamada de ip aliasing .
Cada sistema operacional tem uma sintaxe ligeiramente diferente, mas geralmente, para definir diferentes endereços IP 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
Editar: adicione uma sugestão 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 definido para sinalizar um endereço administrado localmente (LAA) - que diz que esse endereço MAC é válido apenas localmente (por exemplo, dentro da rede corporativa) e pode não ser um mundo exclusivo de largura (para que você possa atribuir seus próprios endereços MAC sem a necessidade de registrá-los oficialmente).
Isso está funcionando para mim no Linux (Kali). Pode ser necessário alterar endereços, gateways ou netmasks 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>
é o que você vê de um ifconfig
, como eth0
ou wlan0
sudo ip link add link <your-nicN> mac0 type macvlan && sudo ifconfig mac0 up
Isso cria uma nova interface "virtual" chamada mac0 e a traz. Eu adicionei o comando up porque primeiro pensei que isso não funcionava, mas sudo ip link show [tab][tab]
mais uma tabulação dupla completa com uma lista que incluía o mac0 Eu então comecei a trazê-lo para ifconfig e atribuir um endereço a ele.
Lembre-se de atribuir um endereço IP ou dizer para usar o 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 lugar que eu tenho um pouco disso está aqui: link
Edit3: Eu tentei brincar com "bond" e ifenslave
, mas eu preciso estudar um pouco mais sobre isso, eu não consegui entender. O que eu fiz apesar de configurar o "EtherSwitch Router" no GNS3 e depois atribuir uma "nuvem" a dez dos dispositivos macN
em um "end" e depois outra "cloud" para um adaptador somente do host vmware, o virtualbox provavelmente funcionam do mesmo jeito, no outro "fim", eu vou mexer com isso um pouco e ver se posso limitar a velocidade nos dispositivos macN
para simular uma "agregação" ou se eu puder distribuir a carga pelo dez conexões para largura de banda "aumentada". Talvez se eu definir todos eles para txqueuelen: 10 no Linux. Eu tenho DragonflyBSD no outro "fim" deste, vou tentar conectá-lo ao meu roteador real via GNS3.
Edit2: Aqui está um script rápido para obter o máximo que você precisa com o dhclient.
Precisa ser executado como root. Então, crie o arquivo e, em seguida, chmod 750 <script>
e execute-o com sudo
se puder / precisar. Eu uso assim: ./crazy-mac.sh 20
pega o primeiro argumento e cria muitas novas interfaces, cada uma com seu próprio endereço mac e ip. Não há verificações de sanidade, portanto use-as com sabedoria ou adicione você mesmo;)
Nota: Certifique-se de conectar primeiro com o seu wlan0 normal ou então isto não funcionará.
como-conectar-manualmente-para- a-wireless-ap
Além disso, se a sua lista de controle de acesso for mac no roteador, talvez seja necessário fazer algumas sniffing 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 $i
na sequência, em vez de permitir que isso crie endereços mac aleatórios.
Nota 2: Você pode querer colocar alguns sleep <N>
no loop em algum lugar, isso trará muitos "dispositivos" sequencialmente e provavelmente aumentará algumas bandeiras 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 está funcionando com o bash quando um arquivo é 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 apenas 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 se diminua por qualquer motivo .
Eu só estava pensando em como isso seria útil em uma situação em que a largura de banda era limitada por endereço MAC, ele poderia ser usado em tal situação para que você pudesse pegar todas as interfaces MACN virtuais e agregar as largura de banda em uma única interface e, em seguida, talvez tun / toque em um host virtual ou algo assim. Isso é interessante para mim, vou tentar configurar o limite de largura de banda no meu wifi pessoal por endereço MAC para recriar o cenário e tentar isso eu volto.
Tags networking ip mac-address