Это работает для меня на Linux (Кали). Вам может потребоваться изменить адреса, шлюзы или сетевые маски в зависимости от вашей личной ситуации. Извините, если вам это не нужно, потому что следующий человек споткнется здесь, как я сделал несколько минут назад.
Где <your-nicN>
то, что вы видите, ifconfig
например, eth0
илиwlan0
sudo ip link add link <your-nicN> mac0 type macvlan && sudo ifconfig mac0 up
Это создает новый «виртуальный» интерфейс с именем mac0 и вызывает его. Я добавил команду up, потому что сначала мне показалось, что это не сработало, но sudo ip link show [tab][tab]
плюс двойная вкладка со списком, включающим mac0, затем я перешел к ifconfig и назначил ему адрес.
Просто не забудьте назначить ему IP-адрес или сказать ему использовать DHCP
ifconfig mac0 inet 192.168.1.107 netmask 255.255.255.0 #static/manual config
или
dhclient mac0 # For a dhcp-client, to get ip from router.
если вам нужно назначить шлюз по умолчанию:
sudo ip route add default via 192.168.1.1
Место, откуда я получил это, находится здесь:
http://www.pocketnix.org/posts/Linux%20Networking:%20MAC%20VLANs%20and%20Virtual%20Ethernets
Edit3: я пытался возиться с "связью", ifenslave
но мне нужно немного больше изучить это, я не мог понять это. Что я сделал, хотя установил «EtherSwitch Router» в GNS3, а затем назначил «облачное» десять macN
устройств на одном «конце», а затем другое «облако» адаптеру только для хоста vmware, virtualbox, вероятно, будет работать так же с другой стороны, я собираюсь немного поиграться с этим и посмотреть, смогу ли я ограничить скорость на macN
устройствах для имитации «агрегации» или могу ли я распределить нагрузку по десяти соединениям для «увеличенного» пропускная способность. Может быть, если я установлю их все на txqueuelen: 10 в Linux. У меня есть DragonflyBSD на другом «конце» этого, я попытаюсь подключить его к моему реальному маршрутизатору через GNS3.
Edit2: вот быстрый скрипт, чтобы получить столько, сколько вам нужно с dhclient. Это должно быть запущено от имени пользователя root. Итак, создайте файл, затем chmod 750 <script>
запустите его, sudo
если можете / должны. Я использую его следующим образом: ./crazy-mac.sh 20
он принимает первый аргумент и создает столько новых интерфейсов, каждый из которых имеет свой собственный mac и ip-адрес. Нет никаких проверок здравомыслия, так что используйте это с умом, или добавьте немного самостоятельно;)
Примечание. Убедитесь, что вы сначала подключились к обычному wlan0, иначе это не сработает.
how-to-connect-manual-to-a-wireless-ap
Также, если это список контроля доступа Mac на маршрутизаторе, вам, возможно, понадобится сделать некоторый анализ, чтобы получить список MAC-адресов, принятых маршрутизатором. Затем вам нужно будет отредактировать скрипт, чтобы проанализировать файл с этим списком и использовать строку для каждого $i
в последовательности, вместо того, чтобы позволять создавать случайные mac-адреса.
Примечание 2. Возможно, вы захотите поместить sleep <N>
где-нибудь цикл в цикл, это вызовет много «устройств» последовательно и, вероятно, поднимет некоторые красные флажки, если кто-то обратит внимание на сеть. Я не думаю, что некоторые устройства будут появляться таким образом при нормальных обстоятельствах.
#!/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
И чтобы сбить их с ног: опять быстрый сценарий ...
#!/bin/sh
## crazy-down.sh
for i in $(seq ${1}); do
ifconfig mac${i} down && \
ip link delete mac${i};
done
И если вам нужен список MAC-адресов, это работает с bash, когда файл представляет собой список из одного MAC-адреса на строку в файле.
#!/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
Редактировать: я только что читал об устройствах с задержкой (по крайней мере, для Unix), которые можно использовать для объединения нескольких интерфейсов в единый интерфейс с задержкой, чтобы повысить производительность или обеспечить запасные варианты на случай, если по какой-либо причине отключиться.
Я просто думал о том, как это было бы полезно в ситуации, когда пропускная способность была ограничена для каждого MAC-адреса, и его можно было бы использовать в такой ситуации, чтобы вы могли использовать все многочисленные виртуальные интерфейсы MacN и объединить пропускную способность в один интерфейс, а затем, возможно, настроить / подключить это к виртуальному хосту или что-то. Это интересно для меня, я попытаюсь установить ограничение пропускной способности для моего личного Wi-Fi на Mac-адрес, чтобы воссоздать сценарий и попытаться это, я вернусь.