Detect dan shapping download connection byte

on Wednesday, September 25, 2013

Sehubungan dengan banyaknya pertanyaan mengenai cara membatasi download aktifity, berikut ada trik lain selain “delaypool rasa mikrotik”.
Adapun trik ini adalah dengan memanfaatkan fasilitas “connection bytes” pada mangle.
Mengenai fungsi connection bytes kalo tidak salah adalah : mendeteksi jumlah bytes yang telah tertransfer dalam satu koneksi antar dua pihak.
Sebagai contoh :
ip 192.168.10.12 melakukan koneksi ke 202.1.2.xx. Nah selama koneksi ini terjadi, connection bytes akan mencatat trafic bandwitdh yang terjadi dalam koneksi ini. dari 0 byte sampai tak terhingga dan penghitungan akan dihentikan setelah koneksi terputus. Dan untuk connection bytes ini akan mumpuni jika dilakukan pada queue tree.
Sebagai ilustrasi, saya akan membatasi client dengan ip 192.168.10.12.
Jika melakukan koneksi pada satu web dengan jumlah bytes masih antara 0-128 KB, maka koneksi ini diberi prioritas 1, dan diberi jatah bandwith 128kbps. namun setelah bytes lebih dari 128KB pada koneksi itu, maka priority akan diturunkan menjadi prio 8 dan bandwith akan dicekek ke 32kbps
Mangle :
Pertama lakukan mark connection pada setiap aktifitas LAN ke luar
Quote:
chain=postrouting out-interface=ether1 dst-address=192.168.10.0/24 protocol=tcp src-port=80 action=markconnection new-connection-mark=http_conn passthrough=yes
Selanjutnya menangkap bytes yang tertransfer dari suatu web ke ip 192.168.10.12. dimana pada mangle pertama mendeteksi hanya pada transfer antara 0-128KB. jika lebih dari itu maka akan ditangani oleh mangle kedua.
Quote:
chain=postrouting out-interface=ether1 dst-address=192.168.10.12 connection-mark=http_conn connectionbytes= 0-131072 action=mark-packet new-packet-mark=client12_browsing passthrough=no chain=postrouting out-interface=ether1 dst-address=192.168.10.12 connection-mark=http_conn connectionbytes= 131073-4294967295 action=mark-packet new-packet-mark=client12_download passthrough=no
Selesai dimangle sekarang kita lakukan shaping pada kedua mangle tersebut dengan queue tree. Pada queue tree ini kita memanfaatkan queue type pcq, dan untuk byte antara 0-128KB kita beri rate 128kbps, sementara jika lebih dari 128KB maka akan diberi rate 32kbps.
queue type :
Quote:
name=”browsing” kind=pcq pcq-rate=128000 pcq-limit=50 pcq-classifier=dst-address pcq-total-limit=2000
name=”download” kind=pcq pcq-rate=32000 pcq-limit=50 pcq-classifier=dst-address pcq-total-limit=2000
Selanjutnya masuk ke queue tree:
queue tree :
Pertama bikin parent queue
Quote:
name=”choi” parent=ether1 packet-mark=”" limit-at=1024000 queue=default priority=3 max-limit=1024000 burst-limit=0 burst-threshold=0 burst-time=0s
Selanjutnya bikin child queue khusus untuk ip 192.168.10.12 tersebut dimangle diatas
Quote:
name=”client12_browsing” parent=choi packet-mark=”client12_browsing” limit-at=0 queue=browsing
priority=1 max-limit=0 burst-limit=0 burst-threshold=0
name=”client12_download” parent=choi packet-mark=”client12_download” limit-at=0 queue=download
priority=8 max-limit=0 burst-limit=0 burst-threshold=0

Quote:
chain=postrouting out-interface=ether1 dst-address=192.168.10.0/24 protocol=tcp src-port=80 action=markconnection new-connection-mark=http_conn passthrough=yes
Saya coba modifikasi sedikit sehingga arah setingannya lebih ‘global’ tidak hanya berdasarkan ip client, menggunakan webproxy dan sejauh ini berjalan dengan baik. (menggunakan list nice, sehingga aktifitas browsing/download IIX tidak dibatasi). Saya juga menggunakan prerouting pada manglenya.
di mangle
Code:
chain=prerouting protocol=tcp dst-port=80 dst-address-list=!nice action=markconnection
new-connection-mark=http_conn passthrough=yes
chain=prerouting connection-mark=http_conn connection-bytes=0-131072 action=markpacket new-packet-mark=browsing passthrough=no
chain=output connection-mark=http_conn connection-bytes=0-131072 action=mark-packet new-packet-mark=browsing passthrough=no
chain=prerouting connection-mark=http_conn connection-bytes=131073-4294967295
action=mark-packet new-packet-mark=download passthrough=no
chain=output connection-mark=http_conn connection-bytes=131073-4294967295
action=mark-packet new-packet-mark=download passthrough=no
pada queue type
Code:
name=”browsing” kind=pcq pcq-rate=512000 pcq-limit=50 pcq-classifier=dst-address
pcq-total-limit=2000
name=”download” kind=pcq pcq-rate=32000 pcq-limit=50 pcq-classifier=dst-address pcqtotal-
limit=2000
pada queue tree
Code:
name=”clovanzo” parent=LAN packet-mark=”" limit-at=10000000 queue=default priority=3
max-limit=10000000 burst-limit=0 burst-threshold=0 burst-time=0s
name=”client_browsing” parent=clovanzo packet-mark=browsing limit-at=0
queue=browsing priority=1 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s
name=”client_download” parent=clovanzo packet-mark=download limit-at=0
queue=download priority=8 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s

Sumber: http://tutorialmikrotik.com/detect-dan-shapping-download-connection-byte.php

0 comments: