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

suse 8.2 routing 2 subnetze 2 interfaces, IP_FORWARD="y

Hy,
Ich seh die ganze Zeit gespannt zu, da ich vor dem gleichen Problem Stehe.
Ich bin allerdings ein wenig weiter als du !!
Kurzinfo zur Umgebung.:
Suse 9.0 prof.
Routing im LAN über 3 Interfaces, 3Netzsegmente.
vorerst ohne Internet-anbindung, weil ich das LAN-Netz erst richtig laufen haben will !
Die Netze sind *.*.0.0/24 ; *.*.1.0/24 : *.*.2.0/24
Die Nic´s haben die Ip´s :*.*.0/1/2.10 was auch jeweils für die Clients die Gateway-IP´s im jeweiligen Subnetz darstellt.!

Ich habe die Firewall mitlerweile abgeschaltet. (weils damit nicht ging)

Ip_forwarding ist auf 1 (über Konsole)

Ich kann routen vom Client in Netz *.*.0.0 auf *.*0.10 / *.*.1.10 / *.*.2.10 also die jeweiligen Server IP´s, jedoch kein anderen Client im Netz.!

und vom

Client in Netz *.*.1.0 und vom Client in Netz *.*.2.0 allerdings nur auf die jeweilige Gateway IP im gleichen Netz.

soweit zum Problem..


Und jetz kommts ...

Wenn ich den Befehl...

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

und das gleiche für eth1 und eth2 angebe,kann ich plötzlich, zumindest vom Client in Netz *.*.0.0 auf alle IP´s (also auch die Clients) auch in den anderen Subnetzen Pingen.
allerdings auch nur von dort. Aus nem anderen Subnetz heraus (also von nem Client von *.*.1.0 oder *.*.2.0) gehts denn immer noch nicht.. ???? :?:

Vieleicht hilft diese feststellung den Leuten die sich mit sowas auskennen um ne Lösung für das Problem zu finden..
Falls ich das Ganze etwas durcheinander schreibe, SORRY. weiß nicht wie ich es anders erklären soll..
Hab gerade nen Topic mit der gleichen Fragestellung im Forum laufen >>http://www.linux-club.de/viewtopic.php?t=7511&sid=c102784aba38c095467823bff8d8d571 << jedoch noch keine passende Antwort...Ich wär ebenfalls froh das Problem endlich als gelöst anzusehen um mich dann ums wesentliche zu kümmern.. :roll:


MfG

DaSteinmetz
 

Martin Breidenbach

Ultimate Guru
Wenn das mit Masquerading geht und ohne nicht dann findet der irgendwie den Rückweg nicht.

So etwa geht das ohne Masquerading:

Server hat 192.168.1.1 und 192.168.2.1

Client 192.168.1.2 pingt 192.168.2.2:

PING:
192.168.1.2 -> 192.168.2.2 über 192.168.1.1 weil ..2.2 liegt in anderm Subnetz und 1.1 ist default gateway

192.168.1.1 -> 192.168.2.1 mit 192.168.1.2 als Absender da routing eingeschaltet ist

192.168.2.1 -> 192.168.2.2 mit 192.168.1.2 als Absender

PONG:
192.168.2.2 -> 192.168.1.2 über 192.168.2.1 weil ...1.2 liegt in anderem Subnetz und 2.1 ist default gateway

192.168.2.1 -> 192.168.1.1 mit 192.168.2.2 als Absender da routing eingeschaltet ist

192.168.1.1 -> 192.168.1.2 mit 192.168.2.2 als Absender

Mit Masquerading:

Client 192.168.1.2 pingt 192.168.2.2:

PING:
192.168.1.2 -> 192.168.2.2 über 192.168.1.1 weil ..2.2 liegt in anderm Subnetz und 1.1 ist default gateway

192.168.1.1 -> 192.168.2.1 mit 192.168.1.2 als Absender da routing eingeschaltet ist

192.168.2.1 -> 192.168.2.2 mit 192.168.2.1 als Absender wegen Masquerading; merkt sich aber die Adressersetzung für eine eventuelle Antwort

PONG:
192.168.2.2 -> 192.168.2.1 weil der stand als Absender drin

192.168.2.1 -> 192.168.1.1 Masquerading ersetzt ..2.1 wieder durch 1.2 und leitet weiter

192.168.1.1 -> 192.168.1.2 mit 192.168.2.2 als Absender

Der Unterschied ist: bei eingeschaltetem Masquerading muß 192.168.2.2 NICHT den Weg zu 192.168.1.2 kennen. Es ist deswegen auch unmöglich daß 192.168.2.2 den 192.168.1.2 anpingt.

Öhm... war das verständlich ?
 
Hy,

Martin Breidenbach schrieb:
Öhm... war das verständlich ?

Jo, DANKE das war´s soweit ..


Weiß denn jemand z.b. wie Windoof das intern regelt mit der Netzwerkbrücke ?? Da funzt das doch auch..
Zumindest wird doch dort ein Komplettes Netzsegment auf mehrere Karten verteilt..

Ich hatte z.b. den Server vorher mit Win2k3 laufen und ne Netzwerkbrücke über die 3 NKarten gebauten.. Das lief soweit gut.

Routing&RAS hat ich auch schon nicht gepeilt..da sah es genauso aus wie jetzt bei Linux und Routing..

Also wo ist der Denkfehler ?

Der Server weiß doch wo sich die Netze befinden..-> er bekommt ne Anfrage aus NETZ A zu nem Client in NETZ B...

Schön, Bis zur Schnittstelle B schafft er es auch.. warum nicht weiter ?

und warum Kommt der Client in NETZ B mit seiner Anfrage zum Client in NETZ A nur bis zur Schnitstelle A ???

Ich Peil das nicht.. ganz ehrlich.!! :cry:

Welche Dienste müßen denn zwangsläufig gestartet sein Bei einem Routing wie Diesen genannten ??

Ist "deppdoedel" mitlerweile etwas weitergekommen ?

MfG

DaSteinmetz
 
OP
D

deppdoedel

Newbie
DaSteinmetz schrieb:
Hy,

Martin Breidenbach schrieb:
Ist "deppdoedel" mitlerweile etwas weitergekommen ?

für alle mitleser und -denker:
hallo zusammen, bin nun auch wieder da.
habe letztes wochenende mal wirklich alles gecheckt, und hier nun die (zum großen teil) funktionierende zusammenfassung.
habe, der einfachheit halber, alles mal in einem eigenen testumfeld aufgebaut.

zwei netze: 1.0 und 2.0

zwei server, beide unter linux (nennen wir sie mal S1 und S2):
S1 mit zwei netzwerkkarten 1.201 (eth0) und 2.201 (eth1)
.....auf S1 laufen auch dhcp (für beide netze) und nameserver (nur 1.201)
S2 mit einer netzwerkkarte 2.10

zwei clients (windoof, nennen wir sie mal C1 und C2), beide erhalten ihre adresse über dhcp von S1:
C1: 1.130 (dhcp von S1 über 1.201)
C2: 2.240 (dhcp von S1 über 2.201)

ein hardware-router (stellt die verbindung ins internet her), ist als default-gw bei S1 eingetragen:
R1: 1.1 (intern), die externe IP wird vom provider dynamisch zugewiesen.

folgende einstellungen sind notwendig, um allen clients/servern von 1.x nach 2.x und umgekehrt zu verhelfen:

auf S1:
default / x.y.1.1 / - - eth0
x.y.1.0 / x.y.1.201 / 255.255.255.0 / eth0
x.y.2.0 / x.y.2.201 / 255.255.255.0 / eth1

auf S2:
default / x.y.2.201 / 255.255.255.0

auf clients:
per dhcp wird zugewiesen für:
C1: x.y.1.130, gw=x.y.1.201
C2: x.y.2.240, gw=x.y.2.201
C1+C2: nameserver ist der x.y.1.201

ab hier können alle mit- und untereinander !!

JETZT KOMMT'S ABER:
nicht alle !!! C2 (mit 2.240) kann den router auf 1.1 NICHT anpingen/erreichen.

so, wer hat ideen, oder weiß, wo der haken liegt?

mit morgendlichen denksport-grüßen, der deppdoedel
 
Hy,

mit anderen Worten MUSS man also nen Nameserver am Start haben, damit sich alle untereinander verständigen können ??

Dein Client 2 aus der Testumgebung, hat der nur Probleme den Router anzupingen, oder generell alle Ip´s im anderen Netz ?

Ich werd das mit nem Nameserver mal Testen.. aber .. kanns denn wirklich sein das der Router das nicht ohne Nameserver hingricht ??

MfG

DaSteinmetz
 

Martin Breidenbach

Ultimate Guru
Ein DNS-Server wird nur für Namensauflösung benötigt (also um zu einem Namen wie www.suse.de die zugehörige IP-Adresse zu finden).

Solange man beim ping die IP-Adresse angibt braucht man dazu keinen DNS-Server.

Wenn man symbolische Namen statt IP-Adressen verwenden will dann benötigt man eine Namensauflösung. Diese kann realisiert werden über:

- /etc/hosts
- DNS-Server
- ohne DNS-Server, mit Multicast DNS (.local Domäne)
- WINS (*NUR* für NetBIOS / Samba)
 
OP
D

deppdoedel

Newbie
DaSteinmetz schrieb:
Hy,
mit anderen Worten MUSS man also nen Nameserver am Start haben, damit sich alle untereinander verständigen können ??
Dein Client 2 aus der Testumgebung, hat der nur Probleme den Router anzupingen, oder generell alle Ip´s im anderen Netz ?
Ich werd das mit nem Nameserver mal Testen.. aber .. kanns denn wirklich sein das der Router das nicht ohne Nameserver hingricht ??
MfG
DaSteinmetz

den nameserver benötigst du nicht. ist nur komfort.
es geht auch ohne.

aber ein problem bleibt: der C2 (auf 2.240) kann den ROUTER (auf 1.1) nicht erreichen. und zwar nur den router nicht. alle anderen clients aller anderen subnetze erreicht er !!
nun, wer hat dazu eine idee?
 

Martin Breidenbach

Ultimate Guru
Da fällt mir gerade was ein (schepper).


Ich fasse das Problem zusammen:

.1.50 Client PC 1
.1.201 Linux Router Karte 1
.2.201 Linux Router Karte 2
.2.50 Client PC 2
.2.1 Externer Router

Client PC 1 kann ALLES außer dem Externen Router anpingen
Linux Router kann alles anpingen
Client PC 2 kann alles anpingen

Wenn ich das jetzt richtig verstanden habe dann denke ich das Problem ist daß der Externe Router keine Route ins .1.x Netz kennt. Soll heißen er kriegt ein PING von . 1.50 aber er weiß nicht wo er Pakete an .1.50 hinschicken soll.

Was ist das für ein externer Router ? DSL ins Internet ? Kann man dem irgendwo statische Routen beibringen ? Bei meinem NetGear geht sowas.
 
alles schön und gut...

Ich schließ mich der Meinung von Martin Breitenbach..Ich glaub dein Problem liegt am Externen Router.!!

Aber sag mal ich komm immer noch nicht dahinter wie du von jedem Client aus an alle Clients auch in den anderen subnetze kommst

Ich komm von Client im Netz an eth0 auf alle Gateway IP´s

aber von nem Client an eth1 oder eth2 leider nur an seine jeweilige Gateway IP..

Kannst du mir da nich mal weiterhelfen ..??

meine route-Datei sieht folgendermaßen aus :

192.168.0.0 192.168.0.10 255.255.255.0 eth0
192.168.1.0 192.168.1.10 255.255.255.0 eth1
192.168.2.0 192.168.2.10 255.255.255.0 eth2
default 127.0.0.1 - -

in den ersten 3 Zeilen hatte ich davor als Gateway die 0.0.0.0 ... da war jedoch auch kein positives ergebnis rauszubekommen...

ich habe Statische IP´s vergeben, es läuft kein DNS/Nameserver und keine Firewall

hat denn niemand ne Idee ??

MfG
DaSteinmetz
 

Martin Breidenbach

Ultimate Guru
DaSteinmetz:

Schalte doch das Routing erst mal über YaST2 ein. Du schreibst Du hättest das über Konsole gemacht. Ich vermute mit

Code:
# enable routing
echo "1" > /proc/sys/net/ipv4/ip_forward

was man aber nach jedem Booten wieder neu tun muß.

