このページでは自宅サーバー構築に必要な知識であるグローバルIPアドレス/プライベートIPアドレスNATIPマスカレードについて解説します。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
通信とネットワークの基礎知識

通信とネットワーク

TCP/IPとは

TCPとUDP

上位プロトコルとポート番号

IPアドレスとは〜その1

IPアドレスとは〜その2

IPアドレスとは〜その3

回線の種類について

ISPの選択

ネットワークの構築

ルーターの設定〜その1

ルーターの設定〜その2

ドメイン名について

名前解決とネームサーバー

ダイナミックDNS


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

インターネット上、つまり WAN 上で使用する IPアドレス は、インターネット上の通信機器の識別情報として、 ユニーク なものでなければなりません。

ただし、自宅や会社の中でだけで構成される サブネット 、つまり LAN の場合は、WAN空間にそのサブネット内のIPアドレス情報が漏れなければ自由なIPアドレスの設定が可能です。

最近のほとんどのLANは ルーター を介してWANと接続している訳ですが、ルーターの機能を利用すればWAN空間からLANの状態を覗くことができないようにしつつ、LAN内からWAN空間へアクセスすることが可能になっています。

つまり、LAN内からWAN空間へは自由にアクセス可能でありながら、LAN内のIPアドレスは自由に設定してよい、という、なんとなく都合が良すぎるようなインターネットの利用も可能、というわけです。

例えば、A社のオフィスにいる田中さんの内線番号と、B社の中にいる鈴木さんの内線番号が同じ"012"でも、誰かが困るということはないでしょう。また、自宅の応接間に"東京都千代田区有楽町○○"と、実在する住所を付けて家族で呼び合っていても、郵便屋さんは全く困らないでしょう。

これと同じ理屈で、お互いに直接参照できないサブネット同士であれば、それぞれのサブネットを同じ ネットワーククラス 、同じIPアドレスで構成しても、実用上何ら問題はない、という訳です。

このように、LANの中でだけで自由に使用できるIPアドレスを プライベートIPアドレス (別名 ローカルIPアドレス )、一方、インターネット上、つまりWAN空間での使用が可能なIPアドレスを グローバルIPアドレス と呼びます。

プライベートIPアドレスは自由に使用できるいっても、TCP/IPのルールに従う必要はありますし、最低限のルールやマナーはあります。

例えば、一つのサブネット内の ホスト ルーター などで、IPアドレスが重複してはいけませんし、万が一設定ミスが起こっても、それによってWAN空間に悪影響を及ばないように、使用できるIPアドレスが指定されています。

もちろん、インターネットを全く利用しない、内部的なネットワークだけで事足りるのであれば、インターネットの標準である TCP/IP を使う必要はありません。

実際、TCP/IPではない、 WindowsOS のNetBEUI プロトコル MacintoshOS のAppleTalkプロトコルのように、単純なファイル共有が主な用途である古典的?なブロードキャストネットワークならば、何ら特別な知識を必要とせず、とてもに簡単にLAN構築が可能です。

しかしこのインターネット全盛の世の中で、WAN空間に接続できないネットワークにどれほどの意味があるのでしょうか。

実際現在では、NetBEUIもAppleTalkもそれぞれ「 NetBIOS over TCP/IP 」、「Appletalk over TCP/IP」という形でTCP/IPに組み込まれていて、Windowsのネットワークも、Macintoshのネットワークもそのままインターネットに接続することが前提の設計になっています。

このようにメーカー独自の規格として生まれたプロトコルも今は世界標準のTCP/IPの一部として機能するように設計変更されています。

という訳で、TCP/IPによるLANを構築するための勉強はどうしても必要になってくるというわけです。

このページの先頭へ↑

プライベートIPアドレスのルールとマナー

TCP/IP のルールとして、 プライベートIPアドレス には次のものを使用するようになっています。

10.0.0.0 10.255.255.255 10.0.0.0/8
172.16.0.0 172.31.255.255 172.16.0.0/12
192.168.0.0 192.168.255.255 192.168.0.0/16

利用可能なプライベートIPアドレスの範囲

"10.0.0.0/8" は約16,00万台の ホスト を扱う巨大な サブネット の構築に使用するためのものです。これを使うのは、極端に多くのホスト機を稼動させなければならない特殊な機関に限られるでしょう。

