48471


以下のような構成で同一LANでの通信のように、PC1でacceptしているところを  
PC2、PC3からconnectしてsocket通信を行いたいのですが、ルーター1でNAT越えの  
設定をしてやれば、クライアント側からルーター1のグローバルIP／設定したポートを指定して  
やれば通信できるものなのでしょうか？  
ダメな場合、どうすれば以下の構成でSocket通信が可能かご教示いただけませんでしょうか。  
よろしくお願いします。

■ネットワーク構成

[code]

    サーバー側                     クライアント側
    ==========================================
    PC1 -- ルーター1 -- WAN -- ルーター2 -- PC2
             LAN1 -|    |      |-LAN2
                        |
                        └------ルーター3 -- PC3
                               | LAN3
    
[/code]


CC BY-SA 4.0
2018-09-15T14:40:16.620
48435
2018-09-16T22:01:04.617
2018-09-15T20:25:02.797
4236
21054
question
linux network
WANを経由したSocket通信（TCP/UDP）について


基本は可能。気になるのは

  * ルータ１とルータ2、3の間の宛先どうやって管理するの？  
→グローバルIP使うの？DDNS使うの？

  * こんなにさらして大丈夫？


CC BY-SA 4.0
2018-09-15T22:56:49.753
48437
2018-09-15T22:56:49.753
10174
48435
answer


> NATはルーター1で設定するもので外部から特定のポート番号でアクセスしてきたものをLAN内の任意のIPのPCへと流すものだと思っていました

[NATとNAPT](https://ja.wikipedia.org/wiki/%E3%83%8D%E3%83%83%E3%83%88%E3%83%AF%E3%83%BC%E3%82%AF%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E5%A4%89%E6%8F%9B#NAT%E3%81%A8NAPT)で次のように説明されています。

>
> 元来のNATは、送受信するパケット上のIPアドレスだけを識別して変換するものであるため、複数のホストから同時にローカル外のネットワークに接続しようとすると、ローカルのホスト数と同数のグローバルアドレスが必要になる。NAPTでは、IPアドレスに加えてポート番号の識別や変換をすることで、複数のホストからローカル外のネットワークに接続する際、異なるローカルアドレスを同一のグローバルアドレス配下の異なるポートとして表現し、必要なグローバルアドレスの数を減らすことができる。
> 動的NAPTは、インターネットプロバイダから利用者に対するグローバルIPアドレスの割り当て等でよく用いられる。

質問文で **NAT** と触れられていますが、文面から **動的NAPT** であり、元来のNATではないと判断します。  
元来のNATであれば言及されているように外部からのアクセスはそのまま内部アドレスに変換されて中継されますが、動的NAPTではそれができません。

コメントでも言及しましたが、ルーター1に[
**DMZ**](https://ja.wikipedia.org/wiki/%E9%9D%9E%E6%AD%A6%E8%A3%85%E5%9C%B0%E5%B8%AF_\(%E3%82%B3%E3%83%B3%E3%83%94%E3%83%A5%E3%83%BC%E3%82%BF%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3\))の機能があれば、外部からのアクセスを全てPC1へ中継することができ質問のネットワークを構築することができます。また[
**UPnP
IGD**](https://ja.wikipedia.org/wiki/Universal_Plug_and_Play)の機能があり、PC1のアプリケーションがルーター1にポート割り当てを要求する場合、ルーター1は割り当てたポートのみPC1へ中継します。

質問の前提条件とは多少異なりますが、インターネットサービスプロバイダーを２つ契約し、PC1にグローバルIPを割り当ててしまう方法もあります。

いずれにせよ、既にコメントした通り、ルーター1にどのような機能があるかに依存します。


CC BY-SA 4.0
2018-09-16T22:01:04.617
48471
2018-09-16T22:01:04.617
4236
48435
answer