Jumat, 24 Juni 2016

DNS (Domain Name Server)


Dalam teknologi internet sekarang ini, DNS pun merupakan jantung yang sangat berperan penting. Setiap kali kita meggunakan internet dalam kegiatan kita sehari-hari, maka setiap kali itu pula secara tidak langsung kita menggunakan DNS (Domain Name System). Pengunaan DNS didalam internet tersebut meliputi aplikasi email (electronic mail), browsing, ssh/telnet, ftp, maupun aplikasi yang lain yang ada kaitannya dengan internet. Oleh karena itu Pengetahuan dan pengertian tentang DNS merupakan hal penting yang harus dimiliki oleh operator maupun pengguna internet.

dns infrastruktur

Pengertian Domain Name System (DNS)

Beberapa pengertian mengenai Domain name system adalah sebagai berikut:
  1. Merupakan sistem database yang terdistribusi yang digunakan untuk pencarian nama komputer di jaringan yang menggunakan TCP/IP. DNS mempunyai kelebihan ukuran database yang tidak terbatas dan juga mempunyai performa yang baik.
  2. Merupakan aplikasi pelayanan di internet untuk menterjemahkan domain name ke alamat IP dan juga sebaliknya.
  3. Komputer yang terhubung dan memiliki tanggung jawab memberikan informasi zona nama domain anda, merubah nama domain menjadi alamat IP dan juga memiliki tanggung jawab terhadap distribusi email di mail server yang menyangkut dengan nama domain.
  4. Aplikasi yang membantu memetakan host name sebuah komputer ke IP address pada aplikasi yang terhubung ke Internet seperti web browser atau e-mail.
DNS dapat dianalogikan sebagai pemakaian buku telepon dimana orang yang ingin kita hubungi, berdasarkan nama untuk menghubunginya dan menekan nomor telefon berdasarkan nomor dari buku telepon tersebut. Hal ini terjadi karena komputer bekerja berdasarkan angka, dan manusia lebih cenderung bekerja berdasarkan nama.

Misalkan domain name yahoo.com mempunyai alamat IP 202.68.0.134, tentu mengingat nama komputer lebih mudah dibandingkan dengan mengingat alamat IP. Didalam DNS, sebuah name server akan memuat informasi mengenai host-host di suatu daerah/zone. Name server ini dapat mengakses server-server lainnya untuk mengambil data-data host di daerah lainnya. Name server akan menyediakan informasi bagi client yang membutuhkan, yang disebut resolvers.

Fungsi Utama Sistem DNS

  1. Menerjemahkan nama-nama host (hostnames) menjadi nomor IP (IP address) ataupun sebaliknya, sehingga nama tersebut mudah diingat oleh pengguna internet.
  2. Memberikan suatu informasi tentang suatu host ke seluruh jaringan internet. DNS memiliki keunggulan seperti:
    • Mudah, DNS sangat mudah karena user tidak lagi direpotkan untuk mengingat IP address sebuah komputer cukup host name (nama Komputer).
    • Konsisten, IP address sebuah komputer boleh berubah tapi host name tidak berubah. Contoh:
      unsri.ac.id mempunyai IP 222.124.194.11, kemudian terjadi perubahan menjadi 222.124.194.25, maka disisi client seolah-olah tidak pernah ada kejadian bahwa telah terjadi perubahan IP.
      – Simple, user hanya menggunakan satu nama domain untuk mencari baik di Internet maupun di Intranet.

Struktur Database DNS

