Acho que entendi.
Os dispositivos macvtap usam seu próprio mac para rx / tx. Então, para vmware para que o vswitch entregue o pacote para a VM, Alterei a configuração de segurança do grupo de portas, configurando o modo promíscuo. Funcionou.
A ponte do macvtap entre as VMs do VMWARE?
Meu aplicativo funciona na VM VMware e deve lidar com o tráfego da rede. Estou tentando usar o macvtap para esse propósito:
conjunto de links ip dev eth1_index promisc on allmulticast on up link ip adicionar link eth1_index nome macvtap1 tipo macvtap conjunto de links ip dev macvtap1 promisc em allmulticast em cima
Então, a partir do aplicativo eu abro / dev / tapX, defino (via TUNSETIFF) como (IFF_TAP | IFF_NO_PI) e tento fazer algum tráfego.
Se eu usar o mac da eth1 para enviar / receber tráfego para outra VM no mesmo host, vejo que os pacotes TX são bem recebidos, e as respostas (destinadas ao mac da eth1) são encaminhadas para eth1, mas não para macvtap1 (portanto, aplicação não pode lê-los).
Se eu usar o mac do macvtap1 para enviar / receber tráfego - eu vejo (ao capturar a outra VM) que os pacotes TX, com o mac do macvtap como fonte mac - não são entregues a ele (eu vejo esses pacotes quando eu capturar o eth1 da VM 'local').
Além disso, se eu apenas tentar (sem meu aplicativo) definir um IP sobre a interface macvtap e executá-lo ping a partir da outra VM - vejo que as solicitações ARP atingem a eth1, mas não a macvtap1.
Minhas perguntas são: Deve macvtap trabalhar sobre VMWARE VMs? - Se sim, o que fiz de errado?
Obrigado.
Acho que entendi.
Os dispositivos macvtap usam seu próprio mac para rx / tx. Então, para vmware para que o vswitch entregue o pacote para a VM, Alterei a configuração de segurança do grupo de portas, configurando o modo promíscuo. Funcionou.