네트워크 어댑터 또는 무선 어댑터에 가상 MAC 주소를 만들고 싶습니다. 따라서 한 대의 컴퓨터 또는 랩톱에서 둘 이상의 IP 주소로 네트워크에 연결할 수 있습니다.
어떻게하니? (내 친구 중 한 명이 대학에서했으며 네트워크에서 최대 255 개의 IP 주소를 가지고 있기 때문에 가능하다는 것을 알고 있습니다).
네트워크 어댑터 또는 무선 어댑터에 가상 MAC 주소를 만들고 싶습니다. 따라서 한 대의 컴퓨터 또는 랩톱에서 둘 이상의 IP 주소로 네트워크에 연결할 수 있습니다.
어떻게하니? (내 친구 중 한 명이 대학에서했으며 네트워크에서 최대 255 개의 IP 주소를 가지고 있기 때문에 가능하다는 것을 알고 있습니다).
답변:
단일 네트워크 인터페이스에서 여러 개의 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
편집 : 가상 장치 설정을위한 힌트 추가 :
먼저 다음과 같은 추가 장치를 설정하십시오.
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 주소를 할당 할 수 있습니다).
eth0
eth0 : 1'에 대해 다른 MAC 주소를 가질 수 없습니다 . eth0:1
설명 된대로 작성한다고 가정하십시오 . 확실히 시스템에서 테스트했습니다. 마지막 명령 ( ip link ...
)이 두 "인터페이스"의 MAC 주소를 변경했습니다. 이것은 eth0
그 자체가 새로운 MAC 주소를 가지고 있음을 의미 합니다. 그 이유는 ifconfig eth0:1 up
새 링크를 만들지 않기 때문입니다 . 기존 주소에만 IP 주소를 추가합니다. macvlan
링크를 만드는 것이 좋은 방법입니다.
이것은 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 : "본드"를 망치려고 노력했지만 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 주소에 대역폭 제한을 설정하여 시나리오를 재현하고 다시 시도하려고 시도합니다.