Haupt- und Backup-Router können keine Verbindung miteinander herstellen

Haupt- und Backup-Router können keine Verbindung miteinander herstellen

Ich habe zwei Netzwerke und Router (beide auf Advanced Tomato von Shibby), die wie folgt angelegt sind:

  1. Backup-Router-Netzwerk (192.168.1.1/24)
    1. WAN – Xfinity
    2. LAN – geringe Anzahl von Clients. Wichtig ist, dass der Hauptnetzwerkrouter ein Client in diesem Netzwerk ist.
    3. Netzwerk Schnittstellen
      1. br0 - lokal. Der Router hat die IP 192.168.1.1
      2. eth0 - Xfinity
      3. eth2 - Drahtloses Netzwerk - dies ist das Netzwerk, mit dem das Backup-Netzwerk als drahtloser Client verbunden ist
  2. Hauptrouternetzwerk (192.168.2.1/24)
    1. WAN – Glasfaser
    2. LAN – Verbunden mit Mesh-Netzwerk-Zugangspunkten. Fast alle Geräte im Haus sind über diese Mesh-Netzwerk-Zugangspunkte mit dem Hauptnetzwerk verbunden. Besonders wichtig sind mein lokales NAS und Service-Hosts wie Plex, Drucker und Gaming-Desktop.
    3. Lastausgleich – Dieser Router ist ein „Wireless-Client“ des Backup-Netzwerkrouters und verfügt über Multi-WAN mit aktiviertem Lastausgleich.
    4. Netzwerk Schnittstellen
      1. br0 - lokal. Der Router hat die IP 192.168.2.1
      2. eth0 - Glasfaser
      3. eth2 - Client im Backup-Netzwerk mit IP 192.168.1.81

So funktioniert es: Solange der Client im Hauptnetzwerk ist, funktioniert das System einwandfrei. Er kann auf NAS, Drucker usw. zugreifen. Außerdem kann er auf jeden Client im Backup-Netzwerk zugreifen und ihn anpingen.

Problem:

Das Problem tritt auf, wenn sich der Client im Backup-Netzwerk befindet. Die Clients im Backup-Netzwerk können das NAS, den Drucker usw. im Hauptnetzwerk nicht erreichen.

Was ich versucht habe: Ich habe versucht, dem Backup-Router zu erlauben, seinen Clients den Zugriff auf das Netzwerk des Hauptrouters zu ermöglichen. Ich habe einige Artikel gefunden, in denen dies erwähnt wird, und habe die folgenden Schritte ausgeführt:

  1. Ich habe versucht, die folgende iptables-Weiterleitung zum Backup-Netzwerk hinzuzufügen
    iptables -I INPUT -i br0 -j ACCEPT
    iptables -I FORWARD -i eth2 -d 192.168.2.0/24 -j ACCEPT
    iptables -I FORWARD -i br0 -d 10.9.8.0/24 -j ACCEPT
  1. Aktivieren der IP-Paketweiterleitung in beiden Backup- und Hauptnetzwerken Durch Ausführenecho 1 > /proc/sys/net/ipv4/ip_forward

  2. IP-Route hinzufügen ip route add 192.168.2.0/24 via 192.168.1.81

Probleme

Leider funktioniert das nicht. Wenn ich versuche, 192.168.2.1 von meinem Backup-Netzwerkrouter aus anzupingen, erhalte ich den Fehler - Unable to ping From 192.168.1.1 icmp_seq=1 Redirect Host (New nexthop 192.168.1.81).

Ich schätze, ich vermassle den iptables-Teil. Ich verstehe nicht ganz, was ich da mache. Wenn mir jemand helfen kann, wäre ich sehr dankbar.

Antwort1

Ich habe versucht, die folgende iptables-Weiterleitung zum Backup-Netzwerk hinzuzufügen

