こんにちは、ソーイ株式会社の髙﨑です。
最近、業務でIPアドレスによるアクセス制限機能に触れる機会がありました。調査を進める中で、ループバックアドレスやリンクローカルアドレスなど、普段あまり意識することのない特殊なIPアドレスが数多く存在することを知りました。
今回は、調査を進める中で知った、エンジニアが知っておきたい代表的なIPアドレスについてまとめました。
特に、普段はアプリケーション開発が中心でネットワークを深く扱う機会は少ないものの、IPアドレスを扱う機能の開発や調査、運用に携わる方の参考になれば幸いです。
目次
- IPアドレスにはさまざまな種類がある
-
よく利用されるIPアドレス
2.1 グローバルIPアドレス
2.2 プライベートIPアドレス -
知っておきたい特殊なIPアドレス
3.1 ループバックアドレス
3.2 リンクローカルアドレス
3.3 未指定アドレス
3.4 ブロードキャストアドレス
3.5 マルチキャストアドレス - まとめ
IPアドレスにはさまざまな種類がある
IPアドレスと聞くと、インターネット上で用いられるグローバルIPアドレスや、家庭・社内ネットワークで利用されるプライベートIPアドレスを思い浮かべる方が多いのではないでしょうか。
しかし、IPアドレスにはそれ以外にも、特定の用途のために予約されたさまざまな種類が存在します。
例えば、自分自身を表す「ループバックアドレス」、DHCPサーバーからIPアドレスを取得できなかった際に自動的に割り当てられる「リンクローカルアドレス」、ネットワーク内のすべての機器へデータを送信するための「ブロードキャストアドレス」などがあります。
これらのIPアドレスは、普段のWebアプリケーション開発では意識する機会が少ないかもしれません。しかし、IPアドレスを扱う機能の開発やアクセス制御、ログ解析、ネットワークトラブルの調査などでは目にすることがあり、それぞれの役割を理解しておくことで仕様の理解や原因調査がスムーズになります。
これまではグローバルIPアドレスとプライベートIPアドレスくらいしか意識していませんでした。しかし、調査を進める中で用途ごとにさまざまなIPアドレスが予約されていることを知りました。
本記事では、エンジニアが知っておきたい代表的なIPアドレスについて、それぞれの用途や特徴を紹介していきます。

