Tutorial Memisahkan Pemakaian B/W antara Browsing dan Downloading

DI comot dari http://www.forummikrotik.com – Karya CHOI

Sekedar share settingan, siapa tahu dengan adanya masukan-masukan dari rekan-rekan sekalian dapat lebih memaksimalkan setting mikrotik saya;

Settingan ini adaah hasil dari membaca tutor ‘delaypoll rasa mikrotik’ post dari bro ‘niplux’… thank’s banget mas atas tutornya;

Seperti tutor yang saya sebut diatas, pertama kita buat list filter di “/ip firewall filter” yang akan menangkap setiap request yang berisi contens file-file yang biasa di download; seperti .exe .rar .zip dan website-website yang biasa ngabisin bandwith; seperti youtube, megarotic dll..
Dan setelah di tangkap, maka ip address si website yang didownload tersebut akan kita masukkan kedalam list tersendiri; yang didalam contoh ini saya bikin list “yes_no”.

berikut adalah hasil dari perintah yang dibikin (maaf saya tampikan hasil jadinya saja, karena saya bikin di winbox…)

chain=forward protocol=tcp dst-port=80 content=.exe src-address-list=x_z_1_download action=add-dst-to-address-list address-list=yes_no address-list-timeout=1d

Disini setiap website yang diakses oleh list address “x_z_1_download” akan dimasukkan dalam list “yes_no” selama satu hari; (perkiraan download paling lama)

kemudian bikin satu mangle untuk menangkap client yang melakukan download;

chain=postrouting out-interface=ether1 connection-mark=http_conn src-address-list=yes_no dst-address-list=_best action=mark-packet new-packet-mark=http_clients_down passthrough=no

Setiap aksi dari list address “_best” yang bertujuan ke list address “yes_no” pada port ’80’ akan dimark packet dengan nama “http_clients_down”;

filtering dan marking packet udah selesai; sekarang kita bikin “queue tree”-nya untuk membatasi bandwith download ini :
bikin dulu “queue type” pcq dengan nama “_d_best_down” dan rate-nya diset 64000 (8 KB/s);

name=”_d_best_down” kind=pcq pcq-rate=64000 pcq-limit=50 pcq-classifier=dst-address pcq-total-limit=2000

Dengan rate ini, sebesar-besarnya client download; mereka hanya akan mendapatkan max 8 KB/s; meskipun dia menggunakan IDM atau apapun namanya.
Selanjutnya bikin queue tree;

name=”In_best_down” parent=2_In_best packet-mark=http_clients_down limit-at=0 queue=_d_best_down priority=8 max-limit=320000 burst-limit=0 burst-threshold=0 burst-time=0s

Diberi nama “In_best_down” dengan parent “2_In_best” yang menangani packet mark yang sudah kita buat diatas; yakni “http_clients_down” dengan priority paling bontot=8; rate 0 dan max 320kbps; (perkiraan dalam waktu bersamaan yang download 5 user).
mengenai priority; untuk browsing biasa diberi priority yang lebih tinggi, semisal “2” atau “3”, sehingga jika ada user yang sedang download, pada saat juga melakukan browsing, maka download istirahat sejenak, nunggu browsing-nya selesai and setelah itu download lanjut lagi…
Selesai….
Tapi ada permasalahan sedikit; dimana apabila website yang sudah ditangkap dan dimasukan ke dalam list “yes_no” itu ternyata adalah website penting seperti “yahoo”, “google” dll.. maka dia akan tetap kelimit selama satu hari.. wah……
Untuk mengatasi ini, kita membuat scripts yang khsusus melakukan checking pada website-website penting tersebut; dimana jika ditemukan website itu tertangkap, maka secara otomatis akan dihapus dari list “yes_no” agar tidak terlimit. Jadi khsusus untuk website peting ini aja download bebas melalui jalur browsing biasa.. gpp-lah… kan jarang-jarang juga client download attachment dari email.
pertama bikin dulu fiternya untuk nangkap website penting tersebut:

chain=forward protocol=tcp dst-port=80 content=yahoo.co src-address-list=x_z_1_download
action=add-dst-to-address-list address-list=penting address-list-timeout=1d

Setiap aksi dari list address “x_z_1_download” yang berisi contents “yahoo.co” akan dimasukkan kedalam list “penting”. (bukan “yes_no”) karena ini akan kita gunakan sebagai dasar`untuk melakukan pengecekan pada script kita;
dan selanjutnya bikin scripts :

:foreach i in=[/ip firewall address-list find list=penting dynamic=yes] do={/ip firewall address-list remove [find address=[/ip firewall address-list get $i address]]}

Semua ip yang terdapat dalam list “penting” akan dihapus, termasuk yang berada di list “yes_no” dll…
bikin scheduler:

cek_penting penting jan/01/1970 22:29:00 5s 4417

Aksi dilakukan setiap 5 detik.

Selanjutnya bagaimana dengan yang sudah selesai download?
karena kita set waktu penangkapan selama 1 hari, maka ada kemungkinan di pendownload sudah selesai; dan ada baiknya website yang ada di list “yes_no” dan sudah tidak aktif lagi melakukan koneksi dihapus saja; ini untuk menjaga agar jika ada user yang hanya sekedar browsing pada website tersebut tidak terhalang oleh priority “8” tadi, biar normal lagilah istilahnya;
Jadi secara periodik kita harus mengecek status koneksi khusus untuk list “yes_no” saja. apakah masih ada koneksi aktif apa tidak; jika masih ada dibiarkan, jika sudah tidak ada dihapus…!!!
Bikin scripts lagi:

:foreach i in=[/ip firewall address-list find list=yes_no dynamic=yes]do={:if([:len [/ip fire conn find dst-address=([/ip firewall address-list get $i address]. “:80”)]]=0) do={/ip fire address-list remove $i}}

Melakukan cek koneksi yang ada pada port 80, jika ternyata si ip dalam list masih aktif koneksinya: dibiarkan, jika udah gak ada aktifitas lagi: dihapus…
Bikin scheduler-nya :

cek_remove remove jan/01/1970 22:29:00 11s 1661

Untuk peletakan aturan dalam mangle-nya, harus pas, dimana aturan untuk download ini diletakkan diatas aturan untuk browsing biasa;

kalo ada yang janggal atau kurang pas mohon dikoreksi, yach biar makin seplah kinerja mikrotik saya…
thank’s..

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: