Anda di halaman 1dari 7

Berikut salah satu contoh queue tree dengan memisahkan IIX / INT, dan penerapannya terhadap implementasi HTB.

Dengan Asumsi: - interface ke-arah lokal diberi nama LAN - interface ke-arah luar/internet diberi nama WAN - Jumlah pc client sebanyak 10 unit - Koneksi IIX 2Mb Download dan 1Mb Upload - Koneksi INT 1Mb Download dan 512k Upload - Telah memiliki list address "Nice" / Ip Indonesia (untuk memisahkan IIX dan INT). 1. Pertama yang dilakukan membuat mangle masing-masing pc untuk mendapatkan mark packet IIX dan INT nya. Membuat list ip address dengan nama "nat-addr", dengan isian rentang ip local, pada contoh ini saya menggunakan subnet /24, yang artinya rentang ip tersebut dari 0-254. / ip firewall address-list add list=nat-addr address=192.168.10.0/24 comment="" disabled=no Kemudian dilanjutkan dengan membuat mangle pemisahan IIX dan INT, pada asumsi ini list nice dianggap telah ada. / ip firewall mangle add chain=prerouting src-address=192.168.10.1 dst-address-list=nice \ action=mark-connection new-connection-mark=pc01.iix.c comment="pc01 IIX" \ disabled=no add chain=prerouting connection-mark=pc01.iix.c action=mark-packet \ new-packet-mark=pc01.iix.p comment="" disabled=no add chain=prerouting src-address=192.168.10.1 src-address-list=nat-addr \ dst-address-list=!nice action=mark-connection \ new-connection-mark=pc01.int.c comment="pc01 INT" disabled=no add chain=prerouting connection-mark=pc01.int.c action=mark-packet \ new-packet-mark=pc01.int.p comment="" disabled=no add chain=prerouting src-address=192.168.10.2 dst-address-list=nice \ action=mark-connection new-connection-mark=pc02.iix.c comment="pc02 IIX" \ disabled=no add chain=prerouting connection-mark=pc02.iix.c action=mark-packet \ new-packet-mark=pc02.iix.p comment="" disabled=no add chain=prerouting src-address=192.168.10.2 src-address-list=nat-addr \ dst-address-list=!nice action=mark-connection \ new-connection-mark=pc02.int.c comment="pc02 INT" disabled=no add chain=prerouting connection-mark=pc02.int.c action=mark-packet \ new-packet-mark=pc02.int.p comment="" disabled=no add chain=prerouting src-address=192.168.10.3 dst-address-list=nice \ action=mark-connection new-connection-mark=pc03.iix.c comment="pc03 IIX" \ disabled=no add chain=prerouting connection-mark=pc03.iix.c action=mark-packet \ new-packet-mark=pc03.iix.p comment="" disabled=no add chain=prerouting src-address=192.168.10.3 src-address-list=nat-addr \ dst-address-list=!nice action=mark-connection \ new-connection-mark=pc03.int.c comment="pc03 INT" disabled=no add chain=prerouting connection-mark=pc03.int.c action=mark-packet \ new-packet-mark=pc03.int.p comment="" disabled=no add chain=prerouting src-address=192.168.10.4 dst-address-list=nice \ action=mark-connection new-connection-mark=pc04.iix.c comment="pc04 IIX" \ disabled=no add chain=prerouting connection-mark=pc04.iix.c action=mark-packet \ new-packet-mark=pc04.iix.p comment="" disabled=no add chain=prerouting src-address=192.168.10.4 src-address-list=nat-addr \ dst-address-list=!nice action=mark-connection \ new-connection-mark=pc04.int.c comment="pc04 INT" disabled=no add chain=prerouting connection-mark=pc04.int.c action=mark-packet \ new-packet-mark=pc04.int.p comment="" disabled=no

