Zwei Netze/Netzwerkkarten (SuSE Linux)

Hi,
ich möchte gerne mit einem Rechner mit Hilfe zweier Netzwerkkarten in zwei unterschiedliche (Sub-)Netze a und b die nicht miteinander verbunden sind.

Die Rechner-IPs sind x.a.16.10 und x.b.18.10, die beiden Netzmasken habe ich auf 255.255.255.0 eingestellt, als default-Gateway nehme ich entweder x.b.16.1 oder x.b.18.1 und hier ist schon das Problem. Ich bekomme nur Zugriff auf das Netz, dessen GW ich grade eingestellt habe.

Meine Fragen:

-mache ich einen Denkfehler und das KANN nicht gehen in zwei Netzen gleichzeitig zu sein? Ist aber doch eigentlich nicht möglich, sonst könnte man doch nie eine (Heim-)Router aufbauen

-es kann pro Rechner immer nur ein default-Gateway geben. Richtig? Oder pro Netzerkkarte eines?

-der Rechner hat in jedem Netz (logischerweise) einen eigenen Namen/Domainnamen. Kann man das in SuSEs YaST irgendwie einstellen? Dort gibt es nur ein Feld für alle NWKarten gemeinsam.

-Wie komme ich in beide Netze gleichzeitig? ping geht jeweils nur in das Netz, dessen GW ich grade eingestellt habe. Kann der Fehler auch wo anderes als in meinem Rechner liegen?

vielen Dank und Grüße,
J~

Grundlagen statisches routing

Hi,

Hallo,

Die Rechner-IPs sind x.a.16.10 und x.b.18.10, die beiden
Netzmasken habe ich auf 255.255.255.0 eingestellt, als
default-Gateway nehme ich entweder x.b.16.1
oder x.b.18.1 und hier ist schon das Problem. Ich
bekomme nur Zugriff auf das Netz, dessen GW ich grade
eingestellt habe.

Wie sieht die routing-Tabelle aus? Darin sollte normalerweise ungefaehr sowas stehen:

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
x.a.16.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
x.b.18.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
x.b.19.0 x.b.18.5 255.255.255.0 UG 0 0 0 eth1
0.0.0.0 x.b.16.1 0.0.0.0 UG 0 0 0 eth0

Manchmal, wenn mir langweilig ist, denke ich mir Definitionen aus: Routing ist die Zuordnung einer MAC# zu einem IP-Paket. (Das stimmt wahrscheinlich nicht ganz, ich denke mir demnaechst eine bessere aus.) Trifft auf den IPstack eines routers eine Paket, das nicht an den router selbst gerichtet ist guckt er in der routing-Tabelle nach, wohin damit.

Fall 1: die IP# des Paketes sei x.a.16.5. Diese IP# verwurstet er logisch AND mit jeder Netzwerkmaske in der routing-Tabelle. Gleiches macht er mit dem jeweiligen Eintrag Destination. Sind anschliessend beide Ergebnisse gleich, hat er das richtige Interface gefunden (eg. eth0) und versucht das Paket ueber das if rauszukriegen. (ARP lookup, ggf. ARP broadcast, Packet mit MAC# des Rechners geht zum if raus) Er nimmt dabei immer die erste passende route.

Fall 2: x.b.18.5. Jetzt passt erst der zweite Eintrag, also dito fuer eth1.

Fall 3 (hab ich mir selbst ausgedacht): x.b.19.9. Die erste route, wo diese IP# und die IP# im Destination Feld logisch AND mit der netmask identisch sind ist die dritte. Dort ist das gateway flag gesetzt, also wird nicht versucht, den Rechner selbst an diesem if zu finden, sondern das angegebene gateway. Anschliessend geht das Paket mit der MAC# vom gateway und der IP# x.b.19.9 an x.b.18.5. Dieses muss sich dann selbst kuemmern, wohin mit dem Paket, es sollte also tunlichst eine route in dieses Netz haben, und wenn es eine default route ist, die dahin fuehrt.

Fall 4: v.w.y.z. Jetzt passt nur der letzte Eintrag. Denn nur v.w.y.z und 0.0.0.0 logisch AND mit 0.0.0.0 ergeben den gleichen Wert (0). Deshalb geht das Paket zum eth0 raus. Da fuer diese route aber wieder das gateway flag gesetzt ist versucht er keinen ARP lookup nach v.w.y.z sondern nach dem gateway. Danach packt er das IP-Paket in ein MAC-Paket mit der MAC# vom gateway und stopft es ins Kabel.

Fall 1 und 2 sind ganz normales routing zwischen subnets. Fall 3 ist ist routing ueber ein gateway in ein anderes Netz. Fall 4 ist routing zum default gateway, wenn er gar nicht weiss, wohin damit. Fuer Pakete an Rechner in angeschlossenen subnets sollte immmer einer der ersten beidne Falle funktionieren. Du brauchst also noch nicht mal ein default gateway.

-es kann pro Rechner immer nur ein default-Gateway geben.
Richtig? Oder pro Netzerkkarte eines?

Es kann nur eine geben, da immer die erste route gewaehlt wird, die passt. Es waere auch denkbar, dass es keine default route gibt. Dann kann es durchaus vorkommen, dass der router mit einem Paket gar nicht weiss, wohin damit. In dem Fall wird es verworfen.

-der Rechner hat in jedem Netz (logischerweise) einen eigenen
Namen/Domainnamen.

Fuer hostnames interessiert sich routing einen Feuchten. Den grossen Lichtblick fuer Namensgebung bei routern hab ich auch noch nicht gefunden. Meiste versuche ich ihnen einen Namen zu geben und loese den auf die IP# des haeufiger verwendeten if auf, fuer gezielte if fuehre ich evtl. noch Namen ala eth0.router.domain.tld ein. Nein, schoen ist das nicht.

-Wie komme ich in beide Netze gleichzeitig? ping geht jeweils
nur in das Netz, dessen GW ich grade eingestellt habe. Kann
der Fehler auch wo anderes als in meinem Rechner
liegen?

Routing Tabelle vom router waere cool. Die wird eigentlich schon mit einem

 # ifconfig eth0 x.a.18.10 netmask 255.255.255.0 broadcast x.a.18.0 up

richtig erstellt, eine default route solltest Du dafuer gar nicht brauchen.

Gruss vom Frank.

Hallo Jame

Hi,
ich möchte gerne mit einem Rechner mit Hilfe zweier
Netzwerkkarten in zwei unterschiedliche (Sub-)Netze a und b
die nicht miteinander verbunden sind.

D.h. also, daß die nicht direkt bzw. über Hub oder Switch zusammenhängen, sondern mind. noch ein Router zwischen ist?

Die Rechner-IPs sind x.a.16.10 und x.b.18.10, die beiden
Netzmasken habe ich auf 255.255.255.0 eingestellt, als
default-Gateway nehme ich entweder x.b.16.1
oder x.b.18.1 und hier ist schon das Problem. Ich
bekomme nur Zugriff auf das Netz, dessen GW ich grade
eingestellt habe.

Wie als Default GW?
Jedenfalls: man route ist Dein Freund!
route add -net IPVOMZIELNETZ(z.B. x.a.16.0) netmask 255.255.255.0 dev eth0

-mache ich einen Denkfehler und das KANN nicht gehen in zwei
Netzen gleichzeitig zu sein?

Doch geht schon.

Ist aber doch eigentlich nicht
möglich, sonst könnte man doch nie eine (Heim-)Router aufbauen

ähm, das „nicht“ sollte gestrichen werden

-es kann pro Rechner immer nur ein default-Gateway geben.
Richtig? Oder pro Netzerkkarte eines?

IMHO pro Host eines.

-der Rechner hat in jedem Netz (logischerweise) einen eigenen
Namen/Domainnamen.

hm, nicht unbedingt, er kann keinen oder auch mehrere haben. und jkommt auch drauf an, ob man z.b. das DNS-System meint oder Samba etc.

Kann man das in SuSEs YaST irgendwie
einstellen? Dort gibt es nur ein Feld für alle NWKarten
gemeinsam.

Puh, ich hab SuSE seit den ersten YaST2-versuchen von meinen Rechnern verbannt. Kann da leider nix zu sagen.

-Wie komme ich in beide Netze gleichzeitig? ping geht jeweils
nur in das Netz, dessen GW ich grade eingestellt habe.

Wie? Mir ist immer nocht nicht ganz klar „dessen GW“ meinst Du damit einen Router des Rechners oder die Einstellung des Rechners selber.
Was ist denn nun eigentlich die Konfiguration? Wie sind die Rechner miteinander verbunden?

Kann
der Fehler auch wo anderes als in meinem Rechner
liegen?

*verwirrt* ich dachte es geht um 2 Rechner?

Grüssle,
Markus

ich möchte gerne mit einem Rechner mit Hilfe zweier
Netzwerkkarten in zwei unterschiedliche (Sub-)Netze a und b
die nicht miteinander verbunden sind.

