ローカル IP アドレスはパブリック IP アドレスとどのように区別されますか?

ローカル IP アドレスはパブリック IP アドレスとどのように区別されますか?

ping などのツールや、TCP/IP プロトコルを使用するその他のツールは、たとえば 192.168.1.1 または 10.0.0.1 がローカル IP アドレスであり、8.8.8.8 または 74.142.23.95 がパブリック IP アドレスであることをどのようにして認識するのでしょうか。192.168.xx と 10.0.xx は、ローカル使用のために保存されるようにハードコードされているのでしょうか。

答え1

そうですね予約済みによるRFC1918 の翻訳プライベートネットワークでの使用向け。

しかし、それは実際にはあまり問題ではありません。RIPE などから「パブリック」 IP アドレスのブロックを取得し、それをプライベート ネットワークに使用すれば、すべて正常に動作します。予約は、管理者が問題なく独自のプライベート ネットワークを設定できるようにするために、政治的な理由でのみ必要です。

次のようなツールping 気にしないアドレスが「プライベート」か「ローカル」か「パブリック」かはわかりません。指定されたアドレスにパケットを送信するだけで、OSはルーティングテーブル次にどこへ送るかを決めるためです。

たとえば、Windows 上で IP アドレス10.2.3.4/16(ネットマスク形式: 255.255.0.0) とゲートウェイ を使用してイーサネット カードを構成すると10.2.0.1、ルーティング テーブルに次のエントリが追加されます。

  • 10.2.3.4/32(ネットマスク255.255.255.255) インターフェースLoopback

    (自分のアドレスは常にループバック インターフェイスを介してルーティングされ、ネットワークには送信されません。)

  • 10.2.0.0/16(ネットマスク255.255.0.0) インターフェースLocal Area Connection

    (独自のサブネット内のアドレスは、定義上、ローカルです。)

  • 0.0.0.0/0(ネットマスク0.0.0.0) ゲートウェイへ10.2.0.1

    (その他はすべてローカルではありません。)

言い換えると、OSに伝えた範囲内のすべてのアドレスは10.2.0.0/16ローカルであり、OS がすべてを処理します。


ルーティング テーブルを表示するには:

  • Linuxでは、ip route(IPv4)とip -6 route(IPv6)
  • Windows の場合route print(XP 以降では IPv4、Vista 以降では v4/v6 の両方)
  • Windows XPの場合netsh interface ipv6 show route(IPv6)
  • Windows、Linux、BSD、その他のUnix系OS netstat -r -n(IPv4)
  • Linuxおよび一部のUnix系OS netstat -r -n -6(IPv6)

ルーティング テーブルの編集も同じツールで実行できます。たとえば、すべてを172.16.0.0/16ローカルとしてマークするには、Linux で を使用できますip route add 172.16.0.0/16 dev eth0

答え2

パブリック IP アドレスとプライベート IP アドレスは RFC で定義されています。プライベート IP アドレスは次のとおりです。

10.0.0.0/8

172.16.0.0/12

192.168.0.0/16

また、次の IP アドレスはループバックです。

127.0.0.0/8

その他は公開されています。

ほとんどのツールでは、パブリック IP アドレスまたはプライベート IP アドレスを知る必要はありません。

関連情報