GNU/Linux >> Linux の 問題 >  >> Linux

ループバック インターフェイスはどのように機能しますか

ループバック インターフェイスは仮想インターフェイスです。ループバック インターフェイスの唯一の目的は、送信されたパケットを返すことです。つまり、送信したものはすべてインターフェイスで受信されます。ループバック インターフェースにデフォルト ルートを配置することはほとんど意味がありません。これがパケットを送信できる唯一の場所は、インターフェースの出力から入力にループされる架空のワイヤ部分だからです。ループバック インターフェイスのこの動作を変更できるものは何もありません。それがコード化されていることです。

10.0.3.2 に ping を実行すると、外部デバイスからではなく、ループバック インターフェイス自体から応答が返されます。たとえば、ループバック インターフェイスにアドレスを追加すると、

sudo ip addr add 10.0.3.1/24 dev lo

10.0.3.0/24 へのルート が追加されます。これは

で見ることができます
ip route show table local

のようなもの

local 10.0.3.0/24 dev lo proto kernel scope host src 10.0.3.1

現れるはずです。このルーティング テーブル エントリは、パケットが 10.0.3.1 の間の任意のアドレスに送信されたことを示します。 そして 10.0.3.254 lo 経由で送信されます そこからすぐに返されます。

編集:以下のコメントへの応答としての説明。

10.0.3.2 に ping を実行すると、次のようになります。カーネルは、宛先アドレスが 10.0.3.2 の配信用 IP パケットを取得します。配信されるパケットと同様に、カーネルはルーティング テーブルを参照します。この場合、一致するエントリは次のとおりです:local 10.0.3.0/24 dev lo proto kernel scope host src 10.0.3.1 、これは、パケットが lo 経由で配信される必要があることを示しています 送信元アドレス 10.0.3.1 とのインターフェース。

ここで、パケットが lo に渡されたため インターフェイスでは、ループバック インターフェイスは通常の動作を行います。つまり、パケットを送信キューから取り出し、受信キューに置きます。カーネルの観点からは、ソケットをリッスンしているサーバー プロセスが消費する準備が整った着信パケットを受信しました。 (ping の場合、カーネルはそれを内部で処理します。)宛先アドレスが 10.0.3.2 の「リモート」ICMP パケットを受信しました。これはおそらくローカル アドレスの 1 つではありませんが、ループバックに配信されました。

次に、カーネルは ping への応答を送信します。アドレスが反転された ICMP 応答パケット (送信元アドレスとして 10.0.3.2、宛先として 10.0.3.1) が送信されます。これは、ループバック インターフェイスを介して ping プログラムに返されます。これは、10.0.3.2 から応答があったことを示しています。


Linux
  1. NGINXとは何ですか?それはどのように機能しますか?

  2. スティッキービットはどのように機能しますか?

  3. .bashrcの目的とそれはどのように機能しますか?

  1. Ssh – Tcp-keepaliveはSshでどのように機能しますか?

  2. UnixターミナルでExitコマンドはどのように機能しますか?

  3. ティーコマンドはどのように機能しますか?

  1. 「ls」コマンドは Linux/Unix でどのように機能しますか?

  2. rm はどのように機能しますか? rm は何をしますか?

  3. sig_atomic_t は実際にどのように機能しますか?