Die Rechner-IPs sind x.a.16.10 und x.b.18.10, die beiden
Netzmasken habe ich auf 255.255.255.0 eingestellt, als
default-Gateway nehme ich entweder x.b.16.1
oder x.b.18.1 und hier ist schon das Problem. Ich
bekomme nur Zugriff auf das Netz, dessen GW ich grade
eingestellt habe.

Meine Fragen:

-mache ich einen Denkfehler und das KANN nicht gehen in zwei
Netzen gleichzeitig zu sein? Ist aber doch eigentlich nicht
möglich, sonst könnte man doch nie eine (Heim-)Router aufbauen

Doch, klar geht das. Ein Rechner kann in beliebig vielen Netzen sein.

-es kann pro Rechner immer nur ein default-Gateway geben.
Richtig? Oder pro Netzerkkarte eines?

Der Default-GW ist pro Rechner eindeutig. An diese IP werden alle Anfragen geschickt, für die es keine lokalen Routen gibt.

-der Rechner hat in jedem Netz (logischerweise) einen eigenen
Namen/Domainnamen. Kann man das in SuSEs YaST irgendwie
einstellen? Dort gibt es nur ein Feld für alle NWKarten
gemeinsam.

Einem Namen wird mindestens eine IP zugeordnet, sofern man einen Nameserver oder einen anderen Auflösungsmechanismus hat. Umgekehrt künnen einer IP-Adresse beliebig viele Namen zugeordnet sein. Das einzige, was wirklich eindeutig sein sollte, ist die Zuprdnung IP/Rechner, und selbst da kann man mit Load-Balancern und anderen Spielereien noch tricksen.

-Wie komme ich in beide Netze gleichzeitig? ping geht jeweils
nur in das Netz, dessen GW ich grade eingestellt habe. Kann
der Fehler auch wo anderes als in meinem Rechner
liegen?

Du musst jeweils die IP des "Brücken"rechners als Default-GW verwenden, die im lokalen Netz des teilnehmenden Rechners liegt. Darüberhinaus muss der Gateway so eingerichtet sein, dass er IP-Forwarding zulässt.

Hallo,

ich möchte gerne mit einem Rechner mit Hilfe zweier
Netzwerkkarten in zwei unterschiedliche (Sub-)Netze a und b
die nicht miteinander verbunden sind.

Kein Problem.

Die Rechner-IPs sind x.a.16.10 und x.b.18.10, die beiden
Netzmasken habe ich auf 255.255.255.0 eingestellt, als
default-Gateway nehme ich entweder x.b.16.1
oder x.b.18.1 und hier ist schon das Problem. Ich
bekomme nur Zugriff auf das Netz, dessen GW ich grade
eingestellt habe.

Das ist merkwürdig, Deine Routen-Einstellung ist kaputt.

