Bagaimana perangkat loopback diimplementasikan?

8

Antarmuka jaringan loopback

adalah perangkat jaringan virtual yang sepenuhnya diimplementasikan dalam perangkat lunak.

Tetapi bagaimana implementasi ini benar-benar tercapai dan bagaimana Anda memanipulasinya?

Sejauh yang saya tahu, IP ditandai sebagai lokal di tabel routing lokal:

ip route show table local  

Mengirim ke IP yang ditandai sebagai lokal akan memicu perangkat loopback. Tetapi apakah deteksi ini dilakukan dengan murni oleh tabel routing atau juga oleh beberapa operasi kernel lainnya?

Sunting: Tujuan utama saya adalah memanipulasi konfigurasi loop-device, sehingga mengirim datagram di antara antarmuka saya (dua adaptor wlan) pada laptop saya akan menghasilkan traffic / datagram nyata dalam jaringan dan bukan pada loop lokal. Antarmuka 1 -> WLAN -> Antarmuka 2 dan BUKAN: Antarmuka 1 -> LOOP -> Antarmuka 2

Skyo Livede
sumber

Jawaban:

5

Ini sepenuhnya ditangani melalui tabel routing.

Cukup mudah untuk dicoba di mesin virtual, jika Anda ingin bersenang-senang. Saya tidak bertanggung jawab atas apa pun yang mungkin terjadi pada mesin tempat Anda mencoba ini.

Pertama mari kita ubah netmask loke 255.255.0.0:

sudo ip addr del 127.0.0.1/8 dev lo; sudo ip addr add 127.0.0.1/16 dev lo

Sekarang mari kita lihat lo:

$ ip -4 addr show dev lo
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    inet 127.0.0.1/16 scope host lo

Kemana paket ke 127.1.1.1 pergi?

$ sudo ip route get 127.1.1.1
127.1.1.1 via 172.16.22.2 dev eth0  src 172.16.22.130 
    cache  mtu 1500 advmss 1460 hoplimit 64

Kami mulai melakukan ping di terminal lain:

$ ping 127.1.1.1

Mari memantau lalu lintas ICMP di eth0:

$ sudo tcpdump -i eth0 icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on lo, link-type EN10MB (Ethernet), capture size 65535 bytes
07:28:42.060077 IP 172.16.22.130 > 127.1.1.1: ICMP echo request, id 5665, seq 4, length 64
07:28:43.059920 IP 172.16.22.130 > 127.1.1.1: ICMP echo request, id 5665, seq 5, length 64

Saya akan meninggalkan Anda dengan latihan mengubah netmask lopada mesin jarak jauh menjadi 255.255.0.0 dan menambahkan alamat IP 127.1.1.1 ke antarmuka jaringan mereka. Anda dapat melihat balasan ICMP kembali. Perhatikan bahwa router mungkin tidak bermain dengan baik.

Pierre Carrier
sumber