Tuesday, March 31, 2015

Membuat DNS Server Menggunakan Linux



Server DNS bertugas menerjemahkan IP ke nama alamat dan sebaliknya dari nama alamat ke nomor IP. Beberapa cara untuk menerjemahkan alamat Internet antara lain :
·         Dengan membaca file lokal /etc/hosts
·         Dengan memanfaatkan pelayanan DNS Server
·         Dengan memanfaatkan pelayanan NIS  (Network Information System) Server
            File /etc/hosts  ini berisi daftar penerjemahan nama mesin ke alamat IP mesin yang bisa digunakan juga untuk melakukan penerjemahan slsmst IP ke nama. Dengan memiliki file ini, mesin Linux dapat menggunakan nama yang lebih mudah diingat untuk memanggil atau mengakses mesin lain dalam jaringan, daripada harus menggunakan nomor IP. File ini amat sederhana isinya seperti dalam contoh berikut :

[root@fadil]# cat /etc/hosts
192.168.0.6   google.com                         google
127.0.0.1        localhost.localdomain         localhost
 Keterangan :
·         Kolom 1 adalah nomor IP
·         Kolom 2 adalah FQDN  (Fully Qualified Domain Name)
·         Kolom 3 adalah nama host
File /etc/hosts  diatas menunjukkan bahwa nama google.com  dan google  dipetakan ke nomor IP 192.168.0.6 , nama localhost.localdomain  dan localhost  dipetakan ke nomor IP 127.0.0.1 . Kelemahan menggunakan file /etc/hosts  :
·         Semua mesin atau host dalam jaringan harus memiliki file /etc/hosts  yang identik isinya
·         Setiap kali ada perubahan nama host atau nomor IP, maka seluruh file di tiap host harus di-update isinya
·         Sangat tidak praktis untuk jaringan dengan host banyak

DNS SERVER
            Menggunakan DNS tidak seperti menggunakan file /etc/hosts . DNS bersifat client-server sehingga administrasi cukup dilakukan di sisi server saja, sedangkan pada client cukup dikonfigurasi 1 kali yaitu memberi cara agar mesin client dapat menghubungi DNS server. Dalam jaringan Internet, DNS server di seluruh dunia saling bekerja sama dalam rangka menerjemahkan alamat Internet. Network yang lebih besar memiliki DNS server yang menjadi sumber data bagi DNS server pada network dibawahnya. Kerjasama yang dijalin ini dapat digambarkan pada contoh kasus berikut
Kasus : Proses penampilan gambar atau isi sebuah situs pada browser Mozilla firefox yang digunakan seorang pengguna Linux dengan akses dial-up ke sebuah ISP di Indonesia misalnya indosat.com. Saat itu DNS client mengarah pada DNS server dengan IP 202.150.128.64 dan IP 202.150.128.65.
Perjalanan yang ditempuh untuk menerjemahkan IP secara umum dapat dijelaskan seperti berikut :
1.   Browser diarahkan ke situs http://mail.ngoprek.org
2.    DNS client menghubungi DNS server agar mendapatkan IP domain mail.ngoprek.org
3.   DNS server mencari data mengenai mail.ngoprek.org  dengan cara menghubungi DNS server tertinggi yaitu .  (dot ) atau root server
4.   DNS root  server menghubungi DNS server org
5.   DNS server org  menghubungi DNS server ngoprek.org
6.   DNS server ngoprek.org  mengenali subdomain mail.ngoprek.org  dan berhasil menerjemahkanm mail.ngoprek.org  ke IP 202.135.0.9
7.    IP tersebut dikirimkan kembali ke DNS client kemudian diberikan ke browser
8.    Browser mengarahkan langsung langsung ke IP 202.135.0.9  untuk menghubungi web server pada IP tersebut
 DNS server terdiri dari 2 jenis server, yaitu :
·         Primary Name Server  (PNS ) adalah DNS server yang bertanggung jawab atas resolusi domain dan subdomain yang dikelolanya
·         Secondary Name Server  (SNS ) adalah DNS server yang secara hirarki setara dengan PNS namun data-data domain dan subdomain diperoleh dengan cara menyalin dari PNS