add chain=prerouting src-address=192.168.10.5 dst-address-list=nice \ action=mark-connection new-connection-mark=pc05.iix.c comment="pc05 IIX" \ disabled=no add chain=prerouting connection-mark=pc05.iix.c action=mark-packet \ new-packet-mark=pc05.iix.p comment="" disabled=no add chain=prerouting src-address=192.168.10.5 src-address-list=nat-addr \ dst-address-list=!nice action=mark-connection \ new-connection-mark=pc05.int.c comment="pc05 INT" disabled=no add chain=prerouting connection-mark=pc05.int.c action=mark-packet \ new-packet-mark=pc05.int.p comment="" disabled=no add chain=prerouting src-address=192.168.10.6 dst-address-list=nice \ action=mark-connection new-connection-mark=pc06.iix.c comment="pc06 IIX" \ disabled=no add chain=prerouting connection-mark=pc06.iix.c action=mark-packet \ new-packet-mark=pc06.iix.p comment="" disabled=no add chain=prerouting src-address=192.168.10.6 src-address-list=nat-addr \ dst-address-list=!nice action=mark-connection \ new-connection-mark=pc06.int.c comment="pc06 INT" disabled=no add chain=prerouting connection-mark=pc06.int.c action=mark-packet \ new-packet-mark=pc06.int.p comment="" disabled=no add chain=prerouting src-address=192.168.10.7 dst-address-list=nice \ action=mark-connection new-connection-mark=pc07.iix.c comment="pc07 IIX" \ disabled=no add chain=prerouting connection-mark=pc07.iix.c action=mark-packet \ new-packet-mark=pc07.iix.p comment="" disabled=no add chain=prerouting src-address=192.168.10.7 src-address-list=nat-addr \ dst-address-list=!nice action=mark-connection \ new-connection-mark=pc07.int.c comment="pc07 INT" disabled=no add chain=prerouting connection-mark=pc07.int.c action=mark-packet \ new-packet-mark=pc07.int.p comment="" disabled=no add chain=prerouting src-address=192.168.10.8 dst-address-list=nice \ action=mark-connection new-connection-mark=pc08.iix.c comment="pc08 IIX" \ disabled=no add chain=prerouting connection-mark=pc08.iix.c action=mark-packet \ new-packet-mark=pc08.iix.p comment="" disabled=no add chain=prerouting src-address=192.168.10.8 src-address-list=nat-addr \ dst-address-list=!nice action=mark-connection \ new-connection-mark=pc08.int.c comment="pc08 INT" disabled=no add chain=prerouting connection-mark=pc08.int.c action=mark-packet \ new-packet-mark=pc08.int.p comment="" disabled=no add chain=prerouting src-address=192.168.10.9 dst-address-list=nice \ action=mark-connection new-connection-mark=pc09.iix.c comment="pc09 IIX" \ disabled=no add chain=prerouting connection-mark=pc09.iix.c action=mark-packet \ new-packet-mark=pc09.iix.p comment="" disabled=no add chain=prerouting src-address=192.168.10.9 src-address-list=nat-addr \ dst-address-list=!nice action=mark-connection \ new-connection-mark=pc09.int.c comment="pc09 INT" disabled=no add chain=prerouting connection-mark=pc09.int.c action=mark-packet \ new-packet-mark=pc09.int.p comment="" disabled=no add chain=prerouting src-address=192.168.10.10 dst-address-list=nice \ action=mark-connection new-connection-mark=pc10.iix.c comment="pc10 IIX" \ disabled=no add chain=prerouting connection-mark=pc10.iix.c action=mark-packet \ new-packet-mark=pc10.iix.p comment="" disabled=no add chain=prerouting src-address=192.168.10.10 src-address-list=nat-addr \ dst-address-list=!nice action=mark-connection \

new-connection-mark=pc10.int.c comment="pc10 INT" disabled=no add chain=prerouting connection-mark=pc10.int.c action=mark-packet \ new-packet-mark=pc10.int.p comment="" disabled=no

