Routing Experten gefragt: zwei Gateways?

Hallo alle zusammen,

ich versuche gerade meinem ubuntu server 18.04 KVM Host von außen über ein anderes Netzwerkinterface zu erreichen (per SSH).
Dabei habe ich mir die Frage gestellt, ob es vielelcht zu Problemen führen könnte, dass der Server sein Gateway auf dem anderen Device hat.
Damit das alles nicht zu langweilig wird, ist derzeit das Gateway auf einem VLAN am Device, das mit dem L3 Switch verbunden ist (ich nenne das VLAN mal VLAN ROT).
Ich hab in den Server eine weitere Netzwerkkarte eingebaut, die ich mit dem neuen externen Netzwerk verbunden habe (FritzBox mit öffentlicher IP).

Benennungen:
„altes“ öffentliches Netz: 30.31.32.0/28 Gateway 30.31.32.1
„neues“ öffentliches Netz: 40.41.42.8/29 Gateway 40.41.42.9

Nun ist die Frage: da nur das erste Gateway eingetragenist: kann es sein, dass eine ssh Verbindung zum Server über die öffentliche IP trotz funktioniernder Weiterleitung in der FirtzBox zu 40.41.42.10 des KVM Hosts fehl schlägt (es passiert „von außen“ garnichts bis der TimeOut kommt) weil die Antworten über das falsche Gateway gehen?
Ich habe einen Laptop über einen Switch in das 40.41.42.8/29 Netz gehängt und ihm die 40.41.42.11 gegeben. Ich kann die .9 und die .10 anpingen: kein Problem. Und ich komme auch, wenn ich das Gateway eingetragen habe über die öffentliche IP ins Internet…

Was meint ihr?
Könnte es am Gateway liegen?

LG

Holger

Noch eine Anmerkung:

da in der /etc/ssh/sshd_config folgendes steht:

# Package generated configuration file
# See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2

gehe ich davon aus, dass ssh auf allen Devices lauscht …
(Mist: hab Heute vergessen vom Laptop im 40.41.42.9/29 er Netz ssh auf die 40.41.42.10 zu versuchen … )

LG

Holger

Ich denke schon dass man an dem server einstellen muss welche ipadressen ziele ueberwelche netzwerkkarte genutzt werden.
Mit dem befehl
ip route add 0.0.0.0 via 40.41.42.9 dev eth??
(Bzw. Wenn man vorsichtig sein will auch direkr die ip adresse des ssh clients, statt 0.0.0.0)
Da ip route so nicht statisch eingerichtet ist, sollte das nach dem neustart auch wieder verschwunden sein.
Mit ip route sieht man alle eintraege die schon da in der routing tabelle eingetragen sind.
Sonst kann man ja mit
ip route del…
den neu ejngestellten eintrag auch wieder loeschen (anstelle des neustarts)

Ich machs mal ganz kurz:

2 Default Gateways sind quatsch. Es wird nur das erste aus der Routing Tabelle verwendet. Mach doch einfach mal einen Plan der Topologie. So ganz habe ich nicht durch deine Ausführung durchgeblickt, schlussendlich müssen einfach die entsprechenden Routen passen wie @sucher sucher das auch geschrieben hat.

Hallo,

an der Stelle könnte Policy based Routing helfen.
Man kann mehrere Routingtabellen unabhängig voneinander haben. Dann lässt man alle Pakete, welche auf der zweiten Netzwerkkarte eingehen, und zugehörige Antwortpakete der Verbindung markieren. Dann wird eingestellt, dass für alle markierten Pakete und Verbindungen eine andere Routingtabelle gilt.

Die Alternative wäre der Router vor der zweiten Netzwerkkarte macht ein SRC-NAT und ersetzt die Quell-IP von Anfragen an den KVM-Host durch seine eigene. Aus Sicht des KVM-Host ist es dann eine lokale Verbindung im Netz der zweiten Netzwerkkarte. Man verliert dann aber im KVM die Übersicht von wo aus wirklich zugegriffen wurde (wie bei jedem NAT).

MfG Buster

danke @buster. policy based routing das kannte ich nicht, aber „works like a charm“, und gibt mir neue möglichkeiten. :slight_smile:

Hallo Buster,

an der Stelle könnte Policy based Routing
https://blog.scottlowe.org/2013/05/29/a-quick-introduction-to-linux-policy-routing/
helfen.

ja, das hatte ich auch gefunden:

… aber so tief wollte ich eigentlich garnicht eingreifen, weil das alte
Gateway ja am Ende ersetzt wird durch das neue: es geht ja gerade nur um
das Testen vor dem Umschalten.

Deswegen: glaubt ihr, dass ich den Server nicht erreiche, wegen des
fehlenden Gateways?

LG

Holger

Hallo Holger,

wenn die Antwortpakete über das andere Interface gesendet werden, so ist das kein Problem, denn welchen Weg sie nehmen ist völlig egal. Es kann durchaus passieren, dass Pakete von derselben Sitzung völlig andere Wege durch das Internet nehmen.

Einzige Ausnahme wäre eine Firewall, die die Pakete aus irgendwelchen Gründen verwirft.

Ich würde eher mal suchen, ob die Verbindung von außen überhaupt funktioniert, also z. B. mal bei einem Login-Versuch die Pakete auf der Karte mitschneiden und sehen, ob was ankommt.

Und dann testen, ob der SSHD auch auf der richtigen Karte lauscht: netstat -tulpen

Ein Test wäre auch, die andere Karte zu deaktivieren und zu schauen, ob es dann klappt.

BeEste Grüße

Jörg

Hallo Holger,

Das Default Gateway ist eigentlich nur für ausgehende Verbindungen Relevant. Wenn du deinem Rechner sagst du möchtest gerne mit 1.2.3.4/10 kommunizieren, diese Adresse befindet sich aber nicht in deinem Netzwerk schickt er die Anfrage über das Default Gateway.
Also wenn du von außen auf deinen Rechner zugreifen möchtest ist die Angabe des Default Gateway in diesem Rechner ziemlich egal. Wichtig ist nur die Angabe in dem Rechner von dem aus du in „unbekannte Welten“ vordringen möchtest und natürlich, dass generell die Kommunikation nach draußen in dem Rechner, den du erreichen möchtest funktioniert.

Liebe Grüße
Der Hoches