Wenn man eine Firewall mit eigenem Skript basteln will dann macht es sicher Sinn das Routing erst zu aktivieren wenn die Firewall steht. Aber solange nix funktioniert sollte man die Komplexität möglichst reduzieren und so nah am Standardsystem bleiben wie möglich. Wenn das dann geht dann hat man eine Basis wo man weitermachen kann.
 
OP
D

deppdoedel

Newbie
Martin Breidenbach schrieb:
Da fällt mir gerade was ein (schepper).
Ich fasse das Problem zusammen:
.1.50 Client PC 1
.1.201 Linux Router Karte 1
.2.201 Linux Router Karte 2
.2.50 Client PC 2
.2.1 Externer Router
Client PC 1 kann ALLES außer dem Externen Router anpingen
Linux Router kann alles anpingen
Client PC 2 kann alles anpingen
Wenn ich das jetzt richtig verstanden habe dann denke ich das Problem ist daß der Externe Router keine Route ins .1.x Netz kennt. Soll heißen er kriegt ein PING von . 1.50 aber er weiß nicht wo er Pakete an .1.50 hinschicken soll.
Was ist das für ein externer Router ? DSL ins Internet ? Kann man dem irgendwo statische Routen beibringen ? Bei meinem NetGear geht sowas.

so ist/war es!!
guter tip. statische route mit angabe des gw im server = es funkt.
danke dir.
 
OP
D

deppdoedel

Newbie
DaSteinmetz schrieb:
192.168.0.0 192.168.0.10 255.255.255.0 eth0
192.168.1.0 192.168.1.10 255.255.255.0 eth1
192.168.2.0 192.168.2.10 255.255.255.0 eth2
default 127.0.0.1 - -

hat denn niemand ne Idee ??
MfG
DaSteinmetz

ok, die routen beim server sind ok.
was du jetzt noch ZWINGEND brauchst, sind die richtigen angaben auf den clients.
dort benötigt z.b. client1 (0.1) als gw die 0.10, sonst gehts nicht.
alle anderen clients dito die jeweilige nic-ip des jeweiligen netzes.
dann sollte es funken.

kannst ja mal auf einem client mit traceroute (unter windoof mit tracert) nachschauen, wo's langgeht (langgehen sollte).
 

malemale

Newbie
Hi Leuts, ähnliches Problem bei mir: SUSE Linux 9.0 prof.
im Linux Router mit zwei Netzwerksegmenten

192.168.0.1 Hardware DSL-Router
192.168.0.2 Linux Router eth0
192.168.1.3 Linux Router eth1
192.168.0.65 C0 Client Netzwerk 0 (an eth0 Router dran)
192.168.1.171 C1 Client Netzwerk 1 (an eth1 Router dran)
in C0 192.168.0.2 als Gateway
in C1 192.168.1.3 als Gateway
im Linux Router 192.168.0.1 als Standardgateway

öhmmm, da hängen natürlich noch viele andere Clients in
beiden Segmenten dran :)

SAMBA lief von allen Clients ordentlich ....

mit Yast IP-Forwarding eingestellt....
Ergebnis:

1. Linux Router konnte alles ringsum pingen
2. C0 192.168.0.65 kann beide Segmente + eth0 und eth1 pingen
3. C1 192.168.1.171 kann nur das 1Segment pingen + Router eth0
keine Change aus dem 1Segment, egal welche Client (IP 192.168.1.X)
auf den Router 192.168.0.1 zu kommen, Ping Endstation war immer
eth0 im Linux Router (192.168.0.2) :-(

Mit folgendem Befehl als root ging dann das Routing auch aus dem
Segment 1 (eth1) auf den Hardware Router :)

iptables -t nat -A POSTROUTING -o eth0 -s 192.168.1.0/24 -j MASQUERADE

Vielleicht kann das ein Linux NAT/Masquerading/Routing Kundiger mal
interpretieren .... Offensichtlich geht in Suse 9.0 das Postrouting nur an
der eth0 korrekt ( müßte mal mit debian/knoppix gecheckt werden )

Mich interessieren noch folgende Sahnehäubchen :
- Wie kann man einzelne Clients, egal in welchem Segment vom Routing
ausschließen (am Linux Router) , bedeutet Internetsperre :)
- gibts ein kleines Tool, was Aktivitäten an eth0, eth1 analog W2K
(blinkende Monitore in Taskleiste) anzeigt

