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

IP_FORWARD funktioniert nicht ?!

A

Anonymous

Gast
Hallo zusammen,
ich bastle jetzt schon seit Tagen an meinem Routingproblem und kriegs einfach nicht gebacken, wobei es scheinbar nicht soo kompliziert sein kann:

Ich habe einen SuSE 9.0 Server der 2 Netze miteinander verbinden soll:

Das erste Netz ist mein "verkabeltes Netz" mit der IP 192.168.0.x/255.255.255.0

Mein zweites Netz ist mein "kabelloses Netz" mit der IP 10.0.0.x/255.255.255.0 (bitte jetzt keine Diskussion bzgl. des Privaten IP-Adressbereichs, die hatte ich schon)

Der Server hat demnach 2 Netzwerkkarten:
eth0 mit 192.168.0.1/255.255.255.0
wlan0 mit 10.0.0.1/255.255.255.0


Meine Routingtabelle sieht so aus:

Kernel IP Routentabelle
Ziel Router Genmask Flags Metric Ref Use Iface

217.5.98.153 * 255.255.255.255 UH 0 0 0 ppp0

10.0.0.0 * 255.255.255.0 U 0 0 0 wlan0

192.168.1.0 * 255.255.255.0 U 0 0 0 eth1

192.168.0.0 * 255.255.255.0 U 0 0 0 eth0

default 217.5.98.153 0.0.0.0 UG 0 0 0 ppp0

Über ppp0 (eth1) geh ich mit DSL ins Netz. eth1 hat ne IP bekommen weil SuSE unbedingt ne IP für haben wollte.

Vom Server aus kann ich beide Netze (10er und 192er) pingen. Nur geht Von den zwei Netzen aus kann ich auch jeweils beide Netzwerkkarten pingen (10.0.0.1 und 192.168.0.1), aber nicht ins gegenüberliegende Netz (also z.b. von 10.0.0.2 zu 192.168.0.2 un umgekehrt).

In der SuSE-eigenen Firewall hab ich wlan0 und eth0 gemeinsam als internes Gerät definiert. Die Firewall-Log meldet keine Fehler oder dergleichen (alle Log-Ausgaben aktiviert). Kann also eigtl auch nicht der Fehler sein.

Im Inet hab ich gelesen daß IP_Forwarding eingeschaltet sein muss.
Ein 'cat /proc/sys/net/ipv4/ip_forward' ergibt '1', müsste also aktiv sein.
Nur funktioniert das ganze wie beschrieben ja nicht.

Ich komm einfach kein Stück vorran. Wär klasse wenn mir da jmd. nen Tipp geben könnte was ich falsch mache oder wo ich noch nach dem Fehler suchen könnte.

Gruß und Danke im vorraus
- Alex
 

Martin Breidenbach

Ultimate Guru
Wenn etwas *mit Firewall* nicht geht dann teste ich als erstes ob es denn *ohne Firewall* auch nicht geht (falls das Sinn macht). In diesem Fall wird die Firewall für den Internetzugang gebraucht und nicht für's Routen zwischen den beiden lokalen Netzen. Also schalte doch mal Firewall ab, prüfe daß Routing noch aktiv ist und probier's dann mal.
 
OP
A

Anonymous

Gast
getestet, geht nicht.

Weitere Vorschläge ?

Gruß
Alex
 

Martin Breidenbach

Ultimate Guru
Ich fasse zusammen:

Dein Server hat drei Netzwerkkarten:

eth0 mit 192.168.0.1/255.255.255.0
eth1 mit 192.168.1.1/255.255.255.0
wlan0 mit 10.0.0.1/255.255.255.0

eth1 ist mit dem DSL-Modem verbunden.

Damit Clients in den an eth0 und wlan0 angeschlossenen Netzen kommunizieren können müssen folgende Einstellungen gemacht sein:

Im Netz 192.168.0.0/24: default gateway 192.168.0.1
Im Netz 10.0.0.0/24: default gateway 10.0.0.1
Auf dem Router: IP-Forwarding ein; keine blockenden Firewall-Regeln

