Zugriff auf eine Samba-Freigabe von einem separaten LAN aus

Zugriff auf eine Samba-Freigabe von einem separaten LAN aus

Ich habe 2 LANs zu Hause:

  • Ein Haupt-LAN, das hinter dem Modem meines ISPs läuft (und als Router mit der IP-Adresse 192.168.0.1 fungiert, den ich als Router A bezeichnen werde). An diesen Router ist ein Raspberry Pi mit der Adresse 192.168.0.4 angeschlossen.
  • Ein sekundäres LAN, das hinter einem drahtlosen TP-LINK-Router läuft und mit meinem Modem (meinem Haupt-LAN) unter 192.168.0.10 verbunden ist (das Standard-Gateway dieses Routers ist also 192.168.0.10), das ich als Router B bezeichnen werde. Die IP-Adresse des Routers in seinem LAN ist 192.168.1.1. An diesen Router ist eine Festplatte angeschlossen, auf die ich über eine Samba-Freigabe unter der Adresse 192.168.1.1 zugreife. Hier ist eine Übersicht über dieses Setup:

Router A 192.168.0.1 | | - Raspberry Pi | Router B 192.168.0.10 to router A, | 192.168.1.1 to clients within | Samba server - 192.168.1.1

Ich versuche, von meinem Raspberry Pi aus auf meine Samba-Freigabe zuzugreifen, aber da sie sich in unterschiedlichen LANs befinden, kann der Pi meine Samba-Freigabe nicht sehen. Ich habe versucht, Samba-Ports auf Router B (Ports 137 bis 139 und Port 445) weiterzuleiten und vom Pi aus über IP 192.168.0.10 (IP-Adresse von Router B im LAN des Pi) auf die Freigabe zuzugreifen, aber es funktioniert nicht. Wenn ich den Pi an das LAN von Router B anschließe (mit einem WLAN-Dongle), kann ich problemlos über IP 192.168.1.1 auf die Samba-Freigabe zugreifen, aber da sie weit entfernt sind, verliere ich ständig die Verbindung. Wie soll ich das Ihrer Meinung nach tun, ohne den Pi physisch mit Router B zu verbinden?

Antwort1

Du hast einRoutenplanungProblem.

Bedenken Sie: Ihr RPI (192.168.0.x) weiß nichts über die Existenz eines anderen LAN (192.168.1.x). Wie können Sie ihm mitteilen, dass direkt neben ihm ein anderes LAN existiert? Antwort: durch Verwendung einesRoute, eine sehr spezifische Information, die angibt, wie ein bestimmtes Subnetz/Host erreicht werden kann.

In Ihrem Beispiel befindet sich Ihr LAN 192.168.1.x hinter dem Host „Router B“ (192.168.0.10). Um das LAN 192.168.1.x zu erreichen, mussten Hosts, die mit dem anderen LAN (192.168.0.x) verbunden sind, genau das wissen. Mit anderen Worten, Sie mussten Ihrem 192.168.0.x-LAN mitteilen, dass das andere LAN (192.168.1.x) über den Router 192.168.0.10 sichtbar ist.

Sie können dies mit dem folgenden Linux-Routing-Befehl erreichen: route add -net 192.168.1.0/24 gw 192.168.0.10. Theoretisch wird dieser Befehl auf jedem Host benötigt, der sich im LAN 192.168.0.x befindet – eine etwas lästige Angelegenheit, wenn Sie mehrere (vielleicht Dutzende) Hosts haben. Es gibt jedoch eine andere Lösung: Lassen Sie die verschiedenen 192.168.0.x-Hosts nichts über das andere LAN wissen, informieren Sie aber den Hauptrouter (Router A – 192.168.0.1), dass ein solches Netzwerk existiert. Soweit ich gelesen habe, können Sie die Routing-Tabelle von Router A jedoch in keinem Modus ändern, sodass Sie nur die oben erläuterte erste Methode verwenden können.

Eine letzte, nicht empfohlene Lösung, die keine Routing-Änderung erfordert, ist die Portweiterleitungsmethode. In diesem Fall sagen Sie Router B (192.168.0.10) im Grunde, er solle einen „falschen“ Samba-Listener einrichten und alle Samba-Anfragen an den internen Samba-Server 192.168.1.1 umleiten. Warum wird davon abgeraten? Weil NAT die Netzwerkkomplexität unnötig erhöhen kann und weil es erhebliche Verarbeitungsarbeiten durch Router B erfordert – was Ihre Verbindungen verlangsamt.

Eine letzte Sache: Führen Sie Ihren Test/Ihr Setup durch,Verwenden Sie immer die IP-Adresse von Samba und nicht den Servernamen.Dies liegt daran, dass NETBEUI (das sich zu NETBIOS weiterentwickelte) nicht für den Betrieb zwischen verschiedenen LANs konzipiert wurde, was seine Fähigkeit zur Namensauflösung beeinträchtigte. Machen wir es also einfach: Verwenden Sie die IP-Adresse des Samba-Servers zum Testen von Verbindungen.

verwandte Informationen