Pada artikel sebelumnya kita sudah mengenal mengenai konsep dan gambaran Domain Name System (DNS) dan Berkeley Internet Name Domain (BIND) sebagai salah satu implementasinya dan pembuatan server DNS resolving-caching tanpa domain.
Sekarang penulis akan membahas mengenai pembuatan server DNS dengan domain yang nantinya terhubung ke Internet.
Dengan pembuatan server DNS ini, domain anda yang sudah didaftarkan pada InterNIC dapat diakses dari segala penjuru dunia (Internet).
Penulis akan membahas spesifik pada distro berbasis rpm yaitu Red Hat pada beberapa bagian dari artikel ini, walaupun konsepnya hampir sama untuk distro lain.
Diharapkan anda sudah membaca artikel pertama dan kedua sebelum membaca artikel ketiga ini.
Seperti halnya pada pembuatan resolving-caching name-server yang kita bahas sebelumnya, kita harus mempunyai paket bind, bind-utils dan caching-nameserver. Penulis asumsikan sistem Linux anda sudah terinstal BIND. Versi BIND penulis adalah 9.2.1.
notify no pada zone di berkas named.conf. Tujuannya adalah agar named tidak memberikan pencarian dan pemberitahuan ke server yang terdaftar sebagai NS record pada berkas zone dan secondary-master/slave name-server (jika ada) untuk meng-update database cache name-server domain anda itu. Karena record dengan domain-main-main Anda tidak ada dalam jaringan atau Internet.
Contoh penambahan baris notify no:
zone "domain-belum-daftar.org" {
type master;
notify no;
file "db.domain-belum-daftar.org";
};
Domain dan IP di atas adalah 'fiktif' jadi dalam named.conf perlu ditambahkan baris notify no pada bagian zone.
Untuk Anda yang mempunyai domain dan alamat IP resmi tinggal mengganti domain my-server.com dan IP-nya.
Seperti biasa kita harus mengkonfigurasi berkas-berkas:
zone untuk domain anda pada berkas ini (my-server.com).
// 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;
*/
};
zone "." IN {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
};
zone "my-server.com" IN {
type master;
notify no;
file "db.my-server.com";
};
zone "5.234.202.in-addr.arpa" IN {
type master;
notify no;
file "db.202.234.5";
};
key "key" {
algorithm hmac-md5;
secret "jggRewTTCgdTOUvWPd0cqPoRiQfKvoYYJnhpVqWcWpfrgSRedgKlpyjbmlsd";
};
Baris zone "my-server.com" adalah menunjukkan zone yang otoritatif untuk nama domain my-server.com dan diikuti dengan dengan tipe name-server yaitu master karena kita akan membuat primary-master name-server. Selanjutnya diikuti nama berkas database zone yaitu db.my-server.com, letaknya berada di direktori /var/named/ sesuai dengan options pada baris directory.
Baris zone "5.234.202.in-addr.arpa" adalah menunjukkan zone reverse-mapping. Pemetaan alamat IP ke nama domain di bawah my-server.com.
; This file holds the information on root name servers needed to ; initialize cache of Internet domain name servers ; (e.g. reference this file in the "cache ." ; configuration file of BIND domain name servers). ; ; This file is made available by InterNIC registration services ; under anonymous FTP as ; file /domain/named.root ; on server FTP.RS.INTERNIC.NET ; -OR- under Gopher at RS.INTERNIC.NET ; under menu InterNIC Registration Services (NSI) ; submenu InterNIC Registration Archives ; file named.root ; ; last update: Aug 22, 1997 ; related version of root zone: 1997082200 ; ; ; formerly NS.INTERNIC.NET ; . 3600000 IN NS A.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 ; ; formerly NS1.ISI.EDU ; . 3600000 NS B.ROOT-SERVERS.NET. B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107 ; ; formerly C.PSI.NET ; . 3600000 NS C.ROOT-SERVERS.NET. C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12 ; ; formerly TERP.UMD.EDU ; . 3600000 NS D.ROOT-SERVERS.NET. D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90 ; ; formerly NS.NASA.GOV ; . 3600000 NS E.ROOT-SERVERS.NET. E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10 ; ; formerly NS.ISC.ORG ; . 3600000 NS F.ROOT-SERVERS.NET. F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241 ; ; formerly NS.NIC.DDN.MIL ; . 3600000 NS G.ROOT-SERVERS.NET. G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4 ; ; formerly AOS.ARL.ARMY.MIL ; . 3600000 NS H.ROOT-SERVERS.NET. H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53 ; ; formerly NIC.NORDU.NET ; . 3600000 NS I.ROOT-SERVERS.NET. I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17 ; ; temporarily housed at NSI (InterNIC) ; . 3600000 NS J.ROOT-SERVERS.NET. J.ROOT-SERVERS.NET. 3600000 A 198.41.0.10 ; ; housed in LINX, operated by RIPE NCC ; . 3600000 NS K.ROOT-SERVERS.NET. K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129 ; ; temporarily housed at ISI (IANA) ; . 3600000 NS L.ROOT-SERVERS.NET. L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12 ; ; housed in Japan, operated by WIDE ; . 3600000 NS M.ROOT-SERVERS.NET. M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33 ; End of File
$TTL 86400
@ IN SOA ns1.my-server.com. root.ns1.my-server.com. (
2002081219 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns1.my-server.com.
1 IN PTR localhost.
search ns1.my-server.com my-server.com nameserver 127.0.0.1 nameserver 202.234.5.67
$TTL 86400
@ IN SOA ns1.my-server.com. root.ns1.my-server.com. (
2002081219 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
; Name Servers
@ IN NS ns1.my-server.com.
; MX records
IN MX 10 mx.my-server.com.
ns1 IN A 202.234.5.67
mx IN A 202.137.7.68
www IN A 202.137.7.69
my-server.com. IN CNAME ns1.my-server.com.
squirtle IN CNAME ns1.my-server.com.
$TTL 86400
@ IN SOA ns1.my-server.com. root.ns1.my-server.com. (
2002081219 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns1.my-server.com.
67 IN PTR ns1.my-server.com.
68 IN PTR mx.my-server.com.
69 IN PTR www.my-server.com.
/* Komentar Gaya C */ // Komentar Gaya C++ # Komentar Gaya ShellBerkas konfigurasi DNS mudah untuk dibaca karena terdapat komentar yang memberikan petunjuk untuk pengeditan kembali di lain waktu.
Pada berkas database-cache name-server root, loopback/localhost, zone, reverse-mapping digunakan semikolon (;) untuk memberikan komentar di dalamnya.
SOA mengindikasikan otoritas name-server pada zone data atau informasi nama host/domain pada zone yang bersangkutan (my-server.com).
@ menunjukkan bahwa zone yang bersangkutan adalah zone domain yang ditunjukkan berkas named.conf ke berkas database-cache tersebut atau origin zone yaitu my-server.com. Karakter @ dapat kita gantikan dengan my-server.com tapi umumnya berkas database menggunakan notasi @.
IN singkatan dari Internet. Semua informasi Internet digunakan IN dan untuk informasi non-Internet digunakan kode lain.
SOA adalah primary-master name-server yang bertanggung jawab terhadap domain my-server.com.
root.ns1.my-server.com. Jika anda menggunakan email hostmaster@ns1.my-server.com maka pada berkas database ditulis hostmaster.ns1.my-server.com.
TTL pada awal database-cache merupakan Time To Live, yaitu waktu yang diperlukan server DNS untuk menyimpan hasil resolving ke cache-nya.
2002081219 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
Serial adalah nomor seri database-cache domain my-server.com. Jika ada perubahan data pada berkas zone my-server.com misal: menambahkan domain iwan.my-server.com, maka anda harus merubah/menambah nomor serinya. Sebaiknya digunakan format tahun-bulan-tanggal-jam untuk nomor serialnya. Pada berkas database untuk zone domain my-server.com tersebut terakhir di-update tanggal 12 Agustus 2002 jam 19. Fungsi dari serial ini adalah untuk memberitahukan kepada secondary-master name-server untuk meng-update database-cache-nya jika ada perubahan pada primary-master name-server yaitu dengan melakukan pengecekan nomor serial. Jika nomor serial berubah/bertambah maka secondary-master name-server akan segera melakukan zone-transfer dari primary-master name-server.
Refresh adalah selang waktu yang diperlukan (dalam detik) secondary-master name-server untuk melakukan pengecekan perubahan database-cache pada primary-master name-server.
Retry adalah waktu (dalam detik) yang digunakan secondary-master name-server untuk menunggu pengulangan cek berkas zone jika pada saat proses refresh primary-master name-server tidak memberikan respon.
Expire adalah waktu (dalam detik) yang digunakan secondary-master name-server untuk mempertahankan berkas zone jika tidak dapat melakukan zone-refresh. Jika setelah waktu expire telah habis tapi secondary-master name-server tidak dapat melakukan zone-refresh maka berkas zone pada secondary-master name-server akan dihapus.
Minimum adalah nilai waktu (TTL) default untuk semua resource-record yang ada dalam berkas zone.
IN MX 10 mx.my-server.com.Baris di atas menunjukkan bahwa mx.my-server.com sebagai mail exchanger untuk mail domain my-server.com yang umumnya sebagai server mail.
Proses routing mail
IN MX 10 mx1.my-server.com. IN MX 20 mx2.my-server.com.Ketika ada mail untuk domain my-server.com maka mail tersebut akan dikirimkan terlebih dahulu ke mx1.my-server.com untuk diproses, jika gagal maka mail akan diarahkan ke mx2.my-server.com sesuai dengan nilai preferensi.
A (address) yaitu pemetaan nama ke alamat IP.
PTR (pointer) yaitu pemetaan alamat IP ke nama.
CNAME yaitu canonical name fungsinya untuk alias, jadi suatu host dapat mempunyai nama lebih dari satu.
named dengan mengetikkan:
# /etc/init.d/named restartatau
# /usr/sbin/rndc reload
named berjalan dengan sukses, dengan mengetikkan:
# tail -f /var/log/messages Aug 27 20:59:37 ns1 named[871]: shutting down Aug 27 20:59:37 ns1 named[871]: stopping command channel on 127.0.0.1#953 Aug 27 20:59:37 ns1 named[871]: no longer listening on 127.0.0.1#53 Aug 27 20:59:37 ns1 named[868]: exiting Aug 27 20:59:38 ns1 named: named shutdown succeeded Aug 27 20:59:38 ns1 named[22965]: starting BIND 9.2.1 -u named Aug 27 20:59:38 ns1 named[22965]: using 1 CPU Aug 27 20:59:38 ns1 named[22968]: loading configuration from '/etc/named.conf' Aug 27 20:59:38 ns1 named[22968]: no IPv6 interfaces found Aug 27 20:59:38 ns1 named[22968]: listening on IPv4 interface lo, 127.0.0.1#53 Aug 27 20:59:38 ns1 named[22968]: listening on IPv4 interface eth0, 202.234.5.67#53 Aug 27 20:59:38 ns1 named[22968]: listening on IPv4 interface eth1, 192.168.3.1#53 Aug 27 20:59:38 ns1 named[22968]: command channel listening on 127.0.0.1#953 Aug 27 20:59:38 ns1 named[22968]: zone 0.0.127.in-addr.arpa/IN: loaded serial 2002081219 Aug 27 20:59:38 ns1 named[22968]: zone 5.234.202.in-addr.arpa/IN: loaded serial 2002081219 Aug 27 20:59:38 ns1 named[22968]: zone my-server.com/IN: loaded serial 2002081219 Aug 27 20:59:38 ns1 named: named startup succeeded Aug 27 20:59:38 ns1 named[22968]: runningItu berarti
named anda sudah berjalan dan mendengarkan pada port 53.
# dig -x ns1.my-server.com ; <<>> DiG 9.2.1 <<>> -x ns1.my-server.com ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 6716 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ;ns1.my-server.com. IN A ;; ANSWER SECTION: ns1.my-server.com. 86400 IN A 202.234.5.67 ;; AUTHORITY SECTION: my-server.com. 86400 IN NS ns1.my-server.com. ;; ADDITIONAL SECTION: ns1.my-server.com. 86400 IN A 202.234.5.67 ;; Query time: 46 msec ;; SERVER: 202.234.5.67#53(202.234.5.67) ;; WHEN: Mon Aug 27 20:58:36 2002 ;; MSG SIZE rcvd: 92Name-server yang baru saja anda buat sudah siap menerima permintaan resolving nama domain yang akan menunjukkan host yang ada dalam jaringan anda.
Selesai sudah bahasan pembuatan server DNS BIND dengan domain.
Artikel selanjutnya akan membahas mengenai keamanan server DNS (BIND).
Saran dan kritik dapat dialamatkan ke stwn[at]duniasemu[dot]org.