前回は、静的NAT機能を利用して公開する方法確認しました。
第3回目の今回は、ポートフォワーディングを利用する方法について説明します。

ポートフォワーディング(Port Forwarding)を利用して公開する

ポートフォワーディングとは、SSH(Secure Shell)などで実装している機能で、ある機器のあるポートに届いたパケットを別の機器に転送するものです。
SSHでは、LAN内のゲートウェイで起動させたSSHクライアントからインターネット上のゲートウェイで待ち受けているSSHサーバに接続し、そのゲートウェイに届いたパケットをLAN内の機器に転送させることができます(リモートフォワード(Remote Forward))。
インターネット上とLANの両方にゲートウェイを設置してこのリモートフォワード機能を応用すると、自宅に設置したサーバを公開をすることができます。
このときの通信例として図-7を示します。
ここでは、リクエストを送るパソコンのIPアドレスを、OOO.PPP.QQQ.RRRとします。リクエストを待ち受けるゲートウェイのIPアドレスを、KKK.LLL.MMM.NNNとします。また、ポートフォワードを行うSSHクライアントは、IPアドレスが192.168.AAA.YYYの機器で起動しているものとします。実際にリクエストを処理するサーバのIPアドレスは、192.168.AAA.UUUとします。

  1. LAN内のゲートウェイよりリモートフォワードを開始します。
  2. パソコンから、送信先のIPアドレスをKKK.LLL.MMM.NNN、ポートを433番に、送信元のIPアドレスをOOO.PPP.QQQ.RRR、ポートをm番にして、リクエストパケットを作成します。
  3. 作成されたリクエストパケットを送信します。
  4. ゲートウェイに届いたリクエストパケットは、SSHプロトコルの下り方向のパケットに変換されてLAN内のゲートウェイに送信されます。
  5. LAN内のゲートウェイに届いたパケットは、リクエストパケットに復元されます。合わせて、送信先のIPアドレスを192.168.AAA.UUUに変換します。
  6. 復元されたリクエストパケットをサーバに送信します。
  7. サーバはリクエストを処理して、送信先のIPアドレスを192.168.AAA.YYY、ポートをq番に、送信元のIPアドレスを192.168.AAA.UUU、ポートを433番にしてレスポンスパケットを作成します。
  8. 作成されたレスポンスパケットをLAN内のゲートウェイに送信します。
  9. LAN内のゲートウェイに届いたレスポンスパケットは、SSHプロトコルの登り方向のパケットに変換されてインターネット上のゲートウェイに送信されます。
  10. インターネット上のゲートウェイに届いたパケットは、レスポンスパケットに復元されます。合わせて、送信先のIPアドレスをOOO.PPP.QQQ.RRR、ポートをm番に変換します。
  11. 復元されたレスポンスパケットをパソコンに送信します。

このようにリモートフォワード機能を利用して、プライベートIPアドレスしか割り振られていない機器にインターネットからのリクエストを処理させることができるようになります。

リモートフォワードによる通信のイメージ
図-7

この方法は、ゲートウェイとなる機器をインターネットに設置しなければならないというコスト面のデメリットはありますが、意図しないパケットがLANに流れ込む可能性は低いため、セキュリティー面で優位にある方法です。
また、静的NAT機能を利用した際に起こる『LANからアクセスする場合と、インターネットからアクセスする場合で、IPアドレスが異なる』という問題も発生しません。
さらに設計を工夫すると、1台のゲートウェイで、複数のサーバを公開することが可能になります。

次回

VPNを利用して公開する方法』について説明していきます。


実践編 VPNを構築してサテライトオフィスに設置した弊社製WSD001A-Jを鳴らしてみた

1. はじめに
2. 静的NATによる公開
3. ポートフォワーディングによる公開
4. VPNによる公開