Du brauchst mindestens: für jedes der beiden Netze eine Route auf das entsprechende Interface. „Eigentlich“ sollte die mehr oder weniger automatisch gesetzt werden. Ich habe gerade keine SuSE zur Hand, aber irgendwo unter /etc/sysconfig/network/ sind die Dateien, die die Interfaces beschreiben, hier kann man auch Routen konfogurieren (such mal nach man ifup und folge entsprechenden Verweise in der man page.

Und lies das: http://portal.suse.de/sdb/de/2002/03/mmj_network80.html

-mache ich einen Denkfehler und das KANN nicht gehen in zwei
Netzen gleichzeitig zu sein?

Das ist kein Problem.

-es kann pro Rechner immer nur ein default-Gateway geben.
Richtig?

Ja. „Default-Route“ heißt: nimm die Route, wenn keine andere zutrifft. Erst werden die explitit definierten angewandt, dann die Default-Route.

Oder pro Netzerkkarte eines?

Nein, das wäre sinnlos.

-der Rechner hat in jedem Netz (logischerweise) einen eigenen
Namen/Domainnamen. Kann man das in SuSEs YaST irgendwie
einstellen? Dort gibt es nur ein Feld für alle NWKarten
gemeinsam.

Meinst Du in /etc/hosts? Vermutlich? Dort kannst Du jeder IP-Adresse einen Namen zuordnen.

-Wie komme ich in beide Netze gleichzeitig? ping geht jeweils
nur in das Netz, dessen GW ich grade eingestellt habe.

Aus irgendeinem Grunde fehln Dir die Routen. „man route“

Kann
der Fehler auch wo anderes als in meinem Rechner
liegen?

Das ist sehr unwahrscheinlich.

Gruß,

Sebastian

Sammelantwort
Hallo,

erstmal vielen Dank für eure reiche Nachhilfe in NW-Administration :smile:
Ich versuche mal alle Ergänzungen (sowie meine Fehlerkorrektur :frowning: )in eine Antwort zu schreiben

Zuerstmal waren meine Beispiel-IP und auch anderes vielleicht etwas unverständlich.

Also nochmal mein Gesammtziel:
IP1 auf eth0 soll sein: x.y.16.10
IP2 auf eth1 soll sein: x.y.18.10

Als default-Gateway hatte ich x.y.16.1 oder x.y.18.1 versucht. Stelle ich ersteres ein bekomme ich eine ping-Antwort auf z.B. x.y.16.11, wähle ich letzteres bekomme ich eine ping-Antwort auf z.B. x.y.18.11 . Auf das jeweilig andere Subnetz bekomme ich keine Antwort.

@Markus

D.h. also, daß die nicht direkt bzw. über Hub oder Switch
zusammenhängen, sondern mind. noch ein Router zwischen ist?

Ja.

route add -net IPVOMZIELNETZ(z.B. x.a.16.0) netmask
255.255.255.0 dev eth0

auch das habe ich nun versucht, also

route add -net x.y.16.10 netmask 255.255.255.0 dev eth0
route add -net x.y.18.10 netmask 255.255.255.0 dev eth1

was nicht nicht zu Erfolg führte. Problem wie gehabt.

Wie? Mir ist immer nocht nicht ganz klar „dessen GW“ meinst Du
damit einen Router des Rechners oder die Einstellung des
Rechners selber.

s.o., hoffentlich nun verständlich.

*verwirrt* ich dachte es geht um 2 Rechner?

Nein, es geht um 2 LANs in denen der Rechner hängt.

@Nicos

Der Default-GW ist pro Rechner eindeutig. An diese IP werden
alle Anfragen geschickt, für die es keine lokalen Routen gibt.

Ah, danke. Das war mir nicht klar.

Einem Namen wird mindestens eine IP zugeordnet, sofern man
einen Nameserver oder einen anderen Auflösungsmechanismus hat.

OK, ich verwende erstmal nur IPs um Fehler rund um die Nameserver auszuschließen.

Du musst jeweils die IP des "Brücken"rechners als Default-GW
verwenden, die im lokalen Netz des teilnehmenden Rechners
liegt.

s.o. ich habe aber doch max. ein Default-GW und zwei Netze?

Darüberhinaus muss der Gateway so eingerichtet sein,
dass er IP-Forwarding zulässt.

Der Gateway-rechner befindet sich außerhalb meines Zuständigkeitsbereiches :wink: Aber ich kann noch mal unsere Netz-Admins fragen.

@Frank

Wie sieht die routing-Tabelle aus? Darin sollte normalerweise
ungefaehr sowas stehen:

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
x.a.16.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
x.b.18.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
x.b.19.0 x.b.18.5 255.255.255.0 UG 0 0 0 eth1
0.0.0.0 x.b.16.1 0.0.0.0 UG 0 0 0 eth0

OK, diese Tabelle ist die aktuelle. Damit komme ich ins Netz x.y.16.0, aber nicht in Netz x.y.18.0

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
x.y.18.0 \* 255.255.255.0 U 0 0 0 eth1
x.y.16.0 \* 255.255.255.0 U 0 0 0 eth0
link-local \* 255.255.0.0 U 0 0 0 eth0
loopback \* 255.0.0.0 U 0 0 0 lo
default x.y.16.1 0.0.0.0 UG 0 0 0 eth0

Die „*“ sollten deinem 0.0.0.0 entsprechen denke ich. Die Einträge „link-local“ und „loopback“ verstehe ich nicht und werden von YaST2 automatisch erzeugt. Löscht man alle NW-Karte durch YaSt, verschwinden auch diese (sind also IMHO kein Rest einer anderen Konfiguration).

BTW: habe ich auch die NW-Karten durchgetausch um Probleme mit der Hardware(ansteuerung) auszuschließen.

Fall 1: die IP# des Paketes sei x.a.16.5 (Korr: x.y.16.5). Diese IP#
verwurstet er logisch AND mit jeder Netzwerkmaske in der
routing-Tabelle. Gleiches macht er mit dem jeweiligen Eintrag
Destination. Sind anschliessend beide Ergebnisse gleich, hat
er das richtige Interface gefunden (eg. eth0) und versucht das
Paket ueber das if rauszukriegen. (ARP lookup, ggf. ARP
broadcast, Packet mit MAC# des Rechners geht zum if raus) Er
nimmt dabei immer die erste passende route.

Wenn ich mich richtig erinneren ist das „AND“ ein bitweises, ja?

Okay, also 1.Zeile ergibt:
x.y.16.5 „AND“ 255.255.255.0 = x.y.16.0 (Netzmaske)
dann
x.y.16.5 „AND“ x.y.18.0 = x.y.16.0 (Destination)

Da 1610=100002 und 1810=100102 bitweise geANDet wieder 10000 also 16 ergibt. Korrekt?

Dann wäre das Intrerface falsch solange deine Aussage stimmt

Sind anschliessend beide Ergebnisse gleich, hat
er das richtige Interface gefunden (eg. eth0)

Denn die Ergebnisse sind bleide gleich x.y.16.0, eth1 führt aber nicht ins Netz x.y.16.0 !

Also entweder ist das mein Fehler warum das alles nicht läuft, oder hier stimmt was nicht :smile:))

