Siapkan Server DNS Master-Slave Menggunakan Alat "Bind" di RHEL/CentOS 6.5


Server Nama Domain (DNS) digunakan untuk penyelesaian nama ke host mana pun. Server DNS Master (Server Utama) adalah penangan data zona asli dan server DNS Budak (Server Sekunder) hanyalah server cadangan yang digunakan untuk menyalin informasi zona yang sama dari server utama. Master Server akan menyelesaikan nama untuk setiap host yang kita tentukan di database zona dan menggunakan protokol UDP, karena protokol UDP tidak pernah menggunakan proses pengakuan sedangkan tcp menggunakan pengakuan. Server DNS juga menggunakan protokol UDP untuk menyelesaikan permintaan kueri paling awal.

Bagaimana DNS Bekerja?

Memahami DNS mungkin sedikit membingungkan bagi pemula. Berikut penjelasan singkat cara kerja DNS.

Katakanlah, jika kita perlu mengakses situs web apa pun, apa yang akan kita lakukan? Cukup ketik www.google.com di browser dan tekan enter. Hmm hanya itu yang kami tahu, tapi faktanya, betapa sakitnya DNS melewatinya, saat menanyakan kami. Saat kita mengetik www.google.com sistem akan mencari www.google.com. Setiap kali kita mengetikkan nama domain, ada . (titik) di akhir www.google.com yang menyatakan untuk mencari server root namespace.

Secara global, terdapat 13 server root yang tersedia untuk menyelesaikan kueri. Pada awalnya, ketika kita menekan enter sebagai www.google.com, browser kita akan meneruskan permintaan ke penyelesai lokal kita, yang memiliki entri tentang info server DNS master dan slave kita. Jika mereka tidak memiliki info tentang permintaan yang diminta, mereka akan meneruskan permintaan tersebut ke domain Tingkat Atas (TLD), jika TLD mengatakan saya tidak mengetahui permintaan tersebut, mungkin server otoritatif mengetahui permintaan Anda. permintaan, itu akan meneruskan ke server resmi, di sini hanya www.google.com yang didefinisikan sebagai alamat 72.36.15.56.

Sementara itu, server otoritatif akan memberikan jawaban kepada TLD dan TLD akan diteruskan ke server root dan root akan memberikan info ke browser, maka browser akan menyimpan permintaan DNS dalam cache untuk digunakan di masa mendatang. Jadi proses panjang ini hanya akan selesai dalam hitungan milidetik. Jika mereka tidak mengetahui permintaan tersebut, mereka akan membalas sebagai NXDOMAIN. Artinya, tidak ada catatan apa pun yang ditemukan di database Zone. Semoga ini membuat Anda memahami cara kerja DNS.

Baca Juga: Menyiapkan Server Cache DNS di Ubuntu

Lingkungan Pengujian Saya

Untuk artikel ini, saya menggunakan 3 mesin, 2 untuk setup server (master dan slave) dan 1 untuk klien.

---------------------------------------------------
Master DNS Server
---------------------------------------------------

IP Address	:	192.168.0.200
Host-name	:	masterdns.tecmintlocal.com
OS		:	Centos 6.5 Final
---------------------------------------------------
Slave DNS Server
---------------------------------------------------

IP Address	:	192.168.0.201
Host-name	:	slavedns.tecmintlocal.com
OS		:	Centos 6.5 Final
---------------------------------------------------
Client Machine to use DNS
---------------------------------------------------

IP Address	:	192.168.0.210
Host-name	:	node1.tecmintlocal.com
OS		:	Centos 6.5 Final
Paket Kebutuhan
bind, bind-utils, bind-chroot
File Konfigurasi Digunakan
config file	:	/etc/named.conf
script file	:	/etc/init.d/named
Port & Protokol yang Digunakan
53, UDP

Siapkan Server DNS Utama

Pertama, verifikasi alamat IP, Nama Host, dan versi Distribusi Server DNS Utama, sebelum melanjutkan ke pengaturan.

sudo ifconfig | grep inet
hostname
cat /etc/redhat-release

Setelah Anda mengonfirmasi bahwa pengaturan di atas sudah benar, saatnya untuk melanjutkan menginstal paket yang diperlukan.

sudo yum install bind* -y

Menginstal dan Mengonfigurasi Bind