"172.16.0.0/12" は、 プレフィックス長 "/12" になっていますが、実際には "/16" ネットワーク部 で、13 ビット 目から16ビット目までは「複数の異なるサブネット」を作れるようにするための予約部分になります。

つまり、 "172.16.0.0/16"〜"172.31.0.0/16" の範囲で、合計16サブネットを使用できるという意味になります。これは一つのネットワーク内のホスト数が約65,000台ですから、比較的大きな企業や団体なので使われるプライベートIPアドレスです。

"192.168.0.0/16" は、プレフィックス値が "/16" になっていますがこれも同様に、実際には "/24" がネットワーク部で、17ビット目から24ビット目までは「複数の異なるサブネット」を作れるようにするための予約部分になります。

つまり、 "192.168.0.0/16"〜"192.168.255.0/16" の範囲で、合計256サブネットを使用できるという意味になります。これは一つのネットワーク内のホスト数が約254台で、最も一般的に利用されるプライベートIPアドレスです。

このルールは、 ICANN によって定めれており、これらのプライベートIPアドレスは外部のネットワークから参照できない LAN 空間での自由な使用が認められています。もちろん、これらは グローバルIPアドレス として、 WAN 上のどこかの ノード に割り当てられることはありません。

しかし、本当のところをいうと、実はこれらの決められたプライベートIPアドレスを利用しなくとも、きちんとネットワークは稼動します。例えば、 "0.0.0.0/24" でも、 "255.255.0.0/16" でも、不都合なくサブネットの構築が可能です。

それが可能な理由はいうまでもなく、「WAN空間から隔絶された、LAN空間で行われるもの」だからです。それは、仲間内でお互いに有名なタレントの名前を付けて呼び合っても、世の中の誰かが困るわけではない、ということと同じ理由だと考えればよいでしょう。

だとしたら、どうしてわざわざ「使用してよいプライベートIPアドレス」というものが決められているのでしょう。

実はICANNがこれらのプライベートIPアドレスを厳密に指定している理由は、

「万が一プライベートIPアドレスがWAN空間に漏れ出したときに、既存のグローバルIPアドレス情報との重複が起こらないように。」

と考慮されているからです。

現在のネットワーク構築における通信制御は大抵ルーターで行います。家庭用、小規模オフィス用のルーターは、プライベートIPアドレスのネットワーク部の上位2 オクテット が"192.168"に固定されているのが普通で、設定ミスが起こってもWANに悪影響を与えないようになっているので安心です。ただ、どんな設定でも可能な業務用のルーターや、パソコン上でアプリケーションソフトを利用してルーター機能を実現するような場合は、そういう「ハードウェアの制約による誤操作防止」が利かないので、ネットワークに詳しくない人は手を出さないほうがいいかもしれません。

もし、プライベートIPアドレスで正しく構築されたサブネットの情報が、例えば ルーター の動作異常や設定ミスなどで、WAN空間から参照できるようになってしまったとしたらどうなるでしょう。

実は、この場合はまず大きな問題になる可能性はないといっていいでしょう。

なぜなら、世の中のほぼ全てのルーターには、 「WAN側からのプライベートIPアドレスによる要求は全て拒絶する。」 という設定がなされているので、万が一プライベートIPアドレスでWAN側にサービス要求が流れたとしても、WAN空間に設置されたいずれかのルーターに要求が到達した瞬間、その要求は削除されてしまうからです。

仮に、その仕組みが何らかの理由でうまく機能しなくても、WAN空間に流れてしまうのはあくまで「プライベートIPアドレス」ですから、WAN上のどこかのノードとIPアドレスが重複することは有り得ません。

従って、きちんとプライベートIPアドレスのルールに従って構築されているLANであれば、万が一設定ミスがあっても、機器の故障が起こっても、WAN空間への悪影響はほとんどないことになります。

ところがWAN空間に実在する(かもしれない)グローバルIPアドレスを勝手に使って構築されたサブネットで、同じようなトラブルが起こったとすると、せっかくネットワーク上に設けられている、

フールプルーフ :安全工学の用語で、「人間は間違いを犯すもの」という前提で、間違いがあっても自動的に対処が行われて安全を維持する仕組みをいいます。
フェイルセーフ :安全工学の用語で、「機械は故障するもの」という前提で、一つの機械が故障しても、他の機械によって自動的に対処が行われて安全を維持する仕組みをいいます。

