プライベートネットワーク
プライベートネットワーク(英: private network)は外部に公開されたグローバルネットワークとの差別化としての定義。当初、プライベートネットワークは、1992年11月のとして公認されたIPv4規格によるIPアドレス枯渇問題への対策として、1994年3月に としてプライベートアドレスを導入して、それまでオープンなグローバルネットワークしかなかったところに閉鎖されたローカルなネットワークを分離させるプライベートネットワークの運用を定義した。その後に、外部(インターネット)に対し非公開の、たとえばイントラネットなどのようなコンピュータネットワークのことを指す語とされた(たとえば、Virtual Private Networkといったような用語では、そういう意味である)。どのようなレイヤでどのように分離されているか、非公開の度合いはどの程度か、といった点はケースバイケースである。家庭やオフィス内のLANによく見られ、グローバルにルーティング可能なアドレスが非現実的または不要と考えられる場所で使われている。
アドレスがプライベートであるとは(これはIP(v4)アドレスに関する議論であり、「プライベートネットワーク」の概要の話にはなっていないことに注意)、「グローバルに割り当てられていない」ことを意味し、特定の組織に割り当てられたアドレスではないことを意味する。プライベートアドレス空間は地域インターネットレジストリ (RIR) に申請することなく利用できる。したがって、プライベートアドレスはインターネット上でルーティングできず、そのアドレスで直接インターネットにアクセスすることはできない。プライベートネットワークをインターネットに接続するには、ネットワークアドレス変換 (NAT) ゲートウェイかプロキシサーバが必須となる。
プライベートネットワークが最もよく使われているのは組織内・家庭内ネットワークである。インターネットサービスプロバイダ (ISP) は顧客ごとに1つのIPアドレスしか割り当てないことがある。組織内・家庭内に複数のネットワーク機器(コンピュータやプリンタ)があることも多い。この場合、インターネットとの接続にはNATゲートウェイを使うのが一般的である。企業ネットワークではセキュリティのためにグローバルにルーティング可能なアドレスが不要な部分はインターネットに直接接続しないようにしている。企業内利用者が制限されたインターネットへのアクセスを行う場合、プロキシサーバやSOCKSゲートウェイをよく使う。いずれの場合も、プライベートアドレスを使うことでインターネット側からプライベートネットワーク内の個々の機器に直接接続することができなくなり、セキュリティを強化できる。
複数の組織では、プライベートIPアドレスとして同じアドレス群を使っている。プライベートネットワーク同士をマージしようとした場合に問題が発生する(例えば企業の合併など)。1つの方法として一方のネットワークのアドレスを付け替えることが考えられる。時間がかかるし間違いが発生しやすい。もう1つの方法は、2つのネットワーク間にNATルーターを置くもので、それによってアドレスの変換を行う。
プライベートアドレス空間がインターネット上に漏れ出すことは珍しくない。設定がまずいプライベートネットワークではプライベートアドレスについてDNSの逆引きをよく行おうとして、インターネットのルートサーバに余分な負荷をかける。AS112プロジェクトではこの負荷を低減するため、特別な「ブラックホール」型のエニーキャストネームサーバをプライベートアドレスを扱う目的で用意し、クエリに対して常に "not found" と返す。組織のネットワークを外部と接続するルーターでは、ネットワークに侵入してくるIPトラフィックを阻止するよう設定していることが多い。侵入は偶然発生することもあるし、偽装したソースアドレスを使って悪意を持って行う場合もある。ISPはその顧客から侵入してくるトラフィックも阻止することがある。これにより、顧客のネットワークの設定ミスや悪意ある行為がインターネットに影響する程度を低減させる。
プライベートネットワークはルーティングできないと誤解されやすい。インターネットではルーティングできないが、そのプライベートネットワーク内ではルーティング可能である。
RFC 1597 とその後継の RFC 1918 にあるように、Internet Engineering Task Force (IETF) はIANAに命じて、以下のIPv4アドレス範囲をプライベートネットワーク用に予約させた。
なお、IPアドレスのクラスはインターネットではもはや使われていない。代わりに導入されたのがCIDR (RFC 4632, 最初の定義は RFC 1517/RFC 1518/RFC 1519 )で、例えば 10.0.0.0/8 は単一のクラスAネットワークだが、組織内でこれをもっと小さな /16 や /24 のアドレスに分割することも珍しくない。
第2のプライベートネットワークとして、RFC 3330 と RFC 3927 に記述されているリンクローカルアドレスがある。これらRFCの背景にある考え方は、DHCPサーバがない状況でネットワークの設定の手間をかけずに利用できるIPアドレスを提供するというものである。169.254/16 というネットワークがこの用途に予約されている。このアドレス範囲のうち 169.254.0.0/24 と 169.254.255.0/24 は将来の利用のために使わないようにしてある。
イーサネット上のホストがDHCPでネットワークアドレスを取得できない場合、169.254.0.0 から 169.254.255.255 までのアドレスの1つを擬似乱数的に割り当てる。規格では、アドレスの衝突が起きないよううまく処理しなければならないという記述がある(実装者は「衝突する確率は 1/65536 のはずだ」などと甘く見て手を抜いてはいけない。誕生日のパラドックスにより意外なほど簡単に衝突は起き得る)。
リンクローカルアドレスは RFC 1918 で定義されているプライベートネットワークのアドレスよりも制限がきつい。リンクローカルアドレスのパケットはルーターを全く通ることができない(RFC 3927 section 7)。
プライベートネットワークとそのための特別なアドレスというコンセプトは、IPv6においても似たようなものが検討された。リンクローカルアドレスとユニークローカルアドレスである。リンクローカルアドレスは、<tt>fe80::/10</tt> というプレフィックスで、同一セグメント内でのみ有効な自動生成のアドレスである。ユニークローカルアドレスは、<tt>fc00::/7</tt> というプレフィックスで、IPv4のプライベートアドレスと同様にCIDRでサブネットを区切ることもできるアドレスである。
リンクローカルアドレスには、「ゾーンID」を付加して使用せねばならず、2016年現在も対応していないユーティリティなどもあり(また、HTTPにおいて「Host:」として送信するような場合など、意味上も困難がある)、とても「IPv4のプラベートアドレスと同様」に使えるものとは、普通の感覚では言い難い。
ユニークローカルアドレスは、ユニキャスト的性質を持つよう定義されている。40ビットのグローバルIDと16ビットのサブネットIDをルーティングプレフィックスに含み、グローバルIDはネットワークごとに乱数により独自に決定することができ、2つのプライベートネットワークを相互接続しても衝突が発生しにくいようにしている。グローバルIDは国際機関で管理されているようなインターネット上で一意の値ではないため、インターネット上で使用されるグローバルアドレスとしては使用できない。
かつての規格では fec0::/10 という範囲の「サイトローカル」アドレスも提案していたが、スケーラビリティへの懸念と「サイト」の定義の曖昧さが問題となり、2004年9月、RFC 3879 で使わない方が望ましいとされた。
公式のプライベートネットワーク用のアドレス範囲以外にも将来の使用のための予約されたアドレス範囲がある。しかし、そのような予約されたアドレスは、過去には予約されているだけで未使用の領域であったが、IPアドレス枯渇問題により一部の例外を除きグローバルアドレスとして割り当てられ、インターネットで使用されるようになっており、クローズドなネットワーク以外では事実上使用することはできなくなっている。
一部の社内のネットワークが巨大化した企業ではアドレスの衝突を避けるため、プライベートネットワーク同士の接続にそのような予約されたアドレス範囲を使っているところもあったが、インターネットとの接続に支障が出るようになったため、それらの企業ではIPアドレスの運用を変更することを余儀なくされた。
RFC 1380 – "IESG Deliberations on Routing and Addressing"
RFC 1597 – "Address Allocation for Private Internets" : RFC 1918により廃止
RFC 1918 – "Address Allocation for Private Internets"
RFC 2036 – ""Observations on the use of Components of the Class A Address Space within the Internet."
RFC 2050 – ""Internet Registry IP Allocation Guidelines""
RFC 2101 – ""IPv4 Address Behaviour Today.""
RFC 2663 – ""IP Network Address Translator (NAT) Terminology and Considerations."
RFC 3022 – ""Traditional IP Network Address Translator (Traditional NAT)""
RFC 3330 – ""Special-Use IPv4 Addresses. IANA. September 2002::
RFC 3879 – "Deprecating Site Local Addresses"
RFC 3927 – "Dynamic Configuration of IPv4 Link-Local Addresses"
RFC 4193 – "Unique Local IPv6 Unicast Addresses"