ich arbeite mit VirtualBox OSE 3.2.4 und moechte ein Routing-Szenario
aufbauen. Das Problem ist, dass das Szenario am Ende nicht routet.
Wer kann sagen, wo mein Denkfehler in diesem Szenario ist?
1. Das Szenario
Host-Rechner
- ist ein Debian Lenny
- an eth0 steckt mein DSL-Modem
- vboxnet0 ist das virtuelle Network-Interface als "Host-only"-Network
- eth0 bleibt vom Host unbenutzt
- vboxnet0 soll auf die Adresse 10.0.0.1 hoeren
- ist ebenfalls Debian Lenny
- an eth0 steckt ein Host-only-Adapter namens vboxnet0
- an eth1 steckt ein Bridged-Adapter, den VB-OSE an eth0 des Hosts weiterreicht
- eth0 soll auf die Adresse 10.0.0.3 hoeren
- eth1 soll auf die Adresse xxx.xxx.xx.xxx hoeren (teilt der DSL-Provider zu)
Der Gast-Rechner 10.0.0.3 soll ueber eth1 direkt auf das DSL-Modem
zugreifen, ohne dass der Host-Rechner etwas davon mitbekommt.
Der Gast-Rechner 10.0.0.3 soll so eine Verbindung zum Internet
aufbauen.
Der Gast-Rechner 10.0.0.3 soll anschliessend der Internet-Router werden.
Der Host-Rechner soll die Verbindung zum Internet ausschliesslich
ueber 10.0.0.3 bekommen.
Spaeter sollen weitere Gast-Rechner ebenfalls ueber 10.0.0.3 an das
Internet gehen koennen.
Installation
Damit Gast 10.0.0.3 routen kann, habe ich bei "/etc/sysctl.conf" ein
"net.ipv4.ip_forward=1" hinterlegt.
Kontrolle: Nach dem Restart von Gast 10.0.0.3 enthaelt
"/proc/sys/net/ipv4/ip_forward" eine "1". Also ist der Gast ein Router.
Der Host enthaelt in dieser Datei eine "0", und hat demnach nicht die
Faehigkeit zu routen.
Inbetriebnahme
Ich starte den Host-Rechner.
Wenn ich "route -n" eingebe, dann kommt diese Routing-Tabelle:
Code: Alles auswählen
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 eth0
0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 eth0
Nun starte ich VirtualBox OSE und den Router (Gast 10.0.0.3).
Sobald der Gast laeuft, ist auf dem Host eine weitere Route
hinzugekommen. Also so:
Code: Alles auswählen
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.0.0 U 0 0 0 vboxnet0
10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 eth0
0.0.0.0 10.0.0.1 0.0.0.0 UG 0 0 0 eth0
Code: Alles auswählen
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 10.0.0.3 0.0.0.0 UG 0 0 0 eth0
eine Route hinzu, die besagt, dass saemtliche Anfragen von 10.0.0.3 aufgeloest
werden sollen. Also so hier:
Code: Alles auswählen
# route del -net 10.0.0.0 netmask 255.0.0.0
# route del -net 0.0.0.0 netmask 0.0.0.0
#
# route add -net 0.0.0.0 netmask 0.0.0.0 gw 10.0.0.3
Code: Alles auswählen
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
10.0.0.0 0.0.0.0 255.255.0.0 U 0 0 0 vboxnet0
0.0.0.0 10.0.0.3 0.0.0.0 UG 0 0 0 vboxnet0
manuell eine Verbindung ueber das Internet per DSL her:
Code: Alles auswählen
# route del -net 0.0.0.0 netmask 0.0.0.0
# pppoe -I eth1 -A
# pon dsl-provider
Code: Alles auswählen
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
xxx.xxx.xx.xxx 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
10.0.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
Bemerkenswert ist, dass ich die ganze Zeit ueber vom Host aus SSH-Sitzungen
zu Gast 10.0.0.3 geoeffnet habe. Die funktionieren auch die ganze Zeit ueber.
Wenn ich im System von Gast 10.0.0.3 einen Web-Browser oeffne, dann habe ich
dort ganz normal Internet.
Wenn ich im Host-System einen Web-Browser oeffne, dann habe ich kein Internet.
Wenn ich vom Gast aus externe IP-Adressen anpinge, dann gibt es 100% Response.
Wenn ich vom Host aus die gleiche IP-Adressen anpinge, dann gehen saemtliche
Pakete verloren.
Obwohl also Gast 10.0.0.3 ein Router ist (siehe ip_forward), und jede einzelne
Route auf beiden Systemen aus meiner Sicht gesehen logisch ist, routet
offenbar der Router nicht.
3. Fragen
Wo ist hier mein Denkfehler?
Kann es sein, dass irgendein Dienst neugestartet werden muss, wenn ich
Routen frisch gesetzt habe? Wenn ja, welcher? Bisher war ich es gewoehnt,
dass Aenderungen an den Routen sofort von Linux erkannt werden. Ich
habe allerdings nur wenige Erfahrungen, was das Routen unter Linux betrifft
und brauche daher dieses Szenario, um meine Kenntnisse auszubauen.
Ich freue mich wie immer ueber jede Antwort, die hier weiterhilft.
Besten Dank im Voraus,
dolphin