LAN und WLAN gleichzeitig - Suse 9.0

Moin moin,

mein PC1 (Suse 9.0) läuft wunderbar mit WLAN. Nun möchte ich einen anderen PC2 (WinXP) auch ans INet anschliessen, der hat aber nur LAN. Also hab ich die beiden mit Cross-Over verbunden, Samba läuft auch. Dann wollte ich PC1 als Gateway für PC2 laufen lassen. Aber das geht nicht.
Sobald ich eth0 aktiviert habe, funktioniert wlan0 nicht mehr. Ich kann auch die Funkkarte vom PC1 nicht mehr anpingen. eth0 und wlan0 haben unterschiedliche IPs.
Beim booten kommt bei wlan0 ein „failt“.

Wo muss ich denn Eintragungen vornehmen, damit beide Netzwerkkarten zusammen funktionieren?

Vielen Dank
Steffi

eth0 und wlan0 haben unterschiedliche IPs.

Benutzt du da zufälligerweise die gleichen IPs wie mein Nachbar oder diese neuen amerikanischen, die auf Terrorschutzgründen geheim gehalten werden müssen?

PC1 (wlan0)
Adresse: 192.168.1.33
Gateway: 192.168.1.1 (IP des WLAN-Routers)
DNS: den deines Providers

PC1 (eth0)
Adresse: 192.168.2.1
Gateway: 192.168.1.1 (IP des WLAN-Routers)

PC2 (eth0)
Adresse: 192.168.2.33
Gateway: 192.168.2.1 (IP von PC1)
DNS: den deines Providers

Bis dahin: alles lustig. Werden wir also noch lustiger:
Auf dem WLAN-Router statische Route einrichten (aha!):
192.168.2.0/24 --> 192.168.1.33 (Pakete an das PC2-Netz sollen an PC1 geroutet werden).

Zusammenfassung:

  • Die Netzwerkkarten auf PC1 ()wlan0 und eth0 müssen zwingend in unterschiedlichen Netzen stehen.

  • Der WLAN-Router muss die Route zu PC2 über PC1 kennen, damit die lieben Paketchen auch zurückkommen

Jetzt ist aber Schluß mit lustig. Viel Erfolg.

Stefan

HI

Benutzt du da zufälligerweise die gleichen IPs wie mein
Nachbar oder diese neuen amerikanischen, die auf
Terrorschutzgründen geheim gehalten werden müssen?

-)

das probiere ich mal heute abend aus.
Reicht es nicht aus, dass ich auf PC1(suse) ein Routing einrichte?
also was auf eth0 aufläuft an wlan0 weiterleiten?

steffi

das probiere ich mal heute abend aus.
Reicht es nicht aus, dass ich auf PC1(suse) ein Routing
einrichte?

Du musst auf PC1 gar nichts einrichten außer die IP-Adressen der Netzwerkkarten. Die dürfen nicht im gleichen Netz sein.

also was auf eth0 aufläuft an wlan0 weiterleiten?

Nein, weil du das nicht willst. Vielleicht willst du ja von PC2 auf PC1 zugreifen (per Samba oder SSH) und dann würden diese Pakete immer an wlan0 weitergeleitet und eine Verbindung käme nicht zustande (glaub ich zumindest).

Deine Konfiguration ist etwas komplizierter als die vieler anderer Kinder. Das Internet ist für PC2 nämlich nur über zwei Router zu erreichen. Und das Internet erreicht PC2 auch nur über zwei Router.

Nehmen wir an, du willst auf PC2 surfen gehen, tipperst http://17.112.152.32 ein und drückst Return.

PC2 sendet ein SYN-Paket an 17.112.152.32. Das Paket geht zu PC1, von dort aus zum WLAN-Router, wird dort ausgetauscht gegen eine öffentliche IP-Adresse (NAT) und erreicht schließlich irgendwann den Zielserver. Der sendet erstmal ein ACK-Paket zurück, und zwar an den WLAN-Router.

Der hat sich gemerkt, dass er das an PC2 zurücksenden muss (an 192.168.2.33), aber auwei! einen Rechner mit dieser IP-Adresse gibt es nicht in seinem Netz (das ist ja 192.168.1.0). Die Antwort des Webservers erreicht also PC2 nicht mehr, der WLAN-Router weiß ja nichts von einem anderen Netz.

Also musst du ihm genau das beibringen. Keine Ahnung, was du für einen Router hast (scheint ja ebenfalls Top Secret zu sein), aber die haben alle so etwas wie static route oder so. Dort gibst du PC1 als Router für das Zielnetz 192.168.2.0 ein. Erst danach kennt der WLAN-Router das andere Netz.