なお、本記事では現在でも多くのシステムで使われているIPv4を対象に紹介します。IPv6にも同様の役割を持つアドレスがありますが、それらについては本記事では扱いません。
よく利用されるIPアドレス
特殊なIPアドレスを紹介する前に、まずは普段の開発でよく目にする「グローバルIPアドレス」と「プライベートIPアドレス」について簡単に整理しておきます。
どちらもIPアドレスですが、利用される場所や役割が異なります。
グローバルIPアドレス
グローバルIPアドレスは、インターネット上で機器を一意に識別するためのIPアドレスです。
インターネット上で重複しないように管理されており、WebサイトやAPIサーバーなど、外部からアクセス可能な機器にはグローバルIPアドレスが割り当てられます。
自宅からWebサイトへアクセスする場合は、自宅のルーターに割り当てられたグローバルIPアドレスを経由して通信が行われます。
プライベートIPアドレス
プライベートIPアドレスは、家庭や会社などのローカルネットワーク(LAN)内で使われるIPアドレスです。
インターネット上では利用できず、同じIPアドレスを別のネットワークで重複して使用できます。
プライベートIPアドレスとして利用できる範囲は、次の3つです。
| CIDR | IPアドレス範囲 |
|---|---|
| 10.0.0.0/8 | 10.0.0.0 ~ 10.255.255.255 |
| 172.16.0.0/12 | 172.16.0.0 ~ 172.31.255.255 |
| 192.168.0.0/16 | 192.168.0.0 ~ 192.168.255.255 |
家庭のWi-Fiに接続したPCやスマートフォンには、このプライベートIPアドレスが割り当てられます。そして、ルーターがプライベートIPアドレスとグローバルIPアドレスを相互に変換(NAT)することで、インターネットと通信できるようになります。
これら2種類のIPアドレスは、多くのエンジニアが日常的に目にするものです。一方で、実務ではこれら以外にも特定の用途を持つIPアドレスを扱う場面があります。次の章では、そのような特殊なIPアドレスについて見ていきます。
知っておきたい特殊なIPアドレス
ループバックアドレス
ループバックアドレスは、自分自身を表すために予約されたIPアドレスです。
最もよく知られているのは 127.0.0.1 で、ローカル環境でWebサーバーやAPIサーバーを起動した際に、一度は目にしたことがあるのではないでしょうか。
ローカルでWebサーバーを起動すると、次のようなURLでアクセスできます。
http://127.0.0.1:8000
このアドレスへ送信された通信はネットワークには出ず、自分自身のコンピュータへそのまま返されます。そのため、ローカル環境での動作確認やネットワーク設定の確認などによく利用されています。
また、「ループバックアドレス = 127.0.0.1」というイメージを持っている方も多いかもしれませんが、実際には 127.0.0.0/8 全体がループバックアドレスとなり、以下のようなIPアドレスもループバックアドレスとして扱われます。
127.0.0.1127.0.0.10127.1.1.1127.255.255.255
私も今回調べるまで、ループバックアドレスは 127.0.0.1 だけだと思っており、 127.0.0.0/8 全体が予約されていることは初めて知りました。
ポイント
127.0.0.1だけではなく127.0.0.0/8全体が対象- ローカル環境の動作確認で利用される
リンクローカルアドレス
リンクローカルアドレスは、同一ネットワーク内だけで用いられるIPアドレスです。
IPv4では 169.254.0.0/16 がリンクローカルアドレスとして予約されています。
通常、PCやサーバーはDHCPサーバーからIPアドレスを取得します。しかし、何らかの理由でDHCPサーバーと通信できずIPアドレスを取得できなかった場合、OSが 169.254.0.0/16 の範囲からIPアドレスを自動的に割り当てることがあります。
Windowsで ipconfig を実行した際に 169.254.xxx.xxx が表示されていたら、DHCPサーバーからIPアドレスを取得できていない可能性があります。ネットワークトラブルの切り分けでは、このアドレスが手掛かりになることも少なくありません。
リンクローカルアドレスは同一ネットワーク内でのみ有効であり、ルーターを経由して外部ネットワークやインターネットと通信することはできません。
ポイント
169.254.x.xが表示されたらDHCP取得失敗を疑う- 同一ネットワーク内だけで利用される
未指定アドレス
未指定アドレスは、0.0.0.0 で表される特別なIPアドレスです。
名前のとおり「IPアドレスがまだ決まっていない状態」を表すために使われるほか、用いられる場面によっては「すべてのネットワークインターフェース」を意味することもあります。
WebアプリケーションやAPIサーバーを起動した際に、次のような設定を見かけたことはないでしょうか。
0.0.0.0:8000
これは「IPアドレス 0.0.0.0 で待ち受ける」という意味ではなく、サーバーが持つすべてのネットワークインターフェースからの接続を受け付けることを表しています。
一方で、DHCPを利用してIPアドレスを取得する前など、IPアドレスがまだ割り当てられていない状態を表すために 0.0.0.0 が使用されることもあります。
今までは0.0.0.0 は「すべてのネットワークインターフェースで待ち受けるための設定」という認識しかありませんでしたが、今回調べたことで、同じIPアドレスでも文脈によって意味が変わることを知りました。
ポイント
- IPアドレスが未設定であることを表す場合がある
- サーバーの待ち受け設定では「すべてのネットワークインターフェース」を意味する
- 文脈によって意味が変わるため、利用されている場面を確認することが重要
ブロードキャストアドレス
ブロードキャストアドレスは、同一ネットワーク内のすべての機器へデータを送信するために活用される特別なIPアドレスです。
通常、IPアドレスを指定して通信を行う場合は、1台の機器を宛先としてデータが送信されます。しかし、ブロードキャストアドレスを宛先に指定すると、同じネットワークに接続されているすべての機器に対してデータが送信されます。
代表的なブロードキャストアドレスとして、255.255.255.255 があります。これは「限定ブロードキャスト」と呼ばれ、同一ネットワーク内のすべての機器へデータを送信する際に使われます。
また、ネットワークごとに定義される「ディレクテッドブロードキャスト」も存在します。例えば、192.168.1.0/24 のネットワークでは、最後のアドレスである 192.168.1.255 がブロードキャストアドレスとなります。
ブロードキャストは、DHCPによるIPアドレスの取得や、ネットワーク上の機器を探索する際など、宛先が分からない機器へ情報を届けたい場面で活用されます。
一方で、ブロードキャストパケットはネットワーク内のすべての機器が受信するため、多用するとネットワーク負荷の増加につながります。そのため、現在では必要最小限の用途で使用されることが一般的です。
ポイント
- ブロードキャストアドレスは同一ネットワーク内のすべての機器へデータを送信するために利用される
255.255.255.255は限定ブロードキャストアドレス- ネットワークごとにブロードキャストアドレス(例:
192.168.1.255)が存在する- DHCPなど、宛先が決まっていない機器との通信で利用される
マルチキャストアドレス
マルチキャストアドレスは、特定のグループにデータを送信するためのIPアドレスです。
IPv4では 224.0.0.0/4 がマルチキャストアドレスとして予約されています。
ブロードキャストアドレスが同一ネットワーク内のすべての機器を宛先とするのに対し、マルチキャストアドレスは特定のグループに参加している機器だけを宛先として通信を行います。
100台の機器が接続されているネットワークで、そのうち10台だけにデータを送りたい場合、ブロードキャストでは100台すべてにデータが届いてしまいます。一方、マルチキャストでは対象の10台だけがデータを受信するため、不要な通信を減らせます。
マルチキャストは、次のような場面で利用されています。
- mDNS(機器の名前解決)
- IPTVやライブ配信などの映像・音声配信
- ルーティングプロトコルの通信
- 機器の自動検出
普段のWebアプリケーション開発で直接扱う機会は多くありませんが、ネットワーク機器やインフラの設定、パケットキャプチャなどを行う際には目にすることがあります。
ブロードキャストと混同されることがありますが、「全員に送る」のがブロードキャスト、「参加しているグループだけに送る」のがマルチキャストという違いを押さえておくと理解しやすくなります。
ポイント
224.0.0.0/4はマルチキャストアドレスとして予約されている- 特定のグループに参加している機器へデータを送信するために利用される
- ブロードキャストよりも効率的に複数の機器へ通信できる
- mDNSや映像配信、ルーティングプロトコルなどで利用される
まとめ
本記事では、エンジニアが知っておきたい代表的なIPアドレスの種類について紹介しました。
IPアドレスには、単に通信相手を識別するためだけでなく、
用途ごとに予約されたさまざまな種類があります。
今回紹介したアドレスを一覧にすると、次のようになります。
| 種類 | 代表例 | 用途 |
|---|---|---|
| グローバル | 8.8.8.8 | インターネット通信 |
| プライベート | 192.168.x.x | LAN |
| ループバック | 127.0.0.1 | 自分自身 |
| リンクローカル | 169.254.x.x | DHCP失敗時 |
| 未指定 | 0.0.0.0 | IP未設定・全インターフェース待ち受け |
| ブロードキャスト | 255.255.255.255 | 全端末 |
| マルチキャスト | 224.0.0.0/4 | グループ通信 |
すべて覚える必要はありません。見慣れないIPアドレスを見かけた際に「これは特殊な用途かもしれない」と思い出せるだけでも、調査の助けになります。
この記事が、IPアドレスについて整理したい方や、特殊なIPアドレスについて初めて知った方の参考になれば幸いです。
参考資料
お知らせ
技術ブログを週1〜2本更新中、ソーイをフォローして最新記事をチェック!
https://qiita.com/organizations/sewii


