Routing m. Fallback per metric?

F

Fux

Jungspund
Hallo zusammen,

habe hier ein NW mit mehreren Routern zwecks Ausfallsicherheit.

Nun wollte ich, daß ein Linux-PC automatisch zum nächsten Router verbindet, wenn der erste ausfällt. Dazu habe ich testweise mal

ip r d default
ip r a default via $IPRouter1 metric 0
ip r a default via $IPRouter2 metric 1

eingegeben.

Nehme ich nun Router1 absichtlich vom Netz, so wird jedoch nicht automatisch Router2 benutzt sondern es kommt lediglich beim Ping die Meldung destination Host Unreachable. Absender dieser Meldung ist der sendende PC selbst.

Was mache ich falsch?
 
Kannst das mal den Zustand deines Netzes zeichnen und sind das Hardwarerouter oder Linuxboxen?
 
Zwischenzeitlich habe ich einen Versuch mit

ip r d default
ip r a default nexthop via $IPRouter1 nexthop via $IPRouter2
ip r flush cache


gefahren. Ergebnis ist dasselbe wie beim ersten Versuch: Ein Ausfall von Router1 führt zum Ausfall der Verbindung, obwohl Router2 in der Lage wäre, zu routen. :-(
 
Die Metric bestimmt nur wie gern das Routing Protokoll den Gateway benutzen möchte - ganz kurz gesagt, das hat nichts mit der Ausfallsicherheit zu tun.
 
Kannst das mal den Zustand deines Netzes zeichnen...

Wie meinen?

Test-PC
|
|
Switch --- Router1 --- INet
|
|
---------- Router2 --- INet

... und sind das Hardwarerouter oder Linuxboxen?

Was spielt das für eine Rolle? Jeder Router allein funzt als Default-GW für die Test-Maschine.
Ich möchte jedoch einen automatischen Fallback bzw. Failover, wenn einer der beiden Router ausfällt.
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

Die Metric bestimmt nur wie gern das Routing Protokoll den Gateway benutzen möchte - ganz kurz gesagt, das hat nichts mit der Ausfallsicherheit zu tun.

Hm, wofür ist sie dann da? Wenn das Routing sowieso immer nur die Route mit der kleinsten Metric nutzt - unabhängig davon, ob diese Route denn überhaupt funzt - wozu kann man dann weitere Routen, mit einer höheren Metric eingeben?

Oder anders herum gefragt: Wann wird eine Route mit höherer Metric benutzt?
 
Zuletzt bearbeitet:
Moin, moin,

Wie meinen?

Test-PC
|
|
Switch --- Router1 --- INet
|
|
---------- Router2 --- INet


Oder anders herum gefragt: Wann wird eine Route mit höherer Metric benutzt?

Wenn Du keinen Switch hättest und der Test-PC mit je einem Interface am INet hängen würde. Dann klappts auch mit dem Nachbarn.
Stell Dir einfach die Frage, woher soll der Test-PC wissen, daß es bei Router1 oder Router2 kein Internet mehr gibt?

Gruß
Blur
 
Stell Dir einfach die Frage, woher soll der Test-PC wissen, daß es bei Router1 oder Router2 kein Internet mehr gibt?

Ganz einfach: Weil ich bei meinem Test jeweils einen der beiden Router durch Ziehen des NW-Kabels unerreichbar gemacht habe.

Und darum geht es mir auch: Wenn der Router ausfällt (nicht seine INet-Verbindung).

Wenn Du keinen Switch hättest und der Test-PC mit je einem Interface am INet hängen würde. Dann klappts auch mit dem Nachbarn.

Bitte genau erklären: Was ist in diesem Beispiel "das INet" - je ein Router an je einem eth-Device meines Routers? Oder je eine pppoe-Verbindung? Bei letzterem wäre die Sache mit der Metric überflüssig, da ja das Interface (pppX) verschwindet, wenn keine Verbindung besteht - und damit auch die Routen über dieses Interface.

Ich stelle mir nach wie vor die Frage: Wofür ist diese Metric da und wann nutzt Linux eine Route mit höherer Metric?
 
Zuletzt bearbeitet:
Ganz einfach: Weil ich bei meinem Test jeweils einen der beiden Router durch Ziehen des NW-Kabels unerreichbar gemacht habe.

Und darum geht es mir auch: Wenn der Router ausfällt (nicht seine INet-Verbindung).

Dann musst Du den Switch da wegnehmen. Der Linux-Büchse 2 Ethernetkarten spendieren und schon funktioniert es.

Bitte genau erklären: Was ist in diesem Beispiel "das INet" - je ein Router an je einem eth-Device meines Routers? Oder je eine pppoe-Verbindung? Bei letzterem wäre die Sache mit der Metric überflüssig, da ja das Interface (pppX) verschwindet, wenn keine Verbindung besteht - und damit auch die Routen über dieses Interface.
Genau dann macht aber doch die Metrik Sinn. Man kann 2 Default-Routen eintragen und die mit der schlechteren Metrik kommt zum Tragen, wenn die Verbindung abbricht.

Ich stelle mir nach wie vor die Frage: Wofür ist diese Metric da und wann nutzt Linux eine Route mit höherer Metric?

Du machst hier statisches Routing. Da macht es nur Sinn die Metrik zu verwenden, wenn der Linux-Rechner selber erkennen kann, daß eine Gegenstelle nicht mehr da ist (Interface down). Wenn Deine Skizze so bleiben soll, dann führt der Weg nur über ein anderes Routing-Protokoll. Z.B. OSPF.:brav:


Gruß
Blur
 
Dann musst Du den Switch da wegnehmen. Der Linux-Büchse 2 Ethernetkarten spendieren und schon funktioniert es.

Dafür brauche ich aber keine Metric. Denn dann geht der Link des Interfaces down.

Genau dann macht aber doch die Metrik Sinn. Man kann 2 Default-Routen eintragen und die mit der schlechteren Metrik kommt zum Tragen, wenn die Verbindung abbricht.

So hätte ich es gern. Nur mit Switch oder was auch immer. Denn - wie oben erwähnt - bei direkter Verbindung kann man auf andere Art prüfen, ob der ROuter noch da ist.

Du machst hier statisches Routing. Da macht es nur Sinn die Metrik zu verwenden, wenn der Linux-Rechner selber erkennen kann, daß eine Gegenstelle nicht mehr da ist (Interface down). Wenn Deine Skizze so bleiben soll, dann führt der Weg nur über ein anderes Routing-Protokoll. Z.B. OSPF.:brav:

Ich meinte, der Linux-PC würde das Down des Routers daran erkennen, daß er diesen selbst nicht mehr erreichen kann.
Nur so machen auch die Variablen in /proc/sys/net/ipv4/route Sinn. Besonders gc_timeout.
Für eine Link-Down-Erkennung braucht es die nicht. Denn: Wenn ein Interface down ist, dann sind auch die Routen aus der Routing-Tabelle verschwunden, die über dieses Interface laufen.

Da kommt also nicht die Metric zum Tragen sondern es bleibt nur die Route mit der höheren Metric übrig in der Routing-Tabelle.

Also nochmal die Fragen an alle:

Wofür kann man den Metric-Wert angeben?

Wann wird eine Route mit höherer Metric benutzt, wenn gleichzeitg Routen mit niedrigerer Metric in der Tabelle vorhanden sind?

Wird überhaupt jemals eine Route mit höherer Metric benutzt?

Hat das jemand real am Laufen und kann bestätigen, daß wirklich die Metric zum Tragen kommt und nicht ein Interface, welches down ist?

Ich frage die letzten 2 Fragen, weil ich das hier in der Man-Page gefunden habe:

ManPage schrieb:
metric M set the metric field in the routing table (used by routing daemons) to M.

Demnach nutzt iproute selbst diese Info garnicht.
 

Ähnliche Themen

CentOS 7: Falsche Metric bei regelbasiertem Routing nach Server-Reboot

Routing mehrere Netzwerkkarten

dovecot und postfix Konfiguration Problem

OpenVPN - Server kann clients nicht erreichen.

Netzwerkverbindung über zwei Router

Zurück
Oben