ルータの仕組みについて
ルータの仕組み
IPマスカレード(NAT)について説明します。
通常プロバイダと契約する事でインターネットへ接続出来るのは
1台のパソコンですが、、、
ルータを購入する事で、ルータ経由で複数のパソコンから
同時にインターネットができるようになります。
これはルータにIPマスカレードという機能があるからです。
1台の場合
PC--------------ADSLモデム-----インターネットへ
PCがグローバルIPを取得します。
となりますが、
ルータを接続する事で、以下のように複数台のパソコンから
同時にインターネット接続が出来る様になります。
複数台の場合
PC-----ルータ----ADSLモデム-----インターネットへ
PC------|
PC------|
ルータがグローバルIPを取得します。
上記のようにインターネットへ接続する際は、全世界で唯一の
IPアドレス(グローバルIPアドレス)をプロバイダより取得して
インターネットに接続する事になります。
これは、TCP/IPというプロトコルの機能です。
プロバイダより取得する世界で唯一のIPドレスを「グローバルIPアドレス」
と呼びます。
その反対に、LAN側(内側)だけで使うアドレスを「プライベートIPアドレス」
といいます。
プライベートIPアドレスとは、、
「10.x.x.x」「172.16.x.x~172.31.x.x」「192.168.x.x」の3つパターンで
構成されており、これらのIPアドレスをTCP/IPプロトコルに実装する
事で、TCP/IPのネットワークを構築する事が可能です。
そして、上記のパターン以外のIPアドレスは、通常
グローバルIPアドレス(世界で唯一のIPアドレス)となります。
例) 202.33.45.122 や 123.12.111.231 など
※以下PCのIPアドレスの確認方法です。
IPアドレスの確認方法
さて、インターネットに接続する為に必要なグローバルIPアドレスは
通常プロバイダより1つしかもらえません。
この1つのグローバルIPアドレスを使い複数のPCでインターネットを
できるように提供するのがルータ(IPマスカレード)の役割になります。
さらに、ここで活躍するのがポートという概念になります。
通常データを送信する際は、送信元ポート番号と送信先ポート番号を
パケットに含めて、送信します。
送信先ポート番号が80番だとすると、受信したサーバーは、
80 = Webサーバー と判断し、Webサーバーがデータを返信します。
こういうふうに、ポート番号が重要な役割があるのですが、
IPマスカレードの機能によって、ポート番号とIPアドレスの2つの情報を
セットでグローバルIPアドレスに変換する事が出来ます。
例えば
PC1 192.168.1.2(プライベートIP)
PC2 192.168.1.3(プライベートIP)
ルータ:202.23.22.***(グローバルIP)
の場合
PC1のIPアドレス:192.168.1.2のマシンがWebサーバーを回覧する場合
まず、PCからは以下のパケットを送信します。
送信元IP:192.168.1.2 | 送信元ポート 1500 |
送信先IP: 11.*.*.* | 送信先ポート 80 |
このパケットデータがルータを経由する際に
ルータのIPマスカレード機能がIPとポートを変換します
送信元IP:202.23.22.*** | 送信元ポート 2000 |
送信先IP: 11.*.*.* | 送信先ポート 80 |
※送信元ポートは、1024以上のランダム番号です。
※送信元IPは、プロバイダよりルータに割り当てられているグローバルIPに変換されます
※送信先ポートは利用アプリによって決まってます。例)Webサーバーなら80番
PC2のIPアドレス:192.168.1.3のマシンがWebサーバーを回覧する場合
送信元IP:192.168.1.3 | 送信元ポート 1501 |
送信先IP: 11.*.*.* | 送信先ポート 80 |
このパケットデータがルータを経由する際に
ルータのIPマスカレード機能がIPとポートを変換します
送信元IP:202.23.22.*** | 送信元ポート 2001 |
送信先IP: 11.*.*.* | 送信先ポート 80 |
参考図
このようにしてパケットデータを送るので、1つのグローバルIPアドレスでも
送信元ポート番号を変えることによって、2つのパケットがそれぞれインターネットへ
送信される事になります。
1つのグローバルIPしかインターネット上では使ってませんので問題ありません。
これで、Webサーバーへ送信されたパケットデータは、送信元へデータを
返すことになりますが、返送先は、送信元のIPアドレス202.23.22.***
ポート 2000になります。
上記宛名に届いたデータは、ルータが変換処理をしたことを覚えているので
変換する前のIPアドレスとポート番号に正しく戻してくれます。
Webサーバーより送信されるパケットデータ
送信元IP: 11.*.*.* | 送信元ポート 80 |
送信先IP:202.23.22.*** | 送信先ポート 2000 |
ルータを経由すると以下へ変換されます。
送信元IP: 11.*.*.* | 送信元ポート 80 |
送信先IP: 192.168.1.2 | 送信先ポート 1500 |
これで、元通り、データを送信したPCへデータが戻ってくることになります。
以上、IPマスカレード、ルータの仕組みでした。
補足
実際は、データを送信する際は、送信元ポート番号と送信先ポート番号もあります。
ルータ内部から外部へパケットが送信される際にIPマスカレードで変換するのは
送信元ポート番号です。
トラックバック
トラックバックURL:
http://www.happy-ritaiya.net/cgi/mt/mt-tb.cgi/133