• 検索結果がありません。

2.7. NAT

2.7.1. NAPT

ードもしくはトンネルモード)、使用する認証アルゴリズムや暗号アルゴリズム、認証や暗号 に用いる鍵もしくは鍵の入手方法等を指定する必要がある。これらの情報を SA(Security

Association)と呼び、送信元と送信先のペアごとに管理される。すなわち、SAは単方向であり、

双方向の通信を行うためには、通信相手への送信用のSAと通信相手からの受信用のSAの二 つを設定する必要がある。これを管理するデータベースをSADと呼ぶ。SA にはSPIという SAを識別する値を定め、端末間ではこのSPIを用いパケットの生成に用いたSAを共有する。

SA は事前に管理者が手動で設定をしておくことが可能だが、自動鍵管理プロトコル(IKE Internet key Exchange)[16][17]で自動生成をすることも可能である。IKEはUDPの500番 ポートを用いるプロトコルであり、IPsec の通信に先立って、IPsec の通信を行う装置間で通 信を行い、SAの生成を行う。

NAPT ルータ

WEBサーバA 192.168.1.1

WEBサーバB インターネット

インターネット 端末A

端末B 端末C

2.2.2.2

3.3.3.3 1.1.1.1

192.168.1.2 192.168.1.3

LAN

図 2-20 NAPTルータを含むネットワーク

端末AがWEBサーバにアクセスしようと、図 2-21に示すパケットを送信する。

ソースポート

1111 ペイロード

ソースアドレス 192.168.1.1

宛先ポート 80 宛先アドレス

2.2.2.2

図 2-21 TCPパケット概略図

ここでソースポートはクライアントAが1024番以上の値から任意につけた値である。

このパケットを受け取ったNAPTルータはインターネットに転送する前に、ソースIPアド レスをNAPTルータのもつグローバルIPアドレスに変更し、ソースポートに任意の値を用い たアドレス変換を行い、図 2-22のパケットを生成する。

ソースポート

3000 ペイロード

ソースアドレス 1.1.1.1

宛先ポート 80 宛先アドレス

2.2.2.2

図 2-22 NAPT変換されたパケット

このパケットを受け取った WEB サーバ A は WEB へのアクセスの応答を返すために、図 2-23のパケットのソースIPアドレス、ソースポートを宛先としたパケットを生成して、イン ターネットに送信する。

ソースポート

80 ペイロード

ソースアドレス 2.2.2.2

宛先ポート 3000 宛先アドレス

1.1.1.1

図 2-23 NAPT装置へ向けた応答パケット

図 2-23のパケットを受け取った NAPTルータは宛先アドレスを端末A のIPアドレスに、

宛先ポートを端末 A がパケットを生成したときのソースポートにアドレスを変換して、図 2-24のパケットを送信する。

ソースポート

80 ペイロード

ソースアドレス 2.2.2.2

宛先ポート 1111 宛先アドレス

192.168.1.1

図 2-24 NAPT装置がアドレス変換したパケット

このパケットは、最初に端末Aが送信したパケットの返信パケットの形式を満たしているため、

端末Aは経路上にNAPT装置があることを意識することなく通信を行うことができる。

以上のようにアドレスを変換して通信を行うことができることを述べたが、次に複数の端末 で一つのIPアドレスを共有してインターネット上のサーバにアクセスできることを示す。

表 2-2に示すように前述のフローについてNAPTルータはLAN内の端末と、変換したポー ト番号と宛先を関連付けて管理している。LAN内の端末から送信されたパケットのIPアドレ スとポート番号をアドレス変換する際に、書き換えたポート番号を保持する。これにより、イ ンターネット側から送信されたパケットが NAPT ルータに到達した際に、LAN 内のどの IP アドレス宛ての、何番ポートに書き換えるか決めることができる。

表 2-2 NAPT装置内のルールの概念

LAN側の端末のIPアドレス、ポート番号 変換後のポート番号 ルール番号 IPアドレス ポート番号 ポート番号

No.1 192.168.1.1 TCP 1111 TCP 3000

端末Aと同様に端末BがWEBサーバAにアクセスするケースを考える。

端末BはWEBサーバAに宛てたパケットを図 2-25のように生成する。

ソースポート

1111 ペイロード

ソースアドレス 192.168.1.2

宛先ポート 80 宛先アドレス

2.2.2.2

図 2-25 端末Bが生成したWEBアクセス要求のTCPパケット

ソースポートは1024以上の任意の値である。このパケットを受け取ったNAPTルータは図 2-26のようにアドレス変換する。変換後のソースポートを3001番としたルールを表 2-2に追 加し表 2-3を生成する。

ソースポート

3001 ペイロード

ソースアドレス 1.1.1.1

宛先ポート 80 宛先アドレス

2.2.2.2

図 2-26 NAPT装置によってアドレス変換された端末Bの生成したパケット 表 2-3 端末Bのためのルールを追加したNAPTルール

LAN側の端末のIPアドレス、ポート番号 変換後のポート番号 ルール番号 IPアドレス ポート番号 ポート番号

No.1 192.168.1.1 TCP 1111 TCP 3000

No.2 192.168.1.2 TCP 1111 TCP 3001

図 2-26 のパケットを受け取った WEB サーバ A は図 2-27 に示すように宛先ポート番号が 3001のパケットをNAPTルータのアドレスに送信する。

ソースポート

80 ペイロード

ソースアドレス 2.2.2.2

宛先ポート 3001 宛先アドレス

1.1.1.1

図 2-27 NAPT装置に返したパケット

NAPTルータはパケットを受け取ると、宛先ポート番号をキーにして表 2-3を検索し、転送先 のIPアドレスとポート番号を取得する。宛先ポート3001はルール番号No.2に一致し、宛先 IPアドレスを192.168.1.2、宛先ポートを1111に変換して、図 2-28のパケットを端末Bに送 信する。

ソースポート

80 ペイロード

ソースアドレス 2.2.2.2

宛先ポート 1111 宛先アドレス

192.168.1.2

図 2-28 NAPT装置がアドレス変換して端末Bへ送信したパケット

さらに、端末Aや端末BがWEBサーバBとも通信しようとした際には、表 2-3で未使用の ポート番号を用いてアドレス変換をすることで、WEB サーバAとの通信を継続したまま、

WEBサーバBとの通信も実現することができる。

このようにNAPTを用いると一つのグローバルIPアドレスで複数の端末がインターネット と同時にアクセスできるようになる。

ここで見たように、NAPT はアドレス変換にポート番号を用いている。また ICMP を通過 させる際には、ICMP query IDを用いてアドレス変換を実現することができる。このように

NAPTでは、TCP/UDPもしくはICMPのプロトコルに対してアドレス変換を実現することが

できる。

また、表 2-3のルールはIPパケットがLANからインターネットに送信されるタイミング で生成されている。そのため NAPT ではプライベートアドレスを持つ端末からインターネッ トへアクセスする際には利用することができるが、インターネット側からLAN内の端末にア クセスを開始しようとした際には、表 2-3に内部充てのパケット処理のルールが生成されてい ないため、受信したパケットは NAPT ルータ自身への通信であるように処理され、通常、パ ケットは廃棄される。