<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-627361986679834374</atom:id><lastBuildDate>Fri, 08 Nov 2024 15:36:11 +0000</lastBuildDate><category>mikrotik</category><category>FreeBSD</category><category>smoothwall</category><category>linux</category><category>lusca</category><category>speedy</category><category>tips</category><category>firefox</category><category>scripts</category><category>sisi lain</category><category>squid</category><title>from my XP</title><description></description><link>http://sum14rdi.blogspot.com/</link><managingEditor>noreply@blogger.com (sum14rdi)</managingEditor><generator>Blogger</generator><openSearch:totalResults>34</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-627361986679834374.post-1841399693037991751</guid><pubDate>Mon, 10 Sep 2012 05:04:00 +0000</pubDate><atom:updated>2012-09-10T12:04:53.576+07:00</atom:updated><title>Sedikit sharing membuat DNS Filtering dengan PowerDNS MySql backend</title><description>Ini sedikit catatan dari pengalaman saya sewaktu coba-coba membuat DNS Filtering dengan PowerDNS. Itung-itung ini juga sebagai dokumentasi, maklum sering lupa.&lt;br /&gt;
&lt;br /&gt;
Ada  beberapa hal yang perlu diperhatikan:&lt;br /&gt;
1. Saya tidak menjamin 100% yang ditulis disini dapat berjalan di mesin anda...(klo disaya sih work 1000%).&lt;br /&gt;
2. Gunakan logika anda ketika menjumpai kegagalan dan dilarang mengganggu saya dengan pm, comment dan satu lagi jangan cengeng.&lt;br /&gt;
3. Saya mengaplikasikan dilinux ubuntu server dengan lebih spesifik di ubuntu server 12.04.1, untuk jenis linux lainnya silahkan googling atau ke howtoforge.&lt;br /&gt;
&amp;nbsp;4. pdns server dan pdns recursor saya install disatu mesin.&lt;br /&gt;
&lt;br /&gt;
Ok lanjut ke tema utama.&lt;br /&gt;
Untuk menginstall powerdns diubuntu ini saya menganggap jika ubuntu servernya sudah selesai diinstall dan running well.&lt;br /&gt;
Untuk install powerdns dengan mysql backend cukup ketik ini di terminal:&lt;br /&gt;
&lt;blockquote&gt;
#apt-get install mysql-client mysql-server pdns-server pdns recursor pdns-backend-mysql&lt;/blockquote&gt;
sewaktu diminta mengconfig database buat powerdns lewat debconfig (CMIIW) dipilih saja &quot;no&quot;, karena akan dibuat sendiri databasenya.&lt;br /&gt;
&lt;br /&gt;
untuk jelasnya bisa merujuk kesini&amp;nbsp;&lt;a href=&quot;http://www.howtoforge.com/installing-powerdns-with-mysql-backend-and-poweradmin-on-ubuntu-9.10&quot;&gt;http://www.howtoforge.com/installing-powerdns-with-mysql-backend-and-poweradmin-on-ubuntu-9.10&lt;/a&gt;&lt;br /&gt;
gak usah dipikirin itu klo tutornya buat ubuntu 9.10 karena dipake untuk ubuntu 12.04 juga bisa.&lt;br /&gt;
&lt;br /&gt;
sedikit perbedaan karena pdns server dan pdns recursor jadi satu mesin ada di confignya:&lt;br /&gt;
ini punya saya, tolong di sesuaikan ya,&lt;br /&gt;
1.pdns.conf&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote&gt;
allow-recursion=127.0.0.1, 192.168.1.0/24, 192.168.4.0/24, 192.168.14.0/24&lt;br /&gt;
config-dir=/etc/powerdns&lt;br /&gt;
daemon=yes&lt;br /&gt;
disable-axfr=yes&lt;br /&gt;
distributor-threads=4&lt;br /&gt;
guardian=yes&lt;br /&gt;
launch=gmysql&lt;br /&gt;
gmysql-host=127.0.0.1&lt;br /&gt;
gmysql-user=root&lt;br /&gt;
gmysql-password=password&lt;br /&gt;
gmysql-dbname=powerdns&lt;br /&gt;
gmysql-socket=/var/run/mysqld/mysqld.sock&lt;br /&gt;
lazy-recursion=yes&lt;br /&gt;
local-address=0.0.0.0&lt;br /&gt;
local-port=53&lt;br /&gt;
master=yes&lt;br /&gt;
module-dir=/usr/lib/powerdns&lt;br /&gt;
recursor=127.0.0.1:5300&lt;br /&gt;
setgid=pdns&lt;br /&gt;
setuid=pdns&lt;br /&gt;
socket-dir=/var/run&lt;br /&gt;
webserver=yes&lt;br /&gt;
webserver-address=192.168.1.27&lt;br /&gt;
webserver-port=8081&lt;br /&gt;
wildcards=on&lt;br /&gt;
version-string=powerdns&lt;/blockquote&gt;
&lt;br /&gt;
2.recursor.conf&lt;br /&gt;
&lt;blockquote&gt;
allow-from=127.0.0.1, 192.168.1.0/24, 192.168.4.0/24, 192.168.14.0/24&lt;br /&gt;
forward-zones-recurse=.=8.8.8.8;8.8.4.4;180.131.144.144;180.131.145.145&lt;br /&gt;
local-address=127.0.0.1&lt;br /&gt;
local-port=5300&lt;br /&gt;
quiet=yes&lt;br /&gt;
setgid=pdns&lt;br /&gt;
setuid=pdns&lt;/blockquote&gt;
&lt;br /&gt;
&lt;br /&gt;
setelah itu:
&lt;br /&gt;
&lt;blockquote&gt;
#service pdns restart&lt;br /&gt;
#service pdns-recursor restart&lt;/blockquote&gt;
&lt;br /&gt;
&lt;br /&gt;
selanjutnya kita akan memasukan domain2 yang akan diblacklist, untuk caranya bisa mengacu kesini&amp;nbsp;&lt;a href=&quot;http://impeza.wordpress.com/2011/03/02/block-content-porno-dengan-powerdns/&quot;&gt;http://impeza.wordpress.com/2011/03/02/block-content-porno-dengan-powerdns/&lt;/a&gt;&lt;br /&gt;
untuk blacklist domain bisa ambil disini&amp;nbsp;&lt;a href=&quot;http://urlblacklist.com/?sec=download&quot;&gt;http://urlblacklist.com/?sec=download&lt;/a&gt;&lt;br /&gt;
klo saya hanya mengambil domains yang ada di file BL/porn/domains dari hasil extract blacklist yang sudah didonlot.&lt;br /&gt;
&lt;br /&gt;
hanya sedikit tambahan sehingga ada tiga file yang akan diinsert ke tabel records:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &#39;Times New Roman&#39;, Times, serif; font-size: 14px; line-height: 22px;&quot;&gt;#awk ‘{print “NULL” “\t” $1 “\t” $2 “\t” “SOA” “\t” “hostname-dari-powerdns hostmaster@hostname-powerdnsmu 1″ “\t” “86400″ “\t” “0″ “\t” “NULL″ }’ forrecord &amp;gt; soarecords&lt;/span&gt;&lt;/blockquote&gt;
sehingga urutan insert ke table records nya menjadi:&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;background-color: white; color: #333333; font-family: Georgia, &#39;Times New Roman&#39;, Times, serif; font-size: 14px; line-height: 22px;&quot;&gt;#mysql -uroot -papasaja -Dpowerdns -e “LOAD DATA INFILE ‘soarecords’ INTO TABLE records&quot;&lt;br /&gt;
#mysql -uroot -papasaja -Dpowerdns -e “LOAD DATA INFILE ‘sqlrecords’ INTO TABLE records&quot;&lt;br /&gt;
#mysql -uroot -papasaja -Dpowerdns -e “LOAD DATA INFILE ‘wildcard’ INTO TABLE records”&lt;/span&gt;&lt;/blockquote&gt;
&lt;br /&gt;
&lt;br /&gt;
tinggal arahkan client untuk memakai powerdns yang baru dibuat
&lt;br /&gt;
&lt;br /&gt;
===happy oprek===</description><link>http://sum14rdi.blogspot.com/2012/09/sedikit-sharing-membuat-dns-filtering.html</link><author>noreply@blogger.com (sum14rdi)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-627361986679834374.post-3051001485900668104</guid><pubDate>Sat, 09 Apr 2011 10:07:00 +0000</pubDate><atom:updated>2011-04-09T17:34:13.870+07:00</atom:updated><title>Compile kernel 2.6.38 dengan patch liquorix untuk ubuntu 10.10...</title><description>Pada bulan maret 2011 linus mengumumkan direleasenya kernel linux baru yaitu 2.6.38. Ada patch yang (sudah include) katanya membuat perubahan signifikan dalam hal performance yang dinamakan &quot;wonder patch&quot;. Karena penasaran akhirnya googling2 kernel 2.6.38 untuk ubuntu, dapet juga beberapa yang bisa didonlot langsung kemudian tinggal di install via dpkg -i.&lt;br /&gt;&lt;br /&gt;1.&lt;a href=&quot;http://www.megatek.net.br/customkernels/&quot;&gt;www.megatek.net.br&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2.&lt;a href=&quot;http://liquorix.net/&quot;&gt;Liquorix.net&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;klo mau baca-baca bisa juga &lt;a href=&quot;http://www.h-online.com/open/news/item/Main-development-phase-of-Linux-kernel-2-6-38-completed-1171565.html&quot;&gt;kemari&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Kemudian tiba saatnya tangan gatel-gatel untuk coba compile sendiri kernelnya. Setelah baca2 dari &lt;a href=&quot;http://duopetalflower.blogspot.com/2010/11/kernel-compilation-in-ten-steps-ubuntu.html&quot;&gt;sini&lt;/a&gt; kemudian saya coba-coba compile. Saya inginnya driver-driver yang memang tidak perlu agar dihilangkan dari kernel agar kernelnya sedikit ramping.&lt;br /&gt;Ini step-step yang saya lakukan.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;1. mendonlot base kernel di kernel.org. Saya ambilnya yang 2.6.38 bukan yang 2.6.38-2 dengan alasan tutornya pake itu dan takut patch dari liquorix gak compatible. mungkin lain waktu saya coba patch dari liquorix untuk kernel 2.6.38-2&lt;br /&gt;2. mendonlot patch dari &lt;a href=&quot;http://liquorix.net/sources/38.2-1.patch.gz&quot;&gt;liquorix&lt;/a&gt;.&lt;br /&gt;3. extract patch dan kernel basenya.&lt;br /&gt;4. masuk ke directory hasil ekstract base kernel dan lakukan patch dengan : patch -Np1 -i ../38.2-1.patch.&lt;br /&gt;5. make clean&lt;br /&gt;6. make mrproper&lt;br /&gt;7. copy config yang didonlot dari &lt;a href=&quot;http://liquorix.net/sources/38/config.amd64&quot;&gt;sini&lt;/a&gt;. sesuaikan dengan jenisnya apakah x86 atau amd64.&lt;br /&gt;8. make menuconfig, dan silahkan explore sendiri mana aja yang mau diubah....use with your own risk.&lt;br /&gt;9. make-kpkg clean&lt;br /&gt;10. time CONCURRENCY_LEVEL=2 fakeroot make-kpkg --initrd --append-to-version=-liquorixdewex --revision=01.00 kernel-headers kernel-image&lt;br /&gt;11. setelah selesai akan didapatkan dua file .deb, kernel-header....deb dan kernel-image...deb. installnya tinggal sudo dpkg -i *.deb&lt;br /&gt;12. sudo update initramfs -c -k 2.6.38-liquorixdewex&lt;br /&gt;13. sudo update-grub&lt;br /&gt;14. sudo shutdown -r now&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;selesai.</description><link>http://sum14rdi.blogspot.com/2011/04/compile-kernel-2638-dengan-patch.html</link><author>noreply@blogger.com (sum14rdi)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-627361986679834374.post-4119000480848283952</guid><pubDate>Sat, 06 Nov 2010 04:06:00 +0000</pubDate><atom:updated>2010-11-11T20:26:22.960+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">firefox</category><category domain="http://www.blogger.com/atom/ns#">linux</category><title>incip incip firefox 4.0 di ubuntu 10.04 via ppa</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;a href=&quot;http://www.mozilla.com/en-US/firefox/beta/&quot;&gt;Firefox 4&lt;/a&gt; (masih status beta ketika tulisan ini dibuat) diperkenalkan oleh mozilla. Untuk lengkapnya silahkan merujuk ke link yang diberikan.&lt;br /&gt;Untuk incip-incip versi 4 ini tidak dengan cara build langsung via source karena keterbatasan SDM-nya, jadi menggunakan file dari ppa.&lt;br /&gt;ok, langsung aja ke TKP....&lt;br /&gt;silahkan pake terminalnya dan ketikan :&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;sudo add-apt-repository ppa:ubuntu-mozilla-daily/ppa &amp;amp;&amp;amp; sudo apt-get update&lt;br /&gt;sudo apt-get install firefox-4.0&lt;/blockquote&gt;dan monggo di incip-incip....</description><link>http://sum14rdi.blogspot.com/2010/11/incip-incip-firefox-40-di-ubuntu-1004.html</link><author>noreply@blogger.com (sum14rdi)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-627361986679834374.post-4920671945551150429</guid><pubDate>Wed, 15 Sep 2010 03:30:00 +0000</pubDate><atom:updated>2010-09-15T11:43:11.296+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">FreeBSD</category><category domain="http://www.blogger.com/atom/ns#">lusca</category><title>nyok...kita kompress image dilusca (Freebsd) via ziproxy....</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;Untuk mengenal ziproxy, silahkan melihat ke &lt;a href=&quot;http://ziproxy.sourceforge.net/index.html&quot;&gt;ziproxy website&lt;/a&gt;&lt;br /&gt;Untuk keperluan ini diharapkan sudah menginstall squid/lusca di freebsd anda. Dalam  hal ini ziproxy digunakan sebagai parent dari squid/lusca yang sudah dibuat.&lt;br /&gt;Topologi yang saya pakai:&lt;br /&gt;&lt;blockquote&gt;client ---&gt; squid ---&gt; ziproxy ---&gt; INET.&lt;/blockquote&gt;dimana squid dan ziproxy berada dalam satu mesin/cpu.&lt;br /&gt;Langsung ke TKP, dimana saya menginstall ziproxy via ports,&lt;br /&gt;&lt;blockquote&gt;#cd /usr/ports/www/ziproxy&lt;br /&gt;#make install clean&lt;/blockquote&gt;jangan lupa ditambahkan di /etc/rc.conf:&lt;br /&gt;&lt;blockquote&gt;ziproxy_enable=&quot;YES&quot;&lt;br /&gt;ziproxy_config=&quot;/usr/local/etc/ziproxy/ziproxy.conf&quot;&lt;br /&gt;&lt;/blockquote&gt;kemudian buat directory ziproxy di /var/log/ziproxy dan ubah kepemilikan kepada user dan group squid.&lt;br /&gt;&lt;blockquote&gt;#mkdir /var/log/ziproxy&lt;br /&gt;#chown -R squid:squid /var/log/ziproxy&lt;/blockquote&gt;selanjutnya diubah/diedit file /usr/local/etc/ziproxy/ziproxy.conf&lt;br /&gt;yang diubah hanya bagian-bagian  seperti dibawah ini, satu hal yang perlu diperhatikan bahwa  yang dibawah ini hanya sebagian  dari isi ziproxy.conf.&lt;br /&gt;&lt;blockquote&gt;Port = 8081&lt;br /&gt;Address = &quot;127.0.0.1&quot;&lt;br /&gt;RunAsUser = &quot;squid&quot;&lt;br /&gt;RunAsGroup = &quot;squid&quot;&lt;br /&gt;ErrorLog = &quot;/var/log/ziproxy/error.log&quot;&lt;br /&gt;AccessLog = &quot;/var/log/ziproxy/access.log&quot;&lt;br /&gt;TransparentProxy = false&lt;br /&gt;ConventionalProxy = true&lt;br /&gt;AllowMethodCONNECT = false&lt;br /&gt;UseContentLength = false&lt;br /&gt; LosslessCompressCT = {&lt;br /&gt;    &quot;text/*&quot;,&lt;br /&gt;    &quot;application/asp&quot;,&lt;br /&gt;    &quot;application/awk&quot;,&lt;br /&gt;    &quot;application/cgi&quot;,&lt;br /&gt;    &quot;application/class&quot;,&lt;br /&gt;    &quot;application/css&quot;,&lt;br /&gt;    &quot;application/dvi&quot;,&lt;br /&gt;    &quot;application/executable&quot;,&lt;br /&gt;    &quot;application/font&quot;,&lt;br /&gt;    &quot;application/futuresplash&quot;,&lt;br /&gt;    &quot;application/iso9660-image&quot;,&lt;br /&gt;    &quot;application/java&quot;,&lt;br /&gt;    &quot;application/javascript&quot;,&lt;br /&gt;    &quot;application/json&quot;,&lt;br /&gt;    &quot;application/msexcel&quot;,&lt;br /&gt;    &quot;application/mspowerpoint&quot;,&lt;br /&gt;    &quot;application/msword&quot;,&lt;br /&gt;    &quot;application/pdf&quot;,&lt;br /&gt;    &quot;application/perl&quot;,&lt;br /&gt;    &quot;application/php&quot;,&lt;br /&gt;    &quot;application/postscript&quot;,&lt;br /&gt;    &quot;application/python&quot;,&lt;br /&gt;    &quot;application/rtf&quot;,&lt;br /&gt;    &quot;application/shellscript&quot;,&lt;br /&gt;    &quot;application/shockwave&quot;,&lt;br /&gt;    &quot;application/staroffice&quot;,&lt;br /&gt;    &quot;application/tar&quot;,&lt;br /&gt;    &quot;application/truetype-font&quot;,&lt;br /&gt;    &quot;application/vnd.*&quot;,&lt;br /&gt;    &quot;application/*+xml&quot;,&lt;br /&gt;    &quot;application/xml&quot;,&lt;br /&gt;    &quot;application/xml-dtd&quot;,&lt;br /&gt;    &quot;image/svg+xml&quot;&lt;br /&gt; }&lt;br /&gt;LosslessCompressCTAlsoXST = true&lt;br /&gt;ProcessJPG = true&lt;br /&gt;ProcessPNG = true&lt;br /&gt;ProcessGIF = true&lt;br /&gt;ImageQuality = {50,50,50,50}&lt;br /&gt; ProcessJP2 = false&lt;br /&gt; ProcessToJP2 = true&lt;br /&gt; ForceOutputNoJP2 = false&lt;br /&gt; AnnounceJP2Capability = true&lt;br /&gt; JP2ImageQuality = {50,50,50,50}&lt;/blockquote&gt;jangan lupa untuk menambahkan yang dibawah ini di squid.conf-nya:&lt;span style=&quot;font-family: monospace;&quot;&gt;&lt;span style=&quot;font-weight: bold;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;blockquote&gt;cache_peer localhost parent 8081 0 no-query no-digest&lt;b&gt;&lt;br /&gt;&lt;/b&gt;never_direct allow all &lt;/blockquote&gt;sekarang silahkan di jalankan ziproxynya dan restart squid/lusca-nya.&lt;br /&gt;menjalankan ziproxy:&lt;br /&gt;&lt;blockquote&gt;#/usr/local/etc/rc.d/ziproxy onestart&lt;/blockquote&gt;merestart squid:&lt;br /&gt;&lt;blockquote&gt;#squid -k reconfigure&lt;/blockquote&gt;selesai&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://sum14rdi.blogspot.com/2010/09/nyokkita-kompress-image-dilusca-freebsd.html</link><author>noreply@blogger.com (sum14rdi)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-627361986679834374.post-2359528911171699279</guid><pubDate>Thu, 19 Aug 2010 04:51:00 +0000</pubDate><atom:updated>2010-09-14T09:12:44.941+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">FreeBSD</category><title>yuk mainan unbound DNS resolver ........</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;Buat yang berkecimpung di dunia jaringan komputer sudah tidak asing dengan namanya DNS resolver. Tanya mbah google aja ya tentang apa itu DNS resolver? :D&lt;br /&gt;Bagi saya yang telah terbiasa dengan DNS resolver bawaan mikrotik (dulu pakenya karena segi kepraktisan saja, tidak ada yang lain :D ), sejalan dengan bertambahnya cpu untuk kepentingan pengaturan internet kantor (tambah satu buat Proxy, saya pake OS FreeBSD yang didalamnya ditanam Lusca HEAD cache) ditambah racun dari &lt;a href=&quot;http://www.forummikrotik.com/software/14263-share-mari-incip2-dns-unbound-high-performance.html&quot;&gt;forum mikrotik indonesia&lt;/a&gt;maka diputuskan untuk mencobanya. Untuk caranya (dalam hal ini di FreeBSD) bisa merujuk ke link tadi atau bisa dilihat di hasil copas ini (credit to bro siber @ forummikrotik[dot]com) :&lt;br /&gt;&lt;/div&gt;cara install :&lt;br /&gt;&lt;pre class=&quot;alt2&quot; dir=&quot;ltr&quot; style=&quot;margin: 0px; padding: 6px; border: 1px inset; width: 520px; height: 210px; text-align: left; overflow: auto;&quot;&gt;&lt;blockquote&gt;cd /usr/ports/dns/unbound&lt;br /&gt;make config (centang  Libevent &amp;amp; Thread)&lt;br /&gt;make install clean&lt;br /&gt;cd /usr/local/etc/unbound&lt;br /&gt;fetch ftp://FTP.INTERNIC.NET/domain/named.cache&lt;br /&gt;unbound-control-setup&lt;br /&gt;chown unbound:wheel unbound_*&lt;br /&gt;chmod 440 unbound_*&lt;br /&gt;mkdir /usr/local/etc/unbound/dev&lt;br /&gt;echo &quot;devfs   /usr/local/etc/unbound/dev      devfs   rw \&lt;br /&gt;          0       0&quot;  &gt;&gt; /etc/fstab&lt;br /&gt;echo &#39;unbound_enable=&quot;YES&quot;&#39; &gt;&gt; /etc/rc.conf&lt;br /&gt;echo &#39;devfs_set_rulesets=&quot;/usr/local/etc/unbound/dev=unbound_ruleset&quot;&#39; \&lt;br /&gt;&gt;&gt; /etc/rc.conf&lt;/blockquote&gt;&lt;/pre&gt;&lt;br /&gt;cara config:&lt;br /&gt;&lt;pre class=&quot;alt2&quot; dir=&quot;ltr&quot; style=&quot;margin: 0px; padding: 6px; border: 1px inset; width: 520px; height: 498px; text-align: left; overflow: auto;&quot;&gt;     &lt;blockquote&gt;&lt;br /&gt;verbosity: 5&lt;br /&gt;statistics-interval: 120&lt;br /&gt;num-threads: 2&lt;br /&gt;interface: 0.0.0.0&lt;br /&gt;&lt;br /&gt;outgoing-range: 512&lt;br /&gt;num-queries-per-thread: 1024&lt;br /&gt;&lt;br /&gt;msg-cache-size: 16m&lt;br /&gt;rrset-cache-size: 32m&lt;br /&gt;&lt;br /&gt;msg-cache-slabs: 4&lt;br /&gt;rrset-cache-slabs: 4&lt;br /&gt;&lt;br /&gt;cache-max-ttl: 86400&lt;br /&gt;infra-host-ttl: 60&lt;br /&gt;infra-lame-ttl: 120&lt;br /&gt;&lt;br /&gt;infra-cache-numhosts: 10000&lt;br /&gt;infra-cache-lame-size: 10k&lt;br /&gt;&lt;br /&gt;do-ip4: yes&lt;br /&gt;do-ip6: no&lt;br /&gt;do-udp: yes&lt;br /&gt;do-tcp: yes&lt;br /&gt;do-daemonize: yes&lt;br /&gt;&lt;br /&gt;access-control: 0.0.0.0/0 allow&lt;br /&gt;access-control: 127.0.0.0/8 allow&lt;br /&gt;&lt;br /&gt;chroot: &quot;/usr/local/etc/unbound&quot;&lt;br /&gt;username: &quot;unbound&quot;&lt;br /&gt;directory: &quot;/usr/local/etc/unbound&quot;&lt;br /&gt;#logfile: &quot;/usr/local/etc/unbound/unbound.log&quot;&lt;br /&gt;#use-syslog: yes&lt;br /&gt;logfile: &quot;&quot;&lt;br /&gt;use-syslog: no&lt;br /&gt;pidfile: &quot;/usr/local/etc/unbound/unbound.pid&quot;&lt;br /&gt;root-hints: &quot;/usr/local/etc/unbound/named.cache&quot;&lt;br /&gt;&lt;br /&gt;identity: &quot;DNS&quot;&lt;br /&gt;version: &quot;1.0&quot;&lt;br /&gt;hide-identity: yes&lt;br /&gt;hide-version: yes&lt;br /&gt;harden-glue: yes&lt;br /&gt;do-not-query-address: 127.0.0.1/8&lt;br /&gt;do-not-query-localhost: yes&lt;br /&gt;module-config: &quot;iterator&quot;&lt;br /&gt;&lt;br /&gt;local-zone: &quot;localhost.&quot; static&lt;br /&gt;local-data: &quot;localhost. 10800 IN NS localhost.&quot;&lt;br /&gt;local-data: &quot;localhost. 10800 IN SOA localhost. \&lt;br /&gt;nobody.invalid. 1 3600 1200 604800 10800&quot;&lt;br /&gt;local-data: &quot;localhost. 10800 IN A 127.0.0.1&quot;&lt;br /&gt;&lt;br /&gt;local-zone: &quot;127.in-addr.arpa.&quot; static&lt;br /&gt;local-data: &quot;127.in-addr.arpa. 10800 IN NS localhost.&quot;&lt;br /&gt;local-data: &quot;127.in-addr.arpa. 10800 IN SOA localhost. \&lt;br /&gt;nobody.invalid. 2 3600 1200 604800 10800&quot;&lt;br /&gt;local-data: &quot;1.0.0.127.in-addr.arpa. 10800 IN PTR localhost.&quot;&lt;br /&gt;&lt;br /&gt;local-zone: &quot;xxxxx.net.&quot; static&lt;br /&gt;local-data: &quot;xxxxx.net. 86400 IN NS ns1.xxxxx.net.&quot;&lt;br /&gt;local-data: &quot;xxxxx.net. 86400 IN NS ns2.xxxxx.net.&quot;&lt;br /&gt;local-data: &quot;xxxxx.net. 86400 IN SOA xxxxx.net. \&lt;br /&gt;hostmaster.xxxxx.net.net.  3 3600 1200 604800 86400&quot;&lt;br /&gt;local-data: &quot;xxxxx.net. 86400 IN A 172.16.17.2&quot;&lt;br /&gt;local-data: &quot;www.xxxxx.net. 86400 IN A 172.16.17.2&quot;&lt;br /&gt;local-data: &quot;ns1.xxxxx.net. 86400 IN A 172.16.17.2&quot;&lt;br /&gt;local-data: &quot;ns1.xxxxx.net. 86400 IN A 172.16.17.20&quot;&lt;br /&gt;local-data: &quot;mail.x.x.x.net. 86400 IN A 192.168.70.1&quot;&lt;br /&gt;local-data: &quot;xxxxx.net. 86400 IN MX 10 mail.xxxxx.net.&quot;&lt;br /&gt;local-data: &quot;xxxxx.net. 86400 IN TXT v=spf1 a mx ~all&quot;&lt;br /&gt;&lt;br /&gt;local-zone: &quot;17.16.172.in-addr.arpa.&quot; static&lt;br /&gt;local-data: &quot;17.16.172.in-addr.arpa. 10800 IN NS xxxxx.net.&quot;&lt;br /&gt;local-data: &quot;17.16.172.in-addr.arpa. 10800 IN SOA xxxxx.net. \&lt;br /&gt;hostmaster.xxxxx.net. 4 3600 1200 604800 864000&quot;&lt;br /&gt;local-data: &quot;2.17.16.172.in-addr.arpa. 10800 IN PTR xxxxx.net.&quot;&lt;br /&gt;local-data: &quot;3.17.16.172.in-addr.arpa. 10800 IN PTR  nms.xxxxx.net.&quot;&lt;br /&gt;local-data: &quot;4.17.16.172.in-addr.arpa. 10800 IN PTR  sadewa.xxxxx.net.&quot;&lt;br /&gt;forward-zone:&lt;br /&gt;name: &quot;.&quot;&lt;br /&gt;forward-addr: 202.155.x.x&lt;br /&gt;forward-addr: 202.155.x.x&lt;br /&gt;&lt;br /&gt;remote-control:&lt;br /&gt;control-enable: yes&lt;br /&gt;control-interface: 127.0.0.1&lt;br /&gt;control-port: 953&lt;br /&gt;server-key-file: &quot;/usr/local/etc/unbound/unbound_server.key&quot;&lt;br /&gt;server-cert-file: &quot;/usr/local/etc/unbound/unbound_server.pem&quot;&lt;br /&gt;control-key-file: &quot;/usr/local/etc/unbound/unbound_control.key&quot;&lt;br /&gt;control-cert-file: &quot;/usr/local/etc/unbound/unbound_control.pem&quot;&lt;/blockquote&gt;&lt;/pre&gt;cara pakai:&lt;br /&gt;arahkan semua client untuk menggunakan DNS server dengan IP dimana unbound diinstall, semisal unbound diinstall di komputer dengan IP 192.168.0.200, maka DNS komputer client di isi dengan ip 192.168.0.200&lt;br /&gt;&lt;br /&gt;happy oprek</description><link>http://sum14rdi.blogspot.com/2010/08/yuk-mainan-unbound-dns-resolver.html</link><author>noreply@blogger.com (sum14rdi)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-627361986679834374.post-6159031147701850718</guid><pubDate>Fri, 30 Jul 2010 01:42:00 +0000</pubDate><atom:updated>2010-12-13T13:43:12.816+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">lusca</category><title>(sedikit) patch untuk lusca cache</title><description>Sebelumnya terima kasih untuk mereka-mereka yang telah susah payah membuat agar &lt;a href=&quot;http://code.google.com/p/lusca-cache/&quot;&gt;Lusca cache&lt;/a&gt; semakin sempurna dengan membuat patch-patch.&lt;br /&gt;sekarang ijinkan saya untuk mencopas karya mereka. Adapun patch-patch ini memiliki kegunaan antara lain:&lt;br /&gt;&lt;blockquote&gt;1. Ignore-Must-Revalidate patch.&lt;br /&gt;2. Improve %nn parser patch.&lt;br /&gt;3. Memoryleak on maformed requests patch.&lt;br /&gt;4. Async request doesn&#39;t use store_url when available patch.&lt;br /&gt;5. HTTP responses with no Date patch.&lt;br /&gt;6. Squid crashes on assert patch.&lt;br /&gt;7. Correct If-(None-)Match: * processing patch.&lt;br /&gt;8. -F switch doesn&#39;t block requests while COSS store is being rebuilt patch.&lt;br /&gt;9. Removes Cache-Control request headers, don’t let clients by-pass cache if it is primed.&lt;br /&gt;10.&lt;b&gt; &lt;/b&gt;Normalize Accept-Encoding Headers for a higher cache hit rate.&lt;br /&gt;11. Clear Accept-Encoding Headers for content that should not be compressed such as image,video and audio.&lt;/blockquote&gt;berikut ini patchnya..&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;*** lib/rfc1738.c    2009-11-05 11:56:18.000000000 +0700&lt;br /&gt;--- lib/rfc1738.c    2010-07-09 08:31:42.000000000 +0700&lt;br /&gt;***************&lt;br /&gt;*** 204,233 ****&lt;br /&gt;   *  rfc1738_unescape() - Converts escaped characters (%xy numbers) in&lt;br /&gt;   *  given the string.  %% is a %. %ab is the 8-bit hexadecimal number &quot;ab&quot;&lt;br /&gt;   */&lt;br /&gt;  void&lt;br /&gt;! rfc1738_unescape(char *s)&lt;br /&gt;  {&lt;br /&gt;!     char hexnum[3];&lt;br /&gt;      int i, j;            /* i is write, j is read */&lt;br /&gt;!     unsigned int x;&lt;br /&gt;      for (i = j = 0; s[j]; i++, j++) {&lt;br /&gt;      s[i] = s[j];&lt;br /&gt;!     if (s[i] != &#39;%&#39;)&lt;br /&gt;!         continue;&lt;br /&gt;!     if (s[j + 1] == &#39;%&#39;) {    /* %% case */&lt;br /&gt;!         j++;&lt;br /&gt;!         continue;&lt;br /&gt;!     }&lt;br /&gt;!     if (s[j + 1] &amp;amp;&amp;amp; s[j + 2]) {&lt;br /&gt;!         if (s[j + 1] == &#39;0&#39; &amp;amp;&amp;amp; s[j + 2] == &#39;0&#39;) {    /*  case */&lt;br /&gt;!         j += 2;&lt;br /&gt;!         continue;&lt;br /&gt;!         }&lt;br /&gt;!         hexnum[0] = s[j + 1];&lt;br /&gt;!         hexnum[1] = s[j + 2];&lt;br /&gt;!         hexnum[2] = &#39;\0&#39;;&lt;br /&gt;!         if (1 == sscanf(hexnum, &quot;%x&quot;, &amp;amp;x)) {&lt;br /&gt;!         s[i] = (char) (0x0ff &amp;amp; x);&lt;br /&gt;          j += 2;&lt;br /&gt;          }&lt;br /&gt;      }&lt;br /&gt;--- 204,247 ----&lt;br /&gt;   *  rfc1738_unescape() - Converts escaped characters (%xy numbers) in&lt;br /&gt;   *  given the string.  %% is a %. %ab is the 8-bit hexadecimal number &quot;ab&quot;&lt;br /&gt;   */&lt;br /&gt;+ static inline int&lt;br /&gt;+ fromhex(char ch)&lt;br /&gt;+ {&lt;br /&gt;+     if (ch &gt;= &#39;0&#39; &amp;amp;&amp;amp; ch &lt;= &#39;9&#39;)&lt;br /&gt;+     return ch - &#39;0&#39;;&lt;br /&gt;+     if (ch &gt;= &#39;a&#39; &amp;amp;&amp;amp; ch &lt;= &#39;f&#39;)&lt;br /&gt;+     return ch - &#39;a&#39; + 10;&lt;br /&gt;+     if (ch &gt;= &#39;A&#39; &amp;amp;&amp;amp; ch &lt;= &#39;F&#39;)&lt;br /&gt;+     return ch - &#39;A&#39; + 10;&lt;br /&gt;+     return -1;&lt;br /&gt;+ }&lt;br /&gt;+&lt;br /&gt;  void&lt;br /&gt;! rfc1738_unescape(char *s_)&lt;br /&gt;  {&lt;br /&gt;! /*    char hexnum[3]; */&lt;br /&gt;!     unsigned char *s = (unsigned char *) s_;&lt;br /&gt;      int i, j;            /* i is write, j is read */&lt;br /&gt;! /*    unsigned int x; */&lt;br /&gt;      for (i = j = 0; s[j]; i++, j++) {&lt;br /&gt;      s[i] = s[j];&lt;br /&gt;!     if (s[j] != &#39;%&#39;) {&lt;br /&gt;!         /* normal case, nothing more to do */&lt;br /&gt;!     } else if (s[j + 1] == &#39;%&#39;) {    /* %% case */&lt;br /&gt;!         j++;        /* Skip % */&lt;br /&gt;!     } else {&lt;br /&gt;!         /* decode */&lt;br /&gt;!         int v1, v2, x;&lt;br /&gt;!         v1 = fromhex(s[j + 1]);&lt;br /&gt;!         if (v2 &lt; 0)&lt;br /&gt;!         continue;   /* non-hex or \0 */&lt;br /&gt;!         v2 = fromhex(s[j + 2]);&lt;br /&gt;!         if (v2 &lt; 0)&lt;br /&gt;!         continue;  /* non-hex or \0 */&lt;br /&gt;!         /* fromhex returns -1 on error which brings this out of range (|, not +) */&lt;br /&gt;!         x = v1 &lt;&lt; 4 | v2;&lt;br /&gt;!         if (x &gt; 0 &amp;amp;&amp;amp; x &lt;= 255) {&lt;br /&gt;!         s[i] = x;&lt;br /&gt;          j += 2;&lt;br /&gt;          }&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;*** src/cache_cf.c    2010-02-16 18:21:51.000000000 +0700&lt;br /&gt;--- src/cache_cf.c    2010-07-09 08:31:41.000000000 +0700&lt;br /&gt;***************&lt;br /&gt;*** 489,494 ****&lt;br /&gt;--- 489,500 ----&lt;br /&gt;          break;&lt;br /&gt;      }&lt;br /&gt;      for (R = Config.Refresh; R; R = R-&gt;next) {&lt;br /&gt;+             if (!R-&gt;flags.ignore_must_revalidate)&lt;br /&gt;+                 continue;&lt;br /&gt;+             debug(22, 1) (&quot;WARNING: use of &#39;ignore-must-revalidate&#39; in &#39;refresh_pattern&#39; violates HTTP\n&quot;);&lt;br /&gt;+             break;&lt;br /&gt;+     }&lt;br /&gt;+     for (R = Config.Refresh; R; R = R-&gt;next) {&lt;br /&gt;          if (R-&gt;stale_while_revalidate &lt;= 0)&lt;br /&gt;          continue;&lt;br /&gt;          debug(22, 1) (&quot;WARNING: use of &#39;stale-while-revalidate&#39; in &#39;refresh_pattern&#39; violates HTTP\n&quot;);&lt;br /&gt;***************&lt;br /&gt;*** 2261,2266 ****&lt;br /&gt;--- 2267,2274 ----&lt;br /&gt;          storeAppendPrintf(entry, &quot; ignore-private&quot;);&lt;br /&gt;      if (head-&gt;flags.ignore_auth)&lt;br /&gt;          storeAppendPrintf(entry, &quot; ignore-auth&quot;);&lt;br /&gt;+     if (head-&gt;flags.ignore_must_revalidate)&lt;br /&gt;+         storeAppendPrintf(entry, &quot; ignore-must-revalidate&quot;);&lt;br /&gt;      if (head-&gt;stale_while_revalidate &gt; 0)&lt;br /&gt;          storeAppendPrintf(entry, &quot; stale-while-revalidate=%d&quot;, head-&gt;stale_while_revalidate);&lt;br /&gt;  #endif&lt;br /&gt;***************&lt;br /&gt;*** 2293,2298 ****&lt;br /&gt;--- 2301,2307 ----&lt;br /&gt;      int ignore_no_cache = 0;&lt;br /&gt;      int ignore_no_store = 0;&lt;br /&gt;      int ignore_private = 0;&lt;br /&gt;+     int ignore_must_revalidate = 0;&lt;br /&gt;      int ignore_auth = 0;&lt;br /&gt;  #endif&lt;br /&gt;      int stale_while_revalidate = -1;&lt;br /&gt;***************&lt;br /&gt;*** 2338,2343 ****&lt;br /&gt;--- 2347,2354 ----&lt;br /&gt;          ignore_private = 1;&lt;br /&gt;      else if (!strcmp(token, &quot;ignore-auth&quot;))&lt;br /&gt;          ignore_auth = 1;&lt;br /&gt;+     else if (!strcmp(token, &quot;ignore-must-revalidate&quot;))&lt;br /&gt;+         ignore_must_revalidate = 1;&lt;br /&gt;      else if (!strcmp(token, &quot;reload-into-ims&quot;)) {&lt;br /&gt;          reload_into_ims = 1;&lt;br /&gt;          refresh_nocache_hack = 1;&lt;br /&gt;***************&lt;br /&gt;*** 2397,2402 ****&lt;br /&gt;--- 2408,2415 ----&lt;br /&gt;      t-&gt;flags.ignore_no_store = 1;&lt;br /&gt;      if (ignore_private)&lt;br /&gt;      t-&gt;flags.ignore_private = 1;&lt;br /&gt;+     if (ignore_must_revalidate)&lt;br /&gt;+     t-&gt;flags.ignore_must_revalidate = 1;&lt;br /&gt;      if (ignore_auth)&lt;br /&gt;      t-&gt;flags.ignore_auth = 1;&lt;br /&gt;  #endif&lt;br /&gt;&lt;br /&gt;*** src/cf.data.pre    2010-03-25 21:25:33.000000000 +0700&lt;br /&gt;--- src/cf.data.pre    2010-07-09 08:31:41.000000000 +0700&lt;br /&gt;***************&lt;br /&gt;*** 3125,3130 ****&lt;br /&gt;--- 3125,3131 ----&lt;br /&gt;           ignore-reload&lt;br /&gt;           ignore-no-cache&lt;br /&gt;           ignore-no-store&lt;br /&gt;+          ignore-must-revalidate&lt;br /&gt;           ignore-private&lt;br /&gt;           ignore-auth&lt;br /&gt;           stale-while-revalidate=NN&lt;br /&gt;***************&lt;br /&gt;*** 3164,3169 ****&lt;br /&gt;--- 3165,3175 ----&lt;br /&gt;          from a server, only a client, though plenty of servers&lt;br /&gt;          send it anyway.&lt;br /&gt; &lt;br /&gt;+         ignore-must-revalidate ignores any ``Cache-Control: must-revalidate&#39;&#39;&lt;br /&gt;+         headers received from a server. Doing this VIOLATES&lt;br /&gt;+         the HTTP standard. Enabling this feature could make you&lt;br /&gt;+         liable for problems which it causes.&lt;br /&gt;+&lt;br /&gt;          ignore-private ignores any ``Cache-control: private&#39;&#39;&lt;br /&gt;          headers received from a server. Doing this VIOLATES&lt;br /&gt;          the HTTP standard. Enabling this feature could make you&lt;br /&gt;&lt;br /&gt;*** src/client_side_async_refresh.c    2010-05-20 16:19:09.000000000 +0700&lt;br /&gt;--- src/client_side_async_refresh.c    2010-07-09 08:31:42.000000000 +0700&lt;br /&gt;***************&lt;br /&gt;*** 76,81 ****&lt;br /&gt;--- 76,83 ----&lt;br /&gt;      accessLogLog(&amp;amp;al, ch);&lt;br /&gt;      aclChecklistFree(ch);&lt;br /&gt;      storeClientUnregister(async-&gt;sc, async-&gt;entry, async);&lt;br /&gt;+     storeUnlockObject(async-&gt;entry-&gt;mem_obj-&gt;old_entry);&lt;br /&gt;+     async-&gt;entry-&gt;mem_obj-&gt;old_entry = NULL;&lt;br /&gt;      storeUnlockObject(async-&gt;entry);&lt;br /&gt;      storeUnlockObject(async-&gt;old_entry);&lt;br /&gt;      requestUnlink(async-&gt;request);&lt;br /&gt;***************&lt;br /&gt;*** 129,134 ****&lt;br /&gt;--- 131,138 ----&lt;br /&gt;      async-&gt;entry = storeCreateEntry(url,&lt;br /&gt;      request-&gt;flags,&lt;br /&gt;      request-&gt;method);&lt;br /&gt;+     if (request-&gt;store_url)&lt;br /&gt;+     storeEntrySetStoreUrl(async-&gt;entry, request-&gt;store_url);&lt;br /&gt;      async-&gt;entry-&gt;mem_obj-&gt;old_entry = async-&gt;old_entry;&lt;br /&gt;      storeLockObject(async-&gt;entry-&gt;mem_obj-&gt;old_entry);&lt;br /&gt;      async-&gt;sc = storeClientRegister(async-&gt;entry, async);&lt;br /&gt;&lt;br /&gt;*** src/client_side.c    2010-07-08 14:22:01.000000000 +0700&lt;br /&gt;--- src/client_side.c    2010-07-09 08:31:42.000000000 +0700&lt;br /&gt;***************&lt;br /&gt;*** 975,980 ****&lt;br /&gt;--- 975,1005 ----&lt;br /&gt;      return 1;&lt;br /&gt;  }&lt;br /&gt; &lt;br /&gt;+  /*&lt;br /&gt;+  * Internal helper function for If-(None-)Match logics&lt;br /&gt;+  */&lt;br /&gt;+ static int&lt;br /&gt;+ checkIfMatch(request_t * request, MemObject * mem, http_hdr_type hdr)&lt;br /&gt;+ {&lt;br /&gt;+     String req_etags;&lt;br /&gt;+     const char *rep_etag;&lt;br /&gt;+     int etag_match = 0;&lt;br /&gt;+&lt;br /&gt;+     if (mem-&gt;reply-&gt;sline.status != HTTP_OK) {&lt;br /&gt;+     debug(33, 4) (&quot;checkIfMatch: Reply code %d != 200\n&quot;,&lt;br /&gt;+         mem-&gt;reply-&gt;sline.status);&lt;br /&gt;+     return -1;        /* Can&#39;t check */&lt;br /&gt;+     }&lt;br /&gt;+     rep_etag = httpHeaderGetStr(&amp;amp;mem-&gt;reply-&gt;header, HDR_ETAG);&lt;br /&gt;+     req_etags = httpHeaderGetList(&amp;amp;request-&gt;header, hdr);&lt;br /&gt;+     if (rep_etag)&lt;br /&gt;+     etag_match = strListIsMember(&amp;amp;req_etags, rep_etag, &#39;,&#39;);&lt;br /&gt;+     if (!etag_match)&lt;br /&gt;+     etag_match = strListIsMember(&amp;amp;req_etags, &quot;*&quot;, &#39;,&#39;);&lt;br /&gt;+     stringClean(&amp;amp;req_etags);&lt;br /&gt;+     return etag_match;&lt;br /&gt;+ }&lt;br /&gt;+&lt;br /&gt;  /*&lt;br /&gt;   * clientCacheHit should only be called until the HTTP reply headers&lt;br /&gt;   * have been parsed.  Normally this should be a single call, but&lt;br /&gt;***************&lt;br /&gt;*** 1098,1142 ****&lt;br /&gt;      return;&lt;br /&gt;      }&lt;br /&gt;      if (httpHeaderHas(&amp;amp;r-&gt;header, HDR_IF_MATCH)) {&lt;br /&gt;!     const char *rep_etag = httpHeaderGetStr(&amp;amp;e-&gt;mem_obj-&gt;reply-&gt;header, HDR_ETAG);&lt;br /&gt;!     int has_etag = 0;&lt;br /&gt;!     if (rep_etag) {&lt;br /&gt;!         String req_etags = httpHeaderGetList(&amp;amp;http-&gt;request-&gt;header, HDR_IF_MATCH);&lt;br /&gt;!         has_etag = strListIsMember(&amp;amp;req_etags, rep_etag, &#39;,&#39;);&lt;br /&gt;!         stringClean(&amp;amp;req_etags);&lt;br /&gt;!     }&lt;br /&gt;!     if (!has_etag) {&lt;br /&gt;          /* The entity tags does not match. This cannot be a hit for this object.&lt;br /&gt;           * Query the origin to see what should be done.&lt;br /&gt;           */&lt;br /&gt;          http-&gt;log_type = LOG_TCP_MISS;&lt;br /&gt;          clientProcessMiss(http);&lt;br /&gt;          return;&lt;br /&gt;      }&lt;br /&gt;      }&lt;br /&gt;      if (httpHeaderHas(&amp;amp;r-&gt;header, HDR_IF_NONE_MATCH)) {&lt;br /&gt;!     String req_etags;&lt;br /&gt;!     const char *rep_etag = httpHeaderGetStr(&amp;amp;e-&gt;mem_obj-&gt;reply-&gt;header, HDR_ETAG);&lt;br /&gt;!     int has_etag;&lt;br /&gt;!     if (mem-&gt;reply-&gt;sline.status != HTTP_OK) {&lt;br /&gt;!         debug(33, 4) (&quot;clientCacheHit: Reply code %d != 200\n&quot;,&lt;br /&gt;!         mem-&gt;reply-&gt;sline.status);&lt;br /&gt;          http-&gt;log_type = LOG_TCP_MISS;&lt;br /&gt;          clientProcessMiss(http);&lt;br /&gt;          return;&lt;br /&gt;      }&lt;br /&gt;!     if (rep_etag) {&lt;br /&gt;!         req_etags = httpHeaderGetList(&amp;amp;http-&gt;request-&gt;header, HDR_IF_NONE_MATCH);&lt;br /&gt;!         has_etag = strListIsMember(&amp;amp;req_etags, rep_etag, &#39;,&#39;);&lt;br /&gt;!         stringClean(&amp;amp;req_etags);&lt;br /&gt;!         if (has_etag) {&lt;br /&gt;!         debug(33, 4) (&quot;clientCacheHit: If-None-Match matches\n&quot;);&lt;br /&gt;!         if (is_modified == -1)&lt;br /&gt;!             is_modified = 0;&lt;br /&gt;!         } else {&lt;br /&gt;!         debug(33, 4) (&quot;clientCacheHit: If-None-Match mismatch\n&quot;);&lt;br /&gt;!         is_modified = 1;&lt;br /&gt;!         }&lt;br /&gt;      }&lt;br /&gt;      }&lt;br /&gt;      if (r-&gt;flags.ims &amp;amp;&amp;amp; mem-&gt;reply-&gt;sline.status == HTTP_OK) {&lt;br /&gt;--- 1123,1156 ----&lt;br /&gt;      return;&lt;br /&gt;      }&lt;br /&gt;      if (httpHeaderHas(&amp;amp;r-&gt;header, HDR_IF_MATCH)) {&lt;br /&gt;!     int etag_match = checkIfMatch(r, mem, HDR_IF_MATCH);&lt;br /&gt;!&lt;br /&gt;!     if (etag_match != 1) {&lt;br /&gt;          /* The entity tags does not match. This cannot be a hit for this object.&lt;br /&gt;           * Query the origin to see what should be done.&lt;br /&gt;           */&lt;br /&gt;+ +        debug(33, 4) (&quot;clientCacheHit: If-Match mismatch\n&quot;);&lt;br /&gt;          http-&gt;log_type = LOG_TCP_MISS;&lt;br /&gt;          clientProcessMiss(http);&lt;br /&gt;          return;&lt;br /&gt;      }&lt;br /&gt;      }&lt;br /&gt;      if (httpHeaderHas(&amp;amp;r-&gt;header, HDR_IF_NONE_MATCH)) {&lt;br /&gt;!     int etag_match = checkIfMatch(r, mem, HDR_IF_NONE_MATCH);&lt;br /&gt;!&lt;br /&gt;!     if (etag_match == -1) {&lt;br /&gt;!         debug(33, 4) (&quot;clientCacheHit: If-None-Match failure\n&quot;);&lt;br /&gt;          http-&gt;log_type = LOG_TCP_MISS;&lt;br /&gt;          clientProcessMiss(http);&lt;br /&gt;          return;&lt;br /&gt;      }&lt;br /&gt;!     if (etag_match) {&lt;br /&gt;!         debug(33, 4) (&quot;clientCacheHit: If-None-Match matches\n&quot;);&lt;br /&gt;!         if (is_modified == -1)&lt;br /&gt;!         is_modified = 0;&lt;br /&gt;!     } else {&lt;br /&gt;!         debug(33, 4) (&quot;clientCacheHit: If-None-Match mismatch\n&quot;);&lt;br /&gt;!         is_modified = 1;&lt;br /&gt;      }&lt;br /&gt;      }&lt;br /&gt;      if (r-&gt;flags.ims &amp;amp;&amp;amp; mem-&gt;reply-&gt;sline.status == HTTP_OK) {&lt;br /&gt;***************&lt;br /&gt;*** 1156,1175 ****&lt;br /&gt;       * where the redirect is not explicitly as uncachable.&lt;br /&gt;       * Deny looping here and do not cache the response.&lt;br /&gt;       */&lt;br /&gt;- #if 0&lt;br /&gt;      /*&lt;br /&gt;       * XXX strcmp() sucks but the strings are both C strings. Look at String&#39;ifying it&lt;br /&gt;       * XXX soon!&lt;br /&gt;       */&lt;br /&gt;!     if (mem-&gt;reply-&gt;sline.status &gt;= 300 &amp;amp;&amp;amp; mem-&gt;reply-&gt;sline.status &lt; 400) {&lt;br /&gt;!         if (!strcmp(http-&gt;uri, httpHeaderGetStr(&amp;amp;e-&gt;mem_obj-&gt;reply-&gt;header, HDR_LOCATION))) {&lt;br /&gt;!         debug(33, 1) (&quot;clientCacheHit: Redirect Loop Detected: %s\n&quot;,http-&gt;uri);&lt;br /&gt;!         http-&gt;log_type = LOG_TCP_MISS;&lt;br /&gt;!         clientProcessMiss(http);&lt;br /&gt;!         return;&lt;br /&gt;!         }&lt;br /&gt;!     }&lt;br /&gt;! #endif&lt;br /&gt;      stale = refreshCheckHTTPStale(e, r);&lt;br /&gt;      debug(33, 2) (&quot;clientCacheHit: refreshCheckHTTPStale returned %d\n&quot;, stale);&lt;br /&gt;      if (stale == 0) {&lt;br /&gt;--- 1170,1188 ----&lt;br /&gt;       * where the redirect is not explicitly as uncachable.&lt;br /&gt;       * Deny looping here and do not cache the response.&lt;br /&gt;       */&lt;br /&gt;      /*&lt;br /&gt;       * XXX strcmp() sucks but the strings are both C strings. Look at String&#39;ifying it&lt;br /&gt;       * XXX soon!&lt;br /&gt;       */&lt;br /&gt;!     if (mem-&gt;reply-&gt;sline.status &gt;= 300 &amp;amp;&amp;amp; mem-&gt;reply-&gt;sline.status &lt; 400) {&lt;br /&gt;!     if (httpHeaderHas(&amp;amp;e-&gt;mem_obj-&gt;reply-&gt;header, HDR_LOCATION))&lt;br /&gt;!     if (!strcmp(http-&gt;uri,httpHeaderGetStr(&amp;amp;e-&gt;mem_obj-&gt;reply-&gt;header, HDR_LOCATION))) {&lt;br /&gt;!         debug(33, 2) (&quot;clientCacheHit: Redirect Loop Detected: %s\n&quot;,http-&gt;uri);&lt;br /&gt;!         http-&gt;log_type = LOG_TCP_MISS;&lt;br /&gt;!         clientProcessMiss(http);&lt;br /&gt;!             return;&lt;br /&gt;!     }&lt;br /&gt;!     }&lt;br /&gt;      stale = refreshCheckHTTPStale(e, r);&lt;br /&gt;      debug(33, 2) (&quot;clientCacheHit: refreshCheckHTTPStale returned %d\n&quot;, stale);&lt;br /&gt;      if (stale == 0) {&lt;br /&gt;&lt;br /&gt;*** src/client_side_etag.c    2010-02-14 14:34:59.000000000 +0700&lt;br /&gt;--- src/client_side_etag.c    2010-07-09 08:31:41.000000000 +0700&lt;br /&gt;***************&lt;br /&gt;*** 63,69 ****&lt;br /&gt;          if (etag &amp;amp;&amp;amp; vary) {&lt;br /&gt;          char *str;&lt;br /&gt;          str = stringDupToC(&amp;amp;request-&gt;vary_encoding);&lt;br /&gt;!         storeAddVary(url, entry-&gt;mem_obj-&gt;method, NULL, httpHeaderGetStr(&amp;amp;rep-&gt;header, HDR_ETAG), request-&gt;vary_hdr, request-&gt;vary_headers, str);&lt;br /&gt;          safe_free(str);&lt;br /&gt;          }&lt;br /&gt;      }&lt;br /&gt;--- 63,69 ----&lt;br /&gt;          if (etag &amp;amp;&amp;amp; vary) {&lt;br /&gt;          char *str;&lt;br /&gt;          str = stringDupToC(&amp;amp;request-&gt;vary_encoding);&lt;br /&gt;!         storeAddVary(entry-&gt;mem_obj-&gt;store_url, entry-&gt;mem_obj-&gt;url, entry-&gt;mem_obj-&gt;method, NULL, httpHeaderGetStr(&amp;amp;rep-&gt;header, HDR_ETAG), request-&gt;vary_hdr, request-&gt;vary_headers, str);&lt;br /&gt;          safe_free(str);&lt;br /&gt;          }&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;*** src/client_side_ims.c    2010-02-19 14:57:27.000000000 +0700&lt;br /&gt;--- src/client_side_ims.c    2010-07-09 08:31:42.000000000 +0700&lt;br /&gt;***************&lt;br /&gt;*** 164,175 ****&lt;br /&gt;      /* If the ETag matches the clients If-None-Match, then return&lt;br /&gt;       * the servers 304 reply&lt;br /&gt;       */&lt;br /&gt;!     if (httpHeaderHas(&amp;amp;new_entry-&gt;mem_obj-&gt;reply-&gt;header, HDR_ETAG) &amp;amp;&amp;amp;&lt;br /&gt;!     httpHeaderHas(&amp;amp;request-&gt;header, HDR_IF_NONE_MATCH)) {&lt;br /&gt;!     const char *etag = httpHeaderGetStr(&amp;amp;new_entry-&gt;mem_obj-&gt;reply-&gt;header, HDR_ETAG);&lt;br /&gt;      String etags = httpHeaderGetList(&amp;amp;request-&gt;header, HDR_IF_NONE_MATCH);&lt;br /&gt;!     int etag_match = strListIsMember(&amp;amp;etags, etag, &#39;,&#39;);&lt;br /&gt;      stringClean(&amp;amp;etags);&lt;br /&gt;      if (etag_match) {&lt;br /&gt;          debug(33, 5) (&quot;clientGetsOldEntry: NO, client If-None-Match\n&quot;);&lt;br /&gt;          return 0;&lt;br /&gt;--- 164,182 ----&lt;br /&gt;      /* If the ETag matches the clients If-None-Match, then return&lt;br /&gt;       * the servers 304 reply&lt;br /&gt;       */&lt;br /&gt;! if (httpHeaderHas(&amp;amp;request-&gt;header, HDR_IF_NONE_MATCH)) {&lt;br /&gt;      String etags = httpHeaderGetList(&amp;amp;request-&gt;header, HDR_IF_NONE_MATCH);&lt;br /&gt;!     int etag_match = 0;&lt;br /&gt;!&lt;br /&gt;!     if (httpHeaderHas(&amp;amp;new_entry-&gt;mem_obj-&gt;reply-&gt;header, HDR_ETAG)) {&lt;br /&gt;!         const char *etag = httpHeaderGetStr(&amp;amp;new_entry-&gt;mem_obj-&gt;reply-&gt;header, HDR_ETAG);&lt;br /&gt;!         etag_match = strListIsMember(&amp;amp;etags, etag, &#39;,&#39;);&lt;br /&gt;!     }&lt;br /&gt;!     if (!etag_match &amp;amp;&amp;amp; strListIsMember(&amp;amp;etags, &quot;*&quot;, &#39;,&#39;))&lt;br /&gt;!         etag_match = 1;&lt;br /&gt;!&lt;br /&gt;      stringClean(&amp;amp;etags);&lt;br /&gt;+&lt;br /&gt;      if (etag_match) {&lt;br /&gt;          debug(33, 5) (&quot;clientGetsOldEntry: NO, client If-None-Match\n&quot;);&lt;br /&gt;          return 0;&lt;br /&gt;&lt;br /&gt;*** src/fs/coss/store_io_coss.c    2009-07-27 10:14:38.000000000 +0700&lt;br /&gt;--- src/fs/coss/store_io_coss.c    2010-07-09 08:31:42.000000000 +0700&lt;br /&gt;***************&lt;br /&gt;*** 157,166 ****&lt;br /&gt; &lt;br /&gt;      /* Check to see if we need to allocate a membuf to start */&lt;br /&gt;      if (cs-&gt;current_membuf == NULL) {&lt;br /&gt;!     if (cs-&gt;curstripe &lt; (cs-&gt;numstripes - 1))&lt;br /&gt;!         newmb = storeCossCreateMemBuf(SD, cs-&gt;curstripe + 1, checkf, &amp;amp;coll);&lt;br /&gt;!     else&lt;br /&gt;!         newmb = storeCossCreateMemBuf(SD, 0, checkf, &amp;amp;coll);&lt;br /&gt; &lt;br /&gt;      cs-&gt;current_membuf = newmb;&lt;br /&gt;      if (newmb == NULL) {&lt;br /&gt;--- 157,166 ----&lt;br /&gt; &lt;br /&gt;      /* Check to see if we need to allocate a membuf to start */&lt;br /&gt;      if (cs-&gt;current_membuf == NULL) {&lt;br /&gt;!     int nextstripe = cs-&gt;curstripe + 1;&lt;br /&gt;!     if (nextstripe &gt;= cs-&gt;numstripes)&lt;br /&gt;!         nextstripe = 0;&lt;br /&gt;!     newmb = storeCossCreateMemBuf(SD, nextstripe, checkf, &amp;amp;coll);&lt;br /&gt; &lt;br /&gt;      cs-&gt;current_membuf = newmb;&lt;br /&gt;      if (newmb == NULL) {&lt;br /&gt;***************&lt;br /&gt;*** 169,215 ****&lt;br /&gt;      }&lt;br /&gt;      cs-&gt;current_offset = cs-&gt;current_membuf-&gt;diskstart;&lt;br /&gt; &lt;br /&gt;!     /* Check if we have overflowed the disk .. */&lt;br /&gt;!     } else if ((cs-&gt;current_offset + allocsize) &gt; ((off_t) SD-&gt;max_size &lt;&lt; 10)) {&lt;br /&gt;!     /*&lt;br /&gt;!      * tried to allocate past the end of the disk, so wrap&lt;br /&gt;!      * back to the beginning&lt;br /&gt;!      */&lt;br /&gt;!     coss_stats.disk_overflows++;&lt;br /&gt;!     cs-&gt;current_membuf-&gt;flags.full = 1;&lt;br /&gt;!     cs-&gt;numfullstripes++;&lt;br /&gt;!     cs-&gt;current_membuf-&gt;diskend = cs-&gt;current_offset;&lt;br /&gt;!     storeCossMaybeWriteMemBuf(SD, cs-&gt;current_membuf);&lt;br /&gt;!     /* cs-&gt;current_membuf may be invalid at this point */&lt;br /&gt;!     cs-&gt;current_offset = 0;    /* wrap back to beginning */&lt;br /&gt;!     debug(79, 2) (&quot;storeCossAllocate: %s: wrap to 0\n&quot;, stripePath(SD));&lt;br /&gt;!&lt;br /&gt;!     newmb = storeCossCreateMemBuf(SD, 0, checkf, &amp;amp;coll);&lt;br /&gt;!     cs-&gt;current_membuf = newmb;&lt;br /&gt;!     if (newmb == NULL) {&lt;br /&gt;!         cs-&gt;sizerange_max = SD-&gt;max_objsize;&lt;br /&gt;!         return -1;&lt;br /&gt;!     }&lt;br /&gt;!     /* Check if we have overflowed the MemBuf */&lt;br /&gt;!     } else if ((cs-&gt;current_offset + allocsize) &gt;= cs-&gt;current_membuf-&gt;diskend) {&lt;br /&gt;      /*&lt;br /&gt;       * Skip the blank space at the end of the stripe. start over.&lt;br /&gt;       */&lt;br /&gt;      coss_stats.stripe_overflows++;&lt;br /&gt;      cs-&gt;current_membuf-&gt;flags.full = 1;&lt;br /&gt;      cs-&gt;numfullstripes++;&lt;br /&gt;!     cs-&gt;current_offset = cs-&gt;current_membuf-&gt;diskend;&lt;br /&gt;      storeCossMaybeWriteMemBuf(SD, cs-&gt;current_membuf);&lt;br /&gt;      /* cs-&gt;current_membuf may be invalid at this point */&lt;br /&gt;      debug(79, 3) (&quot;storeCossAllocate: %s: New offset - %&quot; PRId64 &quot;\n&quot;, stripePath(SD),&lt;br /&gt;          (int64_t) cs-&gt;current_offset);&lt;br /&gt;!     assert(cs-&gt;curstripe &lt; (cs-&gt;numstripes - 1));&lt;br /&gt;!     newmb = storeCossCreateMemBuf(SD, cs-&gt;curstripe + 1, checkf, &amp;amp;coll);&lt;br /&gt;      cs-&gt;current_membuf = newmb;&lt;br /&gt;      if (newmb == NULL) {&lt;br /&gt;          cs-&gt;sizerange_max = SD-&gt;max_objsize;&lt;br /&gt;          return -1;&lt;br /&gt;      }&lt;br /&gt;      }&lt;br /&gt;      /* If we didn&#39;t get a collision, then update the current offset and return it */&lt;br /&gt;      if (coll == 0) {&lt;br /&gt;--- 169,211 ----&lt;br /&gt;      }&lt;br /&gt;      cs-&gt;current_offset = cs-&gt;current_membuf-&gt;diskstart;&lt;br /&gt; &lt;br /&gt;!     } else if ((cs-&gt;current_offset + allocsize) &gt; cs-&gt;current_membuf-&gt;diskend) {&lt;br /&gt;      /*&lt;br /&gt;       * Skip the blank space at the end of the stripe. start over.&lt;br /&gt;       */&lt;br /&gt;+     int nextstripe = cs-&gt;curstripe + 1;&lt;br /&gt;      coss_stats.stripe_overflows++;&lt;br /&gt;      cs-&gt;current_membuf-&gt;flags.full = 1;&lt;br /&gt;      cs-&gt;numfullstripes++;&lt;br /&gt;!     /* Check if we have overflowed the disk .. */&lt;br /&gt;!     if (nextstripe &gt;= cs-&gt;numstripes) {&lt;br /&gt;!         /*&lt;br /&gt;!          * tried to allocate past the end of the disk, so wrap&lt;br /&gt;!          * back to the beginning&lt;br /&gt;!          */&lt;br /&gt;!         debug(79, 2) (&quot;storeCossAllocate: %s: wrap to 0\n&quot;, stripePath(SD));&lt;br /&gt;!         nextstripe = 0;    /* wrap back to beginning */&lt;br /&gt;!         coss_stats.disk_overflows++;&lt;br /&gt;! #if LOOKS_WRONG&lt;br /&gt;!         /* Original disk wrap code also had this, but looks wrong to&lt;br /&gt;!          * me as it leaves garbage at the end of the disk. Either we&lt;br /&gt;!          * should do it in both cases, or not at all&lt;br /&gt;!          */&lt;br /&gt;!         cs-&gt;current_membuf-&gt;diskend = cs-&gt;current_offset;&lt;br /&gt;! #endif&lt;br /&gt;!     }&lt;br /&gt;      storeCossMaybeWriteMemBuf(SD, cs-&gt;current_membuf);&lt;br /&gt;      /* cs-&gt;current_membuf may be invalid at this point */&lt;br /&gt;      debug(79, 3) (&quot;storeCossAllocate: %s: New offset - %&quot; PRId64 &quot;\n&quot;, stripePath(SD),&lt;br /&gt;          (int64_t) cs-&gt;current_offset);&lt;br /&gt;!     assert(nextstripe &lt;&gt;numstripes);&lt;br /&gt;!     newmb = storeCossCreateMemBuf(SD, nextstripe, checkf, &amp;amp;coll);&lt;br /&gt;      cs-&gt;current_membuf = newmb;&lt;br /&gt;      if (newmb == NULL) {&lt;br /&gt;          cs-&gt;sizerange_max = SD-&gt;max_objsize;&lt;br /&gt;          return -1;&lt;br /&gt;      }&lt;br /&gt;+     cs-&gt;current_offset = cs-&gt;current_membuf-&gt;diskstart;&lt;br /&gt;      }&lt;br /&gt;      /* If we didn&#39;t get a collision, then update the current offset and return it */&lt;br /&gt;      if (coll == 0) {&lt;br /&gt;&lt;br /&gt;*** src/http.c    2010-04-20 12:01:43.000000000 +0700&lt;br /&gt;--- src/http.c    2010-07-09 08:31:42.000000000 +0700&lt;br /&gt;***************&lt;br /&gt;*** 334,352 ****&lt;br /&gt;       */&lt;br /&gt;      if (!refreshIsCachable(httpState-&gt;entry) &amp;amp;&amp;amp; !REFRESH_OVERRIDE(store_stale))&lt;br /&gt;          return 0;&lt;br /&gt;-     /* don&#39;t cache objects from peers w/o LMT, Date, or Expires */&lt;br /&gt;-     /* check that is it enough to check headers @?@ */&lt;br /&gt;-     if (rep-&gt;date &gt; -1)&lt;br /&gt;-         return 1;&lt;br /&gt;-     else if (rep-&gt;last_modified &gt; -1)&lt;br /&gt;-         return 1;&lt;br /&gt;-     else if (!httpState-&gt;peer)&lt;br /&gt;-         return 1;&lt;br /&gt;-     /* @?@ (here and 302): invalid expires header compiles to squid_curtime */&lt;br /&gt;-     else if (rep-&gt;expires &gt; -1)&lt;br /&gt;-         return 1;&lt;br /&gt;      else&lt;br /&gt;!         return 0;&lt;br /&gt;      /* NOTREACHED */&lt;br /&gt;      break;&lt;br /&gt;      /* Responses that only are cacheable if the server says so */&lt;br /&gt;--- 334,341 ----&lt;br /&gt;       */&lt;br /&gt;      if (!refreshIsCachable(httpState-&gt;entry) &amp;amp;&amp;amp; !REFRESH_OVERRIDE(store_stale))&lt;br /&gt;          return 0;&lt;br /&gt;      else&lt;br /&gt;!         return 1;&lt;br /&gt;      /* NOTREACHED */&lt;br /&gt;      break;&lt;br /&gt;      /* Responses that only are cacheable if the server says so */&lt;br /&gt;&lt;br /&gt;***************&lt;br /&gt;*** 926,932 ****&lt;br /&gt;       */&lt;br /&gt;      if (len &gt; 0 &amp;amp;&amp;amp; httpState-&gt;chunk_size == 0) {&lt;br /&gt;      if (Config.onoff.log_http_violations)&lt;br /&gt;!         debug(11, 1) (&quot;httpReadReply: Unexpected reply body data from \&quot;%s %s\&quot;\n&quot;,&lt;br /&gt;              urlMethodGetConstStr(orig_request-&gt;method), storeUrl(entry));&lt;br /&gt;      comm_close(fd);&lt;br /&gt;      return;&lt;br /&gt;--- 926,933 ----&lt;br /&gt;       */&lt;br /&gt;      if (len &gt; 0 &amp;amp;&amp;amp; httpState-&gt;chunk_size == 0) {&lt;br /&gt;      if (Config.onoff.log_http_violations)&lt;br /&gt;!     debug(11, Config.onoff.relaxed_header_parser &lt;= 0 || keep_alive ? 1 : 2)&lt;br /&gt;!         (&quot;httpReadReply: Unexpected reply body data from \&quot;%s %s\&quot;\n&quot;,&lt;br /&gt;              urlMethodGetConstStr(orig_request-&gt;method), storeUrl(entry));&lt;br /&gt;      comm_close(fd);&lt;br /&gt;      return;&lt;br /&gt;*** src/refresh.c    2010-04-10 13:40:41.000000000 +0700&lt;br /&gt;--- src/refresh.c    2010-07-09 08:31:41.000000000 +0700&lt;br /&gt;***************&lt;br /&gt;*** 274,281 ****&lt;br /&gt;      debug(22, 3) (&quot;\tcheck_time:\t%s\n&quot;, mkrfc1123(check_time));&lt;br /&gt;      debug(22, 3) (&quot;\tentry-&gt;timestamp:\t%s\n&quot;, mkrfc1123(entry-&gt;timestamp));&lt;br /&gt; &lt;br /&gt;!     if (EBIT_TEST(entry-&gt;flags, ENTRY_REVALIDATE) &amp;amp;&amp;amp; staleness &gt; -1) {&lt;br /&gt;!     debug(22, 3) (&quot;refreshCheck: YES: Must revalidate stale response\n&quot;);&lt;br /&gt;      return STALE_MUST_REVALIDATE;&lt;br /&gt;      }&lt;br /&gt;      /* request-specific checks */&lt;br /&gt;--- 274,285 ----&lt;br /&gt;      debug(22, 3) (&quot;\tcheck_time:\t%s\n&quot;, mkrfc1123(check_time));&lt;br /&gt;      debug(22, 3) (&quot;\tentry-&gt;timestamp:\t%s\n&quot;, mkrfc1123(entry-&gt;timestamp));&lt;br /&gt; &lt;br /&gt;!     if (EBIT_TEST(entry-&gt;flags, ENTRY_REVALIDATE) &amp;amp;&amp;amp; staleness &gt; -1&lt;br /&gt;! #if HTTP_VIOLATIONS&lt;br /&gt;!         &amp;amp;&amp;amp; !R-&gt;flags.ignore_must_revalidate&lt;br /&gt;! #endif&lt;br /&gt;!       ) {&lt;br /&gt;!         debug(22, 3) (&quot;refreshCheck: YES: Must revalidate stale response\n&quot;);&lt;br /&gt;      return STALE_MUST_REVALIDATE;&lt;br /&gt;      }&lt;br /&gt;      /* request-specific checks */&lt;br /&gt;***************&lt;br /&gt;*** 334,339 ****&lt;br /&gt;--- 338,353 ----&lt;br /&gt;       * At this point the response is stale, unless one of&lt;br /&gt;       * the override options kicks in.&lt;br /&gt;       */&lt;br /&gt;+ #if HTTP_VIOLATIONS&lt;br /&gt;+     if (sf.expires &amp;amp;&amp;amp; R-&gt;flags.override_expire &amp;amp;&amp;amp; age &lt;&gt;min) {&lt;br /&gt;+         debug(22, 3) (&quot;refreshCheck: NO: age &lt; min &amp;amp;&amp;amp; override-expire\n&quot;);&lt;br /&gt;+         return FRESH_OVERRIDE_EXPIRES;&lt;br /&gt;+     }&lt;br /&gt;+     if (sf.lmfactor &amp;amp;&amp;amp; R-&gt;flags.override_lastmod &amp;amp;&amp;amp; age &lt;&gt;min) {&lt;br /&gt;+         debug(22, 3) (&quot;refreshCheck: NO: age &lt; min &amp;amp;&amp;amp; override-lastmod\n&quot;);&lt;br /&gt;+         return FRESH_OVERRIDE_LASTMOD;&lt;br /&gt;+     }&lt;br /&gt;+ #endif&lt;br /&gt;      if (entry-&gt;mem_obj) {&lt;br /&gt;      int stale_while_revalidate = -1;&lt;br /&gt;      if (entry-&gt;mem_obj-&gt;reply &amp;amp;&amp;amp; entry-&gt;mem_obj-&gt;reply-&gt;cache_control &amp;amp;&amp;amp; EBIT_TEST(entry-&gt;mem_obj-&gt;reply-&gt;cache_control-&gt;mask, CC_STALE_WHILE_REVALIDATE))&lt;br /&gt;***************&lt;br /&gt;*** 357,382 ****&lt;br /&gt;      if (delta &lt; 0 &amp;amp;&amp;amp; staleness + delta &lt; 0) {&lt;br /&gt;      return STALE_WITHIN_DELTA;&lt;br /&gt;      }&lt;br /&gt;!     if (sf.expires) {&lt;br /&gt;! #if HTTP_VIOLATIONS&lt;br /&gt;!     if (R-&gt;flags.override_expire &amp;amp;&amp;amp; age &lt;&gt;min) {&lt;br /&gt;!         debug(22, 3) (&quot;refreshCheck: NO: age &lt; min &amp;amp;&amp;amp; override-expire\n&quot;);&lt;br /&gt;!         return FRESH_OVERRIDE_EXPIRES;&lt;br /&gt;!     }&lt;br /&gt;! #endif&lt;br /&gt;      return STALE_EXPIRES;&lt;br /&gt;-     }&lt;br /&gt;      if (sf.max)&lt;br /&gt;      return STALE_MAX_RULE;&lt;br /&gt;!     if (sf.lmfactor) {&lt;br /&gt;! #if HTTP_VIOLATIONS&lt;br /&gt;!     if (R-&gt;flags.override_lastmod &amp;amp;&amp;amp; age &lt;&gt;min) {&lt;br /&gt;!         debug(22, 3) (&quot;refreshCheck: NO: age &lt; min &amp;amp;&amp;amp; override-lastmod\n&quot;);&lt;br /&gt;!         return FRESH_OVERRIDE_LASTMOD;&lt;br /&gt;!     }&lt;br /&gt;! #endif&lt;br /&gt;      return STALE_LMFACTOR_RULE;&lt;br /&gt;-     }&lt;br /&gt;      return STALE_DEFAULT;&lt;br /&gt;  }&lt;br /&gt; &lt;br /&gt;--- 371,382 ----&lt;br /&gt;      if (delta &lt; 0 &amp;amp;&amp;amp; staleness + delta &lt; 0) {&lt;br /&gt;      return STALE_WITHIN_DELTA;&lt;br /&gt;      }&lt;br /&gt;!     if (sf.expires)&lt;br /&gt;      return STALE_EXPIRES;&lt;br /&gt;      if (sf.max)&lt;br /&gt;      return STALE_MAX_RULE;&lt;br /&gt;!     if (sf.lmfactor)&lt;br /&gt;      return STALE_LMFACTOR_RULE;&lt;br /&gt;      return STALE_DEFAULT;&lt;br /&gt;  }&lt;br /&gt; &lt;br /&gt;*** src/store.c    2010-03-06 09:36:15.000000000 +0700&lt;br /&gt;--- src/store.c    2010-07-09 08:31:41.000000000 +0700&lt;br /&gt;***************&lt;br /&gt;*** 553,559 ****&lt;br /&gt;          stringClean(&amp;amp;varyhdr);&lt;br /&gt;  #endif&lt;br /&gt;          str = stringDupToC(&amp;amp;vary);&lt;br /&gt;!         storeAddVary(mem-&gt;url, mem-&gt;method, newkey, httpHeaderGetStr(&amp;amp;mem-&gt;reply-&gt;header, HDR_ETAG), str, mem-&gt;vary_headers, mem-&gt;vary_encoding);&lt;br /&gt;          safe_free(str);&lt;br /&gt;          stringClean(&amp;amp;vary);&lt;br /&gt;      }&lt;br /&gt;--- 553,559 ----&lt;br /&gt;          stringClean(&amp;amp;varyhdr);&lt;br /&gt;  #endif&lt;br /&gt;          str = stringDupToC(&amp;amp;vary);&lt;br /&gt;!         storeAddVary(mem-&gt;store_url, mem-&gt;url, mem-&gt;method, newkey, httpHeaderGetStr(&amp;amp;mem-&gt;reply-&gt;header, HDR_ETAG), str, mem-&gt;vary_headers, mem-&gt;vary_encoding);&lt;br /&gt;          safe_free(str);&lt;br /&gt;          stringClean(&amp;amp;vary);&lt;br /&gt;      }&lt;br /&gt;&lt;br /&gt;*** src/store_client.c    2009-04-21 15:37:50.000000000 +0700&lt;br /&gt;--- src/store_client.c    2010-11-24 09:51:46.000000000 +0700&lt;br /&gt;***************&lt;br /&gt;*** 894,905 ****&lt;br /&gt;      debug(20, 3) (&quot;CheckQuickAbort2: YES !mem-&gt;request-&gt;flags.cachable\n&quot;);&lt;br /&gt;      return 1;&lt;br /&gt;      }&lt;br /&gt;      if (EBIT_TEST(entry-&gt;flags, KEY_PRIVATE)) {&lt;br /&gt;      debug(20, 3) (&quot;CheckQuickAbort2: YES KEY_PRIVATE\n&quot;);&lt;br /&gt;      return 1;&lt;br /&gt;      }&lt;br /&gt;-     expectlen = mem-&gt;reply-&gt;content_length + mem-&gt;reply-&gt;hdr_sz;&lt;br /&gt;-     curlen = mem-&gt;inmem_hi;&lt;br /&gt;      minlen = Config.quickAbort.min &lt;&lt; 10;&lt;br /&gt;      if (minlen &lt; 0) {&lt;br /&gt;      debug(20, 3) (&quot;CheckQuickAbort2: NO disabled\n&quot;);&lt;br /&gt;--- 894,909 ----&lt;br /&gt;      debug(20, 3) (&quot;CheckQuickAbort2: YES !mem-&gt;request-&gt;flags.cachable\n&quot;);&lt;br /&gt;      return 1;&lt;br /&gt;      }&lt;br /&gt;+     expectlen = httpReplyBodySize(mem-&gt;method, mem-&gt;reply) + mem-&gt;reply-&gt;hdr_sz;&lt;br /&gt;+     curlen = mem-&gt;inmem_hi;&lt;br /&gt;+     if (expectlen == curlen) {&lt;br /&gt;+     debug(20, 3) (&quot;CheckQuickAbort2: NO already finished\n&quot;);&lt;br /&gt;+     return 0;&lt;br /&gt;+     }&lt;br /&gt;      if (EBIT_TEST(entry-&gt;flags, KEY_PRIVATE)) {&lt;br /&gt;      debug(20, 3) (&quot;CheckQuickAbort2: YES KEY_PRIVATE\n&quot;);&lt;br /&gt;      return 1;&lt;br /&gt;      }&lt;br /&gt;      minlen = Config.quickAbort.min &lt;&lt; 10;&lt;br /&gt;      if (minlen &lt; 0) {&lt;br /&gt;      debug(20, 3) (&quot;CheckQuickAbort2: NO disabled\n&quot;);&lt;br /&gt;&lt;br /&gt;*** src/store_vary.c    2010-10-19 09:22:25.000000000 +0700&lt;br /&gt;--- src/store_vary.c    2010-11-24 12:09:37.000000000 +0700&lt;br /&gt;***************&lt;br /&gt;*** 6,11 ****&lt;br /&gt;--- 6,12 ----&lt;br /&gt;      StoreEntry *oe;&lt;br /&gt;      StoreEntry *e;&lt;br /&gt;      store_client *sc;&lt;br /&gt;+     char *store_url;&lt;br /&gt;      char *url;&lt;br /&gt;      char *key;&lt;br /&gt;      char *vary_headers;&lt;br /&gt;***************&lt;br /&gt;*** 57,62 ****&lt;br /&gt;--- 58,64 ----&lt;br /&gt;      storeUnlockObject(state-&gt;oe);&lt;br /&gt;      state-&gt;oe = NULL;&lt;br /&gt;      }&lt;br /&gt;+     safe_free(state-&gt;store_url);&lt;br /&gt;      safe_free(state-&gt;url);&lt;br /&gt;      safe_free(state-&gt;key);&lt;br /&gt;      safe_free(state-&gt;vary_headers);&lt;br /&gt;***************&lt;br /&gt;*** 312,318 ****&lt;br /&gt;   * At leas one of key or etag must be specified, preferably both.&lt;br /&gt;   */&lt;br /&gt;  void&lt;br /&gt;! storeAddVary(const char *url, method_t * method, const cache_key * key, const char *etag, const char *vary, const char *vary_headers, const char *accept_encoding)&lt;br /&gt;  {&lt;br /&gt;      AddVaryState *state;&lt;br /&gt;      request_flags flags = null_request_flags;&lt;br /&gt;--- 314,320 ----&lt;br /&gt;   * At leas one of key or etag must be specified, preferably both.&lt;br /&gt;   */&lt;br /&gt;  void&lt;br /&gt;! storeAddVary(const char *store_url, const char *url, method_t * method, const cache_key * key, const char *etag, const char *vary, const char *vary_headers, const char *accept_encoding)&lt;br /&gt;  {&lt;br /&gt;      AddVaryState *state;&lt;br /&gt;      request_flags flags = null_request_flags;&lt;br /&gt;***************&lt;br /&gt;*** 326,332 ****&lt;br /&gt;      state-&gt;accept_encoding = xstrdup(accept_encoding);&lt;br /&gt;      if (etag)&lt;br /&gt;      state-&gt;etag = xstrdup(etag);&lt;br /&gt;!     state-&gt;oe = storeGetPublic(url, method);&lt;br /&gt;      debug(11, 2) (&quot;storeAddVary: %s (%s) %s %s\n&quot;,&lt;br /&gt;      state-&gt;url, state-&gt;key, state-&gt;vary_headers, state-&gt;etag);&lt;br /&gt;      if (state-&gt;oe)&lt;br /&gt;--- 328,334 ----&lt;br /&gt;      state-&gt;accept_encoding = xstrdup(accept_encoding);&lt;br /&gt;      if (etag)&lt;br /&gt;      state-&gt;etag = xstrdup(etag);&lt;br /&gt;!     state-&gt;oe = storeGetPublic(store_url ? store_url : url, method);&lt;br /&gt;      debug(11, 2) (&quot;storeAddVary: %s (%s) %s %s\n&quot;,&lt;br /&gt;      state-&gt;url, state-&gt;key, state-&gt;vary_headers, state-&gt;etag);&lt;br /&gt;      if (state-&gt;oe)&lt;br /&gt; &lt;br /&gt;*** src/store_vary.h    2010-02-14 14:34:59.000000000 +0700&lt;br /&gt;--- src/store_vary.h    2010-07-09 08:31:42.000000000 +0700&lt;br /&gt;***************&lt;br /&gt;*** 4,10 ****&lt;br /&gt;  extern void storeLocateVaryDone(VaryData * data);&lt;br /&gt;  extern void storeLocateVary(StoreEntry * e, int offset, const char *vary_data,&lt;br /&gt;      String accept_encoding, STLVCB * callback, void *cbdata);&lt;br /&gt;! extern void storeAddVary(const char *url, method_t * method, const cache_key * key,&lt;br /&gt;      const char *etag, const char *vary, const char *vary_headers,&lt;br /&gt;      const char *accept_encoding);&lt;br /&gt; &lt;br /&gt;--- 4,10 ----&lt;br /&gt;  extern void storeLocateVaryDone(VaryData * data);&lt;br /&gt;  extern void storeLocateVary(StoreEntry * e, int offset, const char *vary_data,&lt;br /&gt;      String accept_encoding, STLVCB * callback, void *cbdata);&lt;br /&gt;! extern void storeAddVary(const char *store_url, const char *url, method_t * method, const cache_key * key,&lt;br /&gt;      const char *etag, const char *vary, const char *vary_headers,&lt;br /&gt;      const char *accept_encoding);&lt;br /&gt; &lt;br /&gt;*** src/structs.h    2010-04-21 21:10:06.000000000 +0700&lt;br /&gt;--- src/structs.h    2010-07-09 08:31:42.000000000 +0700&lt;br /&gt;***************&lt;br /&gt;*** 1706,1712 ****&lt;br /&gt;      unsigned int reload_into_ims:1;&lt;br /&gt;      unsigned int ignore_reload:1;&lt;br /&gt;      unsigned int ignore_no_cache:1;&lt;br /&gt;!         unsigned int ignore_no_store:1;&lt;br /&gt;      unsigned int ignore_private:1;&lt;br /&gt;      unsigned int ignore_auth:1;&lt;br /&gt;  #endif&lt;br /&gt;--- 1706,1713 ----&lt;br /&gt;      unsigned int reload_into_ims:1;&lt;br /&gt;      unsigned int ignore_reload:1;&lt;br /&gt;      unsigned int ignore_no_cache:1;&lt;br /&gt;!     unsigned int ignore_no_store:1;&lt;br /&gt;!     unsigned int ignore_must_revalidate:1;&lt;br /&gt;      unsigned int ignore_private:1;&lt;br /&gt;      unsigned int ignore_auth:1;&lt;br /&gt;  #endif&lt;br /&gt;&lt;br /&gt;*** src/main.c    2010-04-21 21:10:06.000000000 +0700&lt;br /&gt;--- src/main.c    2010-07-12 09:35:25.444745821 +0700&lt;br /&gt;***************&lt;br /&gt;*** 581,587 ****&lt;br /&gt; &lt;br /&gt;      _db_init(Config.debugOptions);&lt;br /&gt;      _db_init_log(Config.Log.log);&lt;br /&gt;!     fd_open(fileno(debug_log), FD_LOG, Config.Log.log);&lt;br /&gt;  #if MEM_GEN_TRACE&lt;br /&gt;      log_trace_init(&quot;/tmp/squid.alloc&quot;);&lt;br /&gt;  #endif&lt;br /&gt;--- 581,588 ----&lt;br /&gt; &lt;br /&gt;      _db_init(Config.debugOptions);&lt;br /&gt;      _db_init_log(Config.Log.log);&lt;br /&gt;!     if (debug_log != stderr)&lt;br /&gt;!     fd_open(fileno(debug_log), FD_LOG, Config.Log.log);&lt;br /&gt;  #if MEM_GEN_TRACE&lt;br /&gt;      log_trace_init(&quot;/tmp/squid.alloc&quot;);&lt;br /&gt;  #endif&lt;br /&gt;&lt;br /&gt;*** src/main.c    2010-04-21 21:10:06.000000000 +0700&lt;br /&gt;--- src/main.c    2010-07-15 09:08:53.385643957 +0700&lt;br /&gt;***************&lt;br /&gt;*** 682,688 ****&lt;br /&gt;  #if USE_WCCPv2&lt;br /&gt;      wccp2Init();&lt;br /&gt;  #endif&lt;br /&gt;!     serverConnectionsOpen();&lt;br /&gt;      neighbors_init();&lt;br /&gt;      if (Config.chroot_dir)&lt;br /&gt;      no_suid();&lt;br /&gt;--- 682,689 ----&lt;br /&gt;  #if USE_WCCPv2&lt;br /&gt;      wccp2Init();&lt;br /&gt;  #endif&lt;br /&gt;!     if (!opt_foreground_rebuild)&lt;br /&gt;!     serverConnectionsOpen();&lt;br /&gt;      neighbors_init();&lt;br /&gt;      if (Config.chroot_dir)&lt;br /&gt;      no_suid();&lt;br /&gt;***************&lt;br /&gt;*** 911,916 ****&lt;br /&gt;--- 912,922 ----&lt;br /&gt;  #endif&lt;br /&gt;          serverConnectionsClose();&lt;br /&gt;          eventAdd(&quot;SquidShutdown&quot;, SquidShutdown, NULL, (double) (wait + 1), 1);&lt;br /&gt;+     } else if (opt_foreground_rebuild &amp;amp;&amp;amp; !store_dirs_rebuilding) {&lt;br /&gt;+         opt_foreground_rebuild = 0;&lt;br /&gt;+         enter_suid();&lt;br /&gt;+         serverConnectionsOpen();&lt;br /&gt;+         leave_suid();&lt;br /&gt;      }&lt;br /&gt;          /* Set a maximum loop delay; it&#39;ll be lowered elsewhere as appropriate */&lt;br /&gt;      loop_delay = 60000;&lt;br /&gt;&lt;br /&gt;*** src/client_side_request_parse.c    2010-04-05 14:40:47.000000000 +0700&lt;br /&gt;--- src/client_side_request_parse.c    2010-07-27 11:01:51.520075515 +0700&lt;br /&gt;***************&lt;br /&gt;*** 516,521 ****&lt;br /&gt;--- 516,569 ----&lt;br /&gt;          ret = -1;&lt;br /&gt;          goto finish;&lt;br /&gt;      }&lt;br /&gt;+    &lt;br /&gt;+     /*&lt;br /&gt;+      *  Normalize Request Cache-Control / If-Modified-Since Headers&lt;br /&gt;+      *  Don&#39;t let client by-pass the cache if there is cached content.&lt;br /&gt;+      */&lt;br /&gt;+     if(httpHeaderHas(&amp;amp;request-&gt;header,HDR_CACHE_CONTROL)) {&lt;br /&gt;+         httpHeaderDelByName(&amp;amp;request-&gt;header,&quot;cache-control&quot;);&lt;br /&gt;+     }&lt;br /&gt;+&lt;br /&gt;+     /*&lt;br /&gt;+      * Un-comment this if you want Squid to always respond with the request&lt;br /&gt;+      * instead of returning back with a 304 if the cache has not changed.&lt;br /&gt;+      */&lt;br /&gt;+    &lt;br /&gt;+     if(httpHeaderHas(&amp;amp;request-&gt;header,HDR_IF_MODIFIED_SINCE)) {&lt;br /&gt;+         httpHeaderDelByName(&amp;amp;request-&gt;header,&quot;if-modified-since&quot;);&lt;br /&gt;+     }&lt;br /&gt;+&lt;br /&gt;+     /*&lt;br /&gt;+      * Normalize Accept-Encoding Headers sent from client&lt;br /&gt;+      */&lt;br /&gt;+     if(httpHeaderHas(&amp;amp;request-&gt;header,HDR_ACCEPT_ENCODING)) {&lt;br /&gt;+         String val = httpHeaderGetByName(&amp;amp;request-&gt;header,&quot;accept-encoding&quot;);&lt;br /&gt;+         if(val.buf) {&lt;br /&gt;+             if(strstr(val.buf,&quot;gzip&quot;) != NULL) {&lt;br /&gt;+                 httpHeaderDelByName(&amp;amp;request-&gt;header,&quot;accept-encoding&quot;);&lt;br /&gt;+                 httpHeaderPutStr(&amp;amp;request-&gt;header,HDR_ACCEPT_ENCODING,&quot;gzip&quot;);&lt;br /&gt;+             } else if(strstr(val.buf,&quot;deflate&quot;) != NULL) {&lt;br /&gt;+                 httpHeaderDelByName(&amp;amp;request-&gt;header,&quot;accept-encoding&quot;);&lt;br /&gt;+                 httpHeaderPutStr(&amp;amp;request-&gt;header,HDR_ACCEPT_ENCODING,&quot;deflate&quot;);&lt;br /&gt;+             } else {&lt;br /&gt;+                 httpHeaderDelByName(&amp;amp;request-&gt;header,&quot;accept-encoding&quot;);&lt;br /&gt;+             }&lt;br /&gt;+         }&lt;br /&gt;+         stringClean(&amp;amp;val);&lt;br /&gt;+     }&lt;br /&gt;+&lt;br /&gt;+     /*&lt;br /&gt;+      * Normalize Accept-Encoding Headers for video/image content&lt;br /&gt;+      */&lt;br /&gt;+     char *mime_type = mimeGetContentType(http-&gt;uri);&lt;br /&gt;+     if(mime_type) {&lt;br /&gt;+         if(strstr(mime_type,&quot;image&quot;) != NULL || strstr(mime_type,&quot;video&quot;) != NULL || strstr(mime_type,&quot;audio&quot;) != NULL) {&lt;br /&gt;+             httpHeaderDelByName(&amp;amp;request-&gt;header,&quot;accept-encoding&quot;);&lt;br /&gt;+         }&lt;br /&gt;+     }&lt;br /&gt;+&lt;br /&gt;+&lt;br /&gt;      /*&lt;br /&gt;       * If we read past the end of this request, move the remaining&lt;br /&gt;       * data to the beginning&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;atau bisa donlot &lt;a href=&quot;http://www.indowebster.com/patchlusca14809.html&quot;&gt;disini&lt;/a&gt;</description><link>http://sum14rdi.blogspot.com/2010/07/sedikit-patch-untuk-lusca-cache.html</link><author>noreply@blogger.com (sum14rdi)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-627361986679834374.post-2881272444160424423</guid><pubDate>Tue, 27 Jul 2010 02:17:00 +0000</pubDate><atom:updated>2010-07-30T08:31:21.848+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">lusca</category><title>yuk mainan lusca cache di freebsd....</title><description>&lt;p align=&quot;justify&quot;&gt;Setelah sekian lama &quot;bermain-main&quot; dengan squid 2.7 STABLE7, iseng iseng mencoba &lt;a href=&quot;http://code.google.com/p/lusca-cache/&quot;&gt;lusca cache&lt;/a&gt; besutan Adrian Chadd. Lusca cache sebenarnya masih kerabatan sama squid 2.7 soalnya lusca dikembangkan dari sana. Perbedaannya, lusca salah satunya mencoba menitikberatkan peningkatan performa dalam peyimpanan cache ke hardisk dan beberapa script dicoba ditata ulang untuk  meningkatkan performanya. Salah satu hasil signifikan adalah Modul COSS, dimana COSS lusca proses rebuildingnya lebih cepet dibanding COSS di squid aslinya.&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;Ok, back to topik again..&lt;br /&gt;karena lusca ini nantinya akan berjalan di freebsd (saya pake freebsd 8.0) maka sudah tentu harus sukses dulu install freebsdnya :D&lt;br /&gt;Untuk hanya menjalankan lusca cache difreebsd, paket yang dibutuhkan hanya perl. Anda bisa menginstallnya via port. Agar lebih &quot;menyenangkan&quot; , segala proses install menggunakan putty dan winscp jadi pengerjaannya via remote dari komputer/laptop basis win***s.&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt; 1. install perl via port&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;&lt;em&gt;#cd /usr/ports/lang/perl5.10&lt;br /&gt;#make install clean&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;tunggu beberapa saat, untuk mengetest apakah perl sudah terinstall ketikan saja diterminal &lt;em&gt;perl -v&lt;/em&gt;&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;2. Download source lusca cache.&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;Source lusca cache versi terakhir bisa di donlot di &lt;a href=&quot;http://code.google.com/p/lusca-cache/downloads/list&quot;&gt;code.google.com/p/lusca-cache/&lt;/a&gt;. Setelah di donlot silahkan di trasnfer ke mesin freebsd memakai winscp. Anda bisa menaruhnya di&lt;em&gt; /usr/local/src&lt;br /&gt;&lt;/em&gt;donlot juga patch ini &lt;a href=&quot;http://www.indowebster.com/LUSCA_HEADr14733patch.html&quot;&gt;lusca-patch&lt;/a&gt; nanti diesktrak dan taruh juga di &lt;em&gt;/usr/local/src&lt;/em&gt;&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;3. Kompilasi lusca cache.&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;Setelah di transfer ke mesin freebsd via winscp dan diletakan di &lt;em&gt;/usr/local/src &lt;/em&gt;selanjutnya kita unpack source dan lakukan patch :&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;&lt;em&gt;#cd /usr/local/src&lt;br /&gt;#tar -xvf LUSCA_HEAD-rxxxx.tar.gz&lt;br /&gt;#cd LUSCA_HEAD-rxxxx&lt;br /&gt;#patch -p0 &lt; ../lusca-r14723-sum14rdi.patch #./configure  --bindir=/usr/local/bin --sbindir=/usr/local/sbin --sysconfdir=/usr/local/etc/squid --datadir=/usr/local/etc/squid --libexecdir=/usr/local/libexec/squid --localstatedir=/var/log/squid --enable-removal-policies=&quot;heap&quot; --enable-auth=&quot;basic ntlm digest&quot; --enable-digest-auth-helpers=password --with-pthreads --enable-async-io=24 --with-aufs-threads=24  --enable-storeio=&quot;aufs coss&quot; --disable-ident-lookups --enable-delay-pools --enable-snmp --enable-cache-digests --disable-wccp --enable-useragent-log --enable-http-violations --enable-arp-acl --enable-pf-transparent --disable-follow-x-forwarded-for --with-large-files --enable-large-cache-files --enable-default-err-language=English #make &amp;amp;&amp;amp; make install&lt;/em&gt;&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;4. Running for first time&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;sebelum squid dijalankan pastikan telh dibuat user dan group squid di freebsd, kemudian squid.conf yang ada di /usr/local/etc/squid diconfigure sesuai kebutuhannya. Anda bisa mencontoh &lt;a href=&quot;http://www.indowebster.com/my_squid_config.html&quot;&gt;squid.conf saya&lt;/a&gt; dan pastikan anda untuk menyesuaikan dengan kondisi jaringan anda.&lt;br /&gt;Jangan lupa untuk mengubah kepemilikan directory untuk cache kepada squid. Setelah itu baru :&lt;br /&gt;&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;&lt;em&gt;# squid -z&lt;br /&gt;# squid -DF&lt;/em&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;agar squid dapat jalan otomatis ketika restart, maka taruh squid -DF di file &lt;em&gt;/etc/rc.local&lt;/em&gt;, jika tidak ada maka silahkan membuatnya.&lt;/p&gt;&lt;p align=&quot;justify&quot;&gt;SELESAI&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description><link>http://sum14rdi.blogspot.com/2010/07/yuk-mainan-lusca-cache-di-freebsd.html</link><author>noreply@blogger.com (sum14rdi)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-627361986679834374.post-1516093374099899639</guid><pubDate>Tue, 27 Jul 2010 02:17:00 +0000</pubDate><atom:updated>2010-07-27T10:28:24.360+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">FreeBSD</category><title>Install FreeBSD ke hardisk (bukan tutorial)</title><description>&lt;p&gt;Setelah sekian lama gak tulis-tulis (akibat lupa username dan password ke blog ini) sekarang mencoba menuangkan kembali pengalaman saya. Ini adalah yang pertama pasca ketemunya username dan passwordnya :D&lt;/p&gt;&lt;p&gt;Sebenarnya sudah banyak yang mengulas bagaimana cara menginstall freebsd ke hardisk. Anda bisa &quot;sowan&quot; ke simbah google, salah dua nya yang menurut saya simple ada disini &lt;/p&gt;&lt;p&gt;1. &lt;a href=&quot;http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/install.html&quot;&gt;www.freebsd.org&lt;/a&gt;&lt;br /&gt;2. &lt;a href=&quot;http://fajri.freebsd.or.id/wp-content/uploads/2006/05/Instalasi%20FreeBSD.pdf&quot;&gt;freebsd.or.id&lt;/a&gt;&lt;/p&gt;&lt;p&gt;secara garis besar menginstall freebsd ke hardisk meliputi beberapa bagian besar yaitu:&lt;br /&gt;1. pemilihan setup&lt;br /&gt;2. pemilihan partisi.&lt;br /&gt;3. pemilihan file system &amp;amp; swap (labeling)&lt;br /&gt;4. pemilihan source&lt;br /&gt;5. memulai proses instalasi&lt;br /&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;</description><link>http://sum14rdi.blogspot.com/2010/07/install-freebsd-ke-hardisk-bukan.html</link><author>noreply@blogger.com (sum14rdi)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-627361986679834374.post-2138440499637783742</guid><pubDate>Tue, 08 Dec 2009 10:05:00 +0000</pubDate><atom:updated>2009-12-08T17:16:57.696+07:00</atom:updated><title>(Ter) Gila2 sama Linux Mint 7</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;Sudah sekitar 3 bulan ini lagi berusaha untuk pindah dari lingkungan Microsoft Windows XP ke Linux Mint 7. Udah Bosen &quot;menggauli&quot; MW XP (karena gak punya duit buat beli yang asli) jadinya cari yang gratisan.&lt;br /&gt;Dipilih &lt;a href=&quot;http://www.linuxmint.com&quot;&gt;Linux Mint&lt;/a&gt; 7 karena saya masih anak TK untuk urusan Linux dan merasa ini yang paling cocok buat saya. Walau harus dibayar dengan hardware yang harus diatas rata2 jika menggunakan linux yang lain.&lt;br /&gt;&lt;/div&gt;Linux Mint 7 merupakan turunan dari ubuntu 9.04 alias Jaunty, jadi kita juga bisa memakai repo dari ubuntu Jaunty jika ingin menginstall software.&lt;br /&gt;Yang bikin senengnya adalah hampir semua hardware yang ada dikomputer saya dapat berfungsi seperti ketika di MW XP seperti TV Tuner Pixelview, Printer HP 1020 Scanner HP 4070.</description><link>http://sum14rdi.blogspot.com/2009/12/ter-gila2-sama-linux-mint-7.html</link><author>noreply@blogger.com (sum14rdi)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-627361986679834374.post-4577946961644514614</guid><pubDate>Thu, 02 Jul 2009 02:27:00 +0000</pubDate><atom:updated>2009-07-02T10:00:25.052+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">FreeBSD</category><title>kern.maxfiles di freebsd</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;Kejadian berawal dari perubahan settingan untuk menurunkan jumlah file deskriptor di squid yang berjalan disystem freebsd yang semula 8192 menjadi 1082. Setelah googling sana sini didapat caranya yaitu dengan merubah angka kern.maxfiles dan kern.maxfilesperproc yang ditaruh di /boot/loader.conf&lt;br /&gt;maksudnya menurunkan file deskriptor squid, dari hasil googling katanya gak perlu besar-besar nilainya jika kebesaran malah membebani squidnya.&lt;br /&gt;singkat kata nilai kern.maxfiles dan kern.maxfilesperproc dikasih nilai 1024 sehingga didapat nilai file deskriptor sebesar 1082, lalu komputer squidnya di restart.&lt;br /&gt;karena waktu itu pengerjaannya melalui proses remote, dimana yang dioprek adalah proxy warnet dan saya ada dikantor jadinya gak tahu efeknya terhadap browsing. selang 10 menit operator warnetnya complain via ym katanya browsingnya jadi lelet.&lt;br /&gt;sebetulnya saya tidak tahu klo leletnya browsing diakibatkan oleh perubahan nilai kern.maxfiles dan kern.maxfilesperproc, karena dari hasil tail -f access.log terlihat access time nya yang besar-besar setiap ada request dari client sampai 5 digit orde time accessnya. karena access time yang lama, pikiran saya tertuju sama hardisk yang digunakan untuk simpan cache. Kebetulan hardisk untuk simpan cache memang panas sekali, lalu saya pasang kipas. Tapi tidak membawa perubahan terhadap time accessnya yang masih besar.&lt;br /&gt;akhirnya setelah mentok, ya kembalikan saja settingan ke awal sewaktu berjalan normal dimana:&lt;br /&gt;&lt;blockquote&gt;kern.maxfiles=32768&lt;br /&gt;kern.maxfilesperproc=32768&lt;/blockquote&gt;nilai ini saya pasang sembarang, jadi silahkan bereksperimen sendiri, yang pasti dengan angka segini sudah cukup gesit buat kerja proxy saya.&lt;br /&gt;sebagai tambahan hardisk yang digunakan semuanya PATA IDE berjumlah 2 buah.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://sum14rdi.blogspot.com/2009/07/kernmaxfiles-di-freebsd.html</link><author>noreply@blogger.com (sum14rdi)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-627361986679834374.post-7670153394355458415</guid><pubDate>Fri, 26 Jun 2009 09:54:00 +0000</pubDate><atom:updated>2009-06-26T17:00:44.285+07:00</atom:updated><title>udah lama euy......</title><description>udah lama gak &quot;nabung&quot; tulisan......&lt;br /&gt;sedikit curhat masalah proxy freebsd. Ternyata perangkat keras komputer terutama hardisk benar2 mempengaruhi performance dari proxy. Hardisk yang cepet panas berdampak ke access time  dari proxy jadi bertambah, efeknya ngenet jadi agak sedikit lag.&lt;br /&gt;Jadi pastikan hardware terutama hardisknya sehat, sirkulasi udara di komputer yang buat proxy dipastikan juga lancar.&lt;br /&gt;Walaupun diping sana sini masih lancar dan memberikan latency yang kecil, tapi jika hardisknya panas maka squidnya akan sedikit macet.</description><link>http://sum14rdi.blogspot.com/2009/06/udah-lama-euy.html</link><author>noreply@blogger.com (sum14rdi)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-627361986679834374.post-2521844612736421273</guid><pubDate>Mon, 08 Jun 2009 12:11:00 +0000</pubDate><atom:updated>2009-06-08T19:31:20.058+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">FreeBSD</category><category domain="http://www.blogger.com/atom/ns#">mikrotik</category><title>Berbagi ide....bandwidth management</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;Pada kesempatan ini saya ingin menuangkan ide saya, dari hasil percobaan di tiga tempat. Ide mengenai pembagian bandwidth internet. Idenya adalah sebagai berikut, saya menginginkan agar aktifitas browsing mendapatkan bandwidth yang memadai tetapi tidak untuk aktifitas donlot, p2p dan watching video streaming.&lt;br /&gt;Untuk keperluan tersebut saya menggunakan mikrotik dan squid proxy yang jalan di freebsd.Mikrotik digunakan sebagai pembatas global, dalam percobaan saya memberikan bandwidth donlot sebesar 256Kbps per klien dan upload saya batasi 32Kbps. Sedangkan squid disamping sebagai cache saya manfaatkan fungsi delay pools nya untuk menangkap aktifitas donlot extension tertentu. Untuk aktifitas donlot extension tertentu saya berikan speed 9 KBps atau setara 72Kbps.&lt;br /&gt;Alasan mengapa untuk browsing diberikan sebesar 256Kbps karena saya beranggapan untuk aktifitas browsing kebutuhan bandwidthnya adalah fluxtuatif alias naik turun dan tidak kontinu, sedangkan untuk donlot dia bersifat kontinu. Namun untuk penggunaan browsing yang agresif mungkin nilai 256Kbps perlu diturunkan, karena walaupun fluxtuatif jika agresif maka kesannya juga seperti kontinu.&lt;br /&gt;&lt;br /&gt;Untuk setting detailnya....menyusul, setelah didapatkan hasil yang pas...&lt;br /&gt;&lt;/div&gt;</description><link>http://sum14rdi.blogspot.com/2009/06/berbagi-idebandwidth-management.html</link><author>noreply@blogger.com (sum14rdi)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-627361986679834374.post-108503479001708463</guid><pubDate>Fri, 08 May 2009 03:13:00 +0000</pubDate><atom:updated>2009-05-08T10:19:25.127+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">sisi lain</category><title>Creative Theme Day 2009........</title><description>satu lagi nih ide dari temen-temen yang oke punya.....Creative Theme Day.....&lt;br /&gt;lebih lengkapnya kesini aja ya....&lt;br /&gt;&lt;a href=&quot;http://creativethemeday.com/ctd-update/press-release-creative-theme-day-dengung-tahun-kreatif-2009-di-dunia-maya/&quot;&gt;http://creativethemeday.com/ctd-update/press-release-creative-theme-day-dengung-tahun-kreatif-2009-di-dunia-maya/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href=&quot;http://creativethemeday.com&quot;&gt;&lt;img src=&quot;http://creativethemeday.com/images/banner_ctd250_01.jpg&quot; alt=&quot;”Creative&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;ayo satukan tekad untuk indonesia yang lebih sejahtera, adil dan makmur..........amin</description><link>http://sum14rdi.blogspot.com/2009/05/creative-theme-day-2009.html</link><author>noreply@blogger.com (sum14rdi)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-627361986679834374.post-5372946148954687629</guid><pubDate>Wed, 29 Apr 2009 03:13:00 +0000</pubDate><atom:updated>2009-04-29T10:36:43.619+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">FreeBSD</category><title>sedikit tips bagi yang ingin menginstall FreeBSD....</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;Untuk kali ini saya tidak akan membahas bagaimana cara menginstall FreeBSD, Karena di website FreeBSD sendiri sudah sangat jelas sekali tentang cara-cara menginstall FreeBSD. Bagi yang membutuhkan caranya &lt;a href=&quot;http://www.freebsd.org/doc/en/books/handbook/install.html&quot;&gt;disini linknya &lt;/a&gt;.&lt;br /&gt;Jika mengikuti petunjuk dari link tersebut dipastikan 99% berhasil menginstall FreeBSD. Namun ada beberapa hal yang perlu diperhatikan, antara lain :&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Pastikan untuk membaca petunjuk/pertanyaan yang muncul sewaktu menginstall, tidak perlu tergesa-gesa untuk mengklik/meng-enter setiap pilihan jawaban.&lt;/li&gt;&lt;li&gt;Persiapkan Layout/gambaran tentang besaran partisi yang diinginkan. Sesuaikan dengan kapasitas hardiknya. Untuk kepeluan FreeBSD (dan kebanyakan dari Linux juga) sebenarnya kita hanya memerlukan dua buah partisi hardisk yaitu partisi swap dan / &lt;root&gt;. Namun ada yang menyarankan agar partisi / &lt;root&gt; juga dipecah-pecah menjadi / , /var (tempat menaruh log, jika membutuhkan log, tidak semua aplikasi dapat dihilangkan lognya (menurut saya sich :D ), /usr (partisi ini diusahakan untuk mendapat porsi yang besar karena partisi ini tempat menaruh ports dan segala setting dari aplikasi yang diinstall). Dengan kata lain partisi / dipecah menjadi 3 bagian yaitu /, /var, /usr. &lt;/li&gt;&lt;li&gt;Untuk pembagian partisi disesuaikan dengan  kapasitas hardisknya, klo saya biasanya untuk hardisk dengan kapasitas 40 GB, untuk /swap = 2 kali kapasitas memory fisik saya, misal memory fisik 512 MB maka /swap=1 GB. Untuk / = 3 GB, /var =3 GB, /usr = 5 GB dan sisanya bisa buat simpan data.&lt;/li&gt;&lt;li&gt;Satu hal yang penting jangan menaruh partisi /swap di bagian pertama hardisk, karena akan berakibat setelah selesai install dan restart maka nanti dianggap tidak ada OS-nya dikarenakan default bootingnya di F1 (tempat swap jika swap di partisi pertama). Walaupun hal ini dapat diatasi dengan menekan tombol F2, F3, atau F4 tergantung di partisi mana / ditaruh. Jadi lebih baik menaruh partisi / dibagian pertama hardisk.&lt;/li&gt;&lt;/ul&gt;Selamat mencoba&lt;br /&gt;&lt;/div&gt;</description><link>http://sum14rdi.blogspot.com/2009/04/sedikit-tips-bagi-yang-ingin.html</link><author>noreply@blogger.com (sum14rdi)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-627361986679834374.post-2932023828447595002</guid><pubDate>Sat, 18 Apr 2009 11:39:00 +0000</pubDate><atom:updated>2009-04-18T18:49:30.513+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">FreeBSD</category><category domain="http://www.blogger.com/atom/ns#">smoothwall</category><category domain="http://www.blogger.com/atom/ns#">squid</category><title>Lagi Nyoba squid 2.7 stable6 di mesin FreeBSD 7.1.....</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;Penasaran dengan mesin FreeBSD, akhirnya diputuskan untuk mencobanya. Didonlotlah FreeBSD 7.1 kemudian didalamnya di pasang squid 2.7 Stable7. Mesin sekarang (pada saat tulisan ini ditulis) sudah mulai unjuk performanya, nanti klo cachenya udah gede diatas 10 Giga baru saya akan tulis step-stepnya saya membangun mesin squid ini.&lt;br /&gt;&lt;br /&gt;Sebagai tambahan untuk mesin yang sekarang saya menggunakan 3 buah hardisk, 1 hardisk 40 Giga untuk sistem dan cache (20 Giga untuk cachenya) dan 2 buah hardisk 10 Giga juga buat cache. Sebelumnya sewaktu menggunakan smoothwall saya menggunakan hardisk SATA, sekarang saya mencoba menggunakan hardisk tua di mesin freebsd.&lt;br /&gt;Dengan memory yang saya turunkan juga yang awalnya 2 GB sekarang menjadi 512MB.&lt;br /&gt;&lt;br /&gt;Intinya saya menginginkan dengan hardware yang winimal namun mudah-mudahan akan menghasilkan yang maksimal.....amin&lt;br /&gt;&lt;/div&gt;</description><link>http://sum14rdi.blogspot.com/2009/04/lagi-nyoba-squid-27-stable6-di-mesin.html</link><author>noreply@blogger.com (sum14rdi)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-627361986679834374.post-411714459830150008</guid><pubDate>Fri, 27 Feb 2009 01:39:00 +0000</pubDate><atom:updated>2009-02-27T09:13:00.513+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">smoothwall</category><title>Menyesuaikan Option L1 direktory smoothwall....</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;Sesuai judul, sedikit tips ini dilakukan dismoothwall.. karena untuk linux lainnya tinggal rubah aja di squid.conf-nya lalu tinggal restart squidnya. Dalam squid.conf kita diharuskan menentukan letak directory dari cache, biasanya bentuknya seperti ini :&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;cache_dir aufs /var/spool/squid/cache 20000 48 256&lt;/blockquote&gt;dimana :&lt;br /&gt;&lt;ol style=&quot;text-align: justify;&quot;&gt;&lt;li&gt;cache_dir = command squid-nya.&lt;/li&gt;&lt;li&gt;aufs = &quot;storage format&quot; (agak OOT saya mengartikannya...:( )&lt;/li&gt;&lt;li&gt;20000 = ukuran cache yang diinginkan (dalam MB) dari forum2 squid usahakan tidak lebih dari 70% total kapasitas hardisk.&lt;/li&gt;&lt;li&gt;48 = L1 direktory yang dihitung dengan rumus, L1=(cache_size * 2 * 1024)/(256*256*13).&lt;/li&gt;&lt;li&gt;256 = L2 direktory&lt;/li&gt;&lt;/ol&gt;untuk mengubah cache_dir ini di linux ya tinggal edit aja squid.conf lalu restart squid-nya. Sedangkan untuk smoothwall harus sedikit usaha untuk mengubah angka L1 dikarenakan proses penulisan squid.conf dismoothwall dilakukan via web-nya.&lt;br /&gt;Setelah kita menentukan besar ukuran cache size yang disesuaikan dengan kapasitas hardisk kita dan dihitung besar L1 direktorynya dengan rumus diatas kemudian kita harus mengubah angka2 option di bagian web advanced-proxy-nya.&lt;br /&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZPfB3qNxiWvquf7ESc60tqXqqiDwHS6Tmtvpq3_PF_I-TjnRnfbFmo02-LEayREf7XEctIOaSgTcvpKHI9pUfuvTR484IELTcn6PF4phBvtPpaH2A5o29y8tQT1IgRL4S27x_i0_vxC3n/s1600-h/ukuran+cache.JPG&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 320px; height: 96px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZPfB3qNxiWvquf7ESc60tqXqqiDwHS6Tmtvpq3_PF_I-TjnRnfbFmo02-LEayREf7XEctIOaSgTcvpKHI9pUfuvTR484IELTcn6PF4phBvtPpaH2A5o29y8tQT1IgRL4S27x_i0_vxC3n/s320/ukuran+cache.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5307289200255476498&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;pada bagian &quot;number of level 1 subdirectory&quot; jika masih memakai yang asli tidak akan terdapat angka2 yang sesuai jika kita menggunakan rumus diatas (terutama untuk ukuran cache, 10000 MB, 15000MB, 20000MB dan 25000MB) untuk itu kita harus mengubahnya.&lt;br /&gt;Dengan menggunakan winscp masuk ke directory &lt;span style=&quot;font-style: italic;&quot;&gt;/httpd/cgi-bin&lt;/span&gt; di smoothwall lalu klik kanan file advproxy.cgi dan temukan kata-kata ini&lt;br /&gt;&lt;blockquote&gt;option value=&#39;16&#39;  $selected{&#39;L1_DIRS&#39;}{&#39;16&#39;}&gt;16&lt;/blockquote&gt;ganti ganti angka 16 dengan 16, 24, 32, 36, 48, 60, 64,&lt;br /&gt;kemudian simpan file tadi. maka sekarang di web adv-proxy-nya dibagian &quot;number of level 1 subdirectory&quot; akan muncul angka 16, 24, 32, 36, 48, dst.&lt;br /&gt;Sekarang tinggal menyesuaikan dengan ukuran cache-nya, sebagai contoh untuk cache ukuran 20000MB maka L1 diset 48 lalu klik save and restart.&lt;br /&gt;selesai sudah.....</description><link>http://sum14rdi.blogspot.com/2009/02/menyesuaikan-option-l1-direktory.html</link><author>noreply@blogger.com (sum14rdi)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZPfB3qNxiWvquf7ESc60tqXqqiDwHS6Tmtvpq3_PF_I-TjnRnfbFmo02-LEayREf7XEctIOaSgTcvpKHI9pUfuvTR484IELTcn6PF4phBvtPpaH2A5o29y8tQT1IgRL4S27x_i0_vxC3n/s72-c/ukuran+cache.JPG" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-627361986679834374.post-2976810353346326281</guid><pubDate>Thu, 12 Feb 2009 11:17:00 +0000</pubDate><atom:updated>2009-02-12T18:58:30.750+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">mikrotik</category><title>schedulling akses client ke yahoo messenger........</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;hihihi.....lanjut lagi ah mumpung ada kesempatan buat nulis...&lt;br /&gt;pada intinya cara ini dimaksudkan untuk membatasi jam chating dengan menggunakan yahoo mesenger yang diinstall dan yang menggunakan web yahoo messenger. Yang dilakukan adalah dengan memblock port-port yang dipakai (dari hasil-nya didapat bahwa &quot;hanya&quot; dengan port-port ini sudah membuat client tidak bisa chating baik menggunakan ym yang diinstall atau dengan web yahoo messenger) sedangkan untuk cara login yang lain semisal lewat meebo atau lain2 diambil langkah ekstrim dengan memblock website-nya berdasarkan ip-nya (didapat dari hasil ping ) dan lagi-lagi ini dilakukan di mikrotik dengan menggunakan winbox.exe. Adapun port2 yang diblock adalah :&lt;br /&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;port tcp : 5100, 1677, 5050-5051, 5000-5010, 20-21, 23, 8001, 25, 27, 119, 37.&lt;/li&gt;&lt;li&gt;port udp : 8001&lt;/li&gt;&lt;/ol&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;jika dibuat kebijakan yang sama dimana semuanya dibatasi jam chating termasuk admin (adalah hil yang mustahal....pinjem kata2 alm.asmuni ) maka tinggal membuat filter rule di firewall (dengan chain: forward) lalu diberi comment yang sama. Comment ini nantinya digunakan sebagai tag pada script untuk meng-enable atau disable filter rule-nya. setelah script dibuat (ada 2 buah script, satu enable rule dan satunya lagi disable rule) tinggal kita buat schedullernya disesuaikan dengan kebutuhannya.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;contoh scriptnya :&lt;br /&gt;1. script filter rule :&lt;br /&gt;&lt;blockquote&gt;/ip firewall filter&lt;br /&gt;add action=drop chain=forward comment=ym disabled=no dst-port=5000-5010 protocol=tcp&lt;br /&gt;add action=drop chain=forward comment=ym disabled=no dst-port=20-21 protocol=tcp&lt;br /&gt;add action=drop chain=forward comment=ym disabled=no dst-port=23 protocol=tcp&lt;br /&gt;add action=drop chain=forward comment=ym disabled=no dst-port=8001 protocol=&lt;br /&gt;tcp&lt;br /&gt;add action=drop chain=forward comment=ym disabled=no dst-port=8001 protocol=&lt;br /&gt;   udp&lt;br /&gt;add action=drop chain=forward comment=ym disabled=no dst-port=25 protocol=tcp&lt;br /&gt;add action=drop chain=forward comment=ym disabled=no dst-port=27 protocol=tcp&lt;br /&gt;add action=drop chain=forward comment=ym disabled=no dst-port=119 protocol=tcp&lt;br /&gt;add action=drop chain=forward comment=ym disabled=no dst-port=37 protocol=tcp&lt;br /&gt;add action=drop chain=forward comment=&quot;&quot; disabled=no dst-address=\&lt;br /&gt;  208.81.191.110 src-address-list=LAN&lt;br /&gt;&lt;/blockquote&gt;yang terakhir itu untuk block meebo.&lt;br /&gt;2. enable/disable script&lt;br /&gt;&lt;blockquote&gt;/system script&lt;br /&gt;add name=ym-on policy=ftp,reboot,read,write,policy,test,winbox,password,sniff \&lt;br /&gt;   source=&quot;/ip firewall filter disable [find comment=ym]&quot;&lt;br /&gt;add name=ym-off policy=\&lt;br /&gt;   ftp,reboot,read,write,policy,test,winbox,password,sniff source=\&lt;br /&gt;   &quot;/ip firewall filter enable [find comment=ym]&quot;&lt;/blockquote&gt;3. scheduller script&lt;br /&gt;&lt;blockquote&gt;/system scheduler&lt;br /&gt;add comment=&quot;&quot; disabled=no interval=1d name=sch-ym-on on-event=ym-on \&lt;br /&gt;   start-date=oct/22/2008 start-time=10:00:00&lt;br /&gt;add comment=&quot;&quot; disabled=no interval=1d name=sch-ym-off on-event=ym-off \&lt;br /&gt;   start-date=oct/22/2008 start-time=14:00:00&lt;br /&gt;&lt;/blockquote&gt;contoh scheduller diatas klien bisa chating mulai jam 10.00 dan kemudian dimatikan jam 14.00.&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Untuk kebijakan lain, semisal hanya ip dari komputer admin atau ada sekumpulan ip client yang bisa online selalu maka harus dibuatkan address-list yang memuat ip-ip yang bebas chating. Address list ini tinggal dimasukan ke dalam src-address-list di rule-rule diatas dan jangan pula menambahkan tanda seru (!) disamping src-address-list. klo tidak diberi tanda (!) maka hanya ip yang masuk didalam address list yang akan diblock.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;selamat mencoba...</description><link>http://sum14rdi.blogspot.com/2009/02/schedulling-akses-client-ke-yahoo.html</link><author>noreply@blogger.com (sum14rdi)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-627361986679834374.post-5014033272879095433</guid><pubDate>Mon, 09 Feb 2009 02:00:00 +0000</pubDate><atom:updated>2009-02-09T09:40:35.595+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">mikrotik</category><title>Membatasi inetan di kantor........dengan mikrotik..</title><description>Wew......ketemu lagi..... :D&lt;br /&gt;&lt;br /&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Lanjut ah, sharing cara membatasi inetan dikantor....lagi-lagi dengan mikrotik. Kantor saya gak terlalu gede sih, denga jumlah PC dalam jaringan LAN ada sekitar 65 buah. Saya memakai ip range 192.168.0.1/24, dengan gateway saya taruh di 192.168.0.1 ya itu mikrotik sebagai gatewayya. Dari range IP tersebut ternyata sama boss tidak diijinkan semuanya dapat mengakses inet....hehe...hehe...dan agak parahnya IP yang boleh inetan itu acak alias tidak berurutan, sebagai tambahan saya memakai DHCP untuk pengaturan IP (biar gak pusing nyatetin IP klo ada perubahan cpu atau ada tambahan cpu). Kayaknya cukup untuk alasan pembatasan inetnya, kita lanjut ke settingnya...&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Oh....ya semua setting dilakukan menggunakan winbox.exe   soalnya bisa-nya itu je...&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Login ke mikrotik menggunakan winbox.&lt;/li&gt;&lt;li&gt;masuk ke menu /ip firewall address-list&lt;/li&gt;&lt;li&gt;klik add (tanda plus)&lt;/li&gt;&lt;li&gt;isikan name dengan yg unik, misalkan INET lalu isikan ip dengan ip yang punya akses inetan.&lt;/li&gt;&lt;li&gt;ulangi langkah 4 sehingga semua ip yang punya akses inetan tercatat dengan nama address-list yang sama.&lt;/li&gt;&lt;li&gt;selanjutnya kita mengubah setting masquerade kita, yang awalnya src-address diisi dengan full range ip client. Diganti dengan cara mengosongkan src-address di tab general dan pindah ke tab advanced kemudian mengisikan src-address list dengan list ip yang baru kita buat.&lt;/li&gt;&lt;li&gt;langkah 6 akan mengakibatkan ip-ip diluar ip adress-list tidak akan dimasquerade dan sudah tentu tidak akan bisa inetan....sesuai dengan kemauan kita khan ???&lt;/li&gt;&lt;li&gt;untuk lebih memastikan lagi, sebaiknya dibuatkan rule difilter rule dengan chain forward, lalu in-interface=interface yang mengarah ke client, kemudian ke tab advanced pada bagian src-address list= ip list yang baru dibuat, kemudian beri tanda seru (pentung) disamping kirinya dan untuk action=drop. rule ini ditaruh dipaling atas.&lt;/li&gt;&lt;li&gt;langkah ke 8 akan berakibat semua ip diluar list tidak akan diforward/diteruskan permintaannya.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;ok selesai...silahkan mencoba..</description><link>http://sum14rdi.blogspot.com/2009/02/membatasi-inetan-di-kantordengan.html</link><author>noreply@blogger.com (sum14rdi)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-627361986679834374.post-6680339015844268117</guid><pubDate>Sat, 07 Feb 2009 10:33:00 +0000</pubDate><atom:updated>2009-02-07T18:05:34.096+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">smoothwall</category><category domain="http://www.blogger.com/atom/ns#">tips</category><title>(Tips....) menggabungkan adzapper, urlfilter (squidguard) dan Updatecacher di smoothwall..</title><description>Terima kasih bagi anda yang setia mengikuti blog saya ini..&lt;br /&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Jika anda telah berhasil menginstall smoothwall ditambah dengan addon seperti Advanced web proxy, urlfilter dan adzapper saya ucapkan selamat..&lt;br /&gt;Sekarang saya lanjutkan dengan menambahkan satu lagi addon yaitu update cache, gunanya adalah mencache file-file update seperti dari windoz, file-file update antivirus dll. Filenya dapat di donlot disini &lt;a href=&quot;http://mods.smurfsofwar.com/files/mods/updatecacher-swe3-0.9-beta2.tgz&quot;&gt;http://mods.smurfsofwar.com/files/mods/updatecacher-swe3-0.9-beta2.tgz&lt;/a&gt;&lt;br /&gt;Install seperti biasa (Jika smoothwall anda digunakan untuk warnet dan pada saat anda menginstall addon ini sedang banyak client, lebih baik web-proxynya di by pass dulu. Dikarenakan setelah diinstall update cache-nya akan menyebabkan web-proxy tidak berjalan. Hal ini dikarenakan terdapat lebih dari satu redirector...)&lt;br /&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;pindahkan file update cache hasil donlot ke foder /tmp di  smoothwall dengan menggunakan winscp.&lt;/li&gt;&lt;li&gt;gunakan putty untuk mengakses konsol smoothwall lalu ketikan :&lt;/li&gt;&lt;/ol&gt;&lt;blockquote&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;tar -zxvf updatecacher-swe3-0.9-beta2.tgz -C /&lt;/span&gt; &lt;span style=&quot;font-style: italic;&quot;&gt;./install-updatecacher.sh&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;kemudian edit file &lt;span style=&quot;font-style: italic;&quot;&gt;include.acl&lt;/span&gt; yang ada di &lt;span style=&quot;font-style: italic;&quot;&gt;/var/smoothwall/proxy/advanced/acls&lt;/span&gt; cari baris yang memuat :&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;url_rewrite_program /var/smoothwall/mods/updatecacher/bin/redir.pl&lt;/blockquote&gt;setelah ditemukan di uncomment saja lalu disave file include.acl tadi.&lt;br /&gt;kemudian kita beralih ke file &lt;span style=&quot;font-style: italic;&quot;&gt;wrapzap&lt;/span&gt; yang ada di &lt;span style=&quot;font-style: italic;&quot;&gt;/usr/local/adzapscripts&lt;/span&gt; kemudian carai baris yang memuat :&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;exec /usr/local/adzap/scripts/zapchain &quot;$zapper&quot; /usr/sbin/squidGuard&lt;/span&gt;&lt;/blockquote&gt;lalu diganti dengan :&lt;br /&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style=&quot;font-style: italic;&quot;&gt;exec /usr/local/adzap/scripts/zapchain &quot;$zapper&quot; &quot;/usr/sbin/squidGuard -c /var/smoothwall/urlfilter/squidGuard.conf&quot; &quot;/var/smoothwall/mods/updatecacher/bin/redir.pl&quot; &lt;/span&gt;&lt;/blockquote&gt;langkah terakhir adalah merestart advanced web-proxy dengan cara masuk ke web smoothwall lalu ke bagian service, advanced web proxy. Klik tombol &lt;span style=&quot;font-weight: bold;&quot;&gt;save and restart&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Untuk melihat apakah advanced proxy sudah berjalan atau belum, bisa dilihat dikonsol dengan mengetik :&lt;br /&gt;&lt;blockquote style=&quot;font-style: italic;&quot;&gt;ps ax&lt;/blockquote&gt;Jika advanced proxy sudah berjalan akan muncul tulisan seperti ini :&lt;br /&gt;&lt;div style=&quot;text-align: center;&quot;&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXd6VxrSFqxKmxEyg-U5sMXqbDgQ76uTw1BXrfRo3ltU3y0KUL5G8iIvhqhkxgGq3O268IZExhG7FC2zmdvRWZ4k6hEQ4rBbR7URacBSyLjvOhgHuG_u2rcRULxipIkPneV1JweqH-oO47/s1600-h/proxy1.bmp&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 320px; height: 198px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXd6VxrSFqxKmxEyg-U5sMXqbDgQ76uTw1BXrfRo3ltU3y0KUL5G8iIvhqhkxgGq3O268IZExhG7FC2zmdvRWZ4k6hEQ4rBbR7URacBSyLjvOhgHuG_u2rcRULxipIkPneV1JweqH-oO47/s320/proxy1.bmp&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5300009749194212386&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;selamat mencoba.....&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;</description><link>http://sum14rdi.blogspot.com/2009/02/tips-menggabungkan-adzapper-urlfilter.html</link><author>noreply@blogger.com (sum14rdi)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjXd6VxrSFqxKmxEyg-U5sMXqbDgQ76uTw1BXrfRo3ltU3y0KUL5G8iIvhqhkxgGq3O268IZExhG7FC2zmdvRWZ4k6hEQ4rBbR7URacBSyLjvOhgHuG_u2rcRULxipIkPneV1JweqH-oO47/s72-c/proxy1.bmp" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-627361986679834374.post-3301509040335527676</guid><pubDate>Sat, 31 Jan 2009 09:48:00 +0000</pubDate><atom:updated>2009-02-05T16:31:21.000+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">linux</category><title>(satu lagi...) Distro karya anak negeri....</title><description>Selamat....saluuuuuut.........&lt;br /&gt;Atas meluncurnya distro baru turunan puppy linux, namanya Kinjeng.OS&lt;br /&gt;Sebuah distro dengan 3 penampilan yaitu xp look, mac look dan vista look.&lt;br /&gt;Walau belum sempet install kinjeng, tapi karena pernah install puppy linux kemungkinan akan sama saja caranya. Dan bagi pengguna linux &quot;umumnya&quot; dan newbie seperti saya, ketika berhadapan dengan puppy linux akan berbeda sekali, terutama gaya install aplikasi-aplikasinya.&lt;br /&gt;Semoga saja dengan peluncuran distro baru turunan puppy linux ini akan membuat newbie-newbie seperti saya akan semakin mudah saja untuk memakai linux.&lt;br /&gt;&lt;br /&gt;sekali selamat dan tetap semangat..tetap sehat...biar kita sama-sama mengexplore linux kita masing-masing&lt;br /&gt;&lt;br /&gt;Untuk Lengkapnya mengenai kinjeng.OS silahkan  kemari aja : &lt;a href=&quot;http://linuxkinjeng.wordpress.com/&quot;&gt;http://linuxkinjeng.wordpress.com/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;NB:mau pelurusan atau klarifikasi saja, dari beberapa komen melalui mesenger saya, beberapa menyangka ini distro buatan saya akan tetapi ini bukan buatan saya...sekali lagi ini distro bukan saya yang membuat (kasian yang sudah susah2 bikin :D ) di blog yang saya sebutkan disitu ada siapa yang membuatnya....&lt;br /&gt;terima kasih...semoga tidak ada kesalahpahaman lagi...</description><link>http://sum14rdi.blogspot.com/2009/01/satu-lagi-distro-karya-anak-negeri.html</link><author>noreply@blogger.com (sum14rdi)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-627361986679834374.post-1116793092984701384</guid><pubDate>Wed, 28 Jan 2009 12:30:00 +0000</pubDate><atom:updated>2009-01-28T19:54:23.417+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">mikrotik</category><title>Lock IP dan MAC address client di Mikrotik....</title><description>Mungkin anda pernah mengalami, ada client nakal yang coba-coba memakai ip komputer admin untuk mendapatkan akses inet tanpa batas........wuih suuuuuebelnya....bukan apa-apa sich, tapi yang kena marah oleh atasan tentu yang mengatur akses inetnya (baca: saya).&lt;br /&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Bagi anda yang menggunakan Mikrotik sebagai pengatur (gateway/router/web-proxy) akses ditempat anda, mungkin ini ada sedikit cara untuk mengatasi agar ip-ip yang mempunyai akses inet tidak bisa saling dipertukarkan...&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Kita langsung ke TKP aja, yuk.....&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Login ke Mikrotik menggunakan winbox (maaf bagi CLI mania....saya bisanya GUI..hehehehe).&lt;/li&gt;&lt;li&gt;Pastikan semua client sudah ON semua, karena kita akan merekam mac-address menggunakan IP SCAN yang ada diwinbox.&lt;/li&gt;&lt;li&gt;Masuk ke menu IP--&gt;Firewall kebagian tab address-list&lt;/li&gt;&lt;li&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3CbVEoEcmbC72vF8jX8imC4jnU1LO9kEjJ6w9kCKTY2L2rhrUdRaQUG_m8M6X3A9vVfA1qdEjxoFRYz2FYqnAhtxxvdV9ZrN8HbSh0l4Z1VFigi7LNOEMkLj5vyGn3yHysLOPY0iKtWvk/s1600-h/adlist1.JPG&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 320px; height: 160px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3CbVEoEcmbC72vF8jX8imC4jnU1LO9kEjJ6w9kCKTY2L2rhrUdRaQUG_m8M6X3A9vVfA1qdEjxoFRYz2FYqnAhtxxvdV9ZrN8HbSh0l4Z1VFigi7LNOEMkLj5vyGn3yHysLOPY0iKtWvk/s320/adlist1.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5296322904690838194&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Isikan nama sesuai keinginan anda asal mudah diingat, kemudian IP client. Prosedur ini dilakukan untuk semua client dengan nama address-list yang sama. Jika semua client sudah dimasukan ke dalam address-list selanjutnya menuju tab: NAT&lt;/li&gt;&lt;li&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgm16USZjYAOf4M9T9WO3Dy8syplwaO-zKqmnsR8ng4X0MzIrEeH2oXe1tUocs9B-fir4xO8nwTNPzKy_A_bmrZh5CpJLWrmz59rQ47GP89q0Yq1LY2maf2K6T8rEdbrm638PZzwbAeAMSZ/s1600-h/adlist2.JPG&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 238px; height: 320px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgm16USZjYAOf4M9T9WO3Dy8syplwaO-zKqmnsR8ng4X0MzIrEeH2oXe1tUocs9B-fir4xO8nwTNPzKy_A_bmrZh5CpJLWrmz59rQ47GP89q0Yq1LY2maf2K6T8rEdbrm638PZzwbAeAMSZ/s320/adlist2.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5296323764493678546&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Gambar diatas adalah merubah rule/script dari nat-masquerade yang sudah ada, dimana biasanya di bagian general untuk src-address diisikan range ip client. Untuk kali ini dirubah, sehingga hanya client yang ada di address-list saja yang akan dimasquerade.&lt;/li&gt;&lt;li&gt;Langkah selanjutnya adalah merekam mac-address dari client kita, untuk itu kita menggunakan tools ip-scan. menuju menu tools dan pilih ip-scan&lt;/li&gt;&lt;li&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzVIFMdiNaNbu2f7hiY2YP4MVm8R786HRZjephTnTGUKccyYa9RUDUA4PO7yCaYb_BYE83FqYhXsscggrt7B7j1EeDWnpiOzGYWmsoWI0FirMJKD-6hli5WMSO3q_6TJ3-NjQBSV0u-U-B/s1600-h/adlist3.JPG&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 320px; height: 226px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjzVIFMdiNaNbu2f7hiY2YP4MVm8R786HRZjephTnTGUKccyYa9RUDUA4PO7yCaYb_BYE83FqYhXsscggrt7B7j1EeDWnpiOzGYWmsoWI0FirMJKD-6hli5WMSO3q_6TJ3-NjQBSV0u-U-B/s320/adlist3.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5296324955298788146&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Interface dipilih interface yang ada dimikrotik yang mengarah ke LAN, untuk address range silahkan disesuaikan dengan ip-range client anda. Setelah itu silahkan klik start, dan tunggu beberapa saat. Setelah semua ip berhasil ditampilkan, biarkan tool ip-scan (tidak usah di close), kemudian menuju menu IP--&gt;ARP&lt;/li&gt;&lt;li&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_4ee4NLxbvwgP6vLKtOwLmtekr5Jj-Qg1VppiJBLb4OE85ddTX9N_TFAE_jwkn7Kf-R5TaQJoDhBgwDyUd1l88_4BYdbgmQBtSN2Ti-okQtBDOC0F-xYLrd64-Ht6Q7FWLk0rt4IEJets/s1600-h/adlist4.JPG&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 320px; height: 278px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh_4ee4NLxbvwgP6vLKtOwLmtekr5Jj-Qg1VppiJBLb4OE85ddTX9N_TFAE_jwkn7Kf-R5TaQJoDhBgwDyUd1l88_4BYdbgmQBtSN2Ti-okQtBDOC0F-xYLrd64-Ht6Q7FWLk0rt4IEJets/s320/adlist4.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5296325698988163746&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Maka didalam ARP list akan muncul ip dan mac-address dari client. Selanjutnya adalah membuat agar arp-list menjadi static dengan cara meng-klik kanan setiap pasangan ip dan mac-address tersebut dan pilih option make statik. Ini dilakukan untuk semua ip yang muncul. Setelah semua menjadi statik selanjutnya menuju menu INTERFACES&lt;/li&gt;&lt;li&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSQil5qfsgL_rlPxscFYktEquJl0M-TkAj4RHAuNOVU0R4b45UwmkssyUit_BLeQq5vx4MMh-IAN4GIo-qByZ5SO318JLTwzLRtiiDys68Gk6ijYgl1eeCUDKPNyl0NcS4Y2v2pOnFxavG/s1600-h/adlist5.JPG&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 320px; height: 185px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSQil5qfsgL_rlPxscFYktEquJl0M-TkAj4RHAuNOVU0R4b45UwmkssyUit_BLeQq5vx4MMh-IAN4GIo-qByZ5SO318JLTwzLRtiiDys68Gk6ijYgl1eeCUDKPNyl0NcS4Y2v2pOnFxavG/s320/adlist5.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5296326470924974258&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Pilih interface yang menuju klien, klik kiri dua kali sehingga muncul gambar seperti diatas. Kemudian pada option ARP dipilih reply-only&lt;/li&gt;&lt;li&gt;Selesai&lt;/li&gt;&lt;/ol&gt;Untuk mengetesnya silahkan anda ganti salah mac-address client anda dengan ip yang bukan pasangannya di arp-list tadi....&lt;br /&gt;&lt;br /&gt;selamat mencoba..</description><link>http://sum14rdi.blogspot.com/2009/01/lock-ip-dan-mac-address-client-di.html</link><author>noreply@blogger.com (sum14rdi)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3CbVEoEcmbC72vF8jX8imC4jnU1LO9kEjJ6w9kCKTY2L2rhrUdRaQUG_m8M6X3A9vVfA1qdEjxoFRYz2FYqnAhtxxvdV9ZrN8HbSh0l4Z1VFigi7LNOEMkLj5vyGn3yHysLOPY0iKtWvk/s72-c/adlist1.JPG" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-627361986679834374.post-797856746725160729</guid><pubDate>Tue, 27 Jan 2009 10:20:00 +0000</pubDate><atom:updated>2009-01-27T17:36:10.166+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">mikrotik</category><category domain="http://www.blogger.com/atom/ns#">speedy</category><title>Mengamankan web-proxy kita.....</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;Setelah kita berhasil menggabungkan smoothwall dengan mikrotik. Apabila koneksi kita menggunakan speedy yang memiliki bandwidth uploadnya yang kecil, sudah selayaknya agar kita mengamankan web-proxy ini supaya hanya client lokal kita saja yang menggunakannya. Apabila ada client dari luar (dari WAN) ikut juga menikmati web-proxy ini maka dijamin koneksi inet kita akan loyo dikarenakan Bandwidth upload kita habis terpakai oleh client luar ini....jadi berhati-hati lah!!!&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Langkah pengamanan ini sebenarnya tidak hanya diperuntukan bagi pemakai yang menggunakan koneksi speedy (dengan mengeset modem sebagai bridge modem), tetapi juga koneksi yang lainnya, dengan menyesuaikan parameter &quot;in-interface&quot; disesuaikan dengan jenis koneksi WAN-nya.&lt;br /&gt;&lt;/div&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Kita lanjut ke tujuan utama kita:&lt;br /&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;Login ke Winbox kemudian masuk ke menu IP--&gt;Firewall--&gt;Filter&lt;/li&gt;&lt;li&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0S6Et2_HcHJXTMCxAWuNJzoHIFRb_n8LdtKpZ9J7xWksqwzE9wMa4ImwG_5kiW-7_eAgRBqZTAEhHSj2n3Hfwrs11RHRhqElTYq7bOzjpLU7CzPjxNIK3XxB6GoNuhkhG2uH0wJSqpviQ/s1600-h/aman1.JPG&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 229px; height: 320px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0S6Et2_HcHJXTMCxAWuNJzoHIFRb_n8LdtKpZ9J7xWksqwzE9wMa4ImwG_5kiW-7_eAgRBqZTAEhHSj2n3Hfwrs11RHRhqElTYq7bOzjpLU7CzPjxNIK3XxB6GoNuhkhG2uH0wJSqpviQ/s320/aman1.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5295919117876092434&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li style=&quot;text-align: justify;&quot;&gt;Ikuti option-option diatas,untuk jenis koneksi selain speedy tinggal menyesuaikan &quot;in-interface&quot;, dimana interface yang digunakan adalah interface mikrotik yang mengarah ke WAN/internet, kemudian pindah ke tab action, diisikan drop.&lt;/li&gt;&lt;li&gt;Langkah ke-2 diulang untuk port-port:3128,808&lt;/li&gt;&lt;li&gt;Selesai&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;</description><link>http://sum14rdi.blogspot.com/2009/01/mengamankan-web-proxy-kita.html</link><author>noreply@blogger.com (sum14rdi)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0S6Et2_HcHJXTMCxAWuNJzoHIFRb_n8LdtKpZ9J7xWksqwzE9wMa4ImwG_5kiW-7_eAgRBqZTAEhHSj2n3Hfwrs11RHRhqElTYq7bOzjpLU7CzPjxNIK3XxB6GoNuhkhG2uH0wJSqpviQ/s72-c/aman1.JPG" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-627361986679834374.post-8409141038462895659</guid><pubDate>Fri, 16 Jan 2009 13:00:00 +0000</pubDate><atom:updated>2009-01-16T20:16:02.205+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">linux</category><title>waduuuh......ribetnya install berry linux...</title><description>&lt;div style=&quot;text-align: justify;&quot;&gt;Terbentur pada spek hardware pc untuk sekretariat RT, mau gak mau harus cari distro linux yang ringan tetapi sudah menggunakan kernel 2.6. dan tampilannya gak kuno-kuno amat :D&lt;br /&gt;Ditambah pengetahuan linux yang masih seujung kuku kutu.....jadi cepede.&lt;br /&gt;Iseng iseng browsing dan dapet puppy linux sama berry linux.&lt;br /&gt;Pertama install puppy linux....gak masalah :D .Linux dapat diinstall dengan baik ke hardisk dan jalan tapi sayangnya program2 yang diinstall gak familiar. Tapi dari soal speed, dengan &quot;hanya&quot; RAM 128MB dapet leluasa ngacir...&lt;br /&gt;terbentur dengan program openoffice yang belum ada (tapi selanjutnya berusaha untuk menginstall secara manual paket openoffice...dengan hasil .....gatot alias gagal total :( ). Selanjutnya diputuskan untuk menginstall berry linux....&lt;br /&gt;&lt;br /&gt;Install bery linux.....&lt;br /&gt;&lt;br /&gt;Sesuai kebiasaan distro sekarang, setelah berhasil booting dari CD tentunya akan mencari option untuk menginstall ke hardisk. Setelah &quot;ubek-ubek&quot; sana kesini...eh gak taunya ngumpet tuh option (sebenarnya agak secara kebetulan nemunya...karena tulisannya &quot;berri installer&quot; yang saya asumsikan buat install paket-paket diberry bukan install berry ke hardisk..)&lt;br /&gt;setelah diklik dan masukan password root (paswordnya ternyata juga root...hehehehehe)&lt;br /&gt;udah dech akhirnya berhasil install berry linux, yang udah ada openoffice versi 3 lagi....&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://sum14rdi.blogspot.com/2009/01/waduuuhribetnya-install-berry-linux.html</link><author>noreply@blogger.com (sum14rdi)</author></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-627361986679834374.post-5192814716194554075</guid><pubDate>Fri, 16 Jan 2009 09:19:00 +0000</pubDate><atom:updated>2009-01-16T17:00:15.079+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">mikrotik</category><title>Setting VPN di mikrotik memakai PPtP...</title><description>Pengantar..&lt;br /&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Sebenernya agak males untuk menulis masalah setting VPN ini, dikarenakan banyak yang sudah mengulasnya secara mendalam. Kemudian atas permintaan seorang teman dan adanya ketersediaan waktu akhirnya saya tulis juga. Namun VPN yang akan saya setting hanya menggunakan satu jenis yaitu PPtP (Point to Point tuneling protocol)&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Asumsi..&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Jaringan inet anda dengan menggunakan gateway/router mikrotik sudah berjalan dengan baik dan juga memiliki ip public.&lt;/li&gt;&lt;li&gt;IP pool untuk VPN : 192.168.15.1-192.168.15.50&lt;/li&gt;&lt;li&gt;IP Mikrotik yang mengarah ke LAN :192.168.0.245&lt;/li&gt;&lt;/ol&gt;Action...&lt;br /&gt;&lt;ol&gt;&lt;li&gt;silahkan login ke mikrotik anda dengan menggunakan winbox...&lt;/li&gt;&lt;li&gt;kemudian kita masuk ke modul Ip--&gt;Pool&lt;/li&gt;&lt;li&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTHrl6lx_i_4C9uVLZAi6dx9sbsVgOfQYd2Sa9I_iuZ99SUm0WXIaDB3cyP4uVO1v39Zdu3AWZS2QfwdISeT84vtqPj1eOGdl1RrdNS5DxjblCC00yoiXXU_RvmU4d4BmUQE_hlbHW3uN2/s1600-h/vpn1.JPG&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 320px; height: 250px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTHrl6lx_i_4C9uVLZAi6dx9sbsVgOfQYd2Sa9I_iuZ99SUm0WXIaDB3cyP4uVO1v39Zdu3AWZS2QfwdISeT84vtqPj1eOGdl1RrdNS5DxjblCC00yoiXXU_RvmU4d4BmUQE_hlbHW3uN2/s320/vpn1.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5291823121967498002&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;untuk nama bisa diberikan sesuai dengan keinginan anda, yang penting mudah diingat&lt;/li&gt;&lt;li&gt;untuk address dimasukan : 192.168.15.1-192.168.15.50 dan next pool=none lalu klik OK&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Selanjutnya kita masuk ke modul PPP ke tab profiles, lalu klik tanda plus..&lt;/li&gt;&lt;li&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWvW4NN44z2b1SfZQglIZGAbwBvWovSytAvse0yOPWpwcKeG8o7lhM0hN_ZitRqIIfNKmKbKv5eGNafTRyKS9wYZXWxbATAFCyYUwackYF-7poIyXwfdgYBju1Z_lk4Leokj8o9JcJq1t-/s1600-h/vpn2.JPG&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 320px; height: 289px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWvW4NN44z2b1SfZQglIZGAbwBvWovSytAvse0yOPWpwcKeG8o7lhM0hN_ZitRqIIfNKmKbKv5eGNafTRyKS9wYZXWxbATAFCyYUwackYF-7poIyXwfdgYBju1Z_lk4Leokj8o9JcJq1t-/s320/vpn2.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5291825052506480050&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Untuk nama silahkan cari yang unik, kemudian local address diisikan dengan ip mikrotik yang mengarah ke LAN dan DNS server diberi ip yang sama (dengan catatan pada setting DNS di mikrotik pada option allow remote request di ceklist) lalu klik OK&lt;/li&gt;&lt;li&gt;Selanjutnya kita pindah ke tab secrets masih pada modul PPP, kemudian diklik tanda plus-nya&lt;/li&gt;&lt;li&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggcCestfWAKfJr28w1lxd9vQ34wu3LsTETVLcT-Ef86oA6NWo9i0Uuj2IV4UgUZtkJgxOUI3lUe2lqQDLIrnvy_gybo4zNBlbVMoxlIz5rohRRZXbdN4NkgSVs3SoyVX6t61tdjfvWf-JA/s1600-h/vpn3.JPG&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 320px; height: 234px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEggcCestfWAKfJr28w1lxd9vQ34wu3LsTETVLcT-Ef86oA6NWo9i0Uuj2IV4UgUZtkJgxOUI3lUe2lqQDLIrnvy_gybo4zNBlbVMoxlIz5rohRRZXbdN4NkgSVs3SoyVX6t61tdjfvWf-JA/s320/vpn3.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5291826198559866482&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Pada bagian ini untuk memberikan akses/username untuk menggunakan atau login ke VPN kita, silahkan berikan username dan password yang unik. Untuk service silahkan klik pptp dan profile diisi dengan profile yang sudah dibuat tadi..lalu diklik OK&lt;/li&gt;&lt;li&gt;Setelah bagian ini selesai kemudian kita masuk ke TAB interface dan klik pada bagian PPTP Server&lt;/li&gt;&lt;li&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhH_17p0tBJe_oJ0OAQZF8WUef9Clskd7p5JAYTj-2fKTvPC-0bXkHKgQzX3GiR0rytsGxAqw-6yMqHeG4BK85DMTegQvNMQ8S32UEkYpggZrzAokOZEElXGf6uVSMYhTnYVWM2eY7268Wc/s1600-h/vpn4.JPG&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 320px; height: 201px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhH_17p0tBJe_oJ0OAQZF8WUef9Clskd7p5JAYTj-2fKTvPC-0bXkHKgQzX3GiR0rytsGxAqw-6yMqHeG4BK85DMTegQvNMQ8S32UEkYpggZrzAokOZEElXGf6uVSMYhTnYVWM2eY7268Wc/s320/vpn4.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5291827244002903298&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Silahkan diikuti semua option diatas kemudian klik OK, maka telah selesai setting VPN kita&lt;/li&gt;&lt;/ol&gt;Tes koneksi dengan menggunakan windows XP&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTD9NYI1GIFZuNKo70-UaeE7B5eE2cy44KZJ3EZNA11FPp2mFsn6xMEE-ETSytwy04I7BiMpvsMz3nYBjEhjn5mK88ffBA1NHaRVGeVmKjNA7RHYbSX1agCeg4Gbntw1WmtI16Reca9Ax_/s1600-h/vpn5.JPG&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 320px; height: 222px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTD9NYI1GIFZuNKo70-UaeE7B5eE2cy44KZJ3EZNA11FPp2mFsn6xMEE-ETSytwy04I7BiMpvsMz3nYBjEhjn5mK88ffBA1NHaRVGeVmKjNA7RHYbSX1agCeg4Gbntw1WmtI16Reca9Ax_/s320/vpn5.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5291828307285348370&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRCz8zwCGh0Jav6Hye7vmL5-DPehHFVtS_-DpMlZOzao8QVnC-G5lcmPYGrvkpgAfAXnpRyFGGmKg4cY6w5azSrHfSGiu-LtDQKOJajoqPgxwQSHtG_t-1JCWNSKwfGquJWCPaZToN1p9L/s1600-h/vpn6.JPG&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 320px; height: 246px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiRCz8zwCGh0Jav6Hye7vmL5-DPehHFVtS_-DpMlZOzao8QVnC-G5lcmPYGrvkpgAfAXnpRyFGGmKg4cY6w5azSrHfSGiu-LtDQKOJajoqPgxwQSHtG_t-1JCWNSKwfGquJWCPaZToN1p9L/s320/vpn6.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5291828309457631634&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG6FE1jlfSIb_Q7bc_fRKgr980eFhgZ-HKLJtTzXTCw4SvIpxOJjuQTUkPAkCUX_FL7327LBXSXM3QdIkvCRhRKqSnluT80DYp5oTQdZY-0A_WfEoGiO0E8loikzFbIe5BPBeBkNKwUkvn/s1600-h/vpn7.JPG&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 320px; height: 247px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG6FE1jlfSIb_Q7bc_fRKgr980eFhgZ-HKLJtTzXTCw4SvIpxOJjuQTUkPAkCUX_FL7327LBXSXM3QdIkvCRhRKqSnluT80DYp5oTQdZY-0A_WfEoGiO0E8loikzFbIe5BPBeBkNKwUkvn/s320/vpn7.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5291828311562743298&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhouBX4Uz88cmajB_zIRJqhtwRbBUh3rM-Cx1jaUr6nenY1YTtLK5guhNiBMOi-cWrc_riaYA8eeDXDvyU05szOk7SBw9_D1cx6SS6GMXWecEXvQ3bz8sj-Cwnprm8YcjOYt9ZPxOFLqTFM/s1600-h/vpn8.JPG&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 320px; height: 242px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhouBX4Uz88cmajB_zIRJqhtwRbBUh3rM-Cx1jaUr6nenY1YTtLK5guhNiBMOi-cWrc_riaYA8eeDXDvyU05szOk7SBw9_D1cx6SS6GMXWecEXvQ3bz8sj-Cwnprm8YcjOYt9ZPxOFLqTFM/s320/vpn8.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5291828314713391186&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhx-Q6AL1JGYpC-moSC_C6joioItW2_DaTre_W_NwcfzKORbwL6yztEH6isbBU440F9BfJqB-GBPrVV0sF9YIxXkFRSwJF6QAsj2ATLU32Umy2jc4RPmzq5HPhgAC_CmBQOsP9mlluWFUwz/s1600-h/vpn9.JPG&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 320px; height: 243px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhx-Q6AL1JGYpC-moSC_C6joioItW2_DaTre_W_NwcfzKORbwL6yztEH6isbBU440F9BfJqB-GBPrVV0sF9YIxXkFRSwJF6QAsj2ATLU32Umy2jc4RPmzq5HPhgAC_CmBQOsP9mlluWFUwz/s320/vpn9.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5291828320504776898&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgafAs3ssukFfUdUgeKTBUjxcSndanonn9yPZNOgJA_5b6yX5DcLIJQPPZM-yv7GB7Ccgous8QAuR0MJWcglDJrqHyPAQnASR2mM_cBvDqJ-yrEfYrzKMx4OySXKGsbzbISqz5ALNx0BSdz/s1600-h/vpn10.JPG&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 320px; height: 244px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgafAs3ssukFfUdUgeKTBUjxcSndanonn9yPZNOgJA_5b6yX5DcLIJQPPZM-yv7GB7Ccgous8QAuR0MJWcglDJrqHyPAQnASR2mM_cBvDqJ-yrEfYrzKMx4OySXKGsbzbISqz5ALNx0BSdz/s320/vpn10.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5291828886098097010&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI09I1RA9ydeGbxr29Kx8zMu9snovytW5a1f7lAR14HNPIOYIG_0nAei_8LLQ7phpEtQ96nG8uYo3ERY8qt0G0biADWc26LLP579bU8uP0uAFXrGRmJWgmZzUtW-8PlLAe0JthpOh-pm9i/s1600-h/vpn11.JPG&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 320px; height: 244px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiI09I1RA9ydeGbxr29Kx8zMu9snovytW5a1f7lAR14HNPIOYIG_0nAei_8LLQ7phpEtQ96nG8uYo3ERY8qt0G0biADWc26LLP579bU8uP0uAFXrGRmJWgmZzUtW-8PlLAe0JthpOh-pm9i/s320/vpn11.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5291828890923106306&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoJjh8JwHh1wRvEGGp57FfJ7Ijx0ma6sUNccKlNXc8722P_TfIYs65v7JWn2aJ8y80lmltUUa1k-Dv0yOKMk6Q43uI7FzuwrMk-DUKp-OYtuEJn7FNnymZIP2QrPuLZOeQtygRlHu6g3Kd/s1600-h/vpn12.JPG&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 308px; height: 320px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoJjh8JwHh1wRvEGGp57FfJ7Ijx0ma6sUNccKlNXc8722P_TfIYs65v7JWn2aJ8y80lmltUUa1k-Dv0yOKMk6Q43uI7FzuwrMk-DUKp-OYtuEJn7FNnymZIP2QrPuLZOeQtygRlHu6g3Kd/s320/vpn12.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5291828889608279026&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;Selesai....&lt;br /&gt;Selamat mencoba</description><link>http://sum14rdi.blogspot.com/2009/01/setting-vpn-di-mikrotik-memakai-pptp.html</link><author>noreply@blogger.com (sum14rdi)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTHrl6lx_i_4C9uVLZAi6dx9sbsVgOfQYd2Sa9I_iuZ99SUm0WXIaDB3cyP4uVO1v39Zdu3AWZS2QfwdISeT84vtqPj1eOGdl1RrdNS5DxjblCC00yoiXXU_RvmU4d4BmUQE_hlbHW3uN2/s72-c/vpn1.JPG" height="72" width="72"/></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-627361986679834374.post-9077008870586041300</guid><pubDate>Tue, 13 Jan 2009 03:30:00 +0000</pubDate><atom:updated>2009-01-13T15:20:46.989+07:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">mikrotik</category><category domain="http://www.blogger.com/atom/ns#">speedy</category><title>Setting Linksys AG241 dan Mikrotik untuk akses speedy</title><description>Pengantar...&lt;br /&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Kenapa yang digunakan adalah Linksys AG241 tidak yang lain? jawabnya simpel, dikantor saya pakenya ini. Kenapa harus ada mikrotik juga, pake linksys AG 241 juga sudah cukup klo cuma mau share internet? jawabnya simpel juga, karena pengaturan yang &quot;agak&quot; ruwet untuk kebutuhan share internet dikantor dan hal ini tidak dapat dipenuhi oleh sebuah linksys AG241.&lt;br /&gt;Untuk kali ini linksys AG241 difungsikan sebagai bridge, sedangkan dial dilakukan oleh mikrotik. Beberapa hal yang menguntungkan jika dial dengan mikrotik :&lt;br /&gt;&lt;/div&gt;&lt;ol style=&quot;text-align: justify;&quot;&gt;&lt;li&gt;Kita dapat memanage mikrotiknya secara langsung. Jika yang dial modem maka kita harus mengeset modem agar memforward ip dari speedy ke ip mikrotik.&lt;/li&gt;&lt;li&gt;Kerja modem tidak terlalu berat sehingga akan berdampak pada penurunan suhu modem (pernah mengalami modem panas ??) dan secara tidak langsung akan berdampak pada umur pemakaian dari modem itu sendiri.&lt;/li&gt;&lt;li&gt;konfigurasi filter yang lebih banyak jika menggunakan mikrotik&lt;/li&gt;&lt;/ol&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;disamping keuntungan, juga ada beberepa kerugiannya:&lt;br /&gt;&lt;/div&gt;&lt;ol style=&quot;text-align: justify;&quot;&gt;&lt;li&gt;dibutuhkan biaya tambahan untuk pc yang akan diinstall mikrotik.&lt;/li&gt;&lt;li&gt;dibutuhkan keahlian tambahan dalam mengkonfigurasi mikrotik.&lt;/li&gt;&lt;li&gt;dengan ada adanya tambahan device tentunya akan bertambah konsumsi listriknya, dengan kata lain ...tambahan biaya lagi :D&lt;/li&gt;&lt;/ol&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Kebutuhan....&lt;br /&gt;&lt;/div&gt;&lt;ol style=&quot;text-align: justify;&quot;&gt;&lt;li&gt;account speedy yang masih aktif....&lt;/li&gt;&lt;li&gt;modem linksys AG241&lt;/li&gt;&lt;li&gt;Pc yang sudah terinstall dengan mikrotik dan modul ppp juga sudah terinstall...&lt;/li&gt;&lt;li&gt;kabel utp yang sudah dipatch straight untuk koneksi dari modem ke mikrotik.&lt;/li&gt;&lt;li&gt;Sebuah PC untuk mengkonfigure modem linksys AG241&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;Asumsi..&lt;br /&gt;&lt;br /&gt;Topologi jaringan :&lt;br /&gt;&lt;blockquote&gt;|Inet|----|Modem|----|Mikrotik|----|switch|----|Client|&lt;/blockquote&gt;&lt;/div&gt;&lt;ol style=&quot;text-align: justify;&quot;&gt;&lt;li&gt;Ip modem (standar) :192.168.1.1/255.255.255.0&lt;/li&gt;&lt;li&gt;Ip mikrotik yang mengarah ke modem :192.168.1.2/255.255.255.0&lt;/li&gt;&lt;li&gt;Ip mikrotik yang mengarah ke switch :192.168.0.1/255.255.255.0&lt;/li&gt;&lt;li&gt;Dimikrotik ada minimal 2 buah Lancard, 1 yang mengarah ke modem kita namakan WAN dan 1 lagi yang mengarah ke switch kita namakan LAN&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;action..&lt;br /&gt;&lt;br /&gt;modem AG241.&lt;br /&gt;&lt;/div&gt;&lt;ol style=&quot;text-align: justify;&quot;&gt;&lt;li&gt;Modem AG241 dihubungkan dengan PC menggunakan kabel UTP yang sudah disiapkan&lt;/li&gt;&lt;li&gt;IP PC dirubah disesuaikan dengan IP modem, misalkan menjadi :192.168.1.3/255.255.255.0&lt;/li&gt;&lt;li&gt;Modem dihidupkan dengan memasang adaptor ke sumber listrik, dan keluaran adaptor disambungkan ke modem.&lt;/li&gt;&lt;li&gt;Silahkan buka browser kesayangan anda, kemudian isikan 192.168.1.1 di url browser anda, maka akan muncul dialog untuk memasukan username dan password untuk masuk ke dalam menu configurasi modem. Pada keadaan standar isikan username dan password dengan admin&lt;/li&gt;&lt;li&gt;masuk ke tab setup&lt;/li&gt;&lt;li&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbZMertGrfGa20knQHFSo7ccI5NqNDb8b-Cy4Wg8IBEj_eMKl7tHtaRv09emReT1kK8VjTqAgkBqjmRVV_ENu0EGl-UrTW__-twEl0Kt99z31Ow9JDYjQdbPzcX0L3pF7NpcXIx-2fywyA/s1600-h/modem1.JPG&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 320px; height: 220px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbZMertGrfGa20knQHFSo7ccI5NqNDb8b-Cy4Wg8IBEj_eMKl7tHtaRv09emReT1kK8VjTqAgkBqjmRVV_ENu0EGl-UrTW__-twEl0Kt99z31Ow9JDYjQdbPzcX0L3pF7NpcXIx-2fywyA/s320/modem1.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5290689533561622402&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii7umpq94HeSWLri7YsED3mPvM8px6aaH7qdeQbFV4s6gnrT__-oBw9xe1v84syq0T8eyt2sUF7LQUwrqJ9qC5hA-dcDG1cydstAgzxGO57TIoMryi6Yryq9QZGVFjA0dIRyq6fhpbQGVc/s1600-h/modem2.JPG&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 320px; height: 210px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEii7umpq94HeSWLri7YsED3mPvM8px6aaH7qdeQbFV4s6gnrT__-oBw9xe1v84syq0T8eyt2sUF7LQUwrqJ9qC5hA-dcDG1cydstAgzxGO57TIoMryi6Yryq9QZGVFjA0dIRyq6fhpbQGVc/s320/modem2.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5290689677533598594&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Setting gambar diatas untuk daerah jakarta tepatnya daerah bekasi, untuk daerah lainnya tinggal menyesuaikan VPI dan VCI saja&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div style=&quot;text-align: justify;&quot;&gt;&lt;br /&gt;Mikrotik&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;PC dihubungkan ke switch yang terhubung dengan mikrotik (lihat topologi diatas) dan rubah kembali ip PC disesuaikan dengan IP yang ada, misalkan :192.168.0.3/255.255.255.0&lt;/li&gt;&lt;li&gt;Login kedalam mikrotik menggunakan winbox&lt;/li&gt;&lt;li&gt;klik menu ppp, klik tanda plus pilih pppoe client&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSZ7nlL4raSW1xGPKYIj6-esxYHw4zBE_11rD32Ms_lHzClZyYjDRnNesVlF19ZNCtmU1Yfj_oTC7VAcuu9z_biZZuWnJ994jGpJYQ_YJrp0nioyhCRiTatthGTO8LKzO3gh8rLtNgt-ou/s1600-h/ppoe1.JPG&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 320px; height: 246px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSZ7nlL4raSW1xGPKYIj6-esxYHw4zBE_11rD32Ms_lHzClZyYjDRnNesVlF19ZNCtmU1Yfj_oTC7VAcuu9z_biZZuWnJ994jGpJYQ_YJrp0nioyhCRiTatthGTO8LKzO3gh8rLtNgt-ou/s320/ppoe1.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5290625605304574850&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Pada tab general ini yang diisi hanya bagian interface, dipilih WAN&lt;/li&gt;&lt;li&gt;pindah ke tab dial out&lt;/li&gt;&lt;li&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi39S3slNJ1ZyniXuXoLq8sBvSR3y6WKfl-BZUxShTJUSW_N1ofSgwIbf82uj3Y9qU-LZLx7Xm9296FCY3kgok4_mZJ7m03eA47u-Nv1wurtzNMCaY8jHvHFxialuMXKAO9x0PiAjmA0-Of/s1600-h/ppoe2.JPG&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 299px; height: 320px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi39S3slNJ1ZyniXuXoLq8sBvSR3y6WKfl-BZUxShTJUSW_N1ofSgwIbf82uj3Y9qU-LZLx7Xm9296FCY3kgok4_mZJ7m03eA47u-Nv1wurtzNMCaY8jHvHFxialuMXKAO9x0PiAjmA0-Of/s320/ppoe2.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5290626363578019490&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Pada tab dial out, yang diisi hanyalah username dan password saja. isikan username dan password dari account speedy anda.&lt;/li&gt;&lt;li&gt;Dial on demand, jika anda menginginkan mikrotik untuk dial ke speedy jika ada permintaan dari client untuk akses ke internet (cocok untuk account non unlimited) silahkan untuk diceklist. jika menginginkan agar mikrotik selalul terhubung dengan internet silahkan jangan diceklist bagian ini.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;add default route, pada mikrotik akan ditambahkan default route yang telah disetting oleh speedy&lt;/li&gt;&lt;li&gt;Untuk Use peer DNS saya tidak begitu mengetahui jadi biarkan tidak diceklist&lt;br /&gt;&lt;/li&gt;&lt;li&gt;untuk bagian allow silahkan di checklist semuanya lalu klik OK&lt;/li&gt;&lt;li&gt;Klik menu IP--&gt;firewall pilih tab NAT&lt;/li&gt;&lt;li&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtr04MTtPxDLUyXUATx8fKAQSrOiysIEOlqQGo9L23CLcgas4apVa7gPKTFPJjeorIOE6rIgFmM53bOG3aMgF3NM3vAWjvG1ziiKi0cmLRSOyP2NrmP2iGQTqSdsPEZLXhhNwKiYHeJK7i/s1600-h/nat1.JPG&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 240px; height: 320px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtr04MTtPxDLUyXUATx8fKAQSrOiysIEOlqQGo9L23CLcgas4apVa7gPKTFPJjeorIOE6rIgFmM53bOG3aMgF3NM3vAWjvG1ziiKi0cmLRSOyP2NrmP2iGQTqSdsPEZLXhhNwKiYHeJK7i/s320/nat1.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5290629559898553458&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;Pilih chain :srcnat, src.address:192.168.0.0/24, out.interface=pppoe-out2, kemudian pindah ke tab action&lt;/li&gt;&lt;li&gt;&lt;a onblur=&quot;try {parent.deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBQoWdJs9QkHYoEBU5vIjBGGmN1d8kL-GVHT1v85kpOXkSBSJYWnoDCYs8RW3SIk3y10-xO6Cj4lgCoF7s3XCSML8k5zXR9haWAlh8qOHD6LDSnOMTvsm_ExOU7YlTmxN4MrFfh6iqIwhg/s1600-h/nat2.JPG&quot;&gt;&lt;img style=&quot;cursor: pointer; width: 240px; height: 320px;&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhBQoWdJs9QkHYoEBU5vIjBGGmN1d8kL-GVHT1v85kpOXkSBSJYWnoDCYs8RW3SIk3y10-xO6Cj4lgCoF7s3XCSML8k5zXR9haWAlh8qOHD6LDSnOMTvsm_ExOU7YlTmxN4MrFfh6iqIwhg/s320/nat2.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5290630026894826466&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;&lt;/li&gt;&lt;li&gt;untuk action silahkan pilih: masquerade&lt;/li&gt;&lt;/ol&gt;selesai,...&lt;br /&gt;silahkan client untuk mencoba browsing..&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;</description><link>http://sum14rdi.blogspot.com/2009/01/setting-linksys-ag241-dan-mikrotik.html</link><author>noreply@blogger.com (sum14rdi)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbZMertGrfGa20knQHFSo7ccI5NqNDb8b-Cy4Wg8IBEj_eMKl7tHtaRv09emReT1kK8VjTqAgkBqjmRVV_ENu0EGl-UrTW__-twEl0Kt99z31Ow9JDYjQdbPzcX0L3pF7NpcXIx-2fywyA/s72-c/modem1.JPG" height="72" width="72"/></item></channel></rss>