
Pernah nggak sih, lagi asyik-asyiknya ngoding, tiba-tiba *syntax error* di baris yang kelihatan udah bener banget? Rasanya kayak lagi merakit LEGO kompleks, udah di ujung tanduk, eh ternyata ada satu balok yang kebalik. Nah, pengalaman yang sama sering banget saya temui saat pertama kali menyelami dunia MikroTik CHR. Terutama saat mencoba mengatur manajemen bandwidth yang canggih dan simultan dengan fungsi server. Awalnya, saya bayangkan seperti sedang menyusun resep masakan gourmet yang rumit. Setiap bahan (konfigurasi) harus pas takarannya, setiap langkah (perintah) harus berurutan agar hasilnya tidak pahit atau gosong. Ternyata, MikroTik CHR itu lebih mirip bengkel otomotif kelas atas. Anda bisa memodifikasi mesin (router) untuk performa maksimal, memasang turbo (manajemen bandwidth), hingga mengubahnya menjadi kendaraan pengangkut barang (server) yang andal.
Di dunia teknologi jaringan, MikroTik CHR (Cloud Hosted Router) adalah pemain yang sangat menarik. Ia menawarkan kekuatan RouterOS, sistem operasi MikroTik yang kaya fitur, dalam bentuk *virtual machine* yang bisa Anda jalankan di mana saja – dari server fisik pribadi, VPS di cloud, hingga *container*. Fleksibilitas inilah yang membuatnya jadi pilihan favorit bagi para sysadmin dan network engineer yang ingin punya kontrol penuh atas jaringan mereka.
Artikel ini akan kita bedah tuntas bagaimana memanfaatkan MikroTik CHR tidak hanya sebagai gerbang internet (router) biasa, tetapi juga sebagai pengatur lalu lintas data yang cerdas (manajemen bandwidth) sekaligus melayani kebutuhan internal jaringan Anda sebagai server. Siapkan kopi Anda, mari kita mulai petualangan teknis ini!
## Mengapa MikroTik CHR untuk Kebutuhan Spesifik Ini?
Sebelum kita terjun ke konfigurasi, mari kita pahami dulu kenapa CHR adalah pilihan yang tepat:
* **Fleksibilitas Instalasi:** Anda bisa menempatkannya di mana saja. Ini berarti Anda tidak terikat pada hardware MikroTik fisik. Punya server kosong? Jadikan CHR. Butuh *sandbox* untuk eksperimen? CHR solusinya.
* **Kekuatan RouterOS:** RouterOS terkenal dengan fitur-fiturnya yang sangat mendalam. Mulai dari *firewall*, *VPN*, *routing protocols*, hingga kemampuan *scripting* yang mumpuni. Semua ini hadir di CHR.
* **Efisiensi Biaya (Potensial):** Tergantung pada infrastruktur Anda, menggunakan CHR di VPS atau server yang sudah ada bisa jadi lebih hemat daripada membeli hardware MikroTik dengan spesifikasi serupa.
* **Skalabilitas:** Anda bisa dengan mudah menyesuaikan sumber daya (CPU, RAM, storage) untuk CHR Anda seiring pertumbuhan kebutuhan jaringan.
### Manajemen Bandwidth: Menjinakkan "Lalu Lintas" Data
Bayangkan jaringan Anda seperti jalan raya. Tanpa rambu lalu lintas, tanpa pembagian jalur, pasti akan terjadi kemacetan parah, terutama saat jam sibuk. Manajemen bandwidth adalah "ilmu" untuk mengatur "lalu lintas" data ini agar berjalan lancar, adil, dan prioritasnya tepat.
Di MikroTik CHR, kita akan menggunakan **Queue Tree** dan **Simple Queue** untuk mencapai ini. Simple Queue cocok untuk pengaturan sederhana, sementara Queue Tree memberikan kontrol yang lebih granular dan fleksibel.
#### 1. Konfigurasi Dasar: Mengidentifikasi "Jalur"
Langkah pertama adalah mengidentifikasi "jalur" utama yang akan kita kelola. Biasanya ini adalah koneksi *ethernet* yang terhubung ke *internet* (WAN) dan *ethernet* yang terhubung ke jaringan lokal (LAN).
Misalnya, kita asumsikan:
* `ether1`: Terhubung ke internet (WAN)
* `ether2`: Terhubung ke jaringan lokal (LAN)
Di CHR, Anda bisa melihat interface ini melalui `Interfaces` di WinBox atau melalui terminal:
```bash
/interface print
```
#### 2. Simple Queue: Pengaturan Cepat untuk "Kendaraan Umum"
Simple Queue adalah cara termudah untuk membatasi atau menjamin kecepatan untuk sekelompok IP address atau MAC address tertentu. Ini seperti menetapkan batas kecepatan untuk semua kendaraan umum yang melintas di jalur tertentu.
Contoh: Batasi kecepatan unduh untuk seluruh jaringan lokal menjadi 10 Mbps dan kecepatan unggah menjadi 5 Mbps.
* **Via WinBox:**
1. Buka `Queues` -> `Simple Queues`.
2. Klik tombol `+` untuk menambah antrian baru.
3. **General Tab:**
* `Name`: `LAN-Limit` (atau nama deskriptif lainnya)
* `Target`: `192.168.88.0/24` (sesuaikan dengan subnet LAN Anda)
* `Max. Limit`: `10M/5M` (10 Mbps unduh / 5 Mbps unggah)
* **Via Terminal:**
```bash
/queue simple add name="LAN-Limit" target=192.168.88.0/24 max-limit=10M/5M
```
Ini adalah pengaturan dasar. Anda bisa membuat antrian spesifik untuk IP tertentu, misalnya memberikan prioritas lebih untuk server atau membatasi kecepatan untuk tamu.
#### 3. Queue Tree: Orkestrasi Bandwidth Kelas "Balap"
Queue Tree memberikan kontrol yang jauh lebih canggih. Kita bisa membuat hierarki antrian, menentukan prioritas, dan mengatur limit berdasarkan *packet marks* yang dibuat oleh Firewall. Ini seperti mengatur jalur balap dengan berbagai kelas, di mana mobil balap F1 punya prioritas tertinggi, diikuti mobil sport, dan seterusnya.
Langkah-langkah umum menggunakan Queue Tree:
* **A. Firewall Mangle: Menandai "Paket" Data**
Kita perlu "menandai" paket-paket data agar bisa diatur oleh Queue Tree. Ini seperti memberikan stiker identifikasi pada setiap jenis kendaraan agar bisa diarahkan ke jalur yang tepat.
Contoh: Menandai semua lalu lintas *internet* (dari LAN ke WAN) dan lalu lintas dari internet (dari WAN ke LAN).
* **Via WinBox:**
1. Buka `IP` -> `Firewall` -> `Mangle`.
2. Klik tombol `+` untuk menambah mangle rule baru.
* **Rule 1: Mark Traffic Upload (LAN ke WAN)**
* `Chain`: `prerouting`
* `Src. Address`: `192.168.88.0/24` (Subnet LAN Anda)
* `Dst. Address`: `!192.168.88.0/24` (Semua tujuan di luar LAN Anda)
* `Action`: `mark-routing`
* `New Routing Mark`: `upload-traffic` (nama routing mark)
* **Rule 2: Mark Traffic Download (WAN ke LAN)**
* `Chain`: `prerouting`
* `Src. Address`: `!192.168.88.0/24` (Semua sumber di luar LAN Anda)
* `Dst. Address`: `192.168.88.0/24` (Subnet LAN Anda)
* `Action`: `mark-routing`
* `New Routing Mark`: `download-traffic` (nama routing mark)
* **Via Terminal:**
```bash
/ip firewall mangle
add chain=prerouting src-address=192.168.88.0/24 dst-address=!192.168.88.0/24 action=mark-routing new-routing-mark=upload-traffic comment="Mark Upload Traffic"
add chain=prerouting src-address=!192.168.88.0/24 dst-address=192.168.88.0/24 action=mark-routing new-routing-mark=download-traffic comment="Mark Download Traffic"
```
* **B. Queue Tree: Membangun Hierarki**
Sekarang kita akan menggunakan *routing marks* tadi untuk membuat antrian.
* **Via WinBox:**
1. Buka `Queues` -> `Queue Tree`.
2. Klik tombol `+` untuk menambah antrian baru.
* **Parent Queue (Root):** Buat antrian induk yang akan menampung semua lalu lintas.
* `Name`: `Global-Limit`
* `Parent`: `global`
* `Max Limit`: `50M/20M` (Misal: total kecepatan internet Anda adalah 50 Mbps unduh dan 20 Mbps unggah. Sesuaikan dengan ISP Anda)
* **Child Queue: Upload Traffic**
* `Name`: `Upload-Traffic`
* `Parent`: `Global-Limit` (atau *ether1* jika Anda ingin mengatur limit per interface, tapi ini lebih fleksibel)
* `Routing Mark`: `upload-traffic`
* `Limit At`: `10M` (Minimal kecepatan yang dijamin untuk upload)
* `Max Limit`: `20M` (Maksimal kecepatan untuk upload)
* `Priority`: `8` (Nilai default, bisa diatur lebih rendah untuk prioritas lebih tinggi)
* **Child Queue: Download Traffic**
* `Name`: `Download-Traffic`
* `Parent`: `Global-Limit`
* `Routing Mark`: `download-traffic`
* `Limit At`: `30M` (Minimal kecepatan yang dijamin untuk download)
* `Max Limit`: `50M` (Maksimal kecepatan untuk download)
* `Priority`: `8`
* **Via Terminal:**
```bash
/queue tree
add name="Global-Limit" parent=global max-limit=50M/20M comment="Root Queue for Internet Traffic"
add name="Upload-Traffic" parent="Global-Limit" routing-mark=upload-traffic limit-at=10M max-limit=20M priority=8 comment="Upload Traffic Limit"
add name="Download-Traffic" parent="Global-Limit" routing-mark=download-traffic limit-at=30M max-limit=50M priority=8 comment="Download Traffic Limit"
```
**Penjelasan Prioritas:**
Angka prioritas pada Queue Tree berkisar dari 1 hingga 8. Angka yang lebih kecil berarti prioritas lebih tinggi. Jika ada kelebihan bandwidth, lalu lintas dengan prioritas lebih tinggi akan mendapatkan "jatah" lebih dulu. Jika jaringan padat, lalu lintas dengan prioritas lebih rendah akan dikurangi kecepatannya.
Anda bisa membuat hirarki yang lebih kompleks:
* Di bawah `Upload-Traffic`, Anda bisa membuat antrian lagi untuk "Gaming-Upload" dengan prioritas tinggi, "VoIP-Upload" dengan prioritas lebih tinggi lagi, dan sisanya untuk "Bulk-Upload".
* Ini membutuhkan *packet marking* yang lebih spesifik di firewall, misalnya menandai paket berdasarkan *port* atau *protocol*.
## MikroTik CHR sebagai Server Andal: Lebih dari Sekadar Router
Di sinilah kehebatan CHR benar-benar bersinar. Anda tidak hanya menggunakan router ini untuk meneruskan paket data, tetapi juga untuk *melayani* permintaan dari klien di jaringan Anda. Ini seperti bengkel otomotif yang tidak hanya memperbaiki mobil, tetapi juga menyediakan layanan *spare part* atau bahkan pusat layanan derek.
Apa saja yang bisa kita jadikan server di CHR?
* **DNS Server (Caching & Authoritative):** Mempercepat resolusi nama domain.
* **DHCP Server:** Otomatis memberikan alamat IP ke klien.
* **Web Proxy:** Menyimpan cache situs web populer, memblokir situs tertentu, dan memantau lalu lintas web.
* **FTP Server:** Berbagi file dalam jaringan (meskipun kurang umum digunakan di lingkungan modern).
* **Samba/File Server (dengan tambahan package atau integrasi):** Untuk berbagi file antar sistem Windows, Linux, dan macOS.
* **VPN Server (OpenVPN, WireGuard, L2TP/IPsec):** Memungkinkan akses aman dari jarak jauh.
Mari kita fokus pada beberapa fungsi server yang paling sering digunakan dan memberikan nilai tambah signifikan.
### 1. DNS Server Caching: Kunci Cepat Membuka Website
Bayangkan setiap kali Anda ingin membuka sebuah website, Anda harus bertanya kepada "direktori utama" di internet (DNS root servers) untuk setiap nama domain. Ini akan lambat. DNS Caching Server bekerja seperti cache di browser Anda; ia menyimpan catatan DNS yang sering diakses sehingga permintaan berikutnya menjadi sangat cepat.
* **Konfigurasi DNS Caching di CHR:**
* **Via WinBox:**
1. Buka `IP` -> `DNS`.
2. Centang `Allow Remote Requests`.
3. Atur `Servers` ke DNS publik yang Anda sukai (misalnya `8.8.8.8` dan `8.8.4.4` untuk Google DNS).
4. Atur `Cache Size` sesuai dengan RAM yang Anda alokasikan untuk CHR (misalnya `4096KiB` atau lebih besar jika CHR punya banyak RAM).
* **Via Terminal:**
```bash
/ip dns
set allow-remote-requests=yes servers=8.8.8.8,8.8.4.4 cache-size=4096KiB
```
* **Agar klien menggunakan CHR sebagai DNS Server:**
Anda perlu mengkonfigurasi DHCP Server Anda (jika CHR juga bertindak sebagai DHCP Server) untuk memberikan alamat IP CHR Anda sebagai DNS Server utama kepada klien.
Atau, jika Anda punya DHCP Server terpisah, ubah konfigurasinya.
### 2. DHCP Server: Otomatisasi Pemberian Alamat IP
Memberikan IP address secara manual untuk setiap perangkat yang terhubung ke jaringan adalah pekerjaan yang sangat membosankan dan rentan kesalahan. DHCP Server mengotomatiskan proses ini.
* **Konfigurasi DHCP Server di CHR:**
* **Via WinBox:**
1. Buka `IP` -> `DHCP Server`.
2. Klik tombol `DHCP Setup`.
3. Pilih interface tempat Anda ingin menjalankan DHCP Server (misalnya `ether2` untuk LAN).
4. Ikuti wizard:
* `DHCP Address Space`: Otomatis terisi sesuai subnet interface (misal: `192.168.88.0/24`).
* `Gateway for DHCP Network`: Alamat IP CHR di interface tersebut (misal: `192.168.88.1`).
* `Addresses to Give Out`: Rentang IP yang akan dibagikan (misal: `192.168.88.10-192.168.88.254`).
* `DNS Servers`: Masukkan IP CHR Anda sendiri (jika berperan sebagai DNS Server) atau DNS publik.
* `Lease Time`: Berapa lama sebuah IP dipertahankan oleh klien (misal: `10:00:00`).
* **Via Terminal:**
```bash
# Pastikan CHR punya IP address di interface LAN
/ip address add address=192.168.88.1/24 interface=ether2
# Jalankan DHCP Setup (contoh, ini akan membuat beberapa konfigurasi)
/ip dhcp-server setup
# Ikuti prompt yang muncul di terminal, sesuaikan dengan kebutuhan Anda
```
### 3. Web Proxy: Kontrol dan Efisiensi Akses Web
Web Proxy bertindak sebagai perantara antara klien dan internet untuk permintaan HTTP/HTTPS. Ia bisa digunakan untuk memblokir situs, membatasi akses ke konten tertentu, dan tentu saja, *caching* konten web untuk mempercepat akses.
* **Konfigurasi Web Proxy di CHR:**
* **Via WinBox:**
1. Buka `IP` -> `Web Proxy`.
2. Centang `Enabled`.
3. `Port`: Biarkan default `8080` atau ubah sesuai kebutuhan.
4. `Cache Administrator`: Masukkan email Anda.
5. `Max Cache Size`: Tentukan berapa banyak ruang disk yang dialokasikan untuk cache (misalnya `unlimited` jika CHR punya disk yang besar, atau tentukan batas MB/GB).
6. `Cache on disk`: Centang jika ingin cache disimpan di disk (disarankan).
* **Via Terminal:**
```bash
/ip proxy
set enabled=yes port=8080 cache-administrator="admin@yourdomain.com" cache-on-disk=yes max-cache-size=unlimited
```
* **Redirecting Traffic ke Proxy:**
Agar klien menggunakan proxy, Anda perlu mengarahkan lalu lintas HTTP/HTTPS mereka ke port proxy di CHR. Cara termudah adalah menggunakan *firewall mangle* dan *NAT*.
* **Firewall Mangle (untuk menandai traffic yang akan di-redirect):**
```bash
/ip firewall mangle
add chain=prerouting protocol=tcp dst-port=80,443 in-interface=ether2 action=mark-connection new-connection-mark=web-proxy-conn comment="Mark HTTP/HTTPS for Proxy"
add chain=prerouting connection-mark=web-proxy-conn action=mark-routing new-routing-mark=to-web-proxy
```
* **NAT (untuk redirect traffic):**
```bash
/ip firewall nat
add chain=dstnat src-address=192.168.88.0/24 protocol=tcp dst-port=80,443 in-interface=ether2 action=redirect to-ports=8080 comment="Redirect HTTP/HTTPS to Proxy"
```
*Catatan:* untuk HTTPS (port 443), *transparent proxy* di MikroTik memiliki keterbatasan. Seringkali Anda perlu melakukan *SSL bypass* atau menggunakan proxy yang mendukung inspeksi SSL (yang bisa kompleks dan punya implikasi privasi). Untuk pemula, fokus pada HTTP (port 80) adalah awal yang baik.
## Kesimpulan: Fleksibilitas Tanpa Batas
MikroTik CHR adalah alat yang luar biasa kuat jika Anda tahu cara memanfaatkannya. Dengan kombinasi manajemen bandwidth yang cerdas dan kemampuan menjalankan berbagai fungsi server, Anda bisa membangun infrastruktur jaringan yang efisien, andal, dan sesuai kebutuhan Anda.
Proses konfigurasi awal mungkin terasa seperti membaca manual bahasa asing yang penuh istilah teknis. Namun, dengan analogi bengkel otomotif, kita bisa melihat setiap bagian konfigurasi sebagai komponen yang bisa diatur, dimodifikasi, dan dioptimalkan. Mulai dari mengatur "ban" agar tidak selip (manajemen bandwidth) hingga memastikan "mesin" (server) selalu siap bekerja, CHR memberikan Anda kendali penuh.
Ingatlah untuk selalu melakukan konfigurasi secara bertahap, menguji setiap perubahan, dan mencatat apa yang Anda lakukan. Dokumentasi adalah teman terbaik Anda, bahkan untuk hal-hal yang sudah Anda anggap "mengerti". Jangan ragu untuk bereksperimen di lingkungan *staging* sebelum diterapkan di jaringan produksi.
Selamat mengoprek MikroTik CHR Anda! Mari kita buat jaringan kita lebih pintar dan lebih efisien.