グローバルアドレスとプライベートアドレス【global address/private address】

広告

広告

グローバルアドレスとプライベートアドレス

最終更新
2004-11-21T00:00:00+09:00
この記事のURI参照
http://www.7key.jp/nw/tcpip/ip/ipadd2.html#gp

今回は、「IPアドレス」の話の中で少しふれました、「グローバルアドレスプライベートアドレス」の話です。前述の内容ですが、もう一度概略の説明をします。

インターネットに直接繋がっている機器に付けられたものをグローバルアドレスLANなど個別に構築されたネットーワーク内の機器に付与される物をローカルアドレスといいます。では、なぜこのような考え方がうまれたのかということをまずお話します。

IPアドレスの割り当てと管理を行っているのは、InterNIC【International Network Interface Center】ですが、インターネット上で重複があってはならないため、IPアドレスが一意となるように割り当てを行っています。言い換えれば、インターネットに接続するためには、他に重複の無いグローバルアドレスが必要だということです。しかし、インターネットに接続されている端末全てにグローバルアドレスを割り当てていくと、グローバルアドレスが足らなくなる心配が出てきました。近い将来足らなくなるのは間違いなさそうですが(IPv6 にて前述)、グローバルアドレスの枯渇を先延ばしにするために、企業内などの閉じたネットワークでは、NIC に申請を行う必要のない独自に設定したIPアドレスを利用しています。この企業内の閉じたネットワークで利用されているIPアドレスがプライベートアドレスというわけです。

ただし、独自に設定できるといってもなんでも好きなように設定するのではなく、RFCプライベートアドレスの範囲を規定しています。通常は、この範囲内でプライベートアドレスを設定します。

グローバルアドレスとプライベートアドレスの変換

最終更新
2004-11-21T00:00:00+09:00
この記事のURI参照
http://www.7key.jp/nw/tcpip/ip/ipadd2.html#gpconv

しつこいようですが、インターネットに接続するためにはグローバルアドレスが必要です。ということは、閉じたネットワークではプライベートアドレスを利用しているため、そのままではインターネットに接続することができないということになります。プライベートアドレスしか持たない機器がインターネットで通信を行なうには、グローバルアドレスを割り当てられた機器にNAT【Network Address Translation】やNAPT(=IPマスカレード)等の手段により、中継してもらう必要があります。

NATとは、一つのグローバルなIPアドレスを複数のコンピュータで共有する技術のことです。ローカルアドレスグローバルアドレスを透過的に相互変換することによって実現されます。実際にどのような流れでこのような相互変換が行われるのかをみてみましょう。プライベートアドレスを発信源に持ち、グローバルアドレスを送信先に持つパケットを外部に流す際に、プライベートアドレスをグローバルアドレスへと変換(変換の際のグローバルアドレスはNATマシンが知っている)します。そのパケットに対する返信パケットは、変換を行ったグローバルアドレスに戻ってくるので、NATマシンが本来のプライベートアドレスに直して元の発信源に送り返します。これによって、グローバルネットワークにプライベートアドレスで接続できることができるようになるわけです。

しかしNATは、一つのグローバルアドレスを二つ以上のプライベートアドレスに対応させることはできません。ということは、接続している内部のプライベートアドレスの数に対応するだけのグローバルアドレスが必要になります。まぁ、接続されていない台数分のIPアドレスが節約できますので、これはこれで利点があるのですが、あまりうまい方法とは言えません。

NAT の考えを更に発展させて、よりグローバルアドレスの消費を押さえたのがNAPT【Network Address Port Translation】と呼ばれる技術です。NAPT は Linux での実装が最も有名なために、その実装名であるIPマスカレードとも呼ばれますが、IPマスカレードはあくまでも実装名であって、機能の名前ではないのです。また、NAPT という名前も、近年古典的な NAT との区別のために言われ始めたもので、機能的には NAPT でありながら NAT と呼ばれているものもあります。そういう意味では、広義のNATと 狭義のNATがあると言えるでしょう。話がそれましたが、NAPT がNATと違う点は、プライベート側の発信をIPだけではなく、TCP/UDPのport番号まで含めて識別に利用した点です。これによって、狭義のNATに比べてグローバルIPの消費が押さえられ、一つのグローバルアドレスで複数のマシンからの同時接続を実現することが可能となりました

更に特筆すべきは、port番号が動的に変換されるため、NAPT 上のグローバルとプライベートの対応表にない接続は、原理的に接続できません。これによって、プライベートネットワークを保護するというセキュリティ上の利点も生じます。しかし、コネクションをはるためのパケット自体にプライベートアドレス等の情報を載せて出ていった場合、NAPT はそれに全く関知しないのでコネクションがはれなくなってしまいます。一部のアプリケーション(例えば、FTP)については NAPT が特別にアプリケーション層のプロトコルまで解釈することにより対応する場合もありますが、個別対応しか手がなく大抵は非対応です。

広告

Copyright (C) 2004 七鍵 key@do.ai 初版:2004年01月09日 最終更新:2004年11月21日