Difference between revisions of "OS: OpenWRT Networking & Mesh"
Onnowpurbo (talk | contribs) |
Onnowpurbo (talk | contribs) |
||
| Line 11: | Line 11: | ||
* Control plane → pengisian routing table (user space daemon) | * Control plane → pengisian routing table (user space daemon) | ||
Insight penting: | Insight penting: | ||
| − | Pada OpenWRT, batas antara OS dan router hampir tidak ada—OpenWRT adalah router OS. | + | Pada OpenWRT, batas antara OS dan router hampir tidak ada—OpenWRT adalah router OS. |
| − | Routing Table di OpenWRT | + | |
| + | ==Routing Table di OpenWRT== | ||
Periksa routing table: | Periksa routing table: | ||
| − | ip route | + | ip route |
Contoh output sederhana: | Contoh output sederhana: | ||
| − | default via 192.168.1.1 dev eth0 | + | default via 192.168.1.1 dev eth0 |
| − | 192.168.1.0/24 dev eth0 proto kernel scope link | + | 192.168.1.0/24 dev eth0 proto kernel scope link |
Maknanya: | Maknanya: | ||
| − | default route → semua trafik ke luar subnet | + | * default route → semua trafik ke luar subnet |
| − | connected route → jaringan lokal langsung | + | * connected route → jaringan lokal langsung |
Routing table ini akan berubah dinamis saat OLSR atau BATMAN diaktifkan. | Routing table ini akan berubah dinamis saat OLSR atau BATMAN diaktifkan. | ||
| − | Forwarding sebagai Fungsi Kernel | + | |
| + | ==Forwarding sebagai Fungsi Kernel== | ||
Aktifkan IP forwarding: | Aktifkan IP forwarding: | ||
| − | sysctl net.ipv4.ip_forward | + | sysctl net.ipv4.ip_forward |
Jika belum aktif: | Jika belum aktif: | ||
| − | sysctl -w net.ipv4.ip_forward=1 | + | sysctl -w net.ipv4.ip_forward=1 |
Di OpenWRT, fitur ini default aktif, karena OS diasumsikan sebagai router. | Di OpenWRT, fitur ini default aktif, karena OS diasumsikan sebagai router. | ||
| − | OLSR (Optimized Link State Routing) | + | |
| − | Konsep OLSR | + | ==OLSR (Optimized Link State Routing)== |
| + | ===Konsep OLSR=== | ||
OLSR adalah proactive link-state routing protocol yang dirancang khusus untuk mobile ad-hoc network (MANET) dan mesh network. Berbeda dengan routing tradisional, setiap node secara aktif bertukar informasi topologi. | OLSR adalah proactive link-state routing protocol yang dirancang khusus untuk mobile ad-hoc network (MANET) dan mesh network. Berbeda dengan routing tradisional, setiap node secara aktif bertukar informasi topologi. | ||
| + | |||
Ciri utama OLSR: | Ciri utama OLSR: | ||
| − | Proactive → route selalu tersedia | + | * Proactive → route selalu tersedia |
| − | Menggunakan HELLO dan TC (Topology Control) message | + | * Menggunakan HELLO dan TC (Topology Control) message |
| − | Optimasi melalui Multi-Point Relay (MPR) | + | * Optimasi melalui Multi-Point Relay (MPR) |
Makna OS: | Makna OS: | ||
| − | OLSR berjalan di user-space, tetapi mengendalikan routing table kernel secara langsung. | + | OLSR berjalan di user-space, tetapi mengendalikan routing table kernel secara langsung. |
| − | |||
| − | opkg update | + | ===Instalasi OLSR di OpenWRT=== |
| − | opkg install olsrd olsrd-mod-arprefresh | + | opkg update |
| + | opkg install olsrd olsrd-mod-arprefresh | ||
Aktifkan interface mesh: | Aktifkan interface mesh: | ||
| − | uci set olsrd.@Interface[0].interface='lan' | + | uci set olsrd.@Interface[0].interface='lan' |
| − | uci commit olsrd | + | uci commit olsrd |
| − | /etc/init.d/olsrd enable | + | /etc/init.d/olsrd enable |
| − | /etc/init.d/olsrd start | + | /etc/init.d/olsrd start |
| − | Observasi Routing OLSR | + | ===Observasi Routing OLSR=== |
Lihat neighbor: | Lihat neighbor: | ||
| − | ip route | + | ip route |
Atau melalui plugin HTTP (opsional): | Atau melalui plugin HTTP (opsional): | ||
| − | opkg install olsrd-mod-httpinfo | + | opkg install olsrd-mod-httpinfo |
Praktik akademik: | Praktik akademik: | ||
| − | Matikan satu node VM dan amati konvergensi ulang routing table dalam hitungan detik. | + | Matikan satu node VM dan amati konvergensi ulang routing table dalam hitungan detik. |
| − | BATMAN-adv | + | |
| − | Konsep BATMAN-adv | + | ==BATMAN-adv== |
| + | ===Konsep BATMAN-adv=== | ||
BATMAN-adv (Better Approach To Mobile Adhoc Networking – advanced) bekerja di layer 2, bukan layer 3 seperti OLSR. Ia menjadikan seluruh mesh seolah-olah satu switch virtual raksasa. | BATMAN-adv (Better Approach To Mobile Adhoc Networking – advanced) bekerja di layer 2, bukan layer 3 seperti OLSR. Ia menjadikan seluruh mesh seolah-olah satu switch virtual raksasa. | ||
| + | |||
Karakteristik utama: | Karakteristik utama: | ||
| − | Bekerja di kernel space | + | * Bekerja di kernel space |
| − | Routing tersembunyi dari IP layer | + | * Routing tersembunyi dari IP layer |
| − | Sangat cocok untuk WiFi mesh & IoT | + | * Sangat cocok untuk WiFi mesh & IoT |
Perbedaan filosofis: | Perbedaan filosofis: | ||
| − | OLSR berpikir seperti router, BATMAN berpikir seperti bridge. | + | OLSR berpikir seperti router, BATMAN berpikir seperti bridge. |
| − | Instalasi BATMAN-adv | + | |
| − | opkg update | + | ===Instalasi BATMAN-adv=== |
| − | opkg install kmod-batman-adv batctl | + | opkg update |
| + | opkg install kmod-batman-adv batctl | ||
Load kernel module: | Load kernel module: | ||
| − | modprobe batman-adv | + | modprobe batman-adv |
Tambahkan interface: | Tambahkan interface: | ||
| − | batctl if add eth0 | + | batctl if add eth0 |
| − | ip link set up dev bat0 | + | ip link set up dev bat0 |
Cek status: | Cek status: | ||
| − | batctl o | + | batctl o |
| − | Implikasi OS-Level | + | ===Implikasi OS-Level=== |
Karena BATMAN-adv berjalan di kernel: | Karena BATMAN-adv berjalan di kernel: | ||
| − | Latency rendah | + | * Latency rendah |
| − | Overhead kecil | + | * Overhead kecil |
| − | Lebih robust pada node bergerak | + | * Lebih robust pada node bergerak |
Ini adalah contoh nyata fungsi OS berpindah dari user-space ke kernel-space demi performa. | Ini adalah contoh nyata fungsi OS berpindah dari user-space ke kernel-space demi performa. | ||
| − | OLSR vs BATMAN vs Routing Tradisional | + | |
| + | ==OLSR vs BATMAN vs Routing Tradisional== | ||
Perbandingan Konseptual | Perbandingan Konseptual | ||
Aspek | Aspek | ||
| Line 108: | Line 116: | ||
Kernel module | Kernel module | ||
| − | Kapan Menggunakan Apa? | + | ==Kapan Menggunakan Apa?== |
Routing tradisional | Routing tradisional | ||
→ Jaringan statis, enterprise, ISP | → Jaringan statis, enterprise, ISP | ||
| Line 116: | Line 124: | ||
→ WiFi mesh, IoT, komunitas jaringan | → WiFi mesh, IoT, komunitas jaringan | ||
Insight penting untuk mahasiswa: | Insight penting untuk mahasiswa: | ||
| − | Tidak ada solusi terbaik—yang ada adalah solusi yang sesuai konteks sistem operasi dan jaringan. | + | Tidak ada solusi terbaik—yang ada adalah solusi yang sesuai konteks sistem operasi dan jaringan. |
| − | Refleksi Akademik (OBE-Oriented) | + | ==Refleksi Akademik (OBE-Oriented)== |
Setelah menyelesaikan bab ini, mahasiswa tidak hanya tahu protokol, tetapi mampu: | Setelah menyelesaikan bab ini, mahasiswa tidak hanya tahu protokol, tetapi mampu: | ||
| − | Menganalisis routing sebagai fungsi kernel | + | * Menganalisis routing sebagai fungsi kernel |
| − | Membangun mesh network nyata di VM | + | * Membangun mesh network nyata di VM |
| − | Membedakan desain OS-level vs network-level | + | * Membedakan desain OS-level vs network-level |
| − | Berpikir sebagai network OS engineer | + | * Berpikir sebagai network OS engineer |
Ini adalah tahap di mana sistem operasi tidak lagi berdiri sendiri, melainkan menjadi bagian dari distributed system. | Ini adalah tahap di mana sistem operasi tidak lagi berdiri sendiri, melainkan menjadi bagian dari distributed system. | ||
| − | “Di OpenWRT, jaringan bukan fitur. | + | “Di OpenWRT, jaringan bukan fitur. |
| − | Jaringan adalah identitas sistem operasi itu sendiri.” | + | Jaringan adalah identitas sistem operasi itu sendiri.” |
Revision as of 08:43, 15 February 2026
Bab ini merupakan puncak dari transisi sistem operasi general-purpose menuju network operating system. Jika pada Ubuntu Server mahasiswa belajar bahwa networking adalah salah satu subsistem kernel, maka pada OpenWRT mahasiswa akan menyadari bahwa jaringan adalah jantung sistem operasi itu sendiri. Seluruh desain OpenWRT—mulai dari filesystem read-only, konfigurasi berbasis teks, hingga pemilihan paket—dioptimalkan untuk routing, forwarding, dan mesh networking.
OpenWRT menjadi studi kasus ideal untuk memahami bagaimana kernel networking stack, routing protocol, dan distributed system bekerja secara nyata di level OS, bukan sekadar teori.
Routing Fundamentals
Konsep Dasar Routing dalam Sistem Operasi
Routing adalah proses menentukan jalur terbaik untuk meneruskan paket dari satu network interface ke tujuan akhirnya. Pada Linux (termasuk OpenWRT), routing sepenuhnya dikendalikan oleh kernel networking stack, sedangkan user-space hanya menyediakan control plane.
Secara konseptual, routing terdiri dari:
- Data plane → forwarding paket (kernel space)
- Control plane → pengisian routing table (user space daemon)
Insight penting:
Pada OpenWRT, batas antara OS dan router hampir tidak ada—OpenWRT adalah router OS.
Routing Table di OpenWRT
Periksa routing table:
ip route
Contoh output sederhana:
default via 192.168.1.1 dev eth0 192.168.1.0/24 dev eth0 proto kernel scope link
Maknanya:
- default route → semua trafik ke luar subnet
- connected route → jaringan lokal langsung
Routing table ini akan berubah dinamis saat OLSR atau BATMAN diaktifkan.
Forwarding sebagai Fungsi Kernel
Aktifkan IP forwarding:
sysctl net.ipv4.ip_forward
Jika belum aktif:
sysctl -w net.ipv4.ip_forward=1
Di OpenWRT, fitur ini default aktif, karena OS diasumsikan sebagai router.
OLSR (Optimized Link State Routing)
Konsep OLSR
OLSR adalah proactive link-state routing protocol yang dirancang khusus untuk mobile ad-hoc network (MANET) dan mesh network. Berbeda dengan routing tradisional, setiap node secara aktif bertukar informasi topologi.
Ciri utama OLSR:
- Proactive → route selalu tersedia
- Menggunakan HELLO dan TC (Topology Control) message
- Optimasi melalui Multi-Point Relay (MPR)
Makna OS:
OLSR berjalan di user-space, tetapi mengendalikan routing table kernel secara langsung.
Instalasi OLSR di OpenWRT
opkg update opkg install olsrd olsrd-mod-arprefresh
Aktifkan interface mesh:
uci set olsrd.@Interface[0].interface='lan' uci commit olsrd /etc/init.d/olsrd enable /etc/init.d/olsrd start
Observasi Routing OLSR
Lihat neighbor:
ip route
Atau melalui plugin HTTP (opsional):
opkg install olsrd-mod-httpinfo
Praktik akademik:
Matikan satu node VM dan amati konvergensi ulang routing table dalam hitungan detik.
BATMAN-adv
Konsep BATMAN-adv
BATMAN-adv (Better Approach To Mobile Adhoc Networking – advanced) bekerja di layer 2, bukan layer 3 seperti OLSR. Ia menjadikan seluruh mesh seolah-olah satu switch virtual raksasa.
Karakteristik utama:
- Bekerja di kernel space
- Routing tersembunyi dari IP layer
- Sangat cocok untuk WiFi mesh & IoT
Perbedaan filosofis:
OLSR berpikir seperti router, BATMAN berpikir seperti bridge.
Instalasi BATMAN-adv
opkg update opkg install kmod-batman-adv batctl
Load kernel module:
modprobe batman-adv
Tambahkan interface:
batctl if add eth0 ip link set up dev bat0
Cek status:
batctl o
Implikasi OS-Level
Karena BATMAN-adv berjalan di kernel:
- Latency rendah
- Overhead kecil
- Lebih robust pada node bergerak
Ini adalah contoh nyata fungsi OS berpindah dari user-space ke kernel-space demi performa.
OLSR vs BATMAN vs Routing Tradisional
Perbandingan Konseptual Aspek Routing Tradisional OLSR BATMAN-adv Layer OSI L3 L3 L2 Dinamis ❌ ✅ ✅ Cocok untuk mesh ❌ ✅ Sangat cocok Kompleksitas Rendah Menengah Tinggi (kernel) Lokasi eksekusi Kernel + static config User-space daemon Kernel module
Kapan Menggunakan Apa?
Routing tradisional → Jaringan statis, enterprise, ISP OLSR → Mesh akademik, eksperimen routing, MANET BATMAN-adv → WiFi mesh, IoT, komunitas jaringan Insight penting untuk mahasiswa:
Tidak ada solusi terbaik—yang ada adalah solusi yang sesuai konteks sistem operasi dan jaringan.
Refleksi Akademik (OBE-Oriented)
Setelah menyelesaikan bab ini, mahasiswa tidak hanya tahu protokol, tetapi mampu:
- Menganalisis routing sebagai fungsi kernel
- Membangun mesh network nyata di VM
- Membedakan desain OS-level vs network-level
- Berpikir sebagai network OS engineer
Ini adalah tahap di mana sistem operasi tidak lagi berdiri sendiri, melainkan menjadi bagian dari distributed system.
“Di OpenWRT, jaringan bukan fitur. Jaringan adalah identitas sistem operasi itu sendiri.”