Kau bisa bersembunyi dari kesalahanmu, tapi tidak dari penyesalanmu. Kau bisa bermain dengan dramamu, tapi tidak dengan karmamu.

  • About

    Seorang Teknisi Jaringan yang pernah berkecimpung di Internet Service Provider (ISP) dan akhirnya memutuskan diri untuk menjadi freelancer yang berdomisili di Solo, Surakarta Hadiningrat.

  • Services

    Melayani jasa pasang Internet berbasis Wireless maupun Fiber Optic, Jasa Pasang Tower/Pipa, Pointing Wireless, Setting Router, CCTV, Hotspot, Proxy, Web Server, Network Managed dan Monitoring

  • Contact

    Berbagai saran, kritikan, keluhan dan masukan akan sangat berarti bagi saya. Anda dapat menghubungi/whatsapp saya di nomor:08564-212-8686 atau melalui BBM:2128686

    Wednesday, March 16, 2016


    Yak, FreeBSD memang dikenal sebagai OS turunan UNIX yg handal dan enteng di kalangan server, namun untuk mendapatkan performa yang memuaskan tentu ada tips-tips khusus. Diantaranya membuang driver yang tidak perlu, tuning cache, mematikan service yg tidak perlu, dan lain sebagainya. Demikian kira kira yang perlu disetting saat built-up kernel.
    options MAXFILES=4096
    options NMBCLUSTERS=10240
    options MSGMNB=16384
    options MSGMNI=42
    options MSGSEG=2049
    options MSGSSZ=64
    options MSGTQL=2048
    options SHMSEG=64
    options SHMMNI=96
    options SHMMAX=2097152
    options SHMALL=4096
    options MAXDSIZ=”(384*1024*1024)”
    options DFLDSIZ=”(384*1024*1024)”
    options MAXSSIZ=”(256*1024*1024)”

    Tambahkan opsi mountimg partition cache pada /etc/fstab = noatime. Untuk optimalisasi cache_dir pada file squid.conf tambahkan diskd.
    Pada sysctl, edit seperti berikut :

    kern.maxusers=384
    kern.ipc.nmbuf=20480
    kern.ipc.nmbclusters=32768
    vfs.vmiodirenable=1
    kern.ipc.maxsockbuf=2097152
    kern.ipc.somaxconn=8192
    kern.ipc.maxsockbuf=1048576
    kern.ipc.maxsockets=16424
    kern.maxfiles=65536
    kern.maxfilesperproc=32768
    net.inet.tcp.rfc1323=1
    net.inet.tcp.delayed_ack=0
    net.inet.tcp.sendspace=65535
    net.inet.tcp.recvspace=65535
    net.inet.udp.recvspace=65535
    net.inet.udp.maxdgram=57344
    net.local.stream.recvspace=65535
    net.local.stream.sendspace=65535
    net.inet.icmp.icmplim=300
    net.inet.icmp.icmplim_output=0
    net.inet.tcp.delayed_ack=0
    net.inet.ip.portrange.last=40000
    Atau pada saaat akan mengkompile kernel, aturlah parameter-parameter source kernel seperti berikut ini. Pengaturan ini asumsinya RAM yang saya gunakan 512 MB.

    options MAXFILES=4096
    options NMBCLUSTERS=10240
    options MAXDSIZ=”(384*1024*1024)” #Perhatikan pada bagian ini
    options DFLDSIZ=”(384*1024*1024)” #Perhatikan pada bagian ini
    options MAXSSIZ=”(256*1024*1024)” #Perhatikan pada bagian ini
    become for :
    maxusers 384
    options NBUF=20480
    options MAXFILES=65536
    options NMBCLUSTERS=32768
    options MAXDSIZ=”(640*1024*1024)”
    options DFLDSIZ=”(640*1024*1024)”
    options MAXSSIZ=”(512*1024*1024)”
    (mungkin jika setelah berjalan 1 bulan dg beban penuh dan ternyata memori belum mulai swap ke hardisk angkanya bisa dinaikkan lagi mjd 768,768,640, tapi jangan setinggi memori fisiknya lho)
    dg opsi kompilasi (optimasi):
    COPTFLAGS=”-O2 -pipe”
    dan semua module masuk ke kernel (NO_MODULES=true) (NFS, mouse, usb, pseudo device, debug/verbose support, dll/non-esensial jika memang tidak diperlukan dimatikan saja biar jadi ‘extra langsung dan singset’ kayak atlit sprinter, he he he …).
    Terus layanan non-esensial dimatikan saja, cron, inetd, and sendmail, dll di /etc/rc.conf (dari contoh Squid bake-off). http://www.squid-cache.org/Benchmarking/bakeoff-02/SQUID.txt. Kalau bisa periferal yg tidak diperlukan dimatikan juga di BIOS-nya (mis. serial/parallel port, dll).
    Terus yg ini nemu di milis tapi saya pribadi belum pernah mencoba (copy-n-paste saja ya, he he ) dan tinggal disesuaikan saja setelah dihitung ulang (kira2 angka2 di atas benar nggak ya?) :
    Tambahan Dari Forum
    # Options to accelerate Squid
    /sbin/sysctl -w vfs.vmiodirenable=1
    /sbin/sysctl -w kern.ipc.somaxconn=8192
    /sbin/sysctl -w net.inet.tcp.delayed_ack=0
    /sbin/sysctl -w net.inet.ip.portrange.last=4000
    /sbin/sysctl -w kern.maxfiles=65536
    /sbin/sysctl -w net.inet.tcp.sendspace=65535
    /sbin/sysctl -w net.inet.tcp.recvspace=65535
    # extra
    /sbin/sysctl -w kern.ipc.maxsockbuf=2097152
    /sbin/sysctl -w kern.ipc.maxsockets=16424
    /sbin/sysctl -w kern.maxfilesperproc=32768
    /sbin/sysctl -w net.inet.tcp.rfc1323=1
    /sbin/sysctl -w net.inet.udp.recvspace=65535
    /sbin/sysctl -w net.inet.udp.maxdgram=57344
    /sbin/sysctl -w net.local.stream.recvspace=65535
    /sbin/sysctl -w net.local.stream.sendspace=65535
    /sbin/sysctl -w net.inet.tcp.blackhole=2
    /sbin/sysctl -w net.inet.udp.blackhole=1


    Mysql-logo

    Bagi Anda yang sering bedah-bedah database mysql, secara tidah sengaja atau memang bener bener lupa password, gunakan cara berikut ini untuk reset password root. Langkah langkahnya seperti berikut :

    1.Matikan Service mysql nya
    #killall mysqld
    2.Jalankan kembali mysqlnya dengan opsi –skip-grant-tables
    # /usr/local/mysql/bin/mysqld_safe –skip-grant-tables &
    dengan perintah di atas mysql akan di jalankan dengan metode safe mode
    3. Kemudian Masuk ke Mysql
    # /usr/local/mysql/bin/mysql -u root mysql
    4. Dan rubah passwordnya…
    #mysql> update user set Password=PASSWORD(’password-baru‘) WHERE User=’root’;
    #mysql> flush privileges;
    #mysql> exit
    5. Dan restart mysql nya
    #killall mysqld
    #/usr/local/mysql/bin/mysqld_safe &
    6. Coba Masuk ke Mysql
    # /usr/local/mysql/bin/mysql -u root -p
    Enter password: -> Gunakan password yg baru di buat

    Selesai. semoga bermanfaat. salam...

    Monday, March 14, 2016


    Bagi anda yang menemui kendala ketika wifi access-point disetting sebagai bridge(bukan mode route) dan tanpa menggunakan sistem hotspot mikrotik, maka yang terjadi semua device akan terkoneksi langsung. Baik itu gadget maupun PC / Laptop langsung bisa konek tanpa adanya limitasi berdasarkan jenis device. Bisa Anda bayangkan ketika HP Android melakukan update playstore tentu rakus bandwidth. Jika bandwidth Anda besar tentu ngga begitu menemui kendala, namun bila bandwidth pas pasan, bisa lebih terasa. Berikut tips agar pengguna android dilimit berdasarkan hostname saat mendapatkan dhcp dari mikrotik

    Pertama tama buat rule di layer7 mikrotik. Ini bertujuan agar device android/blackberry ditangkap mikrotik
    /ip firewall layer7-protocol
    add name=android regexp="(^(android|BLACKBERRY|MITO|CIMB|Windows|iPhone|BLACKBER).*\$)"

    Lalu buat script berikut

    :global layer7 [/ip firewall layer7-protocol find name="android"]
    :global regexandroid [/ip firewall layer7-protocol get $layer7 regexp ]
    # perhatikan bagian ini (pakai titik)
    :global net 192.168.7.
    :for e from=2 to=62 do={
        :global iddhcp [/ip dhcp-server lease find address=($net . $e)];
        :if ([:len $iddhcp] > 0 ) do={
            :local hostname [/ip dhcp-server lease get $iddhcp host-name ];
            :if ($hostname ~ $regexandroid= true ) do= {
                :global halah [/queue simple find name=($net . $e)]
                :if ([:len $halah] > 0 ) do={
                    /queue simple remove ($net . $e)
                    /queue simple add name=($net . $e) comment="$hostname" \
                    target-addresses=($net . $e)\
                    max-limit=512000/512000
                    :log info "Query sudah ada. ($hostname) ip=$net$e dihapus" }
                :if ([:len $halah] <= 0 ) do={
                    /queue simple add name=($net . $e) \
                    target-addresses=($net . $e) comment="$hostname" \
                    max-limit=512000/512000
                    :log warning "query belum ada. android found : ($hostname) ip=$net$e ditambahkan" }
        } else={
            :global halah [/queue simple find name=$net . $e]
            :if (hostname = "" ) do={
                :if ([:len $halah] > 0 ) do={
                    /queue simple remove ($net . $e)
                    /queue simple add name=($net . $e) comment="hostname kosong tp aktiv" \
                    target-addresses=($net . $e) \
                    max-limit=1000000/1000000
                    :log info "aktiv hostname tdk diketahui : $hostname ip=$net$e remove add" }
                :if ([:len $halah] <= 0 ) do={
                    /queue simple add name=($net . $e) \
                    target-addresses=($net . $e) comment="hostname kosong tp aktiv" \
                    max-limit=1000000/1000000
                    :log info "aktiv hostname tdk diketahui : $hostname ip=$net$e add" }
            } else={
                :if ([:len $halah] > 0 ) do={
                    /queue simple remove ($net . $e)
                    /queue simple add name=($net . $e) comment="$hostname" \
                    target-addresses=($net . $e) \
                    max-limit=2000000/2000000
                    :log info "bukan : $hostname ip= $net$e remove add" }
                :if ([:len $halah] <= 0 ) do={
                    /queue simple add name=($net . $e)\
                    target-addresses=($net . $e) comment="$hostname" \
                    max-limit=2000000/2000000
                    :log info "bukan : $hostname ip=$net$e add" }
            }
        }
    } else={
            :global halah [/queue simple find name=($net . $e)]
                :if ([:len $halah] > 0 ) do={
                    /queue simple remove ($net . $e)
                    /queue simple add name=($net . $e) comment="kosong" \
                    target-addresses=($net . $e) \
                    max-limit=1000000/1000000
                    :log info "bukan : ... ip=$net$e remove add" }
                :if ([:len $halah] <= 0 ) do={
                    /queue simple add name=($net . $e) \
                    target-addresses=($net . $e) comment="kosong"\
                    max-limit=1000000/1000000
                    :log info "bukan : .. ip=$net$e add" }
        }
    }


    Atau jika hanya ingin menambahkan yang statusnya bound saja (yang mendapatkan ip dari dhcp server) cukup pakai script berikut ini

    :global layer7 [/ip firewall layer7-protocol find name="android"]
    :global regexandroid [/ip firewall layer7-protocol get $layer7 regexp ]
    :for e from 2 to 62 do={
        :global iddhcp [/ip dhcp-server lease find address=("192.168.7." . $e)];
        :if ([:len $iddhcp] > 0 ) do={
            :local hostname [/ip dhcp-server lease get $iddhcp host-name ];
            :if ($hostname ~ $regexandroid= true ) do= {
                :global halah [/queue simple find name="192.168.7.$e"]
                :if ([:len $halah] > 0 ) do={
                    /queue simple remove "192.168.7.$e"
                    /queue simple add name=("192.168.7.".$e) comment="$hostname" \
                    target-addresses=("192.168.7." . $e ) \
                    max-limit=512000/512000
                    :log info "android found : $hostname ip= 192.168.7.$e remove add" }
                :if ([:len $halah] <= 0 ) do={
                    /queue simple add name=("192.168.7.".$e) \
                    target-addresses=("192.168.7." . $e ) comment="$hostname" \
                    max-limit=512000/512000
                    :log info "android found : $hostname ip= 192.168.7.$e add" }
        } else={
            :global halah [/queue simple find name="192.168.7.$e"]
            :if (hostname = "" ) do={
                :if ([:len $halah] > 0 ) do={
                    /queue simple remove "192.168.7.$e"
                    /queue simple add name=("192.168.7.".$e) comment="hostname kosong tp aktiv" \
                    target-addresses=("192.168.7." . $e ) \
                    max-limit=1000000/1000000
                    :log info "aktiv hostname tdk diketahui : $hostname ip= 192.168.7.$e remove add" }
                :if ([:len $halah] <= 0 ) do={
                    /queue simple add name=("192.168.7.".$e) \
                    target-addresses=("192.168.7." . $e ) comment="hostname kosong tp aktiv" \
                    max-limit=1000000/1000000
                    :log info "aktiv hostname tdk diketahui : $hostname ip= 192.168.7.$e add" }
            } else={
                :if ([:len $halah] > 0 ) do={
                    /queue simple remove "192.168.7.$e"
                    /queue simple add name=("192.168.7.".$e) comment="$hostname" \
                    target-addresses=("192.168.7." . $e ) \
                    max-limit=2000000/2000000
                    :log info "bukan : $hostname ip= 192.168.7.$e remove add" }
                :if ([:len $halah] <= 0 ) do={
                    /queue simple add name=("192.168.7.".$e) \
                    target-addresses=("192.168.7." . $e ) comment="$hostname" \
                    max-limit=2000000/2000000
                    :log info "bukan : $hostname ip= 192.168.7.$e add" }
            }
        }
    }
    }


    Kalau sudah, silahkan jalankan script tadi. Semoga bermanfaat dan silahkan kembangkan sendiri.

    Sunday, March 13, 2016

    Dalam dunia networking sering kali disebut istilah layer 2 dan layer 3. Dalam Lapisan OSI, Layer 2 adalah Data Link Layer sedangkan layer 3 adalah Network Layer. Salah satu tugas utama kedua layer tersebut adalah mengurusi hal-hal yang terkait dengan system pengalamatan.
    Meskipun masih banyak tugas lainnya yang cukup penting namun system pengalamatan yang diatur pada kedua lapisan OSI tersebut menjadi bagian utama yang harus dipahami dengan baik dalam mempelajari jaringan komputer.
    Mengapa jika layer 2 dan 3 sama-sama mengatur tentang system pengalamatan tetapi keduanya tidak bergabung menjadi satu layer saja?
    Sebelum menjawab pertanyaan ini maka sebaiknya simak beberapa perbedaan dasar antara layer 2 dan layer 3 dari lapisan OSI layer, perbedaan keduanya adalah sebagai berikut:

    1.    Perlakuan terhadap data yang diterima

    Setiap layer pada lapisan OSI layer memperlakukan data yang diterima secara berbeda-beda, layer 2 dan layer pun demikian.
    1. Lapisan atau layer 2 ketika menerima data dari lapisan di atasnya, dalam hal ini layer 3 maka data tersebut diubah menjadi frame. Pada frame berisikan alamat fisik dari tujuan dan juga sumber data tersebut.
    2. Lapisan atau  layer 3 ketika menerima data dari lapisan di atasnya, dalam hal ini layer 4 maka data tersebut diubah menjadi packet. Paket berisikan alamat logika tujuan dan sumber dari data yang akan dikirim tersebut.
    2.    Sistem Pengalamatan: Fisik dan Logika
    a.    Pengalamatan pada Layer 2.
    • Alamat pada layer 2  dikenal sebagai alamat fisik.  Alamat fisik adalah system pengalamatan pada jaringan komputer yang dikenal dengan nama Media Access Control Address atau MAC address. 
    • MAC Address merupakan system pengalamatan yang menggunakan metode 48 bit.
    • Setiap perangkat komputer dan juga perngakat jaringan, mulai dari router, wifi, smartphone, PC, laptop, server sampai komputer mainframe terpasang pada NIC-nya dengan MAC address yang berbeda-beda satu sama lain.
    • MAC address yang terpasang pada NIC tidak dapat digant-ganti dan setiap perangkat memiliki alamat yang berbeda satu sama lain.
    • Admin dari jaringan atau network engineer tidak perlu repot-repot mengatur system pengalamatan pada layer 2.
    • Sistem pengalamatan yang bersifat permanen dan tertanam pada Network Interface Card dengan menggunakan MAC Address menjadikan alamat pada layer2 disebut sebagai alamat fisik atau physical address.
    b.    Pengalamatan pada Layer 3.
    –    Alamat pada Layer3 atau Network layer dikenal sebagai alamat logika. Alamat logika menggunakan sebuah aturan atau metode yang dikenal dengan nama Internet Protocol address atau IP address.
    –    IP address merupakan sistem pengalamatan yang diatur dan dikonfigur  melalui Network Operating System oleh administrator dari perangkat tersebut.
    –    IP address bisa diubah-ubah dan konfigurasi yang sudah diatur tidak bersifat permanen, bisa berubah-ubah.
    –    Saat ini IP address terdiri atas dua versi yaitu IP v4 dan IP v6.
    3.    Peran Layer 2 dan layer 3 dalam Networking
    a.    Peran Layer 2 adalah
    –    Menyediakan dan mempersiapkan hal-hal yang berhubungan dengan hardware atau  yang terkait dengan perangkat keras atau fisik untuk kebutuhan transmisi data.
    –    Mengubah frame menjadi byte dan byte menjadi bit.
    –    Bit tersebut diberikan kepada Layer 1 atau Physical layer  untuk dipakai dalam mengirimkan sinyal electric kepada tujuan yang berada pada Local Area Network atau LAN yang sama.
    –    Layer 2 sangat berperan dalam komunikasi atar komputer-komputer yang terhubung dalam sebuah LAN, di mana semua komunikasi data pada LAN menggunakan MAC address.
    –     Layer 2 juga memberikan notifikasi jika terjadi masalah atau error.
    –    Berperan dalam menangani topologi jaringan, dan flow control
    b.    Peran Layer 3 adalah
    –    Mengatur pengalamatan pada perangkat jaringan menggunakan IP address.
    –    Menentukan arah yang harus dilalui jika tujuan tidak berada pada LAN dalam proses transmisi data atau dengan kata lain; peran network layer atau layer 3 adalah untuk mengatur proses transmisi data antara komputer yang berada pada LAN yang berbeda atau antar LAN.
    4.    Perangkat yang berkaitan dengan Layer 2 dan Layer 3
    a.    Perangkat atau hardware yang terkait dengan layer 2 adalah:
    –    Network Interface Card
    –    Wireless atau Wifi
    –    Unmanageable Switch 
    –    Bridge
    b.    Perangkat atau teknologi yang berkaitan dengan layer 3 adalah
    –    Router
    –    Virtual LAN pada manageable Switch 
    Jelas terlihat bahwa Layer 2 berkaitan dengan hal-hal yang terkait dengan hardware atau fisik, seperti alamat fisk atau MAC address. Sedangkan Layer 3 berkaitan dengan dengan software atau logika.
    Jadi antara Layer 2 dan layer 3 memiliki peran yang berbeda satu sama lain sehingga tidak bisa digabungkan begitu saja kedua layer tersebut.

    source : http://www.norisanto.com/ccna/apa-beda-antara-layer-2-dan-layer-3-l2-dan-l3/

    Saturday, March 5, 2016


    Kali ini gw mo share script perl untuk mengganti password mikrotik secara serentak. Nih sob, gunanya kalo misalkan lu punya network nih ye, ntah skala rt/rwnet, kabupaten-net, maupun akap-net (antar kota antar propinsi-net) haha :D pernah ga kebayang kalo misalkan ada salah satu perangkat mikrotik ente ketahuan passwordnya. Tentu jadi persoalan klo musti ganti satu satu. Nah pake script ini ente bisa jalanin cukup pake script ini, ntar secara serentak semua perangkat mikrotik ente keubah passwordnya. Eits tapi ente tetep musti bikin password list dulu sebelum dieksekusi. Gunanya buat diproses di program perl nya. Ok langsung aja bikin file pass.txt yang dalemnya dengan format host::user::pass misale 10.10.20.2::admin::ganteng. Berikut script perl nya
    #!/usr/bin/perl

    # Update multiple mikrotiks
    # change password script
    # Copyright (C) 2004 Butch Evans
    # butche@butchevans.com

    #########################
    # Configuration section #
    #########################
    # The username and password file with connection information
    # to connect to your router.  This user MUST have read and write permissions
    # Each line in this file is in the format:
    #  routerip::user::userpassword
    my $passwdfile = "pass.txt";

    # If you want to see some output, set this to "1"
    my $debug = 1;

    # Set the NEW password here
    my $newpass = "rahox";

    #############################
    # End configuration section #
    #############################
    # You do not need to change anything below here
    # unless you know what you are doing
    use strict;
    use Net::Telnet ();

    # Grab the hosts file (with passwords)
    if (! ( -f $passwdfile ) ){
    print "ERROR: Password file $passwdfile does not exist!\n\n";
    die;
    }

    # Slurp the script file into memory
    open (PASSWDLIST,$passwdfile);
    my @hostlist = <PASSWDLIST> ;
    close(PASSWDLIST);

    my $hostlist;
    my $hostline;
    my $host;
    my $username;
    my $passwd;

    #Now, we just cycle through the list of hosts
    foreach $hostline (@hostlist){
    chomp $hostline;
    ($host,$username,$passwd) = split("::",$hostline);
    # Login to the server
    if ($debug){
    print "Connecting to ". $host ."\n";
    }
    my $t = new Net::Telnet (Host => $host);
    $t->errmode( sub { print "ERROR:" . join('|', @_) . "\n"; } );
    $t->login($username, $passwd);
    my $errormsg = $t->errmsg;
    if ( $errormsg ne "") {
    next; }
    # DO THE WORK
    my @changepass = $t->cmd("/user set ". $username ." password=". $newpass);
    if ($debug) {
    print "Password change successful\n";
    }
    $t->close;
    }
    exit;
    simpan dengan nama terserah, misale changepass.pl jangan lupa chmod 777 changepass.pl lalu dieksekusi ./changepass.pl
    Kalo udah ntar kek gini
    root@nms ~ # ./changepass.pl
    Connecting to 10.10.20.2
    Password change successful

    Yak, sekian semoga bermanfaat, yang masih error bisa comment di bawah

    Sunday, February 28, 2016


    :global u
    /interface ethernet monitor ether1 once do={
      :set u $status
      }
    :if ($u = "link-ok") do={
      :log warning message="ether3 nancep, hidupkan pppoe"
      /in pppoe-client enable [find disabled=yes]
    } else {
      :log warning message="ether3 ga nancep"
      /in pppoe-client disable [find disabled=no]
      }
    Script diatas bermaksud apabila ether1 tidak dicolokan ke modem/ont maka pppoe disable.