[EDITAR]
O sistema de produção é atualmente um sistema baseado em mistura física e ESXi. Obviamente, nós nunca usaríamos o VirtualBox mesmo para um ambiente de pré-produção! Ele foi usado aqui apenas para restringir rapidamente o problema diretamente na minha área de trabalho.
Obrigado pela explicação do "em espera" no meta!
[/ EDIT]
Minha configuração:
- Rede privada
vboxnet1
10.0.7.0/24
- 1 host, área de trabalho do ubuntu
- 1 VM, servidor Ubuntu (VirtualBox)
Layout de endereço:
- HOST: 10.0.7.1
- VM: 10.0.7.101
- VM MAC NAMESPACE : 10.0.7.102
No VM
, eu corri os seguintes comandos:
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
No namespace mac
, dentro da VM:
ip link set lo up
ip link set mac up
ip addr add 10.0.7.102/24 dev mac0
Então, basicamente, acabamos com: (Como Inception?)
+------------------------+
| Host: 10.0.7.1 |
| |
| +--------------------+ |
| | VM: 10.0.7.101 | |
| | | |
| | +----------------+ | |
| | | NS: 10.0.7.102 | | |
| | | | | |
| | +----------------+ | |
| +--------------------+ |
+------------------------+
O que funciona:
- Ping entre
Host
e VM
- Ping entre
NS
e NS
- dhclient de
NS
O que não funciona:
- ping entre
NS
e VM
- ping entre
NS
e Host
Onde comecei a enlouquecer:
- O tcpdump em
host
(a máquina real) realmente mostra a solicitação ARP E responde
- tcpdump em
NS
mostra solicitações ARP enviadas ao host
- O tcpdump em
VM
faz toda a bagunça funcionar (!) - > ping começa a obter respostas quando o tcpdump é iniciado na VM?!?
Então, aposto que você estava ansioso por isso, minha pergunta é: como fazer isso funcionar? Eu suspeito que algo está errado com o ARP no macvlan dentro do NS, mas não consigo descobrir o que exatamente ...
Btw, fiz as mesmas experiências com a interface mac0
diretamente na VM (sem namespace) e funcionou perfeitamente.