これから4回にわたってIPv4で構築されたインターネット環境において、自宅に設置したWebなどのサーバをインターネットを経由してアクセスさせる方法を説明します。
第1回目は、事前に理解しておいてほしいネットワークの概要を説明していきます。

TCP/IP通信の概要

インターネットで利用されているTCP/IP通信は、パケットと呼ばれる通常2kBに満たないデータを基本にして送信されます。
※送信したいデータが一つのパケットに収まらない大きさの時は、分割して複数のパケットを送信します。
このパケットには、IPアドレスと呼ばれる通信機器を特定するための番号と、ポートと呼ばれる通信を送受信するプログラム(およびプロセス)を指定する番号が記載されています。郵便に例えるならIPアドレスは住所で、ポートは郵便を受け取る人の部屋番号でしょう。
郵便には、宛先を記載することは当然ですが、差出人も記載します。
TCP/IPのパケットも同様に、送信先と送信元のIPアドレスと、ポートを記載します。(図-1)仮にどちらかが記載されていなかったり、間違っている場合は、通信ができません。

パケットのイメージ
図-1


図-2では、パソコンからサーバにリクエストパケットを送信して、そのレスポンスパケットが戻ってくるまでの流れを示しています。
TCP/IPでは、パソコンが送った『(1) リクエスト』がサーバに届くと、サーバはリクエストが届いたことを知らせる『(2) 確認応答』を返します。またサーバがリクエストを処理した『(3) レスポンス』がパソコンに届くと、パソコンはレスポンスが届いたことを知らせる『(4) 確認応答』を返します。
もし(2)や(4)の確認応答が戻ってこなかった場合は、送信したリクエストやレスポンスが相手に届いていなかったと判断することができます。このように、TCP/IPは通信の信頼性を確保しています。

TCP/IPパケットの通信イメージ
図-2

