Wednesday 21 December 2011

Setting DHCP Server Ubuntu Linux


DHCP (Dynamic Host Configuration Protocol) adalah protokol yang berbasis arsitektur client/server yang dipakai untuk memudahkan pengalokasian alamat IP dalam satu jaringan. Sebuah jaringan lokal yang tidak menggunakan DHCP harus memberikan alamat IP kepada semua komputer secara manual. Jika DHCP dipasang di jaringan lokal, maka semua komputer yang tersambung di jaringan akan mendapatkan alamat IP secara otomatis dari server DHCP. Selain alamat IP, banyak parameter jaringan yang dapat diberikan oleh DHCP, seperti default gateway dan DNS server.
id.wikipedia.org selengkapnya >>

Detail Konfigurasi Jaringan Saya :

Network = 192.168.1.0/24

Range IP = 192.168.1.10 – 192.168.1.100

Gateway = 192.168.1.1 (sebagai dhcp server juga)

DNS = 202.182.57.14
  • Install Paker DHCP Server
$sudo apt-get install dhcp3-server


  • Edit Konfigurasi DHCP server yang berada pada : /etc/dhcp3/dhcpd.conf dengan editor kesayangan anda.
cari baris berikut :
# A slightly different configuration for an internal subnet.
#subnet 10.5.5.0 netmask 255.255.255.224 {
# range 10.5.5.26 10.5.5.30;
# option domain-name-servers ns1.internal.example.org;
# option domain-name “internal.example.org”;
# option routers 10.5.5.1;
# option broadcast-address 10.5.5.31;
# default-lease-time 600;
# max-lease-time 7200;
#}
ganti dengan :
# A slightly different configuration for an internal subnet.
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.10 192.168.1.100;
option domain-name-servers 202.182.57.14;
option domain-name “kalonk.com”;
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
default-lease-time 600;
max-lease-time 7200;
}
  • edit default interface untuk digunakan sebagai DHCP Server, file konfigurasinya berada pada : /etc/default/dhcp3-server edit dengan editor kesayangan anda ! tambahkan interface default untuk DHCP Server pada section INTERFACES=”eth0″
    default interface saya eth0

  • selanjutnya restart DHCP service anda :
$sudo /etc/init.d/dhcp3-server restart
Untuk Konfigurasi yang lebih Komplek akan dibahas pada tulisan selanjutnya.
thanks.

Konfigurasi IP Address, DNS, dan NAT Pada Ubuntu Server 10.10


22 december oleh sutiono
Antar muka dari Ubuntu Server 10.10 adalah text mode, tidak ada jendela, tidak ada klik, drag and drop, dan sebagainya yang biasa dilakukan pada mode GUI (Graphic User Interface), semua operasi pada Ubuntu Server dilakukan dengan mengetikkan secara manual perintah melalui papan ketik (keyboard). Sebenarnya Ubuntu Server 10.10 juga bisa dibuat dengan mode GUI, namun itu akan sangat memberatkan bagi server, karena harus melakukan instalasi mode GUI yang memakan banyak sumber daya, terutama Memory dan Hard Disk, selain itu juga, pada dasarnya tingkat keamanan dengan menggunakan mode CLI akan lebih baik ketimbang menggunakan mode GUI.
Artikel ini adalah lanjutan dari artikel saya yang berjudul Instalasi Ubuntu Server 10.10. Agar Ubuntu Server 10.10 bisa melakukan koneksi ke jaringan, baik itu jaringan lokal maupun internet, maka langkah awal yang dilakukan adalah melakukan konfigrasi alamat IP. Untuk mengkonfigurasi alamat IP langkah-langkahnya adalah sebagai berikut:
  • Masuklah menggunakan username dan password yang telah diatur pada langkah sebelumnya. Pada artikel ini userame yang saya gunakan adalah adamkurniawan dan password saya juga adamkurniawan. Untuk password tidak akan terlihat pada saat diketikkan karena alasan keamanan. Tekan tombol Enter jika sudah yakin memasukkan username dan password dengan benar.
  • Setelah berhasil masuk akan diperlihatkan kapan pengguna adamkurniawan terakhir login. Pada baris paling bawah terlihat tulisan adamkurniawan@server01:~$, ini berarti pengguna dengan id adamkurniawan masih berstatus sebagai pengguna biasa dan belum bisa melakukan pengaturan. Agar bisa melakukan pengaturan, pengguna harus masuk sebagai mode root atau mode tertinggi dalam sistem (administrator) dengan mengetikkan perintah sudo su, maka akan akan muncul tulisan [sudo] password for adamkurniawan: itu berarti sistem meminta password agar pengguna dengan id adamkurniawan bisa masuk sebagai mode root. Password yang digunakan untuk mode root ini adalah password yang sama yang digunakan untuk login pada awal tadi. Masukkan password-nya dan tekan Enter. Jika password yang dimasukkan benar, maka akan muncul tulisan root@server01:/home/adamkurniawan#, ini berarti pengguna dengan id adamkurniawan sudah masuk sebagai mode root dan sudah bisa melakukan konfigurasi.
  • Sebelum melakukan konfigurasi  pada  alamat IP, cek terlebih dahulu apa nama kartu jaringan (ethernet) yang tersedia yang bisa digunakan dengan mengetikkan: # ifconfig –a | more. Penamaan kartu jaringan pada sistem Linux diawali dengan eth lalu diikuti dengan nomor kartu jaringannya yang dimulai dengan 0, misal eth0, eth1, eth2, dan seterusnya. Karena pada artikel ini saya menggunakan dua buah kartu jaringan maka setelah diketikkan # ifonfig –a | more, didapati bahwa nama kartu jaringan yang saya miliki pada sistem linux dikenal dengan nama eth0 dan eth1.
  • ketikkan perintah # nano /etc/network/interfacesuntuk mulai melakukan konfigurasi alamat IP Ubuntu Server 10.10. Pada baris paling akhir ketikkan skrip berikut: auto eth0 iface eth0 inet static
    address 192.168.6.200
    netmask 255.255.255.0
    gateway 192.168.6.254
    Skrip diatas adalah skrip yang digunakan untuk melakukan pengaturan kartu jaringan pertama (eth0) yang akan dihubungkan ke internet. Alamat IP yang saya berikan harus satu segmen dengan jaringan yang ada di atas Ubuntu Server 10.10 yang saya gunakan dan gateway dari kartu jaringan pertama juga harus merupakan alamat IP dari perangkat yang bertindak sebagai gerbang dari Ubuntu Server 10.10 yang saya gunakan ke internet. Sedangkan untuk pengaturan kartu jaringan kedua yang akan digunakan sebagai interface ke jaringan lokal adalah sebagai berikut:
    auto eth1
    iface eth1 inet static
    address 10.10.1.254
    netmask 255.255.255.0
    Jika telah selesai tekan tombol Ctrl + O untuk menyimpan konfigurasi yang telah dilakukan, berikan nama berkas konfigurasi yang baru saja dibuat, pada artikel ini saya tidak memberikan nama baru, jadi saya langsung saja menekan tombol Enter. Kemudia tekan tombol Ctrl + X untuk keluar. Restart kartu jaringan menggunakan perintah # /etc/init.d/networking restart agar konfigurasi yang baru saja dilakukan bisa terbaca oleh sistem.
  • Pada umumnya, jika kartu jaringan belum pernah dikonfigurasi menggunakan Ubuntu Server 10.10 atau Ubuntu Server 10.10 yang digunakan masih baru diinstal (fresh install), kartu jaringan yang tertanam di komputer sudah terbaca namun belum aktif. Untuk melihat apakah kartu jaringan sudah aktif atau belum, ketikkan perintah # ifconfig. Pada artikel ini, kartu jaringan yang saya gunakan belum aktif.
  • Untuk mengaktifkannya ketikkan perintah # ifconfig eth0 up (mengaktifkan kartu jaringan pertama) dan # ifconfig eth1 up (mengaktifkan kartu jaringan kedua). Setelah itu restart kembali kartu jaringan menggunaka # /etc/init.d/networking restart. Jika dilakukan pengecekan kembali menggunakan perintah # ifconfig, maka akan bisa dilihat bahwa kartu jaringan sudah aktif dan sudah memiliki alamat IP sesuai dengan yang sudah di konfigurasi.
  • Langkah selanjutnya adalah memberikan DNS (Domain Name System). DNS digunakan sebagai penerjemah dari nama domain ke alamat IP, dan sebaliknya, yaitu dari alamat IP ke nama domain. Jadi apabila pengguna mengetikkan google.com di web browser, maka itu berarti pengguna memanggil alamat IP dari google.com yaitu 74.125.71.103. Untuk mengatur DNS di Ubuntu Server 10.10 pengguna harus membuat sebuah berkas baru bernama resolv.conf yang diletakkan di direktori /etc dengan mengetikkan # touch /etc/resolv.conf, namun sebelumnya pengguna harus masuk ke dalam mode root. Setelah berhasil membuatnya, selanjutnya adalah mengisi berkas resolve.conf tersebut dengan alamat IP yang bisa menerjemahkan nama domain ke alamat IP dan sebaliknya, dengan cara mengetikkan perintah # nano /etc/resolv.conf. Kemudian ketikkan nameserver dan diikuti dengan alamat IPyang bisa digunakan sebagai DNS, pada artikel ini saya menggunakan 2 buah DNS, yaitu 192.168.4.254 yang merupakan alamat IP gateway Ubuntu Server 10.10 dan 8.8.8.8 yang merupakan alamat penyedia DNS yang dibuat oleh Google. Jadi penulisannya adalah sebagai berikut: nameserver 192.168.4.254
    nameserver 8.8.8.8
    Simpan dengan menekan Ctrl + O, tekan tombol Enter untuk replace nama yang lama dan tekan Ctrl + X untuk keluar. Lakukan kembali restart jaringan dengan mengetikkan # /etc/init.d/networking.
  • Tahap berikutnya adalah melakukan pengecekan apakah Ubuntu Server 10.10 sudah bisa melakukan koneksi ke internet dan apakah DNS sudah bekerja dengan baik. Cara melakukannya adalah dengan melakukan ping ke sebuah alamat domain. Pada artikel ini, saya melakukan pengecekan dengan melakukan ping ke domain yahoo.com. Perintah yang diketikkan adalah # ping yahoo.com. disini saya sudah mendapatkan balasan dari yahoo.com dan berarti Ubuntu Server 10.10 yang digunakan sebagai server sudah terkoneksi ke internet dengan baik, begitu juga dengan DNS-nya.
  • Selanjutnya, lakukan konfigurasi agar semua klien yang berada pada jaringan lokal bisa mengakses ke jaringan yang berada di jaringan luar (internet) atau melakukan NAT. Jika tidak dikonfigurasi maka paket-paket yang berasal dari kartu jaringan lokal (eth1) tidak akan bisa diteruskan ke kartu jaringan yang mengarah ke internet (eth0). Caranya adalah dengan mengetikkan perintah berikut ini: iptables –t nat –A POSTROUTING –o eth0 –j MASQUERADE, lalu tekan Enter. Jika ingin rule ini dijalankan pada saat komputer dinyalakan, maka ketikkanlah rule diatas pada file /etc/rc.local sebelum baris exit 0.

