Konfigurasi DNS Server – Centos 7

DNS (Domain Name Systems), berperan sebagai penerjemah antara ip adress dengan hostname suatu mesin. Baik di internet maupun di jaringan lokal. DNS ini sangat membantu kita dalam mengakses suatu mesin ataupun sebuah website yang mungkin kita sendiri tidak hapal satu-persatu IP address nya. Kebanyakan orang pasti lebih mudah mengingat sebuah nama dibandingkan mengingat beberapa digit angka, dalam konteks ini IP address. Kecuali jumlah uang itu pasti cepet 😀

DNS menterjemahkan IP address ke hostname maupun hostname ke IP address. DNS merupakan service yang wajib dari sebuah jaringan server yang diakses oleh banyak orang.

Kebutuhan

  • Server DNS
    Hostname = ns.raihan.net
    IP Address = 192.168.80.119
    IP DNS = 192.168.80.119
  • Klien 1
    Hostname = www.raihan.net
    IP Address = 192.168.80.191
    IP DNS = 192.168.80.119
  • Klien 2
    Hostname = repo.raihan.net
    IP Address = 192.168.80.192
    IP DNS = 192.168.80.119

Instalasi BIND

Jika kita menggunakan Centos, untuk melakukan konfigurasi kita bisa menggunakan paket yang bernama BIND. Instalasi bisa dilakukan dengan perintah dibawah ini

[root@ns ~]# yum install bind bind-utils -y

Setelah itu, edit file named.conf

[root@ns ~]# nano /etc/named.conf

Contoh bagian yang harus di edit ada dibawah. Bagian yang ditebalkan adalah bagian yang perlu ditambahkan. Tambahkan nama zonenya. Disini saya menggunakan nama domain raihan.net

