アドレス変換
さらに他のルータの機能として、アドレス変換があります。なんのアドレスを変換するかというと、IPアドレスのグローバルアドレスとプライベートアドレスです。
簡単にグローバルアドレスとプライベートアドレスについておさらいです。グローバルアドレスはインターネットに接続するときに必要になってきます。インターネット上で重ならないように管理がされているんですが、インターネットが普及してくるにつれて数が足りなくなってくることが心配されてきました。数の不足を解消するためのひとつの方法として、プライベートアドレスの利用があります。企業のLANなどの閉じたネットワークでは、プライベートアドレスを利用して、グローバルアドレスの消費を防いでいます。しかし、インターネットにつなぐにはグローバルアドレスが必要です。そこで、プライベートアドレスからグローバルアドレスへの変換、その逆をルータで行っています。(家庭からダイアルアップでインターネットにつなぐときは、プロバイダからその都度グローバルアドレスが割り当てられています) その変換の仕組みとして、NAT(Network Address Translation)やIPマスカレードがあります。今回は、NATについて仕組みを見ていきます。
変換の仕組み
NATの変換の仕組みを説明するために、次のような図のネットワークを考えてみます。
社内のネットワークにA,B,Cという3台のPCがつながっていて、それぞれ P1、P2、P3 というプライベートアドレスが設定されています。そして、ルータで利用可能なグローバルアドレスとして、G1、G2、G3があります。インターネット上のとあるWEBサーバを考えて、そのアドレスをG100とします。これはグローバルアドレスです。
このとき、コンピュータAからWEBサーバに接続するときのプロセスを見ていきます。
インターネット上への通信ということで違うネットワークに対する通信になります。すると、直接通信はできないのでルータへデータを送ることになります。そのときのデータは次のようになります。ここでは、イーサネットヘッダなどデータリンク層レベルのヘッダは省いています。 (ルータに向かう青い矢印)
IPヘッダの送信元のIPアドレスに自分のアドレスである「P1」が入り、送信先IPアドレスに「G100」と入っています。
これがルータに届くと、ルータで送信元IPアドレスを書き換えます。そしてWEBサーバに対して書き換えたデータを送信します。(WEBサーバに向かう赤い矢印)
なぜ書き換える必要があるかというと、送信元IPアドレスはWEBサーバからの返事では送信先IPアドレスになります。しかし、インターネット上ではプライベートアドレスのあて先は破棄する決まりになっているので、送信元がプライベートアドレスだと返事が返ってこなくなるからです。 で、ルータは書き換えた対応表をNATテーブルに保存しておきます。これは返事が返ってきたときに元の送信元に送り返すときに必要です。
そして、インターネット上のWEBサーバからの返事は次のように、送信元IPアドレスがG100で、送信先IPアドレスがG1になります。(WEBサーバからの赤い矢印)
そうすると返事はルータに届いてきますが、ルータでは先ほどのNATテーブルを見て送信先IPアドレスをG1からP1に書き換えて、コンピュータAに送ります。(ルータからの青い矢印)
このように、ルータで中から外に出るときはプライベートアドレスからグローバルアドレスに、外から中に入るときにはグローバルアドレスからプライベートアドレスに変換を行っています。
NATの限界
NATの場合、1つのグローバルアドレスを使って1台のコンピュータしかインターネットに接続することができません。この点がNATの限界です。これはどういうことかというと、コンピュータAがインターネットに接続しているとき、コンピュータBがインターネットに接続したい場合は、違うグローバルアドレスに変換する必要があるということです。
コンピュータAがインターネットに接続しているときにコンピュータBがインターネットに接続した場合、コンピュータBのアドレスP2はG2に変換されて、NATテーブルに登録されます。つまり、NATテーブルが
次のようになります。
いまこの例では、ルータで利用可能なグローバルアドレスとして3個書いていますが、同時に4台がインターネットに接続しようとすると、4台目は接続できずにエラーになってしまいます。そんなにたくさんのグローバルアドレスを持っていない場合は、インターネットに接続できる台数が制限されてしまいます。 そこで、1つのグローバルアドレスで同時に複数のコンピュータをインターネットに接続できるようにしたものがIPマスカレードです。










