Routing: Zwei Subnetze mit Linux verbinden

Hallo,

ich probiere gerade, mich vor dem Verlegen eines Ethernetkabels zu drücken, und will stattdessen den Traffic zwischen meinem PC und dem Router über den Laptop routen:

--------------- ----------------------
| router | WLAN | laptop |
| 192.168.1.1 | | wlan0=192.168.1.42 |
--------------- | eth0=192.168.3.1 |
 ----------------------
 | Kabel
 |
 ----------------------
 | PC |
 | eth1 = 192.168.3.2 |
 ----------------------

Auf laptop und PC ist jeweils ein Debian Linux drauf.

Vom laptop aus komme ich über den router ins Internet, und komme auch per ssh auf den PC (und umgekehrt auch).

Nur komme ich vom PC aus nicht zum router - und ich habe keine Ahnung warum. Auf dem laptop habe ich

sysctl -w net.ipv4.ip\_forward=1

ausgeführt, und habe folgende routing-Tabelle:

$ ip route
192.168.3.0/24 dev eth0 proto kernel scope link src 192.168.3.1 
192.168.1.0/24 dev wlan0 proto kernel scope link src 192.168.1.42 
default via 192.168.1.1 dev wlan0 

Auf dem PC sieht die routing-Tabelle so aus:

192.168.3.0/24 dev eth1 proto kernel scope link src 192.168.3.2 
192.168.2.0/24 dev eth0 proto kernel scope link src 192.168.2.1 
192.168.1.0/24 via 192.168.3.1 dev eth1 

(eth0 ist im Moment unbenutzt, sollte aber nicht stören)

Wenn ich vom PC aus probiere, den Router anzupingen, kommen einfach keine Pakete zurück. Ein traceroute zeigt als ersten Hop die Adresse 192.168.3.1 (also den laptop), und danach nur noch sternchen.

Wenn ich währenddessen auf dem laptop wireshark laufen lasse, sehe ich auf beiden interfaces (eth0 und wlan0) die ICMP-Pakete, aber es kommt einfach nichts zurück.

Was mache ich falsch?
Je mehr ich darüber nachdenke, desto mehr vermute ich, dass der router (irgend ein linksys WLAN-router-Massenprodukt) einfach das subnetz 192.168.3 nicht mag und ignoriert… hört sich das nach einer vernünftigen Hypothese an?

Viele Grüße und schönes Wochenende,
Moritz

Hi…

ich probiere gerade, mich vor dem Verlegen eines
Ethernetkabels zu drücken, und will stattdessen den Traffic
zwischen meinem PC und dem Router über den Laptop routen:

Je mehr ich darüber nachdenke, desto mehr vermute ich, dass
der router (irgend ein linksys WLAN-router-Massenprodukt)
einfach das subnetz 192.168.3 nicht mag und ignoriert… hört
sich das nach einer vernünftigen Hypothese an?

Fast. Der Router fühlt sich nur für „sein“ Subnetz zuständig, und das ist nach seinen eigenen Einstellungen .1.x
Genausowenig würde es funktionieren, den PC auf Subnetz .3.x einzustellen und direkt an den Router zu hängen.

Lösungsansatz: Die Pakete vom PC müssen am Router mit einer Absenderadresse aus Subnetz .1.x ankommen.

Erreichbar ist dieser Zustand auf mehreren Wegen:

  1. kunstvolles Verbiegen der Routing-Tabellen
    1a) lässt sich der Router evtl. auf eine Netzmaske von 255.255.0.0 einstellen? Dann würde er auch .3.x akzeptieren
  2. Einrichten des Laptop als Bridge anstatt als Router (http://openvpn.net/index.php/open-source/documentati…)
  3. NAT auf dem Laptop (http://www.karlrupp.net/de/computer/nat_tutorial)

genumi

Lösungsansatz: Die Pakete vom PC müssen am Router mit einer
Absenderadresse aus Subnetz .1.x ankommen.

Ich würde auf dem Router einfach eine Route auf das Subnetz .3.x einrichten. Ob sowas auf den handelsüblichen SOHO-Geräten möglich ist, weiss ich allerdings nicht, ich setze solche Dinger nicht ein.

Gruß

Hi…

Lösungsansatz: Die Pakete vom PC müssen am Router mit einer
Absenderadresse aus Subnetz .1.x ankommen.

Ich würde auf dem Router einfach eine Route auf das Subnetz
.3.x einrichten. Ob sowas auf den handelsüblichen SOHO-Geräten
möglich ist, weiss ich allerdings nicht, ich setze solche
Dinger nicht ein.

Richtig. Möglichkeit 4: Wenn möglich, OpenWRT auf dem Router installieren, damit geht das.

genumi