A, rodando OSX é o roteador entre a VM e B, e está fazendo NAT para a VM: isso significa que o IP da VM nunca deve ser visto na conexão (menos) entre A e B. Portanto, com essa configuração B shouldn não tem qualquer conhecimento de 172.16.219.128 em tudo.
Ou:
-
adicione regras nat de reencaminhamento de portas em A (com comandos NAT específicos do MacOS, se A estava executando Linux que seriam principalmente regras DNAT com iptables) para ter todas ou parte de conexões de B para A para serem encaminhadas por porta para a VM e esquecer de usar o IP da VM em B. B irá simplesmente se conectar a A (ou mesmo a um outro IP reservado para a VM, tudo depende das configurações NAT de A). Aqui está uma página falando sobre encaminhamento de porta no MacOS: link . Eu não testei porque não tenho nenhum MacOS. Também parece que a última versão mudou ferramentas (não mais natd):
-
ou altere a configuração da VM para não usar NAT, mas roteamento básico: A, o roteador, conhece as rotas para VM e para B e você explicitamente disse a B a rota para a VM. Então, se apenas esses três sistemas estão preocupados (e não toda a internet), não há NAT necessário para B acessar a VM. Eu não sei se as configurações de Wi-Fi (em vez de ethernet real) em A vão dar um problema.
Na verdade, uma combinação de ambos seria melhor: algumas regras (ainda em A) adicionando exceções ao NAT, para não usar o NAT entre VM e B apenas, porque suponho que a VM ainda precise de internet. Você terá que descobrir isso. Eu diria que, usando o exemplo de apple.stackexchange acima, você poderia substituir "to any" por "para! 192.168.0.15" no arquivo chamado "nat-rules"