• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[Gelöst] VirtualBox NAT Networking Frage:

revealed

Guru
Hallo!

Im manual zu Virtualbox steht, man kann die IP Adresse einer VM wenn man NAT Networking eingestellt hat, mit nachfolgender Methode ändern (ich liste auch gleich die Fehlermeldung):

Code:
wild-thing:/home/disk # VBoxManage modifyvm "XPvm" -natnet1 "192.168/16"
VirtualBox Command Line Management Interface Version 2.0.2_OSE
(C) 2005-2008 Sun Microsystems, Inc.
All rights reserved.

[!] FAILED calling virtualBox->FindMachine(Bstr(argv[0]), machine.asOutParam()) at line 4474!
[!] Primary RC  = NS_ERROR_INVALID_ARG (0x80070057) - Invalid argument value
[!] Full error info present: true , basic error info present: true
[!] Result Code = NS_ERROR_INVALID_ARG (0x80070057) - Invalid argument value
[!] Text        = Could not find a registered machine named 'XPvm'
[!] Component   = VirtualBox, Interface: IVirtualBox, {557a07bc-e6ae-4520-a361-4a8493199137}
[!] Callee      = IVirtualBox, {557a07bc-e6ae-4520-a361-4a8493199137}
Was is denn dort schief gegangen? Kennt das jemand? Meint ihr ich kann so erreichen, dass mein Host System früher oder später via Samba auf eine Freigabe zugreifen kann, oder ist das definitiv der falsche Weg?

Vielen Dank!

Grüße,

R
 
OP
revealed

revealed

Guru
Hi :)

Der Host soll auf den Gast zugreifen?
Die Tonlage verstehe ich richtig? Ich brauch unbedingt ein Hostinterface?

Weil mit NAT von Gast auf Host ist kein Problem. Im Nat von Virtualbox liegt der Gast auf:
GastIP: 10.0.2.15
Gateway:10.0.2.2

Wenn ich also am Gastsystem \\wild-thing im Explorer aufrufe, dann sehe ich meine Sambafreigaben vom Host.
Und wenn ich es im Browser aufrufe, dann komm ich auf meiner Homepage raus. Also auf der die mit dem Apache2 des Host rennt. Andersrum wenn host Gateway pingt, dann --- nix --- ; Irgendwie frage ich mich doch, ob man da nicht noch einfach ne Route anlegen könnte?

Allein schon aus dem Grund, weil sich das in der Virtualboxanleitung ein wenig sehr so liest, als hätte Virtualbox einen eigenen Gateway mit NAT; <-

Hmmm... Währe ziemlich cool den durch ansprechen des Gateway vom Gast im Browser von innerhalb der VM konfigurieren zu können.
Ich schätze aber mal das müsste in dem Fall vom Terminal aus stattfinden.

Einbau einer zweiten Netzwerkkarte ist bei mir momentan leider unmöglich.

Und ich scheue mich vor einem dynamisch erzeugten Host Interface. Ich Bin durch die Anleitung noch nicht ganz durchgestiegen und ich hab das teil jetz schon bestimmt 10x gelesen. Und mit überlegt, was ich schon probiert hab. Und dann kommt die Stelle mit Dynamisch erzeugtem HostInterface und das ist so kompliziert.

Und beim Statischen HIF habe ich das Problem, dass die Nutzung von Virtualmachines für meine Zwecke eher Dynamisch erzeugte HIF's tendieren lässt.

Ich weiss garnicht, wie ich das ausdrücken soll.

Gruß,

R
 

stefan.becker

Advanced Hacker
Anders wird es aber nicht gehen. So kompliziert ist das aber nicht wirklich. Probiere es einfach aus, melde dich bei Problemen.
 

spoensche

Moderator
Teammitglied
Ein Workshop zum Einrichten eines Hostinterface und Netzwerbridge für für VirtualBox:

http://www.woodysolutions.de/index.php/workshops
 
OP
revealed

revealed

Guru
also ich bin ganz genau dieser Anleitung gefolgt und wenn ich dann VirtualBox starte und eine Gast VM starten möchte:

Code:
Failed to initialize Host Interface Networking.
VBox status code: -3100 (VERR_HOSTIF_INIT_FAILED).


Fehlercode:
NS_ERROR_FAILURE (0x80004005)
Komponente:
Console
Interface:
IConsole {d5a1cbda-f5d7-4824-9afe-d640c94c7dcf}

