ada banyak rasa saat coding. ada keringat dan air mata dalam mencoding. keringat saat kau berusaha menyelami makna dalam setiap ilmu coding. dan air mata disaat tiada orang yang dapat membantumu, ketika program dalam keaadaan bugging. apapun rasa dalam mencoding. cobalah untuk mengerjakan sendiri. sampai kau bisa. dan benar-benar bisa.

Friday 20 February 2015

belajar DNS

Halo sobat coding :)

kali ini kita akan belajar mengenai DNS. apakah DNS itu ? DNS adalah Domain Name Server, yaitu server yang digunakan untuk mengetahui IP Address suatu host lewat host name-nya. Dalam dunia internet, komputer berkomunikasi satu sama lain dengan mengenali IP Address-nya. Namun bagi manusia tidak mungkin menghafalkan IP address tersebut, manusia lebih mudah menghapalkan kata-kata seperti www.yahoo.com, www.google.com, atau www.friendster.com. DNS berfungsi untuk mengkonversi nama yang bisa terbaca oleh manusia ke dalam IP addresshost yang bersangkutan untuk dihubungi.

untuk lebih memahami maksud dari suatu ilmu, disarankan kita mempraktikannya, seperti dalam sebuah filosofi dibawah ini, yang diungkapkan oleh seorang headmaster pada suatu sekolah di Malaysia saat saya membantu ibu bertugas disana :)
"kalau mereka melakukan, mereka akan ingat"
Baiklah, dibawah ini terdapat topologi jaringan baru. dimana terdapat satu buah router bernama Patrick, dua buah switch, dan 8 buah host. diantara 8 buah host ini ada 2 pc nantinya yang akan menjadi server DNS, yaitu Sticth dan Elmo :)

Langkah Pertama adalah ..
membuat topologi nya dalam UML. buka terminal anda, jalankan dengan membuat sebuah script untuk menghidupkan atau menyalakan jaringan virtual tersebut, misalnya mulai.sh
kelihatannya mungkin memang rumit, tapi membentuk topologi virtual adalah hal yang seru.
"Anggap saja kita mempunyai sebuah warnet, dengan komputer-komputer baru. dan disinilah saat kita memberikan alamat IP dan mengesetnya supaya warnet baru kita ini dapat tersambung ke internet"
aturan UML pembuatan  topologi virtual pada router,swicth, dan host sudah pernah saya post pada Membentuk topologi jaringan virtual Anda dapat melihat syntaxnya pada link tersebut. kemudian untuk membuat seperti topologi diatas, ketikkan syntax dibawah ini

#bikin switch

uml_switch -unix iniswitch > /dev/null < /dev/null &

uml_switch -unix ituswitch > /dev/null < /dev/null &

#bikin router

xterm -T Patrick -e  linux ubd0=patrick,uml umid=patrick eth0=tuntap,,,10.151.76.41 mem=48M eth1=daemon,,,iniswitch eth2=daemon,,,ituswitch &

#bikin 8 komputer

xterm -T Snoopy -e linux ubd0=snoopy,uml umid=snoopy mem=50M eth0=daemon,,,iniswitch &

xterm -T WoodStack -e linux ubd0=woodstack,uml umid=woodstack mem=50M eth0=daemon,,,iniswitch &

xterm -T Doraemon -e linux ubd0=doraemon,uml umid=doraemon mem=50M eth0=daemon,,,iniswitch &

xterm -T Stitch -e linux ubd0=stitch,uml umid=stitch mem=50M eth0=daemon,,,iniswitch &

xterm -T Spike -e linux ubd0=spike,uml umid=spike mem=50M eth0=daemon,,,ituswitch &

xterm -T Elmo -e linux ubd0=elmo,uml umid=elmo mem=50M eth0=daemon,,,ituswitch &

xterm -T Jery -e linux ubd0=jery,uml umid=jery mem=50M eth0=daemon,,,ituswitch &

xterm -T Tom -e linux ubd0=tom,uml umid=tom mem=50M eth0=daemon,,,ituswitch &

