Bind atau named adalah sebuah aplikasi dari DNS (Domain Name Server) yang dibuat oleh Paul Vixie. Named bekerja secara background mendengarkan permintaan client pada port 53.
Untuk merequest sebuah domain di Indonesia dapat memohon kepada http://www.idnic.net.id. Idnic melayani permohonan domain dengan akhiran co.id, ac.id, dan go.id.
Yang menyediakan domain-domain tertentu dengan gratis untuk belajar named dan mencoba, misalnya : http://www.za.net dan http://www.ml.org. Syaratnya cuma satu yaitu mempunyai beberapa alamat IP, 2 atau 3 sudah cukup.
Konsep DNS
Dalam berkomunikasi, antar komputer sudah cukup dengan menggunakan alamat IP. Namun untuk manusia diperlukan sebuah nama untuk saling kenal dan oleh karena itu DNS ada. Manusia tidak mudah mengingat alamat IP yang terdiri dari angka dibandingkan sebuah nama.
DNS adalah sebuah aplikasi untuk menukarkan nama komputer ke alamat IP dan sebaliknya. Contoh software untuk DNS adalah BIND (Berkeley Internet Name Domain) untuk UNIX atau sering disebut named. Cara kerja DNS adalah sbb :
Misalkan ada client yang menanyakan "berapa alamat IP dari www.ilmu.net ?". Pertanyaan ini dilemparkan ke DNS Lokal. Dengan segera DNS Lokal memeriksa databasenya. Kemudian ternyata www.ilmu.net tidak terdapat di dalam databasenya. Lalu ia memeriksa cache. Bila ada, jawaban langsung dikirim ke client. Tapi bila tidak ada, maka ia akan mencari jawabannya ke Root DNS. Root DNS pasti mempunyai database yang dimaksud dan memberikannya ke DNS Lokal dan pada akhirnya diberikan ke client tadi.
Root DNS ini memuat seluruh daftar nama yang ada di dunia, dan Root DNS ini tidak hanya terdiri dari satu server melainkan sekitar 13 server yang diletakkan di seluruh dunia.
Nama domain di dunia dipecah menjadi :
.com (komersial)
.org (organisasi)
.edu (education/pendidikan)
.gov (government/pemerintahan)
.mil (military/militer)
.net (network)
dan di Indonesia diubah sedikit menjadi :
.co.id (komersial)
.or.id (organisasi)
.ac.id (academic)
.go.id (government)
.mil.id (militer)
.net.id (layanan jaringan)
Pembagian ini berdasarkan kepada jenis institusi yang meminta nama domain.
Selain itu, penyusunan domain dibuat bertingkat dan mempunyai hirarki tertentu. Domain-domain di seluruh dunia sangat banyak dan tidak mungkin semuanya ditampung oleh Root DNS. Root DNS hanya memegang 'kepala' dari domain tertentu.
Saturday, July 28, 2007
Otomatisasi dengan skrip shell (bagian 2)
Priyadi Iman Nurcahyo
Majalah InfoKomputer
Juli 2000
Dalam edisi yang lalu, kita telah membahas beberapa konstruksi dari Bourne Again Shell. Kini kita akan membahas beberapa konstruksi lainnya, serta bagaimana mengotomatisasi eksekusi skrip shell melalui cron dan at.
Konstruksi untuk Looping
Bash memiliki dua buah konstruksi untuk melakukan iterasi, yaitu while dan until. Keduanya memiliki sintaks seperti di bawah ini:
while kondisi ; do perintah ; done
until kondisi ; do perintah ; done
Pada konstruksi while, bash akan mengeksekusi perintah berulang-ulang jika kondisi bernilai benar. Sedangkan pada konstruksi until, bash akan mengeksekusi perintah berulang-ulang jika kondisi bernilai salah.
Sebagaimana konstruksi lainnya, anda dapat menggabungkan beberapa perintah dalam satu baris dengan menggunakan titik koma (;). Anda juga dapat mengeksekusi perintah di dalam sub-shell dengan menuliskannya di dalam tanda kurung. Kondisi dapat berupa perintah shell biasa ataupun test kondisi (lihat di bawah). Anda juga dapat menempatkan beberapa perintah di dalam kondisi, namun anda harus memasukkannya di dalam tanda kurung (dieksekusi di dalam sub shell), perintah yang akan dicek kebenarannya adalah perintah yang terakhir.
Contoh:
• (while true ; do (clear ; who ; sleep 5) ; done), memonitor user yang sedang online, perintah tersebut akan menghapus layar, kemudian menampilkan output perintah who berulang-ulang setiap lima detik. Perintah true akan selalu bernilai benar. Seluruh konstruksi while dijalankan di dalam sub-shell supaya dapat di-break dengan menggunakan Ctrl-C, jika tidak, Ctrl-C hanya akan berpengaruh pada perintah (clear ; who ; sleep 5).
Konstruksi untuk Kondisi
Kondisi adalah konstruksi yang wajib dimiliki oleh bahasa pemrograman dan skrip apapun. Bash memiliki konstruksi seperti dalam bentuk if ... then ... else ... fi. Konstruksi tersebut memiliki sintaks seperti ini:
if kondisi
then
perintah1
else
perintah2
fi
Bash akan mengeksekusi perintah1 jika kondisi terpenuhi, atau bash akan mengeksekusi perintah2 jika kondisi tidak terpenuhi. Seperti biasa, kondisi dapat terdiri dari beberapa perintah shell jika dilingkungi oleh tanda kurung. Perintah1 dan perintah2 dapat juga terdiri dari beberapa baris perintah.
Beberapa buah contoh:
• if ping -c1 sinta ; then logger "sinta hidup" ; else logger "sinta meninggal" ; fi, ping -c1 delta akan mencek apakah komputer bernama sinta sedang aktif. Jika sedang aktif, pesan "sinta hidup" akan dikirim ke syslog, dan jika sedang mati, pesan "sinta meninggal" akan dikirim ke syslog. Di kebanyakan distribusi Linux, biasanya pesan tersebut akan ditemukan di file /var/log/messages atau /var/adm/messages
• for A in `find / -type f`
• do
• if (file $A | grep text > /dev/null)
• then
• sed s/10\.0\.0\.1/192.168.0.1/g < $A > $A._tmp
• mv -f $A._tmp $A
• fi
• done
• Perintah ini akan mengganti seluruh string 10.0.0.1 menjadi 192.168.0.1 pada setiap file teks yang ada di dalam filesystem. Perintah file $A | grep text akan bernilai benar jika file pada variabel $A adalah file teks.
• while true
• do
• sleep 5
• if (ifconfig | grep ppp0 > /dev/null)
• then
• if ( ! ps -x | grep -v grep | grep gnomeicu > /dev/null)
• then
• gnomeicu -a &
• fi
• if ( ! ps -x | grep -v grep | grep gaim > /dev/null)
• then
• gaim &
• fi
• else
• killall gnomeicu 2> /dev/null
• killall gaim 2> /dev/null
• fi
• done
• Perintah di atas akan mencek kondisi link internet dial-up setiap 5 detik. Perintah ifconfig | grep ppp0 mencek apakah string ppp0 ada pada output dari ifconfig, dengan kata lain mencek apakah link internet dial-up sedang aktif. Jika sedang aktif maka bash akan menjalankan gnomeicu dan gaim di background (dengan menggunakan tanda &), dan jika sedang tidak aktif, bash akan mematikan kedua proses tersebut. Tanda \ pada skrip di atas berguna untuk memisahkan baris yang terlalu panjang ke baris lainnya, namun tetap dianggap sebagai satu baris perintah oleh bash. Perintah ps -x | grep -v grep | grep gnomeicu akan memberikan nilai benar jika ditemukan proses gnomeicu yang sedang aktif, grep -v grep dalam hal ini diperlukan untuk memfilter string grep, karena string grep gnomeicu akan muncul pada tabel proses. Tanda 2> /dev/null akan mengakibatkan pesan error tidak ditampilkan (killall akan menampilkan pesan error jika proses yang akan dimatikan ternyata tidak aktif. Namun skrip shell tersebut akan lebih efisien jika dilakukan dari dalam cron (lihat di bawah).
Menjalankan Perintah Secara Berkala dengan Cron
Cron berguna untuk menjalankan perintah-perintah setiap waktu tertentu. Sebelum menggunakan cron, pastikanlah daemon crond sedang berjalan dengan menggunakan ps auwx | grep crond. Jika belum aktif, aktifkanlah dengan menggunakan skrip inisialisasi crond, biasanya ditemukan di /etc/rc.d/init.d pada distribusi RedHat atau kompatibel, atau /etc/init.d pada distribusi Debian. Untuk mengaktifkannya pada setiap booting gunakan ntsysv jika anda menggunakan RedHat atau kompatibel.
Konfigurasi cron dilakukan dengan menggunakan perintah crontab -e. Sebelum menjalankan crontab, ada baiknya anda menset variabel EDITOR berisi editor teks favorit anda, misalnya: export EDITOR=pico, jika anda menggunakan pico.
Format crontab terdiri dari beberapa baris, dengan satu baris berisi satu perintah berkala. Setiap baris terdiri dari lima buah field pertama yang berisi informasi kapan perintah tersebut akan dijalankan. Field-field tersebut adalah:
• menit, bernilai 0-59
• jam, bernilai 0-23
• tanggal, bernilai 0-31
• bulan, bernilai 0-12
• hari, bernilai 0-7 (0 atau 7 adalah hari Minggu)
Selain dari field-field tersebut, adalah perintah yang akan dieksekusi oleh cron. Nilai dapet berupa range (dipisahkan oleh -) atau beberapa nilai (dipisahkan oleh koma (,)). Anda dapat juga menggunakan asterisk untuk mencantumkan semua nilai yang mungkin untuk field tersebut.
Contoh:
• 5 0 * * * cat /dev/null > /var/log/pacct
mengosongkan file /var/log/pacct (untuk keperluan process accounting) setiap jam 12 malam lewat 5 menit
• 5 3 1,15 * * df | mail admin
melaporkan keadaan ruang harddisk kepada admin melalui email setiap tanggal 1 dan 15 setiap bulannya, pada pukul 3.15 pagi
• * * * * * (if (ifconfig | grep ppp0) ; then /usr/local/bin/ppp-nyala ; else /usr/local/bin/ppp-mati ; fi ) > /dev/null 2>&1
(semua dalam satu baris)
akan menjalankan skrip /usr/local/bin/ppp-mati jika koneksi internet dalam keadaan hidup, dan menjalankan /usr/local/bin/ppp-mati jika koneksi dial-up internet dalam keadaan mati, pengecekan dilakukan setiap menit.
• 0 0-23/2 * * 1-5 (if ping -c1 donna ; then logger "donna sehat wal afiat" ; else logger "donna meninggal" ; fi)
(semua dalam satu baris)
mencek keadaan donna (komputer bernama donna) apakah hidup atau mati (dengan cara ping), pengecekan dilakukan setiap dua jam pada hari kerja (Senin-Jumat), pesan akan disampaikan melalui syslog.
• 0 3 * * * (cd /home/priyadi/htdocs/lt ; wget http://www.linuxtoday.com)
(semua dalam satu baris)
mendownload halaman muka dari LinuxToday ke dalam direktori /home/priyadi/htdocs/lt setiap jam 3 pagi.
Menjalankan Perintah di Masa Yang Akan Datang
Jika cron menjalankan sebuah perintah secara rutin, maka at menjalankan perintah hanya satu kali. Perintah yang sering digunakan untuk menjalankan at adalah sebagai berikut:
echo "perintah" | at waktu
at akan membaca perintah dari standard input, dan menjalankannya pada waktu yang telah ditentukan. Seperti halnya crond, untuk menjalankan at, anda harus mengaktifkan daemon atd. Cara pengaktifannya mirip dengan cara mengaktifkan crond di atas. Perintah yang dijalankan melalui at akan memiliki lingkungan yang serupa dengan lingkungan pada saat anda menjalankan at.
at juga memiliki beberapa program pembantu:
• atq, untuk melihat perintah-perintah yang akan dikerjakan oleh at
• atrm, untuk menghapus perintah-perintah tersebut, gunakan nomor perintah seperti yang tercantum di perintah atq
Beberapa contoh penggunaan at:
• echo "wget -t0 -c ftp://updates.redhat.com/6.0/i386/*" | at 0200
mendownload update dari RedHat Linux 6.0 pada jam 2 malam
• echo "cat /boot/vmlinuz > /dev/dsp" | at 0500
membangunkan anda pada jam 5 pagi. cat /boot/vmlinuz > /dev/dsp akan mengirimkan kernel Linux langsung ke kartu suara anda, tentunya anda juga dapat menggantikan kernel Linux dengan file suara yang lebih enak didengar :-)
• echo "killall pppd" | at now+15minutes
akan memutuskan hubungan Internet anda 15 menit kemudian.
• echo "halt" | at now+2hours
akan mematikan komputer anda dua jam kemudian (tentunya jika komputer anda memiliki fasilitas ATX)
Memilih Jalan untuk Menyelesaikan Pekerjaan Anda
Walaupun Linux memiliki antarmuka grafis yang menarik, namun belum tentu antarmuka grafis akan menyelesaikan pekerjaan lebih cepat dan efisien dibandingkan antarmuka teks. Dengan antarmuka grafis, sebuah pekerjaan akan lebih mudah dipelajari, dan akan lebih mudah dikerjakan, jika fasilitas untuk menyelesaikan pekerjaan anda tersedia. Namun jika tidak tersedia, anda tidak memiliki pilihan apa-apa. Antarmuka teks lebih sulit dipelajari dibandingkan dengan antarmuka grafis, namun memiliki kelebihan dalam hal otomatisasi, anda dapat menyingkat pekerjaan-pekerjaan yang berulang-ulang, dan menginstruksikan komputer untuk mengerjakan pekerjaan-pekerjaan tersebut. Hal ini tentunya akan menghemat sumber daya, dan memaksimalkan pekerjaan komputer, sehingga dapat menekan biaya operasional. Sebuah server bahkan hampir tidak perlu mendapat perhatian manusia jika segalanya telah diotomatisasi.
Linux mendukung kedua antarmuka tersebut, grafis dan teks, sehingga anda dapat memanfaatkan antarmuka yang lebih menguntungkan untuk menyelesaikan pekerjaan-pekerjaan anda. Anda dapat menggunakan komputer dengan salah satu dari antarmuka tersebut, namun anda dapat menggunakan komputer dengan lebih efisien dan efektif jika anda menggunakan keduanya.
Mungkin hal yang lebih sulit adalah mengidentifikasi pekerjaan-pekerjaan yang dapat diotomatisasi dalam antarmuka teks karena hampir semua dari kita telah terbiasa oleh antarmuka grafis. Mengotomatisasi pekerjaan adalah hal membutuhkan sumber daya (waktu) yang tidak sedikit, namun otomatisasi akan menghemat waktu anda dalam jangka panjang. Hal yang harus anda lakukan adalah mencari pekerjaan-pekerjaan yang dilakukan secara berulang kali, serta tidak membutuhkan pemikiran manusia. Pekerjaan-pekerjaan seperti membackup file, mendownload email, serta menghapus file log adalah kandidat kuat untuk diotomatisasi karena tidak membutuhkan pemikiran manusia. Sedangkan pekerjaan-pekerjaan seperti membuat surat atau laporan serta membuat program adalah hal-hal yang membutuhkan pemikiran serta perasaan manusia, dan tidak dapat dilakukan sepenuhnya oleh komputer.
Yang diperlukan untuk melakukan otomatisasi hanyalah kreativitas, karena di dalam kebanyakan distribusi Linux, semua program untuk keperluan tersebut telah disediakan.
Majalah InfoKomputer
Juli 2000
Dalam edisi yang lalu, kita telah membahas beberapa konstruksi dari Bourne Again Shell. Kini kita akan membahas beberapa konstruksi lainnya, serta bagaimana mengotomatisasi eksekusi skrip shell melalui cron dan at.
Konstruksi untuk Looping
Bash memiliki dua buah konstruksi untuk melakukan iterasi, yaitu while dan until. Keduanya memiliki sintaks seperti di bawah ini:
while kondisi ; do perintah ; done
until kondisi ; do perintah ; done
Pada konstruksi while, bash akan mengeksekusi perintah berulang-ulang jika kondisi bernilai benar. Sedangkan pada konstruksi until, bash akan mengeksekusi perintah berulang-ulang jika kondisi bernilai salah.
Sebagaimana konstruksi lainnya, anda dapat menggabungkan beberapa perintah dalam satu baris dengan menggunakan titik koma (;). Anda juga dapat mengeksekusi perintah di dalam sub-shell dengan menuliskannya di dalam tanda kurung. Kondisi dapat berupa perintah shell biasa ataupun test kondisi (lihat di bawah). Anda juga dapat menempatkan beberapa perintah di dalam kondisi, namun anda harus memasukkannya di dalam tanda kurung (dieksekusi di dalam sub shell), perintah yang akan dicek kebenarannya adalah perintah yang terakhir.
Contoh:
• (while true ; do (clear ; who ; sleep 5) ; done), memonitor user yang sedang online, perintah tersebut akan menghapus layar, kemudian menampilkan output perintah who berulang-ulang setiap lima detik. Perintah true akan selalu bernilai benar. Seluruh konstruksi while dijalankan di dalam sub-shell supaya dapat di-break dengan menggunakan Ctrl-C, jika tidak, Ctrl-C hanya akan berpengaruh pada perintah (clear ; who ; sleep 5).
Konstruksi untuk Kondisi
Kondisi adalah konstruksi yang wajib dimiliki oleh bahasa pemrograman dan skrip apapun. Bash memiliki konstruksi seperti dalam bentuk if ... then ... else ... fi. Konstruksi tersebut memiliki sintaks seperti ini:
if kondisi
then
perintah1
else
perintah2
fi
Bash akan mengeksekusi perintah1 jika kondisi terpenuhi, atau bash akan mengeksekusi perintah2 jika kondisi tidak terpenuhi. Seperti biasa, kondisi dapat terdiri dari beberapa perintah shell jika dilingkungi oleh tanda kurung. Perintah1 dan perintah2 dapat juga terdiri dari beberapa baris perintah.
Beberapa buah contoh:
• if ping -c1 sinta ; then logger "sinta hidup" ; else logger "sinta meninggal" ; fi, ping -c1 delta akan mencek apakah komputer bernama sinta sedang aktif. Jika sedang aktif, pesan "sinta hidup" akan dikirim ke syslog, dan jika sedang mati, pesan "sinta meninggal" akan dikirim ke syslog. Di kebanyakan distribusi Linux, biasanya pesan tersebut akan ditemukan di file /var/log/messages atau /var/adm/messages
• for A in `find / -type f`
• do
• if (file $A | grep text > /dev/null)
• then
• sed s/10\.0\.0\.1/192.168.0.1/g < $A > $A._tmp
• mv -f $A._tmp $A
• fi
• done
• Perintah ini akan mengganti seluruh string 10.0.0.1 menjadi 192.168.0.1 pada setiap file teks yang ada di dalam filesystem. Perintah file $A | grep text akan bernilai benar jika file pada variabel $A adalah file teks.
• while true
• do
• sleep 5
• if (ifconfig | grep ppp0 > /dev/null)
• then
• if ( ! ps -x | grep -v grep | grep gnomeicu > /dev/null)
• then
• gnomeicu -a &
• fi
• if ( ! ps -x | grep -v grep | grep gaim > /dev/null)
• then
• gaim &
• fi
• else
• killall gnomeicu 2> /dev/null
• killall gaim 2> /dev/null
• fi
• done
• Perintah di atas akan mencek kondisi link internet dial-up setiap 5 detik. Perintah ifconfig | grep ppp0 mencek apakah string ppp0 ada pada output dari ifconfig, dengan kata lain mencek apakah link internet dial-up sedang aktif. Jika sedang aktif maka bash akan menjalankan gnomeicu dan gaim di background (dengan menggunakan tanda &), dan jika sedang tidak aktif, bash akan mematikan kedua proses tersebut. Tanda \ pada skrip di atas berguna untuk memisahkan baris yang terlalu panjang ke baris lainnya, namun tetap dianggap sebagai satu baris perintah oleh bash. Perintah ps -x | grep -v grep | grep gnomeicu akan memberikan nilai benar jika ditemukan proses gnomeicu yang sedang aktif, grep -v grep dalam hal ini diperlukan untuk memfilter string grep, karena string grep gnomeicu akan muncul pada tabel proses. Tanda 2> /dev/null akan mengakibatkan pesan error tidak ditampilkan (killall akan menampilkan pesan error jika proses yang akan dimatikan ternyata tidak aktif. Namun skrip shell tersebut akan lebih efisien jika dilakukan dari dalam cron (lihat di bawah).
Menjalankan Perintah Secara Berkala dengan Cron
Cron berguna untuk menjalankan perintah-perintah setiap waktu tertentu. Sebelum menggunakan cron, pastikanlah daemon crond sedang berjalan dengan menggunakan ps auwx | grep crond. Jika belum aktif, aktifkanlah dengan menggunakan skrip inisialisasi crond, biasanya ditemukan di /etc/rc.d/init.d pada distribusi RedHat atau kompatibel, atau /etc/init.d pada distribusi Debian. Untuk mengaktifkannya pada setiap booting gunakan ntsysv jika anda menggunakan RedHat atau kompatibel.
Konfigurasi cron dilakukan dengan menggunakan perintah crontab -e. Sebelum menjalankan crontab, ada baiknya anda menset variabel EDITOR berisi editor teks favorit anda, misalnya: export EDITOR=pico, jika anda menggunakan pico.
Format crontab terdiri dari beberapa baris, dengan satu baris berisi satu perintah berkala. Setiap baris terdiri dari lima buah field pertama yang berisi informasi kapan perintah tersebut akan dijalankan. Field-field tersebut adalah:
• menit, bernilai 0-59
• jam, bernilai 0-23
• tanggal, bernilai 0-31
• bulan, bernilai 0-12
• hari, bernilai 0-7 (0 atau 7 adalah hari Minggu)
Selain dari field-field tersebut, adalah perintah yang akan dieksekusi oleh cron. Nilai dapet berupa range (dipisahkan oleh -) atau beberapa nilai (dipisahkan oleh koma (,)). Anda dapat juga menggunakan asterisk untuk mencantumkan semua nilai yang mungkin untuk field tersebut.
Contoh:
• 5 0 * * * cat /dev/null > /var/log/pacct
mengosongkan file /var/log/pacct (untuk keperluan process accounting) setiap jam 12 malam lewat 5 menit
• 5 3 1,15 * * df | mail admin
melaporkan keadaan ruang harddisk kepada admin melalui email setiap tanggal 1 dan 15 setiap bulannya, pada pukul 3.15 pagi
• * * * * * (if (ifconfig | grep ppp0) ; then /usr/local/bin/ppp-nyala ; else /usr/local/bin/ppp-mati ; fi ) > /dev/null 2>&1
(semua dalam satu baris)
akan menjalankan skrip /usr/local/bin/ppp-mati jika koneksi internet dalam keadaan hidup, dan menjalankan /usr/local/bin/ppp-mati jika koneksi dial-up internet dalam keadaan mati, pengecekan dilakukan setiap menit.
• 0 0-23/2 * * 1-5 (if ping -c1 donna ; then logger "donna sehat wal afiat" ; else logger "donna meninggal" ; fi)
(semua dalam satu baris)
mencek keadaan donna (komputer bernama donna) apakah hidup atau mati (dengan cara ping), pengecekan dilakukan setiap dua jam pada hari kerja (Senin-Jumat), pesan akan disampaikan melalui syslog.
• 0 3 * * * (cd /home/priyadi/htdocs/lt ; wget http://www.linuxtoday.com)
(semua dalam satu baris)
mendownload halaman muka dari LinuxToday ke dalam direktori /home/priyadi/htdocs/lt setiap jam 3 pagi.
Menjalankan Perintah di Masa Yang Akan Datang
Jika cron menjalankan sebuah perintah secara rutin, maka at menjalankan perintah hanya satu kali. Perintah yang sering digunakan untuk menjalankan at adalah sebagai berikut:
echo "perintah" | at waktu
at akan membaca perintah dari standard input, dan menjalankannya pada waktu yang telah ditentukan. Seperti halnya crond, untuk menjalankan at, anda harus mengaktifkan daemon atd. Cara pengaktifannya mirip dengan cara mengaktifkan crond di atas. Perintah yang dijalankan melalui at akan memiliki lingkungan yang serupa dengan lingkungan pada saat anda menjalankan at.
at juga memiliki beberapa program pembantu:
• atq, untuk melihat perintah-perintah yang akan dikerjakan oleh at
• atrm, untuk menghapus perintah-perintah tersebut, gunakan nomor perintah seperti yang tercantum di perintah atq
Beberapa contoh penggunaan at:
• echo "wget -t0 -c ftp://updates.redhat.com/6.0/i386/*" | at 0200
mendownload update dari RedHat Linux 6.0 pada jam 2 malam
• echo "cat /boot/vmlinuz > /dev/dsp" | at 0500
membangunkan anda pada jam 5 pagi. cat /boot/vmlinuz > /dev/dsp akan mengirimkan kernel Linux langsung ke kartu suara anda, tentunya anda juga dapat menggantikan kernel Linux dengan file suara yang lebih enak didengar :-)
• echo "killall pppd" | at now+15minutes
akan memutuskan hubungan Internet anda 15 menit kemudian.
• echo "halt" | at now+2hours
akan mematikan komputer anda dua jam kemudian (tentunya jika komputer anda memiliki fasilitas ATX)
Memilih Jalan untuk Menyelesaikan Pekerjaan Anda
Walaupun Linux memiliki antarmuka grafis yang menarik, namun belum tentu antarmuka grafis akan menyelesaikan pekerjaan lebih cepat dan efisien dibandingkan antarmuka teks. Dengan antarmuka grafis, sebuah pekerjaan akan lebih mudah dipelajari, dan akan lebih mudah dikerjakan, jika fasilitas untuk menyelesaikan pekerjaan anda tersedia. Namun jika tidak tersedia, anda tidak memiliki pilihan apa-apa. Antarmuka teks lebih sulit dipelajari dibandingkan dengan antarmuka grafis, namun memiliki kelebihan dalam hal otomatisasi, anda dapat menyingkat pekerjaan-pekerjaan yang berulang-ulang, dan menginstruksikan komputer untuk mengerjakan pekerjaan-pekerjaan tersebut. Hal ini tentunya akan menghemat sumber daya, dan memaksimalkan pekerjaan komputer, sehingga dapat menekan biaya operasional. Sebuah server bahkan hampir tidak perlu mendapat perhatian manusia jika segalanya telah diotomatisasi.
Linux mendukung kedua antarmuka tersebut, grafis dan teks, sehingga anda dapat memanfaatkan antarmuka yang lebih menguntungkan untuk menyelesaikan pekerjaan-pekerjaan anda. Anda dapat menggunakan komputer dengan salah satu dari antarmuka tersebut, namun anda dapat menggunakan komputer dengan lebih efisien dan efektif jika anda menggunakan keduanya.
Mungkin hal yang lebih sulit adalah mengidentifikasi pekerjaan-pekerjaan yang dapat diotomatisasi dalam antarmuka teks karena hampir semua dari kita telah terbiasa oleh antarmuka grafis. Mengotomatisasi pekerjaan adalah hal membutuhkan sumber daya (waktu) yang tidak sedikit, namun otomatisasi akan menghemat waktu anda dalam jangka panjang. Hal yang harus anda lakukan adalah mencari pekerjaan-pekerjaan yang dilakukan secara berulang kali, serta tidak membutuhkan pemikiran manusia. Pekerjaan-pekerjaan seperti membackup file, mendownload email, serta menghapus file log adalah kandidat kuat untuk diotomatisasi karena tidak membutuhkan pemikiran manusia. Sedangkan pekerjaan-pekerjaan seperti membuat surat atau laporan serta membuat program adalah hal-hal yang membutuhkan pemikiran serta perasaan manusia, dan tidak dapat dilakukan sepenuhnya oleh komputer.
Yang diperlukan untuk melakukan otomatisasi hanyalah kreativitas, karena di dalam kebanyakan distribusi Linux, semua program untuk keperluan tersebut telah disediakan.
Otomatisasi dengan skrip shell (bagian 1)
Priyadi Iman Nurcahyo
Majalah InfoKomputer
Juli 2000
Anda dapat menggunakan Linux tanpa menyentuh antarmuka command line, namun dengan command line anda dapat melakukan banyak hal yang tidak mungkin dilakukan di antarmuka grafis (GUI). Anda pun dapat mengotomatisasi pekerjaan-pekerjaan yang pada kondisi biasa memerlukan anda untuk berhadapan langsung di depan komputer.
Di saat Linux mendapatkan tampilan yang menarik dan semakin mudah untuk digunakan, namun perintah-perintah command line tetap digemari oleh penggunanya karena banyak sekali pekerjaan yang akan jauh lebih efisien dan efektif jika dikerjakan dengan command line.
Kelebihan lainnya dari perintah command line adalah mudah untuk diotomatisasi, misalnya anda dapat menjalankannya pada saat komputer anda booting, pada saat login, atau pada waktu tertentu. Selain itu perintah command line akan lebih berguna jika anda perlu untuk mengakses komputer lain yang jaraknya jauh, anda tidak akan menggunakan tampilan grafis untuk mengakses server anda yang berada di Amerika, misalnya.
Vendor sistem operasi lain sering menyebarkan isu bahwa command line adalah salah satu kelemahan Linux (dan sistem operasi UNIX lain pada umumnya) karena sulit untuk digunakan dan tidak user friendly. Namun jika anda telah menguasai command line di Linux, anda akan mendapatkan bahwa command line bukanlah kelemahan, melainkan kelebihan dari Linux. Isu tersebut hanyalah trik-trik marketing dari pihak-pihak yang tidak menginginkan kesuksesan Linux (dan UNIX lainnya).
Bagi anda yang telah berpengalaman pada command line pada sistem operasi DOS atau Windows (command.com pada DOS dan Windows95/98 atau cmd.exe pada Windows NT), anda tentunya sering menemui kebuntuan dalam memecahkan masalah. Anda akan menemui bahwa command line pada Linux lebih fleksibel dan mudah untuk digunakan.
Bash, shell standard pada Linux
Lingkungan command line yang paling umum ditemukan di sistem Linux adalah Bourne Again Shell (bash). Bash dibuat oleh Brian Fox dari Free Software Foundation. Bash merupakan pengembangan dari Bourne Shell (sh) dan Korn Shell (ksh) dari sistem UNIX, sehingga bash cukup kompatibel dengan skrip-skrip yang ditemukan di sistem UNIX lainnya. Selain bash, Linux juga memiliki beberapa shell lainnya seperti tcsh, ash dan zsh. Artikel ini hanya akan membahas shell yang paling umum digunakan, yaitu bash.
Shell adalah software yang memberikan interaksi pada pengguna komputer, anda menggunakan shell jika anda melakukan login pada console Linux, atau membuka xterm pada X Window System.
Membuat skrip shell
Skrip shell adalah kumpulan perintah-perintah yang akan dieksekusi. Skrip shell mirip dengan batch file pada sistem DOS dan Windows. Selain itu skrip shell juga memiliki konstruksi seperti halnya bahasa pemrograman pada umumnya, misalnya: while, for, switch, if, fungsi dan lain-lain.
Anda membuat skrip shell dengan menggunakan editor teks seperti halnya vi, pico, gedit, joe atau emacs. Pilihlah teks editor yang paling anda sukai. Misalnya anda menggunakan pico, gunakan perintah seperti ini untuk membuat skrip shell yang bernama hello:
$ pico hello
Setelah itu anda buatlah isi dari file hello tersebut, misalnya:
echo hello world
Kemudian simpanlah file tersebut dan keluar dari editor teks yang anda gunakan. Untuk membuat skrip shell hello tersebut dapat dijalankan, gunakan perintah:
$ chmod +x hello
Perintah tersebut akan membuat file hello menjadi dapat dieksekusi. Anda dapat menjalankannya dengan perintah seperti:
$ ./hello
Jika berhasil, anda akan mendapatkan output:
hello world
Pipe dan Redireksi
Banyak perintah di Linux yang sangat sederhana, biasanya mendapatkan inputnya dari standard input atau parameter dan mengeluarkan outputnya ke standard output. Perintah-perintah ini tidak berguna jika digunakan sendirian. Namun beberapa dari perintah-perintah tersebut dapat dirangkaikan untuk mengerjakan tugas yang spesifik.
Beberapa contoh perintah-perintah tersebut adalah:
• cat: membaca isi parameter-parameternya, kemudian mengeluarkannya ke standard output. Contoh: cat /etc/passwd akan menampilkan isi dari file /etc/passwd
• wc: membaca standard input kemudian memberikan output jumlah karakter, kata dan baris pada standard output.
• find: mencari file yang sesuai kriteria pada parameternya, kemudian memberikan outputnya ke standard output. Contoh: find -type d akan menampilkan daftar direktori di bawah direktori kerja.
• sed: membaca standard input, mengeditnya sesuai dengan perintah pada parameternya, kemudian memberikan outputnya ke standard output. Contoh: sed -e s/lama/baru/g akan mengganti semua kata lama pada standard input menjadi baru
• grep: membaca standard input, kemudian menampilkan baris yang berisi string pada parameter grep. Contoh: grep root akan menampilkan baris pada standard input yang berisi kata root.
Perintah-perintah tersebut dapat kita rangkaikan untuk memproses data, sebagai contoh:
• cat /etc/passwd | grep rina, akan menampilkan baris-baris yang berisi string 'rina' dari file /etc/passwd
• find | grep -i mp3, akan menampilkan seluruh file MP3 pada direktori kerja dan direktori di bawahnya
• find /usr/src/linux/ | grep "\.[chS]$" | wc, menampilkan jumlah file yang berakhiran c, h dan S pada kode source Linux.
• find /usr/src/linux/ | grep "\.[chS]$" | xargs cat | wc, menampilkan jumlah karakter, kata dan baris pada seluruh file yang herakhiran c, h dan S pada kode source Linux.
Perintah-perintah di atas akan menampilkan outputnya pada terminal, anda pun dapat menampilkan output pada sebuah file, sebagai contoh:
• find /var/mp3/ | grep -i mp3 > semua.m3u, akan membuat file playlist MP3 semua.m3u yang berisi seluruh file MP3 di direktori /var/mp3/
• cat source.c | sed s/execv/execvp/g > source_baru.c, mengganti seluruh string execv menjadi execvp pada file source.c, kemudian mengoutputkannya ke file source_baru.c
Anda pun dapat mendapatkan input dari file, jadi beberapa perintah di atas dapat kita sederhanakan menjadi:
• grep rina < /etc/passwd, hasilnya sama dengan cat /etc/passwd | grep rina
• sed s/execv/execvp/g < source.c > source_baru.c, hasilnya sama dengan cat source.c | sed s/execv/execvp/g > source_baru.c
Dapat kita lihat, dari perintah-perintah yang kelihatannya tidak berguna itu, dapat dirangkai menjadi banyak sekali kombinasi untuk mengerjakan tugas-tugas yang beraneka ragam. Dokumentasi lengkap dari masing-masing program tersebut tersedia pada halaman man atau info program yang bersangkutan. Pipe dan redireksi akan sangat berguna jika kita akan membuat skrip shell yang akan mengotomatisasi pekerjaan kita sehari-hari.
Substitusi Perintah
Anda dapat melakukan substitusi suatu perintah dengan outputnya pada bash. Perintah yang berada di antara tanda kutip terbalik (`) akan digantikan dengan output dari perintah tersebut.
Sebagai contoh:
• cat `find -type f | grep "\.h$"` | wc, pada perintah ini, bagian find -type f | grep "\.h$" akan digantikan dengan output dari perintah tersebut, yaitu daftar file yang berakhiran h pada direktori kerja dan direktori di bawahnya. Jadi misalnya perintah tersebut menemukan file-file stdio.h, unistd.h dan stdlib.h, maka perintah tersebut akan menjadi cat stdio.h unistd.h stdlib.h | wc, yang akan menampilkan jumlah karakter, kata dan baris pada ketiga file header tersebut.
• cp `find -type f | grep -i mp3` /var/mp3, perintah find -type f | grep -i mp3 disini akan mencari file MP3 pada direktori kerja dan direktori di bawahnya, sehingga perintah tersebut akan men-copy seluruh file MP3 pada direktori kerja dan direktori di bawahnya ke direktori /var/mp3.
Namun anda harus hati-hati, pada kedua perintah di atas jika output dari perintah yang akan disubstitusi tersebut terlalu banyak, maka kemungkinan akan terjadi pesan kesalahan. Sebabnya adalah ada jumlah parameter maksimum yang dapat diberikan pada satu program (dalam hal ini adalah cat dan cp). Untuk mengatasi hal tersebut anda dapat menggunakan xargs atau konstruksi for di bawah.
Dengan xargs, perintah pertama di atas dapat diganti menjadi:
• find -type f | grep "\.h$" | xargs cat | wc, pada perintah ini xargs akan menjalankan perintah cat untuk masing-masing file pada standard input-nya.
Perintah kedua hanya dapat dilakukan dengan konstruksi for.
Konstruksi 'for'
Bash memiliki konstruksi for, dengan sintaks seperti:
for A in linus richard eric
do
echo $A
done
Perintah di atas akan memberikan output seperti ini:
linus
richard
eric
Secara umum konstruksi for akan mengeksekusi barisan perintah di antara do dan done secara berulang-ulang untuk setiap parameter (dalam hal ini adalah linus, richard dan eric), pada perintah di atas, parameter akan disimpan di variabel $A.
Jadi konstruksi di atas akan mengeksekusi perintah-perintah seperti ini:
echo linus
echo richard
echo eric
Beberapa perintah di bash dapat disatukan dalam satu baris perintah dengan menggunakan titik koma (;), jadi perintah di atas dapat disatukan dalam satu baris menjadi: for A in linus richard eric ; do echo $A ; done
Beberapa contoh konstruksi for:
• for A in `find -type f | grep -i mp3` ; do cp $A /var/mp3 ; done, perintah ini memiliki efek yang sama seperti contoh kedua pada substitusi perintah di atas, namun tidak ada batasan pada jumlah file yang ditemukan.
• for A in `cat semua.m3u` ; do mpg123 $A ; done, perintah ini akan memainkan file MP3 yang terdapat di dalam playlist semua.m3u dengan menggunakan player mpg123.
• for A in `find /etc/ -type f` ; do sed -e "s/10\.0\.0\.1/192.168.0.1/g" < $A > /tmp/file.tmp ; cp -f /tmp/file.tmp $A ; done, perintah ini akan mengganti string "10.0.0.1" ke "192.168.0.1" pada seluruh file di dalam direktori /etc/.
• cd /home/ ; for A in * ; do (cd /var/backup ; tar cfzp $A.tar.gz /home/$A; chown $A $A.tar.gz) ; done, perintah ini akan membuat file backup dari setiap home directory pada /home, dan mengganti kepemilikan file backup tersebut menjadi milik user yang bersangkutan. Perintah pada dalam kurung di atas akan dieksekusi di dalam sub shell, gunanya supaya environment (direktori kerja, variabel environment dan sebagainya) tetap sama untuk setiap perintah yang dieksekusi oleh for.
Majalah InfoKomputer
Juli 2000
Anda dapat menggunakan Linux tanpa menyentuh antarmuka command line, namun dengan command line anda dapat melakukan banyak hal yang tidak mungkin dilakukan di antarmuka grafis (GUI). Anda pun dapat mengotomatisasi pekerjaan-pekerjaan yang pada kondisi biasa memerlukan anda untuk berhadapan langsung di depan komputer.
Di saat Linux mendapatkan tampilan yang menarik dan semakin mudah untuk digunakan, namun perintah-perintah command line tetap digemari oleh penggunanya karena banyak sekali pekerjaan yang akan jauh lebih efisien dan efektif jika dikerjakan dengan command line.
Kelebihan lainnya dari perintah command line adalah mudah untuk diotomatisasi, misalnya anda dapat menjalankannya pada saat komputer anda booting, pada saat login, atau pada waktu tertentu. Selain itu perintah command line akan lebih berguna jika anda perlu untuk mengakses komputer lain yang jaraknya jauh, anda tidak akan menggunakan tampilan grafis untuk mengakses server anda yang berada di Amerika, misalnya.
Vendor sistem operasi lain sering menyebarkan isu bahwa command line adalah salah satu kelemahan Linux (dan sistem operasi UNIX lain pada umumnya) karena sulit untuk digunakan dan tidak user friendly. Namun jika anda telah menguasai command line di Linux, anda akan mendapatkan bahwa command line bukanlah kelemahan, melainkan kelebihan dari Linux. Isu tersebut hanyalah trik-trik marketing dari pihak-pihak yang tidak menginginkan kesuksesan Linux (dan UNIX lainnya).
Bagi anda yang telah berpengalaman pada command line pada sistem operasi DOS atau Windows (command.com pada DOS dan Windows95/98 atau cmd.exe pada Windows NT), anda tentunya sering menemui kebuntuan dalam memecahkan masalah. Anda akan menemui bahwa command line pada Linux lebih fleksibel dan mudah untuk digunakan.
Bash, shell standard pada Linux
Lingkungan command line yang paling umum ditemukan di sistem Linux adalah Bourne Again Shell (bash). Bash dibuat oleh Brian Fox dari Free Software Foundation. Bash merupakan pengembangan dari Bourne Shell (sh) dan Korn Shell (ksh) dari sistem UNIX, sehingga bash cukup kompatibel dengan skrip-skrip yang ditemukan di sistem UNIX lainnya. Selain bash, Linux juga memiliki beberapa shell lainnya seperti tcsh, ash dan zsh. Artikel ini hanya akan membahas shell yang paling umum digunakan, yaitu bash.
Shell adalah software yang memberikan interaksi pada pengguna komputer, anda menggunakan shell jika anda melakukan login pada console Linux, atau membuka xterm pada X Window System.
Membuat skrip shell
Skrip shell adalah kumpulan perintah-perintah yang akan dieksekusi. Skrip shell mirip dengan batch file pada sistem DOS dan Windows. Selain itu skrip shell juga memiliki konstruksi seperti halnya bahasa pemrograman pada umumnya, misalnya: while, for, switch, if, fungsi dan lain-lain.
Anda membuat skrip shell dengan menggunakan editor teks seperti halnya vi, pico, gedit, joe atau emacs. Pilihlah teks editor yang paling anda sukai. Misalnya anda menggunakan pico, gunakan perintah seperti ini untuk membuat skrip shell yang bernama hello:
$ pico hello
Setelah itu anda buatlah isi dari file hello tersebut, misalnya:
echo hello world
Kemudian simpanlah file tersebut dan keluar dari editor teks yang anda gunakan. Untuk membuat skrip shell hello tersebut dapat dijalankan, gunakan perintah:
$ chmod +x hello
Perintah tersebut akan membuat file hello menjadi dapat dieksekusi. Anda dapat menjalankannya dengan perintah seperti:
$ ./hello
Jika berhasil, anda akan mendapatkan output:
hello world
Pipe dan Redireksi
Banyak perintah di Linux yang sangat sederhana, biasanya mendapatkan inputnya dari standard input atau parameter dan mengeluarkan outputnya ke standard output. Perintah-perintah ini tidak berguna jika digunakan sendirian. Namun beberapa dari perintah-perintah tersebut dapat dirangkaikan untuk mengerjakan tugas yang spesifik.
Beberapa contoh perintah-perintah tersebut adalah:
• cat: membaca isi parameter-parameternya, kemudian mengeluarkannya ke standard output. Contoh: cat /etc/passwd akan menampilkan isi dari file /etc/passwd
• wc: membaca standard input kemudian memberikan output jumlah karakter, kata dan baris pada standard output.
• find: mencari file yang sesuai kriteria pada parameternya, kemudian memberikan outputnya ke standard output. Contoh: find -type d akan menampilkan daftar direktori di bawah direktori kerja.
• sed: membaca standard input, mengeditnya sesuai dengan perintah pada parameternya, kemudian memberikan outputnya ke standard output. Contoh: sed -e s/lama/baru/g akan mengganti semua kata lama pada standard input menjadi baru
• grep: membaca standard input, kemudian menampilkan baris yang berisi string pada parameter grep. Contoh: grep root akan menampilkan baris pada standard input yang berisi kata root.
Perintah-perintah tersebut dapat kita rangkaikan untuk memproses data, sebagai contoh:
• cat /etc/passwd | grep rina, akan menampilkan baris-baris yang berisi string 'rina' dari file /etc/passwd
• find | grep -i mp3, akan menampilkan seluruh file MP3 pada direktori kerja dan direktori di bawahnya
• find /usr/src/linux/ | grep "\.[chS]$" | wc, menampilkan jumlah file yang berakhiran c, h dan S pada kode source Linux.
• find /usr/src/linux/ | grep "\.[chS]$" | xargs cat | wc, menampilkan jumlah karakter, kata dan baris pada seluruh file yang herakhiran c, h dan S pada kode source Linux.
Perintah-perintah di atas akan menampilkan outputnya pada terminal, anda pun dapat menampilkan output pada sebuah file, sebagai contoh:
• find /var/mp3/ | grep -i mp3 > semua.m3u, akan membuat file playlist MP3 semua.m3u yang berisi seluruh file MP3 di direktori /var/mp3/
• cat source.c | sed s/execv/execvp/g > source_baru.c, mengganti seluruh string execv menjadi execvp pada file source.c, kemudian mengoutputkannya ke file source_baru.c
Anda pun dapat mendapatkan input dari file, jadi beberapa perintah di atas dapat kita sederhanakan menjadi:
• grep rina < /etc/passwd, hasilnya sama dengan cat /etc/passwd | grep rina
• sed s/execv/execvp/g < source.c > source_baru.c, hasilnya sama dengan cat source.c | sed s/execv/execvp/g > source_baru.c
Dapat kita lihat, dari perintah-perintah yang kelihatannya tidak berguna itu, dapat dirangkai menjadi banyak sekali kombinasi untuk mengerjakan tugas-tugas yang beraneka ragam. Dokumentasi lengkap dari masing-masing program tersebut tersedia pada halaman man atau info program yang bersangkutan. Pipe dan redireksi akan sangat berguna jika kita akan membuat skrip shell yang akan mengotomatisasi pekerjaan kita sehari-hari.
Substitusi Perintah
Anda dapat melakukan substitusi suatu perintah dengan outputnya pada bash. Perintah yang berada di antara tanda kutip terbalik (`) akan digantikan dengan output dari perintah tersebut.
Sebagai contoh:
• cat `find -type f | grep "\.h$"` | wc, pada perintah ini, bagian find -type f | grep "\.h$" akan digantikan dengan output dari perintah tersebut, yaitu daftar file yang berakhiran h pada direktori kerja dan direktori di bawahnya. Jadi misalnya perintah tersebut menemukan file-file stdio.h, unistd.h dan stdlib.h, maka perintah tersebut akan menjadi cat stdio.h unistd.h stdlib.h | wc, yang akan menampilkan jumlah karakter, kata dan baris pada ketiga file header tersebut.
• cp `find -type f | grep -i mp3` /var/mp3, perintah find -type f | grep -i mp3 disini akan mencari file MP3 pada direktori kerja dan direktori di bawahnya, sehingga perintah tersebut akan men-copy seluruh file MP3 pada direktori kerja dan direktori di bawahnya ke direktori /var/mp3.
Namun anda harus hati-hati, pada kedua perintah di atas jika output dari perintah yang akan disubstitusi tersebut terlalu banyak, maka kemungkinan akan terjadi pesan kesalahan. Sebabnya adalah ada jumlah parameter maksimum yang dapat diberikan pada satu program (dalam hal ini adalah cat dan cp). Untuk mengatasi hal tersebut anda dapat menggunakan xargs atau konstruksi for di bawah.
Dengan xargs, perintah pertama di atas dapat diganti menjadi:
• find -type f | grep "\.h$" | xargs cat | wc, pada perintah ini xargs akan menjalankan perintah cat untuk masing-masing file pada standard input-nya.
Perintah kedua hanya dapat dilakukan dengan konstruksi for.
Konstruksi 'for'
Bash memiliki konstruksi for, dengan sintaks seperti:
for A in linus richard eric
do
echo $A
done
Perintah di atas akan memberikan output seperti ini:
linus
richard
eric
Secara umum konstruksi for akan mengeksekusi barisan perintah di antara do dan done secara berulang-ulang untuk setiap parameter (dalam hal ini adalah linus, richard dan eric), pada perintah di atas, parameter akan disimpan di variabel $A.
Jadi konstruksi di atas akan mengeksekusi perintah-perintah seperti ini:
echo linus
echo richard
echo eric
Beberapa perintah di bash dapat disatukan dalam satu baris perintah dengan menggunakan titik koma (;), jadi perintah di atas dapat disatukan dalam satu baris menjadi: for A in linus richard eric ; do echo $A ; done
Beberapa contoh konstruksi for:
• for A in `find -type f | grep -i mp3` ; do cp $A /var/mp3 ; done, perintah ini memiliki efek yang sama seperti contoh kedua pada substitusi perintah di atas, namun tidak ada batasan pada jumlah file yang ditemukan.
• for A in `cat semua.m3u` ; do mpg123 $A ; done, perintah ini akan memainkan file MP3 yang terdapat di dalam playlist semua.m3u dengan menggunakan player mpg123.
• for A in `find /etc/ -type f` ; do sed -e "s/10\.0\.0\.1/192.168.0.1/g" < $A > /tmp/file.tmp ; cp -f /tmp/file.tmp $A ; done, perintah ini akan mengganti string "10.0.0.1" ke "192.168.0.1" pada seluruh file di dalam direktori /etc/.
• cd /home/ ; for A in * ; do (cd /var/backup ; tar cfzp $A.tar.gz /home/$A; chown $A $A.tar.gz) ; done, perintah ini akan membuat file backup dari setiap home directory pada /home, dan mengganti kepemilikan file backup tersebut menjadi milik user yang bersangkutan. Perintah pada dalam kurung di atas akan dieksekusi di dalam sub shell, gunanya supaya environment (direktori kerja, variabel environment dan sebagainya) tetap sama untuk setiap perintah yang dieksekusi oleh for.
Pedoman memilih Hardware dengan Linux
Priyadi Iman Nurcahyo
Majalah InfoKomputer
Mei 2000
Sebagai pemakai komputer, anda tentunya menginginkan hardware yang didukung oleh sistem operasi yang anda gunakan. Karena tanpa dukungan software yang memadai, investasi hardware anda akan menjadi tidak berguna. Artikel ini akan membahas mengenai hardware-hardware yang didukung oleh sistem operasi Linux dengan menitikberatkan pembahasan pada platform PC berprosesor Intel dan kompatibel.
Pada dasarnya ada beberapa pedoman dasar untuk memilih hardware untuk digunakan pada platform Linux:
• Pilihlah hardware yang spesifikasi teknisnya diketahui. Driver akan lebih mudah dibuat jika spesifikasi teknisnya diketahui. Walaupun demikian, cukup banyak hardware yang drivernya dibuat dengan metoda reverse engineering karena pembuat hardware tidak mau memberikan spesifikasi teknisnya.
• Driver yang Opensource berkualitas lebih baik daripada yang closed source. Terkadang, pembuat hardware memberikan driver closed source untuk hardware yang bersangkutan. Driver closed source terkadang hanya berlaku untuk kernel versi tertentu, hal tersebut dapat memaksa anda untuk menggunakan kernel Linux versi tertentu saja. Masalahnya akan bertambah rumit jika anda menggunakan dua atau lebih driver closed source.
• Gunakan hardware yang drivernya ada pada source kernel Linux. Jika sebuah driver sudah terdapat di dalam source kernel Linux, artinya Linus Torvalds dan pemrogram kernel Linux lainnya sudah mempercayai kehandalan driver tersebut. Driver yang terdapat pada source kernel Linux sudah pasti adalah Opensource.
Berikut ini adalah pedoman singkat untuk memilih jenis hardware tertentu yang didukung Linux dengan baik. Linux berkembang dalam kecepatan yang tinggi, jadi ada kemungkinan tulisan di artikel ini sudah tidak berlaku dalam beberapa bulan ke depan, untuk itu penulis juga akan memberikan URL-URL untuk mendapatkan informasi terbaru.
Kartu grafis
Hampir semua kartu video yang populer di pasaran didukung oleh XFree86 (http://www.xfree86.org), di antaranya adalah:
• Seluruh kartu grafis 3DFX seperti Voodoo Banshee, Voodoo 1, 2 dan 3 didukung penuh oleh Linux. 3DFX adalah salah satu pembuat hardware yang menyatakan dukungannya untuk Linux.
• Kartu grafis Matrox yang didukung oleh Linux adalah: Millenium I, Millenium II, Mystique, G100, G200 serta G400. Dukungan 3D Matrox juga cukup baik.
• Seluruh kartu grafis yang berchipset NVIDIA, di antaranya adalah: TNT, TNT2, TNT2 Ultra, TNT2 Vanta, dan GeForce. Namun NVIDIA menyatakan hanya akan memberikan driver tanpa source untuk DRI (Direct Rendering Interface) pada XFree86 4.0. Hal tersebut akan menyulitkan untuk menjalankan aplikasi-aplikasi 3D seperti game Quake 3 Arena dan sejenisnya.
• Kartu grafis Intel i740 dan i840 didukung oleh XFree86. Namun i840 membutuhkan driver kernel tambahan, kemungkinan besar sudah akan ada pada kernel versi 2.2.15.
• Chipset Neomagic NeoMagic NM2070, NM2090, NM2093, NM2097, NM2160 dan NM2200 didukung oleh XFree86, chipset ini umumnya digunakan oleh beberapa jenis komputer notebook.
• Hampir seluruh chipset S3 didukung oleh XFree86, seperti halnya: S3 8xx dan 9xx, Trio32, seluruh jenis Trio64 dan Aurora64, seluruh jenis VIRGE dan Savage.
• Seluruh chipset ATI Mach 8, Mach 32, Mach 64 serta Rage128 didukung oleh XFree86.
Di atas hanyalah kartu video yang populer di pasaran saat ini. Untuk daftar lengkapnya silakan lihat http://www.xfree86.org/4.0/Status.html.
Dapat dilihat bahwa hampir seluruh kartu grafis yang tersedia di pasaran didukung oleh XFree86. Namun untuk dapat menikmati game 3D seperti Quake 3 Arena dianjurkan untuk memiliki kartu grafis buatan 3DFX atau Matrox.
Kartu Suara
Kebanyakan kartu suara yang beredar di pasaran telah didukung oleh Linux dengan beberapa pengecualian. Hindari produk-produk yang berchipset Yamaha terutama YMF 720, YMF 740 dan YMF 744, Yamaha telah menolak untuk mengeluarkan spesifikasi teknis yang diperlukan untuk membuat driver. Selain itu, kartu suara buatan Aureal juga belum dibuat drivernya. Kartu suara lainnya yang belum ada drivernya adalah: IBM MWave, Yamaha berbasis PCI, Trident 9753 Wave dan USB Sound. Khusus untuk USB Sound seperti buatan Philips serta Altec Lansing, pembuatan driver untuk hardware tersebut baru dimulai pada awal tahun ini.
Kartu suara populer yang didukung oleh Linux antara lain adalah:
• Seluruh kartu suara buatan Creative Labs seperti SoundBlaster Live!, Live! Value dan Live! Platinum, dan juga seluruh generasi sebelumnya dari SoundBlaster.
• Seluruh kartu suara ESS Technologies dan Ensoniq, yang berchipset ESS 1xxx dan Maestro.
• S3 Sonicvibes PCI
• Logitech Soundman 16, Soundman Wave dan Soundman Games.
• AcerMagic S23
Daftar lengkap kartu suara yang didukung oleh Linux dapat dilihat pada http://www.linux.org.uk/OSS/ (OSS/Free, untuk kernel sampai 2.4), dan http://www.alsa-project.org/~goemon/ (ALSA, untuk kernel 2.5 dan selanjutnya). Anda juga dapat menggunakan driver komersil OSS jika anda menggunakan hardware yang spesifikasinya tidak terbuka, silakan lihat http://www.opensound.org.
Media Penyimpanan
Seluruh jenis harddisk dan CDROM dengan interface IDE/ATA/ATAPI atau SCSI didukung oleh Linux, termasuk interface IDE dengan 4 drive pada satu port IDE. Linux juga mendukung media penyimpanan yang tidak umum seperti protokol IDE melalui port paralel seperti buatan ATEN, Microsolutions, DataStor, FIT, Shuttle, Freecom, dan OnSpec.
Linux juga mendukung interface CDROM lama yang bukan IDE atau SCSI seperti Sony, Aztech, Mitsumi dan lainnya.
IOMEGA Zip Drive dan Jaz Drive juga didukung oleh Linux, baik versi baru ataupun versi lama. Versi paralel port, IDE maupun SCSI didukung penuh oleh Linux. Untuk keterangan lebih lanjut mengenai piranti penyimpanan yang menggunakan port paralel, silakan lihat http://www.torque.net/parport/paride.html.
Hampir seluruh CD Writer baik CD-R maupun CD-RW yang tersedia di pasaran didukung oleh Linux seperti buatan Plextor, Sony, Creative, Iomega, Philips, Panasonic, Pinnacle, Samsung, Sanyo, serta Yamaha, baik yang memiliki interface paralel port, SCSI maupun IDE. Untuk daftar lengkap mengenai CD writer yang didukung oleh Linux silakan lihat http://www.guug.de:8080/cgi-bin/winni/lsc.pl.
Device Input
Hampir seluruh device input yang sering kita gunakan sehari-hari didukung oleh Linux, di antaranya adalah: seluruh jenis keyboard, alat penunjuk seperti mouse, trackball, touchpad, trackpoint serta tablet yang memiliki interface PS/2, serial maupun Busmouse didukung oleh Linux.
Selain itu Linux juga mendukung hampir seluruh tipe Joystick seperti joystick standard, Gravis, Logitech Wingman, Microsoft SideWinder, Thrustmaster, serta joystick/gamepad dari NES, SNES, Playstation, dan Sega.
Pada saat ini device input dengan interface USB yang didukung Linux hanyalah keyboard dan mouse. Dukungan penuh untuk piranti USB lainnya baru akan muncul pada kernel versi 2.4.
Jaringan
Linux mendukung hampir semua kartu jaringan ethernet, fast ethernet serta gigabit ethernet. Kemungkinan besar, produk yang anda beli di pasaran sudah didukung oleh Linux. Beberapa jenis yang TIDAK didukung Linux adalah: Intel EtherExpress Pro 100A, Matrox Multiport PCI Switch, Essential Communication Gigabit Ethernet, Sun Gigabit Ethernet. Kartu Intel Gigabit Ethernet akan didukung oleh Intel dengan driver yang closed source ( http://support.intel.com/support/network/adapter/1000/software.htm).
Sebagian besar kartu jaringan ethernet sudah didukung Linux. Yang harus diperhatikan adalah beberapa merk populer yang drivernya belum dimasukkan ke source kernel Linux: D-Link DFE530-TX (bukan DE530) menggunakan driver VIA Rhine, dan Compex RL100ATX menggunakan driver Winbond 840. Keduanya bisa didownload dari http://cesdis.gsfc.nasa.gov/linux/drivers/ethercard.html.
Daftar lengkap driver-driver ethernet yang didukung Linux dapat dilihat dari homepage NASA di http://cesdis.gsfc.nasa.gov/linux/drivers/.
Printer
Sebagian besar printer yang umum di pasaran telah didukung oleh Linux. Di bawah ini adalah beberapa printer HP, Canon dan Epson yang dapat digunakan bersama Linux:
• HP DeskJet 400, 420C, 510, 520, 540, 550C, 560C, 600, 610C, 610CL, 612C, 660C, 670C, 672C, 682C, 690C, 692C, 694C, 697C, 812C, 850C, 855C, 890C, LaserJet 4 Plus, 4050N, 4L, 4M, 4ML, 4P, 5, 5000, 5L, 5M, 5MP, 5P, LaserJet 6, 6MP, 8000, 8100. Yang TIDAK didukung atau memiliki dukungan yang buruk adalah: DeskJet 1000C, 710C, 712C, 720C, 722C, 820C, LaserJet 6L.
• Canon BJ-10e, BJ-20, BJ-200, BJ-330, BJ-5, BJC-210, BJC-250, BJC-4000, BJC-4100, BJC-4200, BJC-4300, BJC-4400, BJC-600, BJC-610, BJC-620, BJC-70, BJC-800, GP335/405, LBP-1260, LBP-1760, LBP-4+, LBP-4U, LBP-8A1, LIPS III, LIPS-III, bjc5000. Yang TIDAK didukung atau memiliki dukungan yang buruk adalah: BJC-4550, BJC-6000, BJC-7000, BJC-7100, BJC-5000, BJC-5100, LBP-430, LBP-460, LBP-660.
• Epson Stylus Color 1520, 400, 440, 460, 500, 600, 640, 800, 850, I, II, IIs, PRO, XL. Yang TIDAK didukung atau memiliki dukungan yang buruk adalah: Stylus Color 300, 900, 700, 750, Stylus Photo EX.
Selain itu, seluruh jenis printer yang mendukung PostScript didukung oleh Linux.
Daftar lengkap printer yang didukung oleh Linux dapat anda lihat pada http://www.picante.com/~gtaylor/pht/printer_list.cgi.
Scanner
Dukungan scanner pada Linux diberikan oleh program SANE (http://www.mostang.com/sane/). Beberapa scanner yang didukung oleh SANE adalah:
• Artec AT3, A6000C, A6000C Plus, AT6, AT12, AM12S.
• HP Scanjet Plus, IIp, IIc, IIcx, 3c, 3p, 4c, 4p, 4100c, 5p, 5100c, 5200c, 6100c, 6200c, 6250c, 6300c, 6350c.
• UMAX 600S, 610S, 1200S, 1220S, 2200W, 2400S. UMAX versi paralel dan USB TIDAK didukung.
• Beberapa scanner Epson dan Canon didukung, namun driver untuk scanner-scanner tersebut masih versi alpha.
Untuk informasi lengkap mengenai scanner yang didukung oleh SANE, silakan lihat daftar lengkapnya di http://www.mostang.com/sane/sane-backends.html
TV/Radio Tuner
Linux juga mendukung tuner TV/Radio sehingga anda dapat mendengarkan radio atau menonton TV pada tampilan Linux anda. TV/Radio tuner yang paling populer adalah yang memiliki chipset Brooktree Bt848 atau Bt878, lihatlah pada kartu tuner yang bersangkutan. Seluruh tuner yang memiliki chipset tersebut didukung oleh Linux seperti Hauppauge WinTV atau Avermedia. Chipset lainnya yang didukung Linux adalah AIMSLab Radiotrack, Aztech/Packard Bell Radio, ADS Channelsurfer, Miro, Zoran, Zoltrix, serta kamera QuickCam.
Universal Serial Bus (USB)
Saat ini mulai banyak bermunculan hardware-hardware yang menggunakan bus USB. Dukungan penuh Linux untuk USB baru dimulai pada kernel versi 2.3 dan 2.4. Pada kernel 2.2.14 Linux baru mendukung device USB keyboard, mouse dan sound saja. Dukungan USB untuk Linux dapat anda lihat pada http://www.qbik.ch/usb/devices/.
Jika anda telah memiliki hardware yang tidak didukung oleh Linux, anda dapat melakukan hal-hal di bawah ini:
• Jika vendor hardware anda tidak membuka spesifikasi teknis hardware yang anda miliki, anda dapat mengusulkan kepada vendor tersebut untuk membuka spesifikasi teknisnya. Dahulu Creative Labs tidak membuka spesifikasi dari SoundBlaster Live!, namun karena dorongan publik, Creative akhirnya membuka spesifikasi teknisnya, dan bahkan membantu membuatkan driver yang opensource di http://opensource.creative.com.
• Anda dapat menukarkan hardware anda dengan hardware lain yang didukung oleh Linux.
• Jika anda mampu, anda dapat membuat driver untuk hardware anda, atau setidaknya membantu pembuat driver. Sebagian besar driver hardware untuk Linux tidak ditulis oleh vendor hardware yang bersangkutan, namun ditulis oleh komunitas Linux.
Majalah InfoKomputer
Mei 2000
Sebagai pemakai komputer, anda tentunya menginginkan hardware yang didukung oleh sistem operasi yang anda gunakan. Karena tanpa dukungan software yang memadai, investasi hardware anda akan menjadi tidak berguna. Artikel ini akan membahas mengenai hardware-hardware yang didukung oleh sistem operasi Linux dengan menitikberatkan pembahasan pada platform PC berprosesor Intel dan kompatibel.
Pada dasarnya ada beberapa pedoman dasar untuk memilih hardware untuk digunakan pada platform Linux:
• Pilihlah hardware yang spesifikasi teknisnya diketahui. Driver akan lebih mudah dibuat jika spesifikasi teknisnya diketahui. Walaupun demikian, cukup banyak hardware yang drivernya dibuat dengan metoda reverse engineering karena pembuat hardware tidak mau memberikan spesifikasi teknisnya.
• Driver yang Opensource berkualitas lebih baik daripada yang closed source. Terkadang, pembuat hardware memberikan driver closed source untuk hardware yang bersangkutan. Driver closed source terkadang hanya berlaku untuk kernel versi tertentu, hal tersebut dapat memaksa anda untuk menggunakan kernel Linux versi tertentu saja. Masalahnya akan bertambah rumit jika anda menggunakan dua atau lebih driver closed source.
• Gunakan hardware yang drivernya ada pada source kernel Linux. Jika sebuah driver sudah terdapat di dalam source kernel Linux, artinya Linus Torvalds dan pemrogram kernel Linux lainnya sudah mempercayai kehandalan driver tersebut. Driver yang terdapat pada source kernel Linux sudah pasti adalah Opensource.
Berikut ini adalah pedoman singkat untuk memilih jenis hardware tertentu yang didukung Linux dengan baik. Linux berkembang dalam kecepatan yang tinggi, jadi ada kemungkinan tulisan di artikel ini sudah tidak berlaku dalam beberapa bulan ke depan, untuk itu penulis juga akan memberikan URL-URL untuk mendapatkan informasi terbaru.
Kartu grafis
Hampir semua kartu video yang populer di pasaran didukung oleh XFree86 (http://www.xfree86.org), di antaranya adalah:
• Seluruh kartu grafis 3DFX seperti Voodoo Banshee, Voodoo 1, 2 dan 3 didukung penuh oleh Linux. 3DFX adalah salah satu pembuat hardware yang menyatakan dukungannya untuk Linux.
• Kartu grafis Matrox yang didukung oleh Linux adalah: Millenium I, Millenium II, Mystique, G100, G200 serta G400. Dukungan 3D Matrox juga cukup baik.
• Seluruh kartu grafis yang berchipset NVIDIA, di antaranya adalah: TNT, TNT2, TNT2 Ultra, TNT2 Vanta, dan GeForce. Namun NVIDIA menyatakan hanya akan memberikan driver tanpa source untuk DRI (Direct Rendering Interface) pada XFree86 4.0. Hal tersebut akan menyulitkan untuk menjalankan aplikasi-aplikasi 3D seperti game Quake 3 Arena dan sejenisnya.
• Kartu grafis Intel i740 dan i840 didukung oleh XFree86. Namun i840 membutuhkan driver kernel tambahan, kemungkinan besar sudah akan ada pada kernel versi 2.2.15.
• Chipset Neomagic NeoMagic NM2070, NM2090, NM2093, NM2097, NM2160 dan NM2200 didukung oleh XFree86, chipset ini umumnya digunakan oleh beberapa jenis komputer notebook.
• Hampir seluruh chipset S3 didukung oleh XFree86, seperti halnya: S3 8xx dan 9xx, Trio32, seluruh jenis Trio64 dan Aurora64, seluruh jenis VIRGE dan Savage.
• Seluruh chipset ATI Mach 8, Mach 32, Mach 64 serta Rage128 didukung oleh XFree86.
Di atas hanyalah kartu video yang populer di pasaran saat ini. Untuk daftar lengkapnya silakan lihat http://www.xfree86.org/4.0/Status.html.
Dapat dilihat bahwa hampir seluruh kartu grafis yang tersedia di pasaran didukung oleh XFree86. Namun untuk dapat menikmati game 3D seperti Quake 3 Arena dianjurkan untuk memiliki kartu grafis buatan 3DFX atau Matrox.
Kartu Suara
Kebanyakan kartu suara yang beredar di pasaran telah didukung oleh Linux dengan beberapa pengecualian. Hindari produk-produk yang berchipset Yamaha terutama YMF 720, YMF 740 dan YMF 744, Yamaha telah menolak untuk mengeluarkan spesifikasi teknis yang diperlukan untuk membuat driver. Selain itu, kartu suara buatan Aureal juga belum dibuat drivernya. Kartu suara lainnya yang belum ada drivernya adalah: IBM MWave, Yamaha berbasis PCI, Trident 9753 Wave dan USB Sound. Khusus untuk USB Sound seperti buatan Philips serta Altec Lansing, pembuatan driver untuk hardware tersebut baru dimulai pada awal tahun ini.
Kartu suara populer yang didukung oleh Linux antara lain adalah:
• Seluruh kartu suara buatan Creative Labs seperti SoundBlaster Live!, Live! Value dan Live! Platinum, dan juga seluruh generasi sebelumnya dari SoundBlaster.
• Seluruh kartu suara ESS Technologies dan Ensoniq, yang berchipset ESS 1xxx dan Maestro.
• S3 Sonicvibes PCI
• Logitech Soundman 16, Soundman Wave dan Soundman Games.
• AcerMagic S23
Daftar lengkap kartu suara yang didukung oleh Linux dapat dilihat pada http://www.linux.org.uk/OSS/ (OSS/Free, untuk kernel sampai 2.4), dan http://www.alsa-project.org/~goemon/ (ALSA, untuk kernel 2.5 dan selanjutnya). Anda juga dapat menggunakan driver komersil OSS jika anda menggunakan hardware yang spesifikasinya tidak terbuka, silakan lihat http://www.opensound.org.
Media Penyimpanan
Seluruh jenis harddisk dan CDROM dengan interface IDE/ATA/ATAPI atau SCSI didukung oleh Linux, termasuk interface IDE dengan 4 drive pada satu port IDE. Linux juga mendukung media penyimpanan yang tidak umum seperti protokol IDE melalui port paralel seperti buatan ATEN, Microsolutions, DataStor, FIT, Shuttle, Freecom, dan OnSpec.
Linux juga mendukung interface CDROM lama yang bukan IDE atau SCSI seperti Sony, Aztech, Mitsumi dan lainnya.
IOMEGA Zip Drive dan Jaz Drive juga didukung oleh Linux, baik versi baru ataupun versi lama. Versi paralel port, IDE maupun SCSI didukung penuh oleh Linux. Untuk keterangan lebih lanjut mengenai piranti penyimpanan yang menggunakan port paralel, silakan lihat http://www.torque.net/parport/paride.html.
Hampir seluruh CD Writer baik CD-R maupun CD-RW yang tersedia di pasaran didukung oleh Linux seperti buatan Plextor, Sony, Creative, Iomega, Philips, Panasonic, Pinnacle, Samsung, Sanyo, serta Yamaha, baik yang memiliki interface paralel port, SCSI maupun IDE. Untuk daftar lengkap mengenai CD writer yang didukung oleh Linux silakan lihat http://www.guug.de:8080/cgi-bin/winni/lsc.pl.
Device Input
Hampir seluruh device input yang sering kita gunakan sehari-hari didukung oleh Linux, di antaranya adalah: seluruh jenis keyboard, alat penunjuk seperti mouse, trackball, touchpad, trackpoint serta tablet yang memiliki interface PS/2, serial maupun Busmouse didukung oleh Linux.
Selain itu Linux juga mendukung hampir seluruh tipe Joystick seperti joystick standard, Gravis, Logitech Wingman, Microsoft SideWinder, Thrustmaster, serta joystick/gamepad dari NES, SNES, Playstation, dan Sega.
Pada saat ini device input dengan interface USB yang didukung Linux hanyalah keyboard dan mouse. Dukungan penuh untuk piranti USB lainnya baru akan muncul pada kernel versi 2.4.
Jaringan
Linux mendukung hampir semua kartu jaringan ethernet, fast ethernet serta gigabit ethernet. Kemungkinan besar, produk yang anda beli di pasaran sudah didukung oleh Linux. Beberapa jenis yang TIDAK didukung Linux adalah: Intel EtherExpress Pro 100A, Matrox Multiport PCI Switch, Essential Communication Gigabit Ethernet, Sun Gigabit Ethernet. Kartu Intel Gigabit Ethernet akan didukung oleh Intel dengan driver yang closed source ( http://support.intel.com/support/network/adapter/1000/software.htm).
Sebagian besar kartu jaringan ethernet sudah didukung Linux. Yang harus diperhatikan adalah beberapa merk populer yang drivernya belum dimasukkan ke source kernel Linux: D-Link DFE530-TX (bukan DE530) menggunakan driver VIA Rhine, dan Compex RL100ATX menggunakan driver Winbond 840. Keduanya bisa didownload dari http://cesdis.gsfc.nasa.gov/linux/drivers/ethercard.html.
Daftar lengkap driver-driver ethernet yang didukung Linux dapat dilihat dari homepage NASA di http://cesdis.gsfc.nasa.gov/linux/drivers/.
Printer
Sebagian besar printer yang umum di pasaran telah didukung oleh Linux. Di bawah ini adalah beberapa printer HP, Canon dan Epson yang dapat digunakan bersama Linux:
• HP DeskJet 400, 420C, 510, 520, 540, 550C, 560C, 600, 610C, 610CL, 612C, 660C, 670C, 672C, 682C, 690C, 692C, 694C, 697C, 812C, 850C, 855C, 890C, LaserJet 4 Plus, 4050N, 4L, 4M, 4ML, 4P, 5, 5000, 5L, 5M, 5MP, 5P, LaserJet 6, 6MP, 8000, 8100. Yang TIDAK didukung atau memiliki dukungan yang buruk adalah: DeskJet 1000C, 710C, 712C, 720C, 722C, 820C, LaserJet 6L.
• Canon BJ-10e, BJ-20, BJ-200, BJ-330, BJ-5, BJC-210, BJC-250, BJC-4000, BJC-4100, BJC-4200, BJC-4300, BJC-4400, BJC-600, BJC-610, BJC-620, BJC-70, BJC-800, GP335/405, LBP-1260, LBP-1760, LBP-4+, LBP-4U, LBP-8A1, LIPS III, LIPS-III, bjc5000. Yang TIDAK didukung atau memiliki dukungan yang buruk adalah: BJC-4550, BJC-6000, BJC-7000, BJC-7100, BJC-5000, BJC-5100, LBP-430, LBP-460, LBP-660.
• Epson Stylus Color 1520, 400, 440, 460, 500, 600, 640, 800, 850, I, II, IIs, PRO, XL. Yang TIDAK didukung atau memiliki dukungan yang buruk adalah: Stylus Color 300, 900, 700, 750, Stylus Photo EX.
Selain itu, seluruh jenis printer yang mendukung PostScript didukung oleh Linux.
Daftar lengkap printer yang didukung oleh Linux dapat anda lihat pada http://www.picante.com/~gtaylor/pht/printer_list.cgi.
Scanner
Dukungan scanner pada Linux diberikan oleh program SANE (http://www.mostang.com/sane/). Beberapa scanner yang didukung oleh SANE adalah:
• Artec AT3, A6000C, A6000C Plus, AT6, AT12, AM12S.
• HP Scanjet Plus, IIp, IIc, IIcx, 3c, 3p, 4c, 4p, 4100c, 5p, 5100c, 5200c, 6100c, 6200c, 6250c, 6300c, 6350c.
• UMAX 600S, 610S, 1200S, 1220S, 2200W, 2400S. UMAX versi paralel dan USB TIDAK didukung.
• Beberapa scanner Epson dan Canon didukung, namun driver untuk scanner-scanner tersebut masih versi alpha.
Untuk informasi lengkap mengenai scanner yang didukung oleh SANE, silakan lihat daftar lengkapnya di http://www.mostang.com/sane/sane-backends.html
TV/Radio Tuner
Linux juga mendukung tuner TV/Radio sehingga anda dapat mendengarkan radio atau menonton TV pada tampilan Linux anda. TV/Radio tuner yang paling populer adalah yang memiliki chipset Brooktree Bt848 atau Bt878, lihatlah pada kartu tuner yang bersangkutan. Seluruh tuner yang memiliki chipset tersebut didukung oleh Linux seperti Hauppauge WinTV atau Avermedia. Chipset lainnya yang didukung Linux adalah AIMSLab Radiotrack, Aztech/Packard Bell Radio, ADS Channelsurfer, Miro, Zoran, Zoltrix, serta kamera QuickCam.
Universal Serial Bus (USB)
Saat ini mulai banyak bermunculan hardware-hardware yang menggunakan bus USB. Dukungan penuh Linux untuk USB baru dimulai pada kernel versi 2.3 dan 2.4. Pada kernel 2.2.14 Linux baru mendukung device USB keyboard, mouse dan sound saja. Dukungan USB untuk Linux dapat anda lihat pada http://www.qbik.ch/usb/devices/.
Jika anda telah memiliki hardware yang tidak didukung oleh Linux, anda dapat melakukan hal-hal di bawah ini:
• Jika vendor hardware anda tidak membuka spesifikasi teknis hardware yang anda miliki, anda dapat mengusulkan kepada vendor tersebut untuk membuka spesifikasi teknisnya. Dahulu Creative Labs tidak membuka spesifikasi dari SoundBlaster Live!, namun karena dorongan publik, Creative akhirnya membuka spesifikasi teknisnya, dan bahkan membantu membuatkan driver yang opensource di http://opensource.creative.com.
• Anda dapat menukarkan hardware anda dengan hardware lain yang didukung oleh Linux.
• Jika anda mampu, anda dapat membuat driver untuk hardware anda, atau setidaknya membantu pembuat driver. Sebagian besar driver hardware untuk Linux tidak ditulis oleh vendor hardware yang bersangkutan, namun ditulis oleh komunitas Linux.
A Practical Guide to Linux(R) Commands, Editors, and Shell Programming
To be truly productive with Linux, you need to thoroughly master the shells and the command line. Until now, you had to buy two books to gain that mastery: a tutorial on fundamental Linux concepts and techniques, plus a separate reference. Worse, most Linux references offer little more than prettied-up man pages. Now, there’s a far better solution. Renowned Linux expert Mark Sobell has brought together comprehensive, insightful guidance on the tools system administrators, developers, and power users need most, and an outstanding day-to-day reference, both in the same book.
This book is 100 percent distribution and release agnostic: You can use it on any Linux system, now and for years to come. What’s more, it’s packed with hundreds of high-quality examples: better examples than you’ll find in any other Linux guidebook. This is Linux from the ground up: the clearest explanations and most useful knowledge about everything from filesystems to shells, editors to utilities, and programming tools to regular expressions. And when you need instant answers, you’ll constantly turn to Sobell’s comprehensive command reference section—organized and tabbed for easy, fast access!
Don’t settle for yesterday’s Linux guidebook. Get the one book that meets today’s challenges—and tomorrow’s!
A Practical Guide to Linux® Commands, Editors, and Shell Programming is the most useful, most comprehensive Linux tutorial and reference you can find. It’s the only book to deliver
Better, more realistic examples covering tasks you’ll actually need to perform
Deeper insight, based on Sobell’s immense knowledge of every Linux nook and cranny
More practical explanations of more than eighty core utilities, from aspell to xargs
Techniques for implementing secure communications using ssh and scp—plus dozens of tips for making your system more secure
A superior introduction to the Linux programming environment, including make, gcc, gdb, CVS, and much more
Expert guidance on basic and advanced shell programming using bash and tcsh
Tips and tricks for customizing the shell and using it interactively from the command line
Thorough guides to vim and emacs, designed to help you get productive fast and maximize your editing efficiency
Dozens of exercises to help you practice and gain confidence
Instructions for using Apt, yum, and BitTorrent for keeping your system up to date automatically
And much more, including coverage of gawk, sed, find, sort, bzip2, and regular expressions
This book is 100 percent distribution and release agnostic: You can use it on any Linux system, now and for years to come. What’s more, it’s packed with hundreds of high-quality examples: better examples than you’ll find in any other Linux guidebook. This is Linux from the ground up: the clearest explanations and most useful knowledge about everything from filesystems to shells, editors to utilities, and programming tools to regular expressions. And when you need instant answers, you’ll constantly turn to Sobell’s comprehensive command reference section—organized and tabbed for easy, fast access!
Don’t settle for yesterday’s Linux guidebook. Get the one book that meets today’s challenges—and tomorrow’s!
A Practical Guide to Linux® Commands, Editors, and Shell Programming is the most useful, most comprehensive Linux tutorial and reference you can find. It’s the only book to deliver
Better, more realistic examples covering tasks you’ll actually need to perform
Deeper insight, based on Sobell’s immense knowledge of every Linux nook and cranny
More practical explanations of more than eighty core utilities, from aspell to xargs
Techniques for implementing secure communications using ssh and scp—plus dozens of tips for making your system more secure
A superior introduction to the Linux programming environment, including make, gcc, gdb, CVS, and much more
Expert guidance on basic and advanced shell programming using bash and tcsh
Tips and tricks for customizing the shell and using it interactively from the command line
Thorough guides to vim and emacs, designed to help you get productive fast and maximize your editing efficiency
Dozens of exercises to help you practice and gain confidence
Instructions for using Apt, yum, and BitTorrent for keeping your system up to date automatically
And much more, including coverage of gawk, sed, find, sort, bzip2, and regular expressions
Friday, July 13, 2007
Mengkonfigurasi DNS Server
Membuat Primary dan Secondary DNS Server
Joko Yuliantoro & Onno W. Purbo
Computer Network Research Group (CNRG)
Institut Teknologi Bandung (ITB)
Untuk beroperasinya sebuah jaringan komputer Internet, sebetulnya pengalamatan sebuah komputer dilakukan menggunakan angka yang dikenal sebagai Internet Protocol (IP) Address yang terdiri dari 32 bit. Tentunya akan sukar bagi manusia / user untuk mengingat sekian juta komputer di seluruh Internet. Untuk itu dikembangkan penamaan mesin yang lebih manusiawi menggunakan konsep Domain Name System (DNS). Pada tulisan ini kami akan mencoba menjelaskan cara mensetup DNS Server di mesin dengan OS UNIX. Kemampuan ini akan sangat dibutuhkan bila sebuah institusi /perusahaan ingin mempunyai nama hostname sendiri di Internet.
Domain Name System adalah salah satu jenis sistem yang melayani permintaan pemetaan IP Address ke FQDN ( Fully Qualified Domain Name ) dan dari FQDN ke IP Address. FQDN lebih mudah untuk diingat oleh manusia daripada IP Address. Sebagai contoh, sebuah komputer memiliki IP Address 167.205.22.114 dan memiliki FQDN “nic.itb.ac.id”. Nama “nic.itb.ac.id” tentunya lebih mudah diingat daripada nomor IP Address di atas. Apalagi setelah lahirnya konsep IP Version 6 yang memiliki 6 segment untuk setiap komputer sehingga nomor IP Address menjadi semakin panjang dan lebih sulit untuk diingat. Selain itu, DNS juga menyediakan layanan mail routing, informasi mengenai hardware, sistem operasi yang dijalankan, dan aplikasi jaringan yang ditangani oleh host tersebut.
Pada sistem operasi UNIX, DNS diimplementasikan dengan menggunakan software Berkeley Internet Name Domain (BIND). BIND ini memiliki dua sisi, yaitu sisi client dan sisi server. Sisi client disebut resolver. Resolver ini bertugas membangkitkan pertanyaan mengenai informasi domain name yang dikirimkan kepada sisi server. Sisi server BIND ini adalah sebuah daemon yang disebut named. Ia yang akan menjawab query-query dari resolver yang diberikan kepadanya.
Pada saat BIND dijalankan, ia memiliki 4 modus operasi, yaitu :
• Resolver-only
Komputer hanya membangkitkan query informasi domain name kepada sebuah DNS server dan tidak menjalankan fungsi DNS server.
• Caching-only
Komputer menjalankan fungsi name server tetapi tidak memiliki database DNS server. Ia hanya mempelajari jawaban-jawaban query yang diberikan oleh remote DNS server dan menyimpannya dalam memory. Data-data dalam memory tersebut akan digunakan untuk menjawab query selanjutnya yang diberikan kepadanya.
• Primary server
Komputer menjalankan fungsi name server berdasarkan database yang dimilikinya. Database ini dibangun oleh administrator DNS. Server ini menjadi authoritative source bagi domain tertentu.
• Secondary server
Komputer menjalankan fungsi name server berdasarkan database yang diambil dari primary server. Proses pengambilan file database ini sering disebut zone file transfer. Ia juga menjadi authoritative source bagi domain tersebut.
Resolver-only
Saat berada dalam modus resolver-only, BIND akan mencari file /etc/resolv.conf (pada UNIX umum) dan membaca konfigurasi yang tertera dalam file tersebut. Jika BIND tidak menemukan file tersebut maka ia akan menggunakan konfigurasi standar yang dimilikinya.
Bentuk dasar sintaks pada file /etc/resolv.conf adalah sebagai berikut :
domain name
nameserver address
[nameserver address]
domain menyatakan default domain seperti yang didefinisikan oleh entry name. Jika ada penulisan nama host yang tidak mengandung tanda baca titik maka resolver akan menambahkan entry name di belakang nama host tersebut. Sebagai contoh, jika Anda menuliskan host name mail saja dan entry name berisi ptn.co.id maka resolver akan menggunakan nama mail.ptn.co.id.
nameserver menyatakan server mana yang harus dihubungi jika ada query dari resolver mengenai domain di atas. Apabila server tersebut tidak bisa dihubungi, server selanjutnya menjadi sasaran lemparan query.
Contoh listing file /etc/resolv.conf :
# Resolver configuration file
domain ptn.co.id
# Server terdekat adalah mumet.ptn.co.id, IP 169.98.3.1
nameserver 169.98.3.2
# Gagal ??? Coba server kedua : nggliyeng.ptn.co.id, IP 169.98.2.15
nameserver 169.98.2.15
# Gagal lagi ??? Server ketiga : ngeh.ptn.co.id, IP 169.98.1.2
nameserver 169.98.1.2
Ketiga modus selanjutnya dapat dijalankan secara bersamaan atau berdiri sendiri pada sebuah komputer yang menjadi DNS server. Pengaturan modus ini dilakukan pada konfigurasi daemon named. File-file penting yang menjadi acuan bagi named untuk beroperasi adalah named.boot, data_cache, data_domain, dan data_reverse. named.boot adalah file yang berisi boot script bagi DNS server. data_cache adalah file yang berisi DNS root server. data_domain adalah file yang berisi pemetaan dari FQDN ke IP Address dan data terlengkap dari domain yang bersangkutan. data_reverse adalah file yang berisi data mengenai pemetaan IP Address ke FQDN. Pada sistem operasi UNIX, file-file tersebut terletak di direktori /etc/namedb. Direktori tersebut menjadi default bagi named.
File konfigurasi yang paling penting bagi named adalah file /etc/namedb/named.boot. File ini berisikan perintah-perintah yang mendefinisikan fungsi named sebagai caching-only server, primary server, atau secondary server.
Caching-only
Jika kita ingin mengatur agar named hanya beroperasi pada modus caching-only maka file named.boot hanya berisi perintah cache diikuti nama file yang berisi server-server utama yang menjadi tempat melemparkan query.
Berikut ini contoh file named.boot dimana kita mengatur named agar beroperasi pada modus caching-only :
; file named.boot
;
; mendefinisikan default directory
directory /etc/namedb
;
; menjadi caching-only server
cache data_cache
;
Primary Server
Jika kita menghendaki named pada komputer kita menjadi primary server, kita tambahkan kata primary diikuti domain yang dipegang oleh named tersebut dan diakhiri dengan nama file yang berisi database domain tersebut..
Sebagai contoh, komputer kita menjadi primary server untuk domain ptn.co.id dengan file data_domain berjudul ptn. Sebaiknya, sebuah primary server juga menjalankan fungsi caching-only. Hal ini untuk menambah kehandalan server dalam menjawab query-query yang cukup rumit. File named.boot akan berisi sebagai berikut :
; file named.boot
;
; mendefinisikan default directory
directory /etc/namedb
;
; menjadi caching-only server
cache data_cache
;
; menjadi primary server atas domain ptn.co.id
primary ptn.co.id ptn
;
; menjadi primary server atas pemetaan IP Address 169.98.1.x ke FQDN
primary 1.98.169.IN-ADDR.ARPA rev_169.98.1.x
;
Jika komputer kita juga menjadi primary server atas pemetaan IP Address 169.98.1.x ke FQDN maka kita tambahkan entry yang terakhir.
Secondary Server
Secondary server adalah DNS server yang menggunakan database domain yang ditransfer dari primary server. Untuk mengatur server agar menjadi secondary bagi domain tertentu, kita tambahkan kata secondary diikuti dengan domain yang dipegang, kemudian diikuti oleh IP Address primary server dan diakhiri dengan nama file databasenya.
Sebagai contoh, komputer kita akan bertindak sebagai secondary server untuk domain pts.ac.id. Primary server domain dipegang oleh server dns.pts.ac.id dengan nomor IP Address 190.21.85.2. Kita edit file named.boot sehingga menjadi seperti berikut :
; file named.boot
;
; mendefinisikan default directory
directory /etc/namedb
;
; menjadi caching-only server
cache data_cache
;
; menjadi primary server atas domain ptn.co.id
primary ptn.co.id ptn
;
; menjadi secondary server atas domain pts.ac.id dari dns.pts.ac.id
secondary pts.ac.id 190.21.85.2 sec_pts
;
; menjadi primary server atas pemetaan IP Address 169.98.1.x ke FQDN
primary 1.98.169.IN-ADDR.ARPA rev/rev_169.98.1.x
;
; menjadi secondary server atas pemetaan IP Address 190.21.85.x ke FQDN
secondary 85.21.190.IN-ADDR.ARPA 190.21.85.2 rev/sec_190.21.85.x
Jika kita juga menjadi secondary server atas pemetaan IP Address 190.21.85.x ke FQDN dari server dns.pts.ac.id kita tambahkan entry yang terakhir.
Langkah selanjutnya adalah membuat file data_domain dan data_reverse (seperti file ptn dan rev/rev_169.98.1.x) yang akan dibahas pada artikel mendatang.
Daftar Pustaka
• RFC 1034, “Domain Names - Concepts and Facilities”
• RFC 1035, “Domain Names - Implementation and Spesification”
Joko Yuliantoro & Onno W. Purbo
Computer Network Research Group (CNRG)
Institut Teknologi Bandung (ITB)
Untuk beroperasinya sebuah jaringan komputer Internet, sebetulnya pengalamatan sebuah komputer dilakukan menggunakan angka yang dikenal sebagai Internet Protocol (IP) Address yang terdiri dari 32 bit. Tentunya akan sukar bagi manusia / user untuk mengingat sekian juta komputer di seluruh Internet. Untuk itu dikembangkan penamaan mesin yang lebih manusiawi menggunakan konsep Domain Name System (DNS). Pada tulisan ini kami akan mencoba menjelaskan cara mensetup DNS Server di mesin dengan OS UNIX. Kemampuan ini akan sangat dibutuhkan bila sebuah institusi /perusahaan ingin mempunyai nama hostname sendiri di Internet.
Domain Name System adalah salah satu jenis sistem yang melayani permintaan pemetaan IP Address ke FQDN ( Fully Qualified Domain Name ) dan dari FQDN ke IP Address. FQDN lebih mudah untuk diingat oleh manusia daripada IP Address. Sebagai contoh, sebuah komputer memiliki IP Address 167.205.22.114 dan memiliki FQDN “nic.itb.ac.id”. Nama “nic.itb.ac.id” tentunya lebih mudah diingat daripada nomor IP Address di atas. Apalagi setelah lahirnya konsep IP Version 6 yang memiliki 6 segment untuk setiap komputer sehingga nomor IP Address menjadi semakin panjang dan lebih sulit untuk diingat. Selain itu, DNS juga menyediakan layanan mail routing, informasi mengenai hardware, sistem operasi yang dijalankan, dan aplikasi jaringan yang ditangani oleh host tersebut.
Pada sistem operasi UNIX, DNS diimplementasikan dengan menggunakan software Berkeley Internet Name Domain (BIND). BIND ini memiliki dua sisi, yaitu sisi client dan sisi server. Sisi client disebut resolver. Resolver ini bertugas membangkitkan pertanyaan mengenai informasi domain name yang dikirimkan kepada sisi server. Sisi server BIND ini adalah sebuah daemon yang disebut named. Ia yang akan menjawab query-query dari resolver yang diberikan kepadanya.
Pada saat BIND dijalankan, ia memiliki 4 modus operasi, yaitu :
• Resolver-only
Komputer hanya membangkitkan query informasi domain name kepada sebuah DNS server dan tidak menjalankan fungsi DNS server.
• Caching-only
Komputer menjalankan fungsi name server tetapi tidak memiliki database DNS server. Ia hanya mempelajari jawaban-jawaban query yang diberikan oleh remote DNS server dan menyimpannya dalam memory. Data-data dalam memory tersebut akan digunakan untuk menjawab query selanjutnya yang diberikan kepadanya.
• Primary server
Komputer menjalankan fungsi name server berdasarkan database yang dimilikinya. Database ini dibangun oleh administrator DNS. Server ini menjadi authoritative source bagi domain tertentu.
• Secondary server
Komputer menjalankan fungsi name server berdasarkan database yang diambil dari primary server. Proses pengambilan file database ini sering disebut zone file transfer. Ia juga menjadi authoritative source bagi domain tersebut.
Resolver-only
Saat berada dalam modus resolver-only, BIND akan mencari file /etc/resolv.conf (pada UNIX umum) dan membaca konfigurasi yang tertera dalam file tersebut. Jika BIND tidak menemukan file tersebut maka ia akan menggunakan konfigurasi standar yang dimilikinya.
Bentuk dasar sintaks pada file /etc/resolv.conf adalah sebagai berikut :
domain name
nameserver address
[nameserver address]
domain menyatakan default domain seperti yang didefinisikan oleh entry name. Jika ada penulisan nama host yang tidak mengandung tanda baca titik maka resolver akan menambahkan entry name di belakang nama host tersebut. Sebagai contoh, jika Anda menuliskan host name mail saja dan entry name berisi ptn.co.id maka resolver akan menggunakan nama mail.ptn.co.id.
nameserver menyatakan server mana yang harus dihubungi jika ada query dari resolver mengenai domain di atas. Apabila server tersebut tidak bisa dihubungi, server selanjutnya menjadi sasaran lemparan query.
Contoh listing file /etc/resolv.conf :
# Resolver configuration file
domain ptn.co.id
# Server terdekat adalah mumet.ptn.co.id, IP 169.98.3.1
nameserver 169.98.3.2
# Gagal ??? Coba server kedua : nggliyeng.ptn.co.id, IP 169.98.2.15
nameserver 169.98.2.15
# Gagal lagi ??? Server ketiga : ngeh.ptn.co.id, IP 169.98.1.2
nameserver 169.98.1.2
Ketiga modus selanjutnya dapat dijalankan secara bersamaan atau berdiri sendiri pada sebuah komputer yang menjadi DNS server. Pengaturan modus ini dilakukan pada konfigurasi daemon named. File-file penting yang menjadi acuan bagi named untuk beroperasi adalah named.boot, data_cache, data_domain, dan data_reverse. named.boot adalah file yang berisi boot script bagi DNS server. data_cache adalah file yang berisi DNS root server. data_domain adalah file yang berisi pemetaan dari FQDN ke IP Address dan data terlengkap dari domain yang bersangkutan. data_reverse adalah file yang berisi data mengenai pemetaan IP Address ke FQDN. Pada sistem operasi UNIX, file-file tersebut terletak di direktori /etc/namedb. Direktori tersebut menjadi default bagi named.
File konfigurasi yang paling penting bagi named adalah file /etc/namedb/named.boot. File ini berisikan perintah-perintah yang mendefinisikan fungsi named sebagai caching-only server, primary server, atau secondary server.
Caching-only
Jika kita ingin mengatur agar named hanya beroperasi pada modus caching-only maka file named.boot hanya berisi perintah cache diikuti nama file yang berisi server-server utama yang menjadi tempat melemparkan query.
Berikut ini contoh file named.boot dimana kita mengatur named agar beroperasi pada modus caching-only :
; file named.boot
;
; mendefinisikan default directory
directory /etc/namedb
;
; menjadi caching-only server
cache data_cache
;
Primary Server
Jika kita menghendaki named pada komputer kita menjadi primary server, kita tambahkan kata primary diikuti domain yang dipegang oleh named tersebut dan diakhiri dengan nama file yang berisi database domain tersebut..
Sebagai contoh, komputer kita menjadi primary server untuk domain ptn.co.id dengan file data_domain berjudul ptn. Sebaiknya, sebuah primary server juga menjalankan fungsi caching-only. Hal ini untuk menambah kehandalan server dalam menjawab query-query yang cukup rumit. File named.boot akan berisi sebagai berikut :
; file named.boot
;
; mendefinisikan default directory
directory /etc/namedb
;
; menjadi caching-only server
cache data_cache
;
; menjadi primary server atas domain ptn.co.id
primary ptn.co.id ptn
;
; menjadi primary server atas pemetaan IP Address 169.98.1.x ke FQDN
primary 1.98.169.IN-ADDR.ARPA rev_169.98.1.x
;
Jika komputer kita juga menjadi primary server atas pemetaan IP Address 169.98.1.x ke FQDN maka kita tambahkan entry yang terakhir.
Secondary Server
Secondary server adalah DNS server yang menggunakan database domain yang ditransfer dari primary server. Untuk mengatur server agar menjadi secondary bagi domain tertentu, kita tambahkan kata secondary diikuti dengan domain yang dipegang, kemudian diikuti oleh IP Address primary server dan diakhiri dengan nama file databasenya.
Sebagai contoh, komputer kita akan bertindak sebagai secondary server untuk domain pts.ac.id. Primary server domain dipegang oleh server dns.pts.ac.id dengan nomor IP Address 190.21.85.2. Kita edit file named.boot sehingga menjadi seperti berikut :
; file named.boot
;
; mendefinisikan default directory
directory /etc/namedb
;
; menjadi caching-only server
cache data_cache
;
; menjadi primary server atas domain ptn.co.id
primary ptn.co.id ptn
;
; menjadi secondary server atas domain pts.ac.id dari dns.pts.ac.id
secondary pts.ac.id 190.21.85.2 sec_pts
;
; menjadi primary server atas pemetaan IP Address 169.98.1.x ke FQDN
primary 1.98.169.IN-ADDR.ARPA rev/rev_169.98.1.x
;
; menjadi secondary server atas pemetaan IP Address 190.21.85.x ke FQDN
secondary 85.21.190.IN-ADDR.ARPA 190.21.85.2 rev/sec_190.21.85.x
Jika kita juga menjadi secondary server atas pemetaan IP Address 190.21.85.x ke FQDN dari server dns.pts.ac.id kita tambahkan entry yang terakhir.
Langkah selanjutnya adalah membuat file data_domain dan data_reverse (seperti file ptn dan rev/rev_169.98.1.x) yang akan dibahas pada artikel mendatang.
Daftar Pustaka
• RFC 1034, “Domain Names - Concepts and Facilities”
• RFC 1035, “Domain Names - Implementation and Spesification”
DNS (Domain Name Service)
DNS (Domain Name Service)
DNS bertugas meresolusi IP ke nama alamat dan sebaliknya dari nama alamat ke nomor IP. Beberapa cara untuk meresolusi alamat Internet antara lain :
1.Dengan membaca file lokal /etc/hosts
2.Dengan memanfaatkan pelayanan DNS Server
3.Dengan memanfaatkan pelayanan NIS (Network Information System) Server
File /etc/hosts
File ini berisi pengalamatan name-to-ip yang bisa digunakan juga untuk resolusi ip-to-name. 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@digital modul]# cat /etc/hosts
192.168.0.6 digital.adhyaksa.net digital
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 digital.adhyaksa.net dan digital 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 ini identik isinya satu sama lain
Setiap kali ada perubahan nama host atau nomor IP, maka seluruh file di seluruh 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 diseluruh dunia saling bekerjasama dalam rangka meresolusi 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 :
"Proses penampilan gambar atau isi sebuah situs pada browser Netscape yang digunakan seorang pengguna Linux dengan akses dial-up ke sebuah ISP di Indonesia misalnya comnet.net.id. Saat itu DNS client mengarah pada DNS server dengan IP 202.150.128.64 dan IP 202.150.128.65."
Perjalanan yang ditempuh untuk meresolusi 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 meresolusi 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
DNS Client
DNS client bertugas untuk menentukan DNS server yang digunakan untuk meresolusi 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@digital /root]# 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 adhyaksa.net
nameserver 192.168.0.4
nameserver 192.168.0.1
Pada contoh diatas PNS 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.
Paket BIND 8.2.2
Program DNS yang digunakan oleh Linux RedHat 6.2 adalah BIND 8.2.2 yang terdiri dari file-file rpm sebagai berikut :
bind-8.2.2_P5-9.i386.rpm
bind-utils-8.2.2_P5-9.i386.rpm
bind-devel-8.2.2_P5-9.i386.rpm
caching-nameserver-6.2-2.noarch.rpm
Gunakan rpm -ivh untuk menginstal bind pada mesin server Linux.
Konfigurasi Name Server
PNS 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 8.x.x.
[root@digital /root]# cat /etc/named.conf
// 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";
};
/var/named/*
Direktori /var/named berisi file-file zona yang namanya bersesuaian dengan tag file pada bracket zone dalam /etc/named.conf
[root@digital /root]# ls -l /var/named
total 4
-rw-r--r-- 1 root root 2769 Feb 4 2000 named.ca
-rw-r--r-- 1 root root 422 Feb 4 2000 named.local
[root@digital /root]# cat /var/named/named.local
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS localhost.
1 IN PTR localhost.
[root@digital /root]# cat /var/named/named.ca
; 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
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 /etc/named.conf dapat dijelaskan sebagai berikut :
Terdiri dari 2 bracket dasar yaitu :
Blok Options
Berisi kompulan opsi-opsi global untuk bind 8.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.
Bila kita bertujuan membuat zona file untuk pemetaan NAME-TO-IP gunakan nama domain sebagai nama zona.
Bila kita bertujuan membuat zona file untuk pemetaan IP-TO-NAME gunakan nama domain dengan format sebagai berikut :
Contoh :
IP-TO-NAME untuk network 192.168.0, nama zona file ditulis 0.168.192.in-addr.arpa
IP-TO-NAME untuk network 202.150.128, nama zona file ditulis 128.150.202..in-addr.arpa
Format file zona dapat dijelaskan sebagai berikut :
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. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
Keterangan :
@ Merupakan shortcut yang menyatakan nama domain yang bersesuaian dengan zona ini
IN Merupakan kata kunci protokol INTERNET
SOA Menyatakan nama record SOA
localhost. Name Server yang menangani domain ini
root.localhost Menyatakan 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 nomor IP
@ IN A 192.168.0.1
digital IN A 192.168.0.4
CNAME
Menyatakan nama Alias (Canonical Name)
mail IN CNAME digital.
Berarti : mail adalah nama alias dari digital
PTR
Menyatakan pointer, yaitu reversed-address
digital IN A 192.168.0.4
4.0.168.192.in-addr.arpa. IN PTR digital.
Berarti : IP 192.168.0.4 dipetakan ke nama domain atau subdomain digital.
MX
Menyatakan Mail Exchanger, digunakan untuk menunjuk mail server yang menangani email domain atau subdomain ini
digital IN MX 0 super.adhyaksa.net.
IN MX 10 drutz.adhyaksa.net.
Berarti : email untuk digital.adhyaksa.net akan diterima oleh mail server dengan prioritas lebih tinggi (super.adhyaksa.net) dimana 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.
HINFO
Menyatakan Hardware Information
digital IN HINFO "Intel PIII 550 - Linux Redhat 6.2"
TXT
Menyatakan infomasi umum
digital IN TXT "Server location : Sukapura - Bandung"
Contoh kasus :
"Konfigurasikan sebuah host menjadi PNS dengan nama domain adhyaksa.net mempunyai range IP 192.168.0.1 - 192.168.0.15."
Penentuan IP untuk host-host tertentu, misalnya :
ns1.adhyaksa.net -> IP 192.168.0.1
ns2.adhyaksa.net -> IP 192.168.0.2
www.adhyaksa.net -> IP 192.168.0.3
mail.adhyaksa.net -> IP 192.168.0.3
ftp.adhyaksa.net -> IP 192.168.0.3
mp3.adhyaksa.net -> IP 192.168.0.9
vhost.adhyaksa.net -> IP 192.168.0.13
Untuk IP yang lainnya disimpan untuk keperluan mendatang.
1.Membuat /etc/named.conf
options {
directory "/var/named";
};
zone "." {
type hint;
file "named.ca";
};
zone "adhyaksa.net" {
type master;
file "db.adhyaksa.net";
};
zone "0.168.192.in-addr.arpa" {
type master;
file "db.192.168.0";
};
Membuat file zona untuk domain adhyaksa.net diberi nama db.adhyaksa.net
@ IN SOA ns1.adhyaksa.net. admin.adhyaksa.net. (
200022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
@ IN NS ns1.adhyaksa.net.
@ IN NS ns2.adhyaksa.net.
IN MX 10 mail.adhyaksa.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.adhyaksa.net. root.localhost. (
200022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns1.adhyaksa.net.
IN NS ns2.adhyaksa.net.
1 IN PTR ns1.adhyaksa.net.
2 IN PTR ns2.adhyaksa.net.
13 IN PTR vhost.adhyaksa.net.
Tes hasil konfigurasi
1.Aktifkan bind dengan perintah berikut :
[root@digital /root]# /etc/rc.d/init.d/named start
2.Lakukan pemeriksaan pada /var/log/messages
[root@digital /root]# cat /var/log/messages
3.Cek dengan tool nslookup dan dig
DNS bertugas meresolusi IP ke nama alamat dan sebaliknya dari nama alamat ke nomor IP. Beberapa cara untuk meresolusi alamat Internet antara lain :
1.Dengan membaca file lokal /etc/hosts
2.Dengan memanfaatkan pelayanan DNS Server
3.Dengan memanfaatkan pelayanan NIS (Network Information System) Server
File /etc/hosts
File ini berisi pengalamatan name-to-ip yang bisa digunakan juga untuk resolusi ip-to-name. 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@digital modul]# cat /etc/hosts
192.168.0.6 digital.adhyaksa.net digital
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 digital.adhyaksa.net dan digital 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 ini identik isinya satu sama lain
Setiap kali ada perubahan nama host atau nomor IP, maka seluruh file di seluruh 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 diseluruh dunia saling bekerjasama dalam rangka meresolusi 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 :
"Proses penampilan gambar atau isi sebuah situs pada browser Netscape yang digunakan seorang pengguna Linux dengan akses dial-up ke sebuah ISP di Indonesia misalnya comnet.net.id. Saat itu DNS client mengarah pada DNS server dengan IP 202.150.128.64 dan IP 202.150.128.65."
Perjalanan yang ditempuh untuk meresolusi 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 meresolusi 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
DNS Client
DNS client bertugas untuk menentukan DNS server yang digunakan untuk meresolusi 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@digital /root]# 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 adhyaksa.net
nameserver 192.168.0.4
nameserver 192.168.0.1
Pada contoh diatas PNS 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.
Paket BIND 8.2.2
Program DNS yang digunakan oleh Linux RedHat 6.2 adalah BIND 8.2.2 yang terdiri dari file-file rpm sebagai berikut :
bind-8.2.2_P5-9.i386.rpm
bind-utils-8.2.2_P5-9.i386.rpm
bind-devel-8.2.2_P5-9.i386.rpm
caching-nameserver-6.2-2.noarch.rpm
Gunakan rpm -ivh untuk menginstal bind pada mesin server Linux.
Konfigurasi Name Server
PNS 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 8.x.x.
[root@digital /root]# cat /etc/named.conf
// 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";
};
/var/named/*
Direktori /var/named berisi file-file zona yang namanya bersesuaian dengan tag file pada bracket zone dalam /etc/named.conf
[root@digital /root]# ls -l /var/named
total 4
-rw-r--r-- 1 root root 2769 Feb 4 2000 named.ca
-rw-r--r-- 1 root root 422 Feb 4 2000 named.local
[root@digital /root]# cat /var/named/named.local
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS localhost.
1 IN PTR localhost.
[root@digital /root]# cat /var/named/named.ca
; 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
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 /etc/named.conf dapat dijelaskan sebagai berikut :
Terdiri dari 2 bracket dasar yaitu :
Blok Options
Berisi kompulan opsi-opsi global untuk bind 8.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.
Bila kita bertujuan membuat zona file untuk pemetaan NAME-TO-IP gunakan nama domain sebagai nama zona.
Bila kita bertujuan membuat zona file untuk pemetaan IP-TO-NAME gunakan nama domain dengan format sebagai berikut :
Contoh :
IP-TO-NAME untuk network 192.168.0, nama zona file ditulis 0.168.192.in-addr.arpa
IP-TO-NAME untuk network 202.150.128, nama zona file ditulis 128.150.202..in-addr.arpa
Format file zona dapat dijelaskan sebagai berikut :
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. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
Keterangan :
@ Merupakan shortcut yang menyatakan nama domain yang bersesuaian dengan zona ini
IN Merupakan kata kunci protokol INTERNET
SOA Menyatakan nama record SOA
localhost. Name Server yang menangani domain ini
root.localhost Menyatakan 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 nomor IP
@ IN A 192.168.0.1
digital IN A 192.168.0.4
CNAME
Menyatakan nama Alias (Canonical Name)
mail IN CNAME digital.
Berarti : mail adalah nama alias dari digital
PTR
Menyatakan pointer, yaitu reversed-address
digital IN A 192.168.0.4
4.0.168.192.in-addr.arpa. IN PTR digital.
Berarti : IP 192.168.0.4 dipetakan ke nama domain atau subdomain digital.
MX
Menyatakan Mail Exchanger, digunakan untuk menunjuk mail server yang menangani email domain atau subdomain ini
digital IN MX 0 super.adhyaksa.net.
IN MX 10 drutz.adhyaksa.net.
Berarti : email untuk digital.adhyaksa.net akan diterima oleh mail server dengan prioritas lebih tinggi (super.adhyaksa.net) dimana 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.
HINFO
Menyatakan Hardware Information
digital IN HINFO "Intel PIII 550 - Linux Redhat 6.2"
TXT
Menyatakan infomasi umum
digital IN TXT "Server location : Sukapura - Bandung"
Contoh kasus :
"Konfigurasikan sebuah host menjadi PNS dengan nama domain adhyaksa.net mempunyai range IP 192.168.0.1 - 192.168.0.15."
Penentuan IP untuk host-host tertentu, misalnya :
ns1.adhyaksa.net -> IP 192.168.0.1
ns2.adhyaksa.net -> IP 192.168.0.2
www.adhyaksa.net -> IP 192.168.0.3
mail.adhyaksa.net -> IP 192.168.0.3
ftp.adhyaksa.net -> IP 192.168.0.3
mp3.adhyaksa.net -> IP 192.168.0.9
vhost.adhyaksa.net -> IP 192.168.0.13
Untuk IP yang lainnya disimpan untuk keperluan mendatang.
1.Membuat /etc/named.conf
options {
directory "/var/named";
};
zone "." {
type hint;
file "named.ca";
};
zone "adhyaksa.net" {
type master;
file "db.adhyaksa.net";
};
zone "0.168.192.in-addr.arpa" {
type master;
file "db.192.168.0";
};
Membuat file zona untuk domain adhyaksa.net diberi nama db.adhyaksa.net
@ IN SOA ns1.adhyaksa.net. admin.adhyaksa.net. (
200022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
@ IN NS ns1.adhyaksa.net.
@ IN NS ns2.adhyaksa.net.
IN MX 10 mail.adhyaksa.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.adhyaksa.net. root.localhost. (
200022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS ns1.adhyaksa.net.
IN NS ns2.adhyaksa.net.
1 IN PTR ns1.adhyaksa.net.
2 IN PTR ns2.adhyaksa.net.
13 IN PTR vhost.adhyaksa.net.
Tes hasil konfigurasi
1.Aktifkan bind dengan perintah berikut :
[root@digital /root]# /etc/rc.d/init.d/named start
2.Lakukan pemeriksaan pada /var/log/messages
[root@digital /root]# cat /var/log/messages
3.Cek dengan tool nslookup dan dig
Subscribe to:
Posts (Atom)