Struktur DNS Domain Name Space merupakan hirarki pengelompokan domain berdasarkan nama. Domain ditentukan berdasarkan kemampuan yang ada di struktur hirarki yang disebut
level yang terdiri dari :
  1. Root-Level Domains : merupakan level paling atas di hirarki yang di ekspresikan berdasarkan periode dan dilambangkan oleh “.”.
  2. Top-Level Domains :berisi second-level domains danhostsyaitu :
    • com : organisasi komersial, seperti IBM (ibm.com).
    • edu : institusi pendidikan, seperti U.C. Berkeley (berkeley.edu).
    • org : organisasi non profit, Electronic Frontier Foundation (eff.org).
    • net : organisasi networking, NSFNET (nsf.net).
    • gov : organisasi pemerintah non militer, NASA (nasa.gov).
    • mil : organisasi pemerintah militer, ARMY (army.mil).
    • xx : kode negara (id:Indonesia,au:Australia)
  3. Second-Level Domains : berisi domain lain yang disebut subdomain.
    Contoh, unsri.ac.id. Second-Level Domains unsri.ac.id bisa mempunyai host www.unsri.ac.id
  4. Third-Level Domains : berisi domain lain yang merupakan subdomain dari second level domain diatasnya. Contoh, ilkom.unsri.ac.id. Subdomain ilkom.unsri.ac.id juga mempunyai host ilkom.unsri.ac.id.
  5. Host Name : domain name yang digunakan dengan host name akan menciptakan fully qualified domain name (FQDN) untuk setiap komputer. Contohnya, jika terdapat www. unsri.ac.id, www adalah hostname dan unsri.ac.id adalah domain name.

DNS Zone

Terdapat dua bentuk Pemetaan DNS Zone, yaitu:
  • Forward Lookup Zone : Melakukan pemetaan dari nama menuju IP address
  • Reverse Lookup Zone : Melakukan pemetaan dari IP address menuju nama

Forward Lookup Zone

Cara kerja DNS tersebut dengan Forward Lookup Zone dapat kita lihat pada contoh berikut ini. Misal kita browsing di warnet, dan akan menghubungi www. unsri.ac.id . Maka alur kerjanya adalah:
  1. PC kita mengontak Server DNS lokal (biasanya terletak pada jaringan ISP) untuk menanyakan IP Address unsri.ac.id.
  2. Server DNS lokal akan melihat ke dalam cache-nya.
  3. Jika data itu terdapat di dalam cache server DNS server lokal, maka server tersebut akan memberikan alamat IP tersebut ke Browser. Jika tidak, maka server tersebut mengontak server DNS di atasnya (biasanya disebut Root DNS server “.”) untuk mengetahui alamat IP dari name server yang mengelola Top Level Domain .id.
  4. Pada name server yang mengelola Top Level Domain .id, maka server akan menanyakan IP dari name server pengelola domain ac.id.
  5. Kemudian server akan mengontak name server pengelola domain ac.id, disini server akan menanyakan alamat IP dari second level Domain unsri.ac.id.
  6. Setelah mendapatkan IP dari name server pengelola second level Domain unsri.ac.id, Pada name server yang mengelola unsri.ac.id, maka DNS server kita akan menanyakan alamat FQDN dari unsri.ac.id.
  7. Setelah mendapatkan IP dari http://www.unsri.ac.id, maka server akan memberikan alamat IP tersebut ke PC yang me-request tadi, dan membuat cache terhadap alamat yang telah dicari. Sehingga jika ada permintaan lagi untuk mengakses http://www.unsri.ac.id, maka DNS Server akan memberikan alamat yang telah disimpan didalam cache tanpa harus menghubungi server diatasnya. Jadi permintaan terhadap server diatasnya hanya jika alamat yang akan diakses
    belum terdapat pada cache.
  8. Setelah PC mendapatkan alamat IP dari http://www.unsri.ac.id barulah PC tadi bisa mengakses unsri.ac.id

Reverse Domain Server

Di dalam jaringan TCP/IP diperlukan juga pemetaan dari IP address ke hostname.
Pemetaan ini merupakan pemetaan balik dari pemetaan hostname ke IP address yang disebut reverse domain. Tujuannya untuk menyimpan informasi ataupun statistik yang disimpan dalam satu log file. Selain itu juga diperlukan untuk security jaringan (authorization check). Jika menggunakan host table (/etc/hosts) maka pemetaan hostname ke IP address merupakan pemetaan satu ke satu. Resolver akan mencari hostname pada host tabel secara sekuensial. Dengan menggunakan DNS proses pencarian IP address dari suatu hostname dapat dengan mudah dilakukan. Tapi proses pencarian hostname dari suatu host dengan IP address tertentu memerlukan proses pencarian yang cukup lama karena harus dilacak ke seluruh domain name server.
Solusi yang digunakan adalah dengan membuat suatu domain dengan menggunakan IP address sebagai domain. Pada jaringan TCP/IP top level domain yang menggunakan IP address sebagai domain diberi nama in-addr. arpa. Pemberian nama sub domain dibawah top level domain ini mengikuti aturan sebagai berikut:
  • Sub domain dibentuk dengan menuliskan sub domain dalam format representasi IP address dalam bentuk dot-octet.
  • Pembentukan sub domain di bawah top level domain dimulai dari oktet pertama dari IP address (IP address terdiri dari 32 bit=4 oktet) dan sub domain selanjutnya dibentuk dari oktet ketiga dan demikian seterusnya.
    Contoh:
    Sebuah network dengan IP address 222.124.194.XX (Network Klas C, XX = variable 0 s.d. 255) dikoordininasikan oleh DNS server ns1.unsri.ac.id. Agar DNS ini dapat merupakan server untuk reverse domain pada IP address di atas maka reverse domain yang harus dibuat adalah 194.124.222.in-addr.arpa