untuk memberhentikan topologi yang berjalan ini, kita tidak perlu mematikannya satu-satu. kita cukup membuat satu buah script misalnya bernama matikan.sh yang berisi perintah mematikan dari topologi jaringan virtual tersebut
uml_mconsole patrick halt
uml_mconsole snoopy halt
uml_mconsole woodstack halt
uml_mconsole doraemon halt
uml_mconsole spike halt
uml_mconsole elmo halt
uml_mconsole jery halt
uml_mconsole tom halt
uml_mconsole sticth halt
uml_mconsole iniswitch halt
uml_mconsole ituswitch halt

Setelah komputer-komputer virtual tersebut terbentuk, langkah selanjutnya adalah mengeset atau menyeting konfigurasi IP nya pada nano /etc/network/interfaces. pada cara ini, saya menggunakan cara subneting, dimana sebelah kiri topologi menggunakan eth0 yang berIP kan 0, dan sebelah kanan topologi menggunakan eth1 yang berIP kan 1. cara lain adalah dengan menggunakan bridge

interface pada router
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
       address 10.151.76.42
       netmask 255.255.255.0
       gateway 10.151.76.41

auto eth1
iface eth1 inet static
       address 10.151.76.42
       netmask 255.255.255.0
       gateway 10.151.76.41


interface pada sisi belahan kiri (Misal Doraemon)
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
       address 172.16.0.5
       netmask 255.255.255.0
       gateway 172.16.0.5




interface pada sisi belahan kanan (Misal Spike)
auto lo
iface lo inet loopback

auto eth1
iface eth1 inet static
       address 172.16.1.12
       netmask 255.255.255.0
       gateway 172.16.1.12



untuk mengetes koneksi semua host, maka kita coba dengan mengeping satu host dengan host lainnya, atau mengeping router. kemudian untuk mengetes koneksi ke tuntap atau jaringan luar, kita coba dengan mengeping its.ac.id misal ping its.ac.id

Satu domain besar bernama klpxx.jarkom.com, yang ditangain oleh stitch (yang tergabung dalam domain ini adalah selain woodstock & Snoopy). Setelah menginstall pada tempat diatas, sekarang masuk kedalam server Stitch yang menangani domain besar bernama klpxx.jarkom.com. 
suatu domain besar pada Stitch, berarti disini Stitch menjadi server DNS yang beranggotakan semua host kecuali woodstock, snoopy, dan server elmo itu sendiri. Oleh sebab itu pada PC ini kita terlebih dahulu menginstal bind9 dan dnsutils melalui
apt-get install bind9 dnsutills

 kemudian kita buat zonenya melalui nano /etc/bind/named.conf.local
zone "klpc11.jarkom.com"
{
    type master;
    file "/etc/bind/klpc11.jarkom.com.zone";
};
lalu kita setting konfigurasi nya pada nano /etc/bind/klpc11.jarkom.com.zone
untuk mengetes nya kita coba dengan menge-ping pada salah satu host yaitu ping klpc11.jarkom.com. jika berhasil, maka ping akan mengarah kepada IP sticth yaitu (172.16.0.2)


Subdomain kartun.klpxx.jarkom.com, beranggotakan woodstock, yang ditangani oleh Stitch. Komputer woodstock akan bernama woodstock.kartun.klpxx.jarkom.com
disini berarti kita akan membuat sebuah sub domain bernama kartun.klpc11.jarkom.com yang ditangani oleh sticth. kartun ini beranggotakan woodstock, sehingga apabila kita memanggil atau mengeping woodstock.kartun.klpc11.jarkom.com maka akan mengarah kepada IP woodstock, yaitu (172.16.0.4)
berikut adalah konfigurasinya dengan menambahkan zone baru pada sticth

zone "klpc11.jarkom.com"
{
    type master;
    file "/etc/bind/klpc11.jarkom.com.zone";
};
zone "kartun.klpc11.jarkom.com"
{
    type master;
    file "/etc/bind/kartun.klpc11.jarkom.com.zone";
};
sehingga bila ini berhasil, maka saat kita mengeping ping woodstock.kartun.klpc11.jarkom.com maka akan mengarah ke IP woodstock