2. Selanjutnya membuat type pcq, sebagai tuas pemisah antara download dan upload dari masing-masing IIX dan INT yang telah dipisahkan. Untuk pcq up-stream diberi nama "pcq-up Untuk pcq down-stream diberi nama "pcq-down" / queue type add name="pcq-up" kind=pcq pcq-rate=0 pcq-limit=50 \ pcq-classifier=src-address,src-port pcq-total-limit=2000 add name="pcq-down" kind=pcq pcq-rate=0 pcq-limit=50 \ pcq-classifier=dst-address,dst-port pcq-total-limit=2000 3. Membuat queue tree Membuat parentnya terlebih dahulu: / queue tree add name="net iix-dw" parent=LAN packet-mark="" limit-at=0 queue=pcq-down \ priority=8 max-limit=2000000 burst-limit=0 burst-threshold=0 burst-time=0s \ disabled=no add name="net iix-up" parent=WAN packet-mark="" limit-at=0 queue=pcq-up \ priority=8 max-limit=1000000 burst-limit=0 burst-threshold=0 burst-time=0s \ disabled=no add name="net int-dw" parent=LAN packet-mark="" limit-at=0 queue=pcq-down \ priority=8 max-limit=1000000 burst-limit=0 burst-threshold=0 burst-time=0s \ disabled=no add name="net int-up" parent=WAN packet-mark="" limit-at=0 queue=pcq-up \ priority=8 max-limit=512000 burst-limit=0 burst-threshold=0 burst-time=0s \ disabled=no Perhatikan jenis queue type yang dipakai pada masing-masing parent dengan type WAN dan LAN. Parent WAN menggunakan queue type pcq-up dan parent LAN menggunakan queue type pcq-down. Dan juga pada masingmasing parent tidak diset "limit-at" hanya menggunakan "max-limit" saja. Selanjutnya membuat child dari masing-masing parent tersebut. Koneksi IIX downstream: / queue tree add name="pc01 IIX Down" parent="net iix-dw" packet-mark=pc01.iix.p \ limit-at=200000 queue=default priority=7 max-limit=2000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc02 IIX Down" parent="net iix-dw" packet-mark=pc02.iix.p \ limit-at=200000 queue=default priority=7 max-limit=2000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc03 IIX Down" parent="net iix-dw" packet-mark=pc03.iix.p \ limit-at=200000 queue=default priority=7 max-limit=2000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc04 IIX Down" parent="net iix-dw" packet-mark=pc04.iix.p \ limit-at=200000 queue=default priority=7 max-limit=2000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc05 IIX Down" parent="net iix-dw" packet-mark=pc05.iix.p \ limit-at=200000 queue=default priority=7 max-limit=2000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc06 IIX Down" parent="net iix-dw" packet-mark=pc06.iix.p \ limit-at=200000 queue=default priority=7 max-limit=2000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc07 IIX Down" parent="net iix-dw" packet-mark=pc07.iix.p \

limit-at=200000 queue=default priority=7 max-limit=2000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc08 IIX Down" parent="net iix-dw" packet-mark=pc08.iix.p \ limit-at=200000 queue=default priority=7 max-limit=2000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc09 IIX Down" parent="net iix-dw" packet-mark=pc09.iix.p \ limit-at=200000 queue=default priority=7 max-limit=2000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc10 IIX Down" parent="net iix-dw" packet-mark=pc10.iix.p \ limit-at=200000 queue=default priority=7 max-limit=2000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no Asumsi koneksi sebelumnya telah disebutkan bahwa IIX download sebesar 2MB, untuk itu pada "limit-at" dipasang nilai 200000 atau sebesar 200k untuk masing-masing unit. Nilai 200k diambil dari 2000000:10 = 200000 (200k). Nilai Total BW dibagi Jumlah Total PC. Sedangkan pada nilai "max-limit" diberi nilai sebesar nilai total bandwidth. Tujuannya adalah ketika pc hanya aktif 1 unit, maka bandwitdh bisa dipakai total kepada user tersebut, ketika 2 unit pc aktif nilai bandwidth akan dibagi dua menjadi 1Mb untuk nilai total masing-masing pc (jika menggunakan maksimal), dan jika 10 pc aktif maka bandwidth dialokasikan secara merata sebesar 200k kepada masing-masing pc, dikarenakan adanya batas "limit-at", sehingga walau pc aktif tersebut saling download, tetapi tidak akan mengganggu bandwitdh pc lainnya. Koneksi IIX upstream: / queue tree add name="pc01 IIX Up" parent="net iix-up" packet-mark=pc01.iix.p \ limit-at=100000 queue=default priority=7 max-limit=1000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc02 IIX Up" parent="net iix-up" packet-mark=pc02.iix.p \ limit-at=100000 queue=default priority=7 max-limit=1000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc03 IIX Up" parent="net iix-up" packet-mark=pc03.iix.p \ limit-at=100000 queue=default priority=7 max-limit=1000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc04 IIX Up" parent="net iix-up" packet-mark=pc04.iix.p \ limit-at=100000 queue=default priority=7 max-limit=1000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc05 IIX Up" parent="net iix-up" packet-mark=pc05.iix.p \ limit-at=100000 queue=default priority=7 max-limit=1000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc06 IIX Up" parent="net iix-up" packet-mark=pc06.iix.p \ limit-at=100000 queue=default priority=7 max-limit=1000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc07 IIX Up" parent="net iix-up" packet-mark=pc07.iix.p \ limit-at=100000 queue=default priority=7 max-limit=1000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc08 IIX Up" parent="net iix-up" packet-mark=pc08.iix.p \ limit-at=100000 queue=default priority=7 max-limit=1000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc09 IIX Up" parent="net iix-up" packet-mark=pc09.iix.p \ limit-at=100000 queue=default priority=7 max-limit=1000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc10 IIX Up" parent="net iix-up" packet-mark=pc10.iix.p \ limit-at=100000 queue=default priority=7 max-limit=1000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no Koneksi Total IIX Up = 1Mb, untuk masing-masing unit diberi nilai 100k pada "limit-at" nya dan 1Mb untuk "max-limit". Koneksi INT downstream: / queue tree add name="pc01 INT Down" parent="net int-dw" packet-mark=pc01.int.p \