Es waere auch denkbar, dass es keine default
route gibt.

Okay, habe mal gar kein default-Gateway definiert. In diesem Fall geht GAR NICHTS irgendwohin :wink:

:Fuer hostnames interessiert sich routing einen Feuchten.

s.o. vergessen wir die hostnames

Routing Tabelle vom router waere cool.

Du meinst also vom rechner x.y.16.1 ? Hab mal unsere Netz-Admins nach gefragt.

Die wird eigentlich
schon mit einem

ifconfig eth0 x.a.18.10 netmask

255.255.255.0 broadcast x.a.18.0 up

richtig erstellt,
eine default route solltest Du dafuer gar nicht brauchen.

wie gesagt. Hab den ganzen Yast-Kram mal rausgenommen und ifconfig gestartet. Ohne Erfolg :frowning:

@Sebastian

Du brauchst mindestens: für jedes der beiden Netze eine Route
auf das entsprechende Interface. „Eigentlich“ sollte die mehr
oder weniger automatisch gesetzt werden. Ich habe gerade keine
SuSE zur Hand, aber irgendwo unter /etc/sysconfig/network/
sind die Dateien, die die Interfaces beschreiben, hier kann
man auch Routen konfogurieren (such mal nach man ifup und
folge entsprechenden Verweise in der man page.

Ja, mir sagen alle die ich frage, dass 2 NWK mit YaSt einzurichten keine Probleme bereiten sollte :smile:
Einer unser Net-Admins hat es unter SuSE9.0 auch Problemlos geschafft. Ich habe 9.1 .

man ifup tue ich mir noch mal an.

http://portal.suse.de/sdb/de/2002/03/mmj_network80.html

Und das auch. Danke!


BTW: x.y.192.1 bin ich selbst, oder?
BTW2: was sagt mir was ich nicht schon durch weiß und hier wichtig sein könnte? (Außer der Mac-Adresse, der inet6-Adresse und dem Traffic meine ich jetzt).

Viele Grüße,
J~

Hallo Jame~!

route add -net x.y.16.10 netmask 255.255.255.0 dev eth0
route add -net x.y.18.10 netmask 255.255.255.0 dev eth1

was nicht nicht zu Erfolg führte. Problem wie gehabt.

ja moment moment, was ist mit:

Darüberhinaus muss der Gateway so eingerichtet sein,
dass er IP-Forwarding zulässt.

Der Gateway-rechner befindet sich außerhalb meines
Zuständigkeitsbereiches :wink: Aber ich kann noch mal unsere
Netz-Admins fragen.

und:

Routing Tabelle vom router waere cool.

Du meinst also vom rechner x.y.16.1 ? Hab mal unsere
Netz-Admins nach gefragt.

D.h. im klartext, daß Du nicht root auf dem Router bist!!
Das heißt außerdem, daß der Root vom Router auch entsprechende Routen eintragen muß, nämlich so oder ähnlich:

route add -net x.y.16.10 netmask 255.255.255.0 dev eth0
route add -net x.y.18.10 netmask 255.255.255.0 dev eth1

Außerdem ist mir Deine Konfiguration immer noch nicht klar!
Sind eth0 und eth1 der beiden obigen Zeilen von einem der Rechner x.y.16.10 bzw. x.y.18.10? Wenn ja, dann sind Deine Rechner schon Router.
Wie dem auch sein zeichne doch bitte mal ein diagramm! So wie ich Dich verstanden EIGENTLICH verstanden habe, hast Du folgende Situation:
HOST1:x.y.16.10:eth0-----eth0:x.y.16.1:ROUTER:x.y.18.1:eth1-----eth0:x.y.18.10:Host2

Oder meinst Du folgendes:

HOST1:x.y.16.10:eth0-----eth0:x.y.16.1:ROUTER:x.y.18.1:eth1-----eth0:x.y.18.10:Host2
???:eth1--------???--------eth1:x.y.18.10:Host2
Was mir aber bisschen schleierhaft wäre.
Also: Haben Deine beiden Rechner jeweils eine oder zwei Netzwerkkarten? Würd mich wundern, wenn sie zwei haben, denn dann wären die ja auch Router, wovon Du wissen müsstest wohin die jeweils gehen.
Bin verwirrt, aber glaube, daß erstere Situation vorliegt, welche funzen müsste, wenn die Admins den Router richtig einstellen und Du jeweils die default route auf deinen Rechner zum Router einstellst.
Bitte um Antwort!
*schwimm*
Grüssle,
Markus

Wenn ersterer Fall vorliegt natürlich:
x.y.16.10 default route auf eth0 nach x.y.16.1
und
auf x.y.18.10 default route auf eth0 nach x.y.18.1

Hallo,

Hi,

ich versteh Dein Netzwerk immer noch nicht. Sieht das so aus?

 eth0 eth0 eth1 eth0
,-----. x.y.16.10/24 ,-----. x.y.18.10/24 ,-----.
| A +------.--------+ R +--------.------+ B |
`-----' | `-----' | `-----'
 x.y.16.11 | x.y.16.10 x.y.18.10 | x.y.18.11
 | |
 eth0 | | eth0
,-----. | | ,-----.
| G16 +------' `------| G18 |
`-----' `-----'
 x.y.16.1 x.y.18.1

(Warum muss ich immer sowas malen?)

Ich gehe davon aus, dass das Problemkistchen R ist.

Also nochmal mein Gesammtziel:
IP1 auf eth0 soll sein: x.y.16.10
IP2 auf eth1 soll sein: x.y.18.10

Als default-Gateway hatte ich x.y.16.1 oder x.y.18.1 versucht.

Vergiss das default gw, das brauchst Du gar nicht. Auf A muss die routing-Tabelle so aussehen:

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
x.y.16.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

Auf B muss die routing-Tabelle so aussehen:

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
x.y.18.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

Auf R muss die routing-Tabelle so aussehen:

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
x.y.16.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
x.y.18.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1

Mehr braucht es nicht, um von R auf A oder B zu pingen, kein default gw, nirgends.

route add -net x.y.16.10 netmask 255.255.255.0 dev eth0
route add -net x.y.18.10 netmask 255.255.255.0 dev eth1

was nicht nicht zu Erfolg führte. Problem wie gehabt.

90 von 100 Netzwerkproblemen sind Probleme mit routing. 9 von 100 Netzwerkproblemen sind Probleme mit dem routing, aber auf dem Rueckweg. Nur eins von 100 Netzwerkproblemen ist irgendwas anderes, aber ueberpruefe des routing trotzdem.

Stimmen die routing-Tabellen auf den Rechnern A und B? (Das erklaert aber nicht, warum es funktioniert, wenn Du ueber ein gw routest. Werkelt auf irgendeiner von den beteiligten Kisten ein netfilter, „Firewall“ an? Wenn ich noch etwas nachdenke koennte ich Deine Probleme vielleicht mit NAT oder masquerading erklaeren.)

Darüberhinaus muss der Gateway so eingerichtet sein,
dass er IP-Forwarding zulässt.

Das muss es nicht. Fuer Verbindungen RA oder RB ist kein IP-forwarding noetig. Erst wenn AB will muss auf A und B noch eine route ins andere Netz mit R als gateway stehen und R muss IP forwarden.

Der Gateway-rechner befindet sich außerhalb meines
Zuständigkeitsbereiches :wink: Aber ich kann noch mal unsere
Netz-Admins fragen.

Welcher aus meiner Zeichnungen ist der „Gateway-rechner“?

OK, diese Tabelle ist die aktuelle. Damit komme ich ins Netz
x.y.16.0, aber nicht in Netz x.y.18.0

Bitte routing-Tabellen tunlichst mit dem Parameter -n ausgeben lassen.

> Kernel IP routing table  
> Destination Gateway Genmask Flags Metric Ref Use Iface  
> x.y.18.0 \* 255.255.255.0 U 0 0 0 eth1  
> x.y.16.0 \* 255.255.255.0 U 0 0 0 eth0  
> link-local \* 255.255.0.0 U 0 0 0 eth0  
> loopback \* 255.0.0.0 U 0 0 0 lo  
> default x.y.16.1 0.0.0.0 UG 0 0 0 eth0

Die „*“ sollten deinem 0.0.0.0 entsprechen denke ich.

Das kommt durch den Schalter -n (numeric).

Die Einträge „link-local“ und „loopback“ verstehe ich nicht und
werden von YaST2 automatisch erzeugt.

link-local verstehe ich auch nicht. loopback ist die route zum lo interface. Beide sind hier nicht wichtig, da fuer Deine pings immer eine der ersten beiden routen greift.

Wenn ich mich richtig erinneren ist das „AND“ ein bitweises,
ja?

Ja. Ich weiss nicht, wie das richtig heisst, ich weiss nur, wie es funktioniert.

Okay, also 1.Zeile ergibt:
x.y.16.5 „AND“ 255.255.255.0 = x.y.16.0 (Netzmaske)
dann
x.y.16.5 „AND“ x.y.18.0 = x.y.16.0 (Destination)

Nein. x.y.16.5 wird mit /24 (==255.255.255.0) verwurstet, ergibt x.y.16.0 (am besten die bits aufmalen). x.y.16.5 AND x.y.18.0 wird niemals gerechnet, es werden immer nur IP#s mit Netzwerkmasken verglichen. IP# kann dabei die aus dem Feld Destination oder die aus dem Paket sein. Das ist sowieso nur relevant, wenn sich IP# aus Destination AND Netzwerkmaske und die IP# aus Destination unterscheiden. Meist steht dort schon eine Netzwerkadresse. (Die Netzwerkadresse ergibt sich aus den IP#s eines Netzwerks bitweise AND mit der Netzwerkmaske.)

Da 1610=100002 und
1810=100102 bitweise geANDet wieder
10000 also 16 ergibt. Korrekt?

Die beiden kommen nie in Beruehrung.

Okay, habe mal gar kein default-Gateway definiert. In diesem
Fall geht GAR NICHTS irgendwohin :wink:

Kannst Du mit obengenannten routing-Tabellen mal mit tcpdump mithorchen, was an Rechner A bzw. B so vorbeifliegt?

Routing Tabelle vom router waere cool.

Du meinst also vom rechner x.y.16.1 ? Hab mal unsere
Netz-Admins nach gefragt.

Die ist nicht notwendig, die Rechner G16 und G18 sind beim Erreichen von A und B von R aus nicht beteiligt.

BTW: x.y.192.1 bin ich selbst, oder?

Haeh? Ich dachte, Du waerest Jame~. Identitaetskrise? 127.0.0.1 bezieht sich im allgemeinen auf den lokalen Rechner und an das loopback interface (lo) gebunden.

BTW2: was sagt mir was ich nicht schon
durch weiß und hier wichtig sein könnte? (Außer
der Mac-Adresse, der inet6-Adresse und dem Traffic meine ich
jetzt).

Nicht viel. route und ifconfig sind sowieso nur wrapper fuer ip und koennen vollstaendig dadurch ersetzt werden. Die Ausgaben von

 # ip addr show
 # ip route show

sind aber etwas detailierter und auch noch kompakter. Das macht es nicht unbedingt einfacher.

HTH,
Gruss vom Frank.

1 „Gefällt mir“

Tach,

neue Information siehe ganz unten :wink:

ich versteh Dein Netzwerk immer noch nicht. Sieht das so aus?

 eth0 eth0 eth1 eth0
,-----. x.y.16.10/24 ,-----. x.y.18.10/24 ,-----.
| A +------.--------+ R +--------.------+ B |
`-----' | `-----' | `-----'
 x.y.16.11 | x.y.16.10 x.y.18.10 | x.y.18.11
 | |
 eth0 | | eth0
,-----. | | ,-----.
| G16 +------' `------| G18 |
`-----' `-----'
 x.y.16.1 x.y.18.1

Ja, so ist es richtig

(Warum
muss ich immer sowas malen?)

weil du es gut kannst? :smile:

Ich gehe davon aus, dass das Problemkistchen R ist.

Ja.

Vergiss das default gw, das brauchst Du gar nicht.

Später doch, da ich nur über x.y.16.1 ins Internet kann. Aber lassen wir das mal temporär außer 8.

Auf A muss
die routing-Tabelle so aussehen:

Auf A? A ist doch irgendeine Kiste einen anderen USERS. Du meinst sicher G16…
Also Zu G16 sagte mein Netzadmin:
„…weil wir überhaupt keine Routingtabellen
haben! Wir routen dynamisch über ein Routingprotokoll.“

: Auf R muss die routing-Tabelle so

aussehen:

Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
x.y.16.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
x.y.18.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1

Und das funktioniert leider nicht unter meinem SuSE-System:

uranus:/etc/init.d # ifconfig eth1 x.y.18.10 netmask 255.255.255.0 broadcast x.y.18.0 up
uranus:/etc/init.d # ifconfig eth0 x.y.16.10 netmask 255.255.255.0 broadcast x.y.16.0 up
uranus:/etc/init.d # route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
x.y.18.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
x.y.16.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo

Mit dieser config (auch mit Yast erstellt) geht eben nix. Kein ping nirgendwohin.

Das muss es nicht. Fuer Verbindungen RA oder
RB ist kein IP-forwarding noetig. Erst wenn
AB will muss auf A und B noch eine route ins andere
Netz mit R als gateway stehen und R muss IP forwarden.

Mit R will ich keine Verbindung zwischen A und B schaffen! Dann bräuchten wir nicht zwei Netze :wink:

Welcher aus meiner Zeichnungen ist der „Gateway-rechner“?

G16 für x.y.16.z, G18 für x.y.18.z

So, nun zu meiner versprochenen Info.
Unter Knoppix funktioniert nämlich die routing-Tabelle die unter Suse nicht geht wie ich gestern ausprobiert habe:

root@ttyp0[~]# ping x.y.18.33
PING x.y.18.33 (x.y.18.33): 56 data bytes
64 bytes from x.y.18.33: icmp\_seq=0 ttl=255 time=0.7 ms
64 bytes from x.y.18.33: icmp\_seq=1 ttl=255 time=0.3 ms

--- x.y.18.33 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.3/0.5/0.7 ms
root@ttyp0[~]# ping x.y.16.100
PING x.y.16.100 (x.y.16.100): 56 data bytes
64 bytes from x.y.16.100: icmp\_seq=0 ttl=255 time=0.5 ms
64 bytes from x.y.16.100: icmp\_seq=1 ttl=255 time=0.2 ms

--- x.y.16.100 ping statistics ---
2 packets transmitted, 2 packets received, 0% packet loss
round-trip min/avg/max = 0.2/0.3/0.5 ms
root@ttyp0[~]# route -n
Kernel IP Routentabelle
Ziel Router Genmask Flags Metric Ref Use Iface
x.y.18.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
x.y.16.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
0.0.0.0 x.y.16.1 0.0.0.0 UG 0 0 0 eth0
root@ttyp0[~]#

und mit default-GW (letzte Zeile) komme ich dann auch ins Internet :smile:

So, nun bin ich komplett ratlos. Immerhin weiß ich jetzt, dass der Fehler auf meinen System und ein Softwarefehler ist.

Irgendwelche Ideen außer change-OS? :wink:

Vielen Dank noch mal an alle Antworter, hab wieder was gelernt :smile:

Viele Grüße,
J~

Tach,

'n Abend,

> eth0 eth0 eth1 eth0  
> ,-----. x.y.16.10/24 ,-----. x.y.18.10/24 ,-----.  
> | A +------.--------+ R +--------.------+ B |  
> `-----' | `-----' | `-----'  
> x.y.16.11 | x.y.16.10 x.y.18.10 | x.y.18.11  
> | |  
> eth0 | | eth0  
> ,-----. | | ,-----.  
> | G16 +------' `------| G18 |  
> `-----' `-----'  
> x.y.16.1 x.y.18.1

(Warum muss ich immer sowas malen?)

weil du es gut kannst? :smile:

Wird Zeit, dass Du’s lernst. Netzwerkeln faengt immer mit einer Zeichnung an.

Auf A muss die routing-Tabelle so aussehen:

Auf A? A ist doch irgendeine Kiste einen anderen USERS. Du
meinst sicher G16…

Nein, ich meinte schon A. Gleiches gilt natuerlich auch fuer G16 bzw. auch G18.

„…weil wir überhaupt keine Routingtabellen
haben! Wir routen dynamisch über ein Routingprotokoll.“

Na, dann sollte das ja erst recht funktionieren.

> uranus:/etc/init.d # ifconfig eth1 x.y.18.10 netmask 255.255.255.0 broadcast x.y.18.0 up  
> uranus:/etc/init.d # ifconfig eth0 x.y.16.10 netmask 255.255.255.0 broadcast x.y.16.0 up  
> uranus:/etc/init.d # route -n  
> Kernel IP routing table  
> Destination Gateway Genmask Flags Metric Ref Use Iface  
> x.y.18.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1  
> x.y.16.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0  
> 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo

Mit dieser config (auch mit Yast erstellt) geht eben nix. Kein
ping nirgendwohin.
Unter Knoppix funktioniert nämlich die routing-Tabelle die
unter Suse nicht geht wie ich gestern ausprobiert habe:

Das ist in der Tat sehr eigenartig. Mein letzter Versuch: SuSE hat die „firewall“ an und nimmt kein „boeses ICMP“ an. Ist die Ausgabe von

 # iptables -nvL

deutlich verschieden von nichts?

Irgendwelche Ideen außer change-OS? :wink:

Lower your shields.

Gruss vom Frank.