Friday, July 9, 2010

ECMP Failover Script

How to do automatic ECMP failover

This script demonstrates one method of doing automatic failover using the Netwatch function and using scripting to enable or disable gateways. This is probably not the most efficient way, but it works. I would welcome any input on how it can be improved.
The situation:
You have 2 lines going out to the internet - 10.0.0.12 and 10.0.0.13. You have setup a mangle to mark HTTP traffic (optional) and want to route http along the 2 lines using load balancing.
You setup the mangle:
/ip firewall mangle add chain=prerouting protocol=tcp dst-port=80 action=mark-routing \
   new-routing-mark=ecmp-http-route passthrough=yes comment=" Route HTTP \
   traffic to ECMP" disabled=no 
You set up ECMP (Equal Cost Multipath Routing) by using something like
/ip route add dst-address=0.0.0.0/0 gateway=10.0.0.12,10.0.0.13 routing-mark=ecmp-http-route comment="ECMP route for HTTP"
Now you have ECMP for HTTP only. This is nice because MSN messenger, banking websites and other programs and problem sites will not be broken in the same way it might be if you used ECMP for all protocols.
What I then do is for example mark SMTP traffic and route this out through 10.0.0.12:
/ip firewall mangle add chain=prerouting protocol=tcp dst-port=25 action=mark-routing \
   new-routing-mark=smtp-out passthrough=yes comment="SMTP Traffic" disabled=no 
/ip route add dst-address=0.0.0.0/0 gateway=10.0.0.12 routing-mark=smtp-out comment="SMTP Traffic out"
and route all other traffic through 10.0.0.13
/ip route add dst-address=0.0.0.0/0 gateway=10.0.0.13 comment="Default Route to Internet"
Then I need to setup 2 routes to specific addresses to force the router through specific gateways to "test" the links. These should not be popular addresses with your users! Otherwise when a gateway goes down they will have no access to those sites. The addresses I am using as an example are 1.1.1.12 to test 10.0.0.12, and 1.1.1.13 to test 10.0.0.13.
Next I use the Netwatch Function to switch all traffic to the working gateway should any of the gateways fail:
/ tool netwatch 
   add host=1.1.1.13 timeout=2s interval=30s up-script="/ip route set \
   \[find comment=\"Default Route To Internet\"\] gateway=10.0.0.13" \
   down-script="/ip route set \[find comment=\"Default Route To Internet\"\] \
   gateway=10.0.0.12 comment="" disabled=no 
   add host=1.1.1.12 timeout=2s interval=30s up-script="/ip route set \
   \[find comment=\"SMTP Traffic out\"\] gateway=1.0.0.12" down-script="/ip \
   \n" \route set \[find comment=\"SMTP Traffic out\"\] gateway=10.0.0.13
   comment="" disabled=no 
The problem is that the ECMP http route will still be active, therefore http traffic wont work, so I have 2 scripts to check if both gateways are up or down and take action accordingly:
/ system script 
   add name="ecmp-startup" source=":if \(\[/ping 1.1.1.12 count=1\]=1 && \
   \[/ping 1.1.1.13 count=1\]=1 && \[/ip route get \[find \
   comment=\"ECMP Route For HTTP\"\] disabled\]=true\) do={ :log info \"Both gateways up" \
   \n/ip route set \[find routing-mark=ecmp-http-route\] \
   disabled=no}" policy=ftp,reboot,read,write,policy,test,winbox,password 
   add name="ecmp-shutdown" source=":if \(\[/ping 1.1.1.12 count=1\]=1 && \
   \[/ping 1.1.1.13 count=1\]=0\) do={ :log info \"Gateway down"\
   \n/ip route set \[find routing-mark=ecmp-http-route\] \
   disabled=yes}" policy=ftp,reboot,read,write,policy,test,winbox,password
