[note: tutorial ini bukanlah best practice untuk diterapkan pada jaringan anda]
Mengenai peringatan diatas saya jelaskan lagi ya. Well ya sebelum dipraktikkan atau bahkan diterapkan, saya tekankan bahwa tutorial ini bukanlah solusi terbaik untuk jaringan anda?
Lah kenapa?
Karena solusi berikut kemungkinan besar akan memakan resource gede bagi router. Dan yang jelas
daftar firewall dan queue juga lebih banyak.Terus kenapa ditulis?
Tutorialnya saya tulis karena saya sendiri adalah penggemar HTB (idealis nggak ketulungan, :v). Jadi begitu denger kata queue atau QoS langsung deh kepikiran HTB. Oh ya, bagi yang belum kenal HTB bisa mampir ditulisannya Bapak Valens Riyadi disini nih.
PREREQUESITE
1. Perangkat yang sudah terinstal RouterOS
2. Terdapat basic configuration dan hotspot dengan minimal 1 user profile (misalkan client)
WARM-UP
Bagi yang sudah kenal hotspot, pasti ingin si user mendapatkan kelayakan dan kenyamanan dengan cara memaksimalkan bandwidth yang ada. Oleh karena itu, peranan QoS sangat penting. Untuk beberapa user dengan aturan yang sama bisa mengimplementasikan user profile dan mengaktifkan parameter rate-limit atau incoming packet/outgoing packet.
1. Perangkat yang sudah terinstal RouterOS
2. Terdapat basic configuration dan hotspot dengan minimal 1 user profile (misalkan client)
WARM-UP
Bagi yang sudah kenal hotspot, pasti ingin si user mendapatkan kelayakan dan kenyamanan dengan cara memaksimalkan bandwidth yang ada. Oleh karena itu, peranan QoS sangat penting. Untuk beberapa user dengan aturan yang sama bisa mengimplementasikan user profile dan mengaktifkan parameter rate-limit atau incoming packet/outgoing packet.
Ketika anda menerapkan incoming packet/outgoing packet, maka setiap user yang mempunyai user profile yang sama akan ditandai dengan packet mark yang sama pula. Efeknya? Anda masih bisa menggunakan queue tree yang dikombinasikan dengan queue type PCQ, namun tidak bisa menerapkan HTB untuk setiap user. Nah, agar bisa mengimplementasikan HTB per-user maka anda harus memberikan packet mark yang berbeda. Anda bisa menggunakan fitur script on-login dan script on-logout pada yang ada user-profile. Fitur ini dibekali dengan built-in variable dengan scope lokal. Artinya anda akan diberikan beberapa variabel yang cukup berguna, misalkan username, IP address dan lain sebagainya.
Cara ini dibilang rada sulit karena anda diharuskan untuk menguasai RouterOS scripting.
Cara ini dibilang rada sulit karena anda diharuskan untuk menguasai RouterOS scripting.
Penggunaan fitur diatas harus didasarkan pada pemahaman alur (urutan) pembuatan queue. Sehingga permasalahan tersebut dapat ditangani dengan benar. Oh ya karena lagi membahas HTB, sebelum membuat script anda harus membuat parent dahulu, baik itu download maupun upload.
ALGORITHM
1. Pada saat user login (script on-login)
1.1 Inisiasi variabel id (yang isinya adalah gabungan dari username dan password atau yang lain yang sifatnya unik). Scope dari variabel tersebut dibuat lokal saja.
1.2 Membuat mangle dengan src-address dari perangkat yang sedang login (baik itu untuk mark connection dan mark packet) dan menandai masing-masing marking dengan variabel id
1.3 Terakhir adalah membuat queue child untuk masing-masing upload dan download. Nama queue child dapat mengambil dari variabel id dan tambahkan kata up pada upload untuk membedakan.
2. Pada saat user logout (script on-logout)
Alur kedua merupakan kebalikan dari alur nomor 1. Kecuali pada inisiasi variabel id (1.1). Variabel tersebut tetap harus ada.
2.1 Inisiasi variabel id.
2.2 Menghapus mangle (mark connection dan mark packet) yang memiliki mark variabel id
2.3 Terakhir adalah menghapus queue child pada upload dan download. Seperti pada langkah 1.3, anda dapat menggunakan variabel id
GO-CODE
Pada menu winbox, masuk ke IP -> Hotspot -> User Profiles. Pilih dan buka user profile yang akan digunakan. Pada jendela user profile, masuk ke tab Scripts. Sesuaikan dengan nomor algoritma diatas.
1. On Login
1.1 :local id ($user . "-" . $address);
1.2(connection)
/ip firewall mangle add comment=$id chain=prerouting src-address=$address action=mark-connection new-connection-mark=$id passthrough=yes;
1.2(packet)
/ip firewall mangle add chain=prerouting connection-mark=$id action=mark-packet new-packet-mark=$id passthrough=no;
1.3(download)
/queue tree add name=$id parent=download packet-mark=$id priority=7 burst-limit=3M max-limit=1500k burst-threshold=750k limit-at=100k burst-time=8;
1.3(upload)
/queue tree add name=($id . "-up") parent=upload packet-mark=$id priority=7 burst-limit=3M max-limit=1500k burst-threshold=750k limit-at=100k burst-time=8;
2. On Logout
2.1 :local id ($user . "-" . $address);
2.2(connection) /ip firewall mangle remove [find new-connection-mark=$id];
2.3(packet) /ip firewall mangle remove [find new-packet-mark=$id];
2.4(download) /queue tree remove [find name=$id];
2.4(upload) /queue tree remove [find name=($id . "-up")];
copy-paste bagian yang tidak hitam
Hasilnya adalah sebagai berikut:
mangle rule untuk menandai paket tiap IP address yang login |
Queue list untuk setiap user dengan marking yang dibuat pada mangle |
Terima kasih, semoga bermanfaat.
Salam
_______________
reference:
Wiki.mikrotik.com. (2018). Manual:IP/Hotspot/User - MikroTik Wiki. [online] Available at: https://wiki.mikrotik.com/wiki/Manual:IP/Hotspot/User [Accessed 10 Jun. 2018].
hot-spotwifi.com (2018). [image] Available at: http://hot-spotwifi.com/assets/asset-1411052665019.png [Accessed 10 Jun. 2018].
kalo dari sintaks skripnya, itu selalu buat rule baru setiap ada user baru ya?
BalasHapusyoi mblo
Hapusdan akan terhapus kalau usernya logout
Hapus