GNU/Linux >> Znalost Linux >  >> Linux

Jak funguje rozhraní zpětné smyčky

Rozhraní zpětné smyčky je virtuální rozhraní. Jediným účelem rozhraní zpětné smyčky je vracet do něj odeslané pakety, tj. cokoli, co do něj odešlete, je na rozhraní přijato. Nedává smysl dávat výchozí trasu na rozhraní zpětné smyčky, protože jediné místo, kam může posílat pakety, je pomyslný kus drátu, který je smyčkován z výstupu rozhraní na vstup. Neexistuje nic, co by mohlo změnit toto chování rozhraní zpětné smyčky, k tomu je zakódováno.

Když pingnete 10.0.3.2, odpověď nepřichází z nějakého externího zařízení, ale ze samotného rozhraní zpětné smyčky. Když přidáte adresu na rozhraní zpětné smyčky pomocí např.

sudo ip addr add 10.0.3.1/24 dev lo

cestu do 10.0.3.0/24 je přidáno. Můžete to vidět pomocí

ip route show table local

Něco jako

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

by se měl objevit. Tento záznam směrovací tabulky říká, že paket byl odeslán na jakoukoli adresu mezi 10.0.3.1 a 10.0.3.254 je odeslána prostřednictvím lo rozhraní, ze kterého se okamžitě vrátí.

EDIT:vysvětlení jako odpověď na komentář níže.

Zde je to, co se stane, když odešlete ping na 10.0.3.2:jádro obdrží IP paket pro doručení s cílovou adresou 10.0.3.2. Stejně jako u každého paketu, který má být doručen, jádro konzultuje směrovací tabulku. V tomto případě je odpovídající záznam tento:local 10.0.3.0/24 dev lo proto kernel scope host src 10.0.3.1 , což říká, že paket by měl být doručen prostřednictvím lo rozhraní se zdrojovou adresou 10.0.3.1.

Nyní, protože paket byl předán lo rozhraní zpětné smyčky dělá to, co normálně dělá:odebírá paket z fronty odesílání a umísťuje ho do fronty příjmu. Z pohledu jádra jsme nyní obdrželi příchozí paket připravený ke konzumaci serverovým procesem naslouchajícím na soketu. (V případě pingu jej jádro zpracovává interně.) Nyní jsme obdrželi „vzdálený“ ICMP paket s cílovou adresou 10.0.3.2, což pravděpodobně není jedna z našich lokálních adres, ale byl doručen zpětné smyčce. rozhraní nicméně.

Dále jádro odešle odpověď na ping:paket odpovědi ICMP s obrácenými adresami:10.0.3.2 jako zdrojová adresa a 10.0.3.1 jako cíl. To je doručeno přes rozhraní zpětné smyčky zpět do programu ping, který ukazuje, že jsme obdrželi odpověď z 10.0.3.2.


Linux
  1. Co je NGINX? Jak to funguje?

  2. Jak Awk ‚!a[$0]++‘ funguje?

  3. Jak Sticky Bit funguje?

  1. Jak fungují vnitřnosti sudo?

  2. Jak interně funguje copy_from_user z jádra Linuxu?

  3. Jak funguje příkaz ps?

  1. Účel .bashrc a jak to funguje?

  2. Ssh – Jak funguje Tcp-keepalive v Ssh?

  3. Jak funguje příkaz Exit na Unixovém terminálu?