happy routing und Gruß malemale
--------------------------------------------------------------------------------------
"Alles was Spass macht ist entweder illegal, ungesund, unmoralisch,
oder es macht dick!"
 

Martin Breidenbach

Ultimate Guru
In der Hoffnung die Problemstellung richtig verstanden zu haben - genau dieselbe Ursache. Der DSL-Router weiß nicht wo's nach 192.168.1.0/24 geht. Und wenn man auf eth0 Masquerading einschaltet braucht er das nicht zu wissen da das ja eben bei den Pings die Absenderadresse maskiert und durch 192.168.0.2 ersetzt und die kann der DSL-Router erreichen.

Lösung: im DSL-Router eine statische Route eintragen die ihm sagt daß es nach 192.168.1.0/24 über 192.168.0.2 geht.
 

framp

Moderator
Teammitglied
Mir haben in solchen Faellen immer tcpdump oder ethereal weitergeholfen.
Setzt Dich doch mal auf eine der beiden Interfaces und trace die Kommunikation.
 
Hy,

erst ma DANKE an alle mit ihren Postings.. Hat mich schon ein Schritt weitergebracht.!

Ich kann nun alle Clients in jedem Segment anpingen und ich seh auch jeden in der Netzwerkumgebung (winXP-Clients)

Lösung war ...
Eine Routeeintrag an jedem Client, der erklährt wie er in die beiden anderen Segmente gelangt. was ich allerdings nicht ganz begreife..das sollte normal die Angabe des Gateway´s bewerkstellen..
jedenfalls gehts jetzt..

Eins ist da noch...

wenn ich auf nen Client in der Netzwerkumgebung Klicke der in nem anderen Segment liegt wie der Client an dem ich gerade Sitze, erzählt mir Windoof, es konnte den Netzwerkpfad nicht finden... Gebe ich stattdessen aber die Ip des Clients an, kann ich seine freigaben ganz normal wie gewollt durchstöbern.!!

Das hängt jetzt aber mit sicherheit an nem fehlenden Nameserver, oder ??


gruß
DaSteinmetz
 

Martin Breidenbach

Ultimate Guru
Die Windows Netzwerkumgebung arbeitet über NetBIOS Namensauflösung.

Diese funktioniert über Broadcasts und/oder WINS Server.

via Broadcast:
Client ruft aufs Netz: Hallo zusammen, ich bin Client und habe IP-Adresse soundso.
Broadcasts werden aber nicht über einen Router übertragen. Deswegen sehen Windows-Clients in der Netzwerkumgebung nichts aus anderen Netzwerksegmenten.

Zur Lösung dieses Problemes gibt es WINS-Server. Dazu muß ein Client die Adresses des WINS-Servers kennen. Der Client teilt seinen Namen und IP-Adresse dem WINS-Server mit und der merkz sich das. Andere Clients können dann diese Info vom WINS abrufen.
 
Bonsai schrieb:
Ein bind tuts aber auch. Macht weniger Traffic.

kannst du mir anhand eines Bsp. sagen wie das auszusehen hat mit dem Bind Befehl und wo der Befehl eingetragen werden muß, so dass er automatisiert startet ??

Martin Breitenbach schrieb:
via Broadcast:
.....Deswegen sehen Windows-Clients in der Netzwerkumgebung nichts aus anderen Netzwerksegmenten.

Ich seh aber alle angeschlossenen Clients!! , auch aus anderen Netzsegmenten.. Wüßte jedoch nicht das ich nen Wins-Server am Start hab :?: :?:

nur wenn ich einen anklicke kommt die Fehlermeldung "Netzwerkpfad konnte nicht gefunden werden"
Über die IP klappts..
 

Martin Breidenbach

Ultimate Guru
Ich nehme an mit bind ist DNS gemeint ?

Bei Microsoft hat man inzwischen eingesehen daß das mit Netbios-Namen und so nicht das Wahre ist. Deswegen machen W2K und neuer Netbios-Namensauflösung erst über DNS.

Wieso Deine Clients aus dem einen Subnetz die aus dem anderen sehen weiß ich jetzt auch nicht.

Daß das über IP klappt, über Name aber nicht hat meiner Meinung nach was mit Netbios-Namensauflösung zu tun.

Einen WINS hast Du jedenfalls schneller konfiguriert als einen DNS :)
 
Oben