Also da scheint was im Argen zu sein mit dem Tutorial!
Im Tutorial steht, ja der Script im Script wird folgender Befehl verwendet:
Code:
# Erstellt das Hostinterface für den User
VBoxTunctl -b -t $1 -u $2
Dieser muss entgegen dem Tutorial so ausgeführt werden, weil er ihn sonst nicht finden konnte.
Code:
# Erstellt das Hostinterface für den User
/usr/bin/VBoxTunctl -b -t $1 -u $2

Trotzdem der Korrektur kommt obiger Fehler. Der Witz bei der Sache ist, dass kommt auch, wenn ich einen ganz anderen Befehl im Script verwende wie beispielsweise:

Code:
# Laut Anleitung tap0 starten (permanent):
VBoxAddIF tap0 disk br0
Code:
# tap0 beenden Laut Manual:
VBoxDeleteIF tap0

So würde es zumindest funktionieren, wenn ich tap0 in den Netzwerkeinstellungen angebe, und keinen Script zum Starten einstelle, jedoch das Interface tap0 angebe.

Das ist aber witzlos, weil ich es ja nicht permanent gestartet haben möchte. Auch kommt man so nicht an der SuSEFirewall2 vorbei. Diese musste ich beenden, damit die VM einen Connect bekommt.

!---# HILFE #---!

Gruß,

R
 

spoensche

Moderator
Teammitglied
Wenn du alles eingerichtet hast und danach nicht neugestartet hast, musst du
Code:
chmod 0660 /dev/net/tun
manuell ausführen.

Hast du beim "Programm zum Einrichten" in der Gast VM
Code:
sudo /etc/virtualbox-ifup tap0 deinusername
stehen? Dein Benutzername muss in der /etc/sudoers existieren.
 
OP
revealed

revealed

Guru
Hallo

erstmal für den Überblick:
wild-thing:/home/disk # cat /etc/sysconfig/network/ifcfg-br0
Code:
# Linux Bridging Tutorial
BOOTPROTO='dhcp'
NETMASK='255.255.255.0'
STARTMODE='auto'
USERCONTROL='no'
BRIDGE='yes'
BRIDGE_PORTS='eth0'

wild-thing:/home/disk # cat /etc/sysconfig/network/ifcfg-eth0
Code:
# Bridging Tutorial:
BOOTPROTO='static'
STARTMODE='off'
NAME='ASUSTeK RTL8111/8168B PCI-E GbE'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR='0.0.0.0'
MTU=''
NETMASK=''
NETWORK=''
REMOTE_IPADDR=''
USERCONTROL='no'
FIREWALL='yes'

# Original eth0:
#BOOTPROTO='static'
#STARTMODE='auto'
#NAME='ASUSTeK RTL8111/8168B PCI-E GbE'
#BROADCAST=''
#ETHTOOL_OPTIONS=''
#IPADDR='192.168.0.3/24'
#MTU='1494'
#NETMASK='255.255.255.0'
#NETWORK=''
#REMOTE_IPADDR=''
#USERCONTROL='no'
#FIREWALL='yes'

# Bridging Functions: #
# nur doku:
#BRIDGE='yes'
#BRIDGE_PORTS='eth0 eth1'
#BRIDGE_AGEINGTIME='20'
#BRIDGE_FORWARDDELAY='0'
#BRIDGE_HELLOTIME='2'
#BRIDGE_MAXAGE='20'
#BRIDGE_PATHCOSTS='3'
#BRIDGE_PORTPRIORITIES=''
#BRIDGE_PRIORITY=''
#BRIDGE_STP='on'

wild-thing:/home/disk # ls -alh /dev/net/tun
Code:
crw-rw---- 1 root vboxusers 10, 200 21. Sep 2007  /dev/net/tun
Was chmod 0660 /dev/net/tun <- Zu 100 % entspricht. :S

Code:
Dein Benutzername muss in der /etc/sudoers existieren.
Er stünde drin!!! Allerdings selbst wenn, das nicht so währe ist das unter Umständen (vielleicht klährt mich jemand auf) denke ich unnötig, weil der Fehler scheinbar wo anders liegt, bzw mein User in der Gruppe
grep disk /etc/group
Code:
audio:x:17:disk
cdrom:x:20:disk
dialout:x:16:disk
disk:x:6:disk
floppy:x:19:disk
games:x:40:disk
haldaemon:!:102:disk
lp:x:7:disk
mail:x:12:disk,nagios
maildrop:!:59:disk,mail,nagios
man:x:62:disk
mysql:!:109:disk
nagios:!:108:disk,mail
named:!:44:disk
qemu:!:115:disk
sshlogin:x:117:disk
vboxusers:!:116:disk
video:x:33:disk
www:x:8:disk
users:x:100:disk,ftp,lp,mail,man,mysql,nagios,wwwrun
Ist --> Dennoch stünde er in der sudoers.

Dann die Berechtigungen der Scripte:
wild-thing:/home/disk # ls -alh /etc/virtualbox-if*
Code:
-rwxr-xr-x 1 root root 386 16. Okt 19:42 /etc/virtualbox-ifdown
-rwxr-xr-x 1 root root 468 16. Okt 19:40 /etc/virtualbox-ifup

Script für IFDOWN
wild-thing:/home/disk # cat /etc/virtualbox-ifdown
Code:
#!/bin/sh

# Das Script /etc/virtualbox-ifdown:
# 'chmod +x /etc/virtualbox-ifdown'
#
# Stoppt und entfernt das Hostinterface des VirtualBox Gastsystems
# von der Netzwerk- Bridge.
# Parameter $1: Hostinterface (tap[0-9])
#
# Entfernt das Hostinterface von der Netzwerk- Bridge
#/sbin/brctl delif br0 $1

# Entfernt das Hostinterface
#VBoxTunctl -d $1

# Laut Manual:
VBoxDeleteIF tap0

Script für IFUP:
wild-thing:/home/disk # cat /etc/virtualbox-ifup
Code:
#!/bin/sh
# Das Script /etc/virtualbox-ifup:
# 'chmod +x /etc/virtualbox-ifup'
# Startet das Hostinterface für das VirtualBox Gastsystem
# Parameter $1: Name des Hostinterface (tap[0-9])
# Parameter $2: Username
#
# Erstellt das Hostinterface für den User
#/usr/bin/VBoxTunctl -b -t $1 -u $2

# Startet das Hostinterface
#/sbin/ifconfig $1 up

# Das Hostinterface zur Netzwerk-Bridge hinzufügen
#/sbin/brctl addif br0 $1

# Laut Anleitung:
VBoxAddIF tap0 disk br0

Seht ihr, ich habe zwei Varianten probiert. Egal welche ich in der GUI an der Stelle wo Script für UP und DOWN steht einbinde, es kommt der Fehler von oben.

Das ist ein Bug, oder?

Und Ohne die SuSE Firewall2 zu beenden, geht es leider auch nicht.
--> Standardmäßig existiert in der /etc/sysconfig/SuSEfirewall2 folgender Eintrag nicht:
Code:
# Bridging erlauben vbox tutorial
FW_FORWARD_ALLOW_BRIDGING="auto"
Und wenn man ihn alegt, ist er leider wirkungslos. :(

wild-thing:/home/disk # grep disk /etc/sudoers
Code:
# Virtualbox Networking für 'disk'
disk ALL=NOPASSWD:/etc/virtualbox-ifup
disk ALL=NOPASSWD:/etc/virtualbox-ifdown

Wenn ich also in Virtualbox damit folgende einstellungen mache bei der VM:
Code:
>>>>Netzwerk:
Netzwerkadapter aktivieren |x|
Adapter-Typ: PCnet-FAST III (Am79C973)
Angeschlossen an: Hostinterface
Netzwerkname: (greyed out)
MAC-Adresse: (automatisch generierte)
|x| Netzwerkkabel verbunden

Einstellungen für Hostinterface
Name des Interfaces: tap0
Programm zum Einrichten: (leer)
Programm zum Entfernen: (leer)

Dann kommt die Fehlermeldung zwar nicht, aber ich muss den Script im Terminal starten und die SuSEfirewall2 beenden mit:
Code:
rcSuSefirewall2 stop

Sonst bekommt Windows XP keine IP vom router(DHCP Server NAT SPI Firewall ... ) via DHCP.

--> Also leider scheint generell die geschichte mit dem Script bei
Code:
Programm zum Einrichten: /etc/virtualbox-ifup
Programm zum Entfernen: /etc/virtualbox-ifdown
eintragen, den obrigen Fehler zu provozieren, leider. 'Auch mit der Syntax aus dem Tutorial';
Code:
Programm zum Einrichten: sudo /etc/virtualbox-ifup tap0 disk
Programm zum Entfernen: sudo /etc/virtualbox-ifdown tap0

Das Fehlerchen ist nochmals dieser hier:
Code:
Failed to initialize Host Interface Networking.
VBox status code: -3100 (VERR_HOSTIF_INIT_FAILED).


Fehlercode:
NS_ERROR_FAILURE (0x80004005)
Komponente:
Console
Interface:
IConsole {d5a1cbda-f5d7-4824-9afe-d640c94c7dcf}

... ich probier nochmal die Syntax aus dem TUT.

Gruß,

R
 
OP
revealed

revealed

Guru
OK OK !!!

Also da hat devinitiv das SUDO gefehlt!!!! ENTSCHULDIGUNG!! MEIN FEHLER!!!


Hm und wie löse ich jetzt noch die SuSEfirewall2 Problematik?

AH! DA! --_>
Code:
## Type:        string
## Default:
#
# 33.)
# Bridge interfaces without IP address
#
# Traffic on bridge interfaces like the one used by xen appears to
# enter and leave on the same interface. Add such interfaces here in
# order to install special permitting rules for them.
#
# Format: list of interface names separated by space
#
# Example:
#   FW_FORWARD_ALWAYS_INOUT_DEV="xenbr0"
#
FW_FORWARD_ALWAYS_INOUT_DEV="br0"
FW_SERVICES_ACCEPT_INT=""
FW_SERVICES_ACCEPT_DMZ=""
# Bridging erlauben vbox tutorial
#FW_FORWARD_ALLOW_BRIDGING="auto"
Also dieser Wert:
Code:
FW_FORWARD_ALWAYS_INOUT_DEV="br0"

Der isses :)

