
ネットワーク・インターフェースの理解:ループバック、ローカルIP、パブリックIP

多くのコンピュータユーザーは、`localhost` や `127.0.0.1`、または直接ローカル IP を入力して使用する場面に遭遇したことがあるでしょう。一見すると、これらはすべてローカルマシンにアクセスできるように見えますが、なぜ 3 種類の形式が存在するのでしょうか?また、それぞれにどのような違いがあるのでしょうか?見た目は単純ですが、実際には大きな違いがあります。
さらに、公的ネットワーク(インターネット)とプライベートネットワーク(ローカルネットワーク)、ネットワークインターフェースカード(NIC)と IP アドレスの関係についても混乱することがあるかもしれません。以下で、それらの疑問を一つずつ解説します。
ローカル IP アドレス
コンピュータのマザーボードには複数のネットワークインターフェースカード(NIC)が組み込まれており、一般的に以下の種類が存在します。
仮想ネットワークインターフェース(ループバック)
注意:これは物理的なネットワークカードではなく、仮想的なものです。これはローカルループバックアドレス(またはインターフェース)と呼ばれ、通常 `127.0.0.1` がループバックアドレスとして設定されています。
有線ネットワークインターフェース(イーサネット)
これはイーサネット(LAN)で使用されるもので、一般的に「ネットワークカード」と言えばこれを指します。有線接続で、LAN ケーブルを挿入することで使用します。
無線ネットワークインターフェース(WLAN)
無線 LAN(Wi-Fi)を使用するためのネットワークカードで、ノート PC には通常これが内蔵されています。イーサネットのように物理的なケーブルを必要とせず、無線技術を利用して通信を行います。
これらのネットワークインターフェースにはそれぞれローカル IP アドレスが割り当てられます。
`localhost` は特別なドメイン名
まず `localhost` は IP アドレスではなく、特別なドメイン名(サフィックスなし)です。デフォルトではローカル IP(すなわち `127.0.0.1`)に解決され、本機の `hosts` ファイルによって管理されています。もし希望するなら、`localhost` を任意のパブリック IP アドレスにマッピングすることも可能です。
デフォルトでは、以下のように設定されています。
IPv4: `127.0.0.1`
IPv6: `[::1]`
`hosts` ファイルの場所:
C:\Windows\System32\drivers\etc
`127.0.0.1` はローカル専用のプライベート IP
`127.0.0.1` はプライベート IP の一種で、ローカルループバックアドレス(loopback address)として使用されます。本質的には仮想ネットワークインターフェース(ループバックインターフェース)にバインドされた IP アドレスです。
ループバックアドレスとは?
ループバックアドレスとは、ホストが自分自身に対して通信を行うための特別なアドレスです。たとえば、同じホスト内で動作する 2 つのサービスが通信する場合、ループバックアドレスを使用すると、TCP/IP スタックの下層(リンク層や物理層、イーサネット)を経由せず、直接ネットワーク層とトランスポート層で処理されます。
IP ネットワークの `127.x.x.x` は、ネットワークアドレスではなく、すべてループバック用に予約されているため、生成された IP パケットは外部のネットワークインターフェースに到達することはなく、ホスト内で処理されます。
したがって、`127.0.0.1` は一般的にローカルの TCP/IP プロトコルスタックをテストするために使用されます。もし `ping 127.0.0.1` が成功すれば、ネットワークカードや IP プロトコルのインストールに問題がないことを確認できます(このテストはインターネット接続の有無とは無関係です)。
実際には、IPv4 では `127.0.0.0/8` の範囲全体がループバック用に予約されています。つまり、`127.0.0.1` 以外のアドレスも同様にループバック通信に利用できます。また、`0.0.0.0` というアドレスもよく混同されますが、`0.0.0.0` は厳密にはローカルアドレスを指し、`127.0.0.1` とは用途が異なります。
例えば、ある PC に 2 枚のネットワークカードがあり、一方がパブリック IP を使用してインターネットに接続し、もう一方がプライベート IP でローカルネットワークに接続しているとします。この PC で Web サーバーを稼働させ、どちらのネットワークからもアクセス可能にしたい場合、サーバーのバインドアドレスを `0.0.0.0` に設定すれば、すべての利用可能なネットワークインターフェースでリクエストを受け付けることができます。
`localhost`、ローカル IP、`127.0.0.1` の違い
ネットワーク要件の違い
`localhost` と `127.0.0.1` は、ネットワーク接続がなくても使用できます。インターネットに接続されていない環境でも、これらにアクセスすればローカルマシンを見つけることができます。
ローカル IP のうち、有線ネットワーク IP や無線ネットワーク IP は、ネットワークに接続されている場合にのみ割り当てられ、アクセス可能になります。これらは、外部に公開される IP アドレスです。
アクセス対象の違い
`localhost` はローカルマシンへのアクセス
`127.0.0.1` もローカルマシンへのアクセス
ローカル IP は、ローカルマシンまたは外部のデバイスからのアクセスが可能
ドメインと IP アドレスの違い
`localhost` はドメイン名であり、デフォルトで `127.0.0.1` に解決されます。
ローカル IP は、ネットワークインターフェース(物理 NIC)にバインドされ、外部デバイスからのアクセスを許可します。
LAN 内でのアクセス
同じサブネット(LAN 内の同じネットワークセグメント) にある他の PC は、ローカル IP を使用して対象の PC にアクセスできます(プライベート IP については後述します)。
ネットワークインターフェースのアドレス & IP アドレス
ネットワークインターフェースのアドレス(MAC アドレス)
ネットワークインターフェースのアドレス(MAC アドレス)は、メディアアクセス制御(Media Access Control) の略で、物理アドレスまたはハードウェアアドレスとも呼ばれます。これは、ネットワークデバイスの識別のために使用されます。
OSI 参照モデルにおいて、
第 3 層(ネットワーク層)が IP アドレス を担当し、
第 2 層(データリンク層)が MAC アドレス を担当します。
したがって、1 つのネットワークインターフェースには 1 つの MAC アドレスが割り当てられますが、ネットワークの接続先ごとに異なる IP アドレス が設定されることがあります。
MAC アドレスはネットワークカードに組み込まれており、通常変更できず、グローバルに一意であることが保証されています。これを人間の身分証明書の番号のように考えることもできます。
IP アドレス
IP アドレス(Internet Protocol Address) は、インターネット上のデバイスを識別するためのアドレスです。これは、インターネット上のネットワークとホストに一意のロジカルアドレスを割り当て、物理アドレス(MAC アドレス)の違いを抽象化するために使用されます。
まとめ
簡単に言えば、
MAC アドレス はネットワークインターフェースに固有の物理アドレスであり、通常変更できない。
IP アドレス は、ネットワークによって割り当てられるソフトアドレスであり、変更が可能。
補足:Windows では、`ipconfig /all` コマンドを使用して、IP アドレスと MAC アドレスを確認できます。
パブリック IP(公的 IP)とプライベート IP(私的 IP)
私たちは、`127.0.0.1` を使用してローカルマシンにアクセスし、プライベート IP を使用して LAN 内の他のデバイスにアクセスし、パブリック IP を使用してインターネット上の他のデバイスにアクセスします。
パブリック IP アドレス(公的 IP)
企業レベルのネットワークを構築する際、インターネットサービスプロバイダー(ISP)からインターネット接続(ブロードバンド)を申請します。ISP は、私たちに 1 つまたは複数の IP アドレスを割り当てます。これらの IP アドレスは、企業内のデバイスがインターネットにアクセスするために使用されます。
パブリックアドレス(Public Address) は、Internet Network Information Center(INIC、インターネット情報センター) によって管理されています。これらの IP アドレスは、INIC に登録された組織に割り当てられ、インターネット上で直接アクセスできます。
プライベート IP アドレス(私的 IP)
企業や家庭内でローカルネットワーク(LAN)を構築する際、プライベート IP が使用されます。
プライベートアドレス(Private Address) は、非登録アドレスであり、組織内でのみ使用されるため、インターネット上には表示されません。プライベート IP からのトラフィックは、ISP のルーターでブロックされるため、直接インターネットに接続することはできません。
企業内の PC がインターネットにアクセスするためには、NAT(Network Address Translation) を使用して、プライベート IP をパブリック IP に変換する必要があります。
パブリックネットワークとプライベートネットワークのアクセス関係
プライベートネットワークからパブリックネットワーク(インターネット)へアクセスする場合、SNAT(Source Network Address Translation) を適用する必要があります。
パブリックネットワークからプライベートネットワークへのアクセスは、DNAT(Destination Network Address Translation) や VPN(Virtual Private Network) などの技術を利用する必要があります。
2 つの異なるプライベートネットワーク間で通信する場合も、VPN を利用することで接続が可能になります。
インターネット(外部ネットワーク)とプライベートネットワーク(内部ネットワーク)
企業内部のネットワークは一般に「プライベートネットワーク」と呼ばれ、企業外部のネットワークを「外部ネットワーク」と呼びます。しかし、外部ネットワークには ISP が提供するパブリックネットワーク(インターネット)だけでなく、他の企業や家庭のネットワーク(プライベートネットワーク)も含まれる場合があります。
そのため、「外部ネットワーク」と「パブリックネットワーク(インターネット)」は完全に同じ意味ではありませんが、一般的には区別せずに使われることが多いです。
すべての IP アドレスの範囲
IP アドレスは 5 つのクラスに分けられており、それぞれの範囲は以下のとおりです:
A クラス IP: `1.0.0.1 ~ 127.255.255.254`
B クラス IP: `128.0.0.1 ~ 191.255.255.254`
C クラス IP: `192.0.0.1 ~ 223.255.255.254`
D クラス IP: `224.0.0.0 ~ 239.255.255.255`(マルチキャスト用)
E クラス IP: `240.0.0.0 ~ 255.255.255.255`(将来の用途のために予約)
このうち、A・B・C クラスの IP アドレス はインターネットやユーザーで使用可能ですが、D クラス はマルチキャスト通信に使用され、E クラス は将来の用途のために予約されています。
特殊な IP アドレス
`0.0.0.0` → 現在のホストを指す
`255.255.255.255` → 現在のサブネットのブロードキャストアドレス
`127.0.0.1 ~ 127.255.255.255` → ループバックテスト専用
E クラス IP (`11110` で始まるアドレス) → 研究・将来用途のために予約
`ネットワークIDの最初の6ビットがすべて0` → ローカルネットワークを表す
パブリック IP アドレスの範囲
IP アドレスの A・B・C クラスのうち、以下の範囲はパブリック IP として利用可能です。
A クラスのパブリック IP
`1.0.0.0 ~ 9.255.255.255`
`11.0.0.0 ~ 126.255.255.255`
B クラスのパブリック IP
`128.0.0.0 ~ 172.15.255.255`
`172.32.0.0 ~ 191.255.255.255`
C クラスのパブリック IP
`192.0.0.0 ~ 192.168.255.255`
`192.169.0.0 ~ 223.255.255.255`
プライベート IP アドレスの範囲
プライベート IP アドレスとして予約されている範囲は以下のとおりです。
A クラス: `10.0.0.0 ~ 10.255.255.255`(`10.0.0.0/8`)
B クラス: `172.16.0.0 ~ 172.31.255.255`(`172.16.0.0/12`)
C クラス: `192.168.0.0 ~ 192.168.255.255`(`192.168.0.0/16`)
これらのアドレスは、インターネット上ではルーティングされず、ISP はプライベート IP アドレスのトラフィックをブロックします。そのため、直接インターネットに接続することはできません。しかし、NAT 技術 を利用すれば、プライベート IP アドレスをパブリック IP アドレスに変換してインターネットと通信することが可能です。
また、プリンターや管理用ハブなど、インターネット接続を必要としないデバイスは、プライベート IP を使用することで IP アドレスの節約が可能です。
ネットワークセグメント(サブネット)とローカルネットワーク(LAN)
ネットワークセグメント(サブネット)とは?
ネットワークセグメント(サブネット) とは、同じ物理層のネットワークデバイス(例:ハブ、スイッチ)によって直接通信可能な範囲のことを指します。つまり、同じネットワークセグメント内のコンピュータは、ルーターを介さずに直接通信することができます。
ローカルネットワーク(LAN)とは?
LAN(Local Area Network) は、スイッチなどのネットワーク機器を使用して構成されるネットワーク全体を指します。通常、LAN 内のすべてのデバイスは同じサブネット内にあり、直接通信できます。しかし、VLAN(仮想 LAN) を利用すれば、1 つの LAN を複数のネットワークセグメントに分割することも可能です。
同じサブネット内のデバイスのみが直接通信可能
ネットワーク内のデバイスが同じサブネットに属している場合、直接通信が可能です。したがって、1 つの LAN 内にネットワークセグメントが 1 つしかない場合、LAN = ネットワークセグメント となります。
異なるネットワークセグメントの判別方法
IP アドレスとサブネットマスクを使用した判別
サブネットマスクを利用すると、2 つの IP アドレスが同じネットワークセグメントに属しているかどうかを判別できます。
例 1
以下の 2 つの IP アドレスを考えます。
IP アドレス 1: `192.168.1.1`(サブネットマスク:`255.255.255.0`)
IP アドレス 2: `192.168.1.2`(サブネットマスク:`255.255.255.0`)
サブネットマスク `255.255.255.0` を適用すると、両方とも `192.168.1.0/24` のネットワークセグメントに属している ため、直接通信できます。
例 2
IP アドレス 1: `192.168.1.1`(サブネットマスク:`255.255.255.0`)
IP アドレス 2: `192.168.1.2`(サブネットマスク:`255.255.0.0`)
一見すると似ていますが、サブネットマスクが異なるため、同じネットワークセグメントには属していません。
`192.168.1.1 & 255.255.255.0` → `192.168.1.0/24`
`192.168.1.2 & 255.255.0.0` → `192.168.0.0/16`
このため、異なるネットワークセグメントに属していると判断できます。
例 3
IP アドレス 1: `192.168.1.1`(サブネットマスク:`255.255.252.0`)
IP アドレス 2: `192.168.2.1`(サブネットマスク:`255.255.252.0`)
サブネットマスク `255.255.252.0` を適用すると、どちらも `192.168.0.0/22` のネットワークセグメントに属している ため、同じネットワークセグメント内で直接通信が可能です。
私たちはLeapcell、バックエンド・プロジェクトのホスティングの最適解です。

Leapcellは、Webホスティング、非同期タスク、Redis向けの次世代サーバーレスプラットフォームです:
複数言語サポート
Node.js、Python、Go、Rustで開発できます。
無制限のプロジェクトデプロイ
使用量に応じて料金を支払い、リクエストがなければ料金は発生しません。
比類のないコスト効率
使用量に応じた支払い、アイドル時間は課金されません。
例: $25で6.94Mリクエスト、平均応答時間60ms。
洗練された開発者体験
直感的なUIで簡単に設定できます。
完全自動化されたCI/CDパイプラインとGitOps統合。
実行可能なインサイトのためのリアルタイムのメトリクスとログ。
簡単なスケーラビリティと高パフォーマンス
高い同時実行性を容易に処理するためのオートスケーリング。
ゼロ運用オーバーヘッド — 構築に集中できます。

Xでフォローする:@LeapcellHQ