DHCP dari Chapter sebelumnya menjelaskan bagaimana alamat diperoleh, tetapi masih menyisakan pertanyaan: siapa yang memicu DORA saat kabel tercolok, siapa yang menyimpan password wifi agar tidak diketik ulang setiap reboot, dan siapa yang memilih profil kantor daripada profil rumah? Di distro desktop, jawabannya satu: NetworkManager. Chapter ini membongkar arsitekturnya — daemon, applet, dan baris perintah — lalu melihat bagaimana konsep connection dan device dipisah agar semua itu bisa diotomasi.
Satu Daemon, Banyak Antarmuka #
NetworkManager berjalan sebagai daemon di background lewat service NetworkManager.service. Daemon inilah yang benar-benar bekerja: mendeteksi kartu jaringan baru, menjalankan klien DHCP, dan menerapkan alamat ke interface. Semua antarmuka yang kita lihat hanyalah pintu yang berbicara ke daemon lewat D-Bus — mekanisme komunikasi antarproses di desktop Linux.
Tiga pintu yang paling sering kita jumpai:
| Antarmuka | Bentuk | Kapan dipakai |
|---|---|---|
nm-applet | ikon di system tray | pengguna desktop sehari-hari |
nmcli | perintah terminal | skrip, server, sesi SSH |
nmtui | tampilan teks ber-menu | terminal tanpa desktop |
Dari terminal, gambaran umum daemon paling cepat diperoleh lewat nmcli general status. Berikut contoh tampilan tipikal di laptop yang tersambung:
STATE CONNECTIVITY WIFI-HW WIFI WWAN-HW WWAN RUNNING
connected full enabled enabled enabled enabled runningKolom STATE menunjukkan mesin punya koneksi aktif, CONNECTIVITY full berarti akses internet penuh sesuai hasil pemeriksaan berkala daemon, dan WIFI enabled berarti radio wifi tidak diblokir. Kita akan membedah nmcli satu per satu perintahnya pada Chapter nmcli
; fokus kita sekarang adalah bagaimana daemon menyimpan dunianya.
Connection dan Device: Dua Konsep Berbeda #
Kekuatan NetworkManager terletak pada satu pemisahan yang perlu dipegang sejak awal. Device adalah kartu jaringannya — eth0, wlan0, atau enp3s0 — perangkat keras yang bisa kita lihat dengan ip link. Connection adalah profil konfigurasi tersimpan: metode alamat, gateway, kredensial wifi, prioritas. Device diaktifkan dengan memakai salah satu connection, dan satu connection penuh berisi segalanya yang dibutuhkan device untuk tersambung.
Pemisahan ini menjelaskan pengalaman sehari-hari di laptop: plugging kabel di kantor memakai profil kantor, dan wifi rumah memakai profil rumah — keduanya profil berbeda yang tinggal dipilih. Ketika USB dongle ethernet lama rusak dan diganti merek lain, profil lama tinggal diarahkan ke device baru tanpa mengatur ulang apa pun. Karena connection hanyalah data tersimpan, kita bisa mengamatinya sebagai file:
mkdir -p system-connections
printf '[connection]\nid=rumah\ntype=ethernet\nautoconnect=true\n\n[ipv4]\nmethod=auto\n' > system-connections/rumah.nmconnection
printf '[connection]\nid=kantor\ntype=ethernet\nautoconnect=true\n\n[ipv4]\nmethod=manual\naddress1=192.0.2.20/24,192.0.2.1\ndns=192.0.2.53;\n' > system-connections/kantor.nmconnection
ls -1 system-connectionsOutput yang Dihasilkan:
kantor.nmconnection
rumah.nmconnectionDua profil tadi muncul sebagai dua file. Pada sistem nyata, keduanya hidup di /etc/NetworkManager/system-connections/, dan daftar yang muncul di applet atau di keluaran nmcli connection show persis membaca tempat itu.
Profil sebagai Keyfile di Disk #
Formatnya disebut keyfile — format INI sederhana yang mudah dibaca manusia. Kita bedah profil kantor di atas yang memakai alamat statis:
mkdir -p system-connections
printf '[connection]\nid=kantor\ntype=ethernet\nautoconnect=true\n\n[ipv4]\nmethod=manual\naddress1=192.0.2.20/24,192.0.2.1\ndns=192.0.2.53;\n' > system-connections/kantor.nmconnection
cat system-connections/kantor.nmconnectionOutput yang Dihasilkan:
[connection]
id=kantor
type=ethernet
autoconnect=true
[ipv4]
method=manual
address1=192.0.2.20/24,192.0.2.1
dns=192.0.2.53;Isi file tersebut dapat dibaca per bagian:
[connection]mencatat identitas profil:idadalah nama yang tampil di applet,type=ethernetmenentukan jenis koneksi, daninterface-namebiasanya menambatkannya ke device tertentu.autoconnect=truememerintahkan daemon mengaktifkan profil ini begitu device yang cocok muncul — kabel tercolok atau jaringan wifi terdeteksi.[ipv4]mengatur lapisan alamat:method=manualberarti statis,address1memuat pasanganalamat/prefix,gateway, dandnsadalah daftar server DNS yang ditulis dengan tanda titik koma di akhir.
Pada sistem nyata, file seperti ini hanya dapat dibaca oleh root dan berisi password wifi dalam bentuk asli — NetworkManager sengaja membatasi izin bacanya. Seluruh perintah nmcli connection add dan nmcli connection modify pada akhirnya hanyalah cara nyaman menulis baris-baris file ini; mengedit keyfile secara langsung pun sah, asal diikuti perintah nmcli connection reload supaya daemon membacanya ulang.
Satu Pengelola per Device #
NetworkManager bukan satu-satunya cara Linux mengatur jaringan: ada ifupdown klasik Debian lewat /etc/network/interfaces, ada systemd-networkd untuk server, dan ada skrip manual. Aturan praktisnya satu: satu device hanya boleh dikelola satu sistem. Bila dua sistem mengurus interface yang sama, keduanya akan bergantian menambah dan melepas alamat, dan koneksi tampak hidup-mati sendiri.
NetworkManager menyelesaikan soal ini dengan konsep unmanaged: device yang sudah diklaim alat lain tidak disentuh. Di Debian, interface yang tercantum di /etc/network/interfaces otomatis dianggap unmanaged; di tempat lain, daftar unmanaged diatur lewat berkas konfigurasi unmanaged-devices. Gejala klasiknya mudah dikenali — wifi atau ethernet tidak pernah muncul di applet padahal ip link menampilkan kartunya sehat.
Dengan arsitektur, profil, dan batas wewenang yang kini jelas, kita siap mengoperasikan semuanya dari terminal. Chapter berikutnya menyusuri nmcli perintah demi perintah: memeriksa device, membuat profil, mengatur IP statis, sampai menyambung wifi dalam satu baris.
Referensi lanjut: wiki Arch tentang NetworkManager untuk detail konfigurasi dan backend, serta wiki Debian NetworkManager untuk integrasi khas Debian.