Thursday 1 December 2011

Tutorial PHP Dasar

Contains basic PHP tutorials for you who just started to learn PHP. We also have other articles about computer and programming. Check it out!


Tutorial PHP tingkat dasar sangat tepat buat kamu-kamu yang baru aja mau belajar PHP alias newbie. Semoga bemanfaat. Ada artikel-artikel lain juga tentang komputer dan pemrograman. Check it out!
Title Filter     Display # 
# Article Title Author Hits
1 Dasar-dasar PHP 1 - Persiapan Awal Prothelord 20934
2 Dasar-dasar PHP 2 - Pengenalan PHP Prothelord 13432
3 Dasar-dasar PHP 3 - Aturan Penulisan Kode PHP Prothelord 13684
4 Dasar-dasar PHP 4 - Contoh Script PHP Sederhana Prothelord 12760
5 Dasar-dasar PHP 5 - Variabel yang Fleksibel Prothelord 9676
6 Dasar-dasar PHP 6 - PHP dan HTML Prothelord 9959
7 Dasar-dasar PHP 7 - Array Prothelord 7503
8 Dasar-dasar PHP 7: Array Asosiatif Prothelord 6314
9 Dasar-dasar PHP 8 - Operator If, Else dan Elsif Prothelord 6915
10 Dasar-dasar PHP 9 : Operator Perbandingan dan logika 7082
 
  • «
  •  Start 
  •  Prev 
  •  1 
  •  2 
  •  Next 
  •  End 
  • »

Belajar HTML Bag. 7 ( Frames )

kamis,1desember 2011 Label:

image


Frames, mungkin mendengar kata-kata ini anda akan berfikir frame adalah sebuah bingkai seperti yang anda lihat didinding rumah anda (kalo ada fotonya juga sih), oke, kita dapat mengibaratkan frame sebagai sebuah bingkai foto anda yang dipajang didinding, disini frame diperumpamakan sebagai bingkai, situs sebagai foto dan page browser anda sebagai dinding. Mudeng gak?? gini loh, dengan frame kita dapat memajang beberapa website sekaligus kedalam 1 halaman web saja. Caranya? Baca dulu ya ampe selesai...

A. Tag <frame> dan Tag <frameset>
Kedua tag ini digunakan secara bersamaan untuk menyusun sebuah frame, Tag <frameset> digunakan untuk mendeklerasikan sebuah frameset, sedangkan Tag <frame> digunakan untuk membuat frame-frame yang kita butuhkan. Untuk lebih jelasnya perhatikan contoh berikut :

Code :
<html>
<head>
<title>
CobaLihatSaja Tutorial
</title>
</head>
<body>
<frameset cols="25%,50%,25%">
<frame src="http://www.cobalihatsaja.com" />
<frame src="http://www.4-mall.com" />
<frame src="http://awansusanto.4-mall.com" />
</frameset>
</body>
</html>

Hasil :

image

Penjelasan :
 Pada contoh diatas kita bertujuan untuk menampilkan 3 buah website sekaligus kedalam sebuah halaman, situs tersebut adalah : http://www.cobalihatsaja.com , http://www.4-mall.com dan http://awaansusanto.4-mall.com . Untuk melakukannya, kita memulainya dengan membuat sebuah frameset dengan menggunakan tag <frameset> dan membaginya kedalam tiga bagian dengan menggunakan atribut “cols” , disini kita membaginya menjadi 25%, 50% dan 25%. setelah itu untuk mengisi kolom-kolom frameset yang sudah kita buat sebelumnya kita gunakan tag <frame> dan tambahkan alamat situs-situs tersebut kedalam tag frame dengan menggunakan atribut “src”.

B. Tag <noframe>
Tag ini digunakan untuk fungsi portability, yang artinya jika website kita dijalankan pada semua browser, makan website kita akan tetap menampilkan informasi yang benar. Nah, pada beberapa browser fungsi tag <frame> tidak didukung, sehingga halaman kita tidak akan menampilkan apapun jika dibuka, tentu pengunjung akan bingung dengan keadaan seperti ini. Untuk menyiasati kejadian seperti ini, kita dapat memanfaatkan tag <noframe> ini, sehingga apabila dideteksi browser pengunjung tidak mendukung fungsi frame, maka akan ditampilkan pesan error atau kesalaha. Cara penggunaanya pun simple, lihat kode dibawah ini :

Code :
<html>
<head>
<title>
CobaLihatSaja Tutorial
</title>
</head>
<body>
<frameset cols="25%,50%,25%">
<frame src="http://www.cobalihatsaja.com" />
<frame src="http://www.4-mall.com" />
<frame src="http://awansusanto.4-mall.com" />
<noframes>
Maaf, browser yang anda gunakan tidak dapat menampilkan frame, coba buka dengan browser lain!
</noframes>
</frameset>
</body>
</html>

C. Tag <iframe>
Jika tag <frame> digunakan untuk membagi webpage menjadi beberapa bagian, tag <iframe> memiliki fungsi yang sedikit berbeda, yaitu frame yang kita buat terletak didalam webpage atau dokumen yang kita buat tanpa membagi halaman browser seperti yang dilakukan oleh tag <frame>, bingung? Liat ini aja deh...

Code :
<html>
<head>
<title>
CobaLihatSaja Tutorial
</title>
</head>
<body>
<iframe src="http://www.4-mall.com" width="50%" height="50%"/>
</body>
</html>

