[MODIFICARE]
Il sistema di produzione è attualmente un mix fisico e basato su ESXi. Ovviamente non useremo mai virtualbox nemmeno per un ambiente di pre-produzione! È stato usato qui solo per restringere rapidamente il problema direttamente sul mio desktop.
Grazie per la spiegazione per "in attesa" su meta!
[/MODIFICARE]
La mia configurazione:
- Rete privata
vboxnet1
10.0.7.0/24 - 1 host, desktop di Ubuntu
- 1 VM, server Ubuntu (VirtualBox)
Indirizzo di indirizzo:
- HOST: 10.0.7.1
- VM: 10.0.7.101
- VM MAC NAMESPACE : 10.0.7.102
Sul VM
, ho eseguito i seguenti comandi:
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
Sul mac
namespace, all'interno della VM:
ip link set lo up
ip link set mac up
ip addr add 10.0.7.102/24 dev mac0
In modo che alla fine finiamo con: (Come Inception?)
+------------------------+
| Host: 10.0.7.1 |
| |
| +--------------------+ |
| | VM: 10.0.7.101 | |
| | | |
| | +----------------+ | |
| | | NS: 10.0.7.102 | | |
| | | | | |
| | +----------------+ | |
| +--------------------+ |
+------------------------+
Cosa funziona:
- Ping tra
Host
eVM
- Ping tra
NS
eNS
- dhclient da
NS
Cosa non funziona:
- ping tra
NS
eVM
- ping tra
NS
eHost
Dove ho iniziato a impazzire:
- tcpdump on
host
(la macchina reale) mostra effettivamente la richiesta ARP E le risposte - tcpdump on
NS
mostra le richieste ARP inviate all'host - tcpdump on
VM
fa funzionare tutto il casino (!) -> ping inizia a ottenere risposte quando tcpdump viene avviato sulla VM?!?
Quindi, scommetto che eri desideroso, la mia domanda è: come posso farlo funzionare? Ho il sospetto che qualcosa non vada con ARP sul macvlan all'interno del NS ma non riesco a capire cosa esattamente ...
A proposito, ho fatto le stesse esplorazioni con l' mac0
interfaccia direttamente sulla VM (senza spazio dei nomi) e ha funzionato perfettamente.