options {
	listen-on port 53 { 127.0.0.1; 192.168.80.119;};
        listen-on-v6 port 53 { ::1; };
        directory	"/var/named";
        dump-file	"/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        allow-query     { localhost; any;};
zone "." IN {
	type hint;
        file "named.ca";
};

zone "raihan.net" IN {
        type master;
        file "db.raihan.net";
        allow-update { none; };
};

zone "80.168.192.in-addr.arpa" IN {
        type master;
        file "db.80.168.192";
        allow-update { none; };
};

Penambahan File Forward & Reverse DNS

Selanjutnya menambahkan file forward dan reverse DNS. Pada centos 7 direktori default untuk kedua file tersebut adalah /var/named. Dan untuk pemberian nama harus disesuaikan dengan yang tercantum di file named.conf, misalnya db.raihan.net untuk file forwardnya dan db.80.168.192 untuk file reversenya.

[root@ns ~]# nano /var/named/db.raihan.net

Bentuk filenya kurang lebih seperti dibawah ini

$TTL 86400
@	IN	SOA	ns.raihan.net. root.raihan.net. (
			2018100901	;Serial
			3600		;Refresh
			1800		;Retry
			604800		;Expire
			86400		;Minimum TTL
)
@	IN	NS	ns.raihan.net.
@	IN	NS	www.raihan.net.
@	IN	NS	repo.raihan.net.
@	IN	A	192.168.80.119
@	IN	A	192.168.80.191
@	IN	A	192.168.80.192
ns	IN	A	192.168.80.119
www	IN	A	192.168.80.191
repo	IN	A	192.168.80.192

Selanjutnya membuat file reverse

[root@ns ~]# nano /var/named/db.80.168.192

Bentuk filenya kurang lebih seperti dibawah ini

$TTL 86400
@	IN	SOA	ns.raihan.net. root.raihan.net. (
			2018100902	;Serial
			3600		;Refresh
			1800		;Retry
			604800		;Expire
			86400		;Minimum TTL
)
@	IN	NS	ns.raihan.net.
@	IN	NS	www.raihan.net.
@	IN	NS	repo.raihan.net.
ns	IN	A	192.168.80.119
www	IN	A	192.168.80.191
repo	IN	A	192.168.80.192
119	IN	PTR	ns.raihan.net.
191	IN	PTR	www.raihan.net.
192	IN	PTR	repo.raihan.net.

Setelah membuat file forward dan reverse DNS, pastikan bahwa file named.conf beserta kedua file tersebut sudah benar. Untuk cek file named.conf bisa mengetikkan perintah

[root@ns ~]# named-checkconf /etc/named.conf

Jika keluarannya kosong, maka file named.conf sudah benar. Untuk cek file forward bisa mengetikkan perintah

[root@ns ~]# named-checkzone raihan.net /var/named/db.raihan.net 
zone raihan.net/IN: loaded serial 2018100901
OK
[root@ns ~]# named-checkzone raihan.net /var/named/db.80.168.192 
zone raihan.net/IN: loaded serial 2018100902
OK

Jika result file forward dan reversenya seperti diatas berarti sudah ok. Jika belum benar maka akan muncul keterangan di baris mana kesalahannya. Entah kurang titik, koma, titik koma (;), A record belum ditambahkan dan lain-lain. Selanjutnya hidupkan bind servicenya menggunakan perintah

[root@ns ~]# systemctl start named
[root@ns ~]# systemctl enable named

Konfigurasi Tambahan

Setelah itu ada beberapa konfigurasi tambahan dari mulai firewall, hingga permission file forward dan reverse. Service DNS menggunakan port 53, supaya DNS bisa melewati firewall maka kita harus allow port 53 dengan perintah

[root@ns ~]# firewall-cmd --permanent --add-port=53/tcp
success
[root@ns ~]# firewall-cmd --permanent --add-port=53/udp
success
[root@ns ~]# firewall-cmd --reload
success

Selanjutnya menambahkan permission untuk file forward dan reverse maupun file named.conf

[root@ns ~]# chgrp named -R /var/named/
[root@ns ~]# chown root:named /etc/named.conf
ownership of '/etc/named.conf' retained as root:named
[root@ns ~]# restorecon -rv /var/named/
[root@ns ~]# restorecon /etc/named.conf

Terakhir edit file resolv.conf. Masukkan IP server DNS. Urutan IP-IP di resolv.conf sangat mempengaruhi urutan mesin untuk resolv masing-masing DNS. Jika urutan pertamanya adalah ip lokal maka server akan resolv pertama kali ke dns lokal bukan dns publik.

[root@ns ~]# nano /etc/resolv.conf 
# Generated by NetworkManager
search raihan.net
nameserver 192.168.80.119
nameserver 192.168.80.29

Restart network

[root@ns ~]# systemctl restart network

Testing

Selanjutnya adalah testing. Sebelum testing dari klien coba testing dulu dari server itu sendiri, apakah domain sudah terdeteksi. Ketikkan perintah dibawah ini. Sesuaikan perintah dengan nama domain yang diberikan. Lihat apakah hasilnya sesuai dengan konfigurasi yang sebelumnya dilakukkan

[root@ns ~]# dig raihan.net
; <<>> DiG 9.9.4-RedHat-9.9.4-61.el7_5.1 <<>> raihan.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 37144
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 3, ADDITIONAL: 4

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;raihan.net. IN A

;; ANSWER SECTION:
raihan.net. 86400 IN A 192.168.80.119
raihan.net. 86400 IN A 192.168.80.192
raihan.net. 86400 IN A 192.168.80.191

;; AUTHORITY SECTION:
raihan.net. 86400 IN NS ns.raihan.net.
raihan.net. 86400 IN NS www.raihan.net.
raihan.net. 86400 IN NS repo.raihan.net.

;; ADDITIONAL SECTION:
ns.raihan.net.   86400 IN A 192.168.80.119
www.raihan.net.  86400 IN A 192.168.80.191
repo.raihan.net. 86400 IN A 192.168.80.192

;; Query time: 0 msec
;; SERVER: 192.168.80.119#53(192.168.80.119)
;; WHEN: Kam Okt 11 11:24:35 WIB 2018
;; MSG SIZE rcvd: 189

Testing apakah DNS bisa mentranslasikan hostname ke ip atau ip ke hostname. Ketikkan perintah

[root@ns ~]# nslookup raihan.net
Server:		192.168.80.119
Address:	192.168.80.119#53

Name:	raihan.net
Address: 192.168.80.191
Name:	raihan.net
Address: 192.168.80.119
Name:	raihan.net
Address: 192.168.80.192

[root@ns ~]# nslookup 192.168.80.119
Server:		192.168.80.119
Address:	192.168.80.119#53
119.80.168.192.in-addr.arpa	name = ns.raihan.net.

[root@ns ~]# nslookup 192.168.80.191
Server:		192.168.80.119
Address:	192.168.80.119#53
191.80.168.192.in-addr.arpa	name = www.raihan.net.

[root@ns ~]# nslookup 192.168.80.192
Server:		192.168.80.119
Address:	192.168.80.119#53
192.80.168.192.in-addr.arpa	name = repo.raihan.net.

Pastikan hasilnya sudah benar. Jika sudah benar, coba untuk testing dari sisi klien. Misalnya ping dari klien yang memiliki hostname www.raihan.net ke klien yang memiliki hostname repo.raihan.net dan sebaliknya. Jika kedua klien tersebut running dan ip addressnya sesuai dengan konfigurasi DNS server, maka hasil pingnya pasti reply.

C:\Users\Raihan1>ping www.raihan.net
Pinging www.raihan.net [192.168.80.191] with 32 bytes of data:
Reply from 192.168.80.191: bytes=32 time<1ms TTL=64
Reply from 192.168.80.191: bytes=32 time<1ms TTL=64
Reply from 192.168.80.191: bytes=32 time=1ms TTL=64
Reply from 192.168.80.191: bytes=32 time=1ms TTL=64

Ping statistics for 192.168.80.191:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 1ms, Average = 0ms
C:\Users\Raihan2>ping repo.raihan.net
Pinging www.raihan.net [192.168.80.192] with 32 bytes of data:
Reply from 192.168.80.192: bytes=32 time<1ms TTL=64
Reply from 192.168.80.192: bytes=32 time<1ms TTL=64
Reply from 192.168.80.192: bytes=32 time=1ms TTL=64
Reply from 192.168.80.192: bytes=32 time=1ms TTL=64

Ping statistics for 192.168.80.192:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 1ms, Average = 0ms

 

Leave a Reply

Your email address will not be published. Required fields are marked *