Setelah menginstal paket yang diperlukan, sekarang tentukan file zona dalam file konfigurasi master 'named.conf'.

sudo vim /etc/named.conf

Di bawah ini adalah entri file named.conf saya, ubah file konfigurasi sesuai kebutuhan Anda.

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
        listen-on port 53 { 127.0.0.1; 192.168.0.200; }; # Here we need to add our Master DNS Server IP.
        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; 192.168.0.0/24; }; # subnet range where my hosts are allowed to query our DNS.
        allow-transfer     { localhost; 192.168.0.201; };  # Here we need to our Slave DNS server IP.
        recursion no;

        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
        type hint;
        file "named.ca";
};

## Define our forward & reverse Zone file here for tecmintlocal.com.


zone"tecmintlocal.com" IN {
type master;
file "tecmintlocal.fwd.zone";
allow-update { none; };
};

zone"0.168.192.in-addr.arpa" IN {
type master;
file "tecmintlocal.rev.zone";
allow-update { none; };
};

#####
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

Berikut penjelasan masing-masing konfigurasi yang kami gunakan pada file di atas.

  1. listen-on port 53 – Ini digunakan agar DNS mendengarkan di antarmuka yang tersedia.
  2. Master DNS – Tentukan alamat IP DNS Master Anda untuk mendengarkan kueri.
  3. DNS Budak – Tentukan DNS Budak Anda, yang digunakan untuk menyinkronkan informasi zona kami untuk menyelesaikan host dari Master.
  4. rekursi tidak – Jika disetel ke ya, kueri rekursif akan membuat server terkena serangan DDOS.
  5. Nama Zona – Tentukan nama Zona Anda di sini yang didefinisikan sebagai tecminlocal.com.
  6. ketik master – Karena sistem ini dikonfigurasi untuk server master, untuk server budak berikutnya sistem ini akan menjadi server budak.
  7. tecmintlocal.fwd.zone – File ini berisi informasi host untuk zona ini.
  8. izinkan-perbarui tidak ada – Jika tidak ada yang disetel. itu tidak akan menggunakan DNS Dinamis (DDNS).

Membuat File Zona Master

Pertama mari kita tentukan entri zona pencarian ke depan. Di sini kita perlu membuat file zona dengan nama yang telah kita definisikan di file named.conf seperti di bawah ini.

tecmintlocal.fwd.zone
tecmintlocal.rev.zone

Kami menggunakan file konfigurasi sampel untuk membuat file zona maju, untuk ini kami harus menyalin file konfigurasi sampel.

sudo cp /var/named/named.localhost /var/named/tecmintlocal.fwd.zone
sudo cp /var/named/named.loopback /var/named/tecmintlocal.rev.zone

Setelah Anda menyalin file konfigurasi, sekarang edit file zona ini menggunakan editor vim.

sudo vim /var/named/tecmintlocal.fwd.zone

Sebelum mendefinisikan informasi host kita di file zona maju, pertama-tama lihat sekilas file zona sampel.

Ini adalah konfigurasi zona depan saya, tambahkan entri di bawah ini dan buat perubahan sesuai kebutuhan Anda.

$TTL 86400
@       IN SOA  masterdns.tecmintlocal.com.     root.tecmintlocal.com. (
                                  2014090401    ; serial
                                        3600    ; refresh
                                        1800    ; retry
                                      604800    ; expire
                                       86400 )  ; minimum

; Name server's

@       IN      NS      masterdns.tecmintlocal.com.
@       IN      NS      slavedns.tecmintlocal.com.

; Name server hostname to IP resolve.

@       IN      A       192.168.0.200
@       IN      A       192.168.0.201

; Hosts in this Domain

@       IN      A       192.168.0.210
@       IN      A       192.168.0.220
masterdns       IN      A       192.168.0.200
slavedns        IN      A       192.168.0.201
node1           IN      A       192.168.0.210
rhel1           IN      A       192.168.0.220

Simpan dan keluar dari file menggunakan wq!. Setelah mengedit tampilan depan, tampilannya seperti di bawah ini, Gunakan TAB untuk mendapatkan format yang layak dalam file zona.

Sekarang, buat file pencarian terbalik, kita telah membuat salinan file loop-back dengan nama tecmintlocal.rev.zone. Jadi, kami menggunakan file ini untuk mengonfigurasi pencarian terbalik kami.

sudo vim /var/named/tecmintlocal.rev.zone

Sebelum mendefinisikan informasi host kami dalam file zona terbalik, lihat sekilas contoh file pencarian terbalik seperti yang ditunjukkan di bawah ini.

Ini adalah konfigurasi zona terbalik saya, tambahkan entri di bawah ini dan buat perubahan sesuai kebutuhan Anda.

$TTL 86400
@       IN SOA  masterdns.tecmintlocal.com. root.tecmintlocal.com. (
                                2014090402      ; serial
                                      3600      ; refresh
                                      1800      ; retry
                                    604800      ; expire
                                     86400 )    ; minimum

; Name server's

@       IN      NS      masterdns.tecmintlocal.com.
@       IN      NS      slavedns.tecmintlocal.com.
@       IN      PTR     tecmintlocal.com.

; Name server hostname to IP resolve.

masterdns       IN      A       192.168.0.200
slavedns        IN      A       192.168.0.201

;Hosts in Domain 

node1           IN      A       192.168.0.210
rhel            IN      A       192.168.0.220
200             IN      PTR     masterdns.tecmintlocal.com.
201             IN      PTR     slavedns.tecmintlocal.com.
210             IN      PTR     node1.tecmintlocal.com.
220             IN      PTR     rhel1.tecmintlocal.com.

Simpan dan keluar dari file menggunakan wq!. Setelah mengedit tampilan terbalik, tampilannya seperti di bawah ini, Gunakan TAB untuk mendapatkan format yang layak dalam file zona.

Periksa kepemilikan grup atas file pencarian maju & pencarian terbalik, sebelum memeriksa kesalahan apa pun dalam konfigurasi.

sudo ls -l /var/named/

Di sini kita dapat melihat kedua file tersebut berada dalam kepemilikan pengguna root, karena file yang kami salin dari file contoh tersedia di /var/named/. Ubah grup menjadi bernama pada kedua file menggunakan perintah berikut.

sudo chgrp named /var/named/tecmintlocal.fwd.zone
sudo chgrp named /var/named/tecmintlocal.rev.zone

Setelah menetapkan kepemilikan yang benar pada file, verifikasi lagi.

sudo ls -l /var/named/

Sekarang, periksa kesalahan pada file zona, sebelum memulai layanan DNS. Pertama periksa file named.conf, lalu periksa file zona lainnya.

sudo named-checkconf /etc/named.conf
sudo named-checkzone masterdns.tecminlocal.com /var/named/tecmintlocal.fwd.zone
sudo named-checkzone masterdns.tecminlocal.com /var/named/tecmintlocal.rev.zone

Secara default iptables berjalan dan server DNS kami dibatasi untuk localhost, jika klien ingin menyelesaikan nama dari Server DNS kami, maka kami harus mengizinkan permintaan masuk, untuk itu kami perlu menambahkan aturan masuk iptables untuk port 53.

sudo iptables -I INPUT -p udp --dport 53 -m state --state NEW -j ACCEPT

Sekarang, verifikasi bahwa aturan telah ditambahkan dengan benar di rantai INPUT.

sudo iptables -L INPUT

Selanjutnya, simpan aturan dan mulai ulang firewall.

sudo service iptables save
sudo service iptables restart

Mulai layanan bernama dan jadikan tetap ada.

sudo service named start
sudo chkconfig named on
sudo chkconfig --list named

Terakhir, uji file zona Master DNS yang dikonfigurasi (maju dan mundur), menggunakan alat dig & nslookup.

dig masterdns.tecmintlocal.com		[Forward Zone]

dig -x 192.168.0.200

nslookup tecmintlocal.com
nslookup masterdns.tecmintlocal.com
nslookup slavedns.tecmintlocal.com

Dingin! kita telah mengonfigurasi DNS Master, sekarang kita perlu menyiapkan Server DNS Budak. Mari kita lanjutkan ke penyiapan server budak, Ini tidak akan memakan banyak waktu sebagai penyiapan master.

Siapkan Server DNS Budak

Di mesin Slave, kita juga perlu menginstal paket pengikat yang sama seperti yang ditunjukkan di Master, jadi mari kita instal menggunakan perintah berikut.

sudo yum install bind* -y

Buka dan edit file 'named.conf' untuk database zona dan port pendengaran kami.

sudo vim /etc/named.conf