Instalasi DNS server
program dns server yang digunakan linux adalah BIND. Bind biasanya secara default terdapat pada fedora 13. untuk memeriksanya gunakan perintah
[root@localhost ~]# rpm -qi bind
lalu ini adalah isi keterangan program bind
Name        : bind                         Relocations: (not relocatable)
Version     : 9.7.0                             Vendor: Fedora Project
Release     : 9.P1.fc13                     Build Date: Fri 26 Mar 2010 09:48:23 PM WIT
Install Date: Mon 06 Sep 2010 04:12:37 PM WIT      Build Host: xb-01.phx2.fedoraproject.org
Group       : System Environment/Daemons    Source RPM: bind-9.7.0-9.P1.fc13.src.rpm
Size        : 6663661                          License: ISC
Signature   : RSA/8, Fri 26 Mar 2010 10:28:12 PM WIT, Key ID 7edc6ad6e8e40fde
Packager    : Fedora Project
URL         : http://www.isc.org/products/BIND/
Summary     : The Berkeley Internet Name Domain (BIND) DNS (Domain Name System) server
Description :
BIND (Berkeley Internet Name Domain) is an implementation of the DNS
(Domain Name System) protocols. BIND includes a DNS server (named),
which resolves host names to IP addresses; a resolver library
(routines for applications to use when interfacing with DNS); and
tools for verifying that the DNS server is operating properly.
Tapi jika belum ada program bindnya maka instal dengan perintah
# yum install bind

Client Dns
            Client DNS bertugas untuk menentukan server DNS yang digunakan untuk menerjemahkan alamat Internet yang perlu dihubungi oleh program dalam mesin client. Dalam sistem Linux, DNS client merupakan file biasa seperti /etc/hosts  bernama /etc/resolv.conf , namun dengan isi berbeda seperti contoh berikut :
[root@localhost ~]# ls -l /etc/resolv.conf
-rw-r--r-- 1 root root 66 Dec 3 10:23 /etc/resolv.conf
[root@digital /root]# cat /etc/resolv.conf
search fadil.net
nameserver 192.168.0.4
nameserver 192.168.0.1
Pada contoh diatas DNS yang dihubungi adalah IP 192.168.0.4  dan SNS yang dihubungi adalah IP 192.168.0.1 . Tag search berisi sebuah nama yang digunakan sebagai default domain bila resolusi sebuah nama gagal.

Konfigurasi DNS SERVER
            DNS membaca data-data resolusi pada sekumpulan file konfigurasi yang terdapat pada komputer lokal. File-file tersebut antara lain :