Die FORWARD-Regeln scheinen nicht mit Ihrer Netzwerkbeschreibung übereinzustimmen:

  • Pakete, die im eth2 des Backup-Routers ankommen (also vom Hauptrouter kommen), hätten 192.168.2.0/24 alsQuelle,nicht Ziel; und ebenso würden an 192.168.2.0/24 gesendete Pakete eth2 verlassen und nicht betreten (d. h. wenn das der ist -d, dann sollte es sein -o eth2).

    Wenn Sie die Pakete in beide Richtungen visualisieren, sollte ungefähr Folgendes angezeigt werden:

    Quelladresse Zieladresse Eingangsschnittstelle Ausgabeschnittstelle
    192.168.1.0/24 192.168.2.0/24 →br0 eth2→
    192.168.2.0/24 192.168.1.0/24 →eth2 br0→

    Sie können Regeln nur mit -sund -doder mit Schnittstellen usw. hinzufügen. Ich würde vorschlagen, die Paketzähler in der iptables-Regelliste zu überprüfen, um zu prüfen, ob die Regelnabgestimmtdurch irgendwelche Pakete.

  • Das Netzwerk 10.9.8.0/24 scheint nirgendwo beteiligt zu sein.

  • Die INPUT-Regel ist nicht relevant, da keines Ihrer Pakete in den Router "eingereicht" wird – das wäre nur der Fall, wenn Sie den Router anpingen würden.eigenAdresse.

    Wenn Sie beispielsweise den Hauptrouter anpingen, wäre das für den Backup-Router „Forward“ und für den Hauptrouter „Input“. Wenn Sie jedoch einen Client von einem anderen anpingen, wird das für alle beteiligten Router als „Forward“ klassifiziert (und nur für den Client selbst als „Input“).

Dies ist zwar notwendig, sollte aber grundsätzlich erst nach dem Hinzufügen von Routen erfolgen, nicht davor. Denken Sie immer daran, dass IPtables nur steuert, ob Paketeerlaubtin eine bestimmte Richtung weitergeleitet werden, kontrolliert aber nichtWoSie sollten weitergeleitet werden – die Routing-Tabelle entscheidet zuerst darüber und dann passen Sie die FORWARD-Regeln von iptables entsprechend an.

Aktivieren der IP-Paketweiterleitung in BEIDEN Backup- und Hauptnetzwerken durch Ausführen von echo 1 > /proc/sys/net/ipv4/ip_forward

Es handelt sich um Router. In der Tomato-Firmware ist die Paketweiterleitung bereits werkseitig aktiviert, da dies grundsätzlich der Zweck eines Routers ist und Sie derzeit so auf das Internet zugreifen können.

Wenn ich versuche, von meinem Backup-Netzwerkrouter aus einen Ping an 192.168.2.1 zu senden, erhalte ich die Fehlermeldung „Ping von 192.168.1.1 icmp_seq=1 Redirect Host (New Nexthop 192.168.1.81) nicht möglich.“

Das ist kein Fehler. Das ist eine optionale Meldung, bei der der Backup-Router angibt, dass ein direkterer Pfad verfügbar ist (unter Umgehung des Routers); normalerweise würdest du sie sehenZusätzlichauf die üblichen Antworten.

Der eigentliche Fehler ist das Ausbleiben von Antworten, was höchstwahrscheinlich entweder durch den "Backup"-Router verursacht wirdoderdie Firewall-Regeln des „Haupt“-Routers blockieren Pakete in dieser Richtung.

Verwenden Sie tcpdump ( tcpdump -n -i ... "icmp"), um zu überprüfen, wo Pakete ankommen und ausgehen:

  • Erreichen sie diehauptsächlicheth2-Schnittstelle des Routers?
    • Wenn dies nicht der Fall ist, leitet der Backup-Router sie nicht weiter (entweder sind die Iptables oder die Routing-Tabelle falsch).
    • Wenn ja: Erreichen sie auch die br0-Schnittstelle des Hauptrouters?
      • Wenn dies nicht der Fall ist, leitet der Hauptrouter sie nicht weiter (er hat bereits lokale Routen für das Ziel, sodass seine iptables-Regeln dies nicht zulassen).
      • Wenn sie br0 erreichen: Versucht der Client zu antworten?
        • Ist dies nicht der Fall, wird es möglicherweise durch die Firewall des Clients blockiert.

verwandte Informationen