IPアドレス
IPアドレス(アイピーアドレス、IP address)は、Internet Protocol(IP)で通信相手を識別するための番号である。インターネットアドレスとも呼ばれる。
IPアドレスは、IPネットワーク上の情報機器を識別するために指定するネットワーク層における識別用の番号である。データリンク層のMACアドレスを物理アドレスということに対応して、論理アドレスとも呼ばれる。IPのバージョン(IPv4とIPv6)に応じて、IPv4のIPアドレス(IPv4アドレス)とIPv6のIPアドレス(IPv6アドレス)がある。当初、791でIPを定義した際に、IPが現在のIPv4に当たるもののみであったことから、狭義では、単にIPアドレスと呼称した場合にIPv4のIPアドレスを意味する場合がある。
IPアドレスは、IPv4では32ビット、IPv6では128ビットの数値である。この数値のうち、最上位ビット(MSB)に近い側をネットワーク部、最下位ビット(LSB)に近い側をホスト部として区別する。ネットワーク部がネットワークを指定し、ホスト部がそのネットワーク内の機器を指定する。ネットワーク部とホスト部の区別にはサブネットマスクを用いることができる(ある)。
IPv4のIPアドレスの表記法には以下の規則がある。IPv6については「IPv6」および「IPv6アドレス」の記事で取り扱う。
通常は、ドット付き十進表記あるいはドットアドレスと呼ばれる 0 - 255 の数字4組(8ビット × 4 = 32ビット)をドットで繋いだ記法で表記される。
(例)192.168.0.1
gethostbyname() や inet_aton() など、IPアドレスを解釈する実装の一部では以下のような表記も許している。
数字が3組のときは、3番目は16ビットと解釈される。
(例)192.168.1 (= 192.168.0.1)
数字が2組のときは、2組目は24ビットと解釈される。
(例)192.11010049 (= 192.168.0.1、168 × 2562 + 0 × 256 + 1 = 11010049)
ドットがないときは、単一の32ビット数と解釈される。ロングIPアドレスなどとも呼ばれる。
(例)3232235521 (= 192.168.0.1、192 × 2563 + 168 × 2562 + 0 × 256 + 1 = 3232235521)
各数字は0xを前置すると16進数、0を前置すると8進数と解釈される。
(例)0xC0A80001 (= 192.168.0.1)
(例)0xC0.0250.1 (= 192.168.0.1、(C0→192、250→168))
これらの表記は、URL StandardでURLの一部分として定義されている。ただし、オペレーティングシステム(OS)やアプリケーション(例:ウェブブラウザソフト)、ネットワーク機器などによっては利用できないことがある。また悪意のある者がフィッシングサイトなどのURLを偽装するために用いる場合もあるので、注意が必要である。
IPアドレスは、次の5つのアドレスクラスに分かれている。
クラスAからクラスCまでは、ネットワーク部とホスト部の境界が8ビット単位で区分けされている。クラスAはネットワーク部が短く(8ビット)、ホスト部が長い(24ビット)。すなわち、多くの機器を保有する大組織や多くの顧客を有する大規模なインターネットサービスプロバイダ(ISP)に割り当てるのに適している。クラスCはその逆である。これは、日本の電話番号において東京などの人口が多い地域には03のような短い市外局番が割り当てられ、人口の少ない地域には長い市外局番が割り当てられているのと同じである。クラスAが約1,677万台、クラスBが65,534台、クラスCが254台のホストを接続できる。
しかし、アドレスクラスを用いたIPアドレス割り当てには問題が生じた。ほとんどのネットワーク(たとえばインターネットサービスプロバイダ)ではクラスAでは大きすぎ、クラスCでは小さすぎたため割り当ての要求がクラスBに集中したのである。クラスBの割り当てを受けたネットワークの中には65,534台のホスト(インターネットサービスプロバイダであれば接続ユーザー数)を同時にすべて接続することがまれであるネットワークも存在し、IPアドレスが無駄に消費されることになった。そこで現在ではアドレスクラスを使わず、ネットワーク部とホスト部の境界を8ビット単位に固定せずに細分化する可変長サブネットマスクやCIDR(Classless Inter-Domain Routing)の使用が一般化している。
IPアドレスの割り当て範囲を示すために、IPアドレスの末尾に「/」(スラッシュ)とともにネットワークアドレス長を付記して表すことも多い。IPv4の場合、MSB側からのビット数でネットワークアドレス長を表す。例えば192.168.0.0/24の表記の場合、ネットワーク部はMSBから24ビットで残り8ビットがホスト部となる。アドレスクラスでなく可変長サブネットマスクを使用した場合、ネットワークアドレス長の数字は必ずしも8の倍数にはならないことになる。
「CIDR」は、「サイダー」と読む。
Classless Inter-Domain Routingを用いることで、複数のIPアドレスを範囲指定して一つのアドレスブロックとして扱うことができる。例えば、192.168.1.0 - 192.168.1.255という範囲のIPアドレスは、192.168.1.0/24として表すことができる。CIDRを使うことでアドレスブロックの集約や分割が容易に行えることから、IPパケットのルーティングで主に活用されている。例えば、203.0.113.0/26、203.0.113.64/26、203.0.113.128/26、203.0.113.192/26の4つのアドレスブロックは、203.0.113.0/24として集約することができる。
例えば69.208.0.0を含むIPアドレス群の場合、CIDRと開始アドレスおよび終了アドレスの関係は以下のようになる。
69.208.0.0/16は、69.208.0.0から69.208.255.255までの65,536個のアドレスを含む。
69.208.0.0/24は、69.208.0.0から69.208.0.255までの256個のアドレスを含む。
通信可能な範囲のことをスコープという。IPアドレスは、それぞれにスコープが決められている。(→一覧)
後述するプライベートIPアドレス、リンクローカルアドレス、特殊用途のIPアドレスなどを除いたIPアドレスは「グローバルIPアドレス」と呼び、インターネットの接続用に利用され、重複が発生しないように管理される。そのため、ICANNを頂点とした階層的な委譲関係によって、世界的な管理が行われている。
通常、パソコンやルーターなどをインターネットに接続すると、ISPに割り振られているグローバルIPアドレスの中の1つがパソコンなどに割り当てられる。
プライベートIPアドレス(ローカルIPアドレス)は、プライベートネットワーク(外部から利用できない社内LANなど)のアドレスとして使うことができる。異なるプライベートネットワークを相互接続してルーティングすることも可能である。
プライベートIPアドレスとして、次のアドレス空間が予約されている。ネットワークの規模に応じて、使い分ける必要がある。
WindowsなどではIPアドレスが設定されておらず、DHCPサーバも見付からない場合には自動的に169.254で始まるクラスBのIPアドレスが振られる(APIPAという機能)。これはリンクローカルアドレスと呼ばれ単一のLAN内での通信に使うことができるが、ルーティングができないなどプライベートアドレスとは異なるものである。
プライベートIPアドレスとグローバルIPアドレスを相互変換することにより、インターネットに接続することができる。その方法として、NAPT(実装としてはIPマスカレードやipfwなど)やプロキシサーバがある。
インターネット接続サービスによってはインターネットに接続する機器にグローバルIPアドレスではなく、このプライベートIPアドレスを割り当てることもある。
プライベートIPアドレスとこれに関する仕組みによって、グローバルIPアドレスを多量に消費することなくインターネットに接続できる機器を増やすことができる。
2012年4月にRFC 6598として発行したインターネットサービスプロバイダ(ISP)が契約者に貸し出すIPアドレスで、範囲は100.64.0.0/10。
ISP Shared Addressは、個々のISPのネットワーク内でのみ使用可能なIPアドレスで、キャリアグレードNAT(CGN)によりISP Shared AddressとグローバルIPアドレスを相互変換することにより、インターネットに接続することができる。
IPアドレス枯渇問題により、契約者が増加しても、ISPが契約者に貸し出すグローバルIPアドレスを新規に獲得できなくなった。
しかし、ISPが契約者にプライベートIPアドレスを割り当てると、該当するIPアドレスを契約者のローカルネットワーク内で使用できなくなる。例えば、NTTが提供するフレッツの地域IP網においてプライベートIPアドレス(10.0.0.0/8)を使用しているため、フレッツの利用者がプライベートIPアドレス(10.0.0.0/8)をローカルネットワーク内で使用できない。
そこで、ISP Shared Addressの導入により、ISPはISP Shared Addressを使用し、ISPの契約者は、任意のプライベートIPアドレスが使用できるようになる。
なお、/10というアドレス範囲は、東京地域を網羅するISPがISP Shared Addressを導入するには、/10程度のアドレス範囲が必要であるという、日本からの提案がベースになっている。
一部のアドレスおよびブロックは、特殊な用途に使われる。それぞれのスコープに応じて、通常、機器に割り振るべきではない。詳細はIPv4#特別用途のアドレスを参照のこと。
グローバルIPアドレスは、まずインターネットレジストリ(APNICやJPNICなど)からISPにまとまった単位で付与される。これを割り振り(allocation)という。ISPは末端の利用者(個人、法人など)に対して、利用契約に基づいてIPアドレスを払い出す。これを割り当て(assignment)という。かつて一部の大学やIT企業が非営利でインターネットを支えていた時代には、レジストリからこれらの組織に直接割り当てられる例が多かったが、今日では商用ISPが発達したため、新規の割り当てではそのような例は少ない。インターネットレジストリにもIANA(Internet Assigned Numbers Authority) →RIR(Regional Internet Registry)→NIR(National Internet Registry)→LIR(Local Internet Registry)といった階層構造が存在する。
個人契約者の場合、グローバルIPアドレス1個を動的に割り当てる(接続ごとにIPアドレスが変わることがある)ものがほとんどである。ただしISPや契約プランによってはプライベートIPアドレスやISP Shared Addressを割り当てるもの(CATV接続に多い)、グローバルIPアドレス1個を固定で割り当てるもの、複数のグローバルIPアドレスを固定で割り当てるものもある。割り当ての通信プロトコルはダイヤルアップ接続ではPPP、ADSL・FTTHなどではPPPoE、CATVや公衆無線LAN(ホットスポット)ではDHCPによることが一般的である。
法人契約の場合はDNSやメールなどの各種サーバを運用するケースが多いこと、VPN(仮想専用網)などによる取引先などとのデータのやりとりにおいて、IPアドレスによる認証やアクセス制限があることなどの理由により、複数(多いのは4個から16個程度)のグローバルIPアドレスを固定で割り当てる契約が一般的である。
なお、家庭内や組織内でのプライベートIPアドレスの割り当てはDHCP(専用サーバの他、一般向けのいわゆるブロードバンドルーターに実装されている)によることが一般的である。ただし、サーバやルーターのLAN側など固定IPアドレスを必要とするものや、割り当てを厳密に管理したい場合には固定IPアドレスの割り当てが行われる。
2019年3月現在、特殊な用途のものを除く、すべてのIPv4のグローバルアドレスを誰かに割り当てた状態になりつつある。すなわちIPv4のグローバルアドレスに空きがなく、インターネット上に公開するIP機器の増設が不可能になるという問題が発生している。不動産に例えると、これまでは新規分譲で土地が提供されて建物を建築できていたが、分譲する土地がなくなったために、既存の建物が建っている土地を地上げして再開発しない限り新たな建物を建てられなくなった状態である。
2017年2月15日 LACNICのIPv4アドレス在庫が/11ブロック以下となり、AFRINICを除く4つのRIRでIPv4アドレス在庫枯渇の最終段階になった。
この枯渇問題の対策として、IPv6の普及が進められている。