Natürlich dürfen auf den Clients auch keine Firewalls laufen die das blockieren (also ggf für den Test deaktivieren)

Kennst Du Dich mit Programmen wie tcpdump oder ethereal aus ? Die sind bei solchen Problemen recht nützlich um zu sehen an welcher Stelle der ping hängenbleibt.

Sind die Clients Linux oder Windows ?
 
OP
A

Anonymous

Gast
Martin Breidenbach schrieb:
Ich fasse zusammen:

Dein Server hat drei Netzwerkkarten:

eth0 mit 192.168.0.1/255.255.255.0
eth1 mit 192.168.1.1/255.255.255.0
wlan0 mit 10.0.0.1/255.255.255.0

eth1 ist mit dem DSL-Modem verbunden.
jupp, korrekt...

Damit Clients in den an eth0 und wlan0 angeschlossenen Netzen kommunizieren können müssen folgende Einstellungen gemacht sein:

Im Netz 192.168.0.0/24: default gateway 192.168.0.1
Im Netz 10.0.0.0/24: default gateway 10.0.0.1
Auf dem Router: IP-Forwarding ein; keine blockenden Firewall-Regeln
Die Default-Gateways sind auf den einzelnen Rechnern in den einzelnen Netzen eingetragen. Bis zum Server gehts (also z.b. auch ins Internet), aber nicht weiter ins andere Netz.

Natürlich dürfen auf den Clients auch keine Firewalls laufen die das blockieren (also ggf für den Test deaktivieren)
hmm, die muss mal gucken ob die Windows-Firewall aus ist, aber die dürfte das nicht stören... mal checken,. Jo ist und war aus. geht dennoch nicht.

Kennst Du Dich mit Programmen wie tcpdump oder ethereal aus ? Die sind bei solchen Problemen recht nützlich um zu sehen an welcher Stelle der ping hängenbleibt.

Sind die Clients Linux oder Windows ?
tcpdump ... n bisschen. Mal sehen was ich damit rausfinde. ethereal hab ich noch nicht verwendet.

Ob die Clients Linux oder Windows sind müsste eigtl egal sein sofern die Netzwerkeinstellung korrekt vorgenommen wurde. TCP/IP macht da ja keinen unterschied zw. kommerziellen und Open-Source Betriebssystemen.

Werd mal tcpdump anschmeißen und gucken was sich da tut...

- Alex

[update]

also, mit tcpdump sehe ich den ping aus dem 10er Netz ins 192er Netz auf dem wlan0-gerät (" icmp: echo request"), aber auf dem eth0-Gerät sehe ich davon nix.
Pinge ich vom 10er Netz die netzwerkkarte im Server mit der 192er IP sehe ich mit TCPDUMP auf wlan0 den icmp: echo request und auch den reply...

vielleicht hilft das weiter...

- Alex
 

Martin Breidenbach

Ultimate Guru
ethereal gibts auch für Windows. Hier gehts ja eigentlich nur darum zu sehen ob denn die ICMP Pakete vom ping ankommen und dazu muß man das Ding nur starten und zuschauen.

Wenn man erstmal weiß wo die pings hängenbleiben kann man da ja gezielter suchen.

Momentan sehe ich den Fehler jedenfalls nicht.
 
OP
A

Anonymous

Gast
siehe letzte msg mit dem update

- Alex
 

Martin Breidenbach

Ultimate Guru
Sieht momentan so aus als würde der Router nicht routen.

Falls Du ethereal auf einem Client installieren kannst dann mach das doch mal - dann sehen wir ob da pings ankommen oder nicht.

http://www.ethereal.com/download.html

Das wäre nicht das erste Mal hier im Forum daß eine Firewall nicht ganz so aus war wie man das eigentlich gedacht hat. Kann auch passieren daß beim Deaktivieren der Firewall das Routing mit deaktiviert wird.

Ob noch IPTABLES Regeln aktiv sind kann man prüfen mit:

iptables -L

und

iptables -t nat -L
 

framp

