Зробіть якусь віртуальну MAC-адресу


11

Я хочу зробити кілька віртуальних MAC-адрес для мого мережного адаптера або бездротового адаптера, щоб я міг підключитися до мережі з більш ніж однією IP-адресою з одного комп’ютера або ноутбука.

Як я можу це зробити? (Я знаю, що це можливо, тому що один з моїх друзів зробив це в університеті і має більше - іноді до 255 - IP-адреси в мережі).


ви повинні вказати, яку операційну систему ви використовуєте, і, зрештою, яку дистрибутиву.
andcoz

@ Moein7tl майте на увазі, що якщо sysadmin зменшить пропускну здатність для кожного користувача, це, ймовірно, уникати людей, які завантажують незаконно, і надавати більше пріоритету важливішому трафіку, наприклад, пошукові дані або хмарні обчислення ... Намагайтеся не використовувати обмеження системи просто для отримати гідну пропускну здатність.
Ківі

Відповіді:


19

Все, що вам потрібно зробити - це

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

потім увімкніть інтерфейс віртуальної мережі

ifconfig eth0.1 up

а потім необов'язково придбати ip через dhcp з

dhclient -v eth0.1

13

Вам не потрібно більше однієї MAC-адреси, щоб мати кілька ip-адрес у єдиному мережевому інтерфейсі. Ця методика називається ip aliasing .

Кожна операційна система має дещо інший синтаксис, але зазвичай для встановлення різних IP-адрес на одному інтерфейсі потрібно лише зробити щось на зразок:

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

Наведений вище приклад працює в Linux. На BSD вам потрібно щось на зразок:

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

У нашій бездротовій мережі університету система надає одну ip-адресу на кожну mac-адресу з 8:00 до 21:00, і система обмежує кожен ip до максимальної швидкості 32 КБ, якщо я можу зробити віртуальну мак-адресу, тому вона не може виявити мій ноутбук як один, і він дасть мені більше однієї ip адреси.
Moein Hosseini

Будь ласка, @ Moein7tl, відредагуйте своє запитання та вкажіть, що ви шукаєте метод, щоб призначити більше однієї ip-адреси сервером вашого dhcp університету .
andcoz

4

Редагувати: Додати підказку для налаштування віртуального пристрою:

Спочатку встановіть додатковий пристрій, наприклад:

ifconfig eth0:1 up

Ви можете додатково додати IP-адресу до нього. наприклад:

ifconfig eth0:1 10.0.0.20 broadcast 10.255.255.255 netmask 255.255.255.255

Якщо ви дійсно хочете, ви також можете змінити MAC-адресу:

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

Зауважте, що другий біт першого байта повинен бути встановлений для сигналізації локально адресованої адреси (LAA) - що говорить про те, що ця MAC-адреса є лише локально дійсною (наприклад, у вашій корпоративній мережі) і не може бути унікальною у всьому світі (так ви можете призначити власні MAC-адреси без необхідності офіційно їх реєструвати).


але коли я підключаюсь до своєї домашньої бездротової мережі, вона може змінити лише mac-адресу, і мій модем не дає мені 2 або більше ip-адрес. Я бачу лише одну mac-адресу на своїх сторінках модему.
Moein Hosseini

Спочатку, звичайно, потрібно встановити додатковий віртуальний пристрій. Ось чому я сказав "теж". Подивіться на відповідь на ваше запитання, яка окреслює ip-aliasing. Я вважаю за краще використовувати для них мережну маску 255.255.255.255. Але ви не просили віртуальних IP-адрес, а іноді досить встановити пристрій і працювати з MAC.
Нілс

1
Наскільки я знаю, ви не можете мати різні MAC-адреси для eth0та ´eth0: 1´. Припустимо, що ви створюєте, eth0:1як описано. Напевно, я перевірив це на своїй системі. Остання команда ( ip link ...) змінила MAC-адресу обох "інтерфейсів". Це означає eth0, що він отримав і нову MAC-адресу. Причина в тому, що ifconfig eth0:1 upнове посилання не створить. Він додасть лише IP-адресу до існуючої. Створюється macvlanпосилання, здається, це шлях.
JojOatXGME

3

Це працює для мене на 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-адресою, щоб відтворити сценарій і спробую це повернути.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.