Virtualisierung mit VirtualBox

lyn2k9

Member
Hallo liebes Forum,

ich habe das Problem, dass ich auf eine virtuelle Maschine, welche unter VirtualBox auf einem Hetzner Root läuft keinen Zugriff über Bridge-Modus bekomme.

Momentan existiert folgende Ausgangssitutation.
Root Server bei Hetzner ist fertig eingerichtet. Ich habe VirtualBox 4.3 PUEL installiert mit phpVirtualBox und dort einen virtuellen Ubuntu 14.04 Server angelegt. Zugriff auf diesen virtuellen Server habe ich mittels NAT. Da langsam aber die Zahl der Dienste auf dem virtuellen Server steigt, möchte ich nicht zig Ports umlegen, sondern dem virtuellen Server eine seperate IP zuweisen.

Folgendes habe ich bisher dazu eingerichtet:

Auf dem Hauptsystem:

Folgendes in der "/etc/network/interfaces" ergänzt:
Code:
# Bridge für VirtualBox
auto virbr1
iface virbr1 inet static
   address HAUPTIP
   netmask 255.255.255.255
   bridge_ports none
   bridge_stp off
   bridge_fd 0
   pre-up brctl addbr virbr1
   # Zusätzliche IPv4 für Brigde
   up ip route add ZUSATZIP/32 dev virbr1
   down ip route del ZUSATZIP/32 dev virbr1

Als nächstes habe ich lokal den virtuellen Server in VirtualBox erstellt und auf den RootServer geladen.

Danach habe ich in phpVirtualBox die virtuelle Maschine importiert und bei Netzwerk folgendes eingestellt:

  • Netzwerkbrücke
  • virbr1
  • unter MAC die virtuelle MAC von Hetzner für die zusätzliche IP

Danach habe ich mich über RDP auf der virtuellen Maschine eingeloggt und die Netzwerkeinstellungen wie folgt angepasst:

/etc/network/interfaces:
Code:
# eth0
auto eth0

# eth0 IPv4
iface eth0 inet static
    address ZUSATZIP_HETZNER
    netmask 255.255.255.255
    gateway HAUPTIP_ROOTSERVER
    pointopoint HAUPTIP_ROOTSERVER
    dns-nameservers 8.8.8.8

Zuguter letzt habe ich geprüft ob IPv4 forwarding aktiv ist, was der Fall ist.

Leider klappt weder ein Zugriff von Netz auf die Maschine, noch umgekehrt von der virtuellen Maschine ins Netz. Beim Booten fällt auf, dass die virtuelle Maschine sehr lange auf eine Netzwerkkonfiguration wartet.

Vielleicht hat noch jemand einen Tipp, was ich übersehen habe?
 
eth0 muss auch in der bridge sein, da die die Hauptip hat. IP-Config von eth0 solltest du für die Bridge nehmen. Eth0 direkt danach keine IP mehr...
 
okay also müsste es dann wie folgt aussehen:

Code:
auto  eth0
iface eth0 inet static
  address   HAUPTIP
  netmask 255.255.255.255
  gateway   GATEWAYIP
  pointopoint GATEWAPIP

  # 3. IP Adresse (wird nicht für VirtualBox verwendet)
  up ip addr add 3.IPADRESSE/32 dev eth0
  down ip addr del 3.IPADRESSE/32 dev eth0

# Bridge für VirtualBox
auto virbr1
iface virbr1 inet static
   address HAUPTIP
   netmask 255.255.255.255
   bridge_ports none
   bridge_stp off
   bridge_fd 0
   pre-up brctl addbr virbr1
   # Zusätzliche IPv4 für Brigde
   up ip route add ZUSATZIP/32 dev virbr1
   down ip route del ZUSATZIP/32 dev virbr1

Momentan sieht die Interfaces auf dem Wirtsystem so aus:

Code:
auto  eth0
iface eth0 inet static
  address   HAUPTIP
  broadcast BROADIP
  netmask   255.255.255.[COLOR="Red"]224[/COLOR]
  gateway   GATEWAY
  up route add -net HAUPTIPT netmask 255.255.255.[COLOR="red"]224[/COLOR] gw GATEWAY eth0
  # 3. IP Adresse (wird nicht für VirtualBox verwendet)
  up ip addr add 3.IPADRESSE/32 dev eth0
  down ip addr del 3.IPADRESSE/32 dev eth0

# Bridge für VirtualBox
auto virbr1
iface virbr1 inet static
   address HAUPTIP
   netmask 255.255.255.255
   bridge_ports none
   bridge_stp off
   bridge_fd 0
   pre-up brctl addbr virbr1
   # Zusätzliche IPv4 für Brigde
   up ip route add ZUSATZIP/32 dev virbr1
   down ip route del ZUSATZIP/32 dev virbr1

Habe ich dich so richtig verstanden?
 
Last edited by a moderator:
Nein. eth0 muss KEINE IP haben, KEINE Netmask, KEIN Gateway. Dies muss an die bridge. Ebenfalls bridge_ports eth0. Dann braucht deine VM wohl auch keine virtuelle MAC mehr, da der Host als Gateway angegeben wird.
 
Das ist dann auch routed. Wenn es bridged wär, würdest du Hetzner als Gateway angeben, nicht deinen Root. Zudem bräuchtest du bei Bridged eine eigene MAC.
 
Oki, ich gehe vielleicht einen Schritt zurück.

