VMWARE의 가상 머신 사이에 macvtap 브리지가 있습니까?
내 애플리케이션은 VMWARE VM에서 실행되며 네트워크의 트래픽을 처리해야 합니다. 나는 이것을 달성하기 위해 macvtap을 사용하려고합니다.
ip 링크 설정 dev eth1_index promisc on allmulticast on up ip 링크 추가 링크 eth1_index 이름 macvtap1 유형 macvtap ip 링크 설정 dev macvtap1 promisc on allmulticast on up
그런 다음 애플리케이션에서 /dev/tapX를 열고 (TUNSETIFF를 통해) 이를 (IFF_TAP | IFF_NO_PI)로 설정하고 트래픽이 발생하도록 시도합니다.
eth1의 mac을 사용하여 동일한 호스트에 있는 다른 vm으로 트래픽을 보내고 받는 경우 TX 패킷이 제대로 수신되고 응답(eth1의 mac에 대한)이 eth1로 전달되지만 macvtap1로는 전달되지 않는 것을 볼 수 있습니다. 그들을).
macvtap1의 mac을 사용하여 트래픽을 보내고 받는 경우 - (다른 VM을 캡처할 때) TX 패킷(macvtap의 mac을 소스 mac으로 사용)이 전달되지 않는 것을 볼 수 있습니다("로컬"을 캡처할 때 이러한 패킷이 표시됩니다). 가상 머신의 eth1).
또한 응용 프로그램 없이 macvtap 인터페이스를 통해 IP를 정의하고 다른 VM에서 ping을 시도하면 ARP 요청이 eth1에 도달하지만 macvtap1에는 도달하지 않는 것을 볼 수 있습니다.
내 질문은 다음과 같습니다. - macvtap이 VMWARE 가상 머신에서 작동해야 합니까? - 그렇다면, 내가 무엇을 잘못했나요?
감사해요.
답변1
이해가가는 것 같네요.
macvtap 장치는 수신/발신을 위해 자체 Mac을 사용합니다. 그래서 vmware의 경우 vswitch가 VM에 패킷을 전달할 수 있도록 포트 그룹의 보안 설정을 무차별 모드를 켜기로 변경했습니다. 효율적인.