WEB SERVER

WEB SERVER adalah sebuah perangkat lunak server yang berfungsi menerima permintaan HTTP atau HTTPS dari klien yang dikenal dengan web browser dan mengirimkan kembali hasilnya dalam bentuk halaman-halaman web yang umumnya berbentuk dokumen HTML.
Perangkat lunak (peladen situs/server web) yang merespon permintaan dari client (menggunakan web browser) ke tempat data di letakan / disimpan, yang kemudian dikirimkan melalui jalur http (Hypertext Transmit Protocol)/ https (Hypertext Transmit Protocol Secure) dan di tampilkan di halaman web browser yang digunakan oleh client.
Hypertext Transfer Protocol (HTTP) adalah sistem untuk transmisi dan menerima informasi di Internet. Http berfungsi sebagai permintaan dan prosedur respon yang semua agen di Internet mengikuti sehingga informasi dapat cepat, mudah, dan akurat disebarluaskan antara server, yang memegang informasi, dan klien, yang mencoba untuk mengaksesnya. Http umumnya digunakan untuk mengakses halaman html, tetapi sumber daya lain bisa dimanfaatkan juga melalui http.
Hypertext Transfer Protokol Secure (HTTPS) adalah versi aman dari HTTP, protokol komunikasi dari World Wide Web. Ditemukan oleh Netscape Communications Corporation untuk menyediakan autentikasi dan komunikasi tersandi dan penggunaan dalam komersi elektris.


Fungsi Dari Web Server

Fungsi utama dari Web Server adalah mentransfer berkas atas permintaan client melalui protokol komunikasi yang telah disepakati sebelumnya. Pemanfaatan Web Server tidak terbatas pada mentransfer teks pada halaman Web melainkan juga mencakup gambar, video dan media lainnya.


Web Server & Web Application

Web Application:
Menggunakan bahasa Pemprograman (misal ASP, PHP, Java, .Net, Perl atau  .NET)
Web Server:
Melayani permintaan client dan meneruskan ke aplikasi yang sesuai selanjutnya diproses oleh aplikasi yang sesuai (misal IIS, Apache, thttpd dll.)
Web Application tidak bisa jalan tanpa Web Server
Web Server bisa bekerja tanpa Web Application (Tapi hanya bisa melayani web dengan content statis)

Web Server 

Web Server: apache, xitami, PWS, IIS
Biasanya diinstall bersama dengan PHP dan MySQL => ApacheTriad
Aplikasi free, ukuran cukup besar
Tidak perlu konfigurasi
Hanya perlu user & password apache dan MySQL
Bisa diinstall di Linux (XAMPP) dan Windows (WAMPP)


Cara kerja

- Client melalui Browser membagi URL menjadi beberapa bagian, pembagiannya termasuk Alamat, Path name dan protokol. 

- DNS menerjemahkan nama domain ke Alamat IP yang sesuai, karena memang Alamat sesungguhnya dari suatu website adalah Alamat IP, yang biasa kita tulis di Browser seperti Facebook.com itu hanyalah domain yg mewakili IP dari web Facebook.
- Kemudian Browser memutuskan Protokol apa yang dapat digunakan. FTP, HTTP adalah beberapa contoh dari Protokol. Namun, Protokol yang umum digunakan dalam Web adalah Protokol HTTP.
- Server Website mengirimkan permintaan GET ke Web Server untuk mengambil alamat yang telah diberikan. Server Website memverifikasi alamat yang telah diberikan, menemukan file yang diperlukan, berjalan sesuai script pertukaran cookies jika diperlukan dan mengembalikan permintaan ke browser.
- Browser sekarang mengkonversi data ke dalam basis data HTML dan menampilkan hasilnya ke pengguna. Jika tidak menemukan data yang diminta Server akan mengirimkan pesan kesalahan ke browser dan Browser akan menampilkannya kepada Client.
- 404 untuk Not Found (tidak ditermukan) atau 500 untuk Internal Server Error (Server yang dituju mengalami error). 