Hi I found this error while trying to use this script, what worked for me was
   ecmp start/shut script. Looks like  in the start and shut script (") are missing
   from the find, well other the script works wonders for me. Thanks a lot savagedavid
ecmp starthp script
   :if ([/ping 1.1.1.13 count=1]=1 && [/ping 1.1.1.12 count=1]=1 && [/ip route get \
   [find routing-mark="ecmp-http-route"] disabled]=true) do={:log info "Both Gateways are up" \
   /n/ip route set [find routing-mark="ecmp-http-route"] disable=no}
ecmp shutdown script
   :if ([/ping 1.1.1.13 count=1]=0 || [/ping 1.1.1.12 count=1]=0) do={:log info \
   "Gateway down" /ip route set [find routing-mark="ecmp-http-route"] disabled=yes} 

Notice that it first checks to see if the route is enable before trying to re-enable it. Otherwise it will reset the route and users will be dropped momentarily.
Then finally schedule the scripts to check every 30 seconds:
/ system scheduler 
   add name="gateway-check" on-event="/system script run ecmp-shutdown
   script run ecmp-startup" start-date=jan/01/1970 start-time=00:00:00 \
   interval=30s comment="" disabled=no
   

Monday, July 5, 2010

Tips membuat Warnet dan Game Center

Sedikit sharing pengalaman buat yang mau usaha warnet (dari segi teknis secara umum smile  )

1. Pilih ISP (Internet Service Provider) yang anda "anggap" sesuai dengan kebutuhan anda.ISP yang bagus menawarkan bandwidth 1:1 (..dan kualitas yang tinggi sebanding dengan harga yang tinggi alias mahal  smile ) Kalau anda termasuk orang yang cukup bisa legowo menerima sedikit gangguan rutin dan anda bukan orang yang gampang naik darah  dan tidak pelit smile  Saya sarankan pake speedy.Bukan karena kualitasnya yang terbaik,tapi tinjauan antara perbandingan bw yang dijual dan harganya yang cukup pantas untuk usaha.Oke? udah bisa menentukan pilihan.Jika anda pilih spidi (dan segala konsekuensinya),saya harap anda tidak post keluhan yang ga penting disini tentang spidi,karena selain memenuhi forum dengan topik yang ga jelas,disini semua adalah pengguna spidi yang sama-sama pernah merasakan suka dan duka, dan yang utama GA ADA ORANG TELKOM DISINI....

2. Setelah dapat pilihan ISP,anda tentukan topologi LAN dan klasifikasi target pengguna.Apakah mau dibuat full browsing aja,atau digabung dengan game online, atau dipisah misal 5 browsing aja, 5 game online aja.Kalau anda berencana untuk menggabungkan client warnet dengan client game online,saran saya pake 2 line.1 buat game ,1 buat browsing.Kenapa? biar anda ga repot dan warnetnya cepat buka,ga utak-atik di bandwidth aja,ga dibuka-buka client pada kabur itu... hmm
Nah,kalau mau sedikit repot anda bisa pelajari pengaturan bandwidth/bw manager... atau kalau anda punya kelebihan duit dan mau berbagi,ada baiknya cari teknisi jaringan yang handal

3. Untuk performance yang baik, ada baiknya anda pake server.Buat apa? Beberapa fitur penting dari server yang sering dipake di warnet adalah:
a. Proxy server : proxy server tugasnya menyimpan sebagian file-file dari situs yang pernah dikunjungi client atau web caching.Jika client 1 masuk ke situs facebook,maka beberapa file dari situs facebook akan disimpan di harddisk server (misalnya logo,tulisan,dll).Nah,jika ada client lain yang masuk ke facebook,maka logo,tulisan,dll tadi akan diambilkan dari server sedang data yang dinamis seperti foto,profile,dll baru diambil di internet,hal ini yang membuat browsing terasa cepat. Efek lain,jika anda penggemar poker,maka jika ada satu aja client yang sudah pernah main poker,maka waktu loading/masuk ke poker akan terasa cepat,wuuzzzz....... langsung on tuh poker,hehehe... smile  Buktikan sendiri..!!!

b. Loadbalancer : load balancer tugasnya menggabungkan 2line ISP atau lebih.Dalam artian menggabungkan,mungkin yang lebih tepatnya adalah menyeimbangkan beban trafik.Singkatnya dengan fitur load balancer anda dapat menggunakan dua line spidi atau lebih secara optimal.Fitur tambahan dari load balancer adalah fail over.Artinya jika modem1 keok alias modar,maka trafik jaringan akan dialihkan ke modem2,so... biar lambat asal jalan,hehehe....

c. Bandwidth manager : bw manager tugasnya mengatur pembagian dan pembatasan bandwidth untuk client.Kenapa? seperti anda tahu bahwa inti buat warnet/game online adalah sistem bagi pakai alias SALOME (Satu Lobang Rame-Rame lol ),maka diperlukan peraturan yang tegas bahwa client dibatasi kecepatan aksesnya supaya tercapai kesejahteraan bersama,jadi jangan ada yang arogan,download pake IDM sedot semua bandwidth,yang lain tinggal merana karena akses luambaaaaat pooollll...!

4. Sistem Operasi untuk Client.Jangan hanya server dan modem yang anda utak-atik terus,perhatikan juga komputer client.Jika anda pake windows usahakan jangan menginstall terlalu banyak program,gunakan program-program yang sering digunakan untuk warnet/game online saja.Adobe photoshop dan Corel draw ,rasanya ga perlu nongol di client.Untuk lebih merampingkan windows,anda bisa coba berbagai tip dan trik optimasi windows yang ada.Untuk keamanan anda bisa install deepfreeze dan antiexe.Kenapa?Pernah dengar program yang namanya netcut?Program ini akan mematikan koneksi client-client anda yang lain (termasuk operator bisa disikatnya smile  ),tujuannnya supaya user nakal tersebut mendapat keseluruhan bandwidth yang tersedia,jadi ga mau berbagi dengan yang lain.Dengan antiexe,user ga bisa sembarangan menginstall program di komputer client.Ini juga berguna untuk mencegah IDM portable.Virus tertentu (terutama trojan) akan memenuhi trafik jaringan anda karena dia sering upload/download yang ga penting-penting gitu.... Antivirus kalau perlu bisa diinstall,tapi jangan paranoid.Cukup satu aja udah tuh,install banyak antivirus justru membuat akses komputer client terasa lambat,bukannya bandwidth kurang,tapi komputer sibuk menjalankan routine antivirus sehingga fungsinya sebagai terminal internet jadi terganggu.

5.Pengkabelan dan peralatan jaringan.Sering anda remehkan masalah pengkabelan.Kabel adalah media yang utama.Saran saya jika anda pake kabel Beldenn,pilih yang USA,jangan yang Australia,atau yg lain-lain,aspal semua.Perbandingan harga 1 box USA = +-950rb, yang Ausie=_-400rb,jauh banget kan...!!! Harga menentukan kualitas (disini.. smile  ).Switch,silahkan pake merk yang anda suka,tapi lebih baik pilih casingnya yang terbuat dari logam,jangan yang casing plastik,mudah panas bro...  Untuk modem,pake yang bagus (saya sih suka pake Linksys).Modem yang ga bagus mudah panas dan sering gangguan.Jangan sampai operator anda keseringan memberi pengumuman ke user : "Permisi mas/mbak mohon sabar,modemnya kami restart dulu ya... harap maklum"   lol

6.Untuk urusan spidi.Kecepatan dan gangguan spidi kebanyakan disebabkan pengkabelan yang kurang baik.Triknya, gunakan social engineering ,hehehe... Telkom punya teknisi kabel telpon,biasanya dia bawa alat pengukur kualitas sinyal.Nah silahkan PDKT,minta dia carikan jaringan kabel telpon yang baik kualitasnya dan yang terpendek menuju saluran utama.Jika anda minta dengan sopan dan tidak pelit,anda akan mendapatkan line yang terbaik yang bisa mereka sediakan.Gangguan line? kecuali ada gempa yang menghancurkan seluruh infrastruktur telkom,insyaAllah line anda akan baik-baik saja... smile  Trik ini juga berlaku jika anda mendapat gangguan speedy.Intinya teknisi adalah manusia yang punya kekurangan dan kelebihan,jika anda perlakukan mereka seperti pekerja yang bisa anda suruh-suruh ditambah anda marah-marah (mungkin karena anda merasa sudah bayar paket speedy),maka saya jamin kelangsungan warnet anda ga akan lama bro... dan anda akan cepat terindikasi gangguan jantung,tekanan darah tinggi,dan kemungkinan bisa stroke lol Jadikan mereka teman/sahabat dan anda akan merasakan bedanya.Saya pribadi sangat jarang menghubungi 147.Kenapa? informasi gangguan dan penanganan yang saya terima langsung dari teknisi yang bersangkutan,dan jelas skala prioritas lebih utama smile  sssssstttt..rahasia,hehehe...

Nah,itu beberapa tip dan trik berdasarkan pengalaman dilapangan.Lebih kurangnya silahkan dikoreksi,dan mohon maaf jika ada kata-kata yang salah atau yang ga berkenan dihati.Seperti prinsip saya,apapun masalahnya pasti ada solusinya,yang penting bisa jalan....

ref : http://opensource.telkomspeedy.com/forum/viewtopic.php?id=10006

Thursday, July 1, 2010

Setting Mikrotik with ipcop

Skema C :
Modem---Mikrotik---Client
------------|
----------Proxy
Misal :
Modem=192.168.1.1/24
Mikrotik=eth0 (ke modem)192.168.1.2/24
Mikrotik=eth1(ke proxy)192.168.2.1/24
Mikrotik=eth2(ke client)192.168.3.1/24
Proxy=192.168.2.2/24
Client=192.168.3.2-10/24

Untuk proxy, NAT :
/ip firewall nat add chain=src-nat src-address=192.168.2.2/24 out-interface=eth0 action=masquerade

Untuk client, NAT :
/ip firewall add chain=src-nat src-address=192.168.3.2-192.168.3.10 out-interface=eth0 action=masquerade

Untuk client dipaksakan ke proxy (misal proxy pake port 3128):
/ip firewall chain=dst-nat protocol=tcp dst-port=80 in-interface=eth2 to-addresses=192.168.2.2 to-ports=3128

Routing di MT :
0.0.0.0/0 192.168.1.1

Abis itu tinggal atur bw yang ke client biar gak kecolongan, bw ke proxy di los ajah