Subdomain anime.klpxx.jarkom.com, beranggotakan snoopy, yang ditangani oleh elmo. Komputer snoopy akan bernama snoopy.anime.klpxx.jarkom.com
woodstock.kartun.klpxx.jarkom.com akan menjadi slave untuk Anime.klpxx.jarkom.com
sama halnya dengan soal diatas, berarti kita akan membuat suatu subdomain bernama anime.klpc11.jarkom.com yang ditangani oleh server elmo dan beranggotakan snoopy. sedangkan woodstock.kartun.klpc11.jarkom.com akan menjadi slave, dan anime.klpc11.jarkom.com akan menjadi masternya
hakikat master dan slave adalah, ibarat slave harus memiliki atau mengkopy buku telepon yang dimiliki oleh masternya. buku telepon tersebut berisi alamat-alamat dari komputer yang terhubung pada masternya. sehingga apabila server master mati, host lain yang sedang mengeping salah satu host pada master akan tetap bisa terhubung melalui koneksi atau salinan alamat buku telepon yang dimiliki server slave
kita menuju komputer server Elmo dan mengetikkan konfigurasi seperti dibawah ini
zone "klpc11.jarkom.com"
{
    type slave;
    file "/etc/bind/klpc11.jarkom.com.zone";
    masters { 172.16.0.2;};
};
zone "kartun.klpc11.jarkom.com"
{
    type master;
    masters {172.16.0.2};
    file "/etc/bind/kartun.klpc11.jarkom.com.zone";
};

zone "anime.klpc11.jarkom.com"
{
     type master;
file "/etc/bind/anime/anime.klpc11.jarkom.com.zone";
allow-transfer {172.16.0.4;};
};

 kemudian pada komputer woodstock kita juga membuat konfigurasinya sebagai berikut
zone "anime.klpc11.jarkom.com"
{
     type slave;
     file "/etc/bind/anime/anime.klpc11.jarkom.com.zone";
     masters {172.16.1.13;};
};
cara menguji kebenarannya adalah dengan mematikan atau men-halt komputer Elmo, lalu coba mengeping ping snoopy.anime.klpc11.jarkom.com pada salah satu host lainnya, maka host tersebut akan langsung terhubung dengan mendapatkan IP (172.16.0.3) meskipun server master elmo sudah mati.  
Kalau melakukan ping ke admin.klpxx.jarkom.com maka akan mengarah ke Doraemon
jika kita melakukan ping admin.klpc11.jarkom.com maka kita akan diarahkah ke komputer Doraemon. ini berarti kita suatu alias, yaitu dengan menggunakan CNAME.
CNAME Records adalah domain name alias, berfungsi untuk mengarahkan DNS domain anda (atau subdomain) ke nama alias server anda. 
 kita perhatikan baris dari 2 baris terbawah
admin      IN    CNAME     doraemon
berarti kita mendaftarkan, apabila host memanggil admin.klp........... maka akan diarahkan ke komputer doraemon yaitu (172.16.0.5)

Kalau melakukan ping ke dns.klpxx.jarkom.com maka akan mengarah ke Stitch
sama halnya dengan contoh diatas jika kita melakukan ping dns.klpc11.jarkom.com maka kita akan diarahkah ke komputer Sticth. ini berarti kita suatu alias, yaitu dengan menggunakan CNAME.
 kita perhatikan baris dari 1 baris terbawah
dns      IN    CNAME    stitch
berarti kita mendaftarkan, apabila host memanggildns .klp........... maka akan diarahkan ke komputer sticth yaitu (172.16.0.2)

Buatlah ‘load balancing’. Sehingga jika kita ping ke server.klpxx.jarkom.com, maka akan muncul 2 IP server, yaitu IP Stitch dan IP Elmo
sama halnya dengan contoh diatas jika kita melakukan ping server.klpc11.jarkom.com maka kita akan diarahkah ke komputer Sticth dan Elmo.
 kita perhatikan baris dari 3 atau 4 baris terbawah
server      IN    A    172.16.0.2
server      IN    A    172.16.1.13
berarti kita mendaftarkan, apabila host memanggil server.klp........... maka akan diarahkan kepada 2 komputer server tersebut. pada pemanggilan pertama mungkin dapat diarahkah ke komputer stitch misalnya dengan mendapatkan IP (172.16.0.2) dan pada pemanggilan kedua dapat mendapat IP elmo (172.16.1.13), atau sebaliknya.

 sekian, terimakasih :)

No comments: