Difference between revisions of "OS: OpenWRT Networking & Mesh"

From OnnoWiki
Jump to navigation Jump to search
 
(2 intermediate revisions by the same user not shown)
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.
Instalasi OLSR di OpenWRT
 
  
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
 
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?
+
==OLSR vs BATMAN vs Routing Tradisional==
Routing tradisional
+
 
→ Jaringan statis, enterprise, ISP
+
{| class="wikitable" style="margin:auto"
OLSR
+
|+ Perbandingan Konseptual
→ Mesh akademik, eksperimen routing, MANET
+
|-
BATMAN-adv
+
! Aspek !! Routing Tradisional !! OLSR !! BATMAN-adv
→ WiFi mesh, IoT, komunitas jaringan
+
|-
 +
| 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:
 
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.”
  
  

Latest revision as of 08:48, 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.”


Pranala Menarik