Hasil :

image

Penjelasan :
Lihat pada frame yang kita buat kali ini, frame tersebut kita buat dengan tinggi dan lebar 50% dari webpage. Seperti anda lihat, penggunaan tag <iframe> sangat simple, anda cukup memberikan nilai pada atribut “src” dan beberapa atribut lainnya yang bersifat optional , berikut daftar atribut-atribut yang dapat anda coba untuk membuat perbedaan pada iframe anda :

Atribut <iframe>

  • align → atribut ini digunakan untuk menentukan bagaimana align dengan text pada webpage, adapun nilai-nilainya adalah : left, right, top, middle dan bottom.

  • frameborde → digunakan untuk memberikan border pada iframe, jika anda ingin menggunakan border, beri nilai 1 kedalam atribut ini, jika tidak beri nilai 0.

  • height → digunakan untuk menentukan tinggi dari iframe.

  • width – digunakan untuk menentukan lebar dari iframe.

  • src → digunakan untuk menentukan kontent sumber website yang ingin kita tampilkan.
Ok, selamat mencoba.... dan tetap Semangat...

Perhitungan Subnetting Menggunakan Konsep CIDR


 
 
 
 
 
 
i
Quantcast
Kali ini saatnya anda mempelajari teknik penghitungan subnetting. Penghitungan subnetting bisa dilakukan dengan dua cara, cara binary yang relatif lambat dan cara khusus yang lebih cepat. Pada hakekatnya semua pertanyaan tentang subnetting akan berkisar di empat masalah: Jumlah Subnet, Jumlah Host per Subnet, Blok Subnet, dan Alamat Host- Broadcast.
Penulisan IP address umumnya adalah dengan 192.168.1.2. Namun adakalanya ditulis dengan 192.168.1.2/24, apa ini artinya? Artinya bahwa IP address 192.168.1.2 dengan subnet mask 255.255.255.0. Lho kok bisa seperti itu? Ya, /24 diambil dari penghitungan bahwa 24 bit subnet mask diselubung dengan binari 1. Atau dengan kata lain, subnet masknya adalah: 11111111.11111111.11111111.00000000 (255.255.255.0). Konsep ini yang disebut dengan CIDR (Classless Inter-Domain Routing) yang diperkenalkan pertama kali tahun 1992 oleh IEFT.
Pertanyaan berikutnya adalah Subnet Mask berapa saja yang bisa digunakan untuk melakukan subnetting? Ini terjawab dengan tabel di bawah:
Subnet Mask Nilai CIDR
255.128.0.0 /9
255.192.0.0 /10
255.224.0.0 /11
255.240.0.0 /12
255.248.0.0 /13
255.252.0.0 /14
255.254.0.0 /15
255.255.0.0 /16
255.255.128.0 /17
255.255.192.0 /18
255.255.224.0 /19
Subnet Mask Nilai CIDR
255.255.240.0 /20
255.255.248.0 /21
255.255.252.0 /22
255.255.254.0 /23
255.255.255.0 /24
255.255.255.128 /25
255.255.255.192 /26
255.255.255.224 /27
255.255.255.240 /28
255.255.255.248 /29
255.255.255.252 /30
SUBNETTING PADA IP ADDRESS CLASS C
Ok, sekarang mari langsung latihan saja. Subnetting seperti apa yang terjadi dengan sebuah NETWORK ADDRESS 192.168.1.0/26 ?
Analisa: 192.168.1.0 berarti kelas C dengan Subnet Mask /26 berarti 11111111.11111111.11111111.11000000 (255.255.255.192).
Penghitungan: Seperti sudah saya sebutkan sebelumnya semua pertanyaan tentang subnetting akan berpusat di 4 hal, jumlah subnet, jumlah host per subnet, blok subnet, alamat host dan broadcast yang valid. Jadi kita selesaikan dengan urutan seperti itu:
  1. Jumlah Subnet = 2x, dimana x adalah banyaknya binari 1 pada oktet terakhir subnet mask (2 oktet terakhir untuk kelas B, dan 3 oktet terakhir untuk kelas A). Jadi Jumlah Subnet adalah 22= 4 subnet
  2. Jumlah Host per Subnet = 2y – 2, dimana y adalah adalah kebalikan dari x yaitu banyaknya binari 0 pada oktet terakhir subnet. Jadi jumlah host per subnet adalah 26 – 2 = 62 host
  3. Blok Subnet = 256 – 192 (nilai oktet terakhir subnet mask) = 64. Subnet berikutnya adalah 64 + 64 = 128, dan 128+64=192. Jadi subnet lengkapnya adalah 0, 64, 128, 192.
  4. Bagaimana dengan alamat host dan broadcast yang valid? Kita langsung buat tabelnya. Sebagai catatan, host pertama adalah 1 angka setelah subnet, dan broadcast adalah 1 angka sebelum subnet berikutnya.
  5. Subnet
    192.168.1.0
    192.168.1.64
    192.168.1.128
    192.168.1.192
    Host Pertama
    192.168.1.1
    192.168.1.65
    192.168.1.129
    192.168.1.193
    Host Terakhir
    192.168.1.62
    192.168.1.126
    192.168.1.190
    192.168.1.254
    Broadcast
    192.168.1.63
    192.168.1.127
    192.168.1.191
    192.168.1.255
