0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

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

Posted at

表紙

多くのコンピュータユーザーは、localhost127.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 の違い

  • ネットワーク要件の違い

    • localhost127.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.25510.0.0.0/8
  • B クラス: 172.16.0.0 ~ 172.31.255.255172.16.0.0/12
  • C クラス: 192.168.0.0 ~ 192.168.255.255192.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.0192.168.1.0/24
  • 192.168.1.2 & 255.255.0.0192.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

Leapcellは、Webホスティング、非同期タスク、Redis向けの次世代サーバーレスプラットフォームです:

複数言語サポート

  • Node.js、Python、Go、Rustで開発できます。

無制限のプロジェクトデプロイ

  • 使用量に応じて料金を支払い、リクエストがなければ料金は発生しません。

比類のないコスト効率

  • 使用量に応じた支払い、アイドル時間は課金されません。
  • 例: $25で6.94Mリクエスト、平均応答時間60ms。

洗練された開発者体験

  • 直感的なUIで簡単に設定できます。
  • 完全自動化されたCI/CDパイプラインとGitOps統合。
  • 実行可能なインサイトのためのリアルタイムのメトリクスとログ。

簡単なスケーラビリティと高パフォーマンス

  • 高い同時実行性を容易に処理するためのオートスケーリング。
  • ゼロ運用オーバーヘッド — 構築に集中できます。

ドキュメントで詳細を確認!

Try Leapcell

Xでフォローする:@LeapcellHQ


ブログでこの記事を読む

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?