
GenieACS
Panduan Implementasi untuk Jaringan RTRWNET
1. Pengenalan GenieACS & TR-069
Apa itu GenieACS?
GenieACS adalah server Auto Configuration Server (ACS) berbasis TR-069 yang digunakan untuk manajemen perangkat jaringan seperti ONT, modem, dan router secara otomatis dan terpusat. Protokol TR-069 (CWMP - CPE WAN Management Protocol) memungkinkan komunikasi dua arah antara ACS dan perangkat Customer Premises Equipment (CPE).
Keuntungan Menggunakan GenieACS
- Zero-Touch Provisioning: Perangkat langsung terkonfigurasi otomatis
- Centralized Management: Kelola ribuan perangkat dari satu tempat
- Cost Effective: Solusi open-source tanpa biaya lisensi
- Multi-Vendor Support: Mendukung berbagai merek perangkat
- Real-time Monitoring: Pantau status perangkat secara langsung
Manfaat untuk ISP & RT/RW Net
Dengan GenieACS, ISP atau admin jaringan dapat melakukan:
- Provisioning otomatis perangkat baru
- Monitoring real-time status perangkat
- Update firmware dan konfigurasi jarak jauh
- Reset dan reboot perangkat tanpa kunjungan lapangan
- Troubleshooting dan diagnostik remote
Fitur Utama GenieACS
Fitur | Deskripsi |
---|---|
Provisioning Otomatis | Konfigurasi perangkat tanpa intervensi manual |
Monitoring Real-time | Status online/offline, bandwidth, uptime |
Firmware Management | Update firmware secara terpusat |
Configuration Backup | Backup dan restore konfigurasi perangkat |
REST API | Integrasi dengan sistem eksternal |
Multi-tenancy | Dukungan untuk multiple ISP/operator |
2. Konsep & Arsitektur GenieACS
Komponen Utama
- genieacs-cwmp (Port: 7547): Layanan utama komunikasi TR-069 dengan perangkat CPE.
- genieacs-nbi (Port: 7557): REST API untuk integrasi dengan sistem eksternal seperti billing.
- genieacs-fs (Port: 7567): File server untuk firmware dan file konfigurasi.
- genieacs-ui (Port: 3000): Web interface untuk administrasi.
- MongoDB (Port: 27017): Penyimpanan data utama untuk informasi perangkat, log, dan konfigurasi.
Alur Komunikasi TR-069
- Device Boot: Perangkat CPE boot dan mendapat konfigurasi ACS URL.
- Initial Contact: CPE menghubungi ACS dengan pesan `Inform`.
- Authentication: ACS memverifikasi kredensial perangkat.
- Session Establishment: Sesi komunikasi TR-069 terbangun.
- Data Exchange: Pertukaran parameter dan perintah konfigurasi.
- Periodic Inform: CPE mengirim status secara berkala.
3. Persiapan Sistem & Instalasi
Spesifikasi Sistem
- Hardware: 2 vCPU, 4GB RAM, 20GB SSD (Minimum).
- Software: Ubuntu 20.04/22.04 LTS, Node.js 14+, MongoDB 4.4+.
Instalasi Step-by-Step
- Update Sistem: `sudo apt update && sudo apt upgrade -y`
- Install Node.js: Gunakan repository NodeSource untuk versi terbaru.
- Install MongoDB: Tambahkan repository resmi MongoDB dan install.
- Install GenieACS: `sudo npm install -g genieacs@1.2.13`
- Konfigurasi User & Directory: Buat user `genieacs` dan direktori `/opt/genieacs`.
4. Konfigurasi GenieACS
File Konfigurasi Utama
Buat file environment di `/opt/genieacs/genieacs.env` untuk mengatur semua variabel penting, termasuk koneksi database, port layanan, dan JWT secret.
Systemd Service Files
Buat file service di `/etc/systemd/system/` untuk setiap komponen (cwmp, nbi, fs, ui) agar GenieACS bisa berjalan sebagai layanan di latar belakang dan otomatis menyala saat server boot.
5. Menjalankan GenieACS
Start & Enable Services
sudo systemctl daemon-reload
sudo systemctl start genieacs-cwmp genieacs-nbi genieacs-fs genieacs-ui
sudo systemctl enable genieacs-cwmp genieacs-nbi genieacs-fs genieacs-ui
Verify & Monitor
Gunakan `systemctl status genieacs-*` untuk memeriksa status layanan dan `sudo journalctl -u genieacs-cwmp -f` untuk melihat log secara real-time.
6. Akses & Pengaturan Web UI
Akses Web UI melalui http://<IP-Server>:3000. Login dengan kredensial default: `admin` / `admin`. **PENTING**: Segera ubah password default melalui menu **Admin → Users**.
Menu Utama Web UI
- Devices: Daftar semua perangkat terdaftar.
- Presets: Aturan konfigurasi otomatis berdasarkan kondisi.
- Provisions: Skrip JavaScript untuk logika provisioning yang lebih kompleks.
- Virtual Parameters: Membuat parameter custom yang dihitung dari parameter lain.
- Files: Manajemen file firmware.
7. Koneksi Perangkat ke ACS
Agar perangkat dapat terhubung ke GenieACS, konfigurasikan parameter TR-069 pada perangkat CPE, baik secara manual atau otomatis melalui DHCP Option 43.
Parameter | Contoh Nilai |
---|---|
ManagementServer.URL | `http://IP:7547/` |
ManagementServer.Username | `admin` |
ManagementServer.Password | `admin` |
ManagementServer.PeriodicInformEnable | `true` |
ManagementServer.PeriodicInformInterval | `300` |
Jika perangkat tidak muncul di ACS, periksa konektivitas jaringan, konfigurasi URL, dan aturan firewall pada server.
8. Manajemen Preset & Provision
Preset
Gunakan preset untuk menerapkan konfigurasi secara otomatis saat perangkat pertama kali terhubung (`1 BOOT`) atau secara periodik (`2 PERIODIC`). Kondisikan preset berdasarkan model, versi firmware, atau tag perangkat.
Provision Scripts
Gunakan provision script untuk automasi yang lebih canggih, seperti update firmware otomatis atau pembatasan bandwidth berdasarkan tag pelanggan (misal: 'premium', 'basic').
9. Virtual Parameters
Buat parameter custom yang nilainya dihitung dari parameter lain. Ini sangat berguna untuk membuat metrik yang lebih mudah dibaca tanpa mengubah firmware perangkat.
Contoh Penggunaan
- UptimeFormatted: Mengubah detik uptime menjadi format "10d 5h 30m".
- WiFiStatusSummary: Menggabungkan status SSID dan enable/disable 2.4G & 5G menjadi satu string.
- BandwidthUsage: Mengonversi total byte terkirim/terima menjadi format GB.
- HealthScore: Memberikan skor kesehatan perangkat (0-100%) berdasarkan uptime, suhu, dan status koneksi.
10. Monitoring & Troubleshooting
Gunakan Dashboard UI untuk memantau metrik kunci seperti persentase perangkat online, waktu inform terakhir, dan jumlah tugas yang gagal. Pantau juga log sistem dan sumber daya server (CPU, memori) untuk memastikan kelancaran operasi.
Anda dapat mengonfigurasi notifikasi (alert) melalui email atau webhook dengan membuat skrip ekstensi di direktori `/opt/genieacs/ext/`.
11. Keamanan & Best Practices
- Aktifkan HTTPS/TLS dengan reverse proxy seperti Nginx untuk mengenkripsi semua komunikasi.
- Atur Firewall untuk hanya membuka port yang diperlukan.
- Gunakan Password & JWT Secret yang Kuat dan ganti kredensial default.
- Terapkan Multi-user & Role Management untuk membatasi akses teknisi.
- Rutin Update GenieACS dan dependensinya.
- Aktifkan Log Monitoring & Alert untuk mendeteksi aktivitas mencurigakan.
12. Studi Kasus RT/RW Net
GenieACS sangat efektif untuk automasi di jaringan RT/RW Net:
- Update Firmware OTA: Melakukan update firmware massal untuk berbagai merek ONT secara terjadwal.
- Manajemen Pelanggan: Otomatis membatasi kecepatan atau menonaktifkan perangkat pelanggan yang menunggak tagihan berdasarkan tag.
- Integrasi Billing: Menghubungkan sistem tagihan melalui API untuk menonaktifkan/mengaktifkan layanan secara otomatis sesuai status pembayaran.
13. API Integration
GenieACS menyediakan REST API yang kuat melalui layanan NBI (default di port 7557) untuk integrasi dengan sistem lain.
Anda bisa melakukan berbagai operasi seperti mengubah parameter, me-reboot perangkat, atau menjadwalkan tugas lain menggunakan perintah `cURL` atau library bahasa pemrograman seperti Python.
# Contoh Reboot Device via cURL
curl -i 'http://localhost:7557/devices/DEVICE_ID/tasks?timeout=3000&connection_request' \
-X POST \
--data '{"name":"reboot"}'
14. Troubleshooting Umum
Device Tidak Terhubung
- Pastikan konektivitas jaringan dari perangkat ke server ACS.
- Verifikasi kembali format ACS URL (harus diakhiri dengan `/`).
- Periksa aturan firewall pada server.
Device Status "Offline"
- Pastikan interval *Periodic Inform* tidak terlalu lama.
- Reboot perangkat untuk memulai sesi baru.
- Analisis log `genieacs-cwmp` untuk pesan error.
15. Referensi & Resources
Sumber Dokumentasi & Forum
- Dokumentasi Resmi GenieACS: https://docs.genieacs.com/
- Forum Komunitas GenieACS: https://forum.genieacs.com/
- Github Source Code: https://github.com/genieacs/genieacs
- Library Python untuk API: https://github.com/TDT-AG/python-genieacs