Kita sudah selesaikan subnetting untuk IP address Class C. Dan kita bisa melanjutkan lagi untuk subnet mask yang lain, dengan konsep dan teknik yang sama. Subnet mask yang bisa digunakan untuk subnetting class C adalah seperti di bawah. Silakan anda coba menghitung seperti cara diatas untuk subnetmask lainnya.
Subnet Mask Nilai CIDR
255.255.255.128 /25
255.255.255.192 /26
255.255.255.224 /27
255.255.255.240 /28
255.255.255.248 /29
255.255.255.252 /30
SUBNETTING PADA IP ADDRESS CLASS B
Berikutnya kita akan mencoba melakukan subnetting untuk IP address class B. Pertama, subnet mask yang bisa digunakan untuk subnetting class B adalah seperti dibawah. Sengaja saya pisahkan jadi dua, blok sebelah kiri dan kanan karena masing-masing berbeda teknik terutama untuk oktet yang “dimainkan” berdasarkan blok subnetnya. CIDR /17 sampai /24 caranya sama persis dengan subnetting Class C, hanya blok subnetnya kita masukkan langsung ke oktet ketiga, bukan seperti Class C yang “dimainkan” di oktet keempat. Sedangkan CIDR /25 sampai /30 (kelipatan) blok subnet kita “mainkan” di oktet keempat, tapi setelah selesai oktet ketiga berjalan maju (coeunter) dari 0, 1, 2, 3, dst.
Subnet Mask Nilai CIDR
255.255.128.0 /17
255.255.192.0 /18
255.255.224.0 /19
255.255.240.0 /20
255.255.248.0 /21
255.255.252.0 /22
255.255.254.0 /23
255.255.255.0 /24
Subnet Mask Nilai CIDR
255.255.255.128 /25
255.255.255.192 /26
255.255.255.224 /27
255.255.255.240 /28
255.255.255.248 /29
255.255.255.252 /30
Ok, kita coba dua soal untuk kedua teknik subnetting untuk Class B. Kita mulai dari yang menggunakan subnetmask dengan CIDR /17 sampai /24. Contoh network address 172.16.0.0/18.
Analisa: 172.16.0.0 berarti kelas B, dengan Subnet Mask /18 berarti 11111111.11111111.11000000.00000000 (255.255.192.0).
Penghitungan:
  1. Jumlah Subnet = 2x, dimana x adalah banyaknya binari 1 pada 2 oktet terakhir. Jadi Jumlah Subnet adalah 22 = 4 subnet
  2. Jumlah Host per Subnet = 2y – 2, dimana y adalah adalah kebalikan dari x yaitu banyaknya binari 0 pada 2 oktet terakhir. Jadi jumlah host per subnet adalah 214 – 2 = 16.382 host
  3. Blok Subnet = 256 – 192 = 64. Subnet berikutnya adalah 64 + 64 = 128, dan 128+64=192. Jadi subnet lengkapnya adalah 0, 64, 128, 192.
  4. Alamat host dan broadcast yang valid?
  5. Subnet
    172.16.0.0
    172.16.64.0
    172.16.128.0
    172.16.192.0
    Host Pertama
    172.16.0.1
    172.16.64.1
    172.16.128.1
    172.16.192.1
    Host Terakhir
    172.16.63.254
    172.16.127.254
    172.16.191.254
    172.16.255.254
    Broadcast
    172.16.63.255
    172.16.127.255
    172.16.191.255
    172.16..255.255
Berikutnya kita coba satu lagi untuk Class B khususnya untuk yang menggunakan subnetmask CIDR /25 sampai /30. Contoh network address 172.16.0.0/25.
Analisa: 172.16.0.0 berarti kelas B, dengan Subnet Mask /25 berarti 11111111.11111111.11111111.10000000 (255.255.255.128).
Penghitungan:
  1. Jumlah Subnet = 29 = 512 subnet
  2. Jumlah Host per Subnet = 27 – 2 = 126 host
  3. Blok Subnet = 256 – 128 = 128. Jadi lengkapnya adalah (0, 128)
  4. Alamat host dan broadcast yang valid?
Subnet 172.16.0.0 172.16.0.128 172.16.1.0 172.16.255.128
Host Pertama 172.16.0.1 172.16.0.129 172.16.1.1 172.16.255.129
Host Terakhir 172.16.0.126 172.16.0.254 172.16.1.126 172.16.255.254
Broadcast 172.16.0.127 172.16.0.255 172.16.1.127 172.16.255.255
Masih bingung juga? Ok sebelum masuk ke Class A, coba ulangi lagi dari Class C, dan baca pelan-pelan ;)
SUBNETTING PADA IP ADDRESS CLASS A
Kalau sudah mantab dan paham, kita lanjut ke Class A. Konsepnya semua sama saja. Perbedaannya adalah di OKTET mana kita mainkan blok subnet. Kalau Class C di oktet ke 4 (terakhir), kelas B di Oktet 3 dan 4 (2 oktet terakhir), kalau Class A di oktet 2, 3 dan 4 (3 oktet terakhir). Kemudian subnet mask yang bisa digunakan untuk subnetting class A adalah semua subnet mask dari CIDR /8 sampai /30.
Kita coba latihan untuk network address 10.0.0.0/16.
Analisa: 10.0.0.0 berarti kelas A, dengan Subnet Mask /16 berarti 11111111.11111111.00000000.00000000 (255.255.0.0).
Penghitungan:
  1. Jumlah Subnet = 28 = 256 subnet
  2. Jumlah Host per Subnet = 216 – 2 = 65534 host
  3. Blok Subnet = 256 – 255 = 1. Jadi subnet lengkapnya: 0,1,2,3,4, etc.
  4. Alamat host dan broadcast yang valid?