Dalam mengkonfigurasi Web Server kita membutuhkan beberapa paket yang harus diinstall. Pada postingan kali ini kita akan membahas bagaimana cara membangun Web Server di CENTOS. untuk pembahasan lebih lanjut kita langsung saja ya.

Menyiapkan Paket untuk membangun Web Server di Centos :

1.) Bind & Bind-chroot
bind disini adalah paket instalasi pada centos yang memiliki fungsi untuk membangun sebuah Web Server. pada bind sendiri kita akan menkonfigurasi beberapa bagian yang penting pada web server seperti Zone Reverse dan Zone Forward.

2.) Mysql & Mysql-server
Mysql adalah aplikasi untuk membangun sebuah database. kita ketahui bersama dalam membuat sebuah Web, tidak akan lepas dari yang dinamakan dengan database. Peran database sendiri untuk berjalannya sebuah website adalah agar web yang akan kita bangun terkesan lebih dinamis dengan digunakan database pada web yang akan dibangun.

3.) HTTPD
adalah sebuah aplikasi yang berfungsi untuk mendesain sebuah web secara Offline yaitu berskala Localhost. web yang akan kita bangun akan lebih terkesan simpel dan mudah dalam penggunaan dengan HTTPD atau yang lebih familiar disebut dengan Apache.

4.) PHP
adalah sebuah compiler web yang paling sering digunakan para developer web. PHP adalah sebuah pemrograman OOP Berbasis WEB. jika dalam pembuatan web kita menggunakan php sebagai bahasa pemrogramannya maka kita diharuskan menginstall paket php ini.

Instalasi Paket :

1.) Instalasi Bind & Bind-chroot
- masuk terminal
- login sebagai super user dengan perintah => su - lalu masukkan password.
- setelah masuk sebagai super user lalu ketikkan perintah yum -y install bind bind-chroot lalu enter (perintah untuk menginstall bind dan bind-chroot secara langsung)


- jika sudah maka akan muncul pesan instalasi complete.
- untuk melihat apakah paket sudah terinstal atau tidak dapat menggunakan perintah rpm -qa | grep bind




2.) Instalasi Mysql dan Mysql-server

- masuk terminal
- ketikkan perintah yum -y install mysql mysql-server lalu enter


- ikuti langkah-langkahnya. jika sudah maka akan muncul pesan instalasi complete
- untuk melihat apakah paket sudah terinstal atau tidak dapat menggunakan perintah rpm -qa | grep mysql



3.) Instalasi HTTPD

- masuk terminal
- ketikkan perintah yum -y install httpd lalu enter


- ikuti langkah-langkahnya. jika sudah maka akan muncul pesan instalasi complete.
- untuk melihat apakah paket sudah terinstal atau tidak dapat menggunakan perintah rpm -qa | grep httpd




4.) instalasi PHP

-masuk terminal
-ketikkan perintah yum -y install php* lalu enter ( kita menggunakan * agar dalam penginstalan paket PHP lengkap)


- ikuti langkah hingga instalasi complete.
- untuk  melihat apakah paket sudah terinstal atau tidak dapat menggunakan perintah rpm -qa | grep php*





Setelah persiapan paket sudah, instalasi paket juga sudah sekarang kita lanjut pada pembuatan Web Server. pada kali ini saya akan membuat sebuah web menggunakan wordpress. wordpress adalah sebuah framework untuk pembuatan website berbasis CMS. pada wordpress sendiri sudah banyak memiliki fitur yang memudahkan user untuk membangun web impian yang mudah dan efisien. jika teman-teman sekalian belum memilik wordpress bisa langsung didownload disini