自宅のネットワーク(LAN

もう少し具体的に自宅のネットワークを見ていきたいと思います。
一般的に自宅でインターネットに接続するためには、インターネットサービスプロバイダ(ISP:Internet Service Provider)と契約していると思います。ここでは、図-3のようになっているとします。特別な契約をしていなければ、ISPは自宅に設置するブロードバンドルーターに一つのグローバルIPアドレスを割り振ってくれます。
グローバルIPアドレスは、インターネットにつながっているすべての機器で重複して割り振られることはありません。重複してしまうと通信ができなくなってしまうからです。
そのためにNIC(Network Information Center)と呼ばれる組織(日本を管轄しているのはJPNIC)がIPアドレスを管理しています。NICISPにグローバルIPアドレスを貸し出し、ISPは契約者にまた貸ししています。
一方、自宅のネットワークにつながっているパソコンのIPアドレスはだれが管理して、割り振っているのでしょうか。
実は誰も管理していません。
パソコンに割り当てられたIPアドレスは、プライベートIPアドレスと呼ばれるものを利用しています。プライベートIPアドレスは、『インターネットに接続しないこと』を条件に、自由に割り当ててよいことになっているのです。とはいっても、TCP/IPのネットワークですから、ネットワーク内でIPアドレスが重複してはいけません。
では『インターネットに接続しないこと』を条件にされているプライベートIPアドレスを割り振られたパソコンからインターネットの情報を閲覧するにはどのようにしているのでしょうか。
そこで使われるのが『NAT(Network Address Translation)』という技術です。読んで字のごとく、プライベートIPアドレスをグローバルIPアドレス(またはその逆)に変換してしまおうというものです。
パソコンからインターネット上の機器と通信をする際にはルーターを介していますので、NATはルーター上に構築されています。
※ただし、LANに接続された複数のパソコンからインターネットに接続したい場合は、IPアドレスの変換だけではなくポートの変換も行う『NAPT(Network Address Port Translation)』を利用することになります。
このNAT(NAPT)のおかげで、プライベートIPアドレスが割り振られた(LANにつながった)パソコンからインターネットに展開されている様々なサービスの恩恵を受けることができるようになりました。

一般的なLANの構成
図-3

ISPが割り振ってくれるIPアドレスを知る方法

多くのISPでは、ルーターにグローバルIPアドレスを一つ割り振ってくれます。しかしこのグローバルIPアドレスは、常に同じとは限りません。ブロードバンドルーターの電源を入れなおすと以前と異なるグローバルIPアドレスが割り振られることもあります。
ISPによっては、常に同じグローバルIPアドレスを割り振ってくれるサービスを用意しているところもあります。
そのようなサービスを契約すれば、ブロードバンドルーターのステータスを確認すると、割り振られたグローバルIPアドレスを確認することが可能と思われます。
しかしそのようなサービスが提供されていない場合は、DDNS(Dynamic Domain Name System)の利用を検討します。
DDNSは、IPアドレスが割り振られた際に、DNSサーバにISPから割り振られたグローバルIPアドレスを登録してしまう仕組みです。
DDNSを利用できるブロードバンドルーターであればこの仕組みを利用することで、直接IPアドレスを知る必要がなく、FQDNを知っていればよいことになります。
FQDNとは、完全修飾ドメイン名と訳されていて、ホスト名、ドメイン名(サブドメイン名)などを全て省略せずに指定した形式のドメイン名のことです。

NAT(NAPT)についてもう少し

NATには大きく分けて

  • 静的NAT
  • 動的NAT

の2種類があります。
動的NATは、LANからインターネットなどのWAN(Wide Area Network)にリクエストをする際によく利用されます。
例えば、ブラウザでWebサイトを閲覧する時の通信を考えてみたいと思います。
パソコンのIPアドレスは、192.168.AAA.XXX、デフォルトゲートウェイのIPアドレスは192.168.AAA.1であるとします。
また、ISPから割り当てられたルーターのIPアドレスはCCC.DDD.EEE.FFFとします。
そして、WebサイトのIPアドレスはGGG.HHH.III.JJJ、セキュアなWebサイトを想定して、ポート番号は433番です。
この場合の通信は図-4に示すように、次のようになります。

  1. パソコンから、送信先のIPアドレスをGGG.HHH.III.JJJ、ポートを433番に、送信元のIPアドレスを192.168.AAA.XXX、ポートをm番にして、リクエストパケットを作成します。
  2. 作成されたリクエストパケットは中継を依頼するためデフォルトゲートウェイであるルーターに送信します。
  3. ルーターのLAN側に届いたリクエストパケットはNATによって、送信元のIPアドレスをCCC.DDD.EEE.FFF、ポートをn番に変換します。
    ※これで、ルーター自身が送信元になります。
  4. 変換されたリクエストパケットは、送信先であるサーバに宛て、送信します。
  5. サーバにリクエストパケットが届き、リクエストを処理します。
  6. サーバはリクエストを処理して、送信先のIPアドレスをCCC.DDD.EEE.FFF、ポートをn番に、送信元のIPアドレスをGGG.HHH.III.JJJ、ポートを433番にしてレスポンスパケットを作成します。
  7. 作成されたレスポンスパケットは、リクエストの送信元のルーターに送信します。
  8. ルーターのWAN側に届いたレスポンスパケットは、NATによって、送信先のIPアドレスを192.168.AAA.XXX、ポートをm番に変換します。
    ※これで、パソコンが送信先になります。
  9. 変換されたレスポンスパケットは、送信先であるパソコンに送ります。

このようにIPアドレスを変換するのが動的NATです。

動的NAT(NAPT)の通信イメージ
図-4

一方静的NATは、WANからのリクエストをLANに転送する際によく利用されます。

次回

自宅に設置したサーバをインターネットに公開する主な方法の種類とその一つである『静的NATを利用して公開する方法』について説明していきます。
また次回以降の説明は、ISPがグローバルIPアドレスを割り振ってくれることを前提にしております。ISPがプライベートIPアドレスを割り振ってくる場合は、別途検討が必要であることをご理解ください。


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

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