Tạo một số địa chỉ MAC ảo


10

Tôi muốn tạo một số địa chỉ MAC ảo cho bộ điều hợp mạng hoặc bộ điều hợp không dây, để tôi có thể kết nối với mạng có nhiều hơn một địa chỉ IP từ một máy tính hoặc máy tính xách tay.

Tôi làm nó như thế nào? (Tôi biết điều đó là có thể, bởi vì một trong những người bạn của tôi đã làm điều đó ở trường đại học và có nhiều hơn một - đôi khi lên tới 255 - địa chỉ IP trên mạng).


bạn phải xác định hệ thống hoạt động nào bạn đang sử dụng và cuối cùng là phân phối nào.
andcoz

@ Moein7tl lưu ý rằng nếu sysadmin giảm băng thông cho mỗi người dùng thì có lẽ nên tránh mọi người tải xuống bất hợp pháp và ưu tiên nhiều hơn cho lưu lượng quan trọng hơn như dữ liệu tìm kiếm hoặc tính toán trên đám mây ... Cố gắng không khai thác giới hạn của hệ thống chỉ để có được một bandwiidth phong nha.
Kiwy

Câu trả lời:


18

Tất cả bạn cần làm là

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

sau đó bật giao diện mạng ảo

ifconfig eth0.1 up

và sau đó tùy chọn có được một ip thông qua dhcp với

dhclient -v eth0.1

13

Bạn không cần thêm một địa chỉ MAC để có nhiều địa chỉ IP trên một giao diện mạng. Kỹ thuật này được gọi là bí danh ip .

Mỗi hệ thống hoạt động có một cú pháp hơi khác nhau, nhưng thông thường, để đặt các địa chỉ IP khác nhau trên cùng một giao diện, bạn chỉ cần thực hiện một số việc như:

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

Ví dụ trên hoạt động trên Linux. Trên BSD, bạn cần một cái gì đó như:

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

Trong mạng không dây của trường đại học của chúng tôi, hệ thống cung cấp một địa chỉ IP cho mỗi địa chỉ mac từ 8 giờ sáng đến 9 giờ tối và hệ thống giới hạn mỗi ip ở tốc độ tối đa 32KB, nếu tôi có thể tạo địa chỉ mac ảo, vì vậy nó không thể phát hiện máy tính xách tay của tôi là một và nó sẽ cung cấp cho tôi nhiều hơn một địa chỉ IP.
Moein Hosseini

Vui lòng @ Moein7tl, chỉnh sửa câu hỏi của bạn và chỉ định rằng bạn đang tìm kiếm một phương thức để được gán nhiều hơn một địa chỉ IP bởi máy chủ dhcp của trường đại học .
andcoz

4

Chỉnh sửa: Thêm gợi ý để thiết lập thiết bị ảo:

Đầu tiên thiết lập một thiết bị bổ sung, ví dụ:

ifconfig eth0:1 up

Bạn cũng có thể thêm một IP vào nó. ví dụ:

ifconfig eth0:1 10.0.0.20 broadcast 10.255.255.255 netmask 255.255.255.255

Nếu bạn thực sự muốn, bạn cũng có thể thay đổi địa chỉ MAC:

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

Lưu ý rằng bit thứ hai của byte đầu tiên phải được đặt để báo hiệu địa chỉ được quản lý cục bộ (LAA) - cho biết địa chỉ MAC này chỉ hợp lệ cục bộ (ví dụ trong mạng doanh nghiệp của bạn) và có thể không phải là thế giới duy nhất (vì vậy bạn có thể chỉ định địa chỉ MAC của riêng mình mà không cần phải đăng ký chính thức).


nhưng khi tôi kết nối với mạng không dây tại nhà với nó, nó chỉ có thể thay đổi địa chỉ mac và modem của tôi không cho tôi 2 địa chỉ IP trở lên. Tôi chỉ thấy một địa chỉ mac trong các trang modem của mình.
Moein Hosseini

Bạn cần phải thiết lập một thiết bị ảo bổ sung trước, tất nhiên. Đó là lý do tại sao tôi nói "cũng". Nhìn vào câu trả lời cho câu hỏi của bạn phác thảo bí danh ip. Tôi thích sử dụng một netmask 255.255.255.255 cho những điều này. Nhưng bạn đã không yêu cầu IP ảo và đôi khi chỉ cần có một thiết bị hoạt động với MAC là đủ.
Nils

1
Theo tôi biết, bạn không thể có các địa chỉ MAC khác nhau cho eth0và ọeth0: 1 trọng. Giả sử bạn tạo eth0:1như mô tả. Để chắc chắn, tôi đã thử nghiệm nó trên hệ thống của tôi. Lệnh cuối cùng ( ip link ...) đã thay đổi địa chỉ MAC của cả hai "giao diện". Điều này có nghĩa là eth0chính nó cũng đã có địa chỉ MAC mới. Lý do là, điều đó ifconfig eth0:1 upsẽ không tạo ra một liên kết mới. Nó sẽ chỉ thêm một địa chỉ IP vào một địa chỉ hiện có. Tạo một macvlanliên kết dường như là cách để đi.
JojOatXGME

3

Điều này đang làm việc cho tôi trên Linux (Kali). Bạn có thể cần thay đổi địa chỉ, cổng hoặc netmasks dựa trên tình hình cá nhân của bạn. Xin lỗi nếu bạn không cần điều này, cho người tiếp theo vấp ngã ở đây, như tôi đã làm lúc trước.

Trong trường hợp <your-nicN>là những gì bạn nhìn thấy từ một ifconfignhư eth0haywlan0

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

Điều đó tạo ra một giao diện "ảo" mới gọi là mac0 và đưa nó lên. Tôi đã thêm lệnh up vì lần đầu tiên tôi nghĩ rằng nó không hoạt động, nhưng sudo ip link show [tab][tab]cộng với một tab kép được hoàn thành với một danh sách bao gồm mac0, sau đó tôi đã tiến hành đưa nó lên với ifconfig và gán cho nó một địa chỉ.

Chỉ cần nhớ gán cho nó một địa chỉ IP hoặc bảo nó sử dụng dhcp

ifconfig mac0 inet 192.168.1.107 netmask 255.255.255.0 #static/manual config

hoặc là

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

nếu bạn cần gán một cổng mặc định:

sudo ip route add default via 192.168.1.1 

Nơi tôi đã nhận được một số trong số này là ở đây: http://www.pocketnix.org/posts/Linux%20Networking:%20MAC%20VLANs%20and%20Virtual%20Ethernets

Edit3: Tôi đã thử nhắn tin với "bond" và ifenslavenhưng tôi cần nghiên cứu thêm một chút về điều đó, tôi thực sự không thể tìm ra. Những gì tôi đã làm mặc dù đã thiết lập "Bộ định tuyến EtherSwitch" trong GNS3 và sau đó gán một "đám mây" mười macNthiết bị trên một "kết thúc" và sau đó một "đám mây" khác cho bộ điều hợp máy chủ vmware, hộp ảo có thể sẽ hoạt động tương tự , ở "kết thúc" khác, tôi sẽ loay hoay với điều đó một chút và xem liệu tôi có thể giới hạn tốc độ trên các macNthiết bị để mô phỏng một "tập hợp" hay không nếu tôi có thể phân phối tải trên mười kết nối để "tăng" băng thông. Có lẽ nếu tôi đặt tất cả chúng thành txqueuelen: 10 trên Linux. Tôi có DragonflyBSD ở "phần cuối" khác, tôi sẽ cố gắng kết nối nó với bộ định tuyến thực của mình thông qua GNS3.

Edit2: Đây là một đoạn script nhanh để có được nhiều thứ bạn cần với dhclient. Nó cần phải được chạy như root. Vì vậy, tạo tập tin, sau đó chmod 750 <script>và chạy nó với sudonếu bạn có thể / phải. Tôi sử dụng nó như thế này: ./crazy-mac.sh 20nó lấy đối số đầu tiên và tạo ra nhiều giao diện mới, mỗi giao diện có địa chỉ mac và ip riêng. Không có kiểm tra sự tỉnh táo vì vậy hãy sử dụng nó một cách khôn ngoan hoặc tự thêm một số;)

Lưu ý: Đảm bảo kết nối với wlan0 bình thường của bạn trước nếu không nó sẽ không hoạt động. Làm thế nào để kết nối thủ công với mạng không dây-ap Ngoài ra nếu danh sách điều khiển truy cập mac của họ trên bộ định tuyến, bạn có thể cần thực hiện một số thao tác để có được danh sách địa chỉ mac được bộ định tuyến chấp nhận. Sau đó, bạn sẽ cần chỉnh sửa tập lệnh để phân tích một tệp với danh sách đó và sử dụng một dòng cho mỗi $itrong chuỗi thay vì cho phép điều này tạo địa chỉ mac ngẫu nhiên.

Lưu ý2: Bạn có thể muốn đặt một số sleep <N>vòng lặp ở đâu đó, điều này sẽ đưa ra nhiều "thiết bị" tuần tự và có thể sẽ giơ một số cờ đỏ nếu có ai chú ý đến mạng. Tôi không nghĩ 20 một số thiết bị sẽ xuất hiện theo kiểu này trong những trường hợp bình thường.

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

Và để đưa họ xuống: Một lần nữa chỉ là một kịch bản nhanh chóng ...

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

Và nếu bạn cần một danh sách các địa chỉ mac thì điều này sẽ hoạt động với bash khi một tệp là danh sách một địa chỉ mac trên mỗi dòng trong tệp.

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

Chỉnh sửa: Tôi chỉ đọc về các thiết bị "lagg" (ít nhất là cho unix) có thể được sử dụng để tổng hợp nhiều giao diện vào một giao diện "lagg" duy nhất để tăng hiệu suất hoặc vì bất kỳ lý do gì.

Tôi chỉ nghĩ về việc nó sẽ hữu ích như thế nào trong trường hợp băng thông bị giới hạn trên mỗi địa chỉ mac, nó có thể được sử dụng trong tình huống đó để bạn có thể lấy tất cả nhiều giao diện macN ảo và tổng hợp băng thông thành một giao diện đơn và sau đó có thể điều chỉnh / chạm vào máy chủ ảo hoặc một cái gì đó. Điều này rất thú vị đối với tôi, tôi sẽ cố gắng thiết lập giới hạn băng thông trên địa chỉ wifi cá nhân trên mỗi địa chỉ mac để tạo lại kịch bản và thử điều này tôi sẽ quay lại.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.