IPアドレス
IPアドレス(Internet Protocol Address)は、インターネット上の各デバイスを一意に識別するためのアドレスです。
現在最も広く使われているIPv4(Internet Protocol version 4)は、32ビット(4バイト)の数値で構成され、4つの1バイトの数値(0から255まで)をドット(.)で区切った形式で表現されます。
例えば、192.168.1.1のような表記になります。
このIPアドレスがあることで、世界中のどこからでも特定のデバイスに情報を送ったり、情報を受け取ったりすることが可能になります。
たとえばあなたが郵便物を送る際には、相手の住所を正確に書く必要がありますよね。
住所がないと、郵便物は正しく送られません。
これと同じように、インターネット上でデータを送受信する際には、それぞれのコンピュータやスマートフォンなどのデバイスが、一意の「住所」を持つ必要があります。
この「住所」がIPアドレスに相当します。
IPアドレスの構成
IPアドレスはインターネット上の各デバイスを識別するための一意な番号で、その構造は「ネットワークアドレス部」と「ホストアドレス部」の2つの部分で構成されます。
ネットワークアドレス部は、デバイスが接続されているネットワークを識別する部分で、これによりIPアドレスが属するネットワークが特定されます。
たとえば、マンションの建物を考えたとき、ネットワークアドレスはその建物全体を指し示す情報と考えることができます。
ホストアドレス部は、そのネットワーク内で個々のデバイスを一意に識別する部分で、つまりどのデバイスであるかを特定する情報です。
マンションの例で言えば、各部屋の番号のようなものと言えるでしょう。
そして、これらを分けるのがサブネットマスクです。サブネットマスクは、IPアドレスのうちどの部分がネットワークアドレス部で、どの部分がホストアドレス部かを示すためのマスク(覆い)の役割を果たします。
具体的には、サブネットマスクの各ビットは、対応するIPアドレスのビットがネットワークアドレスを表す場合は1、ホストアドレスを表す場合は0となります。
たとえば、サブネットマスクが「255.255.255.0」だとしたら、IPアドレスの最初の3つのオクテット(255.255.255)はネットワークアドレスを、最後のオクテット(.0)はホストアドレスを表すと解釈されます。
![](https://it-school.te2software.com/wp-content/uploads/2023/09/IPアドレス_サブネットマスク.png)
例えば、IPアドレスが「172.16.20.50」でサブネットマスクが「255.255.255.0」の場合であれば、「172.16.20」がネットワークアドレス、「.50」がホストアドレスとなります。
また、サブネットマスクが「255.255.0.0」の場合であれば、「172.16」がネットワークアドレス、「20.50」がホストアドレスとなります。
![](https://it-school.te2software.com/wp-content/uploads/2023/09/IPアドレス_サブネットマスク2-1024x619.png)
プライベートIPアドレスとグローバルIPアドレス
プライベートIPアドレスは、企業や家庭などの内部ネットワークでのみ有効なアドレスで、インターネット上で一意ではありません。つまり、重複がありえます。これは、ローカルネットワーク内での通信にのみ利用されます。
プライベートIPアドレスの範囲は特定の範囲に限定されており、IPv4では以下の範囲がそれに当たります。
クラスA:10.0.0.0~10.255.255.255
クラスB:172.16.0.0~172.31.255.255
クラスC:192.168.0.0~192.168.255.255
これらのアドレス範囲は、それぞれ大規模、中規模、小規模のネットワークで使用されることを意図して設計されています。例えば、クラスAのIPアドレス範囲は大規模な企業や組織に、クラスCのIPアドレス範囲は小規模なホームネットワークに適しています。
グローバルIPアドレスは、インターネット上で一意に識別されるアドレスです。このアドレスはインターネットサービスプロバイダ(ISP)から提供され、インターネット上でのデバイスの識別と通信を可能にします。
プライベートIPアドレスは、ルーターなどを介してグローバルIPアドレスにアクセスすることができますが、外部から直接アクセスすることはできません。これに対して、グローバルIPアドレスは、インターネット上から直接アクセスすることができます。
プライベートIPアドレスとグローバルIPアドレスは、インターネット上のデバイスが通信するための識別子です。これらは、おおよそ次のような違いがあります。
- プライベートIPアドレス:
- ローカルネットワーク内でのみ使用されるアドレスです。
- 同じプライベートIPアドレスは、異なるネットワークで再利用可能です。
- 通常、家庭やオフィスのルータによって自動的に割り当てられます。(後述するDHCPにて説明)
- インターネット上のデバイスと直接通信することはできません。(後述するNATという技術が必要)
- グローバルIPアドレス:
- インターネット全体で一意な(重複しない)アドレスです。
- インターネットサービスプロバイダー(ISP)が割り当てます。
- インターネット上の他のデバイスと直接通信が可能です。
例えるなら、プライベートIPアドレスは、あなたの家の中での部屋番号(他の家と同じ番号でも問題ありません)のようなもので、グローバルIPアドレスは、郵便番号や住所(全世界で一意である必要があります)のようなものです。
家庭や企業のネットワークでは、一つのグローバルIPアドレスをインターネットとの接続点(通常はルータやモデム)に割り当て、内部の各デバイスはプライベートIPアドレスを使用します。
※ルータはLAN内の通信のためのプライベートIPアドレスも持っています。
そして、ルータは後述するNAT(ネットワークアドレス変換)という技術を用いて、内部のプライベートIPアドレスと外部のグローバルIPアドレスとを相互に変換します。これにより、多数のデバイスが一つのグローバルIPアドレスを共有してインターネットに接続することが可能となります。
![](https://it-school.te2software.com/wp-content/uploads/2023/09/IP%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9_%E3%82%B0%E3%83%AD%E3%83%BC%E3%83%90%E3%83%ABIP%E3%83%97%E3%83%A9%E3%82%A4%E3%83%99%E3%83%BC%E3%83%88IP.png)
ICANN (Internet Corporation for Assigned Names and Numbers)は、インターネットのドメイン名とIPアドレスのシステムを管理する米国の非営利団体です。1998年に設立され、主にインターネットの名前空間の調整を行っています。
ICANNの主な役割は以下の通りです。
- ドメイン名システム(DNS)の管理:ICANNは、インターネットのドメイン名を管理し、それが世界中で一意であることを保証します。これには、トップレベルドメイン(例:.com、.org)の割り当てや、ドメイン名の登録プロセスの監督が含まれます。
- IPアドレスの割り当て:インターネット上の各デバイスには、通信のための一意のIPアドレスが必要です。ICANNは、これらのIPアドレスのグローバルな割り当てと管理を行います。
- プロトコル識別子の管理:インターネット上で使われるプロトコル番号やパラメータなども、ICANNが管理しています。
ICANNは、インターネットが安定して効率的に機能するための重要な役割を担っており、その活動は世界中のインターネットユーザーに影響を及ぼします。
NAT
NAT(Network Address Translation)は、職場や家庭のLANをインターネットへ接続するときによく利用される技術で、プライベートIPアドレスとグローバルIPアドレスを相互に変換します。
例えば、職場や家庭のルーターはNATを使用して、複数のプライベートIPアドレスを持つデバイス(コンピュータ、スマートフォンなど)から送信されるパケットの送信元アドレスをグローバルIPアドレスに変換し、その逆も行います。
これにより、複数のデバイスが単一のグローバルIPアドレスを共有してインターネットにアクセスすることが可能になります。
また、以下のような利点もあります。
- IPアドレスの節約:IPv4アドレスは有限であり、すべてのデバイスにグローバルIPアドレスを割り当てることは難しいです。NATは、多数のデバイスが同じグローバルIPアドレスを共有できるようにすることで、IPアドレスの枯渇問題を緩和します。
- セキュリティの向上:プライベートIPアドレスはインターネット上から直接アクセスできないため、NATを使用することでネットワーク内のデバイスを外部の脅威から守ることができます。
NATを理解するために、オフィスの電話システムを例にしましょう。
この例では、LANを企業が入居した一つのオフィスビルに例え、LAN内の個々のデバイスを各従業員の机に置かれた電話に例えます。
- 内部通信の場合:
オフィス内の従業員同士は互いに内線番号(例: 内線101、内線102)を使用して通話します。これは、LAN内のデバイスがプライベートIPアドレスを使用して互いに通信する様子に似ています。 - 外部通信:
一方、外部通信では、交換手(NATの役割)が介在します。企業の従業員が外部の人々と通話する際、交換手は一時的な外部電話番号(例: 555-0101、グローバルIPアドレスの例え)を割り当て、その番号を使用して通話を行います。通話が終了すると、その外部電話番号は再利用され、他の従業員が外部と通信する際に再び使用されます。
この例えにおけるNATの役割は、ローカルネットワーク内のデバイスが外部ネットワークと通信する際に、一時的なグローバルIPアドレスを割り当てることです。
これにより、限られた数のグローバルIPアドレス(外部電話番号)を効率的に使用し、多数の内部デバイスが外部と通信することを可能にします。このプロセスは、ネットワークリソースの効率的な利用とセキュリティの向上に役立ちます。
DHCP
DHCP(Dynamic Host Configuration Protocol)は、ネットワーク上のデバイスに自動的にIPアドレスを割り当てるためのプロトコルです。
これにより、ネットワーク管理者は手動でIPアドレスを設定する手間を省くことができます。
特に、ローカルエリアネットワーク(LAN)内での役割が重要です。LAN内のデバイスが増えると、IPアドレスの管理が複雑になることがあります。DHCPは、デバイスがネットワークに接続されると、DHCPサーバやルータが利用可能なIPアドレスをデバイスに自動的に割り当て、デバイスの接続を容易にします。
また、DHCPは割り当てられたIPアドレスを一定期間(リース期間)だけ有効にし、期限が切れると再びIPアドレスを割り当てるか、リース期間を延長します。これにより、不要なデバイスにIPアドレスが割り当てられるのを防ぎ、IPアドレスの効率的な利用を促進します。
DHCPは、ネットワーク内のコンピュータやデバイスに動的にIPアドレスを割り当てるためのプロトコルです。この役割を担当するのは、通常「DHCPサーバ」と呼ばれる専用のサーバーやネットワーク機器です。
以下のような機器がDHCPサーバの役割を果たすことがあります。
- 専用のDHCPサーバ: 大規模なネットワーク環境では、専用のサーバがDHCPサーバとして設定され、ネットワーク内のデバイスにIPアドレスを動的に割り当てます。
- ルータ: 家庭や小規模なオフィスのネットワークでは、ルータがDHCPサーバの役割を果たし、ネットワーク内のデバイスにIPアドレスを動的に割り当てます。
- ネットワークスイッチやファイアウォール: 一部の高機能なネットワークスイッチやファイアウォール機器には、DHCPサーバの機能が組み込まれており、IPアドレスの動的な割り当てを行います。
これらの機器は、DHCPサーバとして設定され、ネットワーク内のデバイスが接続されると、自動的にIPアドレスやサブネットマスク、ゲートウェイアドレスなどのネットワーク設定を割り当てます。
これにより、ネットワーク管理者は手動で各デバイスのネットワーク設定を行う必要がなく、効率的にネットワークを管理することができます。
IPアドレスの枯渇問題
現在、広く使われているIPアドレスは、32ビットのアドレス空間で約43億個(255の4乗)のIPアドレスを表現できるIPv4という規格です。
インターネットが普及し始めた頃は、この数でも十分だと考えられていました。しかし、スマートフォンやIoTデバイスの普及に伴い、IPアドレスを割り当てる必要がある機器が急増し、IPアドレスの枯渇が問題となりました。
この問題を解決するためにIPv6が開発され、現在IPv4からIPv6への移行が進められています。
IPv6
IPv6は128ビットのアドレス空間を持ち、約340澗(340兆×1兆×1兆:340 undecillion)ものIPアドレスを使用できます。これにより、IPアドレスの枯渇問題が大幅に緩和されることが期待されています。
例として、IPv4アドレスはドット(.)で区切られた4つの0~255までの数値で表現されます。
例:192.168.1.1
対して、IPv6アドレスはコロン(:)で区切られた8つの4桁の16進数で表現されます。
例:2001:0db8:85a3:0000:0000:8a2e:0370:7334
IPv6の導入によって、インターネットの拡張性が向上し、今後のデジタル社会の発展に対応できるようになります。
また、IPv6は、データの送受信の際に暗号化や認証などのセキュリティ機能を提供するIPsecが組み込まれています。これにより、IPv6を利用した通信は、より安全かつ信頼性が高いものになります。
ポート番号
ポート番号は、コンピュータネットワーク上で通信を行う際に、データが正しいアプリケーションやサービスに送られることを保証するために使用される識別子です。
インターネット上でデータを送受信する際、データのあて先のコンピュータはIPアドレスによって指定できますが、そのコンピュータの内部では様々なアプリケーションやサービスが動作しています。IPアドレスだけでは、データをどのアプリケーションに届けてよいかまでは分かりません。
そこで利用されるのがポート番号です。つまり、ポート番号はどのアプリケーションにデータを届けるべきかを指定するために使用されます。
TCP/IPプロトコルでは、ポート番号は0から65535までの範囲で定義されています。
このうち、0から1023までの番号は「ウェルノウンポート(well-known port)」と呼ばれ、特定のサービスに対して予約されています。これらのポート番号は、インターネット上で広く使用されるサービスやプロトコルに割り当てられており、認知度が高く標準化されています。
例えば、ウェルノウンポートの一部は以下の通りです。
ポート番号80 | HTTP(ウェブサーバーとブラウザ間の通信) |
ポート番号443 | HTTPS(暗号化されたウェブサーバーとブラウザ間の通信) |
ポート番号21 | FTP(ファイル転送プロトコル) |
ポート番号25 | SMTP(メール送信プロトコル) |
ウェルノウンポートを知っておくことで、どのようなサービスやプロトコルがどのポート番号を使用しているのか把握しやすくなり、ネットワーク管理やトラブルシューティングが容易になります。
インターネット上でデータをやり取りするとき、グローバルIPアドレス、プライベートIPアドレス、そしてポート番号は、宛先を特定するための重要な情報です。これをマンションと部屋番号とその住人に例えてみましょう。
- グローバルIPアドレス:これはあなたのマンション全体の住所に相当します。郵便配達員(インターネット)は、この住所を見て荷物(データ)をあなたのマンションまで運びます。
- プライベートIPアドレス:これはマンション内の個々の部屋番号に相当します。郵便配達員(ルーター)は、これを見て荷物を適切な部屋まで運びます。
- ポート番号:これは部屋に住む特定の人(アプリケーション)の名前に相当します。つまり、家族全員が同じ部屋に住んでいる場合、名前(ポート番号)がないと、荷物が誰宛か分からなくなってしまいます。同様に、コンピュータの一つのプライベートIPアドレスにはたくさんのアプリケーション(家族)があり、それぞれが異なるポート番号(名前)を持っています。これにより、データは正しいアプリケーションに正確に配送されます。
このように、グローバルIPアドレス、プライベートIPアドレス、そしてポート番号は、データが正確な宛先に到達するために一緒に働いています。
関連用語
ARP(Address Resolution Protocol)は、ネットワーク上でデータを送受信するために必要な、IPアドレスとMACアドレスを対応づけるためのプロトコルです。
IPアドレスはインターネット上のデバイスが一意に持つ識別番号のようなもので、これを使ってデータの送受信先を指定します。しかし、物理的なネットワーク上でデータを送受信するためには、MACアドレス(ネットワークインタフェースカードが一意に持つ物理的なアドレス)が必要です。
ARPの役割は、特定のIPアドレスがどのMACアドレスと関連付けられているかを見つけ出すことです。
たとえば、あるコンピュータが他のコンピュータにデータを送りたいとき、送信先のIPアドレスは分かっていても、それに対応するMACアドレスは分からないことがあります。そこでARPが使われ、IPアドレスからMACアドレスを見つけ出します。