네임 스페이스가 아닌 호스트에서 Macvlan 기반 인터페이스 핑 a new nmespace ip link

[편집하다]

프로덕션 시스템은 현재 물리적 및 ESXi 기반 혼합 시스템입니다. 사전 프로덕션 환경에서도 virtualbox를 절대 사용하지 않을 것입니다! 여기서는 바탕 화면에서 직접 문제를 신속하게 좁히기 위해 사용되었습니다.

메타의 “보류”에 대한 설명에 감사드립니다!

[/편집하다]

내 설정 :

  1. 개인 네트워크 vboxnet110.0.7.0/24
  2. 호스트 1 개, 우분투 데스크탑
  3. 1 개의 VM, 우분투 서버 (VirtualBox)

드레싱 레이아웃 :

  1. 호스트 : 10.0.7.1
  2. VM : 10.0.7.101
  3. VM MAC 네임 스페이스 : 10.0.7.102

VM, 나는 다음과 같은 명령을 실행 :

ip netns add mac                        # create a new nmespace
ip link add link eth0 mac0 type macvlan # create a new macvlan interface
ip link set mac0 netns mac

mac네임 스페이스는 VM 내부 :

ip link set lo up
ip link set mac up
ip addr add 10.0.7.102/24 dev mac0

그래서 우리는 기본적으로 다음과 같이 끝납니다 : (Like Inception?)

+------------------------+
| Host: 10.0.7.1         |
|                        |
| +--------------------+ |
| | VM: 10.0.7.101     | |
| |                    | |
| | +----------------+ | |
| | | NS: 10.0.7.102 | | |
| | |                | | |
| | +----------------+ | |
| +--------------------+ |
+------------------------+

작동하는 것 :

  • 핑 사이 HostVM
  • 핑 사이 NSNS
  • dhclient from NS

작동하지 않는 것 :

  • 핑 (ping) 사이 NSVM
  • 핑 (ping) 사이 NSHost

내가 미쳤던 곳 :

  • tcpdump on host(실제 머신)은 실제로 ARP 요청과 응답을 보여줍니다
  • tcpdump on NS은 호스트로 전송 된 ARP 요청 을 보여줍니다.
  • tcpdump on VM은 전체 혼란을 일으 킵니다 (!)-> tcpdump가 VM에서 시작될 때 ping이 응답을 시작합니다.

그래서, 나는 당신이 그것을 열망했다는 내기, 내 질문은 : 어떻게 작동 시키는가? NS 내부의 macvlan에서 ARP에 문제가 있다고 생각하지만 정확히 무엇을 알 수는 없습니다 …

Btw, 나는 mac0VM에서 네임 스페이스가없는 인터페이스를 사용 하여 동일한 실험을 수행했으며 완벽하게 작동했습니다.



답변

자, 후손을 위해, tcpdump가 갑자기 모든 작업을 수행한다는 사실이 저를 추적하게했을 것입니다. 내부적으로하는 것은 eth0무차별 모드로 전환하는 것입니다. 즉 eth0, 서버의 메인 네트워크 트래픽뿐만 아니라 모든 네트워크 트래픽을 생성합니다MAC

그러나 이것은 정확히 macvlan작동 하는 방식입니다. “물리적”(VM) 네트워크 어댑터가 모르는 새로운 보조 가상 MAC 주소를 추가합니다.

따라서 쉬운 해결 방법은 수동으로 수행하는 것입니다. ifconfig eth0 promisc

나는 그것이 도움이되기를 바랍니다!


답변