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.