limit-at=100000 queue=default priority=7 max-limit=1000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc02 INT Down" parent="net int-dw" packet-mark=pc02.int.p \ limit-at=100000 queue=default priority=7 max-limit=1000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc03 INT Down" parent="net int-dw" packet-mark=pc03.int.p \ limit-at=100000 queue=default priority=7 max-limit=1000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc04 INT Down" parent="net int-dw" packet-mark=pc04.int.p \ limit-at=100000 queue=default priority=7 max-limit=1000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc05 INT Down" parent="net int-dw" packet-mark=pc05.int.p \ limit-at=100000 queue=default priority=7 max-limit=1000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc06 INT Down" parent="net int-dw" packet-mark=pc06.int.p \ limit-at=100000 queue=default priority=7 max-limit=1000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc07 INT Down" parent="net int-dw" packet-mark=pc07.int.p \ limit-at=100000 queue=default priority=7 max-limit=1000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc08 INT Down" parent="net int-dw" packet-mark=pc08.int.p \ limit-at=100000 queue=default priority=7 max-limit=1000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc09 INT Down" parent="net int-dw" packet-mark=pc09.int.p \ limit-at=100000 queue=default priority=7 max-limit=1000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc10 INT Down" parent="net int-dw" packet-mark=pc10.int.p \ limit-at=100000 queue=default priority=7 max-limit=1000000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no Koneksi INT upstream: / queue tree add name="pc01 INT Up" parent="net int-up" packet-mark=pc01.int.p \ limit-at=50000 queue=default priority=7 max-limit=512000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc02 INT Up" parent="net int-up" packet-mark=pc02.int.p \ limit-at=50000 queue=default priority=7 max-limit=512000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc03 INT Up" parent="net int-up" packet-mark=pc03.int.p \ limit-at=50000 queue=default priority=7 max-limit=512000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc04 INT Up" parent="net int-up" packet-mark=pc04.int.p \ limit-at=50000 queue=default priority=7 max-limit=512000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc05 INT Up" parent="net int-up" packet-mark=pc05.int.p \ limit-at=50000 queue=default priority=7 max-limit=512000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc06 INT Up" parent="net int-up" packet-mark=pc06.int.p \ limit-at=50000 queue=default priority=7 max-limit=512000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc07 INT Up" parent="net int-up" packet-mark=pc07.int.p \ limit-at=50000 queue=default priority=7 max-limit=512000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc08 INT Up" parent="net int-up" packet-mark=pc08.int.p \ limit-at=50000 queue=default priority=7 max-limit=512000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc09 INT Up" parent="net int-up" packet-mark=pc09.int.p \

limit-at=50000 queue=default priority=7 max-limit=512000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no add name="pc10 INT Up" parent="net int-up" packet-mark=pc10.int.p \ limit-at=50000 queue=default priority=7 max-limit=512000 burst-limit=0 \ burst-threshold=0 burst-time=0s disabled=no Nilai 50k didapat dari total INT Up sebesar 512k:10 = 51.2k yang dibulatkan menjadi 50k. Penjelasan: 1. Nilai Limit-at pada client jika ditotalkan tidak boleh melebihi nilai dari max-limit yang ada pada parent. Berfungsi sebagai penahan bandwitdh agar tidak ditarik oleh pc aktif lainnya ketika bandwitdh telah melebihi batasnya. 2. Nilai max-limit pada client, disesuaikan dengan keinginan anda sendiri asal tidak kurang dari nilai "limit-at". Pada kondisi ini, saya menyamakan nilai max-limit client dengan nilai max-limit yang ada pada parent, dengan tujuan ketika pc lain tidak aktif (hanya 1 pc) bandwidth bisa dipergunakan sendiri secara maksimal, begitupun ketika ada 2 pc aktif dan seterusnya. 3. Nilai priority pad pc client harus lebih kecil dari nilai priority parent. Pada contoh ini, nilai priority parent adalah 8 dan nilai priority pada client adalah 7. 4. priority pada antar parent/subparent tidak berpengaruh satu dengan lainnya. Hanya berpengaruh terhadap nilai priority client. Berikut preview gambar pada MikroTik yang saya kelola dengan menggunakan system rule diatas. Dan sampai saat ini, syukurlah MikroTik nya belum mengalami kendala dengan system pembagian bandwidth, dan semoga tidak terjadi.

Anda mungkin juga menyukai