Buat beberapa alamat MAC virtual

10

Saya ingin membuat beberapa alamat MAC virtual untuk adaptor jaringan atau adaptor nirkabel saya, jadi saya dapat terhubung ke jaringan dengan lebih dari satu alamat IP dari satu komputer atau laptop.

Bagaimana saya bisa melakukannya? (Saya tahu itu mungkin, karena salah satu teman saya melakukannya di universitas dan memiliki lebih dari satu - kadang-kadang hingga 255 - alamat IP di jaringan).

Moein Hosseini
sumber
Anda harus menentukan sistem operasi yang Anda gunakan dan, pada akhirnya, distribusi mana.
andcoz
@ Moein7tl ketahuilah bahwa jika sysadmin mengurangi bandwidth untuk setiap pengguna, itu mungkin untuk menghindari orang mengunduh secara ilegal dan lebih mengutamakan lalu lintas yang lebih penting seperti data pencarian, atau perhitungan cloud ... Cobalah untuk tidak mengeksploitasi batas sistem hanya untuk dapatkan bandwiidth yang layak.
Kiwy

Jawaban:

18

Yang perlu Anda lakukan adalah

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

kemudian nyalakan antarmuka jaringan virtual

ifconfig eth0.1 up

dan kemudian secara opsional memperoleh ip melalui dhcp dengan

dhclient -v eth0.1
myopenid
sumber
13

Anda tidak perlu lebih dari satu alamat MAC untuk memiliki beberapa alamat ip pada satu antarmuka jaringan. Teknik ini disebut ip aliasing .

Setiap sistem operasi memiliki sintaks yang sedikit berbeda tetapi biasanya, untuk mengatur alamat IP yang berbeda pada antarmuka yang sama, Anda hanya perlu melakukan sesuatu seperti:

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

Contoh di atas berfungsi di Linux. Pada BSD, Anda membutuhkan sesuatu seperti:

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
andcoz
sumber
Di jaringan nirkabel universitas kami, sistem memberikan satu alamat ip ke setiap alamat mac dari jam 8 pagi sampai jam 9 malam, dan sistem membatasi setiap ip hingga maks kecepatan 32KB, jika saya dapat membuat alamat mac virtual, sehingga tidak dapat mendeteksi laptop saya sebagai satu dan itu akan memberikan lebih dari satu alamat ip kepada saya.
Moein Hosseini
Silakan @ Moein7tl, edit pertanyaan Anda dan tentukan bahwa Anda sedang mencari metode untuk ditugaskan lebih dari satu alamat ip oleh server dhcp universitas Anda .
andcoz
4

Edit: Tambahkan petunjuk untuk mengatur perangkat virtual:

Pertama-tama mengatur perangkat tambahan misalnya:

ifconfig eth0:1 up

Anda juga dapat menambahkan IP ke dalamnya. misalnya:

ifconfig eth0:1 10.0.0.20 broadcast 10.255.255.255 netmask 255.255.255.255

Jika Anda benar-benar ingin, Anda juga dapat mengubah alamat MAC:

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

Perhatikan bahwa bit kedua dari byte pertama harus diatur untuk memberi sinyal alamat yang dikelola secara lokal (LAA) - yang mengatakan bahwa alamat MAC ini hanya berlaku secara lokal (misalnya dalam jaringan perusahaan Anda) dan mungkin tidak unik di seluruh dunia (jadi Anda dapat menetapkan alamat MAC Anda sendiri tanpa harus mendaftarkannya secara resmi).

Nils
sumber
tetapi ketika saya terhubung ke jaringan nirkabel rumah saya dengannya, itu hanya dapat mengubah alamat mac, dan modem saya tidak memberi saya 2 atau lebih alamat ip. Saya hanya melihat satu alamat mac di halaman modem saya.
Moein Hosseini
Anda perlu mengatur perangkat virtual tambahan terlebih dahulu, tentu saja. Itu sebabnya saya katakan "juga". Lihatlah jawaban untuk pertanyaan Anda yang menguraikan ip-aliasing. Saya lebih suka menggunakan netmask dari 255.255.255.255 untuk ini. Tapi Anda tidak meminta IP virtual, dan kadang-kadang cukup untuk memiliki perangkat dan berjalan dengan MAC.
Nils
1
Sejauh yang saya tahu, Anda tidak dapat memiliki alamat MAC yang berbeda untuk eth0dan ´eth0: 1´. Dengan asumsi Anda membuat eth0:1seperti yang dijelaskan. Yang pasti, saya mengujinya di sistem saya. Perintah terakhir ( ip link ...) telah mengubah alamat MAC dari kedua "antarmuka". Ini berarti ia eth0sendiri sudah mendapatkan alamat MAC yang baru. Alasannya, itu ifconfig eth0:1 uptidak akan membuat tautan baru. Itu hanya akan menambahkan alamat IP ke yang sudah ada. Membuat macvlantautan sepertinya merupakan jalan yang harus ditempuh.
JojOatXGME
3

Ini bekerja untuk saya di Linux (Kali). Anda mungkin perlu mengubah alamat, gateway, atau netmask berdasarkan situasi pribadi Anda. Maaf jika Anda tidak membutuhkan ini, untuk orang berikutnya tersandung di sini, seperti yang saya lakukan beberapa saat yang lalu.

Di mana <your-nicN>apa yang Anda lihat dari ifconfigseperti eth0atauwlan0

sudo ip link add link <your-nicN> mac0 type macvlan && sudo ifconfig mac0 up

Itu menciptakan antarmuka "virtual" baru yang disebut mac0 dan membawanya. Saya menambahkan perintah ke atas karena yang pertama saya pikir ini tidak berhasil, tetapi sudo ip link show [tab][tab]ditambah tab ganda yang dilengkapi dengan daftar yang mencakup mac0 saya kemudian melanjutkan untuk memunculkannya dengan ifconfig dan memberikannya alamat.

Ingatlah untuk memberikannya alamat ip atau katakan untuk menggunakan dhcp

ifconfig mac0 inet 192.168.1.107 netmask 255.255.255.0 #static/manual config

atau

dhclient mac0 # For a dhcp-client, to get ip from router.

jika Anda perlu menetapkan gateway default:

sudo ip route add default via 192.168.1.1 

Tempat saya mendapatkan beberapa dari ini ada di sini: http://www.pocketnix.org/posts/Linux%20Networking:%20MAC%20VLANs%20and%20Virtual%20Ethernets

Sunting3: Saya mencoba mengacaukan "ikatan" dan ifenslavetetapi saya perlu sedikit lebih banyak belajar tentang itu, saya tidak bisa mengetahuinya. Apa yang saya lakukan meskipun apa yang mengatur "EtherSwitch Router" di GNS3 dan kemudian menetapkan "cloud" sepuluh macNperangkat pada satu "end" dan kemudian "cloud" ke adaptor hanya host vmware, virtualbox mungkin akan bekerja sama , di "ujung" yang lain, saya akan sedikit dipusingkan dengan itu dan melihat apakah saya dapat membatasi kecepatan pada macNperangkat untuk mensimulasikan "agregasi" atau jika saya dapat mendistribusikan beban melintasi sepuluh koneksi untuk "meningkat" bandwidth. Mungkin jika saya mengatur semuanya ke txqueuelen: 10 di Linux. Saya memiliki DragonflyBSD di "ujung" ini, saya akan mencoba untuk menghubungkannya ke router saya yang sebenarnya melalui GNS3.

Sunting2: Ini adalah skrip cepat untuk mendapatkan sebanyak yang Anda butuhkan dengan dhclient. Itu perlu dijalankan sebagai root. Jadi buat file, lalu chmod 750 <script>jalankan dengan sudojika Anda bisa / harus. Saya menggunakannya seperti ini: ./crazy-mac.sh 20dibutuhkan argumen pertama dan menciptakan banyak antarmuka baru masing-masing dengan mac dan alamat ip sendiri. Tidak ada pemeriksaan kewarasan jadi gunakan dengan bijak, atau tambahkan sendiri;)

Catatan: Pastikan untuk terhubung dengan wlan0 normal Anda terlebih dahulu atau ini tidak akan berfungsi. Bagaimana-untuk-menghubungkan-secara manual-ke-nirkabel-ap Juga jika mereka adalah daftar kontrol akses mac pada router Anda mungkin perlu melakukan beberapa sniffing untuk mendapatkan daftar alamat mac yang diterima oleh router. Anda kemudian perlu mengedit skrip untuk mem-parsing file dengan daftar itu dan menggunakan baris untuk masing-masing $idalam urutan alih-alih mengizinkan ini untuk membuat alamat mac acak.

Note2: Anda mungkin ingin meletakkan beberapa sleep <N>di loop di suatu tempat, ini akan memunculkan banyak "perangkat" secara berurutan dan mungkin akan menaikkan beberapa tanda merah jika ada yang memperhatikan jaringan. Saya tidak berpikir beberapa perangkat akan muncul dengan cara ini dalam keadaan normal.

#!/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

Dan untuk menjatuhkan mereka: Sekali lagi hanya sebuah skrip cepat ...

#!/bin/sh
## crazy-down.sh
for i in $(seq ${1}); do
    ifconfig mac${i} down && \
    ip link delete mac${i};
done

Dan jika Anda memerlukan daftar alamat mac ini berfungsi dengan bash ketika file adalah daftar satu alamat mac per baris dalam file.

#!/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

Sunting: Saya baru saja membaca tentang perangkat "lagg" (setidaknya untuk unix) yang dapat digunakan untuk menggabungkan beberapa antarmuka menjadi antarmuka "lagg" tunggal untuk meningkatkan kinerja atau untuk memberikan back back jika seseorang turun karena alasan apa pun.

Saya hanya berpikir tentang bagaimana ini akan berguna dalam situasi di mana bandwidth terbatas per alamat mac, mungkin dapat digunakan dalam situasi seperti itu sehingga Anda dapat mengambil semua banyak antarmuka macN virtual dan menggabungkan bandwidth ke dalam antarmuka tunggal dan kemudian mungkin tekan / ketuk itu ke host virtual atau sesuatu. Ini menarik bagi saya, saya akan mencoba mengatur batas bandwidth pada wifi pribadi saya per alamat mac untuk membuat ulang skenario dan mencoba ini saya akan kembali.

Overloaded_Operator
sumber