ループバックアドレス: 127.0.0.0/8 の解説

127.0.0.0/8 ループバックアドレスレンジを解説。127.0.0.1 が localhost である理由と、/8 ブロック全体がループバック用に予約されている仕組みを理解しましょう。

127.0.0.0/8IPv4

詳細な説明

ループバックアドレス: 127.0.0.0/8

127.0.0.0/8 アドレスブロックはループバック用に予約されており、トラフィックがローカルマシンから出ることはありません。このレンジで最も有名なアドレスは 127.0.0.1 で、localhost として広く知られています。

主要な情報

  • レンジ: 127.0.0.0 から 127.255.255.255
  • サブネットマスク: 255.0.0.0 (/8)
  • アドレス総数: 16,777,216
  • 最も一般的: 127.0.0.1 (localhost)
  • ネットワーク上でルーティング可能: いいえ -- パケットはホストから出ない

ループバックの仕組み

プログラムが 127.0.0.0/8 内の任意のアドレスにパケットを送信すると:

  1. オペレーティングシステムのネットワークスタックがパケットをインターセプトする
  2. パケットは送信元マシンにルートバックされる
  3. 物理ネットワークインターフェースには到達しない
  4. ネットワーク上には一切現れない

これにより、常に利用可能な仮想ネットワークインターフェース (Linuxでは通常 lo、macOSでは lo0 と呼ばれる) が作成されます。

なぜ /8 全体が予約されているのか

127.0.0.1 が誰もが使うアドレスですが、/8 ブロック全体 (1,670万アドレス) が予約されています。これは無駄に思えるかもしれませんが:

  • この予約は 1981年 (RFC 790) に遡り、当時はアドレス空間が無限に思えた
  • 一部のアプリケーションはレンジ内の他のアドレスを使用する (例: 複数サービスのテスト用に 127.0.0.2)
  • この空間を再利用する現代の提案も存在するが、互換性の懸念がある

一般的な用途

1. ローカル開発: 開発者が 127.0.0.1:3000 でWebサーバーを起動し、ネットワークに公開せずにアプリケーションをテストします。

2. サービス間通信: 同一マシン上の複数サービスが異なるループバックアドレス (127.0.0.1、127.0.0.2 など) を介して通信します。

3. ヘルスチェック: アプリケーションがヘルスチェックエンドポイントをlocalhostにバインドし、ローカルからのみアクセス可能にします。

4. DNS解決: Linuxの systemd-resolved が使用するシステムリゾルバ (127.0.0.53)。

セキュリティ

サービスを 0.0.0.0 ではなく 127.0.0.1 にバインドすることで、ローカルマシンからの接続のみを受け付けるようになり、基本的なアクセス制御の層を提供します。

IPv6 での相当アドレス

IPv6のループバックアドレスは ::1/128 で、ブロック全体ではなく単一のアドレスです。これはIPv6のより効率的なアドレス割り当て哲学を反映しています。

ユースケース

開発者が開発中にローカルAPIサーバーを 127.0.0.1:8080 で起動し、サービスが自分のマシンからのみアクセス可能で、ネットワークからはアクセスできないようにします。

Try It — Subnet Calculator

フルツールを開く