2016-07-01 3 views
0

내 로컬 네트워크의 다른 호스트에서 MAC 주소를 가져 오는 컨테이너에서 프로그램을 실행하고 싶습니다. 물리적 인 인터페이스에 바인딩 된 컨테이너에서 실행되는 프로그램을 원격 호스트에서 실행되는 프로그램이 아닌 로컬 프로그램으로 취급하고 싶습니다.Docker 컨테이너에서 네트워크상의 다른 호스트의 MAC 주소를 가져옵니다.

로컬 네트워크에있는 호스트가 있습니다. 해당 네트워크에서 실행중인 nmap 또는 arp-scan과 같은 도구를 사용하여 네트워크의 다른 호스트에서 MAC 주소를 얻을 수 있습니다. 동일한 호스트의 인터페이스에 컨테이너를 마운트 할 때 비슷한 동작이 예상됩니다.

실행할 수있는 실제 호스트에서 결과에 MAC 주소가 포함됩니다. 원격 호스트에서 nmap을 사용하여 동일한 명령을 수행 한 경우 -sn 검사를 사용하여 원격 호스트에서 MAC 주소를 가져올 수 없기 때문에 MAC 주소를 얻지 못합니다.

내 컨테이너가 로컬 네트워크상의 원격 호스트로 취급되는 이유는 무엇입니까?

sudo nmap -sn 192.x.x.x/24 

나는 나는 나는 또한 ARP 및 ARP 스캔을 시도 위의

nmap -sn --privileged 192.x.x.x/24 
sudo nmap -sn 192.x.x.x/24 

의 각각에서 다음을 실행 한

docker run -P -it scanner_container 
docker run -P --privileged -it scanner_container 
docker run -p 192.x.x.ip-of-interface scanner_container 

다음과 같은 방법으로 내 컨테이너를 설치하려고했습니다

나는 도구에 묶여 있지 않아, 내 호스트의 MAC 주소를 얻는 방법이 필요하다. 내 로컬 네트워크의 호스트에서 컨테이너 내에서 실행되는 프로그램에서 네트워크를 구성 할 수 있습니다.

nmap이 사용하기에 적합한 도구라면, 그렇지 않으면 다른 것을 사용하게되어 기쁩니다. 며칠 씩 다른 일을 시도하고 컨테이너를 인터페이스에 바인딩하여 실제 호스트로 취급 할 수없는 것 같습니다.

답변

0

다음 명령을 사용하여 작동시킬 수있었습니다. 왜 그런지는 확실치 않지만 리눅스 머신에서만 작동하며 dockerformac과 함께 작동하지 않습니다.

docker run -it --net=host scanner_container