Saya yakin jawaban bahwa addr-type LOCAL berarti loopback salah, karena ini hanya sebagian jawaban dan sangat menyesatkan.LOCAL berarti SETIAP IP yang ditetapkan pada salah satu antarmuka host, termasuk loopback. Jika Anda mengatakan bahwa LOCAL hanyalah 127.0.0.0/8 (seperti yang dinyatakan sasanet), maka Anda akan membatasinya ke antarmuka loopback, yang jelas salah.
Selain itu, IP bahkan dapat dirutekan dan bersifat publik. Untuk host itu tidak relevan, karena dari sudut pandangnya IP akan merujuk ke host itu sendiri. Jika Anda meringkuk atau melakukan ping ke ip publik yang ditetapkan pada salah satu antarmukanya, itu jelas tidak akan mengirim paket keluar, itu akan merutekannya secara lokal.contoh:
alamat ip menunjukkan dev eth0:
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state UP group default qlen 1000
link/ether 0a:e7:8b:89:d5:f4 brd ff:ff:ff:ff:ff:ff
inet 172.31.20.254/20 brd 172.31.31.255 scope global dynamic eth0
valid_lft 3110sec preferred_lft 3110sec
ip route tampilkan tabel lokal:
local 172.31.20.254 dev eth0 proto kernel scope host src 172.31.20.254
(seperti yang sudah disebutkan, jelas tidak relevan apakah ip itu pribadi atau publik, selama itu ditetapkan ke antarmuka jaringan)
Penjelasan yang cukup bagus di sini:http://security.maruhn.com/iptables-tutorial/x6330.html
Diskusi lain tentang itu:http://www.linuxquestions.org/questions/linux-networking-3/wtf-addrtype-in-iptables-manpage-746659/
Terminologi "rute lokal" berarti paket akan dikirimkan "secara lokal" ke host Anda, karena tujuannya ditetapkan ke salah satu antarmuka host Anda. Itu tidak hanya berarti localhost
, seperti pada alamat loopback (atau 169.254/16
seperti pada alamat "link-local").
Linux menggunakan protokol Netlink untuk mengirim pesan antara ruang kernel dan ruang pengguna—salah satu keluarga Netlink di dalamnya adalah NETLINK_ROUTE
, yang dapat digunakan untuk menerima pembaruan perutean, mengubah alamat antarmuka, dll . Misalnya, perintah ip-route dari iproute2 menggunakan ini.
Melihat addrtype
kode sumber iptables, Anda akan melihat referensi ke linux/rtnetlink.h
, yang mendefinisikan RTN_LOCAL
sebagai jenis pesan. rtnetlink(7)
halaman manual menjelaskan RTN_LOCAL
sebagai:
rtm_type Route type
───────────────────────────────────────────────────────────
RTN_LOCAL a local interface route
Semua ini terasa sangat jelas saat Anda membacanya, dan beberapa referensi terbaik yang dapat saya temukan adalah berbagai sumber Internet, jadi dapat dimengerti mengapa ada kebingungan.