Tabel perutean digunakan dalam urutan paling spesifik ke paling tidak spesifik.
Namun di linux itu sedikit lebih rumit dari yang Anda harapkan. Pertama ada lebih dari satu tabel routing, dan kapan tabel routing yang digunakan tergantung pada sejumlah aturan.
Untuk mendapatkan gambaran lengkap:
$ ip rule show
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
$ ip route show 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 eth0 proto kernel scope link src 192.168.1.27
local 192.168.1.27 dev eth0 proto kernel scope host src 192.168.1.27
broadcast 192.168.1.255 dev eth0 proto kernel scope link src 192.168.1.27
$ ip route show table main
default via 192.168.1.254 dev eth0
192.168.0.0/23 dev eth0 proto kernel scope link src 192.168.1.27
$ ip route show table default
$
The local
tabel routing table khusus yang berisi rute kontrol prioritas tinggi untuk alamat lokal dan siaran.
The main
tabel routing table yang normal mengandung semua rute non-kebijakan. Ini juga merupakan tabel yang bisa Anda lihat jika Anda hanya menjalankan ip route show
(atau ip ro
singkatnya). Saya sarankan tidak menggunakan route
perintah lama lagi, karena hanya menampilkan main
tabel dan format outputnya agak kuno.
Tabel default
kosong dan dicadangkan untuk pemrosesan pasca jika aturan default sebelumnya tidak memilih paket.
Anda bisa menambahkan tabel Anda sendiri dan menambahkan aturan untuk menggunakannya dalam kasus tertentu. Salah satu contoh adalah jika Anda memiliki dua koneksi internet, tetapi satu host atau subnet harus selalu dialihkan melalui satu koneksi internet tertentu.
Buku Routing Kebijakan dengan Linux menjelaskan semua ini dengan sangat rinci.