ローカルホスト

ページは半保護されています

コンピュータネットワークにおいて、localhost は、アクセスに使用されている現在のコンピュータを指すホスト名です。localhostという名前はループバックのために予約されています。[ 1 ]これは、ループバックネットワークインターフェースを介してホスト上で実行されているネットワークサービス にアクセスするために使用されます。ループバックインターフェースを使用すると、ローカルネットワークインターフェースのハードウェアがバイパスされます。

ループバック

ローカルループバックメカニズムは、物理的なネットワークインターフェースを必要とせず、またコンピュータが接続されているネットワークからサービスにアクセスできるようにすることなく、ホスト上でネットワークサービスを実行するために使用できます。例えば、ローカルにインストールされたウェブサイトに、WebブラウザからURL http://localhostでアクセスしてホームページを表示できます。

IPv4ネットワーク標準では、アドレスブロック127.0.0.0 / 8(1600万以上のアドレス)全体がループバックの目的で予約されています。 [ 2 ]つまり、これらのアドレスに送信されたパケットはすべてループバックされます。アドレス127.0.0.1はIPv4ループバックトラフィックの標準アドレスです。残りはすべてのオペレーティングシステムでサポートされているわけではありません。ただし、これらを使用して、ホスト上に複数のサーバーアプリケーションを設定し、すべて同じポート番号でリッスンすることができます。IPv6アドレス指定アーキテクチャ[ 3 ]では、ループバックに割り当てられているアドレスは:: 1だけです。この標準では、このアドレスを物理インタフェースに割り当てることは禁止されており、リモートホストに送信されるパケットの送信元アドレスまたは宛先アドレスとして使用することも禁止されています。

名前解決

通常、 名前localhost はIPv4ループバックアドレス127.0.0.1に解決され、IPv6ループバック アドレス::1に解決されます。

この解像度は通常、オペレーティング システムのhosts ファイル内の次の行によって構成されます。

127.0.0.1 ローカルホスト ::1 ローカルホスト 

この名前はドメインネームシステム(DNS)サーバーによって解決されることもありますが、この名前の使用に関しては 特別な考慮事項があります[ 1 ] 。

  • localhost という名前の IPv4 または IPv6 アドレス クエリは、常にそれぞれのループバック アドレスに解決される必要があります
  • アプリケーションは、名前をループバック アドレスに自分で解決するか、ローカルの名前解決メカニズムに渡すことができます。
  • 名前リゾルバは、 localhostに対するアドレス(AまたはAAAA)クエリを受信した場合、適切なループバックアドレスを返し、その他の要求されたレコードタイプに対しては否定応答を返す必要があります。localhost に対するクエリは、キャッシュネームサーバーに送信しないでください。
  • ドメイン ネーム システムのルート サーバーにトラフィックの負担をかけないようにするために、キャッシュ ネーム サーバーは、 localhostのネーム サーバー レコードを要求したり、解決を権限のあるネーム サーバーに転送したりしないでください。
  • 権威ネームサーバーは、上記の規定にもかかわらず、「localhost」のクエリを受信した場合、それを適切に解決する必要があります。

localhostループバックアドレス ( 127.0.0.1および::1 )にマッピングされるだけでなく、他の IPv4 (ループバック) アドレスにもマッピングできます。また、任意のループバックアドレスに他の名前や追加の名前を割り当てることもできます。hostsファイルまたは DNS で指定されたループバックアドレス範囲以外のアドレスにlocalhostをマッピングした場合、アプリケーションが内部的に名前をマッピングする可能性があるため、期待どおりの効果が得られるとは限りません。

ドメインネームシステムでは、.localhostという名前はトップレベルドメイン名として予約されており、もともとホスト名localhostとの混同を避けるために確保されていた。[ 4 ]ドメイン名登録機関は、トップレベルドメインの.localhostにドメイン名を委任することができない。[ 1 ]

歴史的ノート

1981年、 127.0.0.0 / 8ブロックは「予約」状態となり、[ 5 ]汎用クラスA IPネットワークとして割り当てられなくなりました。このブロックは1986年にループバック用途として正式に割り当てられました。[ 6 ]特殊用途IPv4アドレスブロック としての用途は、 1994年、 [ 7 ]、2002年[ 8 ]、2010年[ 9 ]、そして最後に2013年に確認されました。 [ 2 ]

当初、1995年に単一のIPv6ループバックアドレス::1が定義されました。[ 10 ]その目的と定義は1998年、[ 11 ]、2003年、[ 12 ]、そして2006年の現在の定義まで変更されていません。[ 3 ]

パケット処理

ループバックアドレスに送信されるパケットの処理は、TCP/IPスタックリンク層で実装されます。このようなパケットは、ネットワークインターフェースコントローラ(NIC)やハードウェアデバイスドライバに渡されることはなく、コンピューティングシステムの外部に現れたり、ルーターによってルーティングされたりすることはありません。これにより、ハードウェアネットワークインターフェースが存在しない場合でも、ソフトウェアテストやローカルサービスが可能になります。

ループバックされたパケットは、宛先のIPアドレスによってのみ、TCP/IPスタックを通過する他のパケットと区別されます。したがって、最終的にループバックされたパケットを受信するサービスは、指定された宛先に応じて応答します。例えば、HTTPサービスは、127.0.0.99: 80と127.0.0.100:80宛のパケットを、異なるWebサーバーにルーティングすることも、異なるWebページを返す単一のサーバーにルーティングすることもできます。このようなテストを簡素化するために、各アドレスに適切な名前を付けるようにhostsファイルを設定することができます。

ループバックではないインターフェースで受信され、ループバックの送信元または宛先アドレスを持つパケットは破棄する必要があります。このようなパケットは、Martianパケットと呼ばれることもあります。[ 13 ]他の偽のパケットと同様に、悪意のあるパケットである可能性があり、 Bogonフィルタリングを適用することで、それらが引き起こす可能性のある問題を回避できます。

特殊なケース

MySQLデータベースのリリースでは、ホスト名localhostの使用とアドレス127.0.0.1および::1の使用が区別されています。[ 14 ]アプリケーションのクライアントコネクタインターフェースでlocalhostを宛先として使用する場合、MySQLアプリケーションプログラミングインターフェースはUnixドメインソケットを使用してデータベースに接続しますが、ループバックインターフェースを介したTCP接続では明示的なアドレスを直接使用する必要があります。

127.0.0.0 / 8アドレスの使用に関する注目すべき例外の 1 つは、マルチプロトコル ラベル スイッチング(MPLS) トレースルート エラー検出での使用です。この場合には、ルーティングできないという特性により、障害のあるパケットがエンド ユーザーに配信されるのを回避する便利な手段が提供されます。

参照

参考文献

  1. ^ a b c S. Cheshire ; M. Krochmal (2013年2月).特殊用途ドメイン名.インターネット技術タスクフォース. doi : 10.17487/RFC6761 . ISSN  2070-1721 . RFC 6761 .提案された標準。RFC 1918 および2606 更新します。
  2. ^ a b M. Cotton、L. Vegoda、B. Haberman (2013年4月). R. Bonica (編).特殊用途IPアドレスレジストリ.インターネット技術タスクフォース. doi : 10.17487/RFC6890 . ISSN 2070-1721 . BCP 153. RFC 6890 . 現在 ベストプラクティス153。RFC 4773、5156、5735、5736は  廃止。RFC 8190により更新
  3. ^ a b R. Hinden; S. Deering (2006年2月). IPバージョン6アドレスアーキテクチャ. ネットワークワーキンググループ. doi : 10.17487/RFC4291 . RFC 4291 .ドラフト 標準。RFC 3513は 廃止。RFC 5952、6052、7136、7346、7371、8064 により更新。
  4. ^ D. Eastlake; A. Panitz (1999年6月).予約済みトップレベルDNS名. ネットワークワーキンググループ. doi : 10.17487/RFC2606 . BCP 32. RFC 2606 .現在のベストプラクティス 32。RFC 6761  によって更新されまし
  5. ^ J. Postel (1981年9月). ASSIGNED NUMBERS . ネットワークワーキンググループ. doi : 10.17487/RFC0790 . RFC 790 .廃止。RFC 820  により廃止。RFC 776、770、762、758、755、750、739、604、503、433、349 は廃止。IEN : 127、117、93廃止
  6. ^ J. Reynolds ; J. Postel (1986年11月). ASSIGNED NUMBERS . ネットワークワーキンググループ. doi : 10.17487/RFC0990 . RFC 990 .廃止。RFC 1010  により廃止。RFC 960 は廃止。IEN  127、117、および 93 は廃止
  7. ^ J. Reynolds ; J. Postel (1994年10月). ASSIGNED NUMBERS . ネットワークワーキンググループ. doi : 10.17487/RFC1700 . STD 2. RFC 1700 .廃止。RFC 3232  により廃止。RFC 1340、1060、1010、990、960、943、923、900、870、820、790、776、770、762、758、755、750、739、604、503、433、349 は廃止。IEN 127、117、93廃止
  8. ^ IANA (2002年9月).特殊用途IPv4アドレス. ネットワークワーキンググループ. doi : 10.17487/RFC3330 . RFC 3330 .廃止。RFC 5735 により廃止されまし 
  9. ^ M. Cotton; L. Vegoda (2010年1月).特殊用途IPv4アドレス.インターネット技術タスクフォース. doi : 10.17487/RFC5735 . ISSN 2070-1721 . BCP 153. RFC 5735 . 廃止。RFC 6890  により廃止されまし
  10. ^ R. Hinden; S. Deering (1995年12月). IPバージョン6アドレス指定アーキテクチャ. ネットワークワーキンググループ. doi : 10.17487/RFC1884 . RFC 1884 .廃止。RFC 2373  により廃止されまし
  11. ^ R. Hinden; S. Deering (1998年7月). IPバージョン6アドレスアーキテクチャ. ネットワークワーキンググループ. doi : 10.17487/RFC2373 . RFC 2373 .廃止。RFC 3513 により 廃止。RFC 1884 より廃止。
  12. ^ R. Hinden; S. Deering (2003年4月). IPバージョン6アドレスアーキテクチャ. ネットワークワーキンググループ. doi : 10.17487/RFC3513 . RFC 3513 .廃止。RFC 2373を  廃止。RFC 4291 によって廃止
  13. ^レイモンド、エリック S. 「The Jargon File」
  14. ^ 「MySQL :: MySQL 5.5 リファレンスマニュアル :: 4.1 MySQL プログラムの概要」