the-last-gentleman-jack
Goto Top

Linux Forwarding, Routing 2 interfaces brauchen je ein "default gateway"

Moin moin,

ich möchte grade von einem virtuellen netzwerk (virtual box) den ganzen netzwerk traffic über ein bestimmtes interface routen zu einem bestimmten gateway.
doch meine versuche funktionieren nicht so ganz... (erläuter ich ganz unten noch mal ausführlicher)

Das komplette netzwerk besteht auf 3 netzen mit 5 wichten schnittstellen (Gateway1, Gateway2, eth0, eth1, vboxnet0)
- Netz 1: 192.168.56.0/24 (Virtuelles Host only Netzwerk mit der schnittstelle vboxnet0)
- Netz 2: 192.168.0.0/24 (eth0 , Gateway:192.168.0.1)
- Netz 3: 192.168.10.0/24 (eth1, Gateway:192.168.10.1)

Linux Debian 8 ist ein Client mit 2 Schnittstellen eth0,eth1 - der mit VirtualBox einige VMs hat - die virtuelle Schnittstelle ist vboxnet0
an eth0 liegt das 192.168.0.0 Netz an - dort stehen einige Office Maschienen und ein Router(GW .0.1) nach Draußen.
an eth1 liegt ein spezielles Netz an .10.0 - in diesem Netz befinden sich noch einige Diagnostik-Rechner und ein Gateway (.10.1) nach Draußen

# route -n
Kernel-IP-Routentabelle
Ziel            Router          Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.0.1     0.0.0.0         UG    1024   0        0 eth0
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
192.168.10.0    0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.56.0    0.0.0.0         255.255.255.0   U     0      0        0 vboxnet0

# iptables --table filter --list --verbose
Chain INPUT (policy ACCEPT 4673 packets, 585K bytes)
 pkts bytes target     prot opt in     out     source               destination

Chain FORWARD (policy ACCEPT 222K packets, 323M bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 ACCEPT     all  --  eth1   vboxnet0  anywhere             192.168.56.0/24
    0     0 ACCEPT     all  --  vboxnet0 eth1    192.168.56.0/24      anywhere

Chain OUTPUT (policy ACCEPT 754 packets, 84975 bytes)
 pkts bytes target     prot opt in     out     source               destination

der tracert google.de befehl auf einer der virtuellen maschienen liefert folgendes:

>tracert google.de
Routenverfolgung zu google.de [172.217.22.99] über maximal 30 Hops:

1    <1 ms     <1 ms     <1 ms  192.168.56.1
2    <1 ms     <1 ms     <1 ms  192.168.0.1
3 ...... [rest nicht mehr relevant]


Also wenn eine virtuelle maschiene aus dem VBOX netz traffic generiert - muss der zwangsweise über die vboxnet0 schnittstelle.
nun soll jeder traffic des 'vboxnet0' interfaces über die eth1 schnittstelle zum gateway des 192.168.10.0 netzes (192.168.10.1) und von dort aus dann sonst wo hin.
aber traffic der von dem linux host kommt soll über eth0 zum gateway des 102.168.0.0 netzes (192.168.0.1).
(nun darf aber kein datenverkeht der von anderen geräten aus den 192.168.0.1 oder 192.168.10.0 netzen in das jeweilige andere geroutet werden)

hatte ich überhaupt den richtigen ansatz ?

ich bin hier seit einiger zeit am versagen - echt kompliziert das ganze ^^
wäre echt schön wenn mir wer das thema näher bringen kann - ich noch sehr unsicher mit linux und netzwerken etc..
Ich bin euch sehr dankbar für die zeit die ihr für meine frage opfert =)

lg jack

Content-Key: 378427

Url: https://administrator.de/contentid/378427

Printed on: April 19, 2024 at 08:04 o'clock