Subnet 10.0.0.0 10.1.0.0 10.254.0.0 10.255.0.0
Host Pertama 10.0.0.1 10.1.0.1 10.254.0.1 10.255.0.1
Host Terakhir 10.0.255.254 10.1.255.254 10.254.255.254 10.255.255.254
Broadcast 10.0.255.255 10.1.255.255 10.254.255.255 10.255.255.255
Mudah-mudahan sudah setelah anda membaca paragraf terakhir ini, anda sudah memahami penghitungan subnetting dengan baik. Kalaupun belum paham juga, anda ulangi terus artikel ini pelan-pelan dari atas. Untuk teknik hapalan subnetting yang lebih cepat, tunggu di artikel berikutnya ;)
Catatan: Semua penghitungan subnet diatas berasumsikan bahwa IP Subnet-Zeroes (dan IP Subnet-Ones) dihitung secara default. Buku versi terbaru Todd Lamle dan juga CCNA setelah 2005 sudah mengakomodasi masalah IP Subnet-Zeroes (dan IP Subnet-Ones) ini. CCNA pre-2005 tidak memasukkannya secara default (meskipun di kenyataan kita bisa mengaktifkannya dengan command ip subnet-zeroes), sehingga mungkin dalam beberapa buku tentang CCNA serta soal-soal test CNAP, anda masih menemukan rumus penghitungan Jumlah Subnet = 2x – 2
Tahap berikutnya adalah silakan download dan kerjakan soal latihan subnetting. Jangan lupa mengikuti artikel tentang Teknik Mengerjakan Soal Subnetting untuk memperkuat pemahaman anda dan meningkatkan kemampuan dalam mengerjakan soal dalam waktu terbatas.

Cara Instal dan Optimasi Squid Proxy Server

Sebenarnya sudah lama ingin menulis tutorial ini, yaa...untuk bahan catatan pribadi jika saya harus install ulang/baru squid proxy warnet saya.

Mungkin sebagaian dari anda sudah tahu bagaimana menginstall squid, tetapi belum melakukan optimasi agar squid berjalan lebih kencang. Berikut adalah tutorial saya, yang mana sudah pernah saya uji coba dan sukses. FYI, tutorial ini adalah penggabungan tutorial yang ada di blog Ghozali, Last.FM, Squid Wiki dan dari buku Squid: The Definitive Guide.

PERSIAPAN

Hardware
Untuk hardware proxy server saya kali ini menggunakan Prosesor Intel Celeron 430 (Coppermine) 1.80Ghz dengan 2 buah hardisk 80 GB SATA Seagate 7200 RPM & memori Vgen 1.5 GB DDR2. Mengapa 2 hardisk? Performa read/write Squid akan lebih optimal jika direktori cache diletakkan di hardisk terpisah. Peletakkan direktori cache di partisi yang berada dalam satu hardisk dengan system, tidak akan meningkatkan performa Squid, begitu juga dengan teknik RAID. Jika anda memiliki dana lebih, ada baiknya jika anda menggunakan beberapa hardisk untuk penyimpanan cache squid. Tidak perlu berkapasitas besar, yang penting memiliki kemampuan read/write yang baik, misalnya hardisk jenis SCSI, SAS dan sebagainya.

Untuk memori, sebenarnya squid tidak memerlukan kapasitas yang besar, dengan 512 MB sudah cukup untuk menjalankannya. Tetapi dalam kasus proxy warnet saya, saya ingin agar kemampuan penyimpanan cache di memori bisa lebih besar, sehingga diharapkan squid bisa menghadirkan TCP_MEM_HIT lebih banyak.

Software
Squid terlahir atau tercipta hanya untuk Linux seorang :P. Jadi, jangan sekali-kali pernah berpikir dan berusaha menjalankan Squid di mesin Mikocok (baca: microsoft), baik itu seri Desktop maupun Server. Gak nyambung bro!

Squid dapat berjalan sangat baik di hampir semua distro Linux. Saya sendiri pada waktu uji coba menggunakan Ubuntu Server 8.10 32-bit. Walaupun anda memiliki komputer yang bisa menjalankan aplikasi 64-bit, disarankan untuk Squid tetap menggunakan OS 32-bit, karena Squid belum sepenuhnya teruji di mesin 64-bit.

Untuk meningkatkan performa baca/tulis, disarankan hardisk yang akan anda gunakan untuk menyimpan cache menggunakan format ReiserFS. Karena, RaiserFS memiliki kemampuan baca/tulis yang lebih baik untuk file-file ukuran kecil ketimbang format ext3.

Pada saat ujicoba, saya menggunakan Squid versi 2.7STABLE5. Untuk list versi lain yang tersedia, silahkan kunjungi halaman ini.

INSTALASI
Disini saya tidak akan menerangkan bagaimana cara menginstal Ubuntu Server 8.10 atau distro Linux lainnya ke komputer yang akan anda gunakan untuk proxy server. Tetapi jika anda membutuhkan tutorialnya, silahkan baca di HowToForge.

Membuat Partisi Format ReiserFS
Setelah Server Ubuntu anda siap, ikuti langkah-langkah instalasi berikut. Yang pertama kita akan membuat hardisk kedua (tempat direktori cache) memiliki format ReiserFS. Distro Debian sudah mendukung format ReiserFS, jika anda menggunakan CentOS anda harus mengaktifkan centosplus repo dengan men-setting enable=1 pada /etc/yum.repos.d/CentOS-Base.repo kemudian jalankan perintah yum install reiserfs-utils

Jika anda menggunakan Ubuntu seperti saya, anda tidak perlu melakukan setting apapun, karena Ubuntu sudah mendukung format ReiserFS. Yang perlu anda lakukan adalah menjalankan perintah

