호스트와 가상 머신의 ARP 결과가 다릅니다.

호스트와 가상 머신의 ARP 결과가 다릅니다.

최근에는 VMWare Player를 사용하여 Windows 호스트에 Linux 가상 머신을 구성했습니다. 네트워크 어댑터를 브리지된 네트워크로 설정하고 "복사" 옵션을 선택했습니다. IP 주소는 물리적 네트워크에 있지만 이 명령을 사용하면 arp -a호스트와 가상 머신 간에 다른 결과가 생성됩니다. 호스트는 Wi-Fi 네트워크에서 다른 호스트를 검색할 수 있지만 가상 머신은 검색할 수 없습니다.

호스트가 스위치처럼 작동하고 네트워크 정보를 VM에 전달한다는 것을 알고 VM이 실제 네트워크에 액세스할 수 있다고 가정하지만 왜 그렇게 할 수 없는지 이해하지 못합니다. 이 브리지된 네트워크가 정확히 어떻게 작동하는지, 그리고 가상 머신 내부에서 실제 네트워크를 얻을 수 있는지 알고 싶습니다.

- - 편집하다- -

흥미롭게도 일부 결과는 보았지만 전부는 아니었습니다.arp-scan -l

출력은 다음과 같습니다.

  1. arp -aWindows 호스트의 결과
  2. arpLinux VM의 결과
  3. arp-scan -l가상 머신에서

  Windows 호스트에서 "arp -a" 결과   Linux VM의 "arp" 결과   가상 머신의 "arp-scan -l"

답변1

나는 당신의 가정이 맞는지 완전히 확신하지 못합니다. 저는 브리지된 네트워크 장치를 자주 사용하는데, 경험상 가상 머신 중 하나의 네트워크 트래픽이 다소 고립되어 있습니다. 나는 사용한다키보드 가상 머신하지만 제가 사용하고 있는 브리징 기술은 리눅스 호스트에서 제공하는 것이기 때문에 완전히 동일하지는 않지만 비슷할 수도 있을 것 같습니다.

당신의 사용법은 arp나도 혼란 스럽습니다. 이 명령은 시스템이 최근에 연결한 시스템과 시스템 ARP 캐시에 유지되는 IP 주소 매핑에 대한 MAC 주소만 표시합니다. 이 명령은 arp해당 캐시의 내용을 표시합니다.

VM 호스트 + 게스트 1명이 있습니다.

주인

$ arp -a
hostX (192.168.1.226) at XX:XX:XX:XX:XX:XX [ether] on br0
hostY (192.168.1.7) at XX:XX:XX:XX:XX:XX [ether] on br0
hostZ (192.168.1.5) at XX:XX:XX:XX:XX:XX [ether] on br0
hostA (192.168.1.1) at XX:XX:XX:XX:XX:XX [ether] on br0

손님

$ arp -a
hostA (192.168.1.1) at XX:XX:XX:XX:XX:XX [ether] on eth0
hostY (192.168.1.7) at XX:XX:XX:XX:XX:XX [ether] on eth0
hostB (192.168.1.100) at XX:XX:XX:XX:XX:XX [ether] on eth0
hostC (192.168.1.8) at XX:XX:XX:XX:XX:XX [ether] on eth0
hostX (192.168.1.226) at XX:XX:XX:XX:XX:XX [ether] on eth0

브리지는 계층 2 장치이므로 arpVM 호스트의 VM 게스트에서 데이터가 수신된다는 어떠한 증거도 볼 수 없을 것으로 예상됩니다.

발췌-9.2.5. 브리지 - Redhat 문서

브리지는 MAC 주소를 기반으로 네트워크 간 트래픽을 전달하는 링크 계층 장치이므로 계층 2 장치라고도 합니다. 각 네트워크에 연결된 호스트를 파악하여 구성된 MAC 주소 테이블을 기반으로 전달 결정을 내립니다. 소프트웨어 브리지는 가상화된 애플리케이션에서 하나 이상의 가상 NIC와 NIC를 공유하는 등 하드웨어 브리지를 에뮬레이트하기 위해 Linux 호스트 내에서 사용할 수 있습니다.

추가 디버깅?

tcpdump게스트와 호스트 VM 모두에서 네트워크 분석 도구를 사용할 것입니다. 이를 통해 병목 현상이 발생한 위치를 알 수 있습니다.

$ sudo tcpdump -i eth0

-i모니터링하려는 네트워크 인터페이스로 매개변수를 변경합니다 .

답변2

이것arp(8)이 명령은 운영 체제의 주소 확인 프로토콜에서 사용되는 변환 테이블의 내용을 표시합니다. 이 테이블에는 주로 arp who-has로컬 요청에 대한 캐시된 응답이 포함됩니다.

브리지된 네트워크가 있는 가상 머신이 있지만 로컬 네트워크의 호스트와 적극적으로 통신하지 않는 경우 arp 테이블이 매우 작을 수 있습니다.

마찬가지로, 호스트에 여러 로컬 네트워크가 있지만 그 중 하나만 VM에 브리지하는 경우 실제로 다른 네트워크에 브리지하는 것이 아닙니다. 그렇죠?

GigE 브리지는 있지만 WiFi는 없는 것 같습니다.

또는 WiFi를 연결했지만 액세스 포인트가 새 MAC 주소를 좋아하지 않을 수도 있습니다.

답변3

공격 상황( arp -nLinux VM에서 전혀 아무것도 반환하지 않음)에 따르면 Linux에서 IP 주소를 구성하는 것을 잊어버려서 ARP 항목을 얻지 못한 것 같습니다.

Linux에서 정적 할당을 수동으로 구성하고 있습니까, 아니면 dhclientLinux VM에서 정적 할당을 실행하고 있습니까? ifconfig문제를 추가로 식별하기 위한 출력 도 제공하지 않았습니다 .

또한 액세스 포인트가 네트워크 확장을 원하지 않을 수도 있다는 점을 고려해야 할 수도 있습니다.

관련 정보