Member: aqui
aqui Jun 27, 2018 updated at 09:35:31 (UTC)
Goto Top
aus dem VBOX netz traffic generiert - muss der zwangsweise über die vboxnet0 schnittstelle.
Das ist richtig !
vboxnet0 ist eine Schnittestelle auf dem Hypervisor. Bedenke dazu das der Hypervisor selber IPv4 Forwarding (Routing) aktiviert haben muss sonst wird diese Traffic vom Hypervisor verworfen und nicht geforwardet und aller Traffic aus dem VBOX Segment damit vollkommen isoliert !
nun soll jeder traffic des 'vboxnet0' interfaces über die eth1 schnittstelle zum gateway des 192.168.10.0 netzes (192.168.10.1) und von dort aus dann sonst wo hin.
Das ist relativ einfach.
Dazu muss der Hypervisor, wie oben schon gesagt, selber IPv4 Forwarding aktiviert haben und...
Er muß ein Default Gateway bzw. eine Default Route und zwar nur ein eine einzige und keine mehrfachen Default Routen am Interface eth1 also dem .10.0er Netz definiert haben.
Logischerweise sollte das Default Gateway was der Hypervisor definiert hat dann auch die Rückroute kennen mit einer statischen Route auf das VBOX Netzwerk.
Fertsch bis dahin.
aber traffic der von dem linux host kommt soll über eth0 zum gateway des 102.168.0.0 netzes (192.168.0.1).
Du meinst aus dem 192.168.0.0er Netz, oder ?
Das bekommst du dann nur über eine Policy Route hin.
Ist ja klar, denn dein Host hat ja eine Default Route auf ein gateway im 192.168.10.0er Netz, routet also logischerweise alles was er selber nicht kennt, sprich also alles was NICHT direkt an ihm selber angeschlossen ist über dieses Interface (.10.0er Netz) an das dortige Default Gateway.
Du musst nun über eine Policy Route dem Rechner sagen das alles was als Source IP die 192.168.0.1 hat aber bitte NICHT an das Default Gateway im .10.0er Netz gehen soll sondern bitte an ein Gateway X im 192.168.0.0er Netz.
Das ist unter Linux ganz einfach.
hatte ich überhaupt den richtigen ansatz ?
Diese Frage können wir dir ja schwerlich zeilführend beantworten weil wir hier ja gar nicht wissen was du final erreichen willst ?!
ich bin hier seit einiger zeit am versagen - echt kompliziert das ganze
Unverständlich, denn das ist simplestes IP Routing aus der Grundschule und bei deinen popeligen sage und schreibe 3 IP Netzen ja nun wahrlich keine wirkliche Herausforderung !

P.S.: Deine Shift Taste am Keyboard ist irgendwie defekt. Solltest du mal reparieren, denn es ist nicht gerade angenehm solche Texte in Bezug auf orthografische Übersicht lesen zu müssen face-sad
Member: the-last-gentleman-jack
the-last-gentleman-jack Jun 27, 2018 at 11:30:05 (UTC)
Goto Top
"Unverständlich" ich hatte weder Lehrer noch sonst wen, um verständis Fragen zu klären und mit brüchigem Englisch kommt man auch nicht immer weiter.. zumindest schön für dich das dir jemand die Grundlagen beigebracht hat c:
naja wie auch immer, bin ja nicht zum rechtfertigen hier

Hypervisor selber IPv4 Forwarding (Routing) aktiviert haben
das ist der Fall! als es nur ein Netz gab (192.168.0.0) hat das auch super funktioniert, nun kam das zweite mit der nächsten Schnittstelle dazu.

eine Default Route und zwar nur ein eine einzige und keine mehrfachen Default Routen am Interface eth1 also dem .10.0er Netz definiert haben.
ich habe in /etc/network/interfaces folgenden Eintrag hinzugefügt (ist das, dass was du meinst?):
[nano2.2.6]
...
#eth1
allow-hotplug eth1
iface eth1 inet static
  address 192.168.10.11
  netmask 255.255.255.0
  gateway 192.168.10.1
  dns-domain [Domain]
  dns-nameserver [erreichbarer Host]

Logischerweise sollte das Default Gateway was der Hypervisor definiert hat dann auch die Rückroute kennen mit einer statischen Route auf das VBOX Netzwerk.
192.168.56.0    0.0.0.0         255.255.255.0   U     0      0        0 vboxnet0
ist das nicht das hier ?

Du musst nun über eine Policy Route dem Rechner sagen das alles was als Source IP die 192.168.0.1 hat aber bitte NICHT an das Default Gateway im .10.0er Netz gehen soll sondern bitte an ein Gateway X im 192.168.0.0er Netz.
was muss ich mir dazu genauer angucken ? bzw. kann ich das mit iptables erledigen? wie könnte das Ergebnis als Beispiel in den Tabellen aussehen ? (0.0.0.0 192.168.0. 0.0.0.0 UG 1024 0 0 eth )


weil wir hier ja gar nicht wissen was du final erreichen willst ?!
hm.. ich hatte versucht es zu beschreiben

nun soll jeder traffic des 'vboxnet0' interfaces über die eth1 schnittstelle zum gateway des 192.168.10.0 netzes (192.168.10.1) und von dort aus dann sonst wo hin.
aber traffic der von dem linux host kommt soll über eth0 zum gateway des 102.168.0.0 netzes (192.168.0.1).
(nun darf aber kein datenverkeht der von anderen geräten aus den 192.168.0.1 oder 192.168.10.0 netzen in das jeweilige andere geroutet werden)

naja und da eine VM mit tracert mir zeigt das sich für das falsche interface entschieden wird um nach Draußen zu kommunizieren ... und nun steh ich da...


#Nachtrag

was ich hätte noch erwähnen sollen ist wo die linux maschiene in der topologie sitzt und die periferie*

Linux Debian 8 ist ein Client mit 2 Schnittstellen eth0,eth1 - der mit VirtualBox einige VMs hat - die virtuelle Schnittstelle ist vboxnet0
an eth0 liegt das 192.168.0.0 Netz an - dort stehen einige Office Maschienen und ein Router(GW .0.1) nach Draußen.
an eth1 liegt ein spezielles Netz an .10.0 - in diesem Netz befinden sich noch einige Diagnostik-Rechner und ein Gateway (.10.1) nach Draußen