Interface yang kita kenali di chapter sebelumnya belum bisa berbuat banyak sebelum alamat IP menempel padanya dan kernel tahu ke mana paket harus dikirim. Dua pekerjaan itu dikerjakan oleh satu perintah: ip. Pada Chapter ini kita pakai ip untuk memeriksa address dan routing table, memahami baris default gateway, dan melihat bagaimana kernel mencatat rute-rute khusus untuk interface lo.

iproute2: Pengganti ifconfig dan route #

Dulu, konfigurasi jaringan tersebar di banyak perintah: ifconfig untuk address, route untuk rute, netstat untuk socket. Ketiganya berasal dari paket net-tools yang pengembangannya membeku. Linux modern memakai iproute2 — satu perintah ip dengan subcommand per objek (link, addr, route), ditambah ss yang menggantikan netstat. Kebiasaan lama masih terdengar di forum, tetapi dokumentasi modern selalu menunjuk ip.

Membaca Address dengan ip addr #

Subcommand addr menampilkan alamat yang menempel pada tiap interface. Kita periksa lagi interface yang pasti identik di semua mesin:

bash
ip addr show dev lo

Output yang Dihasilkan:

text
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever

Bagian penting dari keluaran tersebut:

  1. Dua baris pertama — identitas interface, sama seperti ip link: index, nama, flag, MTU, lalu MAC address.
  2. inet 127.0.0.1/8 scope host lo — alamat IPv4 dengan prefix /8; scope host menyatakan alamat ini hanya berlaku di dalam mesin sendiri.
  3. valid_lft forever preferred_lft forever — masa berlaku alamat; forever menandakan alamat statis. Alamat hasil DHCP punya nilai sewa yang menurun — kita akan jumpai lagi di Chapter DHCP.
  4. inet6 ::1/128 — pasangan IPv6 milik loopback, lengkap dengan masa berlaku yang juga kekal.

Untuk sekilas cepat, opsi -br meringkas address menjadi satu baris per interface:

bash
ip -br addr show lo

Output yang Dihasilkan:

text
lo               UNKNOWN        127.0.0.1/8 ::1/128 

Tiga kolomnya: nama interface, state, lalu alamat IPv4 dan IPv6 berdampingan.

Menambah dan Menghapus Address #

Perintah ip juga bisa mengubah konfigurasi, tetapi dua subcommand berikut membutuhkan hak root:

bash
ip addr add 192.0.2.10/24 dev eth0
ip addr del 192.0.2.10/24 dev eth0

Subcommand pertama menempelkan alamat 192.0.2.10/24 pada interface eth0; kernel langsung mengumumkannya ke jaringan lokal tanpa perlu restart. Subcommand kedua melepasnya kembali. Perubahan seperti ini bersifat sementara — hilang saat reboot — karena sistem produksi menyimpan konfigurasi jaringan di tempat lain: NetworkManager di desktop, atau file seperti /etc/network/interfaces di server Debian.

Routing Table dan Default Gateway #

Routing table adalah peta yang dibaca kernel setiap kali paket hendak dikirim: kernel mencocokkan alamat tujuan dengan daftar network di tabel, lalu memilih rute yang paling spesifik (longest prefix match). Baris default adalah jaring tangkapan semuanya — tujuan yang tidak cocok dengan rute mana pun dikirim ke gateway di alamat setelah kata via. Berikut contoh tampilan ip route show pada server dengan satu kartu Ethernet:

text
default via 192.0.2.1 dev eth0 metric 100
192.0.2.0/24 dev eth0 proto kernel scope link src 192.0.2.10

Baris kedua lahir otomatis saat address dipasang: subnet 192.0.2.0/24 dianggap terjangkau langsung lewat eth0, tanpa perantara. Karena keluaran ip route berbeda di tiap mesin, kita latih membacanya memakai file salinan:

bash
printf 'default via 192.0.2.1 dev eth0 metric 100\n192.0.2.0/24 dev eth0 proto kernel scope link src 192.0.2.10\n' > rute.txt
awk '$1 == "default" {print $3}' rute.txt

Output yang Dihasilkan:

text
192.0.2.1

Bedah barisnya:

  1. Baris 1 (printf ... > rute.txt): file rute.txt diisi dua baris tipikal routing table dengan alamat contoh dari blok dokumentasi.
  2. Baris 2 (awk '$1 == "default" {print $3}'): awk memilih baris yang kolom pertamanya default, lalu mencetak kolom ketiganya — alamat gateway 192.0.2.1. Pola seperti ini berguna saat skrip perlu mengetahui gateway tanpa mem-parsing manual.

Tabel local Milik Interface lo #

Kernel menyimpan rute loopback di tabel khusus bernama local. Tabel ini dibangun otomatis ketika interface mendapat alamat:

bash
ip route show table local dev lo

Output yang Dihasilkan:

text
broadcast 127.0.0.0 proto kernel scope link src 127.0.0.1 
local 127.0.0.0/8 proto kernel scope host src 127.0.0.1 
local 127.0.0.1 proto kernel scope host src 127.0.0.1 
broadcast 127.255.255.255 proto kernel scope link src 127.0.0.1 

Empat rute tersebut mencakup dua jenis: baris local membuat kernel menerima paket yang ditujukan ke 127.0.0.0/8 dan 127.0.0.1, sedangkan baris broadcast mengurus pengiriman ke alamat broadcast subnet loopback. Tidak satu pun ditulis oleh administrator — semuanya konsekuensi alamat yang menempel pada lo.

Address dan rute kini terbaca. Satu kekurangan tetap ada: manusia tidak menghafal angka, dan di situlah DNS bekerja — menerjemahkan nama domain menjadi IP. Itu materi Chapter DNS .

Referensi lanjut: halaman manual ip(8) untuk rujukan lengkap subcommand ip, dan wiki Arch tentang routing untuk contoh kasus pengaturan rute.