Moderator
Teammitglied
Ich habe eine aehnliche Konfig: eth0 (LAN) 192.168.0.0/255.255.255.0 und eth2 (WLAN) 192.168.2.0/255.255.255.0 und hatte auch Probleme mit SuSEFW2.
Nachdem ich forwarding zwischen beiden NICs enabled hatte ging alles bestens.

iptables -A FORWARD -i eth0 -o eth2 -j ACCEPT und umgekehrt. Wie man das mit SuSEFW2 Mitteln hinkriegt weiss ich leider nicht. Wenn's jemand weiss: Bitte posten ;)
 

Martin Breidenbach

Ultimate Guru
In SuSEFirewall2 muß Routing explizit aktiviert werden. Es reicht NICHT Routing im Yast unter IP-Weiterleitung zu aktivieren.

Die betreffenden Einträge lassen sich durch Lesen der SuSEFirewall2 Datei eigentlich gut finden. Da das aber irgendwie immer wieder Probleme macht:

#5)
FW_ROUTE="yes"

... und bitte den Text im Abschnitt 5 lesen !
 
OP
A

Anonymous

Gast
hi,
das FW_ROUTE hab ich in meiner FW-Einstellung auf YES, habe auch eth0 und wlan0 als interne Geräte definiert....

Egal, probiere jetzt mal noch die eben genannte iptables-zeile aus... dann muss ich erstmal ne nacht drüber schlafen bevor ich weiter bastel...

so far, good n8

- Alex
 
OP
A

Anonymous

Gast
hey ich habs....

die Idee mit dem posten der Einstellungen meines Firewall-Scripts hat mich drauf gebracht...
Beim löschen der KOmmentare zwischen den Optionen bin ich ganz weit unten bei den Experteneinstellungen (an die ich mich nie gewagt habe) auf folgendes gestoßen:
Code:
# 23.)
# Allow same class routing per default?
# REQUIRES: FW_ROUTE
#
# Do you want to allow routing between interfaces of the same class
# (e.g. between all internet interfaces, or all internal network interfaces)
# be default (so without the need setting up FW_FORWARD definitions)?
#
# Choice: "yes" or "no", if not set defaults to "no"
#
FW_ALLOW_CLASS_ROUTING="no"

na das hört sich doch prima an... Nach weiterm suchen bin ich noch auf ne weitere Info gestoßen:

Code:
# *Any* routing between interfaces except masquerading requires to set FW_ROUTE
# to "yes" and use FW_FORWARD or FW_ALLOW_CLASS_ROUTING !

Also gleich die Option eingeschaltet, Firewall neu gestartet und siehe da.. meine Pings kommen an.. Bin ja so happy dass das jetzt geht...
Naja, manchmal sieht man den Wald vor lauter Bäumen nicht.
Danke nochmal...
Gruß und gute Nacht

- Alex
 

Martin Breidenbach

Ultimate Guru
Na dann mal herzlichen Glühstrumpf !

Allerdings hätte das bei abgeschalteter Firewall und eingeschaltetem IP-Forwarding auch funktionieren sollen. Da war dann doch was nicht so wie's sein sollte...
 

framp

Moderator
Teammitglied
Das ist der Grund warum viele auf den SuSEWF2 fluchen. netfilter/iptables ist sehr gut beschrieben. SuSEWF2 erzeugt letztendlich auch iptables rules - nur ist leider die Dokumentation spaerlich und die Auswirkungen der einzelnen Definitionen nicht sehr klar (Welche Definitionen erzeuugen welche Rules ...). Man kann die Scripts studieren - ist allerdings nicht jedermans Sache.

Deshalb setze ich SuSEWF2 basismaessig ein - aber alle etwas komplexeren Rules definiere ich mir selbst per netfilter.

Dieser Thread ist wieder ein Beispiel dafuer, dass SuSEWF2 als Grundschutz taugt - fuer weitergehende Dinge allerdings durch die - gottseidank vorgesehenen Exits - explizit mit iptables Rules customized werden muss.


PS von Carsten: Hab die 2 anderen gleichen Beiträge gelöscht...
 
Oben