GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara kerja antarmuka loopback

Antarmuka loopback adalah antarmuka virtual. Satu-satunya tujuan dari antarmuka loopback adalah mengembalikan paket yang dikirim ke sana, yaitu apa pun yang Anda kirim ke sana akan diterima di antarmuka. Tidak masuk akal untuk menempatkan rute default pada antarmuka loopback, karena satu-satunya tempat yang dapat mengirim paket adalah sepotong kabel imajiner yang dilingkarkan dari output antarmuka ke input. Tidak ada yang dapat mengubah perilaku antarmuka loopback ini, itulah yang harus dilakukan kode.

Saat Anda melakukan ping 10.0.3.2, balasannya tidak datang dari beberapa perangkat eksternal, tetapi dari antarmuka loopback itu sendiri. Saat Anda menambahkan alamat pada antarmuka loopback dengan mis.

sudo ip addr add 10.0.3.1/24 dev lo

rute ke 10.0.3.0/24 telah ditambahkan. Anda dapat melihat ini dengan

ip route show table local

Sesuatu seperti

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

harus muncul. Entri tabel perutean ini memberi tahu bahwa paket dikirim ke alamat apa pun antara 10.0.3.1 dan 10.0.3.254 dikirim melalui lo antarmuka, dari mana ia segera dikembalikan.

EDIT:klarifikasi sebagai tanggapan atas komentar di bawah.

Inilah yang terjadi ketika Anda melakukan ping 10.0.3.2:kernel mendapatkan paket IP untuk pengiriman dengan alamat tujuan 10.0.3.2. Sama seperti paket apa pun yang akan dikirimkan, kernel berkonsultasi dengan tabel perutean. Dalam hal ini entri yang cocok adalah:local 10.0.3.0/24 dev lo proto kernel scope host src 10.0.3.1 , yang mengatakan bahwa paket harus dikirimkan melalui lo antarmuka dengan alamat sumber 10.0.3.1.

Sekarang, karena paket itu diberikan ke lo antarmuka, antarmuka loopback melakukan apa yang biasanya dilakukannya:mengambil paket dari antrean kirim dan meletakkannya di antrean terima. Dari sudut pandang kernel, kami sekarang telah menerima paket masuk yang siap dikonsumsi oleh proses server yang mendengarkan pada soket. (Dalam kasus ping, kernel memprosesnya secara internal.) Kami sekarang telah menerima paket ICMP "jauh" dengan alamat tujuan 10.0.3.2, yang bisa dibilang bukan salah satu alamat lokal kami, tetapi dikirim ke loopback antarmuka tetap.

Selanjutnya, kernel mengirimkan respons ke ping:paket respons ICMP dengan alamat dibalik:10.0.3.2 sebagai alamat sumber dan 10.0.3.1 sebagai tujuan. Ini dikirimkan melalui antarmuka loopback kembali ke program ping, yang menunjukkan bahwa kami mendapat balasan dari 10.0.3.2.


Linux
  1. Apa itu NGINX? Bagaimana cara kerjanya?

  2. Bagaimana Cara Kerja Awk ‘!a[$0]++’?

  3. Bagaimana Cara Kerja Sticky Bit?

  1. Bagaimana Internal Sudo Bekerja?

  2. Ssh – Bagaimana Tcp-keepalive Bekerja Di Ssh?

  3. Bagaimana Cara Kerja Perintah Tee??

  1. Bagaimana cara kerja perintah 'ls' di Linux/Unix?

  2. Bagaimana cara kerja copy_from_user dari kernel Linux secara internal?

  3. Bagaimana cara kerja perintah ps?