[BEARBEITEN]
Das Produktionssystem ist derzeit ein gemischtes physisches und ESXi-basiertes System. Wir würden virtualbox natürlich niemals verwenden, auch nicht für eine Vorproduktionsumgebung! Es wurde hier nur verwendet, um das Problem schnell direkt auf meinem Desktop einzugrenzen.
Vielen Dank für die Erklärung für das "on hold" auf Meta!
[/BEARBEITEN]
Mein Setup:
- Privates Netzwerk
vboxnet110.0.7.0/24 - 1 Host, Ubuntu-Desktop
- 1 VM, Ubuntu-Server (VirtualBox)
Adressierungslayout:
- Host: 10.0.7.1
- VM: 10.0.7.101
- VM MAC NAMESPACE : 10.0.7.102
Auf dem habe VMich die folgenden Befehle ausgeführt:
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
Im macNamespace innerhalb der VM:
ip link set lo up
ip link set mac up
ip addr add 10.0.7.102/24 dev mac0
Damit wir im Grunde genommen am Ende Folgendes haben: (Like Inception?)
+------------------------+
| Host: 10.0.7.1 |
| |
| +--------------------+ |
| | VM: 10.0.7.101 | |
| | | |
| | +----------------+ | |
| | | NS: 10.0.7.102 | | |
| | | | | |
| | +----------------+ | |
| +--------------------+ |
+------------------------+
Was funktioniert:
- Ping zwischen
HostundVM - Ping zwischen
NSundNS - dhclient von
NS
Was funktioniert nicht:
- Ping zwischen
NSundVM - Ping zwischen
NSundHost
Wo ich anfing verrückt zu werden:
- tcpdump on
host(die reale Maschine) zeigt tatsächlich ARP-Anfrage UND Antworten an - tcpdump on
NSzeigt ARP-Anforderungen an, die an den Host gesendet wurden - Mit tcpdump on
VMfunktioniert das ganze Durcheinander (!) -> ping erhält Antworten, wenn tcpdump auf der VM gestartet wird?!?
Ich wette, Sie waren gespannt darauf. Meine Frage lautet: Wie kann ich dafür sorgen, dass es funktioniert? Ich vermute, dass etwas mit ARP auf dem Macvlan in der NS nicht stimmt, kann aber nicht herausfinden, was genau ...
Übrigens habe ich die gleichen Experimente mit der mac0Schnittstelle direkt auf der VM durchgeführt (kein Namespace) und es hat einwandfrei funktioniert.