「フールプルーフ/フェイルセーフ」

の仕組みが働かず、インターネット上に悪影響を及ぼす可能性がある、ということになります。

これが、プライベートIPアドレスに「ルール」が存在しなければならない大きな理由です。

また、市販の通信機器や取り扱い説明書、一般の解説書などは、普通 "192.168.yyy.yyy/24" を原則として設定や説明がなされていますから、わざわざルールに逆らって設定作業を難しくしてしまっても意味がありません。

ここは素直にルールに従ってサブネットを構築することにしましょう。

さて、どうしてTCP/IPにはプライベートIPアドレスというものが存在するのでしょうか。

どうせみんながインターネットを利用するのであれば、世の中の通信機器すべてに対して、もともとが ユニーク であるグローバルIPアドレスを割り当ててしまえば、プライベートIPアドレスに関するルールを作る必要も、それを利用するための特別な知識も必要ないはずです。

もうお分かりかもしれませんが、コラムの 「IPアドレスの枯渇問題 IPアドレスの枯渇問題の説明 の説明のとおり、IPアドレスの数には限りがあり、10の32乗、つまり約43億種類しか存在し得ません。43億という数字は、現在の通信社会の規模から考えると明らかに少ないといわざるを得ません。これでは、世の中のすべての通信機器にグローバルIPアドレスを割り当てることなど不可能です。

ところが、例えば会社や家庭のルーターに一つのグローバルIPアドレスを割り当てて、そのルーター以下のサブネットのすべてのホストにプライベートIPアドレスを割り当てれば、グローバルIPアドレス一つで多くのホストからインターネットが利用できるようになります。

この方法により、世の中のグローバルIPアドレスの使用量をできるだけ減らし、枯渇を避けることが可能になっている訳です。

このページの先頭へ↑

NATとIPマスカレード

プライベートIPアドレス で構成された LAN から WAN すなわちインターネット空間に接続するには、 NAT 、別名 「アドレス変換」 と呼ばれる方法を使います。

これは例えばLANに設置された ホスト機 から ルーター を介してインターネット空間にアクセスを行うとき、ホスト機に設定された "192.168.100.1" というプライベートIPアドレスを、ルーターで "211.183.111.34" といった グローバルIPアドレス に変換する、という方法です。

もちろん、インターネット空間からLAN側のホスト機へのアクセスは、これをは逆に "211.183.111.34" から "192.168.100.1" への変換を行うことになります。

しかしこれだけでは、プライベートIPアドレスとグローバルIPアドレスは一対一でしか対応できないので、あまり利用価値はありません。

マスカレード :"masquerade"。和訳で「仮面舞踏会」。ルーターでWAN側からLAN側にIPマスカレードを設定すると(普通のルーターはそれが標準)、LAN側にどれだけの台数のパソコンがあっても、WAN側からはWAN側のゲートウェイのアドレスしか見えません。逆にLAN側からは自由にWAN空間を覗くことができますが、LAN側からの要求はWAN側のゲートウェイのアドレスという「仮面をかぶって」行われます。よって、WAN側からは一切LAN側の状況を知ることはできません。
が、この状況を「仮面舞踏会」と表現するセンスは...、日本人にはないでしょうね。多分。

そこで登場するのが、 IPマスカレード と呼ばれる方法です。

IPマスカレードは、NATによるIPアドレスの変換、つまり インターネット層 だけではなく、その上位の トランスポート層 TCP UDP ポート番号 まで変換対象に含める技術です。

実際のIPマスカレードの動作原理は結構複雑なので説明は割愛しますが、要は「大量に余っているポート番号 ポート番号の詳細な説明 をLAN側の識別情報の補助として利用する」技術とだけ認識してください。

この、NATとIPマスカレードを組み合わせることで、ルーターのWAN側の一つのグローバルIPアドレスと、LAN側の複数のプライベートIPアドレス(つまり複数台のパソコン)との変換が可能となります。下の図は、このNAT+IPマスカレードを利用した、一般的なネットワークの構成例です。

NAT+IPマスカレードを用いた一般的なLAN構成例
NAT+IPマスカレードを用いた一般的なLAN構成例

この図の中で、LAN側ネットワークに設置された2台のパソコン( クライアント機 )と、1台の サーバー機 の、合計3台のホスト機には、それぞれ異なるプライベートIPアドレスが設定されています。

