Wie lässt sich die Portweiterleitung von zwei Routern über ihr eigenes Netzwerk zum Laufen bringen?

Wie lässt sich die Portweiterleitung von zwei Routern über ihr eigenes Netzwerk zum Laufen bringen?

Ich habe einen Computer, der über das interne Netzwerk von zwei Routern mit diesen verbunden ist. Auf beiden Routern habe ich Port 80 an meinen Computer weitergeleitet.

RouterA:80 -> 10.0.0.10:80 funktioniert. RouterB:80 -> 192.168.1.10:80 funktioniert.

Die Portweiterleitungskonfiguration des Routers ist also korrekt.

Wenn ich mich jedoch mit beiden Netzwerken verbinde, funktioniert nur die Portweiterleitung von RouterA. Wie kann ich die Portweiterleitung von RouterB zum Laufen bringen? Bitte sehen Sie sich die Netzwerkkonfiguration meines Computers an.

network:
  ethernets:
    enp7s0:
      addresses:
      - 10.0.0.10/24
      gateway4: 10.0.0.1
      nameservers:
        addresses:
        - 10.0.0.1
    enp6s0:
      addresses:
      - 192.168.1.10/24
      gateway4: 192.168.1.1
      nameservers: {}
  version: 2

Ich muss das Gateway nicht verwenden enp6s0, aber es scheint, als wäre es für die Portweiterleitung erforderlich.

Dank @raj habe ich meine Netzwerkkonfiguration aktualisiert.

HINWEIS: Das ist nicht genau das, was ich gefragt habe, aber wenn Sie über einen anderen IP-Bereich auf Ihre Router zugreifen, würde es funktionieren. Glücklicherweise war das bei mir der Fall.

enp7s0:
      addresses:
      - 10.0.0.10/24
      routes:
      - to: 0.0.0.0/0  #default route
        via: 10.0.0.1
        metric: 100
      nameservers:
        addresses:
        - 10.0.0.1
    enp6s0:
      addresses:
      - 192.168.1.10/24
      routes:
      - to: A.B.C.D/24  # IP range of network that would access Router B
        via: 192.168.1.1
        metric: 10
      nameservers: {}

Antwort1

Im Allgemeinen funktioniert die Netzwerkverbindung nicht besonders gut, wenn zwei Standard-Gateways definiert sind. Ihr Computer verwendet standardmäßig nur ein Gateway (in diesem Fall wahrscheinlich 10.0.0.1) und verwendet das zweite nur, wenn das erste nicht erreichbar ist.

Die Portweiterleitung auf RouterB ist also wahrscheinlichIstfunktioniert, d. h., an RouterB:80 gesendete Pakete erreichen wahrscheinlich die Schnittstelle 192.168.1.10 auf Ihrem Computer. Die Antwortpakete werden jedoch immer an Gateway 10.0.0.1 gesendet und kommen wahrscheinlich nicht zum Ziel zurück (dies ist das sogenannte „asymmetrische Routing“, das im Allgemeinen problematisch ist).

Wenn Sie vorhaben, sich mit RouterA:80 und RouterB:80 aus demselben IP-Adressbereich zu verbinden, sehe ich keine einfache Lösung für Ihr Problem. Vielleicht ist es möglich, iptables irgendwie so zu optimieren, dass Antworten auf Pakete, die über die Schnittstelle enp6s0 empfangen werden, immer über 192.168.1.1 ausgehen, aber ich weiß nicht, wie das geht (falls es überhaupt möglich ist).

Wenn die IP-Adressen unterschiedlich sind, sollten Sie 192.168.1.1 nicht als Standard-Gateway definieren, sondern stattdessen der Routing-Tabelle eine Route zu bestimmten Netzwerken über 192.168.1.1 hinzufügen. Dies hat Vorrang vor dem Standard-Gateway, sodass Pakete an bestimmte Netzwerke über 192.168.1.1 und nicht über 10.0.0.1 gesendet werden.

verwandte Informationen