Buat perubahan seperti yang ditunjukkan, sesuai kebutuhan Anda.

//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//

options {
        listen-on port 53 { 127.0.0.1; 192.168.0.201}; # Our Slave DNS server IP
        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; 192.168.0.0/24; };
        recursion no;

        dnssec-enable yes;
        dnssec-validation yes;
        dnssec-lookaside auto;

        /* Path to ISC DLV key */
        bindkeys-file "/etc/named.iscdlv.key";

        managed-keys-directory "/var/named/dynamic";
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

zone "." IN {
        type hint;
        file "named.ca";
};

## Define our slave forward and reverse zone, Zone files are replicated from master.

zone"tecmintlocal.com" IN {
type slave;
file "slaves/tecmintlocal.fwd.zone";
masters { 192.168.0.200; };
};

zone"0.168.192.in-addr.arpa" IN {
type slave;
file "slaves/tecmintlocal.rev.zone";
masters { 192.168.0.200; };
};

#####
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";

Mulai layanan DNS menggunakan.

sudo service named start

Setelah memulai ulang layanan pengikatan, kita tidak perlu menentukan informasi zona satu per satu, karena izinkan-transfer kita akan mereplikasi informasi zona dari server master seperti yang ditunjukkan pada gambar di bawah.

sudo ls -l /var/named/slaves

Verifikasi, informasi zona menggunakan perintah cat.

sudo cat /var/named/slaves/tecmintlocal.fwd.zone
sudo cat /var/named/slaves/tecmintlocal.rev.zone

Selanjutnya, buka port DNS 53 di iptables untuk mengizinkan koneksi masuk.

sudo iptables -I INPUT -p udp --dport 53 -m state --state NEW -j ACCEPT

Simpan aturan iptables dan mulai ulang layanan iptables.

sudo service iptables save
sudo service iptables restart

Jadikan layanan tetap ada saat boot sistem.

sudo chkconfig iptables on
Check whether persistent set for run-levels .
sudo chkconfig --list iptables

Itu dia!. Sekarang saatnya mengkonfigurasi mesin klien kami dan memeriksa nama host.

Konfigurasikan Mesin Klien

Di sisi klien kita perlu menetapkan entri Primer (192.168.0.200) dan DNS Sekunder (192.168.0.201) di pengaturan jaringan untuk menetapkan nama host. Untuk melakukannya, jalankan perintah setup untuk menentukan semua entri ini seperti yang ditunjukkan pada gambar.

setup

Jika tidak, edit file '/etc/reslov.conf' dan tambahkan entri berikut.

vim /etc/resolv.conf
search tecmintlocal.com
nameserver 192.168.0.200
nameserver 192.168.0.201

Sekarang, verifikasi pencarian ip, nama host, dan server nama.

ifconfig | grep inet
hostname
nslookup tecmintlocal.com

Sekarang, periksa pencarian DNS maju & mundur menggunakan.

dig masterdns.tecmintlocal.com
dig -x 192.168.0.200

Memahami Hasil penggalian:

  1. Header – Ini menjelaskan semua yang kami tanyakan dan bagaimana hasilnya.
  2. Status – Status NO ERROR, artinya permintaan query yang kami kirimkan berhasil tanpa ada ERROR.
  3. Pertanyaan – Query yang kami buat, disini query saya adalah masterdns.tecmintlocal.com.
  4. Jawab – Permintaan Kueri diselesaikan jika ada informasi yang tersedia.
  5. Otoritas – Respons server nama untuk domain dan zona.
  6. Tambahan – Info tambahan mengenai server nama seperti nama host dan alamat IP.
  7. Waktu kueri – Berapa lama waktu yang dibutuhkan untuk menyelesaikan nama dari server di atas.

Terakhir periksa node kami dan lakukan ping.

dig node1.tecmintlocal.com

ping masterdns.tecmintlocal.com -c 2
ping slavedns.tecmintlocal.com -c 2
ping 192.168.0.200 -c 2
ping 192.168.0.201 -c 2

Akhirnya, pengaturan selesai, di sini kita telah berhasil mengkonfigurasi server DNS Primer (Master) dan Budak (Kedua), semoga semua orang telah melakukan pengaturan tanpa masalah apa pun, jangan ragu untuk memberikan komentar jika Anda menghadapi masalah apa pun saat pengaturan.