mkfs.reiserfs /dev/sdXX

Dimana XX adalah partisi dimana yang akan anda gunakan untuk menyimpan cache. (Untuk melihat list hardisk, gunakan perintah sudo fdisk -l.
Pada kasus saya,

mkfs.reiserfs /dev/sdb1

Kemudian tambahkan partisi anda ini ke /etc/fstab

/dev/sdb1 /var/spool/squid reiserfs defaults,notail,noatime 1 2

/var/spool/squid adalah direktori penyimpanan cache.

Compile Squid
Langkah kedua adalah melakukan compile source squid. Download source-nya dengan perintah

sudo wget http://www.squid-cache.org/Versions/v2/2.7/squid-2.7.STABLE5.tar.gz

setelah itu ekstrak dengan perintah

sudo tar -zxvf squid-2.7.STABLE5.tar.gz

kemudian kita masuk ke direktori source squid

cd squid-2.7.STABLE5

Sebelum kita mulai meng-compile, pastikan gcc atau g++ sudah terinstal.

Untuk memulai proses compile, ketikkan perintah


CHOST="i686-pc-linux-gnu" \
CFLAGS="-march=pentium4 -O2 -pipe -fomit-frame-pointer" \
./configure \
-prefix=/usr \
-enable-async-io \
-enable-useragent-log \
-enable-snmp \
-enable-cache-digests \
-enable-follow-x-forwarded-for \
-enable-storeio="aufs" \
-enable-removal-policies="heap,lru" \
-with-maxfd=16384 \
-enable-delay-pools \
-enable-poll \
-disable-ident-lookups \
-enable-truncate \
-exec-prefix=/usr \
-bindir=/usr/sbin \
-libexecdir=/usr/lib/squid


Catatan:
Nilai CHOST dan CFLAGS berbeda tergantung dari jenis prosesor mesin anda. Ganti opsi ini sesuai dengan prosesor yang anda gunakan. Untuk mengetahui nilai CHOST dan CFLAGS ketikkan perintah cat /proc/cpuinfo dan cocokkan dengan refensi nilai CHOST CFLAGS di halaman Gentoo Safe Cflags.

-enable-async-io: opsi ini untuk mengaktifkan asynchronous I/O - sangat penting untuk menghentikan squik melakukan blocking pada baca/tulis ke harddisk.

-enable-useragent-log berguna agar squid mencatat useragent di entri log - berguna jika anda menggunakan lynx untuk melakukan debug kecepatan squid.

-enable-snmp aktifkan ini jika anda ingin menampilkan statistik squid dalam bentuk grafik.

-enable-cache-digests harus diaktifkan jika anda menggunakan cache peer.

-enable-storeio="aufs" adalah alernatif penyimanan metode I/O. AUFS adalah Asynchronous, memiliki performa yang signifikan ketimbang UFS atau diskd.

-enable-removal-policies="heap,lru" adalah pilihan opsi untuk removal policies, dan saya memilih menggunakan "heap LFUDA", atau anda juga bisa menggunakan "LRU".

-with-maxfd=16384 digunakan agar squid tidak terblokir apabila dalam keadaan load tinggi.

-enable-poll untuk meningkatkan performa squid.

-disable-ident-lookups menghentikan squid dari melihat ident di setiap koneksi, bisa juga untuk mencegah serangan DOS yang dapat mematikan squid server, yang biasanya dengan cara membuka ribuan koneksi.

-enable-truncate memerintahkan squid untuk selalu menggunakan truncate() ketimbang unlink() ketika menghapus file cache.

enable-delay-pools jika anda ingin mengatur bandwidth koneksi, gunakan opsi ini.

Setelah anda menjalankan perintah ./configure diatas dengan sukses, saatnya kita menuju langkah beriktunya (jika ada error muncul, anda harus mencari solusinya sebelum masuk ke perintah selanjutnya).

Selanjutnya ketikkan perintah

make

kemudian dilanjutkan dengan

make install

seteleah selesai ketikkan perintah

strip /usr/sbin/squid /usr/lib/squid/*

perintah ini untuk menghapus simbol pada binari squid, agar ukurannya menjadi lebih kecil. Perintah ini bersifat opsional.

Squid.conf

squid.conf adalah file yang digunakan untuk melakukan konfigurasi squid. Disini saya tidak akan menampilkan semua konfigurasi squid.conf, tetapi hanya yang bisa untuk mengoptimalkan kinerja squid. Misal opsi http_port tidak saya cantumkan, jika anda ingin mengetahui list lengkap dan deskripsi dari opsi-opsi konfigurasi squid yang ada, silahkan kunjungi manualnya.


hosts_file /etc/hosts
dns_nameservers 208.67.222.222 208.67.220.220
cache_replacement_policy heap LFUDA
cache_swap_low 90
cache_swap_high 95
maximum_object_size_in_memory 50 KB
cache_dir aufs /var/spool/squid 10000 16 256
cache_mem 64 MB
logfile_rotate 10
memory_pools off
maximum_object_size 50 MB
quick_abort_min 0 KB
quick_abort_max 0 KB
log_icp_queries off
client_db off
buffered_logs on
half_closed_clients off


Apa maksud dari opsi-opsi diatas?

hosts_file /etc/hosts opsi ini untuk memerintahkan squid untuk melihat entri yang ada di /etc/hosts, hal ini berguna jika anda ingin memblokir iklan atau situs jahat dengan memanfaatkan file /etc/hosts (Insya Allah mendatang saya akan membuat tutorial ini.

dns_nameservers 208.67.222.222 208.67.220.220 Ini Penting! Squid akan mem-pause (menghentikan sementara) koneksi ketika melakukan DNS lookup. Dengan memasukkan DNS, maka akan mencegah hal ini. Disini saya menggunakan DNS dari OpenDNS.

cache_replacement_policy heap LFUDA ini adalah pilihan replacement policy, dimana saya menggunakan heal LFUDA. Anda bisa menggunakan pilihan lain, info lengkap perihal cache_replacement_policy, silahkan baca disini.

cache_swap_low 90 adalah prosentase dimana squid akan melakukan pembersihan cache, jadi jika anda memiliki 10 GB , maka squid akan melakukan pembersihan cache lama pada penggunaan 9 GB.

cache_swap_high 95 secara agresif squid akan menghapus file cache lama dengan menggunakan opsi replacement policy yang disebutkan diatas.

maximum_object_size_in_memory 50 KB Ini untuk menentukan besaran file yang akan disimpan di memori. Pada konfigurasi ini saya mengaturnya maksimum hanya 50 KB, ini agar tidak mengganggu memori. Penyimpanan file yang besar di memori akan memberikan beban tinggi sehingga mmeori tidak bisa dikontrol dengan baik.

cache_dir aufs /var/spool/squid 10000 16 256 Dianjurkan untuk tidak mengubah opsi AUFS, karena opis ini memiliki performa yang lebih bagus dari opsi lain. Angka 10000 adalah jumlah besarnya file cache yang digunakan squid dalam MB.

cache_mem 64 MB Jangan mengatur cache_mem terlalu besar. Cache_mem menunjukkan jumlah maksimal RAM yang digunakan oleh squid untuk menyimpan obyek di memori. Ingat, squid membutuhkan RAM sekitar 100 MB per 1 GB file cache. Jadi, jika anda memiliki 10 GB file cache, maka squid membutuhkan RAM minimal 1 GB.

memory_pools off Menghentikan squid menempel di memori ketika tidak ada aktifitas.

maximum_object_size 50 MB ini adalah jumlah maksimum obyek yang akan disimpan oleh squid. Dianjurkan untuk tidak mengaturnya terlalu besar.

quick_abort_min 0 KB opsi ini sangat berguna, tetapi dalam kasus tertentu akan membuat squid tidak optimal. Quick_abort_time akan mengevaluasi berapa banyak sisa data yang akan ditransfer jika klien membatalkannya. Jika nilainya berada dalam range quick_abort, maka quid akan melanjutkan download sampai selesai dan kemudian menyimpannya di cache. Memang terdengar bagus, namun masalah akan muncul jika klien melakukan beberapa koneksi, maka squid akan menyelesaikan proses download untuk semua koneksi, dan akibatnya squid menjadi lambat. Dengan mengaturnya ke angka 0, maka squid akan menonaktifkan opsi ini.

quick_abort_max 0 KB fungsi sama dengan quick_abort_min

log_icp_queries off jika anda menggunakan cache_peer, maka opsi ini akan menghentikan squid untuk selalu melakukan query ke masing-masing cache_peer.

client_db off jika diaktifkan maka squid akan menyimpan statistik semua klien, hal ini bisa membebani mmeori, maka sebaiknya dinonaktifkan.

buffered_logs on melakukan buffering pada penulisan file log, dapat meingkatkan performa squid.

half_closed_clients off mengirimkan connection-close ke klien sehingga membuka setengah koneksi untuk squid.

Setelah konfigurasi squid.conf dilakukan, kini saatnya menjalankan squid. Ketikkan perintah agar squid membuat swap

/usr/sbin/squid -z

kemudian aktifkan squid

/usr/sbin/squid start

Cek apakah squid sudah berjalan apa belum dengan perintah

sudo netstat -pln | grep squid

bila muncul tampilan seperti dibawah ini, berarti squid sudah berjalan

tcp 0 0 0.0.0.0:3128 0.0.0.0:* LISTEN 4281/(squid)
udp 0 0 0.0.0.0:3130 0.0.0.0:* 4281/(squid)
udp 0 0 0.0.0.0:50113 0.0.0.0:* 4281/(squid)
udp 0 0 0.0.0.0:3401 0.0.0.0:* 4281/(squid)


Note: Jika anda ingin melakukan pengaturan bandwidth dengan fitur delay_pools, silahkan baca petunjuknya di blog Ghozali.

Pimp Your Squid!

Ok, squid sudah kita optimalkan, bagaimana dengan TCP? Pertama, kita akan melakukan 'modprobe ip_conntrack' dengan menambahkan modul ini di /etc/modules (debian) atau /etc/modprobe.conf (RHEL/CentOS).

Hal diatas akan menghentikan squid memunculkan pesan

parseHttpRequest: NF getsockopt(SO_ORIGINAL_DST) failed: (92) Protocol not available

Kemudian kita akan melakukan modifikasi pada sysctl. Tambahkan baris berikut pada akhir file /etc/sysctl.conf

fs.file-max = 65535
net.core.rmem_default = 262144
net.core.rmem_max = 262144
net.core.wmem_default = 262144
net.core.wmem_max = 262144
net.ipv4.tcp_rmem = 4096 87380 8388608
net.ipv4.tcp_wmem = 4096 65536 8388608
net.ipv4.tcp_mem = 4096 4096 4096
net.ipv4.tcp_low_latency = 1
net.core.netdev_max_backlog = 4000
net.ipv4.ip_local_port_range = 1024 65000
net.ipv4.tcp_max_syn_backlog = 16384


Kemudian tambahkan entri berikut pada file /etc/security/limits.conf

* - nofile 65535