dalam pembuatan web secara offline juga kita harus ketahui dimana directory yang nantinya akan digunakan oleh apache dalam mengeksekusi web rancangan kita. pada CENTOS sendiri folder yang akan digunakan dalam menyimpan website buatan kita adalah pada directory /var/www/html/

Langkah-langkah penginstalan Web dengan Wordpress :

1.) setelah kita mendownload file wordpress. kita harus pindahkan terlebih dahulu pada directory html tadi.
2.) Extract file wordpress bentuk tar tadi didalam directory html tadi. namun sebelumnya kita rubah nama folder yang sudah diextract tadi sesuai keinginan kita.

3.) jika sudah sekarang kita mulai penginstalan web yang telah kita extract tadi. namun sebelumnya karena web kita akan berjalan menggunakan apache, mysql ada baiknya kita mengaktifkan kedua ini terlebih dahulu.


4.) jika sudah kita langsung saja buka di browser. ketikan localhost/nama folder web kita tadi. karena nama folder web saya yolanda maka ketikkan localhost/yolanda/ lalu enter.


5.) Pada tahap pertama kita diharuskan mengisi Database name. karena kita belum membuat database maka kita harus membuat databasenya terlebih dahulu. masuk ke terminal dan ketikkan perintah mysql lalu enter setelah itu ketikan perintah CREATE DATABASE yola; (adalah perintah untuk membuat database baru).


6.) setelah membuat database barulah kita melanjutkan konfigurasi web selanjutnya. kita isikan Database name sesuai dengan yang telah dibuat tadi. isikan username = root, password = biarkan saja kosong, databasehost dan tableprefix tidak usah dirubah. setelah itu klik submit


7.) akan muncul perintah untuk membuat file baru dengan nama wp-config.php maka kita harus membuat web tersebut dalam folder web kita. untuk membuat sebuah file ketikkan gedit wp-config.php lalu pastekan codingan yang telah kita copy dari browser tadi. setelah itu disave.


8.) lanjutkan konfigurasi. pada kali ini kita menginputkan nama web kita dan Username serta password untuk login pada dashboard web kita. isikan sesuai keinginan kita.



9.) Setelah itu selesai.



10.) Maka kita akan diantarkan pada halaman login Dashboard wordpress kita. inputkan Username dan password sesuai yang telah diinputkan tadi lalu login. maka kita akan langsung masuk dalam tampilan dashboard wordpress.





11.) Jika kita ingin melihat web kita. kita langsung saja ketikkan localhost/nama folder web kita contoh : localhost/yolanda/ lalu enter




Konfigurasi DNS
 
1.) Dalam mengkonfigurasi DNS kita membutuhkan konfigurasi IP terlebih dahulu. ketikkan perintah vi/etc/sysconfig/network-scripts/ifcfg-eth0/ lalu enter



yang penting pada konfigurasi IP untuk DNS adalah IPADDR dimana ip ini lah yang akan menjadi identitas Zone Reverse Web server kita nantinya. karena disini kita bertindak sebagai server maka IP ADDR, Gateway dan DNS1 dibuat sama semua.

2.) Setelah konfigurasi IP telah rampung maka kita melanjutkan ke tahapan selanjutnya. yaitu konfigurasi pada named.conf nya. ketikkan perintah vi /etc/named.conf lalu enter



3.) selanjutnya ke konfigurasi selanjutnya yaitu pada vi /etc/named.rfc1912.zone . pada konfigurasi kali ini kita memasukkan zone forward dan zone reverse kita




4.) setelah kita membuat zone forward dan reverse pada bagian diatas kita juga diharuskan untuk membuat file zona forward dan reverse pada directory /var/named/

Zone Forward

Zone reverse

5.) pada tahapan ini DNS kita sudah jadi. Namun sebelum mencobanya di browser kita harus terlebih merestart konfigurasi DNS dengan perintah service named restart

6.) setelah ini barulah kita dapat mencoba domain kita dengan perintah nslookup 

Tampilan jika DNS Sukses

7.) Konfigurasi selesai


Gimana mudah bukan membuat Web dengan Wordpress hingga membuat DNS sendiri untuk web kita. jika masih banyak pertanyaan dari teman2 bisa langsung dilontarkan saja di kolom komentar dibawah. Mungkin cukup sekian postingan dari saya terima kasih.