/etc/named.conf
Berisi konfigurasi DNS server BIND 9.X dan isi file tersebut adalah
// generated by named-bootconf.pl
options {
directory "/var/named";
/*
* If there is a firewall between you and nameservers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
};
//
// a caching only nameserver config
//
zone "." {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "named.local";
};
 Format /etc/named.conf  terdiri dari 2 bracket dasar yaitu :
Ø  Blok Options  Berisi kompulan opsi-opsi global untuk bind 9.x.x, gunakan man named.conf  untuk mendapatkan informasi lebih detil mengenai opsi-opsi yang tersedia.
Ø  Blok Zone  Berisi tag-tag yang digunakan untuk menentukan tipe server untuk 1 domain atau subdomain tertentu dan file zona yang berisi konfigurasi 1 domain atau subdomain tertentu.
1.    Bila kita bertujuan membuat zona file untuk pemetaan NAME-TO-IP gunakan nama domain sebagai nama zona.
2.    Bila kita bertujuan membuat zona file untuk pemetaan IP-TO-NAME gunakan nama domain dengan format sebagai berikut :
·         IP-TO-NAME untuk network 192.168.0, nama zona file ditulis 0.168.192.in-addr.arpa
·         IP-TO-NAMEuntuk network 202.150.128, nama zona file ditulis 128.150.202.in-addr.arpa
/var/named/*
            Direktori /var/named  berisi file-file zona yang namanya bersesuaian dengan tag file pada bracket zone dalam /etc/named.conf
[root@localhost ~]# cd /var/named
[root@localhost named]# ls -l
total 32
drwxr-x---. 6 root  named 4096 Sep  6 16:19 chroot
drwxrwx---. 2 named named 4096 Mar 26 21:48 data
drwxrwx---. 2 named named 4096 Mar 26 21:48 dynamic
-rw-r-----. 1 root  named 1892 Feb 18  2008 named.ca
-rw-r-----. 1 root  named  152 Dec 15  2009 named.empty
-rw-r-----. 1 root  named  152 Jun 21  2007 named.localhost
-rw-r-----. 1 root  named  168 Dec 15  2009 named.loopback
drwxrwx---. 2 named named 4096 Mar 26 21:48 slaves
[root@localhost named]#
Isi file konfigurasi tersebut
[root@localhost named]# cat named.localhost
$TTL 1D
@        IN SOA           @ rname.invalid. (
                                                            0          ; serial
                                                            1D       ; refresh
                                                            1H       ; retry
                                                            1W      ; expire
                                                            3H )     ; minimum
            NS      @
            A         127.0.0.1
            AAAA ::1
[root@localhost named]# cat named.ca
; <<>> DiG 9.5.0b2 <<>> +bufsize=1200 +norec NS . @a.root-servers.net
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 34420
;; flags: qr aa; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 20

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;.                                              IN        NS

;; ANSWER SECTION:
.                                   518400           IN        NS      M.ROOT-SERVERS.NET.
.                                   518400           IN        NS      A.ROOT-SERVERS.NET.
.                                   518400           IN        NS      B.ROOT-SERVERS.NET.
.                                   518400           IN        NS      C.ROOT-SERVERS.NET.
.                                   518400           IN        NS      D.ROOT-SERVERS.NET.
.                                   518400           IN        NS      E.ROOT-SERVERS.NET.
.                                   518400           IN        NS      F.ROOT-SERVERS.NET.
.                                   518400           IN        NS      G.ROOT-SERVERS.NET.
.                                   518400           IN        NS      H.ROOT-SERVERS.NET.
.                                   518400           IN        NS      I.ROOT-SERVERS.NET.
.                                   518400           IN        NS      J.ROOT-SERVERS.NET.
.                                   518400           IN        NS      K.ROOT-SERVERS.NET.
.                                   518400           IN        NS      L.ROOT-SERVERS.NET.

;; ADDITIONAL SECTION:
A.ROOT-SERVERS.NET.  3600000        IN        A         198.41.0.4
A.ROOT-SERVERS.NET.  3600000        IN        AAAA 2001:503:ba3e::2:30
B.ROOT-SERVERS.NET.  3600000        IN        A         192.228.79.201
C.ROOT-SERVERS.NET. 3600000        IN        A         192.33.4.12
D.ROOT-SERVERS.NET. 3600000        IN        A         128.8.10.90
E.ROOT-SERVERS.NET.  3600000        IN        A         192.203.230.10
F.ROOT-SERVERS.NET.  3600000        IN        A         192.5.5.241
F.ROOT-SERVERS.NET.  3600000        IN        AAAA 2001:500:2f::f
G.ROOT-SERVERS.NET. 3600000        IN        A         192.112.36.4
H.ROOT-SERVERS.NET. 3600000        IN        A         128.63.2.53
H.ROOT-SERVERS.NET. 3600000        IN        AAAA 2001:500:1::803f:235
I.ROOT-SERVERS.NET.   3600000        IN        A         192.36.148.17
J.ROOT-SERVERS.NET.  3600000        IN        A         192.58.128.30
J.ROOT-SERVERS.NET.  3600000        IN        AAAA 2001:503:c27::2:30
K.ROOT-SERVERS.NET.  3600000        IN        A         193.0.14.129
K.ROOT-SERVERS.NET.  3600000        IN        AAAA 2001:7fd::1
L.ROOT-SERVERS.NET.  3600000        IN        A         199.7.83.42
M.ROOT-SERVERS.NET. 3600000        IN        A         202.12.27.33
M.ROOT-SERVERS.NET. 3600000        IN        AAAA 2001:dc3::35

;; Query time: 147 msec
;; SERVER: 198.41.0.4#53(198.41.0.4)
;; WHEN: Mon Feb 18 13:29:18 2008
;; MSG SIZE  rcvd: 615

          Sedangkan SNS membaca data copy dari PNS melalui sebuah mekanisme transfer data melalui protokol DNS. Data yang dicopy disimpan dalam bentuk file zona yang diletakkan di direktori /var/named  pada mesin SNS.
            Format file zona terdiri dari kumpulan record yang berisikan keterangan yang detil tentang sebuah domain atau subdomain. Record-record tersebut antara lain :
·         SOA Start Of Authority mengawali file zona, berisi data-data waktu sebuah domain atau subdomain. Lebih jelasnya seperti berikut :
@        IN SOA           localhost. root.localhost (
                                                            0          ; serial
                                                            1D       ; refresh
                                                            1H       ; retry
                                                            1W      ; expire
                                                            3H )     ; minimum
            NS      @
            A         127.0.0.1
            AAAA ::1
            PTR    localhost.
Keterangan :

@                  Shortcut yang menyatakan nama domain yang bersesuaian dengan zona ini
IN                   Kata kunci protokol INTERNET
SOA               Nama record SOA
localhost             Name Server yang menangani domain ini
root.localhost    Kontak administratif berupa email administrator, dalam hal ini root@localhost
 ( dan )                  Bila ditulis lebih dari 1 baris
Serial                   Nomor urut yang dibangkitkan setiap kali ada perubahan konfigurasi
Refresh            Interval yang digunakan SNS untuk mengontak PNS
Retry                    Waktu tunggu yang digunakan oleh SNS bila PNS down atau crash
Expire                  Masa berlaku zona untuk SNS tanpa harus melakukan refresh pada PNS jika PNS down
Minimum              Nilai default untuk masa berlaku data yang disimpan dalam cache
·         NS. menyatakan Name Server yang berlaku.
@                            IN             NS      localhost.
·         A. menyatakan Address Internet atau alamat IP dari mesin yang ditangani oleh DNS ini proses penerjemahan namanya.
 @       IN        A         192.168.0.1
fadil     IN        A         192.168.0.4
·         CNAME, menyatakan nama Alias (Canonical Name). Contoh berikut ini menyatakan bahwa  mail adalah nama alias dari  ngoprek
mail     IN        CNAME         ngoprek.
·         PTR, menyatakan pointer, yaitu reversed-address. Contoh berikut ini menyatakan bahwa IP  192.168.0.4 dipetakan ke nama domian atau subdomain  fadil
fadil                                         IN        A         192.168.0.4
4.0.168.192.in-addr.arpa.    IN        PTR    fadil
·         MX, menyatakan Mail Exchanger, digunakan untuk menunjuk mail server yang menangani email domain atau subdomain ini. Contoh berikut ini menentukankan bahwa email untuk  fadil.linux.net akan diterima oleh mail server dengan prioritas lebih tinggi ( super.linux.net). Angka yang lebih kecil merupakan prioritas yang lebih tinggi. Angka yang dimaksud adalah kolom ke-3 pada MX. Mail server pada prioritas selanjutnya akan dihubungi apabila mail server sebelumnya down atau crash.
Fadil         IN              MX      0          super.linux.net.
IN              MX      10       fadil.linux.net.
·          HINFO, memberikan keterangan tentang perangkat keras yang digunakan server
fadil          IN        HINFO            "Intel PIV 2800 - Linux fedora13"
·         TXT. menyatakan infomasi umum
fadil          IN        TXT    "Server location : Jakarta selatan – Jakarta"

Kasus : Konfigurasikan sebuah host menjadi PNS dengan nama domain linux.net mempunyai range IP 192.168.0.1 – 192.168.0.15.
Penentuan IP untuk host-host tertentu, misalnya Untuk IP yang lainnya disimpan untuk keperluan mendatang.:
ns1.linux.net -> IP 192.168.0.1
ns2.linux.net -> IP 192.168.0.2
www.linux.net -> IP 192.168.0.3
mail.linux.net -> IP 192.168.0.3
ftp.linux.net -> IP 192.168.0.3
mp3.linux.net -> IP 192.168.0.9
vhost.linux.net -> IP 192.168.0.13
·         Membuat /etc/named.conf
options {
directory "/var/named";
  };
zone "." {
type hint;
file "named.ca";
  };
zone "catatanfadil.com" {
type master;
file "db.linux.net";
  };
zone "0.168.192.in-addr.arpa" {
type master;
file "db.192.168.0";
  };
Membuat file zona untuk domain linux.net  diberi nama db.linux.net
@                         IN               SOA      ns1.linux.net. admin.linux.net. (
                                              200022700  ; Serial
                                              28800           ; Refresh
                                              14400           ; Retry
                                              3600000       ; Expire
                                              86400 )         ; Minimum
@                       IN                NS          ns1.linux.net.
@         IN          NS               ns2.linux.net.
                           IN                MX       10         mail.linux.net.
ns1       IN           A                 192.168.0.1
ns2                     IN                A           192.168.0.2
www     IN          A                192.168.0.3
mail                   IN                A            192.168.0.3
mp3                   IN                A            192.168.0.9
vhost                 IN                A             192.168.0.13
ftp                      IN               CNAME    192.168.0.3
 Membuat file zona reverse-lookup  untuk network 192.168.0  diberi nama db.192.168.0
@         IN        SOA         ns1.linux.net.  root.localhost. (
                                        200022700  ; Serial
                                        28800           ; Refresh
                                        14400           ; Retry
                                        3600000       ; Expire
                                        86400 )          ; Minimum
                       IN              NS            ns1.linux.net.
                       IN              NS            ns2.linux.net.
1                     IN              PTR          ns1.linux.net.
2                     IN              PTR          ns2.linux.net.
13                   IN              PTR          vhost..linux.net.
 Tes hasil konfigurasi dngan cara mengaktifkan bind  dengan perintah berikut :
# service named start
Untuk menjalankan otomatis pada saat boot gunakan perintah
 # chkconfig named on
 Lakukan pemeriksaan pada /var/log/messages
 [root@digital /root]# cat /var/log/messages


Membuat DNS Server Menggunakan Linux Rating: 4.5 Diposkan Oleh: Januar Fadilah

0 komentar:

Post a Comment

Silahkan berkomentar sesuai tema, gunakan kata-kata yang bijak dalam berkomentar (no iklan, no porn, no spam). Komentar yang menyertakan link aktif, iklan, atau titip link, akan dimasukan ke folder SPAM. Terima Kasih.