Es gibt ja zwei Möglichkeiten:

Bridge und Routed.

So wie ich das verstanden habe bekommt bei Bridge der Client eine eigene IP und auch Mac. Von außen kann man dann "nicht" mehr unterscheiden, ob das die beiden Betriebssysteme auf der gleichen Kiste laufen.

Bei Routed bekommt der Client auch eine IP, aber keine seperate Mac. Der komplette Traffic von der virtuellen Kiste wird über eth0 von dem Wirtsystem geroutet. Hetzner hat dazu auch eine gute Übersichtsgrafik: http://wiki.hetzner.de/images/9/99/X-route.png

Und genau so wie bei Routed würde ich gerne die virutelle Kiste ansprechen, da auf dem Wirtsystem auch noch andere Dienste laufen, die ich nicht umkonfigurieren möchte.

Sehe ich das richtig, dass Br0 aus dem Bild bei mir "virbr1" ist? In Folge müsste doch meine Konfiguration auf dem virtuellen Client stimmen? Ich gehe also davon aus, dass was bei phpVirtualBox falsch eingerichtet ist bzw. kann Virtuelbox überhaupt Routed als Netzwerktyp?

Update:
Was z.B mittlerweile funktioniert ist, dass ich aus der virtuellen Maschine pingen kann und auch Internet habe. Von extern komme ich aber nicht auf die IP
 
Last edited by a moderator:
Ja, das stimmt so. Trotzdem hast du bei Routed auf dem Hostsystem eine IP und kannst mit der machen was du willst. Um eine Bridge wirst du nicht rum kommen...
 
Hallo vb-server,

besten Dank für deine Hinweise. Die Gemeinsamkeiten / Unterschiede sind jetzt klar. Leider kann man den kompletten Vorgang nicht in einer virtuellen Umgebung daheim nachstellen. Da auf dem Hostsystem auch noch andere Dienste wie OpenVPN, Mail und LAMP läuft werde ich mich erstmal von dem Gedanken distanzieren, den Server auf Bridge-Mode umzustellen, weil aus den Hetzner und Ubuntu Wikis noch Restfragen offen bleiben bezüglich Firewall Sicherung und was mit den schon eingerichteten Diensten passiert wenn ich einfach eth0 durch BrXX ersetze, bzw. wie man von den 3 IPs nur eine für den virtuellen Server verwendet.

Ich wünsche ein schönes Wochenende
 
Nochmal, ich habe trotz Bridge vom Routed gesprochen. Auf dem Host kann man danach immernoch problemlos laufen lassen, was man will..

Thx, dir auch
 
dann wäre die theoretische Konfiguration also folgende?

Code:
auto  br0
iface br0 inet static
 address HAUPT-IP
 netmask NETMASK-IP
 gateway GATEWAY-IP
 bridge_ports eth0
 bridge_stp off
 bridge_fd 1
 bridge_hello 2
 bridge_maxage 12
 # 2. IP für Host
 up ip addr add ZWEITE-IP/32 dev br0
 down ip addr del ZWEITE-IP/32 dev br0
 # 3. IP für VirtualBox Client
 up route add -host DRITTE-IP dev br0

iface br0 inet6 static
  address 1.IPv6 Adresse
  netmask 128
  gateway fe80::1
  # 2. IPv6 Adresse
  up ip addr add 2.IPv6-Adresse/64 dev br0
  down ip addr del 2.IPv6-Adresse/64 dev br0

In meinen Augen wäre somit nur die 3. IPv4 Adresse für den VirtualBox Client. IPv6 Konfiguration bin ich mir absolut nicht sicher.

Dann finde ich es noch komisch, dass einmal bei Hetzner im Wiki als Netmask 255.255.255.224, einmal 255.255.255.255 angegeben wird.

Quellen:
http://wiki.hetzner.de/index.php/Netzkonfiguration_Debian#Root-Server_3
http://wiki.hetzner.de/index.php/KVM_mit_Nutzung_aller_IPs_-_the_easy_way
http://wiki.ubuntuusers.de/Netzwerkbrücke
 
Nachtrag / SOLVE

Hallo an alle,

ich habe mich nochmal gründlich in der Bibliothek informiert in Büchern über VirtualBox und dann am heimischen TestPC eine Bridge eingerichtet.

Anschließend habe ich nochmal die Hetzner Dokumentation verinnerlicht und es funktioniert jetzt 1a!

Besten Dank an vb-server

PS: Wirtconfig:

Code:
auto  br0
iface br0 inet static
 address HAUPT-IP
 netmask NETMASK-IP
 gateway GATEWAY-IP
 bridge_ports eth0
 bridge_stp off
 bridge_fd 1
 bridge_hello 2
 bridge_maxage 12
 # 2. IP für Host
 up ip addr add ZWEITE-IP/32 dev br0
 down ip addr del ZWEITE-IP/32 dev br0

iface br0 inet6 static
  address 1.IPv6 Adresse
  netmask 128
  gateway fe80::1
  # 2. IPv6 Adresse
  up ip addr add 2.IPv6-Adresse/64 dev br0
  down ip addr del 2.IPv6-Adresse/64 dev br0

Wirtconfig:

Code:
auto eth0
iface eth0 inet static
        address CLIENT-IP (mit seperater Mac)
        broadcast BROAD-IP
        netmask 255.255.255.224
        gateway 176.9.147.36
        dns-nameservers 8.8.4.4
 
Back
Top