Für PC1 muss nichts weiter unternommen werden, der bleibt so wie er ist und der macht auch alles allein.

In solchen Fällen: mach dir eine Zeichnung. Stelle dir immer den Lauf eines Paketes vor und zwar den Hinweg als auch den Rückweg! Letzteres wird oft vergessen und dann klappts natürlich nicht, dabei ist der Rückweg genauso wichtig. Stelle dir an jeder Stelle deines Plans die Frage, ob das Paket auch dort hinkommen kann.

Hilfreich ist immer der Befehl traceroute (oder tracert auf Windows-Systemen).

Gruß,
Stefan

1 Like

Also musst du ihm genau das beibringen. Keine Ahnung, was du
für einen Router hast (scheint ja ebenfalls Top Secret zu
sein), aber die haben alle so etwas wie static route
oder so. Dort gibst du PC1 als Router für das Zielnetz
192.168.2.0 ein. Erst danach kennt der WLAN-Router das andere
Netz.

Für PC1 muss nichts weiter unternommen werden, der bleibt so
wie er ist und der macht auch alles allein.

naja, man koennte auch auf dem PC, der jetzt schon ins Indernet kommt einfach Masquerading fuer das 2er Netz einrichten. Braucht man nix am WLan-Router tun. Ist ja nur eine Befehlszeile, kann ich heute Abend posten, wenn ich @Home bin…

micha

FullACK, aber:

Für PC1 muss nichts weiter unternommen werden, der bleibt so
wie er ist und der macht auch alles allein.

Linux reicht by default keine Pakete weiter. Dazu musz der Kernel mit einer 1 im /proc/sys/net/ipv4/ip_forward (2.4.x) getreten werden. Im YaST gibt’s da bestimmt irgendwo einen Haken fuer.

HTH,
Gruss vom Frank.

Für PC1 muss nichts weiter unternommen werden, der bleibt so
wie er ist und der macht auch alles allein.

naja, man koennte auch auf dem PC, der jetzt schon ins
Indernet kommt einfach Masquerading fuer das 2er Netz
einrichten.

Normales NAT ist schon *oergs*, doppeltes ist die Tautologie der Perversion. Zum Glueck brauchen wir das mit IPv6 (in fuenf Jahren) nicht mehr.

Ist ja nur eine Befehlszeile, kann ich heute Abend posten, wenn
ich @Home bin…

# iptables -t nat -A POSTROUTING -j MASQUERADE -o eth0
# echo 1 \>/proc/sys/net/ipv4/ip\_forward # immer noch

HTH,
Gruss vom Frank.

Normales NAT ist schon *oergs*, doppeltes ist die Tautologie
der Perversion. Zum Glueck brauchen wir das mit IPv6 (in
fuenf Jahren) nicht mehr.

Naja, es funktioniert halt und minimiert den Aufwand. Ausserdem hat es den riesen Vorteil, dass man am Router nix drehen muss, zumal wenn man wie ich keinen Zugriff drauf hat…

Naja, bei mir sieht das halt so aus:

#!/bin/sh

MASQNET=192.168.1.0/24 

iptables -A POSTROUTING -t nat -s $MASQNET -j MASQUERADE

echo 1 \>/proc/sys/net/ipv4/ip\_forward

echo "IP-Masquerading aus Netz $MASQNET eingerichtet..."

micha

Linux reicht by default keine Pakete weiter. Dazu musz der
Kernel mit einer 1 im /proc/sys/net/ipv4/ip_forward (2.4.x)
getreten werden.

Uppsa, stimmt. Also Terminal öffnen und beherzt

echo 1 \> /proc/sys/net/ipv4/ip\_forward

eingeben und danach
die Returntaste drücken.

Stefan

[recovery]

> echo 1 \> /proc/sys/net/ipv4/ip\_forward

Zu mitternaechtlicher Stunde habe ich mal $viel Zeit damit verbracht, herauszufinden, warum denn dieses bloede, $&%z/

# echo 1\> /proc/sys/net/ipv4/ip\_forward

nicht funktionieren will. Was ein winziges Detail wie ein (fehlendes) blank so alles anrichten kann… Und ich war kurz davor, den Kernel neu zu kompilieren.

Gruss vom Frank.

läuft!!
hi

es klappt!! als letztes haperte es noch am IPForwarding.

vielen dank