Script membatasi bandwidth berdasarkan IP di tabel ARP


Script ini saya buat karena ip user sangat banyak dalam beberapa segmen network dan juga interface lokal lebih dari satu,

apa lagi dia konek dengan ip dhcp sehingga tidak mungkin saya menambahkan queue satu persatu.

Dan jika terlalu banyak filter akan memakan banyak memori router,

cukup beberapa ip saja yang ditambahkan karena tidak semua ip online terus menerus melewati router gateway.


Dan kenapa saya menggunaan ip yang ada di tabel ARP, karena semua client yang aktif dengan dhcp

termasuk hotspot atau memakai ip static sekalipun, ip dia akan terbaca secara dinamik di tabel ARP.


Berikut contoh script yang saya buat di router Mikrotik:


Di menu /system scripts buat script dengan nama=queue_user dan sourcenya seperti berikut,

Code:
#add parent
:if ([:len ([/queue simple find name=total])] <1) do={
/queue simple add target-addresses="10.10.114.0/24,10.10.115.0/24,10.10.116.0/24,10.10.117.0/24" max-limit=2M/2M interface=all priority=7 name="total"
}

#import ip yang ada di ARP list
:local ipusers [/ip arp find]
:foreach h in $ipusers do={
:local ipuser [/ip arp get $h address]
:if ([:len $ipuser] >0) do {

#ambil ipnya selain ip public
:local ippublic [/ip arp get $h interface]
:if ($ippublic !="eth-public") do {

#add diqueue
:if ( [:len ( [/queue simple find name=$ipuser] ) ] <1) do {
:if ([:len ([/queue simple find name=others])]>0) do { /queue simple remove [find name=others] }
/queue simple add target-addresses=$ipuser limit-at=256k/256k max-limit=512k/512k interface=all parent=total priority=7 name=$ipuser
}
}
}
}

:if ([:len ([/queue simple find name=others])] <1) do {
/queue simple add target-addresses="10.10.114.0/24,10.10.115.0/24,10.10.116.0/24,10.10.117.0/24" limit-at=256k/256k max-limit=512k/512k interface=all parent=total priority=7 name="others"
}

#delete yang tidak aktif
:local ipold [/queue simple find]
:foreach o in $ipold do={
:local iplama [/queue simple get $o name]
:if ([:len $iplama] >0) do {
:if ( $iplama !="total") do={
:if ($iplama !="others") do={
:if ([:len ([/ip arp find address=$iplama])] <1) do={
/queue simple remove [find name=$iplama]
}
}
}
}
}
Klik Run untuk menjalankan scriptnya


Buat skedul untuk update ip-ipnya setiap 10 menit:

buat di winbox di menu /system scheduler add

name = queue_refresh

start date = Jan/14/2011 (tanggal sekarang)

start time = 13:50:00 (waktu sekarang)

interval = 00:10:00 (run setiap 10 menit)

on event = queue_user (nama scriptnya)

centangin semua policynya dan tekan [Ok]


semoga bermanfaat.

read more at my blog

  • 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.