สร้างที่อยู่ MAC เสมือน


10

ฉันต้องการสร้างที่อยู่ MAC เสมือนสำหรับอะแดปเตอร์เครือข่ายหรืออะแดปเตอร์ไร้สายของฉันดังนั้นฉันสามารถเชื่อมต่อกับเครือข่ายที่มีที่อยู่ IP มากกว่าหนึ่งเครื่องจากคอมพิวเตอร์หรือแล็ปท็อปเครื่องหนึ่ง

ฉันจะทำมันได้อย่างไร (ฉันรู้ว่ามันเป็นไปได้เพราะเพื่อนของฉันคนหนึ่งทำในมหาวิทยาลัยและมีมากกว่าหนึ่ง - บางครั้งถึง 255 - ที่อยู่ IP บนเครือข่าย)


คุณต้องระบุว่าคุณกำลังใช้ระบบปฏิบัติการใดและในที่สุดการกระจายใด
andcoz

@ Moein7tl โปรดทราบว่าหาก sysadmin ลดแบนด์วิดท์สำหรับผู้ใช้แต่ละคนก็อาจจะหลีกเลี่ยงคนที่ดาวน์โหลดผิดกฎหมายและให้ความสำคัญกับการรับส่งข้อมูลที่สำคัญกว่าเช่นข้อมูลการค้นหาหรือการคำนวณบนคลาวด์ ... พยายามอย่าใช้ขีด จำกัด ของระบบ รับ bandwiidth ที่ดี
กีวี

คำตอบ:


18

สิ่งที่คุณต้องทำคือ

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 ในเครือข่ายอินเทอร์เฟซเดียว เทคนิคนี้เรียกว่าaliasing IP

ระบบปฏิบัติการแต่ละระบบมีไวยากรณ์แตกต่างกันเล็กน้อย แต่โดยปกติแล้วหากต้องการตั้งค่าที่อยู่ 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 ให้สูงสุด 32KB หากฉันสามารถสร้างที่อยู่ mac เสมือนได้ดังนั้นจึงไม่สามารถตรวจจับได้ แล็ปท็อปของฉันเป็นหนึ่งเดียวและจะให้ที่อยู่ 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 ได้เท่านั้นและโมเด็มของฉันไม่ให้ที่อยู่ IP 2 อันขึ้นไปฉันเห็นที่อยู่ mac เพียงอันเดียวในหน้าโมเด็มของฉัน
Moein Hosseini

คุณต้องตั้งค่าอุปกรณ์เสมือนเพิ่มเติมก่อน นั่นคือเหตุผลที่ฉันพูดว่า "ด้วย" ดูคำตอบสำหรับคำถามของคุณที่แสดงถึงการใช้ชื่อแทน IP ฉันชอบที่จะใช้ netmask 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

แก้ไข 3: ฉันพยายามยุ่งกับ "ความผูกพัน" และifenslaveแต่ฉันต้องทำการศึกษาเพิ่มเติมอีกเล็กน้อยฉันไม่สามารถเข้าใจได้ สิ่งที่ฉันทำแม้ว่าสิ่งที่ตั้งค่า "EtherSwitch Router" ใน GNS3 แล้วกำหนด "cloud" สิบของmacNอุปกรณ์บนปลาย "หนึ่ง" จากนั้นอีกหนึ่ง "cloud" ไปยังอะแดปเตอร์โฮสต์ vmware เท่านั้น virtualbox อาจทำงานเหมือนเดิม ที่ปลายอีกด้านหนึ่งฉันจะไปยุ่งกับสิ่งนั้นและดูว่าฉันสามารถ จำกัด ความเร็วบนmacNอุปกรณ์เพื่อจำลอง "การรวมตัว" หรือถ้าฉันสามารถกระจายโหลดผ่านการเชื่อมต่อทั้งสิบสำหรับ "เพิ่ม" แบนด์วิดธ์ บางทีถ้าฉันตั้งค่าทั้งหมดเป็น txqueuelen: 10 บน Linux ฉันมี DragonflyBSD ที่ส่วน "จบ" อื่น ๆ ฉันจะพยายามเชื่อมต่อกับเราเตอร์จริงของฉันผ่าน GNS3

แก้ไข 2: นี่คือสคริปต์ด่วนที่จะเพิ่มจำนวนมากตามที่คุณต้องการด้วย dhclient มันจะต้องวิ่งเป็นราก ดังนั้นสร้างไฟล์แล้วchmod 750 <script>เรียกใช้ด้วยsudoถ้าคุณสามารถ / ต้อง ฉันใช้มันเช่นนี้./crazy-mac.sh 20มันใช้อาร์กิวเมนต์แรกและสร้างอินเทอร์เฟซใหม่จำนวนมากแต่ละอันด้วย mac และที่อยู่ IP ของตัวเอง ไม่มีการตรวจสอบสติเพื่อใช้อย่างชาญฉลาดหรือเพิ่มบางตัวเอง)

หมายเหตุ: ตรวจสอบให้แน่ใจว่าได้เชื่อมต่อกับ wlan0 ปกติของคุณก่อนมิฉะนั้นจะไม่สามารถใช้งานได้ วิธีการเชื่อมต่อด้วยตนเองไปยัง a-wireless-ap นอกจากนี้หากเป็นรายการควบคุมการเข้าถึง mac บนเราเตอร์คุณอาจต้องทำการดมกลิ่นเพื่อรับรายการที่อยู่ mac ที่เราเตอร์ยอมรับ จากนั้นคุณจะต้องแก้ไขสคริปต์เพื่อแยกไฟล์ด้วยรายการนั้นและใช้บรรทัดสำหรับแต่ละไฟล์$iในลำดับแทนที่จะปล่อยให้สิ่งนี้สร้างที่อยู่ mac แบบสุ่ม

Note2: คุณอาจต้องการใส่ a 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

แก้ไข: ฉันเพิ่งอ่านเกี่ยวกับอุปกรณ์ "lagg" (อย่างน้อยสำหรับยูนิกซ์) ที่สามารถใช้เพื่อรวมหลายอินเตอร์เฟสเข้าในอินเตอร์เฟสเดียว "lagg" เพื่อเพิ่มประสิทธิภาพหรือเพื่อให้ถอยหลังด้วยเหตุผลใดก็ตาม

ฉันแค่คิดว่ามันจะมีประโยชน์ในสถานการณ์ที่แบนด์วิดท์ถูก จำกัด ต่อที่อยู่ mac มันอาจจะสามารถใช้ในสถานการณ์ดังกล่าวเพื่อให้คุณสามารถใช้อินเทอร์เฟซ macN เสมือนจำนวนมากทั้งหมดและรวมแบนด์วิดท์เป็น อินเทอร์เฟซเดียวแล้วบางที tun / tap ที่โฮสต์เสมือนหรืออะไร สิ่งนี้น่าสนใจสำหรับฉันฉันจะพยายามตั้งค่าขีด จำกัด แบนด์วิดท์บน wifi ส่วนตัวต่อที่อยู่ Mac ของฉันเพื่อสร้างสถานการณ์ขึ้นใหม่และลองทำสิ่งนี้ฉันจะกลับมา

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.