Це працює для мене на Linux (Kali). Можливо, вам знадобиться змінити адреси, шлюзи або маски мережі відповідно до вашої особистої ситуації. Вибачте, якщо вам цього не потрібно, щоб наступна людина спіткнувся тут, як це я робив хвилини тому.
Де <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: Я спробував возитися з "bond", ifenslave
але мені потрібно трохи більше вивчити це, я не міг цього зрозуміти. Що я зробив, хоча встановив "EtherSwitch маршрутизатор" в GNS3, а потім призначив "хмару" десяти macN
пристроїв на одному "кінці", а потім на іншу "хмару" для адаптера, що знаходиться тільки в хості vmware, віртуальна скринька, ймовірно, буде працювати так само з іншого "кінця", я збираюся зіткнутися з цим трохи і побачу, чи можу я обмежувати швидкість на macN
пристроях для імітації "агрегації" або чи можу я розподілити навантаження по десяти з'єднанням для "збільшеного" пропускна здатність. Можливо, якщо я встановлю їх на txqueuelen: 10 в Linux. У мене є DragonflyBSD на іншому "кінці" цього, я спробую підключити його до мого реального роутера через GNS3.
Edit2: Ось швидкий сценарій, щоб отримати стільки, скільки потрібно з dhclient. Це потрібно запускати як корінь. Тож створіть файл, а потім chmod 750 <script>
запустіть його, sudo
якщо можете / доведеться. Я використовую це так: ./crazy-mac.sh 20
він бере перший аргумент і створює багато нових інтерфейсів, кожен з яких має власну адресу mac та ip. Немає перевірок на корисність, тому використовуйте їх розумно або додайте самі;)
Примітка. Переконайтеся, що спочатку підключитесь до свого звичайного wlan0, або це ще не працює.
how-to connect-to-a-a-wireless-ap
Крім того, якщо на маршрутизаторі вони є списком контролю доступу mac, вам може знадобитися зробити кілька нюхань, щоб отримати список адрес mac, прийнятих маршрутизатором. Потім вам потрібно буде відредагувати скрипт, щоб розібрати файл із цим списком і використовувати рядок для кожного $i
в послідовності, а не дозволяти цьому створювати випадкові мак-адреси.
Примітка2. Можливо, ви хочете sleep <N>
десь помістити в цикл, це призведе до появи багатьох "пристроїв" послідовно і, ймовірно, підніме червоні прапори, якщо хтось зверне увагу на мережу. Я не думаю, що 20 деяких пристроїв з'являться таким чином за звичайних обставин.
#!/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 та об'єднати пропускну здатність у єдиний інтерфейс, а потім, можливо, налаштування / натискання на віртуальний хост або щось подібне. Це мені цікаво, я спробую встановити обмеження пропускної здатності на моєму особистому wifi за mac-адресою, щоб відтворити сценарій і спробую це повернути.