Jumat, 30 Desember 2011

Meningkatkan Request hit squid


setelah lama pake squid sebagai proxy server..terbersit pikiran ” Apakah Proxy Q udah menjalankan tugasnya dengan Baik yach???”setelah ngecek kinerja squid Q slama ini ternyata hanya mentok di kisaran hit 20%-25% huh sedih juga rasanya…padahal di polling forum linux.or.id ada yg bisa nyampek 70%…akhirnya ketemu juga tutorialnya yaitu proxy setan(serem juga yah namanya…)..bgini isi tutorialnya..
Jika 1 hardisk 20 GB dibuat partisinya kira2 spt ini (ini preferensi pribadi
berdasarkan eksperimen utk Squid saja lho). Silahkan dikomentari.
/dev/hda1 1G /
/dev/hda5 2G /var
/dev/hda6 256M swap
/dev/hda7 12G /cache
/dev/hda8 sisanya /home
Alasan kok /var, swap, dan /cache mengumpul ditengah, ya krn supaya ‘head’
hardisk efektif bergerak di track ‘average’ atau ditengah-tengah dg frekuensi
akses tertinggi shg kira2 kalau didiagramkan distribusinya normal
(Gaussian distribution atau bentuk bel). Swap hanya 256MB krn memori anda
toh 1GB (terus terang saya pribadi kalau bisa menghindari sebesar ini juga,
toh jika Squid sudah mempergunakan swap sebesar ini mestinya juga sudah melambat kok).
Tapi /var agak besar supaya bisa menampung banyak log, termasuk log Squid yg
kalau dirotasi sebulan sekali bisa berukuran sangat besar (dulu pernah log mesin
mencapai 1GB karena rotasinya per 3 bulan padahal bw-nya hanya 64kbps, tapi
sekarang kalau tidak salah dirotasi per 2 minggu atau per bulan saja, semua
ini tergantung intensitas akses pengguna dan bw yg dilanggani).
Terus utk cache swap Squid itu sendiri kira2 70-80% dari ukuran partisinya
(12GB x 75% = 9GB). Berawal dari konfig spt ini mestinya parameter2
di squid.conf pengaruhnya sudah tidak setinggi jika cache swap atau hardisk
anda terlalu penuh. Sekali lagi kita mau sekedar menghemat bw maka biasanya
cache sangat agresif dan aksesnya akan melambat jika
hardisknya ‘under performance’. Spt di poll ini, harus berimbang antara
kecepatan akses dan penghematan bw. Jelas dari sisi pengguna tidak akan
perduli anda mau menghemat bw atau tidak yg pasti bagi dia aksesnya harus cepat,
gitu kan ya? Jadi utk 9GB cache swap jumlah L1 direktorinya 22.
>aku pake di mesin proxy:
Proc XEON 2.8GHz 512K HT
HD IDE 40GB seagate 7200rpm
HD SCSI 36GB seagate 10000rpm
MB INTEL server HG2
Hmmm, hardisk-nya tidak ada yg lebih kecil-kecil ya? Soalnya mending 9GB-an
(kalau SCSI) 10K rpm kalikan 6 atau lebih daripada 2 yg besar-besar ini.
Tapi cari hardisk kecil-kecil sekarang mestinya susah ya?, he he he …..
>FC3 kernel 2.6.10 dengan patch reiser4.
paket reiser4 dari namesys.com
Sip, semoga opsi-opsi kompilasi di kernel-nya sudah optimum semua, alias modul yg
tidak diperlukan dihilangkan saja, biar gesit (pengalaman pribadi kernel yg baik
ukurannya kira-kira di bawah 1 MB tanpa mengorbankan kemampuannya).
>semua partisi system di HD IDE, dan HD SCSI aku jadikan satu partisi untuk /cachez
dengan alokasi 28GB memakai filesystem reiser4 metode aufs (squid).
Jangan lupa opsi mount (di fstab) ditambahkan noatime dan notail (kalau perlu lebih
aman sekalian (noexec dan tidak user mountable). Maksud anda dijadikan 1 partisi
itu di-RAID mode 0-kan (striping)?? Saran saya malah jangan, jadi biarkan spindle
per drive bergerak bebas mandiri tak bergantung 1 dg lainnya. Jadi mending 2 direktori
saja dg mekanisme least-load atau round-robin bisa dicobakan dan dilihat efektivitasnya.
Silahkan dilihat alasannya di milisnya squid-cache.org, banyak yg sudah membahas kok.
Pemakaian memorinya juga harus diamati terus soalnya jika, sekali lagi, mesin anda
sudah mulai swap ke hardisk ya sama saja alias kembali menjadi pelan. Intinya bgmana
menghindari swap memori dipergunakan (idealnya server yg super cepat itu tidak
memiliki swap memori berarti memori fisiknya harus super besar juga).
>cache_store_log /dev/null
cache_store_log none
Kalau yg ini saya yakin benar kok (spt yg dikomentari Mas Firewaxx).
Refresh_pattern diperbaiki saja krn bekerja mulai yg paling atas baru ke bawah.
refresh_pattern .gif 4320 50% 43200
refresh_pattern .jpg 4320 50% 43200
refresh_pattern .tif 4320 50% 43200
refresh_pattern ^http://www.friendster.com/.* 720 100% 4320
refresh_pattern ^http://mail.yahoo.com/.* 720 100% 4320
refresh_pattern ^http://mail1.plasa.com/.* 720 100% 4320
refresh_pattern ^http://*.yahoo.*/.* 720 100% 4320
refresh_pattern ^http://*.friendster.*/.* 720 100% 4320
refresh_pattern ^http://www.yahoo.com/.* 720 100% 4320
refresh_pattern ^ftp: 10080 95% 241920 reload-into-ims override-lastmod
refresh_pattern . 180 95% 120960 reload-into-ims override-lastmod
Komentar: sebenarnya baris paling bawah itu umum artinya selain yg di atas-nya
akan kena setting ini. Yg mjd pertanyaan saya kok file image diberi setting yg
berbeda? Utk email yg berbasis web mungkin ada alasannya supaya lebih cepat
divalidasi lagi.
Saran saya dicoba dulu 2 baris yg terakhir saja, baru jika dirasa ada kebutuhan
lain baru pelan-pelan ditambahkan baris-baris sebelumnya.
Jadi refresh_pattern hanya ini saja:
refresh_pattern ^ftp: 10080 95% 241920 reload-into-ims override-lastmod
refresh_pattern . 180 95% 120960 reload-into-ims override-lastmod
ACL saya tinggalkan apa adanya krn ini spesifik kebutuhan anda. Utk bloking
berbasis url_regex, ya kalau bisa Squid dikompilasi ulang dg opsi gnuregex supaya
lebih efisien. Lihat posting sebelumnya. Paling tidak bisa diringkas lagi mjd:
http_access deny porno !noporno
artinya kita blok semua kata yg ada di file porno kecuali semua kata yg ada di
file noporno (!=kecuali).
>maximum_object_size 10240 KB
Lha ini kok ukuran object yg bisa disimpan Squid hanya 10MB saja??
Dinaikkan saja mjd mungkin 128 MB?
maximum_object_size 128 MB
>minimum_object_size 4 KB
Dihilangkan saja, biarkan Squid menyimpan object terkecil pun tidak ada masalah kok.
>logfile_rotate 0
Dibuat logfile_rotate 1 saja, siapa tahu anda butuh melihat statistik sebelumnya.
>forwarded_for on
Biasanya ini di-off-kan saja supaya anonimity bisa terjaga (tapi jika memang
diperlukan yg tidak apa-apa).
###############################################################################
Banyak faktor yg membuat Squid ‘overloaded’ shg saat diakses malah membuat
lebih pelan:
1. Cache di hardisk terlalu besar shg pemakaian memori terlalu besar (dan mungkin
sudah mulai swap ke hardisk, silahkan dilihat via top dg rumus swap yg baik
25%an dari memori fisik, jika lebih biasanya akan pelan). Ingat per 1 GB cache
di hardisk akan memakai 10MB memori lho, belum yg lain2.
2. Hardisk terlalu pelan (krn cache terlalu besar itu tadi), shg saat mencari
object lama menemukannya. Berapa besar cache anda di hardisk?, saya menduga
mesti lebih dari 10an GB ya??
3. Browser/klien yg berusaha memanfaatkan Squid terlalu banyak shg antrian yg
berebut utk minta layanan Squid terlalu panjang walaupun toh akhirnya akan
mengakses situs yg belum pernah dikunjungi sebelumnya (yg kalau Squid-nya
pintar bisa membedakan saat akan diantrikan, mestinya?). Silahkan dilihat
stats via cachemgr.cgi, saya ada kecurigaan di i/o queue-nya sudah terlalu
panjang.
4. Mesin server terlalu banyak melayani user atau utk layanan yg lain. Dari
pengalaman, mesin dg 256MB dan beberapa layanan, mail server agent, web server
dan Squid dg cache di hardisk 6GB plus sekitar 10 PC klien saja sudah lumayan
mepet kinerjanya kok. Perlu diingat Squid butuh memori yg besar tidak prosesor
yg cepat plus hardisk yg super cepat. Ini belum ditambahi layanan yg lain-lain
lho. Intinya idealnya utk Squid mesin server seharusnya terdedikasi
(layanannya hanya Squid).
Saran utk mencoba mengidentifikasi kelambatan Squid krn defisiensi memori.
1. Ganti memori tambahan, minimal 256MB dan dicobakan di mesin anda.
Jika ternyata tambah cepat berarti ya ‘obat’nya ini yg berarti sudah saatnya
meng’upgrade’ mesin anda.
2. Squid saat di-reconfigure (squid -k reconfigure) mjd lebih cepat kembali.
3. Terjadi perbedaan kecepatan akses saat jumlah browser yg terbuka berbeda,
tetapi ini bisa juga disebabkan pipa yg anda langgani (bandwidth) sudah diambang
batas kelayakan.
Saran utk mencoba mengidenfikasi kelambatan Squid krn kinerja hardisk yg kurang baik.
1. LED indikator hardisk ‘nyaris’ tak henti-hentinya hidup (bukan nyaris tak
terdengar ya?), krn selalu terjadi proses i/o ke sana. Inilah yg membedakan
hardisk dg cache h/w yg kecil dan besar (dan yg membedakan harganya juga).
Carilah hardisk yg berkinerja agak hebat (cache 4MB, seektime 8ms, rpm 10k, idealnya)
dan jangan terlalu besar ukurannya (jadi kecil-kecil tapi banyak). Tapi itu tadi,
sulit sekarang mencari hardisk ukuran kecil di pasaran (kalau tidak salah utk SCSI
UW2-160-an, 9.1GBan masih ada).
2. Coba ditambahkan (atau dipinjamkan) hardisk 1 lagi dan direktori cache
anda dibagi ke hardisk yg baru ini dg L1 direktorinya dibagi 2 juga
(dg ukuran separuhnya juga).
Jadi misalnya awal /cache 12000 28 256 dibagi mjd 2, /cache1 6000 14 256
dan /cache2 6000 14 256.
Begitu dan jangan lupa jangan pernah memakai semuanya spt ukuran partisinya
(ingat idealnya antara 70%an kapasitas partisi maksimalnya), supaya saat akan
menulisi hardisk, tempat kosongnya lebih mudah ditemukan (kalau sudah terlalu
penuh akan sulit dan lama menemukan dan boleh jadi terfragmentasi tempatnya).
Saran terpenting:
Squid agresif itu utk kondisi di Indonesia menurut saya sangat cocok
(mungkin utk negara maju malah diprotes ya, krn bw sudah sangat murah dan hr
tenaga teknisnya utk ngoprek terlalu mahal). Tetapi yg perlu diingat adalah
semuanya itu ada batasnya ibarat sepeda motor itu kalau di’gas’ penuh mendadak
terkadang malah mati mesinnya. Jadi agresif yg agresif tapi jangan terlalu
ambisius dan harus optimal sesuai kemampuan baik mesin maupun bw yg dilanggani.
###############################################################################
>/cache 45000 16 256
45GB adl suatu ukuran yg ‘rruuarr biasa’ besarnya utk single spindle.
Pengalaman saya selama kutak-katik Squid yg terbesar saya pernah tahu utk hardisk
tunggal (single spindle) itu hanya sekitar 16an GB (80% hdd 20GB).
Jadi saya jadi yakin sekarang bottleneck Squid anda ada di sini. Belum lagi
ditambah swap memori yg utk indeks object Squid saja sudah 450an MB, belum yg
lain-lain (kalau tidak salah memori fisik anda 256MB ya?). Jadi jelas swap memori
anda mestinya juga sudah lumayan besar shg semakin memperparah kondisi mesin
server ini. Sekali lagi contoh-contoh konfigurasi mesin (dan skalabilitasnya)
dari ircache rata2 memori 512 MB s/d 2 GB dg minimal 6 hardisk SCSI (kalau tidak
salah per cache direktori 6GB-an krn dari ukuran hardisk 9GB), sekedar gambaran saja.
Jadi di sini tujuan menghemat bandwidth tercapai tetapi tujuan mempercepat akses
internet tidak tercapai.
>b/w nya terlalu kecil dimana 96 kbps yg aku punya untuk melayani 20 pc
Secara teoritis 96kbps/20pc = 4.8kbps/pc dan menurut suatu survei kepuasan
pengguna akses internet yg layak itu hanya membutuhkan kecepatan akses minimal
5kbps kontinu (yg setiap saat diperoleh secara terus menerus dan tidak pernah kurang).
Dibantu Squid dg hit rate 50% maka angka 4.8kbps ini akan naik mjd 9.6an kbps
saat tjd lonjakan permintaan (burstiness rate). Belum lagi jika perilaku per user
yg jarang download file berukuran besar dan hanya mengambil halaman2 web
setelah itu membaca (berhenti download), katakanlah dg suatu nilai kebolehjadian 50%, maka
kecepatan akses akan naik lagi mjd 19.2an kbps. Memang inilah yg paling sering kita
alami baik di tingkat rumahan atau komersial (warnet) dan inilah ukuran kelayakan
di Indonesia (atau strategi penghematan perusahan2 penyedia jasa internet ya??).
Saya yakin bw yg kita miliki tidak akan cukup jika semua pengakses internet men-download
file yg berukuran besar pada saat yg bersamaan dalam periode yg panjang.
Baik memang sebenarnya Squid sudah mencadangkan 30720KB memori tetapi ternyata
kebutuhannya hingga 32510KB (yg sudah melewati cadangan itu tadi) sehingga boleh
jadi memori swap ke hardisk sudah mulai aktif (jika ternyata memori totalnya tidak cukup).
Silahkan dilihat ulang via top. Tetapi jika ternyata memori totalnya (fisik)
masih cukup dan belum swap Squid akan terus memperbesar ‘cadangan’ ini (total
space in the arena) hingga semua kebutuhan Squid terpenuhi
(ingat 10MB per 1GB cache di hardisk ditambah yg lain2). Ini efek jika
opsi memory_pools off (jika di-on-kan batasannya jadi kaku dan terkadang
kita tidak tahu seberapa sih harus dicadangkan, dan ruginya sudah dicadangkan
ttp belum tentu dibutuhkan krn tidak tahu saja berapa yg harus dicadangkan itu tadi).
Solusi paling sederhana stl pengamatan adalah dg mengurangi ruang cache di hardisk,
misalnya dikurangi per 2 GB (mis. dari awal 12GB jadi 10GB terus diamati lagi,
tentunya L1 direktori juga disesuaikan lho), dan seterusnya sampai Squid sudah
tidak mengaktifkan memori swap (atau user sudah tidak bisa membedakan kelambatan
yg terjadi walaupun sudah swap sedikit). Solusi berikutnya ya dg mengaktifkan
batasan memori yg akan dipakai oleh Squid via
memory_pools on dan memory_pools_limit xx MB. XX
inilah yg agak sulit ditentukan krn kebutuhan Squid yg dinamis ini
(tapi bisa dikira-kira dan didekati kok). Jadi misalnya Squid dg
cache swap 12 GB butuh memori 190-an MB tapi kita batasi hanya 80 MB, ya boleh
jadi cache swap maksimal akan terisi hanya 6an GB krn utk indeks saja kira-kira bisa
hanya separuhnya. Jadi tidak terus kita asal punya hardisk besar tanpa perhitungan
resource yg dimiliki langsung dipakai semuanya. Tapi metode ‘trial and error’
memang pendekatan yg tercepat sambil mencari pengalaman mengamati dan men’tuning’
Squid lebih jauh. Rumus umum dan kasar sbg pendekatan awal biasanya spt di bawah:
mtot x 25% / 10 x 1 GB= ruang cache swap di hardisk awal dg mtot=memori fisik total.
Contoh jika memori fisik 512MB:
512MB x 25% / 10 x 1 GB = 12.5GB ruang cache swap di hardisk.
Tapi ini rumusan yg aman dan mesin Squid terdedikasi. Ada yg lebih ekstrim dan
berani menaikkan hingga 16an GB dan mungkin memori swap ke hardisk sudah aktif
tetapi kecepatan akses Squid masih terjaga (mungkin jumlah kliennya sedikit
dan hardisknya cepat) ya tidak apa-apa. Mestinya angka-angka ini mjd lebih kecil
jika mesin dipakai bersama utk layanan yg lain. Sekali lagi kondisi dan kebutuhan
berbeda-beda belum sifat kedinamisan si Squid itu sendiri. Kalau tidak salah
antar Squid yg berbeda versi saja sifat2-nya juga berbeda walaupun mungkin
sedikit saja perbedaannya.
Pertama yg harus kita pahami adalah:
1. Tidak semua halaman web bisa disimpan (di’cache’) Squid
2. Banyak situs yg memang berusaha halaman2 mereka tidak bisa di’cache’ krn
ada keperluan utk statistik mereka (iklan, visit/hit rate, dll) via ‘pragma
no-cache’ atau metode yg lain 3. Ingat Squid memang tidak akan menyimpan
alamat url selama ada karakter ? atau cgi-bin krn ini secara mendasar tidak
diijinkan disimpan (masalah keamanan), belum yg lain-lain.
4. 1 Halaman web bisa terdiri atas banyak object, mungkin ada sebagian yg
memang ‘dinamis’ alias setiap saat berubah hingga tidak bisa disimpan.
Jadi memang di internet itu selalu terjadi ‘tarik-ulur’ antara yg mau menghemat
dg yg tidak mau dihemat, yg jahat dg yg baik, yg konstruktif dg yg destruktif,
dll.
Jika anda mau jadi ‘Squid ekstrimis’, ya pakai saja off-line mode. Artinya Squid
tidak akan perduli object2-nya valid atau tidak, kedaluarsa atau tidak, semuanya
akan dipaksa disimpan (sama kalau di browser IE mode offline).
Saya jamin kecepatan Squid anda akan tinggi dg hit rate tinggi dan bw anda
sangat irit pula tetapi paling sebentar saja akan diprotes oleh user2 anda,
Memang sudah ada beberapa usaha supaya ‘pragma no-cache’ ini tidak mdj
halangan halaman2 utk di’cache’ kan dg cara halamannya di’rewrite’ (tulis ulang)
dan menghilangkan opsi di atas tsb. Tetapi dari sisi legalitasnya bagaimana?
Ada yg mengatakan, lha saya yg mengakses dan membutuhkan kok tidak boleh
di’cache’? Tapi dari sisi penyedianya mengatakan, lha kalau tidak mau mengikuti
yg saya inginkan ya jangan mengakses situs saya kan?? Jadi artinya
di sini jika sudah diberi ‘pagar’ atau ‘pengumuman’ ya mestinya harus diikuti
aturannya, jangan terus malah dilanggar
Ini opsi-2 konfigurasi utk kompilasi Squid khusus utk Linux.
./configure
–enable-gnuregex
–enable-async-io=24
–with-aufs-threads=24
–with-pthreads
–with-aio
–with-dl
–enable-storeio=aufs
–enable-removal-policies=heap
–enable-icmp
–enable-delay-pools
–disable-wccp
–enable-snmp
–enable-cache-digests
–enable-default-err-languages=English
–enable-err-languages=English
–enable-linux-netfilter
–disable-ident-lookups
–disable-hostname-checks
–enable-underscores
Silahkan disesuaikan
## Jika ada beberapa situs terdekat yg mungkin hanya 1 hop, di-by pass saja
supaya kerja Squid benar-benar utk yg jaraknya jauh
## 1. Situs-situs yg membutuhkan login di-’direct’ via always_direct dan jangan
disimpan via hierarchy_stoplist cgi-bin ? namasitus dan acl QUERY
urlpath_regex cgi-bin ? namasitus. Diusahakan namasitus sangat spesific
soalnya jika misalnya hanya yahoo.com ya semua yahoo.com akan kena alias
mem-’by-pass’ Squid. Jadi bisa misalnya mail.yahoo.com saja.
2. Via hierarchy_stoplist cgi-bin ? namasitus dan acl QUERY urlpath_regex cgi-bin ?
jika alamat mengandung misalnya halaman2 java applet/script ekstensi .awt, .js, dst-nya.
3. Refresh_pattern minimalnya dikurangi, sekali lagi konfigurasi 180 (atau 3 jam)
bagi beberapa keperluan tidak cocok. Silahkan dicoba misalnya hanya 10 menitan
dan diamati.
4. Terakhir, mungkin ie_refresh harus diaktifkan dan biasanya dg menekan tombol
refresh/reload, Squid akan ‘terpaksa’ memvalidasi halaman tersebut
(bisa beberapa kali refresh/reload terkadang utk proses cek validasi ini).
hierarchy_stoplist cgi-bin ? localhost domain-anda.com isp-anda.com domainku.web.id
acl QUERY urlpath_regex cgi-bin ? localhost domain-anda.com isp-anda.com domainku.web.id
no_cache deny QUERY
## Dari pengalaman 6 MB akan lebih cepat dan biarkan Squid bekerja lebih
keraslagi jika cache_mem diperbesar efeknya adalah pengaksesan obyek lebih
lembam (atau pelan dalam pencarian di mesin lokal, tetapi begitu ketemu ya
cepat aksesnya) dan dg cache_mem 6 MB kita rasakan paling responsif. Dari
banyak forum dan user group rumus umum cache_mem adalah 1/3 atau 1/4 dari
total memori fisik (benar ya?). Tapi default 8 MB saya pikir sudah pas dan
disarankan oleh si Henrik Nordstrom.
Kenapa kok batasan minimum 98 dan maksimum 99 alasannya supaya proses store
and purge obyek tidak sporadis jalannya.
cache_mem 6 MB
cache_swap_low 98
cache_swap_high 99
## Maksimum obyek di hardisk dan di memori diupayakan lebih besar shg byte hit
lebih tinggi (bisa dinaikkan lagi jika hardisk berkecepatan tinggi dan
jumlahnya banyak dg memori yg lebih besar pula)
maximum_object_size 128 MB
maximum_object_size_in_memory 32 KB
## Jika memori 512 MB atau lebih besar silahkan cache diperbesar
ipcache_size 2048
ipcache_low 98
ipcache_high 99
## Utk heap replacement saya memakai LFUDA utk cache hardisk dan GDSF utk cache
memori dg alasan di hardisk diprioritaskan obyek yg ukuran besar-besar dan
di memori obyek yg ukurannya kecil-kecil utk disimpan
cache_replacement_policy heap LFUDA
memory_replacement_policy heap GDSF
## Idealnya ruang di hardisk yg anda pakai hanya sekitar 70% dari total krn
semakin penuh Squid akan semakin pelan mencari tempat kosong, mis. utk cache
1 GB maka yg dipakai hanya 700MB (jangan 1GB dipakai semuanya). Jangan lupa
hanya 1 direktori per drive krn faktor penghambat adalah kecepatan spindle hardisk
lho, bukan terus dg memperbanyak direktori pada 1 hd akan mempercepat
(hd orde milidetik, memori orde nanodetik). Jadi mending hardisknya banyak
tapi ukurannya kecil-kecil daripada hanya 1 berukuran besar. Terus jika OS-nya
Linux pakailah FS-nya Reiser (versi 4 tercepat) dg metode akses aufs. Diskd
optimal di FreeBSD tetapi tidak di Linux lho. Jangan lupa di partisi tsb
noatime dan notail diaktifkan spy tidak menambah ekstra write saat menulis
atau membaca. Intinya hardisk adalah faktor penghambat terbesar di Squid.
## saran kira2 70% dari 16GB
cache_dir aufs /cachez 12000 28 256
atau (utk ruang 4GB-an per hardisk)
cache_dir aufs /cachehardisk1 3000 8 256
cache_dir aufs /cachehardisk2 3000 8 256
cache_dir aufs /cachehardisk3 3000 8 256
cache_dir aufs /cachehardisk4 3000 8 256
atau minimal di bawah ini supaya modifikasi tidak terlalu jauh
cache_dir diskd /cachez 12000 28 256 Q1=72 Q2=88
## Log utk info yg vital saja dan diusahakan file-file log ada di hardisk
tersendiri spy tidak mempengaruhi kecepatan direktori cache utamanya
log_fqdn off
log_icp_queries off
cache_log none
cache_store_log none
## Dg ‘menipu’ dan memaksa sedikit supaya akses obyek lebih intensif di lokal
Squid dan waktu simpan ditambah sebelum proses validasi terjadi (mis. validasi
terjadi per 3 jam dg penyimpanan obyek terlama 3 bulan, utk ftp bisa lebih lama lagi)
refresh_pattern ^ftp: 10080 95% 241920 reload-into-ims override-lastmod
refresh_pattern . 180 95% 120960 reload-into-ims override-lastmod
## Toleransi aborting dihilangkan saja
quick_abort_min 0
quick_abort_max 0
quick_abort_pct 98
## Mematikan dan merekonfigurasi Squid jangan terlalu cepat krn bisa mengakibat
kan integritas file kacau
shutdown_lifetime 10 seconds
## tidak perlu reservasi memori
memory_pools off
## Penting utk relasi dg sibling dg mengukur respons-nya via ICP dan ICMP
(tapi ada isp yg tidak mengijinkan lho)
icp_hit_stale on
query_icmp on
## Penting utk meningkatkan refresh pattern lebih lanjut
reload_into_ims on
pipeline_prefetch on
vary_ignore_expire on
## Sekali lagi Squid diperlukan utk mengambil yg jaraknya jauh, jarak dekat
langsung saja
acl local-dst dst semuaalamatlokal semuaalamatipygdekat
acl local-domain dstdomain localhost domain-anda.com isp-anda.com domainku.web.id
always_direct allow localhost local-dst local-domain
always_direct deny all
## Tidak begitu diperlukan
##ie_refresh on
Contoh Konfigurasi
;—————————————————————————————;
# LOGFILE PATHNAMES AND CACHE DIRECTORIES
# —————————————————————————–
cache_dir diskd /cache/squid 1000 8 256 # << Sesuaikan dengan kebutuhan anda
access_log /cache/access.log squid
cache_log /cache/cache.log
log_fqdn off
buffered_logs off
# OPTIONS FOR TUNING THE CACHE
# —————————————————————————–
refresh_pattern /.gif 4320 50% 43200
refresh_pattern /.jpg 4320 50% 43200
refresh_pattern /.jpeg 4320 50% 43200
refresh_pattern /.png 4320 50% 43200
refresh_pattern ^http://www.friendster.com/.* 720 100% 10080
refresh_pattern ^http://mail.yahoo.com/.* 720 100% 10080
refresh_pattern ^http://*.yahoo.*/.* 720 100% 7200
refresh_pattern ^http://*.google.com/.* 720 100% 10080
refresh_pattern ^http://www.telkomspeedy.com/.* 720 100% 28800
refresh_pattern ^http://*.blogsome.com/.* 720 80% 10080
refresh_pattern ^http://*.wordpress.com/.* 720 80% 10080
refresh-pattern ^http://detik.com/.* 720 90% 2880
refresh_pattern ^ftp: 14400 90% 43200 reload-into-ims
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern . 0 20% 4320 reload-into-ims
quick_abort_min 0 KB
quick_abort_max 0 KB
quick_abort_pct 95
# ACCESS CONTROLS
# —————————————————————————–
acl my_network src 192.168.1.0/24
acl SSL_ports port 443 563
#acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 443 563 # https
#acl Safe_ports port 488 # gss-http
#acl Safe_ports port 591 # filemaker
#acl Safe_ports port 777 # multiling http
http_access allow manager localhost my_network
http_access allow my_network
acl download url_regex -i .mp3
acl download url_regex -i .3gp
acl download url_regex -i .avi
acl download url_regex -i .mpg
acl download url_regex -i .mpeg
acl download url_regex -i .wav
acl download url_regex -i .flv
acl download url_regex -i .swf
# DELAY POOL PARAMETERS (all require DELAY_POOLS compilation option)
# —————————————————————————–
delay_pools 2
delay_class 1 3
delay_parameters 1 -1/-1 -1/-1 8000/8000
delay_access 1 allow my_network download
delay_access 1 deny all
delay_class 2 2
delay_parameters 2 -1/-1 -1/-1
delay_access 2 allow my_network
delay_access 2 deny all
# ADMINISTRATIVE PARAMETERS
# —————————————————————————–
cache_effective_user squid
# MISCELLANEOUS
# —————————————————————————–
logfile_rotate 5
reload_into_ims on
store_dir_select_algorithm round-robin
# ADMINISTRATIVE PARAMETERS
# —————————————————————————–
cache_mgr youremail@host.com
visible_hostname localhost

Senin, 26 Desember 2011

Monitoring SQUID

Monitoring Squid Proxy Menggunakan sqstat, SARG, dan Lightsquid

Email Cetak PDF

I. Pendahuluan

Pada tutorial sebelumnya sudah dijelaskan tentang apa itu squid dan bagaimana cara mengkonfigurasinya di Linux (Centos 5.2). Dan juga sudah dijelaskan tentang bagaimana cara kita agar sebuah jaringan harus melewati sebuah proxy yang sudah kita buat. Pada bagian terakhir pada tulisan itu dijelaskan pula bagaimana cara memonitor user-user tersebut yang melewati proxy yaitu dengan menuliskan perintah:
# tail -f /var/log/squid/access.log
Namun perintah tersebut sangat tidak manusiawi karena hasil yang ditampilkan terlalu cepat untuk diikuti. Oleh karena itu di dalam tutorial kali ini akan dijelaskan tentang 3 buah tool untuk memonitor proxy server squid yang sangat manusiawi. Ketiga buah tool tersebut adalah sqstat, SARG dan lightsquid dan ketiga aplikasi tersebut akan diinstal di centos 5.2

A. sqstat

sqstat adalah sebuah aplikasi yang dibuat oleh Alex Samorukov. Aplikasi ini berfungsi untuk memonitor squid secara real time sehingga kita bisa melihat secara langsung IP berapa yang sedang mendownload dan lain sebagainya. Untuk menginstal sqstat ke dalam sistem kita, maka ikuti langkah-langkah berikut ini:
1. Download paket
Download paket sqstat di sini.
2. Ekstrak Paket
# gunzip sqstat-1.20.tar.gz
# tar -xvf sqstat-1.20.tar
3. Pindah Folder ke webserver
# mv sqstat-1.20 /var/www/html/; cd /var/www/html
4. Merubah Nama
# mv sqstat-1.20 sqstat 
5. Konfigurasi sqstat
# cd sqstat
# cp config.inc.php.defaults config.inc.php
# vi config.inc.php
 
Di dalam file config.inc.php, rubah ip address dan port squid kita. Di sini, penulis memasukkan ip dan port squid penulis:
/* Squid proxy server ip address or host name */
 $squidhost[0]="192.168.0.250";  /* Squid proxy server port */
 $squidport[0]=3128;
Setelah itu kita akan merubah file squid.conf
# vi /etc/squid/squid.conf
Di dalam file tersebut, tambahkan skrip berikut ini:
 acl manager proto cache_object
 acl webserver src 192.168.0.250/255.255.255.255
 http_access allow manager webserver
 http_access deny manager
6. Restart Webserver
# service httpd restart 
7. Tes sqstat
Buka browser lalu ketikkan:
 http://alamat_ip/sqstat
Maka akan ada tampilan sebagai berikut:



Rubahlah Auto refresh dari nilai 0 menjadi 5 agar aplikasi ini dapat refresh setiap 5 detik lalu tekan tombol Update.
6. Troubleshooting
Umumnya error yang terjadi adalah pada saat pengetesan sqstat di browser yaitu ada pernyataan error:

SqStat error
Error (1): Cannot get data. Server answered: HTTP/1.0 403 Forbidden


Hal ini dikarenakan kita salah menempatkan skrip: http_access deny manager di file squid.conf. Tempatkanlah skrip tersebut dibagian paling bawah pada item http_access. 

Jika tidak ada tampilan gambar seperti di atas, tetapi hanya berupa list saja pada browser, maka ketikkan:
# mv sqstat.php index.php

B. SARG

SARG atau Squid Analysis Report Generator merupakan sebuah aplikasi yang dibuat oleh Pedro Lineu Orso yang bertujuan untuk melihat dan merekam aktivitas user selama berada di internet. Aplikasi ini sangat lengkap sehingga kita bisa melihat situs-situs apa yang dikunjungi oleh user, berapa bandwidth yang terpakai, dan sebagainya. Untuk menginstal aplikasi ini ke dalam sistem, berikut adalah langkah-langkahnya:
1. Download paket
Download paket SARG di sini.
2. Ekstrak Paket
# tar -zxvf sarg-2.2.5.tar.gz
 # cd sarg-2.2.5
3. Instalasi SARG
# ./configure
 # make
 # make install
4. Konfigurasi SARG
 # cd /usr/local/sarg/
 # cp sarg.conf sarg.conf.ori
 # vi sarg.conf
Di file ini, rubahlah konfigurasi sarg sesuai dengan kebutuhan. Di bawah ini adalah konfigurasi sarg penulis:
 language English
 access_log /usr/local/squid/var/logs/access.log
 graphs yes
 graph_days_bytes_bar_color orange
 title "Squid User Access Reports"
 font_face Tahoma,Verdana,Arial
 header_color darkblue
 header_bgcolor blanchedalmond
 font_size 9px
 header_font_size 9px
 title_font_size 11px
 background_color white
 text_color #000000
 text_bgcolor lavender
 title_color green
 logo_image none
 logo_text ""
 logo_text_color #000000
 image_size 80 45
 background_image none
 password none
 temporary_dir /tmp
 output_dir /var/www/html/squid-reports
 output_email none
 resolve_ip no
 user_ip yes
 topuser_sort_field BYTES reverse
 index yes
 use_comma no
 long_url yes
 
5. Generate SARG
Untuk menjalankan SARG, maka ketikkan perintah di bawah ini untuk men-generate SARG:
# /usr/bin/sarg -l /var/log/squid/access.log
Maka secara ototmatis di dalam folder /var/www/html ada folder baru yang bernama squid-reports.
6. Restart Webserver
# service httpd restart
7. Melihat SARG
Untuk melihat tampilan SARG, maka ketikkan perintah berikut di browser:
http://alamat_ip/squid-reports
maka akan ada tampilan sebagai berikut:



Klik item yang berada pada kolom FILE/PERIOD, maka akan ada tampilan sebagai berikut:


Jika sudah ada tampilan seperti itu, maka SARG sudah berhasil diinstalasi di dalam sistem.

7. Penjadwalan Generate SARG
Untuk men-generate SARG, kita harus mengetikkan di dalam konsol perintah seperti berikut:  
# /usr/bin/sarg -l /var/log/squid/access.log
Namun, alangkah capeknya jika kita mengetikkan perintah tersebut secara manual. Maka dari itu kita menggunakan crontab untuk melakukan eksekusi otomatis. Misalnya kita ingin agar setiap 1 jam sekali perintah di atas dieksekusi secara otomatis oleh sistem, maka terlebih dahulu kita membuat skrip misalnya di folder /home dengan nama sarg.txt dan tambahkan skrip berikut:
#!/bin/bash
  /usr/bin/sarg -l /var/log/squid/access.log
Setelah itu, berikan perintah agar skrip tersebut dapat dieksekusi:
# chmod +x sarg.txt
Setelah itu kita konfigurasi crontab-nya:
# crontab -e
tambahkan skrip berikut:
0 * * * * /home/sarg.txt
Dan setelah itu sistem akan men-generate SARG secara otomatis.

C. lightsquid

Lightsquid merupakan aplikasi monitoring squid yang mempunyai fungsi yang sama dengan SARG. Aplikasi ini menggunakan bahasa perl untuk men-generatenya. Maka dari itu ceklah di dalam sistem apakah sudah ada paket-paket perl atau belum dan jika sudah ada, paket perl versi berapa karena ada penambahan skrip perl versi tertentu yang akan dibahas nanti.
# rpm -qa | grep perl
 # perl -v
Untuk menginstal lightsquid ke dalam sistem kita, maka ikuti langkah-langkah berikut:
1. Download paket
Download paket lightsquid di sini.
2. Ekstrak ke Webserver
# tar -zxvf lightsquid-1.7.1.tgz -C /var/www/html/; cd /var/www/html
3. Merubah Nama Folder
#  mv lightsquid-1.7.1/ lightsquid
4. Konfigurasi lightsquid
 # cd lightsquid
 # cp lightsquid.cfg lightsquid.cfg.ori
 # vi lightsquid.cfg
Di dalam file ini, rubahlah path cfgpath, tplpath, langpath, reportpath, logpath, ip2namepath yang sesuai dengan dimana folder lightsquid itu berada. Penulis menggunakan konfigurasi berikut:

#path to additional `cfg` files
$cfgpath ="var/www/html/lightsquid";
#path to `tpl` folder
$tplpath  ="/var/www/html/lightsquid/tpl";
#path to `lang` folder
$langpath ="/var/www/html/lightsquid/lang";
#path to `report` folder
$reportpath ="/var/www/html/lightsquid/report";
#path to access.log
$logpath ="/var/log/squid";
#path to `ip2name` folder
$ip2namepath ="/var/www/html/lightsquid/ip2name";
Jika sudah selesai, maka ketikan perintah berikut:
5. Merubah Mode
# chmod +x *.cgi
# chmod +x *.pl
6. Cek Setup lightsquid
Ketikkan perintah berikut untuk mengecek apakah konfigurasi lighsquid sudah benar atau belum:
# perl check-setup.pl
Jika ada tampilan seperti berikut:


Maka konfigurasi kita sudah benar.
7. Mengedit File Webserver
Setelah itu, kita mengkonfigurasi webserver yang berada di /etc/httpd/conf/httpd.conf, lalu cari skrip sebagai berikut:
<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Order allow, deny
    Allow from all
</Directory>
menjadi:
<Directory "/var/www/html/lightsquid">
    AddHandler cgi-script .cgi
    AllowOverride All
</Directory>
8. Generate lightsquid
Untuk men-generate lightsquid, gunakan perintah berikut:
# /var/www/html/lightsquid/lightparser.pl
9. Restart Webserver
# service httpd restart
10. Lihat lightsquid
Buka browser, lalu ketikkan
http://alamat_ip/lightsquid
maka akan ada tampilan sebagai berikut:


Klik pada item Date, maka akan muncul tampilan:


Jika sudah tampil gambar-gambar di atas, maka lightsquid sudah terinstal dalam sistem.
9. Penjadwalan Generate lightsquid
Sama seperti SARG, lightsquid bisa di generate secara otomatis menggunakan crontab. Buat dahulu filenya misalnya di /home yang bernama lightsquid.txt lalu masukkan skrip berikut:
#!/bin/bash
cd /var/www/html/lightsquid
/var/www/html/lightsquid/lightparser.pl
Dan kita ingin agar setiap 1 jam sekali sistem mengeksekusi file ini, maka masukkan di crontab:
0 * * * * /home/lightsquid.txt 
Dan jangan lupa berikan perintah:
 # chmod +x /home/lightsquid.txt
agar file tersebut dapat dieksekusi.

10. Troubleshooting

Pada umumnya error yang terjadi biasanya terlihat pada saat mengecek konfigurasi lightsquid, yaitu pada saat kita memberikan perintah:
 # perl check-setup.pl 
ada pernyataan error:
 no: GD.PM found, please install or set $graphreport=0 to disable
Error tersebut dikarenakan di dalam sistem kita tidak mempunyai paket gd yang digunakan untuk membuat tampilan grafik. Oleh karena itu, installah paket tersebut dengan menuliskan:
# yum -y install gd perl-gd

Atau jika kita tidak mau menginstal paket gd hal itu tidak menjadi masalah dan konsekwensi yang timbul hanyalah kita tidak bisa melihat tampilan grafik. Tapi kita harus mensetting di file lightsquid.cfg dan merubah nilai dari
$graphreport dari 1 menjadi 0.
Dan juga perlu diingat jika kita menggunakan perl versi 5.10, ada skrip yang harus ditambahkan di file lightparser.pl yaitu dengan merubah:
 
#extract site name
if $url =~ m/([a-z]+:\/\/)??([a-z0-9\-]+\.){1}(([a-z0-9\-]+\.){0,})([a-z0-9\-]+){1}(:[0-9]+)?\/(.*)/o;
      $site=$2.$3.$5;
      $site=$Lurl if ($site eq "");

menjadi:

#extract site name
if ($url =~ m/([a-z]+:\/\/)??([a-z0-9\-]+\.){1}(([a-z0-9\-]+\.){0,})([a-z0-9\-]+){1}(:[0-9]+)?\/(.*)/o) { $site=$2.$3.$5; } else { $site=$Lurl; }

V. Kesimpulan

Di atas, sudah dijelaskan tentang ketiga monitoring squid yang dapat digunakan. Namun, ada beberapa yang harus diperhatikan. Untuk sqstat, terkadang aplikasi ini tidak menampilkan seluruh IP yang sedang melewati proxy atau juga tidak dapat menampilkan user mana yang sedang mendownload. Maka dari itu, lengkapi pula di dalam sistem kita dengan aplikasi jnettop. Untuk SARG, kelebihannya adalah fitur yang lengkap sehingga kita mungkin merasa cukup dengan apa yang dilakukan oleh SARG. Tetapi sayangnya, aplikasi ini sangat boros memakan ruang dalam hard disk karena file-file yang digenerate berbentuk html. Pengalaman penulis, aplikasi ini mampu memakan ruang dalam hard disk sebesar kira-kira 1GB dalam sehari semalam. Berbeda halnya dengan lightsquid. Karena file-file yang dihasilkannya berbentuk txt, maka aplikasi ini tidak memakan ruang yang banyak di dalam hard disk tetapi sayangnya fiturnya dibawah SARG. Namun, penulis pikir ini adalah sebuah selera saja. Mana yang lebih mendekati selera si system administrator, maka aplikasi tersebut yang akan digunakan. Namun penulis menyarankan untuk lebih mendapatkan hasil yang akurat, selain menginstal aplikasi di atas, juga bisa ditambahkan aplikasi bwstat, dan jnettop dimana bwstat digunakan untuk melihat berapa bandwidth yang sudah dihabiskan per IP dan jnettop digunakan untuk melihat IP mana yang sedang download secara real-time. Sedangkan SARG dan lightsquid untuk melihat akumulatif bandwidth per hari.

Referensi
http://lightsquid.sourceforge.net/
http://paidjo.files.wordpress.com
http://masrifqi.web.id
http://samm.kiev.ua

Minggu, 25 Desember 2011

squid: ERROR: No running copy

squid: ERROR: No running copy

[root@proxy squid]# squid -k reconfigure
squid: ERROR: No running copy
[root@proxy squid]# service squid start
Starting squid: ………………..                       [FAILED]
liat di lognya
#tail -f /var/log/message
: Squid Parent: child process 13608 started
: storeAufsDirOpenSwapLog: Failed to open swap log.
: Squid Parent: child process 13608 exited due to signal
menggunakan perintah berikut
# squid -NC -d1
Starting Squid Cache version 2.6.STABLE4 for i686                    -redhat-linux-gnu…
Process ID 13675
With 1024 file descriptors available
Using epoll for the IO loop
Performing DNS Tests…
Successful DNS name lookup tests…
DNS Socket created at 0.0.0.0, port 32771, FD 5
Adding nameserver dns-local from squid.conf
Adding nameserver dns-public 4 from squid.conf
Adding nameserver dns-public from squid.conf
helperOpenServers: Starting 5 ‘ncsa_auth’ process                    es
User-Agent logging is disabled.
Referer logging is disabled.
Unlinkd pipe opened on FD 15
Swap maxSize 102400000 KB, estimated 7876923 obje                    cts
Target number of buckets: 393846
Using 524288 Store buckets
Max Mem  size: 6144 KB
Max Swap size: 102400000 KB
Local cache digest enabled; rebuild/rewrite every                     3600/3600 sec
Store logging disabled
| /var/spool/squid/swap.state: (13) Permission deni                    ed
FATAL: storeAufsDirOpenSwapLog: Failed to open swap log.
Aborted (core dumped)
Telah terjadi perubahan di /var/spool/squid yang menyebabkan error diatas
-rw-r—–   1 root  squid 185401920 Nov 12 08:45 swap.state
lalu di ubah kepemilikannya menjadi
#chown squid swap.state
dan hasilnya kembali menjadi
-rw-r—–   1 squid squid 17358624 Nov 12 09:23 swap.state
lakukan
#service squid start
Starting squid: .                                          [  OK ]
#squid -k reconfigure
dan squid kembali normal

Selasa, 13 Desember 2011

Membuat DNS Slave

Bagi rekan2 yang masih bingung dengan cara membangun dns slave neh sya buat cara mengkonfigurasinya….
Membangun DNS Slave pada Jaringan
IP Address Jaringan
1. DNS Server = 202.100.4.65/27
2. PC Client = 202.100.4.69/27
DNS Server
1. Sistem Operasi = OS Linux
2. Domain = sekolahxx.sch.id
3. Sub Domain = www.sekolahxx.sch.id
mail.sekolahxx.sch.id
pc1.sekolahxx.sch.id
Keterangan :
xx merupakan No Ujian Peserta.
Keterangan :
DNS Master disiapkan Oleh Penguji
Domain Master : sekolah-master.sch.id
Subdomain Master :
www.sekolah-master.sch.id
mail.sekolah-master.sch.id
Implementasikan topologi diatas untuk melakukan pengujian fungsi DNS Slave pada Jaringan, dengan ketentuan :
a. Membuat perencanaan sesuai dengan topologi jaringan yang disediakan
b. Melakukan Perakitan PC Server
c. Instalasi PC Server
d. Instalasi PC Client
e. Melakukan konfigurasi Server yang meliputi :
- DNS Server untuk domain local LAN.
- Sub Domain Name yang di deskripsikan meliputi :
1. ns.sekolahxx.sch.id dengan ip address 202.100.4.65/27
2. www.sekolahxx.sch.id dengan ip address 202.100.4.66/27
3. mail.sekolahxx.sch.id dengan ip address 202.100.4.67/27
4. pc1.sekolahxx.sch.id dengan ip address 202.100.4.69/27
f. Melakukan instalasi dan konfigurasi DNS Slave sesuai dengan kebutuhan.
- Sistem Operasi : OSS (Linux)
- Spesifikasi :
Client : DNS yang digunakan adalah DNS Server LAN
Server : Dapat melayani permintaan dari client untuk mengakses Subdomain Master.
g. - Melakukan pengujian fungsi jaringan (sistem koneksi)
- Dapat mengakses subdomain dari DNS Master.
- Melakukan pengujian Subdomain DNS Lokal LAN sesuai dengan skenario
e dan f.
Langkah-langkah konfigurasi di PC server DNS Slave :
Karena di soal tidak di sebutkan ip address untuk PC server DNS master, maka saya misalkan untuk ip address master adalah 222.222.222.1 dan ip eth0 PC Slave 222.222.222.11
Langkah pertama Konfigurasi IP Address :
#vim /etc/network/interfaces
auto eth0
iface eth0 inet static
address 222.222.222.11 = ip Pc Slave
netmask 255.255.255.0
network 222.222.222.0
broadcast 222.222.222.255
gateway 222.222.222.1 = ip Pc Master
auto eth1
iface eth1 inet static
address 202.100.4.65
netmask 255.255.255.224
network 202.100.4.64
broadcast 202.100.4.95
(save :wq! (bila dalam kondisi sedang mengedit “insert” ketik dahulu “esc” untuk keluar))
restart network dengan perintah :
# /etc/init.d/networking restart
Selanjutnya membuat primary name server dan secondary name server/slave yang terdiri dari forward master zone dan revers master zone dengan perintah :
#vim /etc/bind/named.conf.default-zones
Tambahkan pada baris terakhir :
zone “bandungselatan1.sch.id” {
type master;
file “/etc/bind/db. bandungselatan.zone”;
};
zone “4.100.202.in-addr.arpa” {
type master;
file “/etc/bind/db. bandungselatan.rev”;
};
zone “bandungselatan-master.sch.id” {
type slave;
masters {222.222.222.1;
};
file “/var/cache/bind/master.hosts.zone”;
};
zone “222.222.222.in-addr.arpa” {
type slave;
masters {222.222.222.1;
};
file “/var/cache/bind/master.hosts.rev”;
};
(save :wq! (bila dalam kondisi sedang mengedit “insert” ketik dahulu “esc” untuk keluar))
Selanjutnya membuat file zona untuk domain bandungselatan.zone. Copykan file /etc/bind/db.local ke /etc/bind/db.bandungselatan.zone dengan perintah :
# cp /etc/bind/db.local /etc/bind/db.bandungselatan.zone
Setelah itu ketikan perintah dibawah, setelah masuk ke dalam db.bandungselatan.zone lalu edit :
#vim /etc/bind/db.bandungselatan.zone
$TTL 86400
@ IN SOA ns.bandungselatan1.sch.id. root.bandungselatan1.sch.id. (
2010020531 ; serial
7200 ; refresh
14400 ; retry
3600 ; expire
86400 ) ; ttl
@ IN NS ns.bandungselatan1.sch.id.
ns IN A 202.100.4.65
www IN A 202.100.4.66
mail IN A 202.100.4.67
pc1 IN A 202.100.4.69
(save :wq! (bila dalam kondisi sedang mengedit “insert” ketik dahulu “esc” untuk keluar))
Selanjutnya membuat file revers dengan nama file db.angkasa.rev. Copykan dari file /etc/bind/db.bandungselatan.zone ke /etc/bind/db.bandungselatan.rev dengan perintah :
# cp /etc/bind/db.bandungselatan.zone /etc/bind/db. bandungselatan.rev
Setelah itu ketikan perintah dibawah, setelah masuk ke dalam db.bandungselatan.rev lalu edit :
#vim /etc/bind/db.bandungselatan.rev
$TTL 86400
@ IN SOA ns. bandungselatan1.sch.id. root. bandungselatan1.sch.id. (
2010020531 ; serial
7200 ; refresh
14400 ; retry
3600 ; expire
86400 ) ; ttl
@ IN NS ns. bandungselatan1.sch.id.
65 IN PTR ns. bandungselatan1.sch.id.
66 IN PTR www. bandungselatan1.sch.id.
67 IN PTR mail. bandungselatan1.sch.id.
69 IN PTR pc1. bandungselatan1.sch.id.
(save :wq! (bila dalam kondisi sedang mengedit “insert” ketik dahulu “esc” untuk keluar))
Kemudian edit file /etc/resolv.conf, File ini berfungsi mendefinisikan IP DNS Server, gunakan perintah :
#vim /etc/resolv.conf
nameserver 202.100.4.65
search bandungselatan1.sch.id
Kemudian restart DNS dengan perintah :
# /etc/init.d/bind9 restart
Lalu cek DNS dengan perintah :
#nslookup 202.100.4.65
#nslookup ns.bandungselatan1.sch.id
#nslookup www.bandungselatan1.sch.id
#nslookup mail.bandungselatan1.sch.id
#nslookup pc1.bandungselatan1.sch.id
Jika ada jawaban, maka DNS Server telah berjalan dengan baik.
Untuk selanjutnya, mengkonfigurasi server sebagai router gunakan perintah :
# vim /etc/sysctl.conf
Hilangkan tanda “#” pada baris net/ipv4/ip_forward=1
Contoh :
Sebelum :
#net/ipv4/ip_forward=1
Sesudah :
net/ipv4/ip_forward=1
(save :wq! (bila dalam kondisi sedang mengedit “insert” ketik dahulu “esc” untuk keluar))
Kemudian ketikan perintah :
# iptables -t nat –A POSTROUTING -s 202.100.4.64/27 -d 0/0 -j MASQUERADE
Konfigurasi di PC Client (WINDOWS) :
Kemudian tes di dns slave ke pc client dan pc dns master, dengan perintah :
# ping 202.100.4.69
# ping 222.222.222.1
#nslookup ns.bandungselatan-master.sch.id
#nslookup www.bandungselatan1-master.sch.id
Kemudian tes di pc client ke dns slave dan dns master, dengan perintah :
# ping 202.100.4.65
# ping 222.222.222.1
#nslookup ns.bandungselatan-master.sch.id
#nslookup ns.bandungselatan1.sch.id
Jika ada jawaban, maka DNS Server telah terkoneksi dengan baik.
Konfigurasi di PC Server DNS Master :
Langkah pertama Konfigurasi IP Address
# vim /etc/network/interfaces
auto eth0
iface eth0 inet static
address 222.222.222.1
netmask 255.255.255.0
network 222.222.222.0
broadcast 222.222.222.255
(save :wq! (bila dalam kondisi sedang mengedit “insert” ketik dahulu “esc” untuk keluar))
restart network dengan perintah :
# /etc/init.d/networking restart
Selanjutnya edit file named.conf.default-zones, dengan perintah :
# vim /etc/bind/named.conf.default-zones
Tambahkan pada baris terakhir :
zone “bandungselatan-master.sch.id” {
type master;
file “/etc/bind/db.master.zone”;
allow-query {
any;
};
notify yes;
allow-update {
222.222.222.11;
};
};
zone “222.222.222.in-addr.arpa” {
type master;
file “/etc/bind/db.master.rev”;
allow-query {
any;
};
notify yes;
allow-update {
222.222.222.11;
};
};
(save :wq! (bila dalam kondisi sedang mengedit “insert” ketik dahulu “esc” untuk keluar))
Selanjutnya membuat file zona untuk domain db.master.zone. Copykan file /etc/bind/db.local ke /etc/bind/db.master.zone dengan perintah :
# cp /etc/bind/db.local /etc/bind/db.master.zone
Setelah itu ketikan perintah dibawah, setelah masuk ke dalam db.master.zone lalu edit :
# vim /etc/bind/db.master.zone
$TTL 86400
@ IN SOA ns.bandungselatan-master.sch.id. root.bandungselatan-master.sch.id. (
2010020531 ; serial
7200 ; refresh
14400 ; retry
3200 ; expire
86400 ) ; ttl
@ IN NS ns.bandungselatan-master.sch.id.
ns IN A 222.222.222.1
www IN CNAME ns
mail IN CNAME ns
slave IN A 222.222.222.11
(save :wq! (bila dalam kondisi sedang mengedit “insert” ketik dahulu “esc” untuk keluar))
Selanjutnya membuat file revers dengan nama file db.master.rev. Copykan dari file /etc/bind/db.master.zone ke /etc/bind/db.master.rev dengan perintah :
# cp /etc/bind/db.master.zone /etc/bind/db.master.rev
Setelah itu ketikan perintah dibawah, setelah masuk ke dalam db.master.rev lalu edit :
# vim /etc/bind/db.master.rev
$TTL 86400
@ IN SOA ns.bandungselatan-master.sch.id. root.bandungselatan-master.sch.id. (
2010020531 ; serial
7200 ; refresh
14400 ; retry
3200 ; expire
86400 ) ; ttl
@ IN NS ns. bandungselatan -master.sch.id.
1 IN PTR ns. bandungselatan -master.sch.id.
1 IN PTR www. bandungselatan -master.sch.id.
1 IN PTR mail. bandungselatan -master.sch.id.
11 IN PTR slave. bandungselatan -master.sch.id.
(save :wq! (bila dalam kondisi sedang mengedit “insert” ketik dahulu “esc” untuk keluar))
Kemudian edit file /etc/resolv.conf, file ini berfungsi mendefinisikan IP DNS Server, gunakan perintah :
# vim /etc/resolv.conf
nameserver 222.222.222.1
search bandungselatan -master.sch.id
Kemudian restart DNS dengan perintah :
# /etc/init.d/bind9 restart

Jumat, 02 Desember 2011

Install User Manager Mikrotik

Apa itu User Manager MikroTik ??
User manager adalah suatu aplikasi manajemen system di dalam mikrotik yang juga berfungsi sebagai radius server yang dapat digunakan untuk :
* HotSpot users;
* PPP (PPtP/PPPoE) users;
* DHCP users;
* Wireless users;
* RouterOS users.
Tidak semua paket routerOS sudah terinstall user manager. Anda dapat men download user manager disitus resmi mikrotik.
Download User Manager
Sesuaikan paket yang anda download dengan routeros dan platform yang anda gunakan. Jika anda menggunakan routerOS versi 3.30 maka user manager yang akan anda install juga harus versi 3.30
Untuk melihat versi routeros dan user manager apa sudah terinstall atau belum, bisa dilihat di wibox.
Klik menu System -> Packages


Jika anda punya mikrotik yang di install di PC kemudian anda ingin meng install user manager, maka system yang harus anda pilih adalah PC/x86.

Dalam tutorial kali ini sayah akan menginstall User Manager pada RouterOS versi 4.5 di RouterBoard 450.
Silahkan download paket yang sesuai dengan versi routerOS anda. Contoh RB400 series, pada software type pilih yang All Version. kemudian pilih versi yang sesuai dengan routeros anda, selanjutnya klik All Packages

Setelah di download kemudian extract. Yang kita butuhkan hanyalah user-manager-4.13-mipsbe.npk karena untuk paket-paket lainnya biasanya sudah terinstall di dalam mikrotik.
Install User Manager ke dalam Mikrotik.
Untuk menginstall user manager ke mikrotik caranya cukup gampang, bisa menggunakan FTP atau bisa juga dengan cara DRAG AND DROP. dalam tutorial ini sayah pilih cara yang paling gampang yaitu drag and drop.
Caranya,
Buka paket yang sudah di ekstak di windows explorer kemudian
Pada winbox anda klik menu Files.
Selanjutnya DRAG user-manager-4.5-mipsbe.npk ke File list di winbox. Jika proses upload berhasil, maka paket user manager sudah masuk di jendela file list winbox.

Setelah proses upload selesai, silahkan Reboot mikrotik anda dengan cara klik menu System -> Reboot agar paket yang kita upload barusan langsung di install oleh mikrotik.
Untuk memastikan user manager sudah ter install apa belum di mikrotik kita, klik menu System -> Packages pada jenelan winbox anda. Pastikan paket user-manager sudah nongkrong di Package List mikrotik routerOS anda.

Untuk konfigurasi user manager yang sudah kita install, kita bisa dengan cara memanggil IP mikrotik dari browser. Misal IP mikrotik saya 192.168.10.1
http://192.168.10.1/userman
Halaman login user manager, masukan user admin dan password kosong.

Setelah login akan tampil halaman utama user manager, disini kita bisa mengatur user baik user HotSpot, PPP (PPtP/PPPoE), DHCP, Wireless maupun RouterOS users. User manager sekaligus berfungsi sebagai internal radius server.
Kebanyakan orang menggunakan user manager sebagai radius server hotspot mikrotik, dengan user manager maka pengelolaan user akan lebih mudah, dengan user manager bisa juga digunakan untuk membuat voucher hotspot mikrotik. Cara setting radius dan hostspot mikrotik sudah sayah bahas pada tutorial sebelumnya.

Sumber : Copas dari Nada Sumbang Blogspot

Server Radius Mikrotik

Jika kita ingin membuat Radius Server internal di dalam Mikrotik, maka kita harus mengaktifkan radius servernya terlebih dahulu, kemudian pastikan package usermanager sudah terdapat dalam routerOS anda.

Pastikan anda sudah men centang Use RADIUS pada hotspot server profile.
Klik IP -> Hotspot -> pilih Tab Server Profiles
Klik 2x nama hotspot anda, kemudian pada tab RADIUS beri tanda centang tulisan Use RADIUS. Jika sudah klik OK.

Selanjutnya buka Radius dengan cara Klik Menu Radius di winbox kemudian klik tanda plus merah untuk membuat radius.
Isikan data-data sebagai berikut :
Service -> pilih hotspot
Address -> masukan IP address server radius anda, dalam hal ini saya memasukan IP source Internet saya.
Secret -> masukan password terserah kita bebas yang penting sama dengan yang akan kita masukan nanti di user manager
Click Apply

Jika semuanya sudah dikonfigurasi, kita bisa langsung membuka user manager melalui web browser dengan mengetikan http://ip-mikrotikanda/userman dalam contoh saya masukan http://192.168.101.114/userman
Akan keluar tampilan seperti dibawah ini
Selanjutnya masukan user : admin dan password dikosongkan saja

pilih router -> add router kemudian masukan data IP dan secret sesuai dengan yang kita masukan radius mikrotik.

pilih user-> add user kemudian masukan user yang ingin anda izinkan untuk mengakses hotspot anda.

pilih customers-> add customers kemudian masukan user yang ingin anda izinkan untuk mengakses usermanager.

Untuk memastikan radius server anda sudah berjalan apa belum silakan akses internet dengan memasukan user dan password yang sudah di generate pada lagin page hotspot anda, jika berhasil berarti radius server anda sudah berjalan dengan benar, akan tetapi jika radius server anda belum berjalan dengan baik maka ketika anda menekan tombil login maka akan keluar Radius Server not responding.
Kita juga bisa membuat voucher di menu user yang akan digenerate secara otomatis, bisa menentukan prefix user sendiri agar bisa membedakan antara user yang digenerate sesuai keinginan kita.

Minggu, 27 November 2011

Jenis-jenis pengkabelan pada LAN

Jenis-jenis pengkabelan pada LAN

Ada dua macam type pengkabelan pada jaringan LAN. Yaitu Straight dan Cross.
Straight

Pengkabelan jenis ini digunakan untuk menghubungkan banyak (lebih dari 2) komputer, dan melewati Switch Hub untuk koneksi antar komputer. Jadi jika Anda mempunyai 3 komputer yang ingin di hubungkan satu sama lain, anda harus menggunakan pengkabelan jenis ini dan membutuhkan Switch hub sebagai terminal.
Pada type ini susunan kabel pada ujung satu dengan ujung lainnnya harus sama. Dengan standard peletakan warna kabel seperti yang di tunjukkan pada gambar disamping. Susunannya mulai dari kiri yaitu warna Putih Oranye (PO), Oranye (O), Putih Hijau (PH), Biru (B), Putih Biru (PB), Hijau (H), Putih Coklat (PC), Coklat (C). Dan pada ujung yang satunya susunan nya juga sama.
Cross

Untuk pengkabelan jenis ini, digunakan hanya untuk menghubungkan 2 komputer saja. Jadi untuk menghemat, kita tidah perlu membeli switch hub lagi untuk menghubungkan 2 komputer. Cukup menggunakan kabel jenis ini, 2 komputer kita sudah bisa terhubung.
Susunan pengkabelannya standard bisa di lihat seperti gambar di samping, yaitu pada ujung yang satu dimulai dari kiri dengan warna Putih Hijau (PH), Hijau (H), Putih Oranye (PO), Biru (B), Putih Biru (PB), Oranye (O), Putih Coklat (PC), Coklat (C). Dan pada ujung yang lainnya yaitu Putih Oranye (PO), Oranye (O), Putih Hijau (PH), Biru (B), Putih Biru (PB), Hijau (H), Putih Coklat (PC), Coklat (C). Untuk mengingatnya lebih mudah, bisa dengan nomor urutnya saja. yaitu penukaran posisi berikut
PO 1 —– 3 PH
O 2 —– 6 H
PH 3 —– 1 PO
B 4 —– 4 B
PB 5 —– 5 PB
H 6 —– 2 O
PC 7 —– 7 PC
C 8 —– 8 C
Teori pengkabelan sudah selesai, sekarang saatnya untuk memasukkan susunan kabel tersebut pada RJ 45 Connector. Lalu gunakan crimping tool (tang crimping) untuk menyatukan kabel dengan rj 45 connector tersebut. Jika sudah cobalah terlebih dahulu kabel tersebut sebelum di tancapkan pada CPU dan Switch HUB. Jika kabel sudah OK, saatnya anda untuk mengkonfigurasi komputer anda (IP Addressing) supaya komputer anda bisa benar benar terhubung.

Pengertian TCP/IP

Pengertian TCP/IP

TCP/IP (singkatan dari Transmission Control Protocol/Internet Protocol) adalah standar komunikasi data yang digunakan oleh komunitas internet dalam proses tukar-menukar data dari satu komputer ke komputer lain di dalam jaringan Internet. Protokol ini tidaklah dapat berdiri sendiri, karena memang protokol ini berupa kumpulan protokol (protocol suite). Protokol ini juga merupakan protokol yang paling banyak digunakan saat ini. Data tersebut diimplementasikan dalam bentuk perangkat lunak (software) di sistem operasi. Istilah yang diberikan kepada perangkat lunak ini adalah TCP/IP stack
Protokol TCP/IP dikembangkan pada akhir dekade 1970-an hingga awal 1980-an sebagai sebuah protokol standar untuk menghubungkan komputer-komputer dan jaringan untuk membentuk sebuah jaringan yang luas (WAN). TCP/IP merupakan sebuah standar jaringan terbuka yang bersifat independen terhadap mekanisme transport jaringan fisik yang digunakan, sehingga dapat digunakan di mana saja. Protokol ini menggunakan skema pengalamatan yang sederhana yang disebut sebagai alamat IP (IP Address) yang mengizinkan hingga beberapa ratus juta komputer untuk dapat saling berhubungan satu sama lainnya di Internet. Protokol ini juga bersifat routable yang berarti protokol ini cocok untuk menghubungkan sistem-sistem berbeda (seperti Microsoft Windows dan keluarga UNIX) untuk membentuk jaringan yang heterogen.
Protokol TCP/IP selalu berevolusi seiring dengan waktu, mengingat semakin banyaknya kebutuhan terhadap jaringan komputer dan Internet. Pengembangan ini dilakukan oleh beberapa badan, seperti halnya Internet Society (ISOC), Internet Architecture Board (IAB), dan Internet Engineering Task Force (IETF). Macam-macam protokol yang berjalan di atas TCP/IP, skema pengalamatan, dan konsep TCP/IP didefinisikan dalam dokumen yang disebut sebagai Request for Comments (RFC) yang dikeluarkan oleh IETF.
TCP/IP pun mempunyai beberapa layer, layer-layer itu adalah :
  1. IP (internet protocol) yang berperan dalam pentransmisian paket data dari node ke node. IP mendahului setiap paket data berdasarkan 4 byte (untuk versi IPv4) alamat tujuan (nomor IP). Internet authorities menciptakan range angka untuk organisasi yang berbeda. Organisasi menciptakan grup dengan nomornya untuk departemen. IP bekerja pada mesin gateaway yang memindahkan data dari departemen ke organisasi kemudian ke region dan kemudian ke seluruh dunia.
  2. TCP (transmission transfer protocol) berperan didalam memperbaiki pengiriman data yang benar dari suatu klien ke server. Data dapat hilang di tengah-tengah jaringan. TCP dapat mendeteksi error atau data yang hilang dan kemudian melakukan transmisi ulang sampai data diterima dengan benar dan lengkap.
  3. Sockets yaitu merupakan nama yang diberikan kepada subrutin paket yang menyediakan akses ke TCP/IP pada kebanyakan sistem.
Protokol (komputer)
Protokol adalah sebuah aturan atau standar yang mengatur atau mengijinkan terjadinya hubungan, komunikasi, dan perpindahan data antara dua atau lebih titik komputer. Protokol dapat diterapkan pada perangkat keras, perangkat lunak atau kombinasi dari keduanya. Pada tingkatan yang terendah, protokol mendefinisikan koneksi perangkat keras.
Protokol perlu diutamakan pada penggunaan standar teknis, untuk menspesifikasi bagaimana membangun komputer atau menghubungkan peralatan perangkat keras. Protokol secara umum digunakan pada komunikasi real-time dimana standar digunakan untuk mengatur struktur dari informasi untuk penyimpanan jangka panjang.
Sangat susah untuk menggeneralisir protokol dikarenakan protokol memiliki banyak variasi didalam tujuan penggunaanya. Kebanyakan protokol memiliki salah satu atau beberapa dari hal berikut:
  • Melakukan deteksi adanya koneksi fisik atau ada tidaknya komputer atau mesin lainnya.
  • Melakukan metoda “jabat-tangan” (handshaking).
  • Negosiasi berbagai masam karakteristik hubungan.
  • Bagaimana mengawali dan mengakhiri suatu pesan.
  • Bagaimana format pesan yang digunakan.
  • Yang harus dilakukan saat terjadi kerusakan pesan atau pesan yang tidak sempurna.
  • Mendeteksi rugi-rugi pada hubungan jaringan dan langkah-langkah yang dilakukan selanjutnya
  • Mengakhiri suatu koneksi.
Alamat IP
Alamat IP (Internet Protocol Address atau sering disingkat IP) adalah deretan angka biner antar 32-bit sampai 128-bit yang dipakai sebagai alamat identifikasi untuk tiap komputer host dalam jaringan Internet. Panjang dari angka ini adalah 32-bit (untuk IPv4 atau IP versi 4), dan 128-bit (untuk IPv6 atau IP versi 6) yang menunjukkan alamat dari komputer tersebut pada jaringan Internet berbasis TCP/IP.
Sistem pengalamatan IP ini terbagi menjadi dua, yakni:

Pengertian IP Address

  • Alamat IP (Internet Protocol Address atau sering disingkat IP) adalah deretan angka biner antar 32-bit sampai 128-bit yang dipakai sebagai alamat identifikasi untuk tiap komputer host dalam jaringan Internet. Panjang dari angka ini adalah 32-bit (untuk IPv4 atau IP versi 4), dan 128-bit (untuk IPv6 atau IP versi 6) yang menunjukkan alamat dari komputer tersebut pada jaringan Internet berbasis TCP/IP.
  • Internet Assigned Numbers Authority (IANA) yang mengelola alokasi alamat IP global. IANA bekerja bekerja
  • Internet Protocol (IP) address adalah alamat numerik yang ditetapkan untuk sebuah komputer yang berpartisipasi dalam jaringan komputer yang memanfaatkan Internet Protocol untuk komunikasi antara node-nya.
  • Walaupun alamat IP disimpan sebagai angka biner, mereka biasanya ditampilkan agar memudahkan manusia menggunakan notasi, seperti 208.77.188.166 (untuk IPv4), dan 2001: db8: 0:1234:0:567:1:1 (untuk IPv6).
Internet Protocol juga memiliki tugas routing paket data antara jaringan, alamat IP dan menentukan lokasi dari node sumber dan node tujuan dalam topologi dari sistem routing. Untuk tujuan ini, beberapa bit pada alamat IP yang digunakan untuk menunjuk sebuah subnetwork. Jumlah bit ini ditunjukkan dalam notasi CIDR, yang ditambahkan ke alamat IP, misalnya, 208.77.188.166/24.
Sistem pengalamatan IP ini terbagi menjadi dua, yakni:
* IP versi 4 (IPv4)
* IP versi 6 (IPv6)
Pengiriman data dalam jaringan TCP/IP berdasarkan IP address komputer pengirim dan komputer penerima. IP address memiliki dua bagian, yaitu alamat jaringan (network address) dan alamat komputer lokal (host address) dalam sebuah jaringan.
Alamat jaringan digunakan oleh router untuk mencari jaringan tempat sebuah komputer lokal berada, semantara alamat komputer lokal digunakan untuk mengenali sebuah komputer pada jaringan lokal.
1. Alamat IP versi 4
Alamat IP versi 4 (sering disebut dengan Alamat IPv4) adalah sebuah jenis pengalamatan jaringan yang digunakan di dalam protokol jaringan TCP/IP yang menggunakan protokol IP versi 4. Panjang totalnya adalah 32-bit, dan secara teoritis dapat mengalamati hingga 4 miliar host komputer atau lebih tepatnya 4.294.967.296 host di seluruh dunia, jumlah host tersebut didapatkan dari 256 (didapatkan dari 8 bit) dipangkat 4(karena terdapat 4 oktet) sehingga nilai maksimal dari alamt IP versi 4 tersebut adalah 255.255.255.255 dimana nilai dihitung dari nol sehingga nilai nilai host yang dapat ditampung adalah 256x256x256x256=4.294.967.296 host. sehingga bila host yang ada diseluruh dunia melebihi kuota tersebut maka dibuatlah IP versi 6 atau IPv6.
Contoh alamat IP versi 4 adalah 192.168.0.3.
Alamat IPv4 terbagi menjadi beberapa jenis, yakni sebagai berikut:
1. Alamat Unicast, merupakan alamat IPv4 yang ditentukan untuk sebuah antarmuka jaringan yang dihubungkan ke sebuah internetwork IP. Alamat Unicast digunakan dalam komunikasi point-to-point atau one-to-one. Alamat unicast menggunakan kelas A, B, dan C dari kelas-kelas alamat IP yang telah disebutkan sebelumnya.
Dalam RFC 791 alamat Unicast IP versi 4 dibagi ke dalam beberapa kelas, dilihat dari oktet pertamanya, seperti terlihat pada tabel. Sebenarnya yang menjadi pembeda kelas IP versi 4 adalah pola biner yang terdapat dalam oktet pertama (utamanya adalah bit-bit awal/high-order bit), tapi untuk lebih mudah mengingatnya, akan lebih cepat diingat dengan menggunakan representasi desimal.
Kelas Alamat IP     Oktet pertamaTemplate:Br(desimal)     Oktet pertamaTemplate:Br(biner)     Digunakan oleh
Kelas A     1–126     0xxx xxxx     Alamat unicast untuk jaringan skala besar
Kelas B     128–191     1xxx xxxx     Alamat unicast untuk jaringan skala menengah hingga skala besar
Kelas C     192–223     110x xxxx     Alamat unicast untuk jaringan skala kecil
Kelas D     224–239     1110 xxxx     Alamat multicast (bukan alamat unicast)
Kelas E     240–255     1111 xxxx     Direservasikan;umumnya digunakan sebagai alamat percobaan (eksperimen); (bukan alamat unicast)
Kelas A
Alamat-alamat unicast kelas A diberikan untuk jaringan skala besar. Nomor urut bit tertinggi di dalam alamat IP kelas A selalu diset dengan nilai 0 (nol). Tujuh bit berikutnya—untuk melengkapi oktet pertama—akan membuat sebuah network identifier. 24 bit sisanya (atau tiga oktet terakhir) merepresentasikan host identifier. Ini mengizinkan kelas A memiliki hingga 126 jaringan, dan 16,777,214 host tiap jaringannya. Alamat dengan oktet awal 127 tidak diizinkan, karena digunakan untuk mekanisme Interprocess Communication (IPC) di dalam mesin yang bersangkutan.
Kelas B
Alamat-alamat unicast kelas B dikhususkan untuk jaringan skala menengah hingga skala besar. Dua bit pertama di dalam oktet pertama alamat IP kelas B selalu diset ke bilangan biner 10. 14 bit berikutnya (untuk melengkapi dua oktet pertama), akan membuat sebuah network identifier. 16 bit sisanya (dua oktet terakhir) merepresentasikan host identifier. Kelas B dapat memiliki 16,384 network, dan 65,534 host untuk setiap network-nya.
Kelas C
Alamat IP unicast kelas C digunakan untuk jaringan berskala kecil. Tiga bit pertama di dalam oktet pertama alamat kelas C selalu diset ke nilai biner 110. 21 bit selanjutnya (untuk melengkapi tiga oktet pertama) akan membentuk sebuah network identifier. 8 bit sisanya (sebagai oktet terakhir) akan merepresentasikan host identifier. Ini memungkinkan pembuatan total 2,097,152 buah network, dan 254 host untuk setiap network-nya.
Kelas D
Alamat IP kelas D disediakan hanya untuk alamat-alamat IP multicast, sehingga berbeda dengan tiga kelas di atas. Empat bit pertama di dalam IP kelas D selalu diset ke bilangan biner 1110. 28 bit sisanya digunakan sebagai alamat yang dapat digunakan untuk mengenali host. Untuk lebih jelas mengenal alamat ini, lihat pada bagian Alamat Multicast IPv4.
Kelas E
Alamat IP kelas E disediakan sebagai alamat yang bersifat “eksperimental” atau percobaan dan dicadangkan untuk digunakan pada masa depan. Empat bit pertama selalu diset kepada bilangan biner 1111. 28 bit sisanya digunakan sebagai alamat yang dapat digunakan untuk mengenali host.
Kelas Alamat     Nilai oktet pertama     Bagian untuk Network Identifier     Bagian untuk Host Identifier     Jumlah jaringan maksimum     Jumlah host dalam satu jaringan maksimum
Kelas A     1–126     W     X.Y.Z     126     16,777,214
Kelas B     128–191     W.X     Y.Z     16,384     65,534
Kelas C     192–223     W.X.Y     Z     2,097,152     254
Kelas D     224-239     Multicast IP Address     Multicast IP Address     Multicast IP Address     Multicast IP Address
Kelas E     240-255     Dicadangkan; eksperimen     Dicadangkan; eksperimen     Dicadangkan; eksperimen     Dicadangkan; eksperimen
Catatan: Penggunaan kelas alamat IP sekarang tidak relevan lagi, mengingat sekarang alamat IP sudah tidak menggunakan kelas alamat lagi. Pengemban otoritas Internet telah melihat dengan jelas bahwa alamat yang dibagi ke dalam kelas-kelas seperti di atas sudah tidak mencukupi kebutuhan yang ada saat ini, di saat penggunaan Internet yang semakin meluas. Alamat IPv6 yang baru sekarang tidak menggunakan kelas-kelas seperti alamat IPv4. Alamat yang dibuat tanpa mempedulikan kelas disebut juga dengan classless address.
2.Alamat Broadcast, merupakan alamat IPv4 yang didesain agar diproses oleh setiap node IP dalam segmen jaringan yang sama. Alamat broadcast digunakan dalam komunikasi one-to-everyone.
Alamat broadcast IP versi 4 digunakan untuk menyampaikan paket-paket data “satu-untuk-semua”. Jika sebuah host pengirim yang hendak mengirimkan paket data dengan tujuan alamat broadcast, maka semua node yang terdapat di dalam segmen jaringan tersebut akan menerima paket tersebut dan memprosesnya. Berbeda dengan alamat IP unicast atau alamat IP multicast, alamat IP broadcast hanya dapat digunakan sebagai alamat tujuan saja, sehingga tidak dapat digunakan sebagai alamat sumber.
Ada empat buah jenis alamat IP broadcast, yakni network broadcast, subnet broadcast, all-subnets-directed broadcast, dan Limited Broadcast. Untuk setiap jenis alamat broadcast tersebut, paket IP broadcast akan dialamatkan kepada lapisan antarmuka jaringan dengan menggunakan alamat broadcast yang dimiliki oleh teknologi antarmuka jaringan yang digunakan. Sebagai contoh, untuk jaringan Ethernet dan Token Ring, semua paket broadcast IP akan dikirimkan ke alamat broadcast Ethernet dan Token Ring, yakni 0xFF-FF-FF-FF-FF-FF.
a.Network Broadcast
Alamat network broadcast IPv4 adalah alamat yang dibentuk dengan cara mengeset semua bit host menjadi 1 dalam sebuah alamat yang menggunakan kelas (classful). Contohnya adalah, dalam NetID 131.107.0.0/16, alamat broadcast-nya adalah 131.107.255.255. Alamat network broadcast digunakan untuk mengirimkan sebuah paket untuk semua host yang terdapat di dalam sebuah jaringan yang berbasis kelas. Router tidak dapat meneruskan paket-paket yang ditujukan dengan alamat network broadcast.
b.Subnet broadcast
Alamat subnet broadcast adalah alamat yang dibentuk dengan cara mengeset semua bit host menjadi 1 dalam sebuah alamat yang tidak menggunakan kelas (classless). Sebagai contoh, dalam NetID 131.107.26.0/24, alamat broadcast-nya adalah 131.107.26.255. Alamat subnet broadcast digunakan untuk mengirimkan paket ke semua host dalam sebuah jaringan yang telah dibagi dengan cara subnetting, atau supernetting. Router tidak dapat meneruskan paket-paket yang ditujukan dengan alamat subnet broadcast.
Alamat subnet broadcast tidak terdapat di dalam sebuah jaringan yang menggunakan kelas alamat IP, sementara itu, alamat network broadcast tidak terdapat di dalam sebuah jaringan yang tidak menggunakan kelas alamat IP.
c.All-subnets-directed broadcast
Alamat IP ini adalah alamat broadcast yang dibentuk dengan mengeset semua bit-bit network identifier yang asli yang berbasis kelas menjadi 1 untuk sebuah jaringan dengan alamat tak berkelas (classless). Sebuah paket jaringan yang dialamatkan ke alamat ini akan disampaikan ke semua host dalam semua subnet yang dibentuk dari network identifer yang berbasis kelas yang asli. Contoh untuk alamat ini adalah untuk sebuah network identifier 131.107.26.0/24, alamat all-subnets-directed broadcast untuknya adalah 131.107.255.255. Dengan kata lain, alamat ini adalah alamat jaringan broadcast dari network identifier alamat berbasis kelas yang asli. Dalam contoh di atas, alamat 131.107.26.0/24 yang merupakan alamat kelas B, yang secara default memiliki network identifer 16, maka alamatnya adalah 131.107.255.255.
Semua host dari sebuah jaringan dengan alamat tidak berkelas akan menengarkan dan memproses paket-paket yang dialamatkan ke alamat ini. RFC 922 mengharuskan router IP untuk meneruskan paket yang di-broadcast ke alamat ini ke semua subnet dalam jaringan berkelas yang asli. Meskipun demikian, hal ini belum banyak diimplementasikan.
Dengan banyaknya alamat network identifier yang tidak berkelas, maka alamat ini pun tidak relevan lagi dengan perkembangan jaringan. Menurut RFC 1812, penggunaan alamat jenis ini telah ditinggalkan.
d.Limited broadcast
Alamat ini adalah alamat yang dibentuk dengan mengeset semua 32 bit alamat IP versi 4 menjadi 1 (11111111111111111111111111111111 atau 255.255.255.255). Alamat ini digunakan ketika sebuah node IP harus melakukan penyampaian data secara one-to-everyone di dalam sebuah jaringan lokal tetapi ia belum mengetahui network identifier-nya. Contoh penggunaanya adalah ketika proses konfigurasi alamat secara otomatis dengan menggunakan Boot Protocol (BOOTP) atau Dynamic Host Configuration Protocol (DHCP). Sebagai contoh, dengan DHCP, sebuah klien DHCP harus menggunakan alamat ini untuk semua lalu lintas yang dikirimkan hingga server DHCP memberikan sewaan alamat IP kepadanya.
Semua host, yang berbasis kelas atau tanpa kelas akan mendengarkan dan memproses paket jaringan yang dialamatkan ke alamat ini. Meskipun kelihatannya dengan menggunakan alamat ini, paket jaringan akan dikirimkan ke semua node di dalam semua jaringan, ternyata hal ini hanya terjadi di dalam jaringan lokal saja, dan tidak akan pernah diteruskan oleh router IP, mengingat paket data dibatasi saja hanya dalam segmen jaringan lokal saja. Karenanya, alamat ini disebut sebagai limited broadcast.
3.Alamat Multicast, merupakan alamat IPv4 yang didesain agar diproses oleh satu atau beberapa node dalam segmen jaringan yang sama atau berbeda. Alamat multicast digunakan dalam komunikasi one-to-many.
Alamat IP Multicast (multicast IP address) adalah alamat yang digunakan untuk menyampaikan satu paket kepada banyak penerima. Dalam sebuah intranet yang memiliki alamat multicast IPv4, sebuah paket yang ditujukan ke sebuah alamat multicast akan diteruskan oleh router ke subjaringan di mana terdapat host-host yang sedang berada dalam kondisi “listening” terhadap lalu lintas jaringan yang dikirimkan ke alamat multicast tersebut. Dengan cara ini, alamat multicast pun menjadi cara yang efisien untuk mengirimkan paket data dari satu sumber ke beberapa tujuan untuk beberapa jenis komunikasi. Alamat multicast didefinisikan dalam RFC 1112.
Alamat-alamat multicast IPv4 didefinisikan dalam ruang alamat kelas D, yakni 224.0.0.0/4, yang berkisar dari 224.0.0.0 hingga 239.255.255.255. Prefiks alamat 224.0.0.0/24 (dari alamat 224.0.0.0 hingga 224.0.0.255) tidak dapat digunakan karena dicadangkan untuk digunakan oleh lalu lintas multicast dalam subnet lokal.
Daftar alamat multicast yang ditetapkan oleh IANA dapat dilihat pada situs IANA
Alamat IP lainnya
Jika ada sebuah intranet tidak yang terkoneksi ke internet, semua alamat IP dapat digunakan. Jika koneksi dilakukan secara langsung (dengan menggunakan teknik routing) atau secara tidak langsung (dengan menggunakan proxy server), maka ada dua jenis alamat yang dapat digunakan di dalam internet, yaitu public address (alamat publik) dan private address (alamat pribadi).
1.Alamat publik
alamat publik adalah alamat-alamat yang telah ditetapkan oleh InterNIC dan berisi beberapa buah network identifier yang telah dijamin unik (artinya, tidak ada dua host yang menggunakan alamat yang sama) jika intranet tersebut telah terhubung ke Internet.
Ketika beberapa alamat publik telah ditetapkan, maka beberapa rute dapat diprogram ke dalam sebuah router sehingga lalu lintas data yang menuju alamat publik tersebut dapat mencapai lokasinya. Di internet, lalu lintas ke sebuah alamat publik tujuan dapat dicapai, selama masih terkoneksi dengan internet.
2.Alamat ilegal
Intranet-intranet pribadi yang tidak memiliki kemauan untuk mengoneksikan intranetnya ke internet dapat memilih alamat apapun yang mereka mau, meskipun menggunakan alamat publik yang telah ditetapkan oleh InterNIC. Jika sebuah organisasi selanjutnya memutuskan untuk menghubungkan intranetnya ke internet, skema alamat yang digunakannya mungkin dapat mengandung alamat-alamat yang mungkin telah ditetapkan oleh InterNIC atau organisasi lainnya. Alamat-alamat tersebut dapat menjadi konflik antara satu dan lainnya, sehingga disebut juga dengan illegal address, yang tidak dapat dihubungi oleh host lainnya.
3.Alamat Privat
Setiap node IP membutuhkan sebuah alamat IP yang secara global unik terhadap internetwork IP. Pada kasus internet, setiap node di dalam sebuah jaringan yang terhubung ke internet akan membutuhkan sebuah alamat yang unik secara global terhadap internet. Karena perkembangan internet yang sangat amat pesat, organisasi-organisasi yang menghubungkan intranet miliknya ke internet membutuhkan sebuah alamat publik untuk setiap node di dalam intranet miliknya tersebut. Tentu saja, hal ini akan membutuhkan sebuah alamat publik yang unik secara global.
Ketika menganalisis kebutuhan pengalamatan yang dibutuhkan oleh sebuah organisasi, para desainer internet memiliki pemikiran yaitu bagi kebanyakan organisasi, kebanyakan host di dalam intranet organisasi tersebut tidak harus terhubung secara langsung ke internet. Host-host yang membutuhkan sekumpulan layanan internet, seperti halnya akses terhadap web atau e-mail, biasanya mengakses layanan internet tersebut melalui gateway yang berjalan di atas lapisan aplikasi seperti proxy server atau e-mail server. Hasilnya, kebanyakan organisasi hanya membutuhkan alamat publik dalam jumlah sedikit saja yang nantinya digunakan oleh node-node tersebut (hanya untuk proxy, router, firewall, atau translator) yang terhubung secara langsung ke internet.
Untuk host-host di dalam sebuah organisasi yang tidak membutuhkan akses langsung ke internet, alamat-alamat IP yang bukan duplikat dari alamat publik yang telah ditetapkan mutlak dibutuhkan. Untuk mengatasi masalah pengalamatan ini, para desainer internet mereservasikan sebagian ruangan alamat IP dan menyebut bagian tersebut sebagai ruangan alamat pribadi. Sebuah alamat IP yang berada di dalam ruangan alamat pribadi tidak akan digunakan sebagai sebuah alamat publik. Alamat IP yang berada di dalam ruangan alamat pribadi dikenal juga dengan alamat pribadi. Karena di antara ruangan alamat publik dan ruangan alamat pribadi tidak saling melakukan overlapping, maka alamat pribadi tidak akan menduplikasi alamat publik, dan tidak pula sebaliknya.
Ruangan alamat pribadi yang ditentukan di dalam RFC 1918 didefinisikan di dalam tiga blok alamat berikut:
* 10.0.0.0/8
* 172.16.0.0/12
* 192.168.0.0/16
a.10.0.0.0/8
Jaringan pribadi (private network) 10.0.0.0/8 merupakan sebuah network identifier kelas A yang mengizinkan alamat IP yang valid dari 10.0.0.1 hingga 10.255.255.254. Private network 10.0.0.0/8 memiliki 24 bit host yang dapat digunakan untuk skema subnetting di dalam sebuah organisasi privat.
b.172.16.0.0/12
Jaringan pribadi 172.16.0.0/12 dapat diinterpretasikan sebagai sebuah block dari 16 network identifier kelas B atau sebagai sebuah ruangan alamat yang memiliki 20 bit yang dapat ditetapkan sebagai host identifier, yang dapat digunakan dengan menggunakan skema subnetting di dalam sebuah organisasi privat. Alamat jaringan privat 17.16.0.0/12 mengizinkan alamat-alamat IP yang valid dari 172.16.0.1 hingga 172.31.255.254.
c.192.168.0.0/16
Jaringan pribadi 192.168.0.0/16 dapat diinterpretasikan sebagai sebuah block dari 256 network identifier kelas C atau sebagai sebuah ruangan alamat yang memiliki 16 bit yang dapat ditetapkan sebagai host identifier yang dapat digunakan dengan menggunakan skema subnetting apapun di dalam sebuah organisasi privat. Alamat private network 192.168.0.0/16 dapat mendukung alamat-alamat IP yang valid dari 192.168.0.1 hingga 192.168.255.254.
d.169.254.0.0/16
Alamat jaringan ini dapat digunakan sebagai alamat privat karena memang IANA mengalokasikan untuk tidak menggunakannya. Alamat IP yang mungkin dalam ruang alamat ini adalah 169.254.0.1 hingga 169.254.255.254, dengan alamat subnet mask 255.255.0.0. Alamat ini digunakan sebagai alamat IP privat otomatis (dalam Windows, disebut dengan Automatic Private Internet Protocol Addressing (APIPA)).
Hasil dari penggunaan alamat-alamat privat ini oleh banyak organisasi adalah menghindari kehabisan dari alamat publik, mengingat pertumbuhan internet yang sangat pesat.
Karena alamat-alamat IP di dalam ruangan alamat pribadi tidak akan ditetapkan oleh Internet Network Information Center (InterNIC) (atau badan lainnya yang memiliki otoritas) sebagai alamat publik, maka tidak akan pernah ada rute yang menuju ke alamat-alamat pribadi tersebut di dalam router internet. Kompensasinya, alamat pribadi tidak dapat dijangkau dari internet. Oleh karena itu, semua lalu lintas dari sebuah host yang menggunakan sebuah alamat pribadi harus mengirim request tersebut ke sebuah gateway (seperti halnya proxy server), yang memiliki sebuah alamat publik yang valid, atau memiliki alamat pribadi yang telah ditranslasikan ke dalam sebuah alamat IP publik yang valid dengan menggunakan Network Address Translator (NAT) sebelum dikirimkan ke internet.
Format Paket IPv4
Paket-paket data dalam protokol IP dikirimkan dalam bentuk datagram. Sebuah datagram IP terdiri atas header IP dan muatan IP (payload). Header IP menyediakan dukungan untuk memetakan jaringan (routing), identifikasi muatan IP, ukuran header IP dan datagram IP, dukungan fragmentasi, dan juga IP Options. Sedangkan payload IP berisi informasi yang dikirimkan. Payload IP memiliki ukuran bervariasi, berkisar dari 8 byte hingga 65515 byte. Sebelum dikirimkan di dalam saluran jaringan, datagram IP akan “dibungkus” (encapsulation) dengan header protokol lapisan antarmuka jaringan dan trailer-nya, untuk membuat sebuah frame jaringan. Setiap datagram terdiri dari beberapa field yang memiliki fungsi tersendiri dan memiliki informasi yang berbeda – beda. Pada gambar di bawah ini . dapat dilihat struktur dari paket IPv4
Header IP terdiri atas beberapa field sebagai berikut:
a. Version. Digunakan untuk mengindikasikan versi dari header IP yang digunakan
b. Internet Header Length. Digunakan untuk mengindikasikan ukuran header IP.
c. Type of Service. Field ini digunakan untuk menentukan kualitas transmisi dari sebuah datagram IP.
d. Total Length. Merupakan panjang total dari datagram IP, yang mencakup header IP dan muatannya.
e. Identification. Digunakan untuk mengidentifikasikan sebuah paket IP tertentu yang akan difragmentasi..
f. Flags. Berisi dua buah flag yang berisi apakah sebuah datagram IP mengalami fragmentasi atau tidak.
* · Bit 0 = reserved, diisi 0.
* · Bit 1 = bila 0 bisa difragmentasi, bila 1 tidak dapat difragmentasi.
* · Bit 1 = bila 0 fragmentasi berakhir, bila 1 ada fragmentasi lagi.
g. Fragment Offset. Digunakan untuk mengidentifikasikan offset di mana fragmen yang bersangkutan dimulai, dihitung dari permulaan muatan IP yang belum dipecah.
h. Time to Live. Digunakan untuk mengidentifikasikan berapa banyak saluran jaringan di mana sebuah datagram IP dapat berjalan-jalan sebelum sebuah router mengabaikan datagram tersebut.
i. Protocol. Digunakan untuk mengidentifikasikan jenis protokol lapisan yang lebih tinggi yang dikandung oleh muatan IP.
J.Header Checksum. Field ini berguna hanya untuk melakukan pengecekan
integritas terhadap header IP.
k. Source IP Address. Mengandung alamat IP dari sumber host yang mengirimkan datagram IP tersebut.
l. Destination IP Address. Mengandung alamat IP tujuan ke mana datagram IP tersebut akan disampaikan,
Alamat IP versi 6
Berbeda dengan IPv4 yang hanya memiliki panjang 32-bit (jumlah total alamat yang dapat dicapainya mencapai 4,294,967,296 alamat), IPv6 memiliki panjang 128-bit. IPv4, meskipun total alamatnya mencapai 4 miliar, pada kenyataannya tidak sampai 4 miliar alamat, karena ada beberapa limitasi, sehingga implementasinya saat ini hanya mencapai beberapa ratus juta saja. IPv6, yang memiliki panjang 128-bit, memiliki total alamat yang mungkin hingga 2128=3,4 x 1038 alamat. Total alamat yang sangat besar ini bertujuan untuk menyediakan ruang alamat yang tidak akan habis (hingga beberapa masa ke depan), dan membentuk infrastruktur routing yang disusun secara hierarkis, sehingga mengurangi kompleksitas proses routing dan tabel routing.
Sama seperti halnya IPv4, IPv6 juga mengizinkan adanya DHCP Server sebagai pengatur alamat otomatis. Jika dalam IPv4 terdapat dynamic address dan static address, maka dalam IPv6, konfigurasi alamat dengan menggunakan DHCP Server dinamakan dengan stateful address configuration, sementara jika konfigurasi alamat IPv6 tanpa DHCP Server dinamakan dengan stateless address configuration.
Seperti halnya IPv4 yang menggunakan bit-bit pada tingkat tinggi (high-order bit) sebagai alamat jaringan sementara bit-bit pada tingkat rendah (low-order bit) sebagai alamat host, dalam IPv6 juga terjadi hal serupa. Dalam IPv6, bit-bit pada tingkat tinggi akan digunakan sebagai tanda pengenal jenis alamat IPv6, yang disebut dengan Format Prefix (FP). Dalam IPv6, tidak ada subnet mask, yang ada hanyalah Format Prefix.
Pengalamatan IPv6 didefinisikan dalam RFC 2373.
Format Alamat
Dalam IPv6, alamat 128-bit akan dibagi ke dalam 8 blok berukuran 16-bit, yang dapat dikonversikan ke dalam bilangan heksadesimal berukuran 4-digit. Setiap blok bilangan heksadesimal tersebut akan dipisahkan dengan tanda titik dua (:). Karenanya, format notasi yang digunakan oleh IPv6 juga sering disebut dengan colon-hexadecimal format, berbeda dengan IPv4 yang menggunakan dotted-decimal format.
Berikut ini adalah contoh alamat IPv6 dalam bentuk bilangan biner:
00100001110110100000000011010011000000000000000000101111001110110000001010101010000000001111111111111110001010001001110001011010
Untuk menerjemahkannya ke dalam bentuk notasi colon-hexadecimal format, angka-angka biner di atas harus dibagi ke dalam 8 buah blok berukuran 16-bit:
0010000111011010 0000000011010011 0000000000000000 0010111100111011 0000001010101010 0000000011111111 1111111000101000 1001110001011010
Lalu, setiap blok berukuran 16-bit tersebut harus dikonversikan ke dalam bilangan heksadesimal dan setiap bilangan heksadesimal tersebut dipisahkan dengan menggunakan tanda titik dua. Hasil konversinya adalah sebagai berikut:
21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A
Penyederhanaan bentuk alamat
Alamat di atas juga dapat disederhanakan lagi dengan membuang angka 0 pada awal setiap blok yang berukuran 16-bit di atas, dengan menyisakan satu digit terakhir. Dengan membuang angka 0, alamat di atas disederhanakan menjadi:
21DA:D3:0:2F3B:2AA:FF:FE28:9C5A
Konvensi pengalamatan IPv6 juga mengizinkan penyederhanaan alamat lebih jauh lagi, yakni dengan membuang banyak karakter 0, pada sebuah alamat yang banyak angka 0-nya. Jika sebuah alamat IPv6 yang direpresentasikan dalam notasi colon-hexadecimal format mengandung beberapa blok 16-bit dengan angka 0, maka alamat tersebut dapat disederhanakan dengan menggunakan tanda dua buah titik dua (::). Untuk menghindari kebingungan, penyederhanaan alamat IPv6 dengan cara ini sebaiknya hanya digunakan sekali saja di dalam satu alamat, karena kemungkinan nantinya pengguna tidak dapat menentukan berapa banyak bit 0 yang direpresentasikan oleh setiap tanda dua titik dua (::) yang terdapat dalam alamat tersebut. Tabel berikut mengilustrasikan cara penggunaan hal ini.
Alamat asli     Alamat asli yang disederhanakan     Alamat setelah dikompres
FE80:0000:0000:0000:02AA:00FF:FE9A:4CA2     FE80:0:0:0:2AA:FF:FE9A:4CA2     FE80::2AA:FF:FE9A:4CA2
FF02:0000:0000:0000:0000:0000:0000:0002     FF02:0:0:0:0:0:0:2     FF02::2
Untuk menentukan berapa banyak bit bernilai 0 yang dibuang (dan digantikan dengan tanda dua titik dua) dalam sebuah alamat IPv6, dapat dilakukan dengan menghitung berapa banyak blok yang tersedia dalam alamat tersebut, yang kemudian dikurangkan dengan angka 8, dan angka tersebut dikalikan dengan 16. Sebagai contoh, alamat FF02::2 hanya mengandung dua blok alamat (blok FF02 dan blok 2). Maka, jumlah bit yang dibuang adalah (8-2) x 16 = 96 buah bit.
Format Prefix
Dalam IPv4, sebuah alamat dalam notasi dotted-decimal format dapat direpresentasikan dengan menggunakan angka prefiks yang merujuk kepada subnet mask. IPv6 juga memiliki angka prefiks, tapi tidak didugnakan untuk merujuk kepada subnet mask, karena memang IPv6 tidak mendukung subnet mask.
Prefiks adalah sebuah bagian dari alamat IP, di mana bit-bit memiliki nilai-nilai yang tetap atau bit-bit tersebut merupakan bagian dari sebuah rute atau subnet identifier. Prefiks dalam IPv6 direpesentasikan dengan cara yang sama seperti halnya prefiks alamat IPv4, yaitu [alamat]/[angka panjang prefiks]. Panjang prefiks mementukan jumlah bit terbesar paling kiri yang membuat prefiks subnet. Sebagai contoh, prefiks sebuah alamat IPv6 dapat direpresentasikan sebagai berikut:
3FFE:2900:D005:F28B::/64
Pada contoh di atas, 64 bit pertama dari alamat tersebut dianggap sebagai prefiks alamat, sementara 64 bit sisanya dianggap sebagai interface ID.
Jenis-jenis Alamat IPv6
IPv6 mendukung beberapa jenis format prefix, yakni sebagai berikut:
* Alamat Unicast, yang menyediakan komunikasi secara point-to-point, secara langsung antara dua host dalam sebuah jaringan.
* Alamat Multicast, yang menyediakan metode untuk mengirimkan sebuah paket data ke banyak host yang berada dalam group yang sama. Alamat ini digunakan dalam komunikasi one-to-many.
* Alamat Anycast, yang menyediakan metode penyampaian paket data kepada anggota terdekat dari sebuah group. Alamat ini digunakan dalam komunikasi one-to-one-of-many. Alamat ini juga digunakan hanya sebagai alamat tujuan (destination address) dan diberikan hanya kepada router, bukan kepada host-host biasa.
Jika dilihat dari cakupan alamatnya, alamat unicast dan anycast terbagi menjadi alamat-alamat berikut:
* Link-Local, merupakan sebuah jenis alamat yang mengizinkan sebuah komputer agar dapat berkomunikasi dengan komputer lainnya dalam satu subnet.
* Site-Local, merupakan sebuah jenis alamat yang mengizinkan sebuah komputer agar dapat berkomunikasi dengan komputer lainnya dalam sebuah intranet.
* Global Address, merupakan sebuah jenis alamat yang mengizinkan sebuah komputer agar dapat berkomunikasi dengan komputer lainnya dalam Internet IPv6.
Sementara itu, cakupan alamat multicast dimasukkan ke dalam struktur alamat.
Unicast Address
Alamat unicast IPv6 dapat diimplementasikan dalam berbagai jenis alamat, yakni:
* Alamat unicast global
* Alamat unicast site-local
* Alamat unicast link-local
* Alamat unicast yang belum ditentukan (unicast unspecified address)
* Alamat unicast loopback
* Alamat Unicast 6to4
* Alamat Unicast ISATAP
Unicast global addresses
Alamat unicast global IPv6 mirip dengan alamat publik dalam alamat IPv4. Dikenal juga sebagai Aggregatable Global Unicast Address. Seperti halnya alamat publik IPv4 yang dapat secara global dirujuk oleh host-host di Internet dengan menggunakan proses routing, alamat ini juga mengimplementasikan hal serupa. Struktur alamat IPv6 unicast global terbagi menjadi topologi tiga level (Public, Site, dan Node).
Field     Panjang     Keterangan
001     3 bit     Berfungsi sebagai tanda pengenal alamat, bahwa alamat ini adalah sebuah alamat IPv6 Unicast Global.
Top Level Aggregation Identifier (TLA ID)     13 bit     Berfungsi sebagai level tertinggi dalam hierarki routing. TLA ID diatur oleh Internet Assigned Name Authority (IANA), yang mengalokasikannya ke dalam daftar Internet registry, yang kemudian mengolasikan sebuah TLA ID ke sebuah ISP global.
Res     8 bit     Direservasikan untuk penggunaan pada masa yang akan datang (mungkin untuk memperluas TLA ID atau NLA ID).
Next Level Aggregation Identifier (NLA ID)     24 bit     Berfungsi sebagai tanda pengenal milik situs (site) kustomer tertentu.
Site Level Aggregation Identifier (SLA ID)     16 bit     Mengizinkan hingga 65536 (216) subnet dalam sebuah situs individu. SLA ID ditetapkan di dalam sebuah site. ISP tidak dapat mengubah bagian alamat ini.
Interface ID     64 bit     Berfungsi sebagai alamat dari sebuah node dalam subnet yang spesifik (yang ditentukan oleh SLA ID).
Unicast site-local addresses
Alamat unicast site-local IPv6 mirip dengan alamat privat dalam IPv4. Ruang lingkup dari sebuah alamat terdapat pada internetwork dalam sebuah site milik sebuah organisasi. Penggunaan alamat unicast global dan unicast site-local dalam sebuah jaringan adalah mungkin. Prefiks yang digunakan oleh alamat ini adalah FEC0::/48.
Field     Panjang     Keterangan
111111101100000000000000000000000000000000000000     48 bit     Nilai ketetapan alamat unicast site-local
Subnet Identifier     16 bit     Mengizinkan hingga 65536 (216) subnet dalam sebuah struktur subnet datar. Administrator juga dapat membagi bit-bit yang yang memiliki nilai tinggi (high-order bit) untuk membuat sebuah infrastruktur routing hierarkis.
Interface Identifier     64 bit     Berfungsi sebagai alamat dari sebuah node dalam subnet yang spesifik.
Unicast link-local address
Alamat unicast link-local adalah alamat yang digunakan oleh host-host dalam subnet yang sama. Alamat ini mirip dengan konfigurasi APIPA (Automatic Private Internet Protocol Addressing) dalam sistem operasi Microsoft Windows XP ke atas. host-host yang berada di dalam subnet yang sama akan menggunakan alamat-alamat ini secara otomatis agar dapat berkomunikasi. Alamat ini juga memiliki fungsi resolusi alamat, yang disebut dengan Neighbor Discovery. Prefiks alamat yang digunakan oleh jenis alamat ini adalah FE80::/64.
Field     Panjang     Keterangan
1111111010000000000000000000000000000000000000000000000000000000     64 bit     Berfungsi sebagai tanda pengenal alamat unicast link-local.
Interface ID     64 bit     Berfungsi sebagai alamat dari sebuah node dalam subnet yang spesifik.
Unicast unspecified address
Alamat Unicast yang belum ditentukan adalah alamat yang belum ditentukan oleh seorang administrator atau tidak menemukan sebuah DHCP Server untuk meminta alamat. Alamat ini sama dengan alamat IPv4 yang belum ditentukan, yakni 0.0.0.0. Nilai alamat ini dalam IPv6 adalah 0:0:0:0:0:0:0:0 atau dapat disingkat menjadi dua titik dua (::).
Unicast Loopback Address
Alamat unicast loopback adalah sebuah alamat yang digunakan untuk mekanisme interprocess communication (IPC) dalam sebuah host. Dalam IPv4, alamat yang ditetapkan adalah 127.0.0.1, sementara dalam IPv6 adalah 0:0:0:0:0:0:0:1, atau ::1.
Unicast 6to4 Address
Alamat unicast 6to4 adalah alamat yang digunakan oleh dua host IPv4 dan IPv6 dalam Internet IPv4 agar dapat saling berkomunikasi. Alamat ini sering digunakan sebagai pengganti alamat publik IPv4. Alamat ini aslinya menggunakan prefiks alamat 2002::/16, dengan tambahan 32 bit dari alamat publik IPv4 untuk membuat sebuah prefiks dengan panjang 48-bit, dengan format 2002:WWXX:YYZZ::/48, di mana WWXX dan YYZZ adalah representasi dalam notasi colon-decimal format dari notasi dotted-decimal format w.x.y.z dari alamat publik IPv4. Sebagai contoh alamat 157.60.91.123 diterjemahkan menjadi 2002:9D3C:5B7B::/48.
Meskipun demikian, alamat ini sering ditulis dalam format IPv6 Unicast global address, 2002:WWXX:YYZZ:SLA ID:Interface ID.
Unicast ISATAP Address
Alamat Unicast ISATAP adalah sebuah alamat yang digunakan oleh dua host IPv4 dan IPv6 dalam sebuah Intranet IPv4 agar dapat saling berkomunikasi. Alamat ini menggabungkan prefiks alamat unicast link-local, alamat unicast site-local atau alamat unicast global (yang dapat berupa prefiks alamat 6to4) yang berukuran 64-bit dengan 32-bit ISATAP Identifier (0000:5EFE), lalu diikuti dengan 32-bit alamat IPv4 yang dimiliki oleh interface atau sebuah host. Prefiks yang digunakan dalam alamat ini dinamakan dengan subnet prefix. Meski alamat 6to4 hanya dapat menangani alamat IPv4 publik saja, alamat ISATAP dapat menangani alamat pribadi IPv4 dan alamat publik IPv4.
Multicast Address
Alamat multicast IPv6 sama seperti halnya alamat multicast pada IPv4. Paket-paket yang ditujukan ke sebuah alamat multicast akan disampaikan terhadap semua interface yang dikenali oleh alamat tersebut. Prefiks alamat yang digunakan oleh alamat multicast IPv6 adalah FF00::/8.
Field     Panjang     Keterangan
1111 1111     8 bit     Tanda pengenal bahwa alamat ini adalah alamat multicast.
Flags     4 bit     Berfungsi sebagai tanda pengenal apakah alamat ini adalah alamat transient atau bukan. Jika nilainya 0, maka alamat ini bukan alamat transient, dan alamat ini merujuk kepada alamat multicast yang ditetapkan secara permanen. Jika nilainya 1, maka alamat ini adalah alamat transient.
Scope     4 bit     Berfungsi untuk mengindikasikan cakupan lalu lintas multicast, seperti halnya interface-local, link-local, site-local, organization-local atau global.
Group ID     112 bit     Berfungsi sebagai tanda pengenal group multicast
Anycast Address
Alamat Anycast dalam IPv6 mirip dengan alamat anycast dalam IPv4, tapi diimplementasikan dengan cara yang lebih efisien dibandingkan dengan IPv4. Umumnya, alamat anycast digunakan oleh Internet Service Provider (ISP) yang memiliki banyak klien. Meskipun alamat anycast menggunakan ruang alamat unicast, tapi fungsinya berbeda daripada alamat unicast.
IPv6 menggunakan alamat anycast untuk mengidentifikasikan beberapa interface yang berbeda. IPv6 akan menyampaikan paket-paket yang dialamatkan ke sebuah alamat anycast ke interface terdekat yang dikenali oleh alamat tersebut. Hal ini sangat berbeda dengan alamat multicast, yang menyampaikan paket ke banyak penerima, karena alamat anycast akan menyampaikan paket kepada salah satu dari banyak penerima.
Perbandingan Alamat IPv6 dan IPv4
Tabel berikut menjelaskan perbandingan karakteristik antara alamat IP versi 4 dan alamat IP versi 6.
Kriteria     Alamat IP versi 4
Alamat IP versi 6
Panjang alamat     32 bit     128 bit
Jumlah total host (teoritis)     232=±4 miliar host     2128
Menggunakan kelas alamat     Ya, kelas A, B, C, D, dan E. Template:BrBelakangan tidak digunakan lagi, mengingat telah tidak relevan dengan perkembangan jaringan Internet yang pesat.     Tidak
Alamat multicast     Kelas D, yaitu 224.0.0.0/4     Alamat multicast IPv6, yaitu FF00:/8
Alamat broadcast     Ada
Tidak ada
Alamat yang belum ditentukan     0.0.0.0     ::
Alamat loopback     127.0.0.1     ::1
Alamat IP publik     Alamat IP publik IPv4, yang ditetapkan oleh otoritas Internet (IANA)     Alamat IPv6 unicast global
Alamat IP pribadi     Alamat IP pribadi IPv4, yang ditetapkan oleh otoritas Internet
Alamat IPv6 unicast site-local (FEC0::/48)
Konfigurasi alamat otomatis     Ya (APIPA)     Alamat IPv6 unicast link-local (FE80::/64)
Representasi tekstual     Dotted decimal format notation     Colon hexadecimal format notation
Fungsi Prefiks     Subnet mask atau panjang prefiks     Panjang prefiks
Resolusi alamat DNS
A Resource Record (Single A)     AAAA Resource Record (Quad A)
sumber: http://www.ittelkom.ac.id dan http://opensource.telkomspeedy.com