Ich habe bei br0 in der ifcfg noch folgendes ergänzt:
Code:
BRIDGE_FORWARDDELAY='0'
(beschleunigt meiner Meinung nach den Bootprozess);

Vielen Dank nochmal! Ich werde jetzt testen und falls ich noch probleme habe, werde ich euch wie immer nerven! Danke!

Gruß,

R
 

stefan.becker

Advanced Hacker
Nerven tun nur die Leute, die zu faul sind, Anleitungen zu lesen.

Du hast gelesen und probiert, also damit nicht genervt.

Also einfach fragen, wenn es weiterhin Probleme gibt.
 
OP
revealed

revealed

Guru
Also momentan bin ich reichlich zufrieden.... Bin gerade am ausprobieren Samba in Virtualbox und Windowsfreigabe. :)

Bin aber schon nen bugger irgendwie... weil ich wieder mal gemeint hab bug aber dann hätt ich doch erstmal schaun sollen "sudo" <-

Aber ich frage mich gerade, in welcher Gruppe mein disk noch sein müsste, um das sudo zu umgehen. Du hast nicht zufällig eine Idee?

Weill da gibts ja noch andere Gruppen. Oder liegt das an den Zugriffsberechtigungen für alle involvierten Dateien? Wobei mich das jetzt nicht arg stört, mit sudo. Nur wundert es mich, weil ich mir sowas normal spare.

Sudo ist für mich ein bisschen etwas wo ich mir immer denk, das hat mich früher an ubuntu vom handling her ein bisschen gestört.

Sudo dies sudo das sudo dieses sudo jenes. Aber da wusste ich noch weniger über sudo als jetzt. Und jetzt ist auch noch nicht viel.

Allerdings starte ich normalerweise wenn ich Dinge tue, die Superuserberechtigung erfordern mehrere befehle, manchmal auch zeitlich nicht vorhersagbar. Dann melde ich mich immer am liebsten gleich als su an.

Also - su

sudo hat sich bei mir nicht wirklich durchsetzen können und würde mich auch in gewisser Weise öfter beschränken.

wobei glaube ich sudo so fast das gleiche ist wie su -c oder ähnlich und mit su bin ich auch permanent angemeldet. Aber mit exit kann ich das wieder kontrolliert beenden.

*wirr*

Nochmals Danke!

Gruß,

R

PS.: Übrigens das Script aus dem Tut is sau cool, mit den Anpassungen weil ich stell dann für jede VM einfach so ein beim Script -> XP tap0; SuSE tap1; Syllable i586 tap2; ,,,, tap3 da bekommt dann automatisch jede weitere VM nen eigenesinterface.

also beispielsweise:
Code:
sudo /etc/virtualbox-ifup tap2 disk
Wo disk halt immer mein Useraccount ist.
 
Oben