これらのホスト機のうちの例えば、 "192.168.100.101" が割り当てられたパソコンがWAN側にアクセスを行う場合、

1.ルーターが、ルーターのLAN側の ノード に設定されている"192.168.100.1"を代表番号として、"192.168.100.101"からの要求を受け付ける。

2.ルーター内で、"192.168.100.1"からの要求が、ルーターのWAN側のノードに設定されている"211.138.111.34"からの要求という形に変換される。

という具合に処理が行われ、結果的に、

「"192.168.100.101"からの要求が、あたかも"211.138.111.34"から出されたようにしてWAN空間への問い合わせが行われる。」

という手順が成立し、プライベートIPアドレスの情報をWAN空間に流すことなく、サービス要求を行うことができる訳です。

そして、その要求に対するサービスは、

1.WAN空間からのサービスが、ルーターのWAN側のノードに設定されている"211.138.111.34"へ着信する。

2.ルーター内で、"211.138.111.34"へのサービスが、あたかも"192.168.100.101"へのサービスであるかのように変換される。

3.ルーターが、「このサービスを要求したホスト機は誰ですか?」と、LAN内を ブロードキャスト する。

4."192.168.100.101"を設定されたホスト機が、「それは私です」と返答し、ルーターからサービスが転送される。

という手順でLAN内のホスト機にサービスが帰ってくるわけです。

これが、NAT+IPマスカレードの動作手順です。

例えばこの構成の場合、LAN側のネットワークとWAN側のネットワークは、それぞれルーターに設定された特定のIPアドレス、つまり、 "192.168.100.1" と、 "211.138.111.34" を代表番号としてアドレス変換を行います。この代表となるIPアドレスを、 ゲートウェイアドレス と呼びます。

ゲートウェイアドレスは、LAN側、WAN側とも普通はルーターに設定されるIPアドレスが兼ねることになります。従ってゲートウェイアドレスは、 ルーターアドレス と呼ばれることもあります。

また、例えば WindowsOS のようなブロードキャスト型が基本のネットワークの場合、LAN内に設置されたあるホスト機が、自機以外の外部に何らかのサービスを要求するときには、

1.自分が設置されているサブネット内をブロードキャストしてその要求に答えられる サーバー を探す。

2.サブネット内に目的とするサーバーが見つからないとき、ゲートウェイアドレスからサブネットの外にサーバーを探しに行く。

という順序で探索を行います。

つまり、このような環境におけるゲートウェイアドレスは、

「目的とするサーバーが見つからないときに、とりあえずサービス要求を行ってみるための出口としてのIPアドレス。」

という意味を持っています。従って「特定の出口がわからない場合に使われる既定の出口」という意味で、ゲートウェイアドレスは デフォルトゲートウェイ と呼ばれることもあります。

つまり、ゲートウェイアドレスも、ルーターアドレスも、デフォルトゲートウェイも、 呼び名が違うだけで意味はどれもほぼ同じ 、というように考えてかまいません。

さて、ルーターに割り当てるゲートウェイアドレスは、WAN側、LAN側とも、そのサブネットでノードとして設定可能な 先頭のIPアドレス のを使うのが普通です。

つまり、 "192.168.100.0/24" のサブネットの場合は "192.168.100.1" "211.138.111.34/32" の場合は "211.138.111.34" がゲートウェイアドレスということになります IPアドレスが一つだけのサブネットとは

管理人おススメの
ネットワーク解説書です

ゲートウェイアドレスは、要するに「サブネットの出入り口として任意のノードに設定する」ものですから、必ずしも先頭のIPアドレスを割り当てる必要はありません。ただ、ネットワーク構築時の混乱を避けるためにも、素直に先頭のIPアドレスを使用したほうがよいでしょう。

実は、NAT+IPマスカレードの機能は、現在市販されているルーターのほとんどに全てに標準的な機能として実装されていますし、また、特別な設定変更を行わない限りは、NAT+IPマスカレードが標準の動作として工場から出荷されているはずです。

従って、一般的な用途では、ユーザーがそれを実際に意識しなければならないことはありません。

ただ、サブネット内で 公開サーバー を運用する場合には、この仕組みを覚えておくことはとても重要となります。

このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。
Powered by Apache
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。
www.centos.org - The Community ENTerprise Operating System