Mangle internal web-proxy + queue tree

sebelumnya di asumsikan bahwa :
1. cache drive = primary-slave
2. port = 3128
3. Cache Hit DSCP (TOS) = 5
4. ip mikrotik 192.168.1.1

proxy cache
Code:
ip proxy cache print 
Flags: X - disabled 
 #   DST-PORT             DST-HOST        PATH        METHOD  ACTION HITS      
 0                                        /*\?*               allow  1765      
 1                                        /cgi-bin/*          allow  0
address-list
Code:
/ip firewall address-list print 
Flags: X - disabled, D - dynamic 
 #   LIST                                       ADDRESS                                     
 0   ;;; my local network
     local-addr                                 192.168.1.0/24                  
 1   ;;; my src-nated local network hosts
     nat-addr                                   192.168.1.0/24
nat
Code:
ip firewall nat print 
Flags: X - disabled, I - invalid, D - dynamic 
 0   ;;; Transparent Web Cache
     chain=dstnat action=redirect to-ports=3128 protocol=tcp 
     src-address-list=nat-addr in-interface=eth1-LAN dst-port=80 

 1   chain=dstnat action=redirect to-ports=3128 protocol=tcp 
     src-address-list=nat-addr in-interface=eth1-LAN dst-port=8080 

 2   chain=dstnat action=redirect to-ports=3128 protocol=tcp 
     src-address-list=nat-addr in-interface=eth1-LAN dst-port=3128 

 3   ;;; ALL Masq
     chain=srcnat action=masquerade src-address-list=nat-addr 

 4   ;;; DNS Resolver
     chain=dstnat action=redirect to-ports=53 protocol=udp dst-port=53 
  
 5   chain=dstnat action=redirect to-ports=53 protocol=tcp dst-port=53
mangle
Code:
/ip firewall mangle print
Flags: X - disabled, I - invalid, D - dynamic 
 0   ;;; HIT TRAFFIC FROM PROXY
  chain=output out-interface=eth1-LAN dscp=5 action=mark-packet
  new-packet-mark=proxy-hit passthrough=no

 1   ;;; UP TRAFFIC
     chain=prerouting in-interface=eth1-LAN src-address-list=nat-addr 
  action=mark-packet new-packet-mark=test-up passthrough=no 

 2   ;;; CONN-MARK
     chain=forward src-address-list=nat-addr action=mark-connection 
     new-connection-mark=test-conn passthrough=yes 

 3   ;;; DOWN-DIRECT CONNECTION
     chain=forward in-interface=PPPoE-Speedy connection-mark=test-conn 
  action=mark-packet new-packet-mark=test-down passthrough=no 

 4   ;;; DOWN-VIA PROXY
     chain=output out-interface=eth1-LAN dst-address-list=nat-addr 
  action=mark-packet new-packet-mark=test-down passthrough=no
dengan rule di atas maka akan di dapatkan kesimpulan :
proxy cache
semua mua akan di simpan ke dalam proxy cache
address-list
daftar local address dan ip yang ingin di nat, di sini saya menggunakan semua ip local untuk di nat
nat
- pada no 0 - 2 adalah rule untuk membelokan ke web-proxy
- pada no 3 adalah rule masquerade client
- pada no 4 dan 5 adalah rule untuk memaksa client menggunakan DNS yang telah di setting pada mikrotik
mangle
- HIT TRAFFIC FROM PROXY, berfungsi untuk menangkap paket yang berasal dari web-proxy
- UP TRAFFIC, berfungsi untuk menangkap paket upload dari client
- CONN-MARK, berfungsi untuk menangkap koneksi yang tidak dibelokan ke web-proxy
- DOWN-DIRECT CONNECTION, berfungsi untuk menangkap paket yang tidak dibelokan ke web-proxy
- DOWN-VIA PROXY, berfungsi untuk menangkap paket download client
setelah saya terapkan rule di atas saya mengalami beberapa masalah, di antaranya :
1. traffic upload yang telah di saring pada UP TRAFFIC tercampur dengan HIT TRAFFIC FROM PROXY, jadi apabila client mengakses cache pada mikrotik maka rate UP TRAFFIC dan HIT TRAFFIC FROM PROXY akan meningkat tajam. dan apabila client melakukan kegiatan upload maka hanya UP TRAFFIC yang meningkat.
saya berasumsi bahwa UP TRAFFIC yang dimaksud pada mangle di atas adalah paket/koneksi yang berasal darimikrotik menuju ke luar mikrotik(tidak perduli mau ke arah ISP ataupun ke arah lokal)

2. DOWN-VIA PROXY tidak berfungsi, karena saya melihat tidak ada paket yang lewat rule mangle ini.

3. karena saya pencinta queue tree maka saya sangat-sangat kesulitan untuk membagi bandwidth tiap-tiap client
setelah meng-oprek selama lebih dari 1 minggu saya menemukan rule mangle yang saya rasa tepat untuk proxyinternal, berikut hasil copas nya :
mangle
Code:
/ip firewall mangle print 
Flags: X - disabled, I - invalid, D - dynamic 
 0   ;;; 1.[pack-up-global] Upstream Global
     chain=output action=mark-connection new-connection-mark=conn-up-global 
     passthrough=yes protocol=tcp out-interface=PPPoE-Speedy

 1   chain=output action=mark-packet new-packet-mark=pack-up-global 
     passthrough=no protocol=tcp out-interface=PPPoE-Speedy
     connection-mark=conn-up-global 

 2   ;;; 2.[pack-down-global] Trafic Downstream Global
     chain=input action=mark-connection new-connection-mark=conn-down-global 
     passthrough=yes protocol=tcp in-interface=PPPoE-Speedy

 3   chain=input action=mark-packet new-packet-mark=pack-down-global 
     passthrough=no protocol=tcp in-interface=PPPoE-Speedy
     connection-mark=conn-down-global 
  
 4   ;;; 3.[pack-proxy-hit] Proxy to Client / Proxy HIT
     chain=output action=mark-connection new-connection-mark=conn-proxy-hit 
     passthrough=yes protocol=tcp src-address=192.168.1.1 
     dst-address-list=nat-addr out-interface=eth1-LAN src-port=3128 dscp=5 

 5   chain=output action=mark-packet new-packet-mark=pack-proxy-hit 
     passthrough=no protocol=tcp src-address=192.168.1.1 
     dst-address-list=nat-addr out-interface=eth1-LAN src-port=3128 
     connection-mark=conn-proxy-hit dscp=5 

 6   ;;; 4.[pack-up-client] Upstream Client to Mikrotik
     chain=prerouting action=mark-connection 
     new-connection-mark=conn-up-client passthrough=yes protocol=tcp 
     src-address-list=nat-addr in-interface=eth1-LAN src-port=!3128 
     connection-mark=!conn-proxy-hit 

 7   chain=prerouting action=mark-packet new-packet-mark=pack-up-client 
      passthrough=no protocol=tcp src-address-list=nat-addr 
     in-interface=eth1-LAN src-port=!3128 connection-mark=conn-up-client 

 8   ;;; 5.[pack-down-direct] Downstream Direct Connection
     chain=forward action=mark-connection 
     new-connection-mark=conn-down-direct passthrough=yes protocol=tcp 
     dst-address-list=nat-addr in-interface=PPPoE-Speedy
     out-interface=eth1-LAN 

 9   chain=forward action=mark-packet new-packet-mark=pack-down-direct 
     passthrough=no protocol=tcp dst-address-list=nat-addr 
     in-interface=PPPoE-Speedyout-interface=eth1-LAN 
     connection-mark=conn-down-direct 

10   ;;; 6.[pack-down-client] Downstream Direct Conn / Proxy to Client
     chain=output action=mark-connection new-connection-mark=conn-down-client 
     passthrough=yes protocol=tcp src-address-list=nat-addr 
     out-interface=eth1-LAN connection-mark=!conn-proxy-hit 

11   chain=output action=mark-packet new-packet-mark=pack-down-client 
     passthrough=no protocol=tcp src-address-list=nat-addr 
     out-interface=eth1-LAN connection-mark=conn-down-client
dari mangle di atas dapat di simpulkan sebagai berikut :
- rule 0-1, berfungsi untuk menangkap paket upload dari mikrotik menuju luar (internet)
- rule 2-3, berfungsi untuk menangkap paket download dari luar (internet) menuju mikrotik
- rule 4-5, berfungsi untuk menangkap paket proxy cache hit yang berasal dari mikortik ke client
- rule 6-7, berfungsi untuk menangkap paket upload dari masing-masing client (tinggal di sesuaikan src-addressnya saja)
- rule 8-9, berfungsi untuk menangkap paket download yang tidak masuk ke dalam proxy seperti port 443 yang di minta oleh client(tinggal di sesuaikan dst-addressnya saja)
- rule 10-11, berfungsi untuk menangkap paket download yang di minta oleh client (tinggal di sesuaikan src-addressnya saja)
demikian hasil dari 1 minggu saya oprek mikrotik untuk mendapatkan mangle yang sesuai dengan harapan, semoga rule di atas dapat membantu / memberikan pencerahan bagi rekan-rekan semuanya.

update : queue tree
Code:
/queue tree
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \
    max-limit=1000000 name="'Downstream" packet-mark="" parent=global-out \
    priority=8 queue=default
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \
    max-limit=256000 name="'Upstream" packet-mark="" parent=global-in \
    priority=8 queue=default
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \
    max-limit=0 name=Global-Upstream packet-mark="" parent=PPPoE-Speedy \
    priority=8 queue=default
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \
    max-limit=0 name=Global-Downstream packet-mark="" parent=PPPoE-Speedy \
    priority=8 queue=default
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \
    max-limit=1000000000 name="''Proxy" packet-mark="" parent=global-out \
    priority=8 queue=default
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=yes limit-at=0 \
    max-limit=0 name=A-SPACE packet-mark="" parent=global-in priority=8 \
    queue=default
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=\
    100000000 max-limit=1000000000 name="3.Proxy Hit" packet-mark=\
    pack-proxy-hit parent="''Proxy" priority=8 queue=default
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=256000 \
    max-limit=1000000 name=5.Down-Direct packet-mark=pack-down-direct parent=\
    "'Downstream" priority=2 queue=default
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \
    max-limit=0 name=1.Up-Global packet-mark=pack-up-global parent=\
    Global-Upstream priority=8 queue=default
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 \
    max-limit=0 name=2.Down-Global packet-mark=pack-down-global parent=\
    Global-Downstream priority=8 queue=default
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=256000 \
    max-limit=1000000 name=6.Down-Client packet-mark=pack-down-client parent=\
    "'Downstream" priority=1 queue=default
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=64000 \
    max-limit=256000 name=4.Up-Client packet-mark=pack-up-client parent=\
    "'Upstream" priority=8 queue=default
rule queue di atas dapat di sesuaikan dengan kebutuhan yg penting jgn langsung copy paste, di cek dulu satu-satu


update


sebelumnya di asumsikan bahwa :
1. cache drive = primary-slave
2. port = 3128
3. Cache Hit DSCP (TOS) = 5
4. ip mikrotik 192.168.1.1
5. ip client 192.168.1.2 - 254

proxy cache



Code:
ip proxy cache print 
Flags: X - disabled 
 #   DST-PORT             DST-HOST        PATH        METHOD  ACTION HITS      
 0                                        /*\?*               allow  1765      
 1                                        /cgi-bin/*          allow  0

address-list

Code:
/ip firewall address-list print 
Flags: X - disabled, D - dynamic 
 #   LIST                                       ADDRESS                                     
 0   ;;; my local network
     local-addr                                 192.168.1.0/24                  
 1   ;;; my src-nated local network hosts
     nat-addr                                   192.168.1.0/24

nat



Code:
ip firewall nat print 
Flags: X - disabled, I - invalid, D - dynamic 
 0   ;;; Transparent Web Cache
     chain=dstnat action=redirect to-ports=3128 protocol=tcp 
     src-address-list=nat-addr in-interface=eth1-LAN dst-port=80 

 1   chain=dstnat action=redirect to-ports=3128 protocol=tcp 
     src-address-list=nat-addr in-interface=eth1-LAN dst-port=8080 

 2   chain=dstnat action=redirect to-ports=3128 protocol=tcp 
     src-address-list=nat-addr in-interface=eth1-LAN dst-port=3128 

 3   ;;; ALL Masq
     chain=srcnat action=masquerade src-address-list=nat-addr 

 4   ;;; DNS Resolver
     chain=dstnat action=redirect to-ports=53 protocol=udp dst-port=53 
  
 5   chain=dstnat action=redirect to-ports=53 protocol=tcp dst-port=53

mangle



Code:
/ip firewall mangle print
Flags: X - disabled, I - invalid, D - dynamic 
 0   ;;; HIT TRAFFIC FROM PROXY
  chain=output out-interface=eth1-LAN dscp=5 action=mark-packet
  new-packet-mark=proxy-hit passthrough=no

 1   ;;; UP TRAFFIC
     chain=prerouting in-interface=eth1-LAN src-address-list=nat-addr \
  action=mark-packet new-packet-mark=test-up passthrough=no 

 2   ;;; CONN-MARK
     chain=forward src-address-list=nat-addr action=mark-connection 
     new-connection-mark=test-conn passthrough=yes 

 3   ;;; DOWN-DIRECT CONNECTION
     chain=forward in-interface=PPPoE-Speedy connection-mark=test-conn 
  action=mark-packet new-packet-mark=test-down passthrough=no 

 4   ;;; DOWN-VIA PROXY
     chain=output out-interface=eth1-LAN dst-address-list=nat-addr 
  action=mark-packet new-packet-mark=test-down passthrough=no

dengan rule di atas maka akan di dapatkan kesimpulan :
proxy cache
semua mua akan di simpan ke dalam proxy cache
address-list
daftar local address dan ip yang ingin di nat, di sini saya menggunakan semua ip local untuk di nat
nat
- pada no 0 - 2 adalah rule untuk membelokan ke web-proxy
- pada no 3 adalah rule masquerade client
- pada no 4 dan 5 adalah rule untuk memaksa client menggunakan DNS yang telah di setting pada mikrotik
mangle
- HIT TRAFFIC FROM PROXY, berfungsi untuk menangkap paket yang berasal dari web-proxy
- UP TRAFFIC, berfungsi untuk menangkap paket upload dari client
- CONN-MARK, berfungsi untuk menangkap koneksi yang tidak dibelokan ke web-proxy
- DOWN-DIRECT CONNECTION, berfungsi untuk menangkap paket yang tidak dibelokan ke web-proxy
- DOWN-VIA PROXY, berfungsi untuk menangkap paket download client
setelah saya terapkan rule di atas saya mengalami beberapa masalah, di antaranya :
1. traffic upload yang telah di saring pada UP TRAFFIC tercampur dengan HIT TRAFFIC FROM PROXY, jadi apabila client mengakses cache pada mikrotik maka rate UP TRAFFIC dan HIT TRAFFIC FROM PROXY akan meningkat tajam. dan apabila client melakukan kegiatan upload maka hanya UP TRAFFIC yang meningkat.
saya berasumsi bahwa UP TRAFFIC yang dimaksud pada mangle di atas adalah paket/koneksi yang berasal dari mikrotik menuju ke luar mikrotik(tidak perduli mau ke arah ISP ataupun ke arah lokal)

2. DOWN-VIA PROXY tidak berfungsi, karena saya melihat tidak ada paket yang lewat rule mangle ini.

3. karena saya pencinta queue tree maka saya sangat-sangat kesulitan untuk membagi bandwidth tiap-tiap client
setelah meng-oprek selama lebih dari 1 minggu saya menemukan rule mangle yang saya rasa tepat untuk proxy internal, berikut hasil copas nya :


dari mangle di atas dapat di simpulkan sebagai berikut :


Mangle dan Queue yg lebih top markotop (menurut saya, menurut anda?)
Mangle



Code:
ip firewall mangle print 
Flags: X - disabled, I - invalid, D - dynamic 
 0   ;;; Check Chain 
     chain=prerouting action=jump jump-target=check-pre 
  
 1   chain=postrouting action=jump jump-target=check-pos 
 
 2   chain=output action=jump jump-target=check-out 
 
 3   chain=input action=jump jump-target=check-in 
 
 4   ;;; Proxy Internal 
     chain=check-out action=mark-connection 
     new-connection-mark=conn-net-proxy passthrough=yes protocol=tcp 
     src-address=192.168.1.1 dst-address-list=nat-addr 
     out-interface=eth1-LAN src-port=3128 dscp=5 
  
 5   chain=check-out action=mark-packet new-packet-mark=pack-net-proxy 
     passthrough=no protocol=tcp src-address=192.168.1.1 
     dst-address-list=nat-addr out-interface=eth1-LAN src-port=3128 
     connection-mark=conn-net-proxy dscp=5 

 6   ;;; Client Upstream
     chain=check-pre action=mark-connection 
     new-connection-mark=conn-net-up-client passthrough=yes protocol=tcp 
     src-address-list=nat-addr in-interface=eth1-LAN src-port=!3128 
     connection-mark=!conn-net-proxy 
  
 7   chain=check-pre action=mark-packet new-packet-mark=pack-net-up-client 
     passthrough=yes protocol=tcp src-address-list=nat-addr 
     in-interface=eth1-LAN src-port=!3128 connection-mark=conn-net-up-client 

 8   ;;; Client Downstream 
     chain=check-pos action=mark-connection 
     new-connection-mark=conn-net-down-client passthrough=yes 
     dst-address-list=nat-addr out-interface=eth1-LAN 
     connection-mark=!conn-net-proxy 

 9   chain=check-pos action=mark-packet new-packet-mark=pack-net-down-client 
     passthrough=yes dst-address-list=nat-addr out-interface=eth1-LAN 
     connection-mark=conn-net-down-client 

10   ;;; Global Upstream 
     chain=check-out action=mark-connection 
     new-connection-mark=conn-net-up-global passthrough=yes 
     out-interface=PPPoE-Speedy 

11   chain=check-out action=mark-packet new-packet-mark=pack-net-up-global 
     passthrough=no out-interface=PPPoE-Speedy 
     connection-mark=conn-net-up-global 

12   ;;; Global Downstream
     chain=check-in action=mark-connection 
     new-connection-mark=conn-net-down-global passthrough=yes 
     in-interface=PPPoE-Speedy 

13   chain=check-in action=mark-packet new-packet-mark=pack-net-down-global 
     passthrough=no in-interface=PPPoE-Speedy 
     connection-mark=conn-net-down-global 

14   ;;; Ping
     chain=prerouting action=mark-connection new-connection-mark=service-ping 
     passthrough=yes protocol=icmp dst-address-type="" 

15   ;;; Broadcast
     chain=prerouting action=mark-connection 
     new-connection-mark=service-broadcast passthrough=yes 
     dst-address-type=broadcast
queue tree



Code:
queue tree print 
Flags: X - disabled, I - invalid 
 0   name="Downstream" parent=global-out packet-mark="" limit-at=0 
     queue=pcq-down priority=2 max-limit=2000000 burst-limit=0 
     burst-threshold=0 burst-time=0s 

 1   name="Upstream" parent=global-in packet-mark="" limit-at=0 queue=pcq-up 
     priority=8 max-limit=256000 burst-limit=0 burst-threshold=0 
     burst-time=0s 

 2   name="'Proxy" parent=global-out packet-mark=pack-net-proxy limit-at=0 
     queue=default priority=1 max-limit=1000000000 burst-limit=0 
     burst-threshold=0 burst-time=0s 

 3   name="Client-Down" parent=Downstream packet-mark=pack-net-down-client 
     limit-at=128000 queue=pcq-down priority=1 max-limit=2000000 
     burst-limit=0 burst-threshold=0 burst-time=0s 

 4   name="Client-Up" parent=Upstream packet-mark=pack-net-up-client 
     limit-at=64000 queue=pcq-up priority=1 max-limit=256000 burst-limit=0 
     burst-threshold=0 burst-time=0s

rule queue di atas dapat di sesuaikan dengan kebutuhan yg penting jgn langsung copy paste, di cek dulu satu-satu
test on : 3.22 OS dan 3.19 DOM
  • description
  • description
  • description
  • description
  • description
  • description
  • description
  • description
  • description
  • description
  • description
  • description
  • description
  • description
  • description

Video Gallery

  • Linux
    sekedar informasi, sekarang zimbra sudah diakuisisi oleh VMWare. jadi nantinya logo webmail zimbra kita akan ada logo VMware-nya.
  • Foto
    kalo mau buat efek foto kembar yang penting pilih minimal 3 foto (mau lebih juga terserah anda aj..)yang setingan tempat dan letak kameranya
  • Network
    setelah anda membongkar dus, dan menyiapkan koneksi. yang perlu anda lakukan adalah:
  • Serba-Serbi
    16 Cara Mengikat Sepatu Ala Jepang share buat teman2 & cew ato cow yang senang menggunakan sepatu bertali. Selamat mencoba
  • Tips-Trik
    Jika agan pengguna komputer, pasti sudah tidak asing lagi dengan yang namanya mouse. Mouse adalah salah satu pendamping setia dari komputer. Hampir semua jenis mouse memiliki 3 buah tombol. Tombol kiri, tombol kanan dan tombol scroll yang ada di tengah
  • Windows
    Windows 7 merupakan versi yang jauh lebih baik daripada versi terbaru windows, yaitu windows Vista. Dan windows 7 dilengkapi dengan banyak fitur baru.