別の LAN から samba 共有にアクセスする

別の LAN から samba 共有にアクセスする

自宅には 2 つの LAN があります。

  • ISP のモデムの背後で実行されているメイン LAN (IP アドレス 192.168.0.1 のルーターとして機能し、ルーター A と呼びます)。このルーターには、192.168.0.4 の Raspberry Pi が接続されています。
  • ワイヤレス TP-LINK ルーターの背後で実行されているセカンダリ LAN は、モデム (メイン LAN) の 192.168.0.10 に接続されています (したがって、このルーターのデフォルト ゲートウェイは 192.168.0.10 です)。これをルーター B と呼びます。ルーターの LAN 上の IP アドレスは 192.168.1.1 です。このルーターには、アドレス 192.168.1.1 の samba 共有経由でアクセスするハード ドライブが接続されています。このセットアップの概要は次のとおりです。

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

Raspberry Pi から samba 共有にアクセスしようとしていますが、異なる LAN にあるため、Pi は samba 共有を認識できません。ルーター B の samba ポート (ポート 137 ~ 139、およびポート 445) を転送し、IP 192.168.0.10 (Pi の LAN 上のルーター B の IP アドレス) を使用して Pi から共有にアクセスしようとしましたが、機能しません。Pi をルーター B の LAN (WiFi ドングルを使用) に接続すると、IP 192.168.1.1 で samba 共有に問題なくアクセスできますが、離れているため、接続が失われ続けます。Pi をルーター B に物理的に接続せずにこれを行うには、どのようにすればよいでしょうか。

答え1

あなたが持っているルーティング問題。

考えてみてください。RPI (192.168.0.x) は別の LAN (192.168.1.x) の存在を知りません。どうすれば、すぐ隣に別の LAN が存在することを RPI に知らせることができるでしょうか? 答え:ルートこれは、特定のサブネット/ホストに到達する方法を示す非常に具体的な情報です。

この例では、LAN 192.168.1.x は「ルーター B」ホスト (192.168.0.10) の背後にあります。LAN 192.168.1.x に到達するには、他の LAN (192.168.0.x) に接続されているホストがこれと同じことを認識している必要があります。言い換えると、192.168.0.x LAN に、他の LAN (192.168.1.x) がルーター 192.168.0.10 を介して見えることを通知する必要があります。

これは、次の Linux ルーティング コマンドを使用して実行できます。route add -net 192.168.1.0/24 gw 192.168.0.10理論的には、このコマンドは 192.168.0.x LAN 上の各ホストで必要になります。これは、ホストが複数 (おそらくテント) ある場合に実行するのは少々面倒な作業です。ただし、別の解決策があります。さまざまな 192.168.0.x ホストに他の LAN について何も知らせず、メイン ルーター (ルーター A - 192.168.0.1) にそのようなネットワークが存在することを通知します。ただし、私が読んだところによると、どのモードでもルーター A のルーティング テーブルを変更することはできないため、上記の最初の方法しか使用できません。

最後に、ルーティングの変更を伴わない、あまり推奨されない解決策は、ポート転送方法です。この場合、基本的に、ルーター B (192.168.0.10) に「偽の」Samba リスナーを設定し、各 Samba 要求を内部 Samba サーバー 192.168.1.1 にリダイレクトするように指示します。なぜこれが推奨されないのでしょうか。NAT によってネットワークの複雑さが無用に増大する可能性があり、ルーター B でかなりの処理が必要になるため、接続速度が低下するからです。

最後にもう一つ: テスト/セットアップを行うには、常に samba の IP アドレスを使用し、サーバー名は使用しないでください。これは、NETBEUI (NETBIOS に進化) が異なる LAN 間で機能するように設計されておらず、名前解決機能に影響するためです。したがって、ここでは単純に、samba サーバーの IP アドレスを使用して接続をテストします。

関連情報