가상 MAC 주소 만들기


10

네트워크 어댑터 또는 무선 어댑터에 가상 MAC 주소를 만들고 싶습니다. 따라서 한 대의 컴퓨터 또는 랩톱에서 둘 이상의 IP 주소로 네트워크에 연결할 수 있습니다.

어떻게하니? (내 친구 중 한 명이 대학에서했으며 네트워크에서 최대 255 개의 IP 주소를 가지고 있기 때문에 가능하다는 것을 알고 있습니다).


어떤 운영 체제를 사용하는지, 결국 어떤 배포 시스템을 지정해야합니다.
andcoz

@ Moein7tl은 sysadmin이 각 사용자의 대역폭을 줄이면 사람들이 불법적으로 다운로드하는 것을 피하고 검색 데이터 또는 클라우드 계산과 같은 더 중요한 트래픽에 더 우선 순위를 두는 것을 아마 알고 있습니다 ... 알맞은 악당을 얻으십시오.
Kiwy

답변:


18

당신이해야 할 일은

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

그런 다음 가상 네트워크 인터페이스를 켭니다

ifconfig eth0.1 up

그리고 선택적으로 dhcp를 통해 IP를 얻습니다.

dhclient -v eth0.1

13

단일 네트워크 인터페이스에서 여러 개의 IP 주소를 갖기 위해 하나 이상의 MAC 주소가 필요하지 않습니다. 이 기술을 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

우리 대학 무선 네트워크에서 시스템은 오전 8 시부 터 오후 9 시까 지 각 맥 주소에 하나의 IP 주소를 제공하며, 가상 맥 주소를 만들 수 있다면 시스템은 최대 32KB의 속도로 각 IP를 제한하므로 감지 할 수 없습니다 내 노트북은 하나이고 그것은 하나 이상의 IP 주소를 나에게 줄 것이다.
Moein Hosseini

@ Moein7tl을 작성하고 질문을 편집 한 후 대학 DHCP 서버에서 둘 이상의 IP 주소를 지정하는 방법을 검색하도록 지정하십시오 .
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과 함께 사용하기에 충분합니다.
Nils

1
내가 아는 한, ' eth0eth0 : 1'에 대해 다른 MAC 주소를 가질 수 없습니다 . eth0:1설명 된대로 작성한다고 가정하십시오 . 확실히 시스템에서 테스트했습니다. 마지막 명령 ( ip link ...)이 두 "인터페이스"의 MAC 주소를 변경했습니다. 이것은 eth0그 자체가 새로운 MAC 주소를 가지고 있음을 의미 합니다. 그 이유는 ifconfig eth0:1 up새 링크를 만들지 않기 때문입니다 . 기존 주소에만 IP 주소를 추가합니다. macvlan링크를 만드는 것이 좋은 방법입니다.
JojOatXGME

3

이것은 Linux (Kali)에서 나를 위해 일하고 있습니다. 개인 상황에 따라 주소, 게이트웨이 또는 넷 마스크를 변경해야 할 수도 있습니다. 내가 필요하지 않으면 미안하지만, 내가 전에 한 것처럼 다음 사람이 여기에서 넘어 질 수 있습니다.

<your-nicN>당신은 또는 ifconfig같은 에서 당신이 볼 수있는 곳eth0wlan0

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 : "본드"를 망치려고 노력했지만 ifenslave조금 더 연구를해야하지만 실제로 알아낼 수 없었습니다. GNS3에서 "EtherSwitch 라우터"를 설정 한 다음 macN한 "끝"에 10 개의 장치를 "클라우드"에 할당 한 다음 다른 "클라우드"를 vmware 호스트 전용 어댑터에 할당 했지만 가상 상자는 동일하게 작동합니다. , 다른 "끝"에서, 나는 그것을 조금 엉망으로 만들고 macN"어 그리 게이션"을 시뮬레이션하기 위해 장치 의 속도를 제한 할 수 있는지 또는 "증가"를 위해 10 개의 연결을 통해 부하를 분산시킬 수 있는지 확인합니다. 대역폭. Linux에서 모두 txqueuelen : 10으로 설정하면 어쩌면. 나는 이것의 다른 "끝"에 DragonflyBSD를 가지고 있으며, GNS3를 통해 그것을 실제 라우터에 연결하려고 시도 할 것이다.

Edit2 : 다음은 dhclient에 필요한만큼 많은 스크립트를 작성하는 빠른 스크립트입니다. 루트로 실행해야합니다. 따라서 파일을 만든 다음 가능하면 chmod 750 <script>실행하십시오 sudo. 나는 이것을 다음과 같이 사용합니다 : ./crazy-mac.sh 20첫 번째 인수를 취하고 각각 고유의 mac 및 ip 주소를 가진 많은 새로운 인터페이스를 만듭니다. 위생 검사는 없으므로 현명하게 사용하거나 직접 추가하십시오.)

참고 : 먼저 일반 wlan0에 연결하십시오. 그렇지 않으면 작동하지 않습니다. how to to connect-manually-to-wireless-ap 또한 라우터의 mac 액세스 제어 목록 인 경우 라우터가 허용하는 mac 주소 목록을 얻으려면 약간의 스니핑을 수행해야 할 수도 있습니다. 그런 다음 스크립트를 편집하여 해당 목록으로 파일을 구문 분석하고 $i임의의 mac 주소를 작성하는 대신 순서대로 각 행을 사용하십시오 .

참고 2 : sleep <N>루프에 어딘가에 a를 추가하고 싶을 수도 있습니다 . 이렇게하면 많은 "장치"가 순차적으로 나타나며 누군가 네트워크에주의를 기울이면 약간의 적신호가 발생할 수 있습니다. 정상적인 상황에서는 일부 장치가 이러한 방식으로 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 주소 목록이 필요한 경우 파일이 파일의 한 줄에 하나의 mac 주소 목록 일 때 bash와 함께 작동합니다.

#!/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"장치 (적어도 유닉스의 경우)에 대해 읽었습니다.

맥 주소 당 대역폭이 제한된 상황에서 이것이 어떻게 유용 할지를 생각하고 있었으며, 그러한 상황에서 사용할 수 있으므로 많은 가상 macN 인터페이스를 모두 가져 와서 대역폭을 단일 인터페이스를 설정 한 다음 가상 호스트 또는 다른 것으로 조정 / 탭하십시오. 이것은 흥미 롭습니다. 맥당 개인 WiFi 주소에 대역폭 제한을 설정하여 시나리오를 재현하고 다시 시도하려고 시도합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.