Untuk apa tabel routing lokal digunakan?

5

Saya mencoba memahami apa itu tabel routing lokal.

Jika saya menambahkan alamat acak di dalamnya dengan perintah berikut:

sudo ip route add to local <any-ip-address> dev <network interface>

Sekarang saya bisa ping alamat ini, tetapi tidak ada antarmuka yang terdaftar oleh ifconfig menggunakan alamat ini.

Contoh:

$ ping 192.168.22.22 -w 1
PING 192.168.22.22 (192.168.22.22) 56(84) bytes of data.

--- 192.168.22.22 ping statistics ---
1 packets transmitted, 0 received, 100% packet loss, time 0ms

$ sudo ip route add to local 192.168.22.22 dev wlp2s0
$ ping 192.168.22.22 -w 1
PING 192.168.22.22 (192.168.22.22) 56(84) bytes of data.
64 bytes from 192.168.22.22: icmp_seq=1 ttl=64 time=0.018 ms
64 bytes from 192.168.22.22: icmp_seq=2 ttl=64 time=0.015 ms

--- 192.168.22.22 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.015/0.016/0.018/0.004 ms

Rasanya berfungsi sebagai loopback, tetapi dari ifconfig, antarmuka lo masih hanya memiliki alamat 127.0.0.1. Jika saya memeriksa tabel ini, ip route ls table localsaya melihat yang berikut:

$ ip route ls table local
broadcast 127.0.0.0 dev lo  proto kernel  scope link  src 127.0.0.1
local 127.0.0.0/8 dev lo  proto kernel  scope host  src 127.0.0.1
local 127.0.0.1 dev lo  proto kernel  scope host  src 127.0.0.1
broadcast 127.255.255.255 dev lo  proto kernel  scope link  src 127.0.0.1
broadcast 192.168.0.0 dev wlp2s0  proto kernel  scope link  src 192.168.0.13
local 192.168.0.13 dev wlp2s0  proto kernel  scope host  src 192.168.0.13
broadcast 192.168.0.255 dev wlp2s0  proto kernel  scope link  src 192.168.0.13
local 192.168.22.22 dev wlp2s0  scope host
broadcast 192.168.122.0 dev virbr0  proto kernel  scope link  src 192.168.122.1
local 192.168.122.1 dev virbr0  proto kernel  scope host  src 192.168.122.1
broadcast 192.168.122.255 dev virbr0  proto kernel  scope link  src 192.168.122.1

Jadi apa tabel lokal dan skenario penyihir yang harus saya gunakan?

Saya membaca di suatu tempat bahwa itu untuk siaran dan alamat yang dihosting oleh mesin lokal tapi saya tidak mengerti mengapa kita perlu tabel khusus untuk itu dan kapan saya harus menambahkan entri ke tabel ini.

Terima kasih

Lilás
sumber

Jawaban:

7

Pertama-tama karena beberapa tersedia di info internet menjelaskan " Tabel lokal adalah tabel routing khusus yang dikelola oleh kernel ".

Jika Anda merasa sangat berani hari ini, Anda bahkan bisa mendapatkan beberapa informasi lokal , berikut caranya:

man ip- karena itu adalah perintah yang telah Anda coba-coba, masuk akal untuk mengharapkan manualnya harus memiliki beberapa petunjuk tentang masalah tersebut. Anda harus mengamati dengan jelas sekarang ada yang disebut bagian LIHAT JUGA . Mari kita perhatikan dengan seksama - antara lain tanpa malu-malu menyebutkan 2 kandidat yang mungkin untuk penyelidikan lebih lanjut dalam hal:

  1. ip-route(8)
  2. ip-rule(8)

Semua dalam semua yang kita miliki sekarang agak:

man 8 ip-route:

local- tujuan ditetapkan untuk tuan rumah ini. Paket-paket diulang kembali dan dikirim secara lokal.

...

Sebenarnya, satu meja lain selalu ada, yang tidak terlihat tetapi lebih penting. Ini adalah localtabel ( ID 255). Tabel ini terdiri dari rute untuk alamat lokal dan broadcast. Kernel memelihara tabel ini secara otomatis dan administrator biasanya tidak perlu memodifikasinya atau bahkan melihatnya.

man 8 ip-rule:

Pada saat startup kernel mengkonfigurasi RPDB default yang terdiri dari tiga aturan:

  1. Prioritas: 0, Pemilih: cocokkan apa pun, Tindakan: tabel perutean pencarian local( ID 255). The localtabel adalah tabel routing khusus yang berisi rute kontrol prioritas tinggi untuk alamat lokal dan siaran.

Saya pribadi merasa puas dengan info yang dimasukkan beberapa penulis ke dalam manual yang dikutip tetapi jika Anda masih lapar saya kira sekarang Anda tahu cara memancing.

poige
sumber
Terima kasih, saya juga bertanya-tanya dalam skenario kasus penggunaan mana tabel lokal dapat digunakan oleh aplikasi
Lilás
"Kernel mempertahankan tabel ini secara otomatis dan administrator biasanya tidak perlu memodifikasinya atau bahkan melihatnya." ©
poige
1

Tabel perutean lokal memungkinkan sistem untuk merutekan ke antarmuka yang sesuai untuk mencapai alamat. Rute dipilih menggunakan rute (subnet terkecil) yang paling spesifik. Namun, Anda menguji rute yang ditangani oleh alamat loopback.

Ping merespons pada tingkat antarmuka, dan tidak memerlukan proses mendengarkan. ketika melakukan ping alamat yang ditugaskan ke antarmuka di host, jaringan sirkuit pendek yang merutekan ke antarmuka loop-kembali. Routing ke antarmuka loopback mencegah server jauh dari mengintai lalu lintas. Saat Anda telah menetapkan rute ke interace lokal, ping akan ditanggapi oleh antarmuka loopback.

Biasanya Anda tabel routing akan memiliki rute berikut:

  • default (0.0.0.0/0): Rute ke router yang akan merutekan traffic ke alamat yang tidak dikenal. Ini adalah rute yang digunakan untuk terhubung ke internet. Ini harus merutekan langsung ke router, meskipun ada cara untuk merutekan secara tidak langsung dengan menentukan router perantara.

  • 192.0.2.0/24: (Opsional, hanya berguna dengan banyak antarmuka) Di mana 192.0.2.0 adalah alamat jaringan untuk subnet jarak jauh, dan / 24 adalah ukuran dari nework. Sekali lagi ini akan merutekan ke router. Ini hanya diperlukan jika rute diarahkan oleh router selain dari router untuk subnet terlampir

  • 192.0.2.0/24: (Standar). nilai-nilai seperti yang dijelaskan di atas) Menyediakan rute ke jaringan yang terpasang. Alamat IP antarmuka harus dalam subnet. Rute ini ke router yang melayani subnet. Namun, koneksi ke host lain di subnet akan dirutekan langsung kecuali diganti dengan rute yang lebih spesifik.

  • 127.0.0.1/8: (Standar). Ini adalah alamat loopback yang terlampir pada loopback psuedo-interface. Alamat-alamat ini seharusnya tidak pernah terlihat di antarmuka nyata.

Ada rute khusus lainnya seperti point-to-point dan blackhole. Ini jarang digunakan.

BillThor
sumber
Anda benar-benar kehilangan intinya di sini
poige
@poige Saya sudah mengklarifikasi paragraf pertama, yang mengarah ke paragraf kedua. Penanya tidak menguji tabel routing lokal.
BillThor
masih salah. Sepertinya Anda tidak terbiasa dengan perutean Linux
poige
@poige Saya sangat akrab dengan perutean dan telah menggunakannya untuk melakukan sejumlah trik. Penanya melakukan ping antarmuka loopback karena entri routing-nya.
BillThor
1
Terima kasih atas balasan Anda. Pertanyaan saya tidak menyangkut apa itu routing atau antarmuka loopback, di Linux ada beberapa tabel routing yang telah ditentukan (lokal, utama, default, unspec, lihat linux-ip.net/html/routing-tables.html ) dan pertanyaannya merujuk ke tabel lokal di Linux, apa itu dan apa yang digunakan.
Lilás