dns server implementation - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_full.pdf ·...

190
DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON SHELL SCRIPT AND PERL A Thesis Presented as Partial Fulfillment of the Requirements to Obtain the Sarjana Teknik Degree in Department of Informatics Technology by: Fito Nathius Tatontos 005314029 DEPARTMENT OF INFORMATICS TECHNOLOGY FACULTY OF ENGINEERING SANATA DHARMA UNIVERSITY YOGYAKARTA 2006

Upload: others

Post on 19-Aug-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

DNS SERVER IMPLEMENTATION

WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED

ON SHELL SCRIPT AND PERL

A Thesis

Presented as Partial Fulfillment of the Requirements

to Obtain the Sarjana Teknik Degree

in Department of Informatics Technology

by:

Fito Nathius Tatontos

005314029

DEPARTMENT OF INFORMATICS TECHNOLOGY

FACULTY OF ENGINEERING

SANATA DHARMA UNIVERSITY

YOGYAKARTA

2006

Page 2: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON
Page 3: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON
Page 4: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

PERNYATAAN KEASLIAN KARYA

Saya menyatakan dengan sesungguhnya bahwa skripsi yang saya tulis ini tidak

memuat karya atau bagian karya orang lain, kecuali yang telah disebutkan dalam

kutipan dan daftar pustaka, sebagaimana layaknya karya ilmiah.

Yogyakarta, Oktober 2006

Penulis

Fito Nathius Tatontos

iv

Page 5: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

Halaman Persembahan

This paper dedicated 2 :

My Almighty God (Mr. J)

( ) Dad, Mom, Sister, Kei &

My Family

I have no special words or something 2 give 4 all of your provisions, prayers, kindnesses,

supports, patient, & etc.

Thank U, never be enough 2 avenge all of your provisions, prayers, kindnesses, supports,

patient & etc.

With Love, your Fito

v

Page 6: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

Halaman Motto

Never stop…feel Satisfied

4 what U’ve Got and 4 what U’ve Done

today…

Tomorrow……… Must Get

D’New Things & Better than Today

My Weakness is My Strength

vi

Page 7: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

ABSTRAKSI

Pada saat ini jumlah pengguna IP semakin bertambah banyak, dimana

resource yang disediakan untuk alamat IP publik ini semakin sedikit. Oleh karena

itu, Internet Engineering Task Force (IETF) mendesain suatu versi protokol IP

yang baru yaitu IP versi 6 atau IPv6. IPv6 ini menyediakan kombinasi sebanyak

2128 alamat atau sebesar 340282366920938463463374607431768211456 alamat.

Sehingga dengan resource alamat sebesar ini diharapkan komunikasi komputer di

seluruh dunia tidak akan kehabisan alamat.

Hasil dari implementasi dengan pemakaian server DNS berbasis protokol

IPv6 untuk konversi nama ke alamat IPv6 akan menggunakan sistem operasi

Linux yang memiliki layanan aplikasi server DNS (Domain Name System) dari

program BIND (Berkeley Internet Name Domain). Sehingga dimasa mendatang,

layanan DNS dapat membantu layanan, aplikasi atau sistem operasi lain berbasis

protokol IPv6.

vii

Page 8: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

ABSTRACT

Today the use of IP version is increasing more and more, which the

reserved resource of this public IP address is decreasing. Therefore, Internet

Engineering Task Force (IETF) designed a new protocol version of IP that called

IP version 6 or IPv6. This version provides 2128 addresses combination or equal to

340282366920938463463374607431768211456 addresses. With this large of

range IP address resource, expected computer communications in all the world

will not lacks of address resource.

The result of the implementation by using DNS server based on IPv6

protocol to convert name to IPv6 address with Linux operating system which has

DNS (Domain Name System) server application services from BIND (Berkeley

Internet Name Domain) program. In the future, the use of DNS service will be

useful for other applications, services or operating systems which based on IPv6

protocol.

viii

Page 9: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

KATA PENGANTAR

Puji syukur penulis haturkan kepada Tuhan Yang Maha Esa atas segala karunia

yang diberikan, sehingga penulis dapat menyelesaikan tugas akhir yang berjudul

“IMPLEMENTASI SERVER DNS DENGAN PROTOKOL IPv6:

PENGEMBANGAN TOOLS named6 BERBASIS SHELL SCRIPT dan PERL”

ini dengan baik. Penulisan ini merupakan salah satu syarat untuk memperoleh

gelar Sarjana Teknik di Universitas Sanata Dharma pada program studi Teknik

Informatika.

Selama penulisan skripsi ini penulis telah memperoleh bantuan dan

bimbingan dari berbagai pihak. Oleh karena itu penulis mengucapkan terima kasih

kepada:

1. Ibu A.M. Polina, selaku Ketua Jurusan Tenik Informatika Universitas Sanata

Dharma.

2. Bapak Albert A. Hadhiatma selaku pembimbing I yang telah banyak

membantu dan membimbing selama mengerjakan tugas akhir ini.

3. Bapak H. Agung Hernawan selaku pembimbing II yang telah memberi banyak

masukan dan bimbingannya.

4. (Alm.) Papa, Mama, Oyen, Keiko dan saudara-saudara yang telah memberi

dorongan baik moril maupun materi.

5. Bapak Donny yang banyak memberi masukan, ilmu-ilmu di luar kampus dan

dukungan via sms-nya sampai dengan saat ini.

ix

Page 10: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

6. Bapak Belle dan Pak Dar yang banyak memberi bantuan dan semangat terus.

Thanks Pak.

7. Teman-teman TI: Team Lapeks: Wawan “Gundul”, Ninuk “Unino”, Sony

“Sang Poh” + Oenang “Mbeek atau Mbing” thanks buat support dan saat

nemenin nge-garap TA-nya, Teman Asisten Jarkom yang bareng Ariep,

Wawan Suna, Bowcil, Kitul Kids: Joe Wecky KLoN-NenG, I-Pay dan teman-

teman lainnya, thanks a lot guys.

8. Sohib-ku: Oh..Pit & Liendo Mblong @ JKT, Ichpoen & Bgy @ JGY, thanks a

lot bro.

9. Semua pihak yang tidak tersebutkan, yang telah memberikan dukungan serta

bantuannya guna penyusunan karya tulis ini

Penulis menyadari sepenuhnya bahwa Tugas Akhir ini masih jauh dari

kesempurnaan dan masih banyak kekurangan. Oleh karena itu penulis sangat

mengharapkan kritik dan saran yang bersifat membangun demi perbaikan lebih

lanjut. Penulis berharap semoga Tugas akhir ini dapat bermanfaat dan berguna

bagi pembaca.

Yogyakarta, Oktober 2006

Penulis

x

Page 11: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

DAFTAR ISI

HALAMAN JUDUL................................................................................................ i

HALAMAN PERSETUJUAN................................................................................ ii

HALAMAN PENGESAHAN................................................................................ iii

HALAMAN PERNYATAAN KEASLIAN KARYA... ........................................ iv

HALAMAN PERSEMBAHAN... ...........................................................................v

HALAMAN MOTTO.. .......................................................................................... vi

ABSTRAKSI.. ...................................................................................................... vii

ABSTRACT......................................................................................................... viii

KATA PENGANTAR... ........................................................................................ ix

DAFTAR ISI.......................................................................................................... xi

DAFTAR GAMBAR..... ..................................................................................... xvii

DAFTAR TABEL... ............................................................................................. xix

BAB I PENDAHULUAN........ ..............................................................................1

1.1. Latar Belakang ..................................................................................................1

1.2. Batasan Masalah ...............................................................................................3

1.3. Rumusan Masalah .............................................................................................4

1.4. Tujuan Penulisan...............................................................................................5

1.5. Metodologi Penelitian .......................................................................................6

1.6. Sistematika Penulisan .......................................................................................7

xi

Page 12: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

BAB II LANDASAN TEORI..... ..........................................................................9

2.1. Pengertian..........................................................................................................9

2.2. Jaringan Komputer....................................................................................... ...10

2.3. TCP/IP (Transfer Control Protocol / Internet Protocol).............................. ..13

2.3.1. TCP (Transmision Control Protocol) ...........................................................15

2.3.2. IP (Internet Protocol) ...................................................................................16

2.3.3. IPv6 (Internet Protocol versi 6)....................................................................19

2.3.3.1. Istilah-Istilah dalam IPv6 ..........................................................................21

2.3.3.2. Format Header IPv6................................................................... ...............22

2.3.3.3. Arsitektur Pengalamatan IPv6...................................................................23

2.4. UDP (User Datagram Protocol) ......................................................................24

2.5. PORT.... ..........................................................................................................26

2.6. Sistem Operasi Linux......................................................................................27

2.6.1. Jenis-Jenis Service pada Linux...... ..............................................................29

2.6.2. Domain Name System (DNS).... ..................................................................30

2.6.3. BIND pada Sistem Operasi Linux.... ...........................................................34

2.6.3.1. Konfigurasi BIND dengan IPv4................................................................36

2.6.3.2. Forward DNS dengan IPv6.. .....................................................................36

2.6.3.3. Reverse DNS dengan IPv6........................................................................36

2.6.4. Cara Kerja DNS IPv6 dengan BIND... ........................................................37

2.6.4.1. Konversi alamat IPv6 dengan Format Nibble...........................................38

2.6.4.2. Konversi alamat IPv6 ke nama dengan Format Bitstring. ........................38

2.7. Pemrograman Shell.. .......................................................................................39

xii

Page 13: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

2.7.1. Jenis-jenis Shell............................................................................................40

2.7.2. Bash Shell ....................................................................................................40

2.8. Pemrograman Perl... ........................................................................................43

2.8.1. Keuntungan Menggunakan Perl.. .................................................................43

2.8.2. Ekstensi Perl Untuk Database... ...................................................................44

2.8.3. Kelemahan Penggunaan Perl.. .....................................................................45

2.8.4. Tipe Data Perl.. ............................................................................................45

2.8.4.1. Tipe Data Scalar.. ......................................................................................46

2.8.4.2. Tipe Data Array.........................................................................................46

2.8.5. Program Sederhana Perl.. .............................................................................47

BAB III ANALISIS DAN PERANCANGAN SISTEM..................................49

3.1. ANALISIS ..................................................................................................... 49

3.1.1. Strategi pada masa Transisi......................................................................... 49

3.1.2. Kasus Penanganan Porgram BIND-named dengan IPv6........ .................... 53

3.1.3. Program BIND-named Pada Linux......... .................................................... 58

3.1.4. Analisis Kebutuhan................. .................................................................... 59

3.1.5. Analisa Proses.............. ............................................................................... 60

3.2. DESAIN ......................................................................................................... 80

3.2.1. Konfigurasi Jaringan ................................................................................... 80

3.2.2. Konfigurasi Hardware dan Software........................................................... 81

3.2.3. Bentuk Umum Program named6................................................................. 82

3.2.3.1. named6 start ............................................................................................. 83

xiii

Page 14: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

3.2.3.2. named6 restart....... ................................................................................... 84

3.2.3.3. named6 stop............ ................................................................................. 84

3.2.3.4. named6 status......... .................................................................................. 84

3.2.3.5. named6 help........................... .................................................................. 84

3.2.3.6. named6 add.................... .......................................................................... 85

3.2.3.7. named6 edit.............. ................................................................................ 85

3.2.3.8. named6 delete........................................................................................... 86

3.2.3.9. named6 view.................. .......................................................................... 87

BAB IV IMPLEMENTASI PROGRAM.. ........................................................88

4.1. Lingkungan Implementasi...............................................................................88

4.1.1. Lingkungan Perangkat Lunak........ ..............................................................88

4.1.2. Lingkungan Perangkat Keras...... .................................................................89

4.2. Karakteristik Pengguna..... ..............................................................................90

4.3.Implementasi Program named6..... ..................................................................90

4.3.1. Inisialisasi Lokasi Direktori...... ...................................................................90

4.3.2. Inisialisasi Passing Parameter...... ................................................................91

4.3.3. Proses Utama Program named6.... ...............................................................91

4.3.4. Proses Fungsi bantu dan Variabel help...... ..................................................92

4.4. Proses Tambah Nama Server dan Host..... ......................................................96

4.4.1. Proses Tambah Server..................................................................................96

4.4.1.1. Proses Program cekIP.pl....... ..................................................................100

4.4.1.2. Proses Program ffwdSRV.sh...................................................................104

xiv

Page 15: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

4.4.1.3. Proses Program reSRV.pl.... ...................................................................106

4.4.1.4. Proses Program reSRV.sh.... ...................................................................111

4.4.1.5. Proses Program named-resolv.sh... .........................................................112

4.4.2. Proses Tambah Host...................................................................................114

4.4.2.1. Proses Program cekIP.pl... ......................................................................116

4.4.2.2. Proses Program ffwdHST.sh...................................................................116

4.4.2.3. Proses Program reHST.pl........................................................................117

4.4.2.4. Proses Program reHST.sh..... ..................................................................117

4.4.3. Proses Ubah Server dan Host.....................................................................118

4.4.3.1. Proses Ubah Nama Server dan Host... ....................................................118

4.4.3.1.1. Program EditNama6.sh untuk Ubah Nama Server... ...........................121

4.4.3.1.2. Program EditNama6.sh untuk Ubah Nama Host.... .............................124

4.4.3.2. Proses Ubah Alamat Server dan Host... ..................................................125

4.4.3.2.1. Program cekIPB.pl untuk Ubah Alamat/Prefix Server dan Host... ......129

4.4.3.2.2. Program ReIPL.pl untuk Ubah Alamat/Prefix Server dan Host... .......129

4.4.3.2.3. Program ReIPB.pl untuk Ubah Alamat/Prefix Server dan Host... .......130

4.4.3.2.4. Program EditIP6.sh untuk Ubah Alamat/Prefix Server dan Host.. ......130

4.4.4. Proses Hapus Server dan Host... ................................................................133

4.4.4.1. Program delete6.sh untuk Hapus Server dan Host..................................136

4.4.5. Proses Tampil.............................................................................................136

BAB V ANALISA HASIL.... .............................................................................140

5.1. Analisa Hasil Perangkat Lunak.... .................................................................140

xv

Page 16: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

5.2. Analisa Tools Pengembang...........................................................................142

5.3. Analisa File Utama dengan Format IPv6... ...................................................144

5.4. Kelebihan dan Kekurangan... ........................................................................144

5.4.1. Kelebihan Program ..... ..............................................................................144

5.4.2. Kekurangan Program.... .............................................................................145

BAB VI KESIMPULAN DAN SARAN............................................................146

6.1. Kesimpulan... ................................................................................................146

6.2. Saran..............................................................................................................148

xvi

Page 17: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

DAFTAR GAMBAR

Gambar 2.1 Pemodelan Layer Menurut OSI dan TCP/IP.................. ....................11

Gambar 2.2 Pembagian Protokol menurut OSI......................................................11

Gambar 2.3 Pembagian Protokol menurut TCP/IP ...............................................12

Gambar 2.4 Segment TCP......................................................................................16

Gambar 2.5 Format Datagram IP ...........................................................................17

Gambar 2.6 Format Header IPv4 ...........................................................................22

Gambar 2.7 Format Header IPv6 ...........................................................................23

Gambar 2.8 Format Daragram UDP ......................................................................25

Gambar 2.9 Format 3 layer dalam internet.............................................................26

Gambar 2.10 Struktur sistem file Linux.................................................................29

Gambar 2.11 Lingkup Kerja sever DNS... .............................................................33

Gambar 2.12 Arsitektur Sistem Linux dan lokasi SHELL ....................................39

Gambar 3.1. Konfigurasi Jaringan dengan Server DNS..... ...................................53

Gambar 3.2.Flowchart proses tambah server program named6.............................62

Gambar 3.3.Flowchart program cekIP.pl tambah server.. .....................................63

Gambar 3.4.Flowchart program ffwdSRV.sh tambah server.................................64

Gambar 3.5.Flowchart program reSRV.pl tambah server......................................65

Gambar 3.6.Flowchart program reSRV.sh tambah server..... ................................66

Gambar 3.7.Flowchart program named-resolv.sh tambah server... .......................67

Gambar 3.8.Flowchart program named6 tambah klien host... ...............................68

Gambar 3.9.Flowchart program ffwdHST.sh tambah klien host.. .........................69

xvii

Page 18: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

Gambar 3.10.Flowchart program reHST.sh tambah klien host.. ...........................70

Gambar 3.11.Flowchart program named6 ubah nama.. .........................................71

Gambar 3.12.Flowchart program EditNama6.sh ubah nama.. ...............................72

Gambar 3.13.Flowchart program named6 ubah alamat/prefix.. ............................73

Gambar 3.14.Flowchart program EditIP6.sh ubah alamat/prefix.. ........................75

Gambar 3.15.Flowchart program named6 hapus server atau host.. .......................76

Gambar 3.16.Flowchart program delete6.sh hapus server atau host......................77

Gambar 3.17.Flowchart program named6 untuk tampil server dan host.... ...........78

Gambar 3.18. Flowchart Proses Umum Program named6.....................................79

Gambar 3.19. Implementasi Server DNS dengan IPv6 dalam Jaringan... ............80

xviii

Page 19: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

DAFTAR TABEL

Tabel 2.1 Keterangan IPv6.....................................................................................23

Tabel 2.2 Well known port.....................................................................................27

Table 2.3 Ekstensi Perl untuk Database.................................................................45

xix

Page 20: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

BAB I

PENDAHULUAN

1.1. Latar Belakang

Perkembangan teknologi yang pesat terutama dalam bidang teknologi dan

informasi komputerisasi, memunculkan suatu gagasan komunikasi antar dua atau

lebih perangkat komputer. Protokol TCP/IP (Transfer Control Protocol / Internet

Protocol) adalah sebuah protokol yang dapat menjembatani komunikasi antar

komputer. Pengalamatan yang dipakai sekarang ini adalah pengalamatan Internet

Protocol dengan menggunakan Internet Protokol versi 4 (IPv4) yang sering

digunakan untuk keperluan komunikasi Internet.

Untuk pemakaian alamat dengan IPv4 memberikan sejumlah alokasi

alamat sebanyak 232 atau 4294967296 alamat. Namun perbandingan dari alamat

IPv4 yang ada dengan berkembangnya jumlah pengguna layanan Internet saat ini,

maka sudah dapat dipastikan bahwa alamat yang tersedia akan habis.

Oleh karena itu dikembangkan suatu model pengalamatan IP baru untuk

menggantikan pengalamatan IPv4. Model pengalamatan ini disebut sebagai

pengalamatan IP versi 6 atau IPv6 atau sering juga disebut IPNG (Internet

Protocol New Generation). Alokasi alamat yang disediakan oleh IPv6 sebesar 2128

atau 340282366920938463463374607431768211456 alamat. Dengan Sumber

daya alamat sebanyak ini, diharapkan dapat mengganti atau setidaknya menutupi

kekurangan sumber daya alamat yang ada sekarang ini.

1

Page 21: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

2

Sehingga format penulisan untuk alamat IPv6 akan berubah dan

mempengaruhi layanan aplikasi lain untuk mendukung protokol tersebut. Salah

satu penanganan layanan aplikasi yang dilakukan untuk konversi nama ke alamat

IPv4 adalah dengan menggunakan sebuah layanan server DNS (Domain Name

System) yang berfungsi untuk mengkonversi alamat ke nama atau sebaliknya.

Sehingga pemakaian server DNS berbasis protokol IPv6 dalam suatu jaringan

akan sangat bermanfaat di masa mendatang sebagai salah satu layanan aplikasi

pendukung protokol tersebut.

Karena format penulisan alamat IPv6 berbeda dari alamat IPv4 maka

seorang administrtor harus mengetahui format penulisan isi file-file utama dan

file-file konfigurasi secara manual agar sebuah komputer dapat digunakan sebagai

server DNS pada sistem operasi Linux berbasis text-mode atau non- GUI

(Graphical User Interface) dengan layanan aplikasi named dari program BIND

(Berkeley Internet Name Domain). Pertimbangan pemilihan sistem operasi Linux

berbasis text-mode dengan alasan pemanfaatan dana dalam penggantian

infrastruktur yang mendukung IPv6.

Dengan mempertimbangkan kesulitan konfigurasi dan pembuatan file-file

dalam format alamat IPv6 yang rumit pada sistem operasi Linux berbasis text-

mode, maka penulis mencoba membuat program bantu (tools) yang dapat

mempermudah administrator dalam mempersiapkan file-file dan konfigurasi yang

dibutuhkan sebuah komputer server DNS berbasis alamat IPv6.

.

Page 22: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

3

1.2. Batasan Masalah

Beberapa batasan masalah dalam penyusunan skripsi ini adalah:

1. Sistem operasi yang dimanfaatkan untuk layanan aplikasi sebuah server

DNS dengan alamat IPv6 statis adalah sistem operasi Linux berbasis text-

mode dengan memanfaatkan kernel versi 2.4 ke atas.

2. Sistem operasi yang dimanfaatkan untuk klien-klien host server DNS

adalah Linux Fedora Core 2 dan Windows XP Professional SP1 untuk

membandingkan perkembangan fasilitas dukungan protokol IPv6 pada

kedua sistem operasi, pengecekan pada klien dilakukan dengan beberapa

perintah dan melalui browser.

3. Implementasi program bantu (tools) dengan alamat IPv6 dan penamaan

untuk server DNS memanfaatkan servis dari aplikasi BIND versi 9.2.3

dan servis httpd untuk layanan server Web untuk pembuktian penamaan

ke alamat atau sebaliknya, telah didukung untuk layanan lainnya.

4. Penggunaan prefix untuk alamat IPv6 pada program bantu, masih dibatasi

dengan format standard (sering digunakan).

5. Proses pengecekan server DNS telah mendukung protokol IPv6, akan

memanfaatkan perintah ping6, dig, host dan mengaktifkan layanan server

Web pada komputer server DNS untuk pengecekan dari komputer klien.

6. Konsep implementasi DNS server dengan IPv6, masih dilakukan dalam

lingkup jaringan lokal berbasis IPv6 atau tidak memanfaatkan akses

keluar internet backbone IPv6 .

Page 23: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

4

7. Bagian instalasi sistem operasi, trouble shooting, routing, tunneling,

Manajemen jaringan dan keamanan tidak dibahas dalam tulisan.

8. Program bantu named6 berbasis shell script dan perl sebagai tools

tambahan pada servis named dari program BIND digunakan untuk

mengkonfigurasi dan membuat file-file utama server DNS dengan format

alamat IPv6.

1.3. Rumusan Masalah

1. Membuat program bantu named6 berbasis shell script dan perl untuk

mempermudah membuat file-file utama dan file konfigurasi dengan

format alamat IPv6 secara otomatis yang dibutuhkan oleh program named

bawaan (default) dari BIND versi 9 pada sistem operasi Linux berbasis

text-mode untuk server DNS berbasis protokol IPv6.

2. Pada saat komputer server DNS telah berjalan dengan baik, layanan server

Web dengan alamat IPv6 akan diaktifkan untuk mengecek servis

penamaan DNS telah dapat dimanfaatkan juga oleh layanan Web.

3. Melakukan perbandingan melalui pengecekan pada sisi klien yang

menggunakan sistem operasi Linux Fedora Core 2 dan Windows XP

Professional SP1, dengan perintah-perintah pengecekan yang mendukung

protokol IPv6, serta penggunaan browser untuk membuktikan penamaan

dari server DNS pada layanan server Web telah dapat digunakan.

Page 24: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

5

1.4. Tujuan Penulisan

Tujuan dari penulisan skripsi ini difokuskan pada program bantu atau

program pendukung (tools) pada level layanan aplikasi DNS yang telah

mendukung protokol IPv6, yaitu aplikasi BIND versi 9.2.3 dengan daemon named

pada sistem operasi Linux Fedora Core 2.

Tools tersebut akan berfungsi untuk menjalankan servis DNS dari aplikasi

yang telah ada dalam sebuah komputer, sehingga komputer dapat berfungsi

sebagai sebuah komputer server DNS yang memanfaatkan alamat IPv6. Dengan

menjalankan tools bantu, server DNS memiliki kemampuan untuk melakukan

pembuatan, penyimpanan dan pencarian informasi dari alamat IPv6 ataupun

nama server dan klien pada komputer dalam jaringan sebuah jaringan lokal

berbasis IPv6.

Dengan adanya perancangan dan implementasi tools pendukung yang

difokuskan pada sebuah layanan aplikasi untuk server DNS dalam jaringan lokal

berbasis IPv6 ini, diharapkan dicapai beberapa manfaat berikut :

1. Memberikan kemudahan dan timing down untuk seorang

administrator dalam membuat file-file utama secara otomatis untuk

servis named dari BIND dengan format alamat IPv6 pada komputer

server DNS yang mengunakan sistem operasi Linux berbasis text-

mode dengan aplikasi BIND versi 9.

2. Server DNS dengan protokol IPv6 telah dapat berfungsi sebagai mesin

konversi dan pemberian nama untuk server maupun klien DNS dalam

suatu jaringan lokal berbasis alamat IPv6 dan telah dapat

Page 25: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

6

berkomunikasi dengan perintah pemanggilan nama dari klien ke server

DNS atau dari klien ke klien lainnya.

3. Server DNS berbasis protokol IPv6 telah dapat membantu layanan

server Web dengan protokol IPv6 yang memanfaatkan layanan server

DNS dalam pemanggilan dengan nama melalui browser, baik dari sisi

klien dengan sistem operasi Linux dan Windows ataupun server DNS

sendiri.

1.5. Metodologi Penelitian

Beberapa tahapan yang dilakukan dalam proses implementasi dan

pembuatan program / tools untuk IPv6 ini adalah :

1. Melakukan studi pustaka.

a. Mempelajari sistematika, arsitektur, dan struktur IPv6.

b. Mempelajari Sistem Operasi serta aplilkasi yang dipakai dalam

membangun jaringan IPv6.

c. Mencari referensi IPv6 di Internet.

2. Melakukan tanya jawab dalam forum Mailing List.

a. Mencari referensi tambahan dari internet.

b. Mencari seting dan konfigurasi untuk mengaktifkan aplikasi BIND

versi 9.2.3 yang telah mendukung IPv6.

3. Melakukan implementasi dan file-file konfigurasi server DNS dengan

IPv6 secara manual.

4. Merancang program.

Page 26: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

7

a. Rancangan sistem secara umum.

i. Sistem Operasi yang akan dipakai.

ii. Aplikasi BIND dengan program named untuk mendukung

program bantu.

iii. Perangkat keras dan lunak yang akan dipakai.

b. Rancangan program.

c. Algoritma program.

5. Membuat program.

a. Mewujudkan rancangan yang telah dibuat dalam bentuk program.

b. Melakukan uji coba program dalam suatu mesin yang akan

difungsikan sebagai server DNS Linux.

6. Mengevaluasi Program.

1.6. Sistematika Penulisan

BAB I PENDAHULUAN

Bab ini membahas tentang latar belakang penulisan skripsi, batasan

masalah yang diambil, rumusan masalah, tujuan penulisan skripsi dan

metodologi penelitian skripsi.

BAB II LANDASAN TEORI

Bab ini membahas tentang konsep dasar jaringan, protokol yang

dipakai, IPv6 dan arsitektur IPv6, sistem operasi yang digunakan,

jenis servis, DNS dengan BIND 9 dan pemrograman dengan shell

script dan perl.

Page 27: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

8

BAB III ANALISIS DAN PERANCANGAN SISTEM

Bab ini berisi penjelasan perancangan desain, seting aplikasi dan

langkah-langkah dari program yang akan dibuat. Perancangan meliputi

perancangan program, analisa proses dan bentuk tampilannya.

BAB IV IMPLEMENTASI PROGRAM

Bab ini membahas tentang implementasi perancangan program

kedalam bahasa program. Mengimplementasikan program ke dalam

komputer yang akan digunakan sebagai server DNS untuk menseting

dan mengaktifkan servis program named yang telah mendukung

protokol IPv6 pada progam BIND versi 9.

BAB V ANALISA HASIL

Bab ini membahas mengenai hasil program bantu dan jalannya service

setelah diterapkan pada lingkungan sistem.

BAB VI KESIMPULAN DAN SARAN

Bab ini berisi tentang kesimpulan dari keseluruhan program yang

dibangun dan saran-saran yang diajukan.

Page 28: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

BAB II

LANDASAN TEORI

2.1. Pengertian

Jika seorang bekerja pada komputer yang tidak dihubungkan dengan

komputer lain maka dapat dikatakan orang tersebut bekerja secara Stand Alone.

Jika komputer dimana orang tersebut bekerja berhubungan dengan komputer dan

peralatan lain sehingga membentuk suatu group, maka ini disebut sebagai network

(Jaringan). Sedangkan bagaimana komputer tersebut bisa saling berhubungan

serta terdapat pengaturan sumber daya yang ada disebut sistem jaringan

(Networking).

Jaringan komputer merupakan suatu koleksi komputer-komputer terpisah

yang berkomunikasi satu dengan yang lain, dengan memanfaatkan media

komunikasi yang dipakai bersama-sama.

Keuntungan dalam menggunakan jaringan komputer adalah sebagai

berikut:

1. Dapat saling berbagi (Sharing) penggunaan peralatan yang ada, baik itu

harddisk, printer, modem dll, tanpa harus memindahkan peralatan-

peralatan tersebut kepada yang membutuhkan. Dengan demikian terjadi

peningkatan efesiensi waktu dan biaya pembelian hardware.

2. Dapat saling berbagi (Sharing) penggunaan file atau data yang ada pada

server atau pada masing-masing workstation. Dengan demikian untuk

9

Page 29: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

10

mendapatkan suatu informasi tertentu dapat dilakukan dengan cepat.

Dalam hal ini terjadi peningkatan efesiensi waktu.

3. Aplikasi dapat dipakai bersama-sama (multiuser). Akses ke jaringan

memakai nama, password dan pengaturan hak untuk data-data rahasia.

4. Komunikasi antar pemakai melalui e-mail atau Lan Conference.

5. Pengontrolan para pemakai ataupun pemakaian data-data secara terpusat

dan oleh orang-orang tertentu.

6. System backup yang mudah karena manajemen yang tersentralisasi.

7. Data yang selalu up to date karena server senantiasa menguptodatekan

data begitu ada input (Data Entry).

8. Seorang Supervisor/Aministrator dapat melakukan pengontrolan pemakai

berdasarkan : waktu akses, tempat akses, kapasitas pemakaian harddisk.

Mendeteksi pemakai yang tidak berhak dan/atau memonitor pekerjaan

setiap pemakai.

.

2.2. Jaringan Komputer

Jaringan komputer adalah suatu media transmisi bersama serta rangkaian

hardware dan software untuk menginterfacekan perangkat menjadi media serta

mengatur akses menuju media tersebut dengan tepat1.

Arsitektur jaringan komputer dibagi menjadi beberapa lapisan (layer).

Terdapat dua pemodelan lapisan protokol yang penting dalam arsitektur jaringan.

1 Komunikasi Data dan Komputer Jaringan Komputer hal 42

Page 30: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

11

Yaitu acuan layer dari OSI (Open System Interconnection) dan model protokol

TCP/IP.

Session

Aplication

6

7

5

Presentation

Aplication

Not Present in the Model

Transport

Data Link

Physical

3

1

2

4

Network

Data Link

Internet

Physical

Transport

OSI TCP/IP

Gambar 2.1 Pemodelan Layer Menurut OSI dan TCP/IP

Dalam setiap lapisan tingkatan OSI pasti memiliki protokol yang

digunakan untuk berkomunikasi dengan lapisan yang sederajat pada komputer

lain. Berikut ini adalah diagram lapisan OSI yang menunjukan protokol dalam

tiap-tiap tingkat lapisan OSI.

Session

Transport

Aplication

Presentation

Data Link

Physical

6

7

3

1

2

4

5

Network

XML, XDR, SMB, AFP

HTTP, FTP, SMTP, DNS, Telnet, Ssh and Scp

IP, ICMP, IGMP, ARP, RARP, X.25

Electricity, Radio, Laser

Ethernet, Token ring, ATM, Frame Relay

TCP, UDP, SCTP, ATP

TLS, SSH, RPC, NET BIOS, ASP

Gambar 2.2 Pembagian Protokol menurut OSI

Page 31: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

12

Dengan melihat diagram diatas, pada tiap level menunjukkan fungsi yang

dilakukan oleh protokol. Namun dalam kenyataannya, tiga lapisan teratas dalan

model OSI (Aplication, Presentation, dan Session) biasanya diperlakukan menjadi

satu lapisan tunggal dalam deretan TCP/IP yaitu sebagai lapisan Aplication yang

protokol-protokolnya dianggap menjadi satu kesatuan protokol aplikasi.

Transport

7

Data Link

Physical

3

1

2

4

Network

Aplication

HTTP, FTP, SMTP, Telnet, Ssh and Scp

IP, ICMP, IGMP

Electricity, Radio, Laser

Ethernet, Token ring, ATM, Frame Relay

TCP, UDP, SCTP

Gambar 2.3 Pembagian Protokol menurut TCP/IP

Diagram lapisan OSI maupun TCP/IP memiliki persamaan pada keempat

layer dasar (Physical, Data Link, Network dan Transport). Dari level Network dan

Transport dapat diketahui bahwa protokol IP yang terletak di layer Network dan

TCP yang terletak di layer Transport digunakan sebagai protokol yang berfungsi

untuk pengalamatan antar komputer dan pengendali transmisi. Layer "physical"

dan "data link" dari susunan TCP/IP sering disebut sebagai satu layer yaitu

"network interface layer".

Page 32: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

13

2.3. TCP/IP (Transfer Control Protocol/Internet Protokol)

TCP/IP merupakan proyek yang dikembangkan oleh Departement of

Defence (DoD) Defense Advance Research Projects Agency (DARPA) untuk

menghubungkan antar jaringan (network) yang dikembangkan oleh vendor yang

berbeda menjadi suatu jaringan dalam jaringan luas (Network of Networks) atau

sekarang terkenal dengan nama Internet.

Rancangan ini sukses berkembang karena dapat memberikan layanan

dasar yang dibutuhkan oleh orang-orang (file sharing, electronic mail) karena

beberapa komputer dalam suatu departemen kecil dapat menggunakan TCP/IP

(berjalan bersama dengan protokol lainnya) dalam satu jaringan LAN. Komponen

IP menyediakan routing dari satu departemen ke jaringan perusahaan yang lebih

luas, dan pada akhirnya jaringan ini berkembang kepada jaringan global yang

disebut Internet2.

Fungsi yang ada pada protokol TCP/IP adalah :

• File Transfer Protocol (FTP) yaitu fasilitas transfer file antar komputer

• Surat elektronik (E-mail) atau fasilitas surat menyurat antar komputer yang

terdiri atas Simple Mail Transfer Protocol (SMTP) sebagai dasar

komunikasi e-mail, Multi Purpose Internet Mail Extensions (MIME) yaitu

standar format biner grafik, dan suara agar dapat ditransmisikan melalui e-

mail, Post Office Protocol (POP) yaitu sistem penerima e-mail, Network

News Transfer Protocol (NNTP) sarana pertukaran berita, artikel dan

diskusi melalui e-mail

2 http://www.yale.edu

Page 33: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

14

• Emulasi terminal jarak jauh (Telnet, Remote Login) yang memungkinkan

suatu komputer (client) untuk masuk dan mengendalikan host yang

terletak jauh darinya, misalnya pada network yang lain atau di Internet.

• Simple Network Management Protocol (SMNP) yaitu protokol

pengendalian peralatan network jarak jauh. Drew Heywood (1996)

menyebutkan : fungsi utama itu masih diikuti dengan fasilitas Domain

Name System (DNS) yaitu metode penamaan dan pengalamatan suatu

network berdasarkan kelompoknya

Seperti halnya protokol komunikasi lainnya, TCP/IP juga dibagi menjadi

beberapa lapisan :

a. IP

IP bertanggung jawab untuk memindahkan paket data dari satu titik ke

titik lainnya. IP meneruskan paket data berdasarkan empat byte alamat tujuan

(IP number / IP address). Otoritas Internet membagi alamat IP menjadi

beberapa organisasi yang berbeda. Setiap organisasi akan mengkelompokkan

alamat itu menjadi beberapa departemen. IP bekerja sebagai pintu gerbang

mesin dalam memindahkan paket data dari satu departemen ke satu organisasi

dan diteruskan ke suatu wilayah regional dan kemudian seluruh dunia ini.

b. TCP

TCP bertanggung jawab untuk pengecekan pengiriman paket data dari

client ke server. Dalam pengirimannya, data dapat hilang ditengah jalan dalam

jaringan. Oleh karena itu, TCP menambahkan suatu paket tambahan untuk

Page 34: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

15

mengecek kesalahan data atau kehilangan data dan memerintahkan untuk

mengirim ulang data sampai data diterima dalam keadaan benar dan lengkap.

c. Sockets

Sockets adalah suatu nama yang diberikan kepada subrutin paket yang

menyediakan akses TCP/IP pada kebanyakan sistem.

2.3.1. TCP (Transmision Control Protocol)

TCP adalah pengarahan koneksi, protokol handal yang berada pada layer

transport TCP/IP Protokol Stack. TCP bertugas memecah paket data menjadi

beberapa bagian (segment), menyatukan kembali (reassemble) pada stasiun

tujuan. Apabila stasiun tujuan tidak menerima paket, atau menerima paket tetapi

dalam keadaan rusak, TCP bertugas untuk mengirimkan kembali paket tersebut

hingga paket diterima oleh stasiun tujuan secara lengkap dan tanpa kerusakan, dan

menyatukan kembali pesan-pesan tersebut dari beberapa segment menjadi satu

paket utuh. TCP juga bekerja untuk mengatur bagaimana cara membuka

hubungan komunikasi, jenis aplikasi apa yang digunakan dalam komunikasi

tersebut. Dengan kata lain, TCP mengatur seluruh proses koneksi antar satu

komputer dengan komputer yang lain dalam suatu jaringan.

Page 35: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

16

30 4 1 1

Source Port (16)

Window (16) Code bits (5)

Reserved (6)Header Length

Checksum (16)

Data (varies)

Options (0 or 32 if any)

Urgent (16)

Acknowlegement Number (32)

Sequence Number (32)

Destination Port (16)

Gambar 2.4 Segment TCP

Mekanisme kerja TCP adalah connection oriented yaitu TCP membangun

suatu hubungan secara logik antar satu komputer dengan komputer lainnya. Dalam

waktu yang ditentukan komputer yang sedang berhubungan harus mengirimkan data

atau acknowledge agar hubungan tetap berlangsung. Jika hal ini tidak sanggup

dilakukan maka dapat diasumsikan bahwa komputer yang sedang berhubungan

mengalami gangguan dan hubungan secara logik dapat diputus.

2.3.2. IP (Internet Protocol)

Protokol Internet adalah jalur komunikasi yang dimanfaatkan sebuah

komputer untuk saling berkomunikasi yang teradapat pada network layer.

IP (Internet Protocol) address adalah alamat yang diberikan pada jaringan

komputer dan peralatan jaringan yang menggunakan protokol TCP/IP (fahrial,

2004). IP address terdiri atas 32 bit angka binner yang dapat dituliskan sebagai

empat kelompok angka desimal yang dipisahkan oleh tanda titik seperti

192.168.0.1.

Page 36: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

17

IP (Internet Protocol) merupakan inti dan protokol TCP/IP. Seluruh data

yang berasal dari protokol pada layer di atas IP harus dilewatkan, diolah oleh

protokol IP, dan dipancarkan sebagai paket IP, agar sampai ke tujuan.

Dalam melakukan pengiriman data , IP memiliki sifat yang dikenal sebagai

unreliable, connectionless, datagram delivery service.

• Unreliable, berarti bahwa protokol IP bahwa datagam yang dikirim pasti

sampai pada tempat tujuan.

• Connectionless, berarti dalam pengiriman paket dari tempat asal ketujuan,

pihak pengirim dan penerima tidak mengadakan perjanjian (handshake)

terlebih dahulu.

• Datagram delivery service, berarti setiap data yang terkirim adalah

independen terhadap paket data yang lain.

Version Header Length Type of Service Total Length of Datagram

Identification Flags Fragment Offset Time to Live Protocol Header Checksum

Source IP Address Destination IP Address

Options Strict Source Routing, Loose Source Routing DATA

Gambar 2.5 Format datagram IP

Format datagram IP terdiri atas:

1. Version, versi dan protokol IP yang dipakai. Pada saat ini versi IP yang

dipakai adalah IP versi 4.

2. Header Length, berisi panjang dan header paket IP ini dalam hitungan

Page 37: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

18

32 bit word.

3. Type Length of Service, berisi kualitas service yang dapat

mempengaruhi cara penanganan paket IP ini.

4. Total Length of Datagram, panjang IP datagram total dalam ukuran

byte.

5. Identification, Flags, dan Fragment Offset, berisi beberapa data yang

berhubungan dengan fragmentasi (dipecah menjadi beberapa paket yang

lebih kecil).

6. Time to Live, berisi jumlah router atau hup maksimal yang boleh

dilewati paket IP.

7. Protokol, mengandung angka yang mengidentifikasikan protokol layer

atas pengguna isi data dan paket IP ini.

8. Header Checksum, berisi nilai checksum yang dihitung dan seluruh field

dan header paket IP.

9. IP address pengirim dan penerima data, berisi alamat pengirim paket

dan penerima paket.

10. Byte Option, berisi Strict Source Route (SSR) dan Loose Source Route

(LSR). SSR berisi daftar lengkap IP address dan router yang harus

dilalui oleh paket ini dalam perjalanan ke host tujuan. SSR paket yang

dikirim diharuskan singgah di beberapa router.

Format IP Address bisa dinyatakan dalam dua bentuk yaitu :

a. Bentuk Biner

Alamat IP merupakan bilangan biner 32 bit yang dipisahkan oleh

Page 38: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

19

tanda pemisah berupa tanda titik setiap 8 bit. Bentuk alamat IP

adalah sebagai berikut:

xxxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxxx

Simbol “x” dapat digantikan oleh angka 0 dan 1, misalnya:

10000100.1011 l00.1111001.00000001

b. Bentuk dotted decimal

Format penulisan “dotted-decimal notation” (notasi desimal bertitik).

Setiap bilangan desimal tersebut merupakan nilai dari satu oktet (8

bit) alamat IP. Tiap oktet mewakili bilangan desimal dan 0 sampai

255.

bit#0 31

10000100 01011100 01111001 00000001

132 92 121 1

w x y z

penulisan IPv4 menjadi : 132.92.121.1

2.3.3. IPv6 (Internet Protocol versi 6)

Pengalamatan IPv6 memiliki 2128 kombinasi alamat. Sama seperti

halnya IPv4, IPv6 menggunakan bilangan biner yang memiliki panjang 128 bit

dan terbagi menjadi 8 segmen, dengan setiap segmen terdiri dari 16 bit yang

dipresentasikan dalam bilangan hexadesimal 0 sampai FFFF. Dengan kapasitas

tersebut, maka pengalamatan IPv6 adalah dari:

0000:0000:0000:0000:0000:0000:0000:0000

sampai

FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF

Page 39: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

20

Terdapat tiga jenis pengalamatan dalam IPv6, yaitu:

a. Unicast : Alamat pengenal satu interface. Paket yang dikirim ke

alamat Unicast akan disampaikan ke interface yang didefinisikan

oleh lamat tersebut.

b. Anycast : Alamat pengenal kumpulan interface. Paket yang dikirim

alamat ini akan disampaikan ke salah satu interface terdekat menuru

routing.

c. Multicast : Alamat pengenal kumpulan interface. Paket yang dikirim

ke alamat ini akan disampaikan ke semua interface dan

menggantikan fungsi alamat broadcast dalam IPv4.

Berikut bentuk representasi alamat IPv6 adalah sebagai berikut :

a. Bentuk x:x:x:x:x:x:x:x, x adalah nilai hexadesimal 8 bagian 16 bit

alamat. Penulisan alamat IPv6 adalah sebagai berikut:

3ffe:419:2ac6:44ff:10ab:f54:a9:34fa

b. Penulisan alamat IPv6 juga dapat menggunakan tanda “::” utnuk

menyederhanakan penulisan. Tanda menunjukkan kumpulan 16 bit

yang terdiri dari bit nol. Tanda ini hanya boleh digunakan sekali

dalam satu buah alamat.

c. Penulisan alamat IPv6 juga dapat digunakan dalam lingkungan

gabungan IPv4 dan IPv6. Alamat dalam lingkungan gabungan dapat

ditulis dengan x:x:x:x:x:x:d.d.d.d, dengan x adalah 6 segmen 16 bit

alamat IPv6 (hexadesimal) dan d adalah 4 segmen 8 bit IPv4

Page 40: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

21

(desimal). 0:0:0:0:0:0:167.205.22.116 atau dapat ditulis

::167.205.22.116

d. Prefix alamat IPv6 dapat ditulis dalam notasi : Alamat -

IPv6/Panjang-Prefix. Panjang prefix menunjukkan banyaknya bit di

bagian kiri yang dibatasi nilai prefixnya.

Internet Protokol versi 6 (IPv6) adalah protokol internet versi baru yang

didesain sebagai pengganti dari internet protokol versi 4 (IPv4) yang didefinisikan

dalam RFC 791. Perubahan dari IPv4 keIPv6 pada dasarnya terjadi karena

beberapa hal yang dikelompokkan dalam beberapa kategori berikut:

• Kapasitas perluasan alamat

• Penyederhanaan format header

• Peningkatan dukungan untuk header pilihan dan header tambahan

• Kemampuan pelabelan aliran paket

• Autentifikasi dan kemampuan privasi

2.3.3.1. Istilah-Istilah dalam IPv6

Node: peralatan yang dapat mengimplementasikan IPv6

Router: node yang melewatkan paket Ipv6 dimana paket-paket yang

diteruskan tidak hanya terdiri dari paket-paket dengan alamatnya

sendiri.

Host: node sembarang yang bukan merupakan router

Page 41: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

22

Upper layer: layer protokol yang secara langsung berada diatas IPv6, yaitu

protokol transport TCP dan UDP, protokol kontrol ICMP, protokol

routing seperti OSPF dan internet.

Link: Fasilitas komunikasi atau medium, yaitu ethernet, link PPP, X.25,

atau jaringan ATM dan layer internet tunnel.

Neighbors: node lain yang dihubungkan dalam link yang sama.

Interface: media penghubung dari node ke jaringan.

Alamat identifikasi paad layer IPv6 untuk interface atau sekumpulan

interface.

Packet: header IPv6 dan payload-nya (isi)

Link MTU: Maximum transmission unit, ukuran maksimum paket dalam ukuran

byte yang dapat disampaikan melalui link.

Path MTU: link MTU yang paling kecil dari semua link dalam path node asal

sampai ke node tujuan.

2.3.3.2. Format Header IPv6

Format header alamat IPv6 merupakan penyederhanaan dari format

header alamat IPv4. Perbandingan header IPv4 dan IPv6 dapat dilihat

pada gambar berikut:

Version Header Length Type of Service Total Length of Datagram

Identification Flags Fragment Offset Time to Live Protocol Header Checksum

32 bit Source IP Address 32 bit Destination IP Address

Gambar 2.6 format header IPv4

Page 42: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

23

Version Traffic Class Total Length of Datagram

Payload length Next Header Hop Limit 128 bit Source IP Address

128 bit Destination IP Address

Gambar 2.7 format header IPv6

Nama Panjang Kolom

Keterangan

Versi 4 bit Nomor versi protokol internet, yaitu versi 6

Traffic class 8 bit Kolom kelas atau kasifikasi traffic (lalu lintas)

Flow Label 20 bit Label aliran dari traffic Payload Length 16 bit Panjang payload/muatan IPv6,

payload adalah sisa paket setelah header IPv6 dalam bentuk oktet (diluar header IPv6.)

Next Header 8 bit Identifikasi tipe header yang akan ada setelah header IPv6. Nilai header ini menggunakan tipe header yang sama dengan yang ada pada IPv4

Hop Limit 8 bit Nilai pada kolom ini akan dikurangi satu jika paket ini melewati node yang berfungsi melewatkan/mem-forward paket (router). Paket akan dibuan saat nilai batas hop telah mencapai nol.

Nama Panjang Kolom

Keterangan

Source Address 128 bit Alamat asal paket IPv6 Destination Address 128 bit Alamat tujuan paket IPv6

Tabel 2.1 keterangan IPv6

2.3.3.3. Arsitektur Pengalamatan IPv6

Alamat IPv6 pengidentifikasi alamat sepanjang 128 bit untuk interface dan

sekumpulan interface. Ada tiga tipe dari alamat IPv6:

Page 43: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

24

• Unicast : pengidentifikasi untuk interface tunggal. Paket yang dikirimkan

ke alamat unicast adalah paket yang dikirim ke sebuah interface yang

diidentifikasi oleh alamat tersebut.

• Anycast : pengidentifikasi untuk sekumpulan interface (umumnya milik

node yang berbeda). Paket yang dikirimkan ke alamat anycast adalah

paket yang dikirmkan ke salah satu dari sekumpulan interface yang

diidentifikasi oleh alamat tersebut (alamat yang terdekat, mengacu pada

pengukuran jarak dan protokol routing).

• Multicast : pengidentifikasi untuk sekumpulan interface (umumnya milik

node yang berbeda). Paket yang dikirimkan ke alamat multicast adalah

paket yang dikirimkan kesemua interface yang diidentifikasi oleh alamat

tersebut.

IPv6 tidak memiliki alamat broadcast, hal ini disebabkan fungsi dari

alamat broadcast digantikan oleh alamat multicast.

2.4. UDP (User Datagram Protocol)

UDP (User Datagram Protocol) merupakan protokol transport yang

sederhana. Berbeda dengan TCP yang connection oriented, UDP bersifat

connectionless. Dalam UDP tidak memiliki sequencing (pengurutan kembali)

paket yang datang, acknowledgement terhadap paket yang datang atau retransmisi

jika paket mengalami masalah di tengah jalan.

Kemiripan UDP dengan TCP ada pada penggunaan port number.

Sebagaimana digunakan pada TCP, UDP menggunakan port number ini utnuk

Page 44: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

25

membedakan pengirimana datagram ke beberapa aplikasi berbeda yang terletak

pada komputer yang sama.

Karena sifatnya yang connectionless dan unreliable, UDP digunakan oleh

aplikasi-aplikasi yang secara periodik melakukan aktivitas tertentu (misalnya

query routing table pada jaringan lokal), serta hilangnya satu data akan dapat

diatasi pada query periode berikutnya dan melakukan pengiriman data ke jaringan

lokal. Pendeknya jarak tempuh datagram akan mengurangi resiko kerusakan data.

Bersifat broadcasting atau multicasting. Pengiriman datagram kebanyak

client sekaligus akan efisien jika prosesnya menggunakan metode connectionless.

Source Port Destination Port

Datagram Length Checksum

Aplication Data

Gambar 2.8 Format datagram UDP

Gambar diatas ditunjukkan format dari datagram UDP. Ssource dan

Destination port memiliki fungsi yang sama seperti pada TCP. Datagram Length

berisi panjang datagram, sedangkan cheksum berisi angka hasil perhitungan

matematis yang digunakan untuk memeriksa kesalahan data. UDP banyak

digunakan pada model Client-Server yang menggunakan model layer internet,

dimana proses dilakukan pada level aplikasi. Contoh aplikasi yang menggunakan

UDP, yaitu : SMTP, NFS, FTP, DNS dan sebagainya. Dapat dilihat pada gambar

dibawah berikut :

Page 45: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

26

TFTP SMTP

Session

Presentation

Application Application

NFS DNS

UDPTCPTransport

RARP ARPIGMPICMP IP

Network

Data Link Protocol defined by

the underlying network Physical

Gambar 2.9 format 3 layer dalam internet.

2.5. PORT

Hal penting yang perlu dipahami pada TCP atau UDP adalah port number.

Port number menentukan service yang dilakukan oleh aplikasi diatas TCP atau

UDP. Penomeran port ini telah ditentukan oleh Network Information Center dalam

Request For Comment (RFC) 1010. Prisip kerja TCP didasarkan pada prinsip Client-

Server. Server adalah program yang secara pasif akan mendengarkan (listen) port

number yang telah ditentukan oleh TCP. Sedangkan client adalah program yang

secara aktif akan membuka hubungan TCP ke komputer server untuk meminta

service yang dibutuhkan. Port digunakan pada transport layer untuk memberi nama

Page 46: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

27

bagian dasar dari koneksi logical (logical connections) atau sebuah servis yang

berjalan dengan terus menerus3.

Tujuannya adalah untuk memberikan sebuah nama pada sebuah servis dan

mendefinisikannya dalam sebuah alamat kontak. Port digunakan untuk melakukan

koneksi antara server dan client-nya. Port yang biasa digunakan oleh server untuk

melakukan koneksi sering disebut dengan ‘well known port’.

Dari total jumlah port yaitu 65535, Port dibagi menjadi 3 bagian yaitu :

• Well known Port : antara 0 sampai 1023 digunakan oleh sevis-servis yang

digunakan server dan client dalam proses komunikasi.

• Registered Port : 1024 sampai 4951 digunakan untuk kepentingan suatu

instansi yang sudah terdaftar untuk menggunakan port tertentu.

• Dynamic/Private Port 4951 sampai 65535 bebas digunakan untuk koneksi

pribadi.

Berikut ini adalah sebagian dari tabel tabel wellknown port :

Port Protocol Keterangan 20 21 23 25 53 80 111

FTP, data FTP,controlTelnet SMTP DNS HTTP RPC

FTP (koneksidata) FTP, kontrol Terminal Network Simple Mail Transfer Protocol Domain Name Server Hyper Text Transfer Protocol Remote Procedure Call

Tabel 2.2 well known port

3 www.iana.org/assignments/portnumbers

Page 47: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

28

2.6. Sistem Operasi Linux

Linux adalah sistem operasi UNIX-like. Linux awalnya dikembangkan

oleh Linus Torvald. Awalnya Linux ini merupakan pengembangan dari sistem

operasi MINIX yang ditulis oleh Tannenbaum. Linux versi awal diluncurkan oleh

Linus pada akhir 1991.

Dengan sifatnya yang open source dan gratis, Linux mudah didapat dan

dikembangkan oleh banyak orang di dunia ini, sehingga perkembangannya pun

sangat pesat. Saat ini Linux dikemas dalam berbagai distribusi yang dikeluarkan

seperti : Redhat, Caldera, Mandrake, Debian, Slackware, Turbolinux dan lainnya.

Linux adalah Sistem-Operasi yang:

• multi-tasking : memungkinkan menangani banyak proses pada saat yang

bersamaan tanpa saling mengganggu.

• multi-program : memungkinkan menangani banyak program pada saat

yang bersamaan.

• multi-user : memungkinkan penggunaan satu aplikasi yang sama atau

berbeda pada dalam satu mesin yang sama pada saat yang bersamaan

• TCP/IP built-in, virtual memory, copy-on-write pages, demand paging dan

lainnnya.

• menganut multiple file system seperti : EXT2fs, EXT3fs, FAT16, FAT32

(DOS), Vfat (win), HPFS (OS2), Minix dan lainnya.

• mengadopsi "X-Windowing System

Page 48: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

29

Dari keterangan diatas, dapat dikatakan bahwa sistem operasi Linux

adalah sebuah sistem yang dapat menjadikan sebuah komputer menjadi sebuah

komputer server.

Struktur sistem file Linux adalah berbentuk tree, dengan "pusat"-nya

adalah root (akar) yang dilambangkan dengan tanda "/" (slash). Gambar struktur

tree Linux dapat dilihat seperti berikut :

/(Root)

bin dev etc home lib proc sbin tmp var usr

sbin bin include doc lib man src

Gambar 2.10 Struktur sistem file Linux

Beberapa penjelasan struktur sistem file Linux :

/(Root) : merupakan direktori parent bagi semua direktori.

/bin : berisi program-program dasar Linux

/dev : berisi file-file device, seperti cdrom, floppy, harrdisk, dan lainnya.

/etc : berisi file-file seting dan inisialisasi sistem (konfigurasi).

/home : direktori kerja user

/lib : berisi file-file library untuk program-program sistem

/proc : berisi catatan (log) kondisi sistem pada saat-saat tertentu.

/tmp : direktori sementara

/var : berisi berkas dan direktori sistem yang akan ditulisi selama operasi.

Page 49: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

30

/usr : berisi sejumlah direktori yang berisi program-program yang

digunakan pemakai.

2.6.1. Jenis-Jenis Service pada Linux

Jenis-jenis service yang diberikan pada sistem operasi Linux terdapat

banyak macam dan jenisnya. Service-service tersebut sengaja diberikan sesuai

kebutuhan atau kegunaan dari komputer yang akan diisikan sistem operasi Linux,

misalnya sebagai: MAIL server, WEB server, DNS server, FTP server, Proxy

server, File Control server, Router, Telnet dan lainnya.

Salah satu service yang saat ini sedang dikembangkan adalah service

untuk mendukung protokol internet IPv6, demikian juga untuk aplikasi-aplikasi

yang telah mendukung protokol tersebut.

2.6.2. Domain Name System (DNS)

DNS (Domain Name System) adalah suatu bentuk database yang

terdistribusi, dimana pengelolaan secara lokal terhadap suatu data akan segera

diteruskan ke seluruh jaringan (internet) dengan menggunakan skema client-

server. Suatu program yang dinamakan name server, mengandung semua segmen

informasi dari database dan juga merupakan resolver bagi klien-klien yang

berhubungan ataupun menggunakannya4.

Salah satu aplikasi yang masih dikembangkan agar dapat mendukung

protokol IPv6 tersebut adalah BIND (Berkeley Internet Name Domain) dengan

program named yang berfungsi agar sebuah komputer dapat menjadi sebuah

4 DNS and BIND 3rd Edition, Paul Albitz & Cricket Liu, 1998 Hal 4

Page 50: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

31

komputer server DNS yang dapat memberikan nama atas klien-klien yang

dimilikinya.

Kerja dari server DNS sendiri adalah untuk mengkonversi dari alamat

IPv4 dan IPv6 ke nama atau sebaliknya. Sehingga sebuah sever DNS dapat me-

resolve (memberi jawaban) atas query (pertanyaan) dari sebuah nama atau alamat

IPv4 maupun IPv6.

Struktur dari database DNS bisa diibaratkan dengan dengan struktur file

dari sebuah sistem operasi UNIX. Seluruh database digambarkan sebagai sebuah

struktur terbalik dari sebuah pohon (tree) dimana pada puncaknya disebut dengan

root node. Pada setiap node dalam tree tersebut mempunyai keterangan (label)

misalnya, .org, .com, .edu, .net, .id dan lain-lainnya, yang relatif rerhadap

puncaknya (parent).Ini bisa diibaratkan dengan relative pathname pada sistem file

UNIX,seperti direktori bin, usr, var, etc dan lain sebagainya. Pada puncak root

node dalam sebuah sistem DNS dinotasikan dengan "." atau "/" pada sistem file

UNIX.

Pada setiap node juga merupakan root dari subtree, atau pada sistem file

UNIX merupakan root direktori dari sebuah direktori. Hal ini pada sistem DNS

disebut dengan nama domain. Pada tiap domain juga memungkinkan nama

subtree dan bisa berbeda pula, hal ini disebut subdomain atau subdirektori pada

sistem file UNIX. Pada bagian subdomainjuga memungkinkan adanya subtree lagi

yang bisa dikelola oleh organisasi yang berbeda dengan domain utamanya.

Page 51: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

32

Dengan adanya DNS server akan mempermudah seseorang untuk

mengingat sebuah nama dibandangkan alamat IP yang dimiliki. DNS

menggunakan arsitektur hierarki dalam pemberian nama, seperti yang kita kenal

adalah struktur pohon (tree).

Tingkat pertama adalah nama domain yang oleh INTERNIC dikategorikan

sebagai berikut:

• .com dipakai oleh perusahaan-perusahaan

• .edu dipakai oleh perguruan tinggi

• .gov dipakai oleh badan-badan pemerintah

• .org dipakai oleh badan-bada yang lain

• untuk pemakaian untuk suatu negera, misalnya: .id untuk indonesia, .uk

untuk inggris, .au untuk australia dan lainnya

Tingkat berikutnya adalah subdomain dimana suatu domain dapat

diterapkan ke berbagai subdomain yang berupa bagian dari domain tersebut.

DNS bekerja dalam modus client-server. Dengan kata lain ada klien yang

mencari nama atau alamat IP dan sebuah server yang memberikan informasi letak

dimana nama atau alamat IP tersebut dapat diakses. Server DNS yang paling

banyak digunakan untuk lingkungan UNIX menggunakan aplikasi BIND

(Berkeley Internet Name Domain).

Contoh proses kerja DNS: seorang klien ingin mengakses sebuah

komputer yang bernama mobius.mobs.edu dalam sebuah domain mobs.edu dapat

menggunakan beberapa perintah seperti nslookup, dig, atau host. Maka sistem

kerja DNS akan dapat terlihat seperti berikut:

Page 52: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

33

nslookup

Name server lokal

Name server root (.)

Name server edu (edu.)

Name server mobs (mobs.edu.)

Host support (support.mobs.edu.)

Berikut bentuk umum penempatan sebuah DNS Server dalam suatu

jaringan lokal berbasis IPv4:

Web Server

DNS Server

Mail Server

router1

router2

client

client

INTERNET

Gambar 2.11 LingkupKerja server DNS

2.6.3. BIND pada Sistem Operasi Linux

BIND (Berkeley Internet Name Domain)adalah sebuah aplikasi dari DNS

yang dibuat oleh Paul Mockapetris5. BIND adalah Software DNS terbanyak yang

digunakan pada sistem operasi yang berbasis UNIX. BIND bekerja secara

background dengan mendengarkan permintaan klien pada port 53 dengan setingan

5 RFC 882 dan 883

Page 53: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

34

default. BIND mengimplementasikan name server internet untuk sejumlah sistem

operasi.

Salah satu versi yang terbaru dan yang digunakan adalah BIND versi 9.

BIND versi 9 telah mendukung secara penuh pengkonversian nama ke alamat

IPv6 sebaliknya. Dimana BIND veri 9 ini telah dapat melakukan pencarian ke

database DNS berdasarkan alamat IPv6 saat berjalan pada sebuah sistem yang

telah memanfaatkan IPv6. Dua fungsi DNS server pada jaringan lokal , yaitu:

1. meningkatkan performa operasi jaringan, seperti web browsing yang

memerlukan hostname lookup.

2. dapat mengembangkan/memperluas jaringan dengan tempat penyimpanan

(repository) secara terpusat mengenai informasi mesin-mesin lokal tanpa

harus meng-kopi seluruh file dari tiap-tiap jaringan.

2.6.3.1. Konfigurasi BIND dengan IPv4

Bentuk umum untuk konfigurasi file BIND untuk program named yang

berwewenang (authority) dengan IPv4, terletak pada direktori /etc/named.conf

yang bertugas untuk memberikan BIND name server mengenali file zona yang

akan dilayani dan pada direktori /etc/resolv.conf yang berfungsi sebagai resolver

untuk pencarian domain name serta alamat server DNS. File-file konfigurasi

utama yang dibutuhkan untuk menjalakan program: resolv.conf, named.conf,

named.root, forward dan reverse.

a. Berikut contoh file pada /etc/resolv.conf dengan IPv4:

nameserver mobs.edu search 192.168.0.254

Page 54: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

35

b. Berikut contoh konfigurasi /etc/named.conf dengan IPv4 :

options {

directory "/var/named"; // letak direktori file listen-on {any;}; //untuk set port yang akan

//digunakan mendengar permintaan //dari client. }; zone "." { type hint; file "named.root" ; //file-file root };

zone "localhost" IN { type master; file "localhost.zone";

};

zone "rev.localhost" IN { type master; file "named.local"; //file reverse localhost

};

zone "mobs6.edu" IN { type master; file "mobs6.edu"; //file forward

};

zone "0.168.192.in-addr.arpa" IN { type master; file "rev.mobs6"; //file reverse };

c. Berikut adalah bentuk umum file forward mobs6.edu dengan IPv4

$ORIGIN mobs6.edu. $TTL 86400 @ IN SOA ns.mobs6.edu. root.localhost. (

42 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS ns.mobs6.edu. IN A 192.168.0.254

localhost IN A 127.0.0.1 lnx1 IN A 192.168.0.254 client IN A 192.168.0.2

ftp IN CNAME linx1 //nama alias

Page 55: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

36

d. Berikut adalah bentuk umum file rev.mobs6 dengan IPv4:

$ORIGIN 0.168.192.in-addr.arpa. $TTL 86400 @ IN SOA lnx1.mobs6.edu. root.localhost. (

1997022700 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS lnx1.mobs6.edu.

254 IN PTR lnx1.mobs6.edu. 2 IN PTR client.mobs6.edu.

2.6.3.2. Forward DNS dengan IPv6

Pencarian forward DNS menggunakan sebuah nama internet domain untuk

mencari sebuah alamat IP. Sedangkan untuk pencarian reverse DNS

menggunakan alamat IP internet untuk mencari sebuah nama domain. Saat

melakukan pencarian dengan menggunakan alamat dari sebuah lingkungan web

melalui browser, pencarian alamat tersebut biasanya disebut dengan URL

(Uniform Resource Locator). Pencarian forward DNS adalah model pencarian

yang paling umum digunakan, mengingat manusia lebih mudah mengingat nama

dibandingkan dengan alamat IP (angka).

Untuk lookup forward IPv6 (konvesi dari nama ke alamat IPv6), BIND

versi 9 mendukung record A6 dan AAAA walaupun menggunakan IPv6. Dimana

penggunaan record AAAA yang sebenarnya berjalan pada IPv4, hal ini dilakukan

karena pada saat ini masih banyak sistem yang memanfaatkan pencarian jenis

record AAAA.

Untuk penggunaan record jenis A6 lebih sulit dibandingkan dengan

pencarian record jenis A atau AAAA. Hal ini dikarenakan resolver yang didukung

Page 56: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

37

oleh sistem operasi pada saat ini hanya mendukung pencarian jenis AAAA.

Meskipun record jenis A6 ini memberikan informasi yang sama dengan record

AAAA.

2.6.3.3. Reverse DNS dengan IPv6

Reverse DNS adalah sebuah cara untuk mengasosiasikan sebuah alamat IP

dengan domain name yang telah di bentuk. Untuk mengenali reverse DNS akan

terdapat di dalam porsi PTR (pointer) dari file zona IP yang diisikan. File zona IP

berisikan seluruh IP dan domain name yang dapat diasosiasikan, tiap asosiasi

berguna untuk melayani sebuah kebutuhan yang berbeda. Reverse DNS harus

berda dalam sebuah daftar domain name yang berkualifikasi penuh (fully-

qualified).

Untuk reverse lookup IPv6 (pencarian dari alamat IPv6 ke nama), BIND

versi 9 mendukung pencarian dengan format baru, yaitu bitstring yang digunakan

dalam domain IP6.arpa dan juga mendukung format lama, yaitu format nibble

yang digunakan dalam domain IP6.int.

2.6.4. Cara Kerja DNS dengan IPv6

Ada dua model record pencarian alamat baru dalam DNS untuk IPv6, yang

mendukung untuk mengurangi perawatan dan mobilitas yang telah diresmikan

utnuk IPv6. Dua model record ini telah tersedia didalam BIND versi 9, yang telah

sebelumnya telah dilakukan uji coba terlebih dahulu. A6 dan AAAA records, dan

sintak BINARY LABEL yang ada memperbolehkan sebuah tempat untuk membuat

Page 57: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

38

masukan ke DNS dengan IPv6, tanpa memberikan kesulitan pengkodean (hard-

coding) pada lahan alamat provider.

Jaringan IPv6 juga dapat menggunakan AAAA record untuk masa transisi

antara jaringan IPv4 dan IPv6. AAAA record telah didiukung oleh BIND versi

lama, seperti BIND versi 8. Untuk BIND versi 9 mendukung seluruh daftar IPv6

dan pencarian alamat ke nama (address-to name-lookups). BIND juga dapat

menerima koneksi melalui IPv6 (AF_INET6) dan menggunakan alamat IPv6

untuk melakukan pertanyaan saat menjalankan sistem IPv6.

Sebagai catatan, BIND resolver (pemecah masalah) belum dapat

menempatkan (ported) untuk berkomunikasi melalui koneksi IPv6. Dengan

menggunakan pemanggilan fungsi getaddrinfo() dan getnameinfo(), aplikasi IPv6

dapat mengembalikan informasi alamat IPv6 yang terkandung didalam AAAA

record dan PTR record melalui sebuah jaringan IPv4.

2.6.4.1. Konversi alamat IPv6 dengan Format Nibble

Format nibble yang digunakan dari alamat ke namadalam DNS adalah

format lama. Tetapi format ini masih digunakan dalam mendukung

kompatibilitas kebelakang untuk aplikasi IPv6 yang ada. Hasil pengkonversian

dari alamat ke nama dengan format ini sama dengan hasil pengkonversian pada

IPv4. Dimana format nibble menggunakan pembatasan pada kelipatan 4 bit

dengan label ip6.int.. Contoh penulisan alamat dengan format nibble untuk host

dengan alamat 3ffe:8050:201:1860:42::1. Contoh penulisan alamat dalam format

nibble dapat dilihat seperti berikut:

Page 58: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

39

$ORIGIN 0.6.8.1 .1.0.2.0.5.0.8.e.f.f.3.ip6.int.

1.0.0.0.0.0.0.0.0.0.0.0.2.4.0.0 IN PTR host.mobs.edu.

2.6.4.2. Konversi alamat IPv6 ke nama dengan Format Bitstring

Label bistring dapat dimulai dan diakhiri pada semua batasan bit, hal ini

lebih baik dibandingkan dengan format nibble yang dibatasi tiap kelipatan 4.

Label bistring menggunakan IP6.arpa.. Contoh penulisan alamat dengan format

bitstring untuk host dengan alamat 3ffe:8050:201:1860:42::1. Contoh penulisan

alamat dalam format bitstring dapat dilihat seperti berikut:

$ORIGIN \[x3ffe805002011860/64].ip6.arpa.

\[]x0042000000000001/64] IN PTR host.mobs.edu.

2.7. Pemrograman Shell

Shell merupakan nama yang diberikan untuk suatu program yang

berfungsi untuk menjembatani user dengan sistem operasi UNIX (Susanto, 2001).

Shell adalah bahasa penterjemah perintah (command interpreter language) atau

sebuah prosesor makro yang menjalankan perintah (Rofiq Yuliardi 2002). Shell

menerima setiap perintah dari user dan menjalankan sesuai dengan fungsinya.

Dengan kata lain Shell adalah penterjemah perintah (command interpreter).

Sebagai sebuah interpreter shell juga mempunyai kemampuan untuk

menjalankan sekumpulan perintah. Perintah-perintah itu disimpan dalam satu file

dan disebut sebagai shell script.

Page 59: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

40

Syscall

Dev Driver

Aplication Utility

SHELL

Kernel

Hardware

User

Gambar 2.12 Arsitektur Sistem Linux dan lokasi SHELL

2.7.1. Jenis-jenis Shell

Ada beberapa jenis pemrograman shell pada UNIX antara lain (Budi

Susanto, 2001) :

a. csh (c shell) : suatu shell yang sintaknya mirip dengan bahasa C.

b. tcsh : c shell dengan penambahan karakteristik.

c. ksh (korn shell) : Korn shell merupakan shell yang dikembangkan melalui

laboratorium Bell, AT&T oleh David Korn.

d. zsh, pdksh : keduanya adalah turunan dari korn shell dengan beberapa

penambahan seperti TC shell.

e. sh, bash (shell, bourne again shell) : shell yang paling banyak digunakan.

2.7.2. Bash Shell

Bash adalah singkatan dari Bourne Again Shell. Bash adalah suatu bahasa

pemrograman yang dapat menterjemahkan bahasa perintah, yang terdapat dalam

Page 60: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

41

sistem operasi GNU. Bash kompatibel dengan shell sh dan ditambah dengan

kemampuan atau karakteristik yang dimiliki oleh Korn Shell (ksh) dan C Shell

(csh) (Wahana, 2003).

Sebagai sebuah programming language, bash memungkinkan user dapat

memprogram secara terstruktur. Namun sebagai command language, bash

memungkinkan user untuk mengontrol eksekusi.

Sebagai command language, Bourne Shell memiliki karakteristik sebagai

berikut :

Eksekusi Program : Memungkinkan menjalankan program secara

berurutan maupun paralel.

Pembuatan File : Dapat membuat file yang baru dan menambah isi

dari file yang sudah ada.

Argument Passing : Memungkinkan untuk melewatkan argumen ke

program melalui baris perintah maupun environment variabel.

Eksekusi Program Berkondisi : Memungkinkan untuk menjalankan

program berdasarkan pada keberhasilan atau kegagalan program lain.

Predefined Procedures : User dapat menyusun suatu script yang

mendefinisikan suatu urutan program yang akan di eksekusi.

Sedangkan sebagai programming language, bash memiliki karakteristik

sebagai berikut :

Variables : Dapat mendefinisikan variabel dan melakukan operasi

terhadapnya.

Page 61: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

42

Structured Language Constructs : Menyediakan struktur sequence,

selection dan iterasi.

Scope : User dapat membatasi ruang lingkup dimana antara variabel

dan program dapat saling mengenal.

Macro Substitution : Bash menyediakan macro dan header file.

Subroutines : User dapat menulis dan memanggil suatu subroutin dan

memungkinkan untuk membuat suatu rekursi didalamnya.

Berikut adalah contoh penulisan bash script dalam suatu konsole :

[root@linux /]# echo “hello world”

Script diatas ditulis langsung dalam konsol dan jika program dijalankan maka

akan langsung menampilkan pesan dalam bentuk sebagai berikut :

[root@linux /]# echo “hello world” hello word [root@linux /]#

Dan dapat pula program ditulis dalam sebuah script. Penulisan script adalah

sebagai berikut :

#! /bin/sh echo “hello world” echo “selamat pagi”

Ketika program dijalankan maka program tersebut akan menampilkan tulisan

berupa :

hello world selamat pagi [root@linux /]#

Bash adalah suatu bahasa pemrograman yang dapat dijalankan dengan

memanggil langsung nama filenya. Namun dalam file Linux terdapat mode yang

Page 62: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

43

digunakan untuk pembatasan akses oleh user (file permission). Untuk dapat

menjalankan script bash, user harus mengganti mode file dengan perintah chmod.

File permission di Linux memiliki tiga mode yang berbeda untuk tiga

pengguna. Yaitu mode baca (read), tulis (write) dan eksekusi (execution). Ketiga

mode ini dimiliki oleh masing-masing pengguna.

User Group Other

chmod rwx rwx rwx

File permission biasanya hanya mengijinkan user untuk mengeksekusi

script, namun tidak menutup kemungkinan penguna lain yang masih berada dalam

satu group atau pengguna lain dapat mengeksekusi program tersebut.

Dari script diatas dimisalkan disimpan dalam file hello di directori home.

Maka untuk mengaktifkan mode eksekusi script hello diatas adalah dengan cara :

[root@linux /]# chmod 755 /home/hello

Dan untuk menjalankan script diatas dapat dituliskan :

[root@linux /]# /home/hello

Namum apabila user berada dalam direktori dimana file itu berada, maka user

dapat menamggil dengan perintah :

[root@linux /]# ./hello

2.8. Pemrograman Perl

Perl singkatan dari “Practical Extraction and Report Language”

ditemukan tahun 1986 oleh Larry Wall, untuk mengatasi kerumitan

pengembangan apalikasi dan sistem yang beragam pada UNIX. Perl sendiri dibuat

Page 63: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

44

dari bahasa C dan dikerjakan oleh para programmer sukarela, yang memiliki

kemampuan sebagai bahasa scripting, menangani regular expresion, signal,

socket dan sebagainya. Perl adalah bahasa interpreter. Program Perl disediakan

untuk mengatasi kelemahan bahasa awk, sed, dan sh dalam pembuatan laporan

dan manipulasi teks.

2.8.1. Keuntungan Menggunakan Perl

Perl memiliki sifat yang gratis/bebas, karena pendistribusiannya

menggunakan GNU copyleft. Selain itu Perl juga didistribusikan menggunakan

artisitic license6. Perl tersedia pada berbagai platform sistem operasi, yang

diantaranya adalah:

• UNIX dan keluarganya

• MS-DOS

• Windows 95, 98 dan NT.

• OS/2

• Macintosh

Telah dijelaskan diatas bahwa Perl adalah bahasa interpreter. Perl

memiliki waktu pengembangan yang jauh lebih pendek dibandingkan bahasa

pemrograman yang berbasis kompiler , sehingga Perl memiliki waktu eksekusi

yang lebih cepat dibandingkan dengan bahasa yang berbasis kompiler. Perl dapat

digunakan untuk melakukan pengembangan secara iteratif dan melakukan testing

6 Dudy Rudianto, PERL UNTUK PEMULA, 2003, Hal 5

Page 64: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

45

tanpa harus melakukan proses kompilasi, testing, debug dan lain-lain yang sering

ditemui pada bahasa berbasis kompiler.

Perl dapat digunakan untuk melakukan berbagai project dengan tingkat

kerumitan yang cukup tinggi, karena kemampuan Perl hampir setara dengan

bahasa C. Perl memiliki kemampuan utnuk melakukan read/write pada socket

TCP/IP. Hal ini berarti Perl memiliki kemampuan berkomunikasi dengan berbagai

server dengan berbagai tipe socket komunikasi yang digunakan.

2.8.2. Ekstensi Perl untuk Database

Ekstensi pada Perl dalam menangani berbagai database, seperti Oracle,

MySQL, mSQL, serta database besar lainnya. Keseragaman pengaksesan berarti

kemuidahan bagi seorang programmer karena database apapun yang digunakan

antarmuka yang digunakan tetap seragam.

btreeperl NDBM ekstensictreeperl C-Tree ekstensiduaperl X.500 directory user agentingperl ingresisqlperl informixInterperl Interbaseoraperl Oraclepgperl Postgressybperl Sybaseuniperl Unify

Tabel 2.3. Ekstensi Perl untuk Database

2.8.3. Kelemahan Menggunakan Perl

Kelemahan yang dimiliki Perl antara lain adalah:

• Informal Support

Page 65: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

46

Oleh karena Perl dikembangkan oleh begitu banyak programmer

sukarela, maka dukungan teknis hanya diberikan kepada mereka yang

bekerja secara informal.

• Protecting Popietary Code

Sebagai bahasa Interpreter, Perl tidak dapat diberikan hanya versi

binarinya saja, sehingga Perl tidak dimungkinkan utnuk tertutup kode

asalnya

2.8.4. Tipe Data Perl

Perl memiliki tipe data terbatas, hal ini dikarenakan Perl akan melakukan

suatu Internal Conversion yang akan melakukan suatu operasi tersendiri terhadap

tipe data yang diberikan dalam suatu ekspresi. Jika pada bahasa C, pemrogram

dapat mendifinisikan tipe data signed atau unsigned, dalam Perl cukup memiliki

dua tiper data dasar, yaitu scalar dan array. Untuk tiap tipe-tipe data tersebut,

aturan penamaan variabel juga berlainan. Variabel adalah suatu nama yang

dimunculkan pada pad program yang menunjukkan pada suatu nilai tertentu yang

disimpannya selama program tesebut dijalankan7.

2.8.4.1. Tipe Data Scalar

Semua angka dan string adalah scalar. Suatu nilai yang termasuk dalam

tipe data angka adalah nilai yang terdiri dari digit 0-9 dan tanda + (plus) atau –

(minus). Untuk string adalah kumpulan karakter yang diapit dengan tanda petik

7 Budi Susanto, Pemrograman Script pada Unix/Linux, 2004, Hal 259

Page 66: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

47

tunggal (‘) atau ganda (“). Perbedaan antara petik tunggal dan ganda adalah petik

tunggal akan mengartikan karakter yang diapit apa adanya, sedangkan untuk petik

ganda mengartikan karakter yang diapit harus diterjemahkan.

2.8.4.2. Tipe Data Array

Array adalah suatu daftar dari scalar. Utnuk membentuk variabel scalar

array, harus didahului dengan karakter @ di awal nama variabel tersebut. Berikut

bentuk umum dari penulisan definisi variabel array pada Perl8.

@namavar = ( elemen0, elemen1 , elemen2.......elemenN );

Perl menyediakan banyak berbagai fungsi pustaka yang berhubungan

dengan list dan variabel array. Fungsi-fungsi ini dapat digunakan untuk berbagai

keperluan berikut:

• Melakukan sorting pada elemen array dalam bentuk alphabetical

order.

• Membalikkan elemen pada array.

• Menghilangkan karakter terakhir dari setiap elemen array.

• Menggabungkan elemen array menjadi string tunggal

• Memisahkan sebuah string menjadi elemen array

2.8.5. Program Sederhana Perl

Pada bahasan ini akan diberikan gambaran tentang contoh pemrograman

Perl sederhana. script Perl dapat dibuat dengan menggunakan teks editor seperti vi

8 Budi Susanto, Pemrograman Script pada Unix/Linux, 2004, Hal 264

Page 67: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

48

atau joe. Berikut contoh script perl dengan nama file tampil.pl, untuk

menampilkan input tulisan dari keyboard pada shell :

#!usr/bin/perl $barismasukan = <STDIN>; print (“Selamat menggunakan program $barismasukan”);

Untuk menjalankan script diatas pada shell, ubah mode script dengan perintah:

#chmod 755 /home/perl/dasar/tampil.pl

Maksud dari dari perintah diatas adalah agar file tampil.pl dapat menjadi sebuah

file eksekusi. Dan untuk menjalankan script diatas dapat ditulis dengan:

#./home/perl/dasar/tampil.pl

input dan output program akan ditampilkan seperti berikut:

#./home/perl/dasar/tampil.pl Perl input Selamat menggunakan program Perl output

Page 68: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

BAB III

ANALISIS DAN PERANCANGAN SISTEM

3.1. ANALISIS

Dengan habisnya resource alamat IPv4, penggunaan IPv6 diharapkan

dapat mecukupi kebutuhan alamat IP pada masa sekarang ini. Namun, IPv6 adalah

protokol baru yang tidak semua peralatan yang telah terhubung dengan internet

dapat berkomunikasi menggunakan protokol IPv6 ini. Untuk mengganti jaringan

IPv4 dengan IPv6 pun memerlukan dana yang tidak sedikit. Penggunaan

mekanisme yang memanfaatkan jaringan IPv4 menjadi salah satu alternatif

penghematan biaya.

Sistem operasi Linux memiliki beberapa layanan aplikasi yang

memungkinkan sebuah komputer untuk menjadi sebuah komputer server, baik

sebagai server Poxy, Web server, server DNS, Router dan lainnya. Dalam masa

transisi ini, orang harus mempelajari cara menseting alamat IPv6 dalam sistem

operasi Linux dan juga aplikasi-aplikasi lain yang telah mendukung protokol IPv6

ini.

3.1.1. Strategi pada masa Transisi

Sistem operasi Linux Fedora Core 2 adalah salah satu sistem operasi yang

telah mendukung penggunaan protokol IPv6 dan aplikasi-aplikasi yang

dibutuhkan protokol IPv6 tersebut. Salah satu aplikasi yang telah mendukung

protokol tersebut, adalah program named dari BIND versi 9.2.3 yang berfungsi

49

Page 69: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

50

sebagai sebuah komputer server DNS (Domain Name Sistem). Sebuah komputer

yang bertugas untuk konversi alamat ke nama maupun nama ke alamat. DNS

terdiri atas sintaks yang digunakan untuk menspesifikasikan nama dari entitas-

entitas dalam internet ke dalam bentuk yang hierarki.

Pada saat ini, IP yang digunakan bukan hanya IPv4 saja, namun pada masa

trasnisi protokol IPv6 telah dipakai dalam mengantisipasi keterbatasan alamat

IPv4. Pada masa transisi IPv4 ke IPv6, seorang administrator jaringan harus

mempelajari cara menseting IPv6, serta mengetahui aplikasi-aplikasi yang telah

mendukung protokol tersebut. Salah satu aplikasi yang telah mendukung protokol

IPv6 adalah program named dari BIND pada sistem operasi Linux yang berfungsi

untuk membuat sebuah komputer menjadi sebuah komputer server DNS dengan

protokol IPv6.

Pada kenyataannya, peran fungsi program named tersebut, memiliki

keterbatasan dalam mengkonfigurasi dan pembuatan file-file komputer server

DNS, terutama yang menggunakan sistem operasi Linux berbasis text-mode atau

non-GUI. Karena program named yang dijalankan berbasis sistem operasi Linux

berbasis non-GUI, hanya dapat mengkonfigurasi letak direktori, port, user

privilege dan lainnya.

Akan berbeda bila program named yang dijalankan berbasis sistem operasi

Linux berbasis GUI, telah dapat membuat file-file konversi untuk IPv4 secara

otomatis.

Kecenderungan orang merasa malas untuk mempelajari serangakaian

perintah, serta bentuk rangkaian format IPv6 yang sulit dan panjang. Dalam

Page 70: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

51

penelitian ini, digunakan pemrograman bash dan perl untuk membuat tools yang

dapat membantu administrator. Dalam melakukan seting konfigurasi IPv6 pada

sebuah komputer yang memiliki fungsi server DNS dengan sistem operasi Linux

non-GUI atau text-mode.

Terutama pada masa transisi penggunaan IPv4 ke IPv6 akan dibutuhkan

mekanisme yang dapat membantu penggunaan IPv6. Dalam tahap implementasi

server DNS dengan IPv6 ini, akan dilakukan dalam sebuah jaringan lokal tanpa

harus melakukan komunikasi keluar jaringan atau BackBone6. Hal ini disebabkan

koneksi ke jaringan internet masih menggunakan router-router dengan IPv4.

Perlu diketahui dalam model pencarian dari nama ke alamat yang

digunakan program named, terdapat 2 model pencariaan atas nama yang

menggunakan alamat IPv6, yaitu dengan model AAAA records dan A6 records

agar dapat melakukan komunikasi dengan protokol IPv6. Kedua model pencarian

untuk IPv6 tersebut adalah standard yang telah ditetapkan, untuk lookup forward

(konversi dari nama ke alamat IPv6), tetapi pada kenyataannya format record

AAAA masih belum fleksibel. Sehingga status untuk penggunaan record AAAA

pada saat ini masih dalam status eksperimen (boleh digunakan atau tidak

digunakan).

Namun untuk menjaga kompatibilitasnnya, kedua format tersebut

digunakan secara bersamaan, sehingga format record AAAA masih digunakan

resolver untuk mendukung pencarian dengan record jenis AAAA. Hal ini

dikarenakan penggunaan record A6 jauh lebih sulit dibandingkan record pencarian

dengan jenis A atau AAAA.

Page 71: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

52

Pencarian alamat IPv6 ke nama (reverse lookup) digunakan konversi

pencarian dengan format nibble, mengingat tingkat kesulitan format baru bitstring

untuk pencarian alamat IPv6 ke nama masih berstatus eksperimen. Untuk

pemetaan zona reverse (kebalikan) yang digunakan adalah ip6.arpa, sedangkan

untuk ip6.int yang pada dasarnya tidak disetujui. Maka kegunaan dari ip6.arpa

adalah untuk memetakan zona reverse (kebalikan), hal ini disebabkan tingkat

kesulitan untuk pemetaan ruang alamat IPv6 dengan ip6.int1. Sehingga

penggunaan ip6.int masih sering dialihkan ke ip6.arpa untuk mengatasi pencarian

dengan format tersebut.

Server DNS berbasis IPv6 berperan dalam perkembangan masa transisi

ini, karena beberapa hal, yaitu:

1. Alamat IPv6 yang jauh lebih panjang dan pengalamatan dengan

menggunakan format hexadecimal.

2. Manusia cenderung lebih mudah mengingat nama dibandingkan

dengan angka yang panjang.

3. Membuat file-file utama secara manual dengan format IPv6

memerlukan waktu dan ketelitian.

4. Dengan sistem DNS yang terdistribusi, pemberian nama untuk tiap

komputer dalam sebuah komputer server DNS, jauh lebih mudah

dibandingkan dengan menamakan tiap-tiap komputer yang berjumlah

banyak.

1 RFC (request for comment) 1886

Page 72: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

53

Web Server

DNS Server

Mail Server

router1

router2

client

client

INTERNET

Gambar 3.1. Konfigurasi sebuah Jaringan dengan Server DNS

3.1.2. Kasus Penanganan Program BIND-named dengan IPv6

Ada beberapa kasus penanganan terhadap server DNS berbasis IPv6

dalam masa transisi ini. Domain Name System digunakan untuk pemberian nama

ke alamat maupun alamat ke nama secara terpusat dalam sebuah komputer untuk

komputer-komputer lainnya dalam satu lingkup jaringan lokal yang besar dan

tersimpan dalam beberapa file konfigurasi dan file forward dan reverse.

Dalam kasus ini sistem operasi yang akan digunakan untuk server DNS

adalah sistem operasi Linux berbasis text-mode atau non-GUI dengan klien-klien

yang mengunakan sistem operasi Windows dan Linux berbasis GUI.

Maka perlunya sebuah tools yang dapat berjalan pada sistem operasi Linux

non-GUI, sehingga memungkinkan dan memudahkan administrator untuk

membuat file-file konfigurasi DNS dengan format alamat IPv6. Agar sebuah

server DNS berbasis IPv6 dapat berjalan dengan baik, maka perlunya mengetahui

format atau model penulisan file-file konfigurasi dengan format penulisan dan

konversi yang mendukung alamat IPv6.

Page 73: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

54

Beberapa file yang dimanfaatkan dan dibutuhkan untuk konfigurasi dan

dibuat adalah named.conf, resolv.conf, forward, reserve.int dan reverse.arpa. File-

file utama yang dibutuhkan untuk sebuah server DNS dalam jaringan lokal yang

berbasis IPv6 adalah resolv.conf, named.conf, named.root6, forward, reverse.int

dan reverse.arpa.

Berikut bentuk file-file utama dengan format IPv6 yang dibutuhkan dan

telah mendukung untuk menjalankan servis program named :

a. Format Penulisan pada file resolv.conf

File Resolver adalah program yang mengirim pertanyaan (query) terhadap

server DNS untuk mendapatkan informasi suatu host. File ini berisi

informasi tentang domain dan server DNS untuk domain yang dituju,

contoh :

nameserver mobs6.edu

search 2002:200::abcd:10a

b. Format Penulisan sebuah zona bebrbasis IPv6 pada file named.conf

File named.conf adalah sebuah file yang dibaca pertama kali oleh program

named, file tersebut adalah sebuah file boot yang berfungsi untuk

mengatur kemanan, port yang digunakan dan serta penulisan letak file

zona forward dan file reverse yang dibuat, contoh :

options { directory "/var/named"; listen-on-v6 { any };

// query-source address * port 53; };

controls { inet 127.0.0.1 allow { localhost; } keys { rndckey; };

Page 74: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

55

inet ::1 allow { localhost; } keys { rndckey; }; }; zone "ipv6.my.zone" IN { type master; file "ipv6.my.zone"; allow-update { none;}; };

c. Format Penulisan file forward dengan Pencarian Alamat dengan

Record AAAA

Fungsi record AAAA memiliki kesamaan dengan penulisan record A pada

IPv4, contoh :

www IN AAAA 2002:200::abcd:10a

d. Format Penulisan file forward dengan Pencarian Alamat dengan

Record A6

Fungsi record A6 digunakan untuk membentuk rantai record A6 untuk

menspesifikasi alamat IPv6, contoh :

www IN A6 0 2002:200::abcd:10a

e. Format Penulisan file reverse.int, Konversi dari Alamat IPv6 ke

Nama dengan Format Nibble

Format nibble digunakan untuk pencarian dari alamat ke nama dalam DNS

adalah pencarian dengan format lama (IPv4)2, contoh :

$ORIGIN 0.0.0.0.0.0.0.0.0.0.2.0.2.0.0.2.ip6.int.

a.0.1.0.d.c.b.a.0.0.0.0.0.0.0.0 IN PTR ns.ipv6.my.zone.

2 Riza Taufan, Teori dan Implementai IPv6, PT. Elex Media Komputindo, 2002, hal 256

Page 75: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

56

f. Format Penulisan file reverse.arpa, Konversi dari Alamat IPv6 ke

Nama dengan Format Bitstring

Format bitstring dapat dimulai dan diakhiri pada semua batasan bit, hal ini

lebih baik apabila dibandingkan dengan format nibble:

$ORIGIN \[x2002020000000000/64].ip6.arpa

\[x00000000abcd010a/64] IN PTR ns.ipv6.my.zone.

g. Format Penulisan named.root6 untuk Alamat IPv6

File named.root6 adalah cache file dan file ini sangat penting. File ini

digunakan untuk memberikan informasi ke arah server DNS tentang root

untuk mengetahui informasi host-host yang tidak terdapat di domain lokal.

Namun dalam penelitian ini, konfigurasi server DNS yang digunakan

hanya berjalan dalam jaringan lokal tanpa melakukan koneksi internet ke

BackBone6 yang memiliki nama-nama root berbasis alamat IPv6 di

internet. Sehingga file named.root6 ini akan berfungsi untuk

menggantikan posisi caching file koneksi ke BackBone6. Contoh file:

. 3600000 IN NS ipv6.my.zone. ipv6.my.zone. 3600000 IN AAAA 2002:200::abcd:10a ipv6.my.zone. 3600000 IN A6 0 2002:200::abcd:10a

Namun pada kenyataannya, saat implementasi pembuatan file-file secara

manual dilakukan, bentuk file reverse.arpa dengan format nibble tidak dapat

berjalan dengan baik saat servis named diaktifkan dan dilakukan pengecekan.

Untuk mengatasi hal tersebut, file reverse.arpa akan dilakukan beberapa

modifikasi dengan menggunakan contoh pembuatan file yang diperoleh dari situs

Page 76: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

57

http://h71000.www7.hp.com/doc/732final/6645/6645pro_005.html dari Hewlett-

Packard Development Company,L.P., sebagai berikut :

Untuk memperbaiki kompabilitasan pada file reverse.arpa, modifikasi file

reverse.arpa dari Hewlett-Packard3 akan digunakan format nibble seperti berikut:

$ORIGIN 0.0.0.0.0.0.0.0.0.0.2.0.2.0.0.2.ip6.arpa. $TTL 86400 @ IN SOA ipv6.myzone. root.mobius.edu.( 42 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS ns.ipv6.my.zone. a.0.1.0.d.c.b.a.0.0.0.0.0.0.0.0 IN PTR host.ipv6.my.zone.

Sedangkan untuk file reverse.int akan dimodifikasi agar pencarian lamat

ke nama dialihkan ke file reverse.arpa dengan menggunakan perintah DNAME,

seperti berikut:

$ORIGIN 0.0.0.0.0.0.0.0.0.0.2.0.2.0.0.2.ip6.int. $TTL 86400 @ IN SOA ipv6.my.zone. root.ipv6.my.zone.( 42 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum IN NS ipv6.my.zone. DNAME 0.0.0.0.0.0.0.0.0.0.2.0.2.0.0.2.ip6.arpa.

Dengan melihat contoh format penulisan file-file diatas, dapat dilihat

panjang dan kerumitan dalam pembuatan file-file tersebut jika dilakukan secara

manual, sehingga akan memakan banyak waktu dalam memberikan nama-nama

server dan host dalam sebuah server DNS. Oleh karena itu dibutuhkan suatu tools

yang dapat membantu administrator dalam menseting dan menyiapkan sebuah 3 http://h71000.www7.hp.com/doc/732final/6645/6645pro_005.html

Page 77: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

58

komputer yang berfungsi sebagai server DNS berbasis IPv6 dengan sistem operasi

Linux berbasis text-mode. Dalam penelitian ini digunakan pemrograman bash dan

perl untuk membuat tools tersebut.

3.1.3. Program BIND-named Pada Linux

Linux memiliki aplikasi-aplikasi yang terus berkembang. Dalam program

named yang berjalan pada sistem operasi Linux Fedora Core 2 berbasis text-mode,

memiliki perintah-perintah yang hanya berfungsi untuk menseting konfigurasi

letak direktori, port, file konfigurasi default (bawaan) yang terdapat pada direktori

/etc seperti file named.conf dan resolv.conf, sedangkan pada direktori /var/named

telah terdapat file localhost.zone, named.local, dan named.ca yang telah terinstall

secara otomatis dengan bentuk bawaan saat menginstall sistem operasi Linux.

Perintah untuk pembuatan file-file utama DNS secara otomatis seperti:

forward dan reverse, program named tidak memiliki fasilitas atau perintah

tersebut baik untuk format IPv4 maupun IPv6, jika berjalan pada sistem operasi

Linux berbasis text-mode. Maka untuk membuat file-file utama DNS masih harus

dilakukan secara manual (pembuatan file dan mengetik secara keseluruhan baik

bentuk atapun format isi dari file).

Apabila sistem operasi Linux yang digunakan berbasis GUI, program

named yang ada telah diberikan aplikasi tambahan yang berbasis GUI dalam

pembuatan file-file utama secara mudah dan efisien. Namun program named

berbasis GUI tersebut, belum mendukung pembuatan format file-file utama

berbasis IPv6.

Page 78: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

59

Bentuk program named bila dijalankan pada sistem operasi Linux berbasis

text-mode, memiliki perintah-perintah yang dapat digunakan untuk menseting

konfigurasi letak direktori, port, file konfigurasi default (bawaan) dan lainnya,

seperti berikut :

usage: named [-c conffile] [-d debuglevel] [-f|-g] [-n number_of_cpus]

[-p port] [-s] [-t chrootdir] [-u username]

Dengan melihat perintah-perintah yang dimiliki program named diatas,

yang hanya dapat menseting konfigurasi letak direktori, port, file konfigurasi

bawaan dan lainnya. Program named yang ada akan diberikan program tambahan

untuk pembuatan file-file utama dalam format yang telah didukung oleh alamat

IPv6 secara cepat dan efisien.

3.1.4. Analisis Kebutuhan

Analisis kebutuhan disini dimaksudkan untuk mengumpulkan kebutuhan

administrator dalam membangun jaringan lokal berbasis IPv6 yang

memanfaatkan fungsi server DNS.

1. Analisis sistem

Berdasarkan analisis yang telah dilakukan, maka yang diperlukan dalam

implementasi ini adalah:

a. Membuat lingkup jaringan lokal dengan komputer-komputer yang sudah

terkoneksi dan terkonfigurasi dengan alamat IPv6.

b. Memberikan kemudahan bagi administrator untuk membuat sebuah

komputer dalam jaringan lokal menjadi server DNS.

Page 79: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

60

c. Memberikan fungsi otomatis terhadap pembuatan file-file utama dengan

format IPv6 yang dibutuhkan oleh server DNS.

2. Analisis pengguna

Sistem ini hanya ditujukan kepada administrator yang pernah

mengkonfigurasi dan membuat file-file utama untuk server DNS dengan

program named berbasis IPv4 maupun IPv6 secara manual.

3.1.5. ANALISA PROSES

Pada tahapan ini dilakukan analisa proses pembuatan file dari input-input

dan kondisi-kondisi bentuk perintah yang akan diproses melalui program named6,

selama servis program named belum dijalankan. Sehingga bentuk dari perintah

dan opsi-opsi yang dimiliki dari program named6 tersebut akan jauh berbeda

dengan program named yang telah dijelaskan sebelumnya. Hal ini dikarenakan

fungsi dari program named6 adalah memanipulasi file yang telah ada (telah

terinstall sebelumnya) dan membuatkan file-file baru dalam format yang

mendukung IPv6.

Adapun untuk menggambarkan proses jalannya program dilakukan dengan

cara menggambarkan flowchart-flowchart untuk memahami tiap proses membuat,

mengubah, menghapus, menampilkan file-file utama dan fasilitas-fasilitas yang

diberikan.

Program named6 akan dimanfaatkan untuk mengepalai semua proses

program yang berkaitan dari proses opsi-opsi yang ada seperti: menambah (add),

mengubah (edit), menghapus (delete), menampilkan (view) atau perintah lain yang

Page 80: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

61

telah dikondisikan pada program named6 tersebut. Dengan kata lain, semua

program akan dimulai dari proses program named6 terlebih dahulu, kemudian

dilanjutkan dengan menjalankan program-program lainnya secara otomatis.

Saat tiap proses satu program telah selesai, maka program akan dilanjutkan

dengan memanggil program-program yang berkaitan sampai dengan proses

program terakhir selesai. Tiap program yang terkait akan memiliki fungsi yang

berbeda-beda, hal ini disebabkan penggunaan dua bahasa pemrograman yang

berbeda dengan memanfaatkan kelebihan dari tiap bahasa pemrograman itu

sendiri

Proses menambahkan sebuah nama dan alamat, maka jalan program yang

berkaitan adalah:

1. Tambah (add) nama dan alamat IPv6/prefix untuk server, yaitu:

a. named6 add, perintah diatas adalah proses pengkondisian bentuk

perintah input yang telah ditetapkan yaitu dengan mengisikan perintah

“add”, “-DNS” diikuti pengisian nama server, dan “-ip6/prefix” diikuti

alamat dan prefix, maka program akan membuatkan file temporary

(sementara) pada direktori /var/tmp/SERVER sehingga dapat

digunakan untuk proses program-program selanjutnya. Berikut adalah

bentuk flowchart untuk menambah sebuah nama dan alamat/prefix

untuk server DNS, dimulai dari program named6 dan proses

pemanggilan program-program lainnya:

Page 81: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

62

START

case $isi1=”add”

$isi1=add, $isi2=-DNS, $isi3=”nama server”, $isi4=-ip6/prefix, $isi5=”alamat/

prefix"

no

no

yes

END

echo “Perhatikan format penulisan“ echo; $helpS; $helpHelse

yes

yes

no

if [[ $ip != "" && $pfx != "" ]]

echo "$isi3 $ip $pfx" > $TMPVar/"$isi3"; echo "1" > /proc/sys/net/ipv6/bindv6only

./cekIP.pl $ip $pfx $isi3

if [[ $isi2 == help || $isi2 == "" ]]

elif$isi2=-DNS && $isi3 != “” && $isi4=-ip6/prefix && $isi5 !=

“”if [[ -d $TMPS ]]

if [[ -f $Var/f-"$isi3" ]]

else[[ -s $Etc/

resolv.conf ]]

yes

elif$isi2=-H && $isi3 != “” && $isi4=-ip6/prefix && $isi5 != “” && $isi6=-

Z && $isi7 != ””

echo "Nama Domain $isi3 Sudah Ada !!!" ;

no

else

mkdir $TMPS; …...…..

echo "1" > /proc/../ ipv6/bindv6only./cekIP.pl $ip $pfx $isi3

yes

……..

yes

yes

Gambar 3.2.Flowchart proses tambah server program named6

b. cekIP.pl, program ini memanfaatkan bahasa pemrograman Perl dan

berfungsi untuk memproses hasil masukan alamat IPv6 beserta prefix

yang diterima dari program named6 untuk pengecekan bentuk format

alamat IPv6 dan prefix yang telah ditetapkan. Seperti yang telah

dijelaskan sebelumnya, jika fungsi dari program cekIP.pl akan

Page 82: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

63

digunakan untuk mengecek format alamat IPv6 dan penggunaan prefix

yang telah ditetapkan, berikut flowchart program cekIP.pl:

START

If( $ip !~ /[G-Z]|[g-z]/ && $ip !~ /

^(?>(.*?){1}):/ && $ip !~ /(?>(.*?){1}):::/ && $ip !~ /(?>(.*?){1})[;]/ &&

$ip !~ /(?>(\.*?\.){1})/ )if ($ip eq "::1")

If($cap<"1" && $count < 7 || $cap ==1 &&

$count > 6 )

elsif($cap=="2" ||

$error=="1" || $count > "7" )

else

else

yes

$tes=@prefix; for ($x=0; $x<$tes;$x++)

no

system("echo $nama $ip $prfx >> /var/tmp/$zona");system("./ffwdHST.sh");

system("echo $nama $ip $prfx > /var/tmp/$nama");system("./ffwdSRV.sh");

else

END

print "\nMessage 1 ==> Format INPUT alamat IPv6 SALAH!!!\n\n";

if(open(test,"$DIRH/

zonaH")) hapusS();

yesno

hapusH(); else

else

no

yesno

yes

if($pass eq "1")

if(open(test,"$DIRH/

zonaH"))

else

yes

no

no

yes

yes

no

$ip = $ARGV[0]; $prfx = $ARGV[1]; $nama = $ARGV[2]; $zona = $ARGV[3]; $DIRS ="/var/tmp/SERVER"; $DIRH ="/var/tmp/HOST"; @prefix = (16, 32, 48, 64, 80, 96, 112);

Gambar 3.3.Flowchart program cekIP.pl tambah server

c. ffwdSRV.sh, program ini memanfaatkan bahasa pemrograman shell

script dan berfungsi untuk membuat file-file pada direktori

Page 83: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

64

/var/named, yaitu file-file: named.root6, localhost6.zone,

named6.local, dan forward (penamaan file sesuai dengan format yang

telah ditentukan). Bila input alamat dan prefix program telah terpenuhi

dengan kondisi yang ada, maka program akan melanjutkan memanggil

program ffwdSRV.sh yang akan berfungsi untuk membuat file-file

dalam format yang telah ditentukan, berikut flowchart program

ffwdSRV.sh:

START

if [[ -s $Etc/resolv.conf ]]

echo "……" >> $Var/named.root6 echo "……" > $Var/f-"$namaS" ./reSRV.pl $ipS $pfxS

echo "……" > $Var/named6.local echo "……" > $Var/localhost6.zone echo "……" >> $Var/named.root6 echo "……" > $Var/f-"$namaS" ./reSRV.pl $ipS $pfxS

else

END

TMPS=/var/tmp/SERVER; Var=/var/named; Etc=/etc namaS=`awk '{print $1}' $TMPS/namaS`; IpS=`awk '{print $1}' $TMPS/ipS` pfxS=`awk '{print $1}' $TMPS/pfxS` revlocal="0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa." ptrlocal="1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR localhost."

Gambar 3.4.Flowchart program ffwdSRV.sh tambah server

d. reSRV.pl, program ini dibuat memanfaatkan bahasa pemrograman Perl

dan berfungsi untuk membalik format alamat IPv6 dan membuatkan

file sementara agar dapat diporoses pada program selanjutnya. Berikut

Page 84: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

65

proses program reSRV.pl yang mendapatkan input dari program

ffwdSRV.sh. Berikut bentuk flowchart dari program reSRV.pl:

START

if ($prfxS == "16") { $nilai=0; $nilai2=1 }……………….

if ($prfxS == "112") { $nilai=6; $nilai2=7;} $cari= length($ipS);

$i=0;

if ($tempat eq "1")

$hitung = 8 - ($count) ;

$kar=substr($ipS,$i,1);$kar2=substr($ipS,$i+1,1);

$i++

$i<$cari

no

$i<$cari;

$kar = substr($ipS,$i,1);$kar2 = substr($ipS,$i+1,1);$kar3 = substr($ipS,$i+2,1);

$i++

yes

$ i=0;

my $str2 = $karakter;@daftar= split(/:/,$str2);

$count=$#daftar;

no

no

$i=0;

$i++ yes

$itung=$nilai;

$j=0;

$awal="...";$j++

$j<=$itung

$panjang = length($awal);

yes

yes

no

no

no

if ($kar eq ":" && $kar2 ne ":") elsif ($kar eq ":" && $kar2 eq ":")

…..

if($hitung >= 0)

if($kar ne ":")elsif ($kar eq ":" && $kar2 ne ":")elsif ($kar eq ":" && $kar2 eq ":")

for($x=1;$x<=$hitung;$x++)…….

if(length($daftar[$i]) == 4)if(length(...[$i]) == 3 && $i != 0)if(length(...[$i]) == 2 && $i != 0)if(length(...[$i]) == 1 && $i != 0)

…..

$i<$count

yes

yes

no

yes

yes

If ($i==$panjang-1)else {}…….

$i=$panjang

$i--

$j<=$itung

no

system("echo $depan > /var/tmp/SERVER/depanS "); $itung2=7;

$blkg="...";$j2++;

$j<=$itung

yes

$panjang2 = length($blkg);

$i2=$panjang 2-1$temp2=substr(...);

if ($i2==$panjang 2-1)else {}…….

$j<=$itung

$i2--

system("echo $depan > /var/tmp/SERVER/belakangS ");system("./reSRV.sh");

END

$ipS = $ARGV[0]; $prfxS = $ARGV[1];

Gambar 3.5.Flowchart program reSRV.pl tambah server

Page 85: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

66

e. reSRV.sh, program ini memanfaatkan bahasa pemrograman shell

script dan berfungsi untuk membuat file reverse (penamaan file sesuai

dengan format yang telah ditentukan) pada direktori /var/named.

START

echo "……" > $Var/rev."$namaS".arpa echo "……" > $Var/rev."$namaS".int ./named-resolv.sh

TMPS=/var/tmp/SERVERVar=/var/namednamaS=`awk '{print $1}' $TMPS/namaS` dpnS=`awk '{print $1}' $TMPS/depanS`blkgS=`awk '{print $1}' $TMPS/belakangS

END

Gambar 3.6.Flowchart program reSRV.sh tambah server

f. named-resolv.sh, program ini memanfaatkan bahasa pemrograman

shell script berfungsi untuk memanipulasi file named.conf dan

resolv.conf yang telah terdapat sebelumnya pada direktori /etc,

sehingga dapat mendukung penamaan dengan alamat IPv6 dan

menghapus file-file sementara pada direktori /var/tmp/SERVER.

Berikut bentuk gambar flowchart dari program named-resolv.sh:

Page 86: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

67

START

if [[ -f $Etc/named.conf ]]

echo "……" > $Etc/named .conf echo "……" > $Etc/resolv.conf rm $TMPS/namaS ; rm $TMPS/ipS; rm $TMPS/pfxS rm $TMPS/depanS ; rm $TMPS/belakangS

else

END

itung=`awk '/include/{print NR}' $Etc/named.conf` let x=$itung sed "$x"d $Etc/named.conf > $TMP/named.conf

echo "...” >> $TMP/named.conf mv $TMP/named.conf $Etc/named.conf echo "..." >> $Etc/resolv.conf rm $TMPS/namaS ; rm $TMPS/ipS; rm $TMPS/pfxS rm $TMPS/depanS ; rm $TMPS/belakangS

TMPS=/var/tmp/SERVER; Etc=/etc; TMP=/var/tmpnamaS =`awk '{print $1}' $TMPS/namaS`ipS=`awk '{print $1}' $TMPS/ipS`dpnS =`awk '{print $1}' $TMPS/depanS `revlocal="0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa"inet="127.0.0.1 allow { localhost; } keys { rndckey; };"inet6="::1 allow { localhost; } keys { rndckeys; };"

Gambar 3.7.Flowchart program named-resolv.sh tambah server

2. Tambah (add) nama dan alamat IPv6 untuk klien host server, yaitu:

a. named6 add, berfungsi untuk proses pengkondisian bentuk perintah

input yang telah ditetapkan yaitu “-H” diikuti dengan mengisikan

nama klien host, “-ip6/prefix” dan diikuti dengan mengisi alamat

beserta prefix, dan “-Z” diikuti dengan zona server yang berwewnang

atas klien tersebut. Gambar flowchart dari proses program named6

untuk menambah nama dan alamat klien host dapat dilihat pada

gambar berikut:

Page 87: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

68

START

case $isi1=”add”

$isi1=add, $isi2=-H, $isi3=”nama host ”, $isi4=-ip6/prefix, $isi5=”alamat/prefix"

$isi6=-Z, $isi7=”nama zona ”

no

no

yes

END

echo “Perhatikan format penulisan“ echo; $helpS; $helpHelse

yes

yes

no

echo "$isi3" > $TMPH/namaH;echo "$ip" > $TMPH/ipHecho "$pfx" > $TMPH/pfxH; echo "$isi7" > $TMPH/zonaHrm $TMPH/ip; rm $TMPH/ipku ./cekIP.pl $ip $pfx $isi3 $isi7

if [[ $isi2 == help || $isi2 == "" ]]

elif$isi2=-DNS && $isi3 !=

“” && …...

elif$isi2=-H && $isi3 != “” && $isi4=-ip6/prefix && $isi5 != “” && $isi6=-

Z && $isi7 != ””

else

yes

if [[ -d $TMPH && -f $Var/f-"$isi7" ]]

if cek=`grep $isi 3 $TMPVar/$isi7`

yes

echo "Nama Host: $isi3 Sudah Ada Dalam

Zona: $isi7";

no

yes

elif [[ -f $Var/f-"$isi7" ]]

mkdir $TMPH; …...…..

rm $TMPH/ip; rm $TMPH/ipku ./cekIP.pl $ip $pfx $isi3 $isi7yes

no

no

Gambar 3.8.Flowchart program named6 tambah klien host

b. cekIP.pl, program ini dimanfaatkan kembali untuk pengecekan

alamat/prefix untuk klien host server. Proses dari program ini sama

dengan proses pengecekan alamat/prefix untuk server. Perbedaan yang

dimiliki adalah pada saat seluruh kondisi terpenuhi maka program akan

melanjutkan untuk memanggil program ffwdHST.sh yang dapat dilihat

pada gambar 3.3. Flowchart program cekIP.pl tambah server.

Page 88: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

69

c. ffwdHST.sh, program ini memanfaatkan bahasa pemrograman shell

script yang berfungsi untuk menambahkan isi file forward server yang

telah dituju dengan nama klien host dan alamat IPv6nya. Berikut

bentuk gambar flowchart dari program ffwdHST.sh:

START

echo "$namaH IN AAAA $ipH IN A 6 0 $ipH

" >> $Var/f-"$zoneH"./reHST.pl $ipH $pfxH

END

TMPH=/var/tmp/HOST; TMPVar=/var/tmpVar=/var/namedzoneH=`awk '{print $1}' $TMPH/zonaH`namaH=`awk '{print $1}' $TMPH/namaH`ipH=`awk '{print $1}' $TMPH/ipH`pfxH=`awk '{print $1}' $TMPH/pfxH`

Gambar 3.9.Flowchart program ffwdHST.sh tambah klien host

d. reHST.pl, program ini memliki proses yang sama persis dengan

program reSRV.pl yang berfungsi untuk membalik format alamat IPv6

dan perbedaannya adalah untuk membuat file-file sementara pada

direktori /var/tmp/HOST agar dapat digunakan sebagai input pada

proses program selanjutya. Karena proses kerja yang dimiliki sama

maka proses gambar flowchart dari program ini dapat dilihat pada

gambar 3.5. yaitu flowchart dari program reSRV.pl.

e. reHST.sh, program ini dibuat memanfaatkan bahasa pemrograman

shell script dan berfungsi untuk menambahkan isi file reverse server

Page 89: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

70

yang telah dituju dengan nama klien host dan alamat IPv6 terbalik,

kemudian menghapus file-file sementara yang terdapat pada direktori

/var/tmp/HOST. Gambar proses kerja program dapat dilihat pada

flowchart berikut:

START

echo "$blkgH IN PTR $namaH .$zoneH." >> $Var/rev."$zoneH".arpa

rm $TMPH/namaH ; rm $TMPH/ipH; rm $TMPH/pfxH; rm $TMPH/belakangH; rm $TMPH/zonaH

END

Var=/var/namedTMPH=/var/tmp/HOSTzoneH=`awk '{print $1}' $TMPH/zonaH`namaH =`awk '{print $1}' $TMPH/namaH` blkgH=`awk '{print $1}' $TMPH/belakangH`

Gambar 3.10.Flowchart program reHST.sh tambah klien host

Proses untuk mengubah (edit) sebuah nama atau alamat/prefix, maka jalan

program yang berkaitan adalah :

1. Ubah (edit) nama server atau klien host, proses program-program yang

berkaitan adalah:

a. named6 edit, program ini berfungsi untuk proses pengkondisian

bentuk perintah input untuk pengeditan yang telah ditetapkan yaitu

“edit”, “-DNS” diikuti dengan mengisi nama server lama yang akaqn

diubah dan “-NN” diikuti dengan mengisi nama baru atau “edit” “-H”

diikuti dengan mengisi nama klien host, “-NN” diikuti dengan mengisi

nama baru klien host dan “-Z” diikuti dengan mengisi nama zona

server yang berwewenang atas klien host tersebut. Kemudian

Page 90: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

71

dilanjutkan dengan proses pembuatan file-file sementara pada direktori

/var/tmp/EDIT yang akan digunakan pada proses program selanjutnya.

Berikut flowchart dari program named6 untuk ubah nama:

START

case $isi1=”edit”

$isi1=edit, $isi2=-DNS or -H, $isi3=”nama lama ”, $isi4=-NN, $isi5=”nama baru ”, $isi6=-Z,

$isi7=”zonaserver”

no

END

yes

no

if [[ $isi2 == help || $isi2 == "" ]]

elif[[ $isi2 == -DNS && $isi3 != "" &&

$isi4 == -NN && $isi 5 != "" ]]

elif [[ $isi2 == -H && $isi3 != "" && $isi4 == -NN && $isi5 != "" && $isi6 == -

Z && $isi7 != "" ]]

yes

no

no

elif [[ $isi2 == -ip6/prefix && $isi3 != "" && $isi4 == -Nip6/prefix &&

$isi5 != "" …..

no

no

elif [[ $isi2 == -ip6/prefix && $isi3 != "" && $isi 4 == -Nip6/prefix &&

$isi5 != "" …..

else

echo "Perhatikan Format Penulisan !!!" $helpE

no

echo "$isi3" > $TMPE/namaLama ; echo "$isi5" > $TMPE/namaBaru ./EditNama6.sh

else

if [[ -f $Var/f-"$isi3" && -d $TMPE ]]

no

yes

elif[[ -f $Var/f-"$isi3" ]]

mkdir $TMPEecho "$isi3" > $TMPE/namaLama ; echo "$isi5" > $TMPE/namaBaru ./EditNama6.sh

yes

echo "Nama Domain Sever : $isi3, Tidak Ditemukan !!!"; . $helpED

echo "$isi3" > $TMPE/namaLama ; echo "$isi5" > $TMPE/namaBaru ./EditNama6.sh

else

if [[ -f $Var/f-"$isi3" && -d $TMPE ]]

elif [[ -f $Var/f-"$isi7" ]]

mkdir $TMPEecho "$isi3" > $TMPE/namaLama ; echo "$isi5" > $TMPE/namaBaru ./EditNama6.sh

echo "Nama Host: $isi3, Tidak Ada Dalam Zona: $isi7"

echo "File DNS Tidak Ditemukan !!!";$helpEHelse

if cek=`grep $isi7 $TMPVar/$isi7`

if cek=`grep $isi7 $TMPVar/$isi7`

yes

yes

yes

yes

no

no

no

no

yes

Gambar 3.11.Flowchart program named6 ubah nama

b. EditNama6.sh, program ini memanfaatkan bahasa pemrograman shell

script. Fungsi utama dari program ini adalah untuk mengubah, baik

nama server ataupun klien host berdasarkan pengecekan file sementara

yang ada untuk membedakan pengubahan akan dilakukan untuk nama

Page 91: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

72

server atau klien host. Berikut flowchart untuk ubah nama untuk server

atau klien host:

START

Var=/var/named ; Etc=/etcTMPE=/var/tmp/EDIT; TMPVar=/var/tmp

if [[ -f $TMPE/ZONA ]]

zona=`awk '{print $1}' $ TMPE/ZONA` namaL =`awk '{print $1}' $ TMPE/namaLama ` namaB =`awk '{print $1}' $ TMPE/namaBaru`

else

elseecho "\"Nama Host Baru\" Sama Dengan \"Nama Host Lama\" !!!";

sed "s/$namaL/$namaB/g" $Var/f-"$zona" > $TMPE/f-"$zona" mv $TMPE/f-"$zona" $Var

..…… rm $TMPE/ZONA; rm $TMPE/namaLama; rm $TMPE/namaBaru;

if[[ $namaB != $namaL ]]

namaL =`awk '{print $1}' $ TMPE/namaLama ` namaB =`awk '{print $1}' $ TMPE/namaBaru `

if[[ $namaB != $namaL ]]

else

sed "s/$namaL/$namaB/g" $Var/named.root6 > $TMPE/named.root6 mv $TMPE/named.root6 $Var ..…… rm $TMPE/ZONA; rm $TMPE/namaLama; rm $TMPE/namaBaru;

echo "\"Nama Domain Baru\" Sama Dengan \"Nama Domain Lama\" !!!";

yes

no

yes

yes

no

no

END

Gambar 3.12.Flowchart program EditNama6.sh ubah nama

2. Ubah (edit) alamat/prefix server atau klien host, maka jalan program yang

berkaitan adalah:

a. named6 edit, berfungsi untuk proses pengecekan alamat/prefix lama

yang dimiliki oleh server ataupun klien host dan pengkondisian bentuk

perintah input yang telah ditetapkan yaitu “edit”, “-ip6/prefix” diikuti

dengan mengisikan alamat/prefix lama, “-Nip6/prefix” diikuti dengan

mengisi alamat/prefix baru dan “-DNS” diikuti dengan nama server

yang memiliki alamat yang akan diubah. Sedangkan bentuk perintah

Page 92: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

73

untuk ubah alamat atau prefix klien host adalah “-ip6/prefix” diikuti

dengan mengisikan alamat/prefix lama, “-Nip6/prefix” diikuti dengan

mengisi alamat/prefix baru, “-H” diikuti dengan nama klien host yang

memiliki alamat lama dan “-Z” diikuti dengan mengisi nama server

yang berwewenang atas klien tersebut. Dilanjutkan dengan pembuatan

file-file sementara pada direktori /var/tmp/EDIT dan pemanggilan

program berikutnya. Berikut gambar flowchart dari program named6

untuk ubah alamat dan prefix server maupun klien host:

START

case $isi1=”edit”

$isi1=edit, $isi2=-ip6/prefix, $isi3=”ip/prefix”, $isi4=-Nip6/prefix, $isi5=”ip/prefix baru”, $isi6=-DNS

or -H, $isi7=”server or host”, $isi8 =-Z, $isi9=”ZonaServer”

no

yes

no

if [[ $isi2 == help || $isi2 == "" ]]

elif[[ $isi2 == -DNS && $isi3 !=...

&& $isi4 == -NN &&..

elif [[ $isi2 == -H && $isi3 !=

&& $isi4 == -NN && $isi5 !=&&$isi6 == -Z && $isi7 != ]]

yes

no

no

elif [[ $isi2 == -ip6/prefix && $isi3 != "" && $isi4 == -Nip6/prefix &&

$isi5 != "" && $isi6 = -H$isi7 !=””, $isi8=-Z,

$isi9 != “”

no

no

elif [[ $isi2 == -ip6/prefix && $isi3 != "" && $isi4 == -Nip6/prefix &&

$isi5 != "" && $isi6= -DNS$isi7 != “”

else echo "Perhatikan Format Penulisan !!!" $helpE

no

else

if [[ -f $Var/f-"$isi7" &&

-d $TMPE ]]

no

yes

elif[[ -f $Var/f-"$isi7" ]]

yes

if $ipLama == $ipL &&

$pfxLama == $pfxL && $pfxBaru != $pfxLama ]]

else

echo "Nama Domain : $isi7 Tidak Ditemukan !!!";

echo "$isi3" > $TMPE/ipL.; ... sed 's/[/]/ /' $TMPE/ipL > …...

…..ipL=`awk '..’ $TMPVar/$nama`

echo "$isi3" > $TMPE/ipL.; ... sed 's/[/]/ /' $TMPE/ipL > …...

…..ipL=`awk '….’ $TMPVar/$nama`

no

else

if [[ -f $Var/f-"$isi9" &&

-d $TMPE ]]

no

yes

elif[[ -f $Var/f-"$isi9" ]]

yes

if [[ $namaH == $cekH &&

$ipLama == $ipL && $pfxLama == $pfxL && $pfxBaru !=

$pfxLama ]]

else

echo; echo "Nama Domain6 : $isi9 Tidak Ditemukan !!!";

echo "$isi3" > $TMPE/ipL.; ... sed 's/[/]/ /' $TMPE/ipL > …...

….. cekH=`awk '..' $TMPVar/$namaD`

mkdir $TMPE echo "$isi3" > $TMPE/ipL.; ... sed 's/[/]/ /' $TMPE/ipL > …...

….. cekH=`awk '..' $TMPVar/$namaD`

END

yes

noyes

yes

no

rm $TMPE/ipL; rm $TMPE/ipLku; ..…../cekIPB.pl $ipBaru $pfxBaru $ipLama $pfxLama

echo "Alamat IPv6 atauPrefix Lama Tidak Sesuai !!!";

….

rm $TMPE/ipL;..$TMPE/ipLku; ..…../cekIPB.pl $ipBaru $pfxBaru $ipLama $pfxLama

echo "Alamat IPv6 atau Prefix Lama Tidak Sesuai !!!";echo "Alamat IPv6 atau Prefix Baru == IPv6 atau Prefix Lama !!!";

Gambar 3.13.Flowchart program named6 ubah alamat/prefix

Page 93: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

74

b. cekIPB.pl, program ini memanfaatkan bahasa pemrograman Perl dan

memiliki proses kerja yang sama dengan program cekIP.pl pada proses

penambahan server ataupun klien host yaitu mengecek format alamat

dan prefix baru. Kemudian dilanjutkan pada proses program

berikutnya. Gambar flowchart program cekIPB.pl sama dengan gambar

flowchart cekIP.pl gambar flowchart reSRV.pl pada gambar 3.3,

perbedaan yang dimiliki terdapat pada penempatan direktori file-file

sementara dan penamaan filenya.

c. ReIPL.pl, program ini memanfaatkan bahasa pemrograman Perl dan

memiliki proses yang sama dengan program reSRV.pl atau reHST.pl

yang berfungsi untuk membalik alamat lama menurut prefix lama yang

dimiliki. Kemudian dilanjutkan dengan membuat file-file sementara

dan memproses program selanjutnya. Gambar flowchart program

reIPL.pl sama dengan gambar flowchart reSRV.pl pada gambar 3.5,

perbedaan yang dimiliki terdapat pada penempatan direktori file-file

sementara dan penamaan filenya.

d. ReIPB.pl, program ini memanfaatkan bahasa pemrograman Perl dan

memiliki proses kerja yang sama dengan program sebelumnya yaitu

ReIPL.pl. Kemudian dilanjutkan pada pembuatan file-file sementara

yang akan diporses pada program selanjutnya. Gambar flowchart

program reIPB.pl sama dengan gambar flowchart reSRV.pl gambar

flowchart reSRV.pl pada gambar 3.5, perbedaan yang dimiliki terdapat

pada penempatan direktori file-file sementara dan penamaan filenya.

Page 94: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

75

e. EditIP6.sh, program ini memanfaatkan bahasa pemrograman shell

script yang berfungsi untuk mencari dan mengubah alamat ataupun

prefix dari file-file sementarta yang telah ditentukan, baik file untuk

server maupun klien host. Berikut gambar flowchart dari program

EditIP6.sh:

START

TMPE=/var/tmp/EDIT; TMPVar=/var/tmpVar=/var/named; Etc=/etc;

if [[ -f $TMPE/HOST ]] else

yes

no

END

ipL=`awk '{print $1}' $TMPE/ipLama`; blkgL=`awk '{print $1}' $TMPE/belakangLama` ipB=`awk '{print $1}' $TMPE/ipBaru ; blkgB=`awk '{print $1}' $TMPE/belakangBaru` pfxL=`awk '{print $1}' $TMPE/pfxLama`; pfxB=`awk '{print $1}' $TMPE/pfxBaru` host=`awk '{print $1}' $TMPE/HOST`; namaZ=`awk '{print $1}' $TMPE/ZONA`

ipL=`awk '{print $1}' $TMPE/ipLama`; dpnL=`awk '{print $1}' $TMPE/depanLama` ipB=`awk '{print $1}' $TMPE/ipBaru`; dpnB=`awk '{print $1}' $TMPE/depanBaru pfxL=`awk '{print $1}' $TMPE/pfxLama`; pfxB=`awk '{print $1}' $TMPE/pfxBaru` blkgL=`awk '{print $1}' $TMPE/belakangLama` blkgB=`awk '{print $1}' $TMPE/belakangBaru`

cariH=`awk '/'$host'/{print NR}' $Var/f-$namaZ`lok=$cariH; sed $lok"s/$ipL/$ipB/" $Var/f-"$namaZ" > $TMPE/f-"$namaZ"

…….…….

rm $TMPE/f-"$namaZ"; rm $TMPE/HOST; rm $TMPE/ZONA; rm $TMPE/ipLama;

…….rm $TMPE/"$namaZ"

root=`awk '/NS/{print NR}' $Var/named.root6`let x=$root+1 sed $x"s/$ipL/$ipB/" $Var/named.root6 > $TMPE/named.root6root6=`awk '/NS/{print NR}' $TMPE/named.root6`let y=$root6+2sed $y"s/$ipL/$ipB/" $TMPE/named.root6 > $Var/named.root6; rm $TMPE/named.root6

…….…….

rm $TMPE/DNS; rm $TMPE/ipLama; rm $TMPE/depanLama; …….

rm $TMPE/pfxBaru; rm $TMPE/"$namaD"

Gambar 3.14.Flowchart program EditIP6.sh ubah alamat/prefix

Proses menghapus (delete) sebuah nama server atau klien host, maka jalan

program yang berkaitan adalah:

1. Hapus (delete) nama server atau klien host, proses program-program yang

berkaitan adalah

Page 95: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

76

a. named6 delete, program ini berfungsi untuk mengecek nama file

server dan proses pengkondisian bentuk perintah input untuk

penghapusan berdasarkan nama server atau klien host yang telah

ditetapkan yaitu “-DNS” untuk menghapus nama server, sedangkan “-

H” dan“-Z” akan menghapus sebuah nama klien host pada zona server

yang berwewenang. Kemudian akan dilanjutkan pada proses program

selanjutnya. Berikut gambar flowchart dari program named6 untuk

menghapus nama server atau klien host:

START

case $isi1=”delete”

$isi1=delete, $isi2=-DNS or -H, $isi3=”nama server or host”, $isi4=-Z, $isi5= ”zonaserver”

END

yes

no

if [[ $isi 2 == help || $isi2 == "" ]]

elif[[ $isi2 == "-DNS" && $isi3 != "" ]]

yes

no

no

no

no

elif [[ $isi2 == "-H" && $isi3 != "" &&

$isi4 == -Z && $isi 5 != "" ]]

elseecho "File Server belum di buat !!!"; . $helpD

no

else

if [[ -d $TMPE ]]

no

yes

elif [[ -f $Var/f-"$isi3" ]]

yes

if [[ -d $TMPE && -f $Var/f-"$isi5" && "$isi3" ==

"$cekH" ]]

yes

echo "$isi3" > $TMPVar/DNS ./delete6.sh

if [[ -f $Var/f-"$isi3" ]] else

echo "Nama Domain Server: $isi3 Tidak Ditemukan !!!";

mkdir $TMPE; echo "$isi3" > $TMPVar/DNS ./delete6.sh

echo "Nama Domain Server: $isi3 Tidak Ditemukan !!!";

no

cekH=`awk '/'$isi3'/{print $1}' $TMPVar/$isi5`

elif [[ -f $Var/f-"$isi5" && "$isi3" == "$cekH" ]]

else

echo "Nama Host: $isi3 atau Nama Domain: $isi5 Tidak Ditemukan !!!";

echo "$isi3" > $TMPVar/host; echo "$isi5" > $TMPVar/zona ./delete6.sh

mkdir $TMPE; echo "$isi 3" > $TMPVar/host; echo "$isi 5" > $TMPVar/zona ./delete6.sh

yes

yes

no

yes

Gambar 3.15.Flowchart program named6 hapus server atau host

Page 96: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

77

b. delete6.sh, progam ini memanfaatkan bahasa pemrograman shell script

yang berfungsi untuk mencari nama file server dan menghapus isi file-

file dengan server yang telah ditentukan, jika perintah penghapusan

yang akan dilakukan untuk server. Sedangkan untuk penghapusan

untuk klien host akan dilakukan dengan mencari file-file server yang

dituju dan dilanjutkan dengan menghapus nama klien host yang telah

dipilih pada file-file server yang telah ditentukan. Berikut gambar

flowchart dari program delete6.sh:

START

Var=/var/named; Etc=/etcTMPE=/var/tmp/EDIT; TMPVar=/var/tmp

if [[ -f $TMPVar/DNS ]]

else

host=`awk '{print $1}' $TMPVar/host`; zona=`awk '{print $1}' $TMPVar/zona`

delH=`awk '/'$host'/{print NR}' $Var/f-$zona`; let H1=$delH; let H2=$H1+2sed "$H1,$H2"d $Var/f-"$zona" > $TMPE/f-"$zona"; mv $TMPE/f-"$zona" $Var

…. ……. …

rm $TMPVar/host; rm $TMPVar/zona

yes

no

END

domain=`awk '{print $1}' $TMPVar/DNS`delN=`awk '/'$domain'/{print NR}' $Etc/named.conf`; let N1=$delN; let N2=$N1+17sed "$N1,$N2"d $Etc/named.conf > $TMPE/named.conf;mv $TMPE/named.conf $Etc

…. ...…. ...

rm $Var/f-"$domain"; rm $Var/rev."$domain".arpa;rm $Var/rev."$domain".int rm $TMPVar/"$domain"; rm $TMPVar/DNS

Gambar 3.16.Flowchart program delete6.sh hapus server atau host

Proses menampilkan (view) sebuah daftar nama, daftar file server forward

atau reverse dan file zona. Proses ini cukup dilakukan dari program named6 tanpa

Page 97: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

78

memanfaatkan program-program lainnya dengan perintah pengkondisian

“named6 view”, “-Zone” akan menampilkan zona-zona yang terdapat dari file

named.conf. Untuk “named6 view”, “-File6” diikuti “Forward atau Reverse” akan

menampilkan file-file forward atau reverse berdasarkan nama server yang telah

dipilih pada direktori /var/named. Sedangkan “named6 view”, “-List6” akan

menampilkan file server dari direktori /var/tmp secara interaktif untuk

mempermudah saat akan melakukan proses pengubahan (edit) atau penghapusan

(delete). Berikut gambar flowchart dari program named6 untuk view:

$isi1= view, $isi2=Zone or -File6 or -List6, $isi3, $isi4

elif $isi2=Zone

elif$isi2 = -File6 &&

$isi3 != “” && $isi4 !=””

elif$isi2 = -List6 &&

$isi3 != ””

cek=`awk '$1 != 0 {print NR}' $Etc/named.conf`

awk 'NR == 13, NR == $cek {print}' $Etc/named.conf |more

tail -n 1000 $Var/rev."$isi3".arpa |

more

else $helpV

yesyes

yes

no

nono

if$isi2 == "" || $isi2

== "help"$helpV

no

Start

if [[ $isi4 = Forward ]]

if [[ -f $Var/f-"$isi3" ]]

echo "File Zona Forward DNS Tidak

Ditemukan !!!";

elif [[ $isi4 = Reverse ]]

if [[ -f $Var/rev."$isi3".arpa ]]

tail -n 1000 $Var/rev."$isi3".arpa |

more

echo "File Zona Reverse DNS Tidak

Ditemukan !!!";

else

else

yes

End

yes

yesno

no

if [[ -f $TMPVar/"$isi3" ]]

awk '/'$isi3'/{print "\t "$1,"\t\t" $2"/"$3}' $TMPVar/$isi3 cek=`awk '$1 != 0 {print NR}' $TMPVar/$isi3`

…....…....

Gambar 3.17.Flowchart program named6 untuk tampil server dan host

Page 98: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

79

nam

ed6

Edi

tNam

a6.s

h

end

$isi

1=ed

it $i

si2

=-D

NS

$isi

3, $

isi5

or

$isi

7

ffwdS

RV

.sh

reS

RV

.pl

reS

RV

.sh

nam

ed-

reso

lv.s

h

$isi

1=ad

d$i

si2

=-D

NS

$ip,

$pf

x, $

isi3

ffwdH

ST.

sh

reH

ST.

pl

reH

ST.

sh

$isi

1=ad

d$i

si2

= -H

$ip,

$pf

x, $

isi3

$isi

1=ed

it$i

si2

= -ip

6/pr

efix

$ipL

ama,

$pf

xLam

a $i

pBar

u $p

fxB

aru

cekI

PB

.pl

ReI

PL.

pl

ReI

PB

.pl

Edi

tIP6.

sh

$isi

1=de

lete

$isi

2=-D

NS

or -

H$i

si3,

$is

i5

$isi

1=vi

ew,

$isi

2= Z

one

or -F

ile6

or -L

ist6

$isi

3, $

isi4

dele

te6.

sh

elif

$isi

2=Zo

ne

fung

si u

bah(

)fu

ngsi

tam

bah(

)

elif

$isi

2 =

-File

6 &

&

$isi

3 !=

“” &

&

$isi

4 !=

””

elif

$isi

2 =

-Lis

t6 &

&

$isi

3 !=

””

cek=

`aw

k '$

1 !=

0

{prin

t NR

}' $E

tc/

nam

ed.c

onf

a

wk

'NR

==

13,

NR

==

$cek

{prin

t}'

$E

tc/n

amed

.con

f |m

ore

tail

-n 1

000

$V

ar/f-

"$is

i3"

| mo

rea

tau

tail

-n 1

000

$Var

/re

v."$

isi3

".ar

pa |

mor

e

aw

k '/'

$is

i3'/{

prin

t "\t

"$1,

"\t\t

" $2

"/"$

3}'

$TM

PV

ar/$

isi3

cek=

`aw

k '$

1 !=

0

{pri

nt N

R}'

$TM

PV

ar/

$is

i3`..

.

else

$hel

pV

fung

si h

apus

()

fung

si ta

mpi

l()

yes

yes

yes

yes

no no no$isi

2 ==

"" ||

$is

i2

== "

help

"$h

elpV

no

cekI

P.p

l

Gam

bar 3

.18.

Flo

wch

art P

rose

s Um

um P

rogr

am n

amed

6

Page 99: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

80

3.2. DESAIN

Tahap selanjutnya dari penelitian ini adalah perancangan program / tools

yang akan digunakan pada mesin. Perancangan ini meliputi perancangan

perangkat keras (hardware) dan perangkat lunak (software) yang akan dipakai.

3.2.1. Konfigurasi Jaringan

Berikut bentuk konfigurasi jaringan lokal untuk membangun sebuah server

DNS yang dapat menkonversi alamat IPv6 ke dalam nama ataupun sebaliknya,

dapat melakukan pencarian dalam sebuah zona (wilayah) berdasarkan nama

ataupun alamat IPv6.

Berikut gambar penempatan sebuah dan lingkup kerja server DNS dalam

sebuah jaringan lokal IPv6 yang memiliki dua buah klien memakai IPv6, dapat

dilihat seperti berikut:

Lingkup Kerja

Server DNS dalam Jaringan Lokal IPv6

internet

Client DNSIPv6

DNS ServerIPv6

Client DNSIPv6

hub/switch

Router IPv4/IPv6

Gambar 3.19.Implementasi Server DNS dengan IPv6 dalam Jaringan

Page 100: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

81

3.2.2. Konfigurasi Hardware dan Software

Dalam penelitian ini perancangan dan pembuatan tools, memerlukan

perangkat bantu. Pernagkat batnu teresebut adalah berupa perangkat keras

(hardware) dan perangkat lunak (software). Perangkat keras yang digunakan

adalah Personal Computer (PC) yang digunakan sebagai klien ataupun server

DNS.

PC yang digunakan sebagai klien adalah PC dengan spesifikasi perangkat

keras sembarang yang lebih tinggi dari komputer server dan memungkinkan

protokol IPv6 dapat terinstall, dengan memiliki satu buah NIC (Network Interface

Card) atau kartu jaringan. Sedangkan untuk server DNS akan menggunakan PC

dengan spesifikasi perangkat keras yang lebih rendah dari klien-kliennya dan

memiliki satu buah kartu jaringan.

Hal ini dikarenakan ssstem operasi serta program yang akan digunakan

oleh server DNS berbasis text-mode atau non-GUI, sehingga perangkat keras yang

diperlukan tidak terlalu tinggi dan dapat menghemat biaya. Berbeda dengan

perangkat keras klien yang lebih variatif dan lebih sering digunakan untuk

keperluan kantor, sehingga diperlukan spesifikasi yang mampu menyediakan

program-program keperluan kantor seperti program office, AutoCad, Visio Pro

dan program lainnya.

Rekomendasi perangkat keras yang digunakan untuk server DNS

diharapkan memiliki spesifikasi minimal :

Prosesor : Intel Pentium II 350MHz

Hardisk : 5Gbyte atau lebih

Page 101: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

82

RAM : 128 Mbyte atau lebih

NIC : Realtek8029(AS) atau Realtek8139 family

Rekomendasi perangkat keras yang digunakan untuk klien-klien

diharapkan memiliki spesifikasi minimal :

Prosesor : Intel Pentium III 750MHz atau lebih tinggi

Hardisk : 5 Gbyte atau lebih

RAM : 128 Mbyte atau lebih

NIC : Realtek8029(AS) atau Realtek8139 family

Konfigurasi perangkat lunak yang dipakai dalam pembuatan tools ini

adalah berupa :

Linux Fedora Core 2 berbasis text-mode sebagai sistem operasi yang

digunakan pada PC server DNS.

Microsoft Windows XP Professional SP1 dan Linux Fedora Core 2

digunakan sebagai sistem operasi yang digunakan oleh klien server DNS.

3.2.3. Bentuk Umum Program named6

Tools yang akan dibuat adalah tools yang memanfaatkan program named

sebagai servis utama untuk membuat sebuah komputer server DNS. Maka tools

yang akan dibuat akan merujuk pada bentuk file-file utama yang dibutuhkan

dalam format konversi IPv6. Karena tools ini dapat digunakan untuk membuat

dan mengkonfigurasi file-file server DNS IPv6 dan memanfaatkan servis dari

program named, maka tools ini akan disebut sebagai program named6.

Page 102: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

83

Karena program named6 ini akan membantu fungsi program named yang

berjalan pada sistem operasi Linux non-GUI dalam konfigurasi pembuatan file-

file utama dengan alamat IPv6. Sehingga bentuk umum program named6 ini akan

berbeda dari program named yang ada, baik dalam perintah, options dan objek

yang dimiliki.program named.

Dengan mempertimbangkan bentuk dan format file-file utama yang

mendukung IPv6, struktur penempatan file-file dan servis program named. Maka

bentuk option dan objek yang dimiliki oleh program named6 yang akan dibuat

adalah sebagai berikut :

named6 option := { command | help } := { add | edit | delete | view } command := { start | restart | stop | status | help }

OPTION yang dimiliki oleh perintah named6 adalah pilihan yang tepat

digunakan tools dalam kecepatan dan efisiensi pemakaian.

3.2.3.1. named6 start

Perintah ini digunakan untuk menjalankan servis program named untuk

konversi nama ke alamat maupun alamat ke nama. Dimana, perintah ini

sebenarnya hanya menempel dan merpsingkat perintah menjalakan servis Linux,

yaitu service named start. Maka bentuk perintah tersebut akan menjadi seperti

berikut:

named6 start

Page 103: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

84

3.2.3.2. named6 restart

Perintah ini digunakan untuk mengulang perintah menjalakan servis dari

keadaan status berhenti ke keadaan berjalan atau sebaliknya, apabila terjadi

perubahan pada konfigurasi atau file-file utama DNS. Maka bentuk perintah

sebagai berikut :

named6 restart 3.2.3.3. named6 stop

Perintah ini digunakan untuk menhentikan servis program named dari

status berjalan menjadi status berhenti. Maka bentuk perintah adalah sebagai

berikut:

named6 restart 3.2.3.4. named6 status

Perintah ini digunakan untuk mengetahui keadaan status servis program

named, apakah status servis sedanag berjalan atau sedang berhenti. Maka bentuk

perintah adalah sebagai berikut:

named6 status

3.2.3.5. named6 help

Perintah ini digunakan untuk menampilkan pesan bantuan dan dapat

berfungsi juga bila terjadi kesalahan input atau perintah. Maka bentuk perintah

umum untuk memanggil perintah bantuan adalah sebagai berikut:

Page 104: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

85

named6 help

3.2.3.6. named6 add

Perintah named6 add ini digunakan untuk membuat file-file utama yang

dibutuhkan untuk mengaktifkan servis DNS pada Linux. Dengan pertimbangan

cara kerja sebuah DNS adalah client-server, perintah ini akan dipecah menjadi

dua bentuk perintah. Perintah named6 add pertama akan digunakan untuk

membuat sebuah nama server domain dan alamat IPv6 server / prefix. Bagian

perintah berikutnya untuk menambahkan nama sebuah host yang terdapat pada

sebuah domain. Perintah yang dapat digunakan pada named6 add adalah sebagai

berikut :

a. named6 add [–DNS] [–ip6/prefix]

named6 add –DNS mobs6.edu –ip6 2002:200:abcd:10a/64

b. named6 add [–H[ost]] [–ip6/prefix] [–Z[one]]

named6 add –H www –ip6 2002:200:abcd:10a/64 –Z mobs6.edu

3.2.3.7. named6 edit

Perintah ini digunakan untuk mengedit nama dan alamat IPv6 untuk server

atau host pada file-file utama. Sehingga perintah named6 edit ini akan dibagi

menjadi empat bentuk perintah. Perintah pertama akan digunakan perintah untuk

mengganti nama server, perintah kedua digunakan untuk mengganti nama host,

perintah ketiga digunakan untuk menggantikan alamat IPv6/Prefix server dan

Page 105: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

86

perintah keempat digunakan untuk menggantikan alamat IPv6/Prefix host.

Perintah yang dapat digunakan pada named6 edit adalah sebagai berikut :

a. named6 edit [–DNS] [–NN NewName]

named6 edit –DNS mobs6.edu –NN mobs6.co.id

b. named6 edit [–H[ost]] [–NN NewName] [–Z[ona]]

named6 edit –H www –NN ftp –Z mobs6.edu

c. named6 edit [–ip6/prefix] [–Nip6/prefix] [–DNS]

named6 edit –ip6 2002::10a/64 –Nip6/prefix f303::10/96 –DNS mobs6.edu

d. named6 edit [–ip6/prefix] [–Nip6/prefix] [–H[ost]] [–Z[one]]

named6 edit –ip6/prefix 2002::10a/64 –Nip6/prefix f303::10/96 –H www –Z mobs6.edu 3.2.3.8. named6 delete

Perintah ini digunakan untuk menghapus file-file server atau nama host

dengan meggunakan kata kunci nama server atau host. Dalam perintah named6

delete ini dibagi menjadi dua bagian Perintah yang dapat digunakan pada named6

delete adalah sebagai berikut :

a. named6 delete [–DNS]

named6 delete –DNS mobs6.edu

b. named6 delete [–H[ost]] [–Z[ona]]

named6 delete –H www –Z mobs6.edu

Page 106: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

87

3.2.3.9. named6 view

Perintah ini digunakan untuk menampilkan file forward atau reverse, file

named.conf yang berisikan zona, dan file server yang berisikan alamat IPv6 dan

prefix untuk server dan klien. Dalam perintah named6 view dibagi menjadi tiga

bentuk perintah. Perintah yang dapat digunakan pada named6 delete adalah

sebagai berikut :

a. named6 view [Zone]

named6 view Zone

b . named6 view [–File6] { Forward | Reverse }

named6 view –File6 mobs6.edu Forward

c. named6 view [–List6]

named6 view –List6 mobs6.edu

Page 107: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

BAB IV

IMPLEMENTASI PROGRAM

Implementasi merupakan tahap pengkodean, perancangan dan penerapan

pada lingkungan yang tepat. Pada bab sebelumnya telah dijelaskan bagaimana

perancangan program untuk membentuk format file-file utama dengan IPv6 yang

dibutuhkan server DNS secara otomatis. Pada bab ini dijelaskan mengenai

implementasi beserta analisa program.

4.1. Lingkungan Implementasi

Pada tahap implementasi, pengembang mengetahui dan mendefinisikan

lingkungan yang hendak dipakai. Lingkungan-lingkungan yang mendukung antara

lain adalah lingkungan perangkat keras dan perangkat lunak.

4.1.1. Lingkungan Perangkat Lunak

Perangkat lunak yang dipakai didalam implementasi ini adalah sebagai

berikut:

a. Sistem Operasi Server : Linux Fedora Core 2

b. Sistem Operasi klien : Linux Fedora Core 2 dan Microsoft

Windows XP Professional SP1

c. Bahasa pemrograman : Bash dan Perl

88

Page 108: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

BAB V

ANALISA HASIL

5.1. Analisa Hasil Perangkat Lunak

Hasil proses program named6 ini dilakukan pada lapisan aplikasi melalui

lapisan network, dimana proses program named6 yang terjadi adalah melakukan

konversi alamat IPv6 ke nama maupun sebaliknya yang dilakukan dari lapisan

aplikasi. Sehingga komputer-komputer klien yang berada dalam wewenang server

DNS yang dibentuk dapat melakukan komunikasi dengan perintah ping6 dengan

nama yang menggunakan protokol alamat IPv6 dan menerima jawaban dari server

DNS.

Proses program named6 sendiri akan melalui beberapa tahapan untuk

mencapai hasil yang diinginkan, antara lain:

• Komputer yang disediakan untuk dijadikan server DNS dan klien-

kliennya telah terkonfigurasi dengan alamat IPv6 statis dan telah dapat

melakukan komunikasi dengan perintah ping6.

• Administrator menjalankan program named6 serta memberikan nama

server DNS dan alamat IPv6/prefix komputer sesuai dengan alamat

IPv6 statis yang diberikan pada kartu jaringan komputer server, agar

dapat membuat file-file utama berbasis alamat IPv6 pada sebuah

komputer yang akan difungsikan sebagai server DNS.

• Administrator memberikan nama dan alamat IPv6/prefix yang dimiliki

klien host yang diarahkan ke nama server DNS dengan program

140

Page 109: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

141

named6 agar klien-klien yang ada dapat dikenali pada zona (wilayah)

domain server yang berwewenang atas penamaan yang ada

• Administrator menjalakan servis program named6 dengan perintah

“named6 start” dan mendapatkan pesan “ok” yang berarti servis

berjalan tanpa eror.

• Administrator melakukan beberapa perintah umum dari computer

server DNS seperti ping6, dig dan host untuk melakukan pengecekan

server DNS telah dapat menjawab semua query dan servis berjalan

dengan baik dalam jaringan.

Selain pengecekan dari komputer server yang telah berjalan baik, tahap

selanjutnya yang harus dilakukan adalah pengecekan dari komputer klien:

• Administrator melakukan pengecekan penggunaan nama tersebut

dengan mennjalankan servis httpd pada komputer server DNS, untuk

memanfaatkan server DNS sebagai sebuah Web server untuk

melanjutkan pengecekan dengan browser.

• Administrator juga melakukan pengecekan dari klien dengan perintah

ping6, dig, host dan pemanggilan nama dari browser klien. Untuk

mengetahui server DNS juga telah dapat melayani port 80 untuk

sebuah layanan web.

Setelah pengecekan telah berjalan baik, program named6 juga memiliki

fasilitas untuk mengedit nama atau alamat IPv6/prefix untuk sebuah server

Page 110: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

142

maupun klien dengan perintah “named6 edit”. Disarankan sebelum menggunakan

fasilitas edit, sebaiknya servis yang sedang berjalan dihentikan terlebih dahulu.

Apabila pengeditan telah selesai, maka servis dapat dijalankan dan dilakukan

pengecekan kembali dari komputer server ataupun klien. Hal ini dilakukan untuk

menghindari terjadinya error (kesalahan).

Salah satu fasilitas yang dimiliki dari program named6 ini adalah

menghapus (delete) nama klien atau server dengan menggunakan perintah

“named6 delete”. Untuk penggunaan fasilitas ini sebaiknya servis yang sedang

berjalan dihentikan terlebih dahulu. Hal ini dilakukan untuk menghindari

terjadinya kesalahan.

Fasilitas berikutnya yang dimiliki oleh program named6 ini adalah fasilitas

untuk menampilkan (view) dengan perintah “named6 view”, mengingat program

named6 yang ada berjalan pada sistem operasi Linux yang tidak menggunakan

Graphical User Interface. Fasilitas ini dapat menampilkan isi dari zona, file dan

daftar nama server berserta klien yang dimiliki dengan output berupa teks dan

tampilan interaktif.

5.2. Analisa Tools Pengembang

Dalam pembuatan program named6, penulis menggunakan dua model

bahasa pemrograman, yaitu pemrograman Bash dan Perl. Pemilihan kedua bahasa

tersebut dikarenakan, sebagai berikut:

1. Dengan pemanfaatan sistem operasi Linux berbasis text-mode, maka

masalah untuk jumlah inputan antara kedua bahasa pemrograman memiliki

Page 111: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

143

perbedaan, sehingga penggunaan bahasa pemrograman shell script yang

dapat menampung inputan lebih banyak akan dimanfaatkan sebagai proses

program pertama yaitu program named6.

2. Pemrograman bash memiliki perintah-perintah yang mudah dimengerti,

algoritma yang dimiliki sangat sederhana dan dapat dikembangkan untuk

menambah fasilitas–fasilitas program bawaan yang terdapat dari Linux.

3. Bash memiliki beberapa model perintah untuk seleksi teks (regular

expression), dimana masing-masing perintah penyeleksi tersebut memiliki

kemampuan yang berbeda-beda.

4. Perl merupakan program yang dikembangkan untuk dapat mendukung

bentuk-bentuk perintah yang dimiliki pada bash dan sintak-sintak yang

dimiliki Perl menyerupai bahasa pemrograman C++, sehingga untuk

memadukan kedua model bahasa pemrograman tersebut tidak rumit.

5. Perl berfungsi untuk mengatasi keterbatasan perintah-perintah bash. Sintak

dan algoritma yang dimiliki perl mudah dipahami.

6. Perl memiliki serangkaian perintah-perintah yang sangat berguna bila

digunakan pada sistem operasi Linux.

7. Kedua bahasa tersebut memiliki kemampuan untuk melakukan

pencocokan pola atau regular expresion (REGEX) dan edua bahasa

pemrograman tersebut berjalan di sistem operasi Linux dan terdapat di

dalam semua distro Linux.

Page 112: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

144

5.3. Analisa File Utama dengan Format IPv6

File-file yang dibentuk untuk mendukung format IPv6 pada program

named berupa teks, seperti file forward, reverse, named.root6 dan lainnya.

Sehingga ukuran file-file tersebut tidak terlalu besar dan dapat mengurangi

penggunaan kapasitas harddisk. Demikian juga file-file sistem yang

dimanfaatkankan seperti file named.conf, resolv.conf dan bindv6only.

5.4. Kelebihan dan Kekurangan

5.4.1. Kelebihan Program

• Program named6 ini digunakan sebagai program tambahan atau program

bantuan untuk program named dari BIND yang telah ada pada saat sistem

operasi Linux terinstall, baik dengan text-mode atau GUI (Grapichal User

Interface).

• Dengan beberapa bentuk perintah dan inputan yang sederhana, program

named6 dapat membuat file-file utama yang dibutuhkan secara otomatis

dalam format IPv6, sehingga program named yang ada dapat

mengaktifkan sebuah komputer server DNS berbasis protokol IPv6 dengan

cepat.

• Dijalankan pada sistem operasi Linux berbasis text-mode, sehingga

kebutuhan hardware yang diperlukan tidak terlalu besar dan dapat

mengkompres biaya.

• Program ini masih dapat dikembangkan untuk sebuah server DNS berbasis

IPv6 dengan aplikasi model GUI (Graphical User Interface) atau berbasis

Page 113: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

145

Web, karena program named6 saat ini masih dijalankan dalam sistem

operasi Linux berbasis text-mode.

5.4.2. Kekurangan Program

• Program ini dibuat pada masa transsisi sehingga program ini masih banyak

sekali kekurangan yang dimiliki, dikarenakan status penerapan protokol

IPv6 yang sampai saat ini belum ada batasan perkembangannya. Bila suatu

waktu terjadi perubahan dari program BIND-named maka program

named6 yang dibuat dengan memanfaatkan servis program BIND-named

juga harus dilakukan perubahan sesuai dengan perubahan yang terjadi

pada servis program BIND-named tersebut.

• Proses dan kode program masih terlalu panjang (kurang sederhana) untuk

digunakan, karena penggunaan dua bahasa pemrograman dan penggunaan

sistem operasi berbasis text-mode.

• Penggunaan prefix yang masih dibatasi.

• Konversi pencarian dari alamat ke nama dengan format bitsring tidak

sertakan, karena belum adanya kepastian penerapan yang akan dilakukan

secara global.

• Implementasi masih dilakukan dalam lingkup jaringan lokal.

• Implementasi belum dapat dilakukan dengan mekanisme yang

menghubungkan dua buah jaringan IPv6 melalui jaringan IPv4

(tunneling). Sehingga belum dapat melakukan koneksi keluar (internet)

dengan backbone6.

Page 114: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

89

4.1.2. Lingkungan Perangkat Keras

Perangkat keras yang mendukung dalam implementasi ini dibagi menjadi

dua bagian, yaitu perangkat keras untuk server DNS dan perangkat keras untuk

client. Adapun perangkat yang digunakan sebagai server DNS adalah sebagai

berikut:

a. Komputer Pentium II 350MHz atau lebih tinggi.

b. Memori minimal 128 MB

c. Hardisk minimal 2.5 GB.

d. VGA card 16 MB

e. NIC satu buah atau lebih

f. Alat input berupa keyboard

g. Alat output berupa monitor

Sedangkan kebutuhan perangkat keras yang digunakan untuk client adalah

sebagai berikut:

a. Komputer Pentium III 750MHz atau lebih tinggi.

b. Memori minimal 128 MB

c. Hardisk minimal 5 GB atau lebih.

d. VGA card 32 MB atau lebih

e. NIC satu buah

f. Alat input berupa keyboard

g. Alat output berupa monitor dengan resolusi 800 x 600 atau lebih.

Page 115: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

90

4.2. Karakteristik Pengguna

Sistem ini hanya dituijukan kepada administrator, sehingga hanya

administrator saja yang dapat menggunakan program ini. Adapun syarat-syarat

yang harus dimiliki oleh administrator yaitu:

a. Memahami konsep jaringan secara umum

b. Menguasai jaringan dengan protokol IPv4 maupun IPv6

c. Menguasai konsep kerja aplikasi BIND yang berada pada Linux

d. Memahami format penulisan dan model pencarian yang digunakan

program named dengan IPv6

4.3. Implementasi Program named6

Dalam implementasi program ini akan dijelaskan kegunaan dari masing-

masing fungsi dan alur jalan program ke program untuk membuat file-file utama

yang dibutuhkan sebuah server DNS. Dalam bab perancangan telah disebutkan

bahwa program ini memanfaatkan servis dari program named default (bawaan)

dalam sistem operasi Linux, maka program ini hanya merupakan program bantu

atau tambahan untuk program named yang telah ada. Karena protokol yang

digunakan berbasis protokol IPv6, maka program ini disebut dengan program

named6.

4.3.1. Inisialisasi Lokasi Direktori

Untuk menentukan lokasi direktori, maka inisialisasi alamat dan nama

dibutuhkan untuk mempermudah dan mempersingkat penulisan lokasi

Page 116: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

91

Etc=/etc; Var=/var/named TMPS=/var/tmp/SERVER; TMPH=/var/tmp/HOST TMPE=/var/tmp/EDIT; TMPVar=/var/tmp

Inisialisasi alamat ini hanya tujukan untuk menentukan dimana proses

program akan dijalankan atau dimana file-file utama akan diletakkan. Semua

seting file dan konfigurasi untuk DNS nantinya akan menunjuk ke arah direktori-

direktori file-file default dari program named yang ada. Semua hasil file yang

dibentuk akan diletakkan pada lokasi Etc dan Var, dimana lokasi Etc menunjuk

pada direktori /etc dan lokasi Var menunjuk pada.direktori /var/named. Sedangkan

untuk semua proses file temporary (sementara) dan direktori akan dialokasikan

pada beberapa lokasi, yaitu TMPVar menunjuk pada direktori /var/tmp, TMPS

menunjuk pada direktori /var/tmp/SERVER, TMPH menunjuk pada direktori

/var/tmp/HOST, TMPE menunjuk pada direktori /var/tmp/EDIT.

4.3.2. Inisialisasi Passing Parameter

Inisialisasi passing parameter digunakan untuk mendefinisikan nama variable isi1

sampai dengan isi9 dari keyboard. Variabel-variabel yang dibuat akan berfungsi

sebagai kondisi input yang telah ditetapkan. Inisialisasi ini akan berguna untuk

tracking error pada saat input variabel ke program.

isi1=$1; isi2=$2; isi3=$3; isi4=$4; isi5=$5 isi6=$6; isi7=$7; isi8=$8; isi9=$9 4.3.3. Proses Utama Program named6

Dalam proses program named6 pertama kali adalah proses dari menu

utama yang akan dilakukan dengan beberapa kondisi pilihan untuk input variabel

Page 117: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

92

$isi1 dari keyboard, menggunakan perintah kondisi case. Apabila perintah

terpenuhi maka proses yang akan dilanjutkan adalah mengeksekusi sebuah fungsi

yang telah ditentukan, kemudian akan dilanjutkan ke dalam proses kondisi yang

berada di dalam fungsi-fungsi yang dipilih. Berikut perintah kondisi case yang ada

dalam program named6 :

case $isi1 in add) tambah;; edit) ubah;; delete) hapus;; "view") tampil;; help) bantu;; "") bantu;; start) mulai;; restart) ulang;;

stop) berhenti;; status) stat;; esac

4.3.4. Proses Fungsi bantu dan Variabel help

Fungsi bantu berfungsi untuk memanggil dan menampilkan bantuan

penggunaan perintah program yang terletak pada direktori /etc/dns6/help untuk

setiap option penggunaan named6. Sedangkan untuk variabel help berfungsi untuk

menampilkan bentuk perintah dan sintak-sintak untuk menggunakan program

named6, bila terjadi kesalahan input atau sintak perintah. Berikut adalah variabel-

variabel dan fungsi bantu yang disediakan untuk pemanggilan bantuan yang

dimiliki oleh program named6 :

help=/etc/dns6/help/hlp_bantu6; helpA=/etc/dns6/help/hlp_add helpS=/etc/dns6/help/hlp_addS; helpH=/etc/dns6/help/hlp_addH helpE=/etc/dns6/help/hlp_edit; helpES=/etc/dns6/help/hlp_eSRV helpED=/etc/dns6/help/hlp_editD; helpEH=/etc/dns6/help/hlp_editH helpD=/etc/dns6/help/hlp_del; helpV=/etc/dns6/help/hlp_view

Untuk penggunaan variabel help akan digunakan untuk menangani

kesalahan input atau bentuk sintak untuk variable $isi1 yang hanya dapat

berisikan opsi add, edit, delete, view, start, restart, stop dan status. Perintah

pemilihan dengan kondisi case, sebagai berikut:

Page 118: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

93

bantu() { if [[ $isi1 == help || $isi1 == "" ]] then . $help ... else echo "Perhatikan format penulisan !!!" fi }

a. Variabel help dalam fungsi tambah

Dalam fungsi tambah terdapat beberapa variabel help yang berfungsi untuk

menangani beberapa inputan dalam fungsi tambah. Input-input yang

mendapatkan penanganan kesalahan dalam fungsi tambah akan diberikan

variabel-variabel bantu seperti helpA, helpS dan helpH. Berikut letak dan

pemanggilan variabel-variabel help yang diberikan pada potongan program

dalam fungsi tambah :

tambah() { if [[ $isi2 == help || $isi2 == "" ]] then $helpA elif [[ $isi2 == -DNS && $isi3 != "" && $isi4 == -ip6/prefix && $isi5 != "" ]] ... ... elif [[ $isi2 == -H && $isi3 != "" && $isi4 == -ip6/prefix && $isi5 != "" && $isi6 = -Z && $isi7 != "" ]] ... ... else echo; echo "Perhatikan Format Penulisan !!!"; echo; $helpS; $helpH exit 0 fi }

b. Variabel help dalam fungsi ubah

Dalam fungsi ubah terdapat beberapa variabel help yang memiliki fungsi

untuk menangani beberapa inputan dalam fungsi ubah. Input-input perintah

yang tidak sesuai dengan dengan isi yang telah ditentukan akan diberikan

Page 119: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

94

penanganan kesalahan dalam fungsi ubah akan diberikan variabel-variabel

bantu seperti helpE, helpED dan helpEH. Berikut letak dan pemanggilan

variabel-variabel help yang diberikan pada fungsi ubah :

ubah() { if [[ $isi2 == help || $isi2 == "" ]] then $helpE elif [[ $isi2 == -DNS && $isi3 != "" && $isi4 == -NN && $isi5 != "" ]] then #-------------- EDIT NAMA SERVER if [[ -f $Var/f-"$isi3" && -d $TMPE ]] ... ... else echo; echo "Nama Domain Sever: $isi3, Tidak Ditemukan !!!"; . $helpED exit 0 fi elif [[ $isi2 == -H && $isi3 != "" && $isi4 == -NN && $isi5 != "" && $isi6 == -Z &&

$isi7 != "" ]] then #-------------- EDIT NAMA HOST if [[ -f $Var/f-"$isi7" && -d $TMPE ]] ... ... else echo; echo "File DNS Tidak Ditemukan !!!"; . $helpEH exit 0 fi elif [[ $isi2 == -ip6/prefix && $isi3 != "" && $isi4 == -Nip6/prefix && $isi5 != "" &&

$isi6 == -DNS && $isi7 != "" ]] then #-------------- EDIT IP SERVER if [[ -f $Var/f-"$isi7" && -d $TMPE ]] ... else echo; echo "Nama Domain : $isi7 Tidak Ditemukan !!!"; $helpED fi elif [[ $isi2 == -ip6/prefix && $isi3 != "" && $isi4 == -Nip6/prefix && $isi5 != "" &&

$isi6 == -H && $isi7 != "" && $isi8 == -Z && $isi9 != "" ]] then #-------------- EDIT IP HOST if [[ -f $Var/f-"$isi9" && -d $TMPE ]] ... else echo; echo "Nama Domain6 : $isi9 Tidak Ditemukan !!!"; $helpEH fi else echo; echo "Perhatikan Format Penulisan !!!" $helpE echo "Gunakan command:= named6 view untuk cek list Nama & IP";

Page 120: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

95

fi }

c. Variabel help dalam fungsi tampil

Dalam fungsi tampil terdapat beberapa variabel help yang berfungsi untuk

menangani beberapa inputan dan sintak perintah dalam fungsi tampil. Input-

input yang mendapatkan penanganan kesalahan dalam fungsi tampil akan

diberikan variabel bantu helpV. Berikut letak dan pemanggilan variabel bantu

yang diberikan pada fungsi tampil :

tampil() { if [[ $isi2 == "" || $isi2 == "help" ]] then . $helpV elif [[ $isi2 == Zone && $isi3 == "" ]] ... elif [[ $isi2 = -File6 && $isi3 != "" && $isi4 != "" ]] ... elif [[ $isi2 = -List6 && $isi3 != "" ]] ... else . $helpV fi }

d. Variabel help dalam fungsi hapus

Dalam fungsi hapus terdapat beberapa variabel help yang berfungsi untuk

menangani beberapa inputan dalam fungsi hapus. Input-input yang

mendapatkan penanganan kesalahan dalam fungsi hapus akan diberikan

variabel bantu . helpD. Berikut letak dan pemanggilan variabel bantu yang

diberikan pada fungsi hapus :

hapus() { if [[ $isi2 == "" || $isi2 == "help" ]] then . $helpD elif [[ $isi2 == -DNS && $isi3 != "" ]]

Page 121: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

96

... elif [[ $isi2 == -H && $isi3 != "" && $isi4 == -Z && $isi5 != "" ]] ... else echo; echo "File Server belum di buat !!!"; echo . $helpD fi }

4.4. Proses Tambah Nama Server dan Host

Proses menambah atau membuat file-file utama untuk nama sebuah server

dan klien host DNS yang beralamatkan IPv6 akan dilakukan beberapa proses

program untuk pengecekan nama, format alamat IPv6, prefix dan pembuatan file-

file sementara baik server ataupun klien host. Program yang akan diproses untuk

penambahan server akan meliputi, yaitu program named6, cekIP.pl, ffwdSRV.sh,

reSRV.pl, reSRV.sh dan named-resolv.sh. Sedangkan proses untuk menambahkan

klien host akan meliputi program named6, cekIP.pl, ffwdHST.sh, reHST.pl dan

reHST.sh.

4.4.1. Proses Tambah Server

Fungsi tambah dari program named6 adalah fungsi untuk membuat atau

menambah penulisan untuk file-file server atau klien host dengan alamat IPv6 dan

sistem ke dalam direktori-direktori default (bawaan) yang digunakan oleh

program named pada saat menjalankan servis, yaitu pada direktori /etc, /var/tmp

dan /var/named. Direktori /var/tmp/SERVER akan digunakan untuk menampung

file-file sementara server saat dilakukan penambahan atau pembuatan, sampai

keseluruhan semua proses file dari program-program yang terkait terbuat. Bila

terjadi kesalahan di tengah-tengah proses, maka file-file pada direktori sementara

Page 122: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

97

akan langsung terhapus. Pemakaian file sementara ini digunakan sebagai

jembatan dan passing parameter dalam penggunaan 2 model bahasa

pemrograman yaitu bash dan perl.

Proses fungsi tambah ini akan meliputi beberapa proses program yang

akan dilalui agar dapat membuat file-file utama server, yaitu program cekIP.pl,

ffwdSRV.sh, reSRV.pl, reSRV.sh dan named-resolv.sh.

Masing-masing program tersebut akan memiliki fungsi yang berbeda-beda

dalam proses pembuatan file-file utama. Fungsi tambah memiliki model kondisi

input atau sintak tambah yang akan dibedakan menjadi dua jenis model, seperti

berikut:

Kondisi atau sintak menambah server, yaitu: $isi2 == -DNS &&

$isi3!= "" && $isi4 == -ip6/prefix && $isi5 != "".

Kondisi atau sintak menambah host, yaitu: $isi2 == -H && $isi3!=

"" && $isi4 == -ip6/prefix && $isi5 != "" && $isi6 = -Z

&& $isi7 != "", kondisi ini digunakan menambahkan nama host dan

alamat IPv6 ke dalam sebuah zona server yang akan dituju.

Kondisi input diatas akan berfungsi untuk membedakan proses

penambahan atau pembuatan file untuk server dan host, sehingga proses program

yang akan dilalui untuk server dan host pun akan berbeda.

Berikut potongan kode program dari program named6 untuk membuat

atau menambahkan nama server DNS dari fungsi tambah adalah sebagai berikut:

elif [[ $isi2 == -DNS && $isi3 != "" && $isi4 == -ip6/prefix && $isi5 != "" ]] then if [[ -d $TMPS ]] #-----------Tambah Nama Server Baru then …..lanjutan di halaman berikutnya if [[ -f $Var/f-"$isi3" ]]

Page 123: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

98

then echo; echo "Nama Domain $isi3 Sudah Ada !!!"; echo else echo "$isi5" > $TMPS/ip; sed 's/[/]/ /' $TMPS/ip > $TMPS/ipku ip=`awk '{print $1}' $TMPS/ipku`; pfx=`awk '{print $2}' $TMPS/ipku`; echo "$isi3" > $TMPS/namaS; echo "$ip" > $TMPS/ipS;

echo "$pfx" > $TMPS/pfxS if [[ $ip != "" && $pfx != "" ]] then echo "$isi3 $ip $pfx" > $TMPVar/"$isi3"; echo "1" > /proc/sys/net/ipv6/bindv6only rm $TMPS/ip; rm $TMPS/ipku ./cekIP.pl $ip $pfx $isi3 exit 0 fi exit 0 fi else [[ -s $Etc/resolv.conf ]] mkdir $TMPS; mv $Etc/named.conf $Etc/named.conf~ echo "$isi5" > $TMPS/ip; sed 's/[/]/ /' $TMPS/ip > $TMPS/ipku ip=`awk '{print $1}' $TMPS/ipku`; pfx=`awk '{print $2}' $TMPS/ipku`; echo "$isi3" > $TMPS/namaS; echo "$ip" > $TMPS/ipS; echo "$pfx" > $TMPS/pfxS echo "1" > /proc/sys/net/ipv6/bindv6only; rm $TMPS/ip; rm $TMPS/ipku ./cekIP.pl $ip $pfx $isi3 exit 0 fi

Dari potongan program diatas dapat dilihat untuk menambahkan atau

membuat server diawal penggunaan program named6 akan dilakukan bila

memenuhi kondisi atau sintak yang telah ditentukan, berikut: elif [[ isi2 == -DNS &&

$isi3 != "" && $isi4 == -ip6/prefix && $isi5 != "" ]]. Apabila salah satu kondsi tidak

terpenuhi maka program langsung mengeksekusi perintah else yang akan

menampilkan pesan kesalahan “Perhatikan Format Penulisan !!!" dan memproses

variabel $helpS untuk menampilkan bantuan penggunaan sintak atau perintah

program.

Apabila program dijalankan untuk pertama kali, maka proses yang

dilakukan adalah pengecekan direktori $TMPS sudah terbuat atau tidak, dengan

perintah pengecekan if [[ –d $TMPS ]]. Jika direktori belum ada, maka akan

Page 124: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

99

dilanjutkan pada pengecekan kondisi sebuah ukuran file resolv.conf yang berada

di direktori /etc, apabila file resolv.conf berukuran 0 bytes maka program akan

membuatkan direktori ke $TMPS.

Tetapi, jika program pernah digunakan maka dari proses pengecekan

direktori $TMPS akan dilanjutkan ke proses pengecekan nama file server sudah

terbuat atau tidak dengan perintah if [[ -f $Var/f-"$isi3" ]].

Proses selanjutnya adalah memecah alamat IPv6 dengan prefix dari file ip

yang berisikan, contoh: “ff3:200::20/64”, dan menghilangkan karakter “/” yang

mengapit alamat dengan prefix dengan menggunakan perintah sed 's/[/]/ /' $TMPS/ip

> $TMPS/ipku, setelah itu dibuatkan file ipku yang berisi “ff3:200::20 64”. Dari file

ipku akan dibuat variabel ip dan pfx dengan memanfaatkan perintah ipS=`awk '{print

$1}' $TMPS/ipku` dan pfx=awk '{print $2}' $TMPS/ipku`. Untuk variabel $isi3 akan

berisikan nama server, contoh: “learning.edu”

Isi dari variabel ip, pfx dan isi3 akan dimasukkan ke dalam file yang

dinamakan sama dengan isi dari $isi3 yang dilokasikan pada direktori /tmp/var,

dengan perintah echo "$isi3 $ip $pfx" > $TMPVar/"$isi3". Selanjutnya program akan

mengaktifkan module BIND dengan menggantikan isi file bindv6only yang

berstatus “0” menjadi “1”, dengan perintah echo "1" > /proc/sys/net/ipv6/bindv6only.

Proses selanjutnya adalah pemanggilan program cekIP.pl yang dibuat

dengan bahasa pemrograman Perl. Proses program cekIP.pl akan disertai input dari

variabel $ip $pfx $isi3 untuk pengecekan format alamat IPv6 dan prefix, dengan

perintah ./cekIP.pl $ip $pfx $isi3. Fungsi program digunakan untuk melakukan

pengecekan input format alamat IPv6, batasan prefix, membuat file-file sementara

Page 125: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

100

jika pengecekan terpenuhi dan menghapus file-file sementara jika terjadi

kesalahan.

4.4.1.1. Proses Program cekIP.pl

Berikut adalah potongan program cekIP.pl untuk menerima baris masukan

standar input dari program named6 yang berasal dari fungsi tambah(), seperti

berikut:

#!/usr/bin/perl $ip = $ARGV[0]; $prfx = $ARGV[1]; $nama = $ARGV[2]; $zona = $ARGV[3]; $DIRS ="/var/tmp/SERVER"; $DIRH ="/var/tmp/HOST"; sub hapusS { system("rm $DIRS/namaS"); system("rm $DIRS/ipS"); system("rm $DIRS/pfxS"); } sub hapusH { system("rm $DIRH/namaH"); system("rm $DIRH/ipH"); system("rm $DIRH/pfxH"); system("rm $DIRH/zonaH"); } @prefix = (16, 32, 48, 64, 80, 96, 112);

Potongan program di atas menjelaskan proses untuk menerima input dari

program named6 akan dilakukan oleh variabel $ARGV[0] yang di inisialisasi

dengan $ip untuk alamat IPv6, $ARGV[1] yang di inisialisasi dengan $prfx untuk

prefix, variabel $ARGV[2] diinisialisasi dengan $nama untuk nama server atau

host, dan variable $ARGV[3] atau $zona akan dimanfaatkan untuk membedakan

input untuk penambahan sebuah server atau host. Inisialisasi direktori server dan

host akan dibedakan pada variabel $DIRS dan $DIRH untuk menangani file-file

sementara. Untuk fungsi sub hapusS dan sub hapusH bertugas untuk menghapus

file-file sementara saat terjadi kesalahan input oleh format alamat IPv6 dan prefix,

Page 126: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

101

baik untuk server maupun host. Untuk batasan pengunaan prefix akan di

inisialisasi variabel @prefix dengan tipe data array.

if ($ip !~ /[G-Z]|[g-z]/ && $ip !~ /^(?>(.*?){1}):/ && $ip !~ /(?>(.*?){1}):::/ && $ip !~ /(?>(\.*?\.){1})/)

Potongan kode program diatas adalah beberapa kondisi pengecekan

kesalahan pertama kali pada program cekIP.pl dengan menggunakan regular

expression untuk pengecekan bentuk format alamat IPv6 dari input variabel $ip.

Untuk kondisi pertama akan mengecek isi dari $ip memiliki huruf antara G-Z atau

g-z. Kondisi kedua mengecek isi $ip di awali dengan “:”. Kondisi ketiga akan

mengecek dalam isi $ip memiliki bentuk “:::”. Kondisi keempat akan mengecek

dalam isi $ip memiliki bentuk “.”.

Apabila kondisi-kondisi tersebut ada dalam isi $ip, maka program akan

langsung memproses ke perintah else yang berisikan pesan kesalahan “Message 1

==> Format INPUT alamat IPv6 SALAH!!!” dan memanggil fungsi hapusS() untuk

menghapus file-file pada direktori $DIRS. Untuk menghapus file-file sementara

pada direktori $DIRS diperlukan pengkondisian, yaitu dengan mengecek status file

zonaH, bila status file tidak pada direktori $DIRH ada maka proses file sementara

dilakukan untuk membuat atau menambah server. Proses pegecekan dilakukan

dengan perintah: if(open(test,"$DIRH/zonaH")){ hapusH(); } dan else { hapusS(); }.

Bila kondisi-kondisi tersebut tidak terpenuhi maka program akan

melanjutkan ke proses kondisi selanjutnya, yaitu:

if ($ipS eq "::1") { print "\nMessage 4 ==> Anda memasukkan Alamat Loopback !!!\n\n";

Page 127: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

102

if(open(test,"$DIRH/zonaH")){ hapusH(); } else { hapusS(); } }

Potongan program diatas memiliki arti, jika isi $ip sama dengan “::” maka

program akan menampilkan pesan kesalahan “Message 4 ==> Anda memasukkan

Alamat Loopback !!!” dan memanggil fungsi hapusS() untuk menghapus file-file

sementara untuk server. Namun bila kondisi tesebut tidak terpenuhi, maka

program akan melanjutkan ke kondisi else.

else { $kar= length($ip); for($z=0;$z<$kar;$z++) { $awal=substr($ip,$z,1); #baca awal karakter ke z sebanyak 1 karakter if($awal eq ":") {$ok=1;} if($ok ne 1 ) {$hitungx=$hitungx+$awal; } } if($hitungx eq 0) {$error=1;} for($i=0;$i<$kar;$i++) { $karak = substr($ip,$i,1); #baca awal karakter ke i sebanyak 1 karakter $karak2 = substr($ip,$i+1,1); #baca karakter setelah karakter i $ending= substr($ip,$kar-1,1); # baca akhir karakter ":" $jadi="$karak$karak2"; #gabungan karakter i dan i+1 if ($karak eq ":" && $karak2 ne ":") {$count=$count+1; $x=0;} if ($ending eq ":") {$error=1;} if ($jadi eq "::") {$cap=$cap+1; } if ($karak ne ":") { $x=$x+1; if($x>4) {$error=1;} } }

Pada kondisi else diatas akan digunakan untuk pengecekan kesalahan

untuk karakter “:” pada isi $ip (format alamat IPv6) dengan membaca panjang isi

$ip, jumlah “:”, jumlah bentuk “::”, dan posisi “:”. Setelah membaca, menghitung

dan mencari posisi “:”, maka akan dilakukan pengesetan variabel-variabel untuk

dijadikan kondisi kesalahan. Dapat dilihat dari potongan program di bawah ini:

If ($cap<"1" && $count < 7 || $cap ==1 && $count > 6 )

Page 128: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

103

{ print "\nMessage 2 ==> Format Input alamat IPv6 SALAH!!! \n\n"; if(open(test,"$DIRH/zonaH")){ hapusH(); } else { hapusS(); } } elsif($cap=="2" || $error=="1" || $count > "7" ) { print "\nMessage 3 ==> Format INPUT alamat IPv6 SALAH!!!\n\n"; if(open(test,"$DIRH/zonaH")){ hapusH(); } else { hapusS(); } }

Potongan program diatas akan memanfaatkan variabel-variabel yang telah

terbentuk. Pada kondisi if ($cap<”1” && $count < 7 || $cap ==1 && $count > 6)

menjelaskan apabila jumlah “::” ($cap) lebih kecil dari 1 (tidak ada) dan jumlah

“:” ($count) kurang dari 7 atau jumlah “::” sama dengan 1 (ada 1) dan jumlah “:”

lebih dari 6, maka ”Message 2 ==> Format Input alamat IPv6 SALAH!!!” dan

memanggil fungsi hapusS() untuk menghapus file-file pada direktori $DIRS.

Untuk kondisi elsif ($cap=="2" || $error=="1" || $count > "7" ) akan

menjelaskan apabila jumlah “:” ($cap) sama dengan 2 (ada 2) atau pada akhir

input “:” ($error) == “1” (ada 1) atau jumlah “:” lebih dari 7, maka ”Message 3 ==>

Format Input alamat IPv6 SALAH!!!” dan memanggil fungsi hapusS() untuk

menghapus file-file sementara pada direktori $DIRS.

Bila isi $ip memiliki format alamat IPv6 yang benar maka program akan

langsung berjalan ke proses kondisi else untuk membandingkan batasan nilai

prefix pada variabel @prefix dengan isi $prfx. Berikut bentuk potongan program

yang ada:

else {

Page 129: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

104

$tes=@prefix; for ($x=0; $x<$tes;$x++) #checking prefix { if($prfx == $prefix[$x]) { $pass = "1";} } if ($pass eq "1") { if(open(test,"$DIRH/zonaH")) { system("echo $nama $ip $prfx >> /var/tmp/$zona"); system("./ffwdHST.sh"); } else { system("echo $nama $ip $prfx > /var/tmp/$nama"); system("./ffwdSRV.sh"); } } else { print "Perhatikan Format Prefix !!!\n"; print "Gunakan Prefix : 16, 32, 48, 64, 80, 96, 112\n"; hapus(); }

Apabila prefix tidak sesuai batasan @prefix yang ada, maka program akan

memanggil fungsi hapus untuk menghapus file-file pada direktori $DIRS. Namun

bila alamat IPv6 dan prefix dapat memenuhi semua kondisi yang ada, maka

program akan membuat file $nama yang berisikan nama server, IPv6 server dan

prefix server pada direktori /var/tmp. Kemudian dilanjutkan memproses program

ffwdSRV.sh.

4.4.1.2. Proses Program ffwdSRV.sh

Fungsi dari program ffwdSRV.sh ini adalah untuk membuat atau

menambahkan file-file forward, named.root6, named6.local, dan localhost6.zone

server ke dalam direktori /var/named. Untuk tiap pembuatan atau penambahan file

forward server akan diberikan nama dengan format “f-namaServer”. Program

Page 130: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

105

ffwdSRV.sh ini menggunakan bahasa pemrograman bash. Untuk variabel input

nama server, alamat dan prefix, akan menggunakan perintah awk karena perintah

awk dapat membaca dari isi file-file sementara yang terletak pada direktori

$TMPS. Berikut variabel-variabel yang akan dimanfaatkan untuk input maupun

inisialisasi direktori dari potongan program ffwdSRV.sh yang ada:

#!/bin/bash TMPS=/var/tmp/SERVER; Var=/var/named; Etc=/etc namaS=`awk '{print $1}' $TMPS/namaS`; ipS=`awk '{print $1}' $TMPS/ipS` pfxS=`awk '{print $1}' $TMPS/pfxS` revlocal="0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa." ptrlocal="1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR localhost." if [[ -s $Etc/resolv.conf ]] … >> $Var/named.root6 ... > $Var/f-"$namaS" ./reSRV.pl $ipS $pfxS else … > $Var/named6.local ... > $Var/localhost6.zone ... > $Var/named.root6 ... > $Var/f-"$namaS" ./reSRV.pl $ipS $pfxS exit 0 fi

Pada program ffwdSRV.sh diberikan kondisi if [[ -s $Etc/resolv.conf ]] untuk

mengecek ukuran file resolv.conf pada direktori /etc, bila file berukuran 0 bytes

(kosong) maka akan program akan memproses pembuatan file forward,

named.root6, named6.local, dan localhost6.zone untuk yang pertama kali.

Apabila file resolv.conf berukuran lebih besar dari 0 bytes, maka program

akan langsung membuat file forward dan menambahkan isi file named.root6.

Bila program telah selesai membuat atau menambahkan isi file-file yang ada,

program akan menjalankan program dengan input alamat dan prefix ./reSRV.pl

$ipS $pfxS.

Page 131: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

106

4.4.1.3. Proses Program reSRV.pl

Fungsi dari program reSRV.pl ini adalah proses lanjutan untuk alamat IPv6

dan prefix yang diterima dari baris masukan standar input. Proses yang akan

dikerjakan dalam program ini adalah menseting alamat IPv6 untuk diurut secara

terbalik berdasarkan nilai input prefix dan membuat file sementara depanS dan

belakangS.

Sebagai contoh, bentuk format alamat FEC0::2AA:FF:FE3F:2A1C/64,

maka bentuk penulisan alamat dengan pemotongan prefix = 64 di dalam file

reverse menjadi:

- Untuk bagian depan 0.0.0.0.0.0.0.0.0.0.0.0.0.C.E.F

- Untuk bagian belakang C.A.1.A.2.F.3.E.F.F.F.0.0.A.A.2.0

Sehingga dapat digunakan untuk membuat file reverse dan menambahkan isi zona

pada file named.conf. Berikut potongan kode program dari reSRV.pl untuk

memproses baris masukan standar input alamat Ipv6 dan prefix :

$ipS = $ARGV[0]; $prfxS = $ARGV[1]; #################################PENDEFINISIAN nilai prfx; if ($prfxS == "16") { $nilai=0; $nilai2=1 } if ($prfxS == "32") { $nilai=1; $nilai2=2;} if ($prfxS == "48") { $nilai=2; $nilai2=3;} if ($prfxS == "64") { $nilai=3; $nilai2=4;} if ($prfxS == "80") { $nilai=4; $nilai2=5;} if ($prfxS == "96") { $nilai=5; $nilai2=6;} if ($prfxS == "112") { $nilai=6; $nilai2=7;}

Dari potongan program diatas proses pertama kali yang akan dilakukan

adalah pengesetan nilai prefix pada variabel $nilai dan $nilai2 yang akan digunakan

untuk pemotongan alamat IPv6 berdasarkan prefix.

Page 132: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

107

#cari "::" kemudian count kolom yg kurang $cari= length($ipS); for($i=0;$i<$cari;$i++) { $kar = substr($ipS,$i,1); $kar2 = substr($ipS,$i+1,1); $kar3 = substr($ipS,$i+2,1); if ($kar eq ":" && $kar2 ne ":") { $count=$count+1; } elsif($kar eq ":" && $kar2 eq ":") { $tempat=$tempat+1; if($kar3 ne "") { $count=$count+1; } } } if($tempat eq "1") { $hitung = 8 - ($count) ; } if($hitung >= 0) { for($i=0;$i<$cari;$i++) { $kar=substr($ipS,$i,1); $kar2=substr($ipS,$i+1,1); if($kar ne ":") { $karakter="$karakter$kar" } elsif($kar eq ":" && $kar2 ne ":") { $karakter="$karakter:"; } elsif($kar eq ":" && $kar2 eq ":") { for($x=1;$x<=$hitung;$x++) { $enol="0000"; $karakter="$karakter:$enol"; } } } my $str2 = $karakter; @daftar= split(/:/,$str2); $count=$#daftar; for($i=0;$i<=$count;$i++) { if(length($daftar[$i]) == 4) {} if(length($daftar[$i]) == 3 && $i != 0) { $daftar[$i]= "0$daftar[$i]"; } …..lanjutan di halaman berikutnya if(length($daftar[$i]) == 2 && $i != 0) { $daftar[$i]= "00$daftar[$i]";} if(length($daftar[$i]) == 1 && $i != 0) { $daftar[$i]= "000$daftar[$i]";} }

Page 133: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

108

Untuk potongan program reSRV.pl diatas akan berfungsi untuk

merentangkan alamat IPv6 ke ekspresi penuh dengan menghitung banyaknya “:”

dan mencari letak “::”. Sebagai contoh untuk model penulisan alamat

FEC0::2AA::FF:FE3F:2A1C, jika dipresentasikan dalam ekspresi penuh, bentuk

alamat akan menjadi:

FEC0:0000:0000:0000:02AA:00FF:FE3F:2A1C.

Maka pada proses alamat IPv6, program akan menghitung panjang nilai

alamat dengan perintah $cari = length($ipS) dan for($i=0;$i<$cari;$i++) perintah yang

dilanjutkan dengan inisialisasi variabel $kar untuk mencari karakter pertama yang

berisi “:”, $kar2 untuk mecari karakter kedua berisi “:” dan $kar3 untuk mencari

karakter ketiga yang berisi karakter selain “:”. Variabel $kar, $kar2 dan $kar3 akan

digunakan dalam beberapa kondisi.

Pada perulangan perintah for untuk kondisi if ($kar eq ":" && $kar2 ne ":")

akan mengeset variabel $count untuk menghitung jumlah “:” pada isi variabel

$ipS. Untuk kondisi elsif($kar eq ":" && $kar2 eq ":") akan mengisi nilai variabel

$tempat jika $kar dan $kar2 memiliki isi “:”. Kemudian dilakukan pengecekan

kembali dengan kondisi if($kar3 ne "") yang berarti bila kondisi terpenuhi akan

mengeset nilai untuk variabel $count.

Setelah pengesetan nilai variabel $count, maka proses kondisi if($tempat eq

"1") adalah untuk menghitung jumlah karakter “:” dengan mengeset nilai variabel

$hitung = 8-($count). Kemudian dilanjutkan pada kondisi if($hitung >= 0) yang akan

memproses kondisi perulangan for yang didalamnya akan berisi kondisi if($kar ne

":") jika terpenuhi akan mengisikan nilai variabel $karakter=$karakter$kar,

Page 134: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

109

kondisi elsif($kar eq ":" && $kar2 ne ":") jika terpenhi akan mengisikan nilai variabel

$karakter="$karakter:" dan kondisi elsif($kar eq ":" && $kar2 eq ":") jika terpenuhi

akan mengisikan variabel $karakter=”$karakter:$enol”, dimana variabel $enol berisi

”0000”.

Kemudian proses berikutnya adalah mengisi tiap-tiap kolom yang diapit

“:” sebanyak 4 digit, agar format alamat dapat menjadi seperti berikut

AAAA:BBBB:CCCC:DDDD:EEEE:FFFF:GGGG:HHHH. Proses tersebut akan

dilakukan dengan pemecahan isi $karakter yang di batasi oleh tanda “:” dengan

perintah @daftar= split(/:/,$str2) dan menghitung variabel $daftar dengan perintah

$count=$#daftar.

Untuk perintah perulangan for akan dilakukan pengecekan panjang digit

yang ada tiap-tiap elemen dalam variabel @daftar, jika pada sebuah isi elemen

$daftar[$i] digit yang dimiliki kurang dari 4 maka program akan ditambahkan

karakter “0” sebanyak digit yang dibutuhkan.

Proses selanjutnya adalah proses pemotongan, penyisipan “.” dan

membalik format alamat dengan batasan prefix yang telah ditentukan pada

variabel @prefix. Berikut potongan program untuk memotong alamat:

$itung=$nilai; for($j=0;$j<=$itung;$j++) { $awal="$awal$daftar[$j]"; } $panjang = length($awal); …..lanjutan di halaman berikutnya for($i=$panjang; $i>=0;$i--) { $temp=substr($awal,$i,1); if($i==$panjang-1) { $depan="$temp"; } else { $depan="$depan.$temp"; }

Page 135: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

110

} system("echo $depan > /var/tmp/SERVER/depanS");

Pada potongan program diatas menjelaskan bahwa dengan menggunakan

variabel $itung yang berisikan variabel $nilai yang telah ditetapkan pendefinisian

nilai prefix, maka proses pemotongan akan dilakukan bagian depan elemen,

menyisipkan “.” dan membalikkan isi elemen-elemen dari variabel @daftar.

Apabila proses pemotongan dan membalik isi variabel telah selesai akan

dilanjutkan dengan membuat file depanS pada direktori /var/tmpServer yang

berisikan isi variabel $depan.

$itung2=7; for($j2=$nilai2;$j2<=$itung2;$j2++) { $blkg="$blkg$daftar[$j2]"; } $panjang2 = length($blkg); for ($i2=$panjang2-1; $i2>=0;$i2--) { $temp2=substr($blkg,$i2,1); if($i2==$panjang2-1) { $akhir="$temp2"; } else { $akhir="$akhir.$temp2"; } } system("echo $akhir > /var/tmp/SERVER/belakangS"); system("./reSRV.sh"); }

Pada potongan program diatas hampir sama dengan proses kerja

pemotongan untuk bagian depan alamat, perbedaan dari pemotongan bagian

belakang adalah untuk nilai variabel $itung2=7 yang telah ditetapkan untuk

memulai pembacaan elemen variabel @daftar dari elemen terbelakang. Pada

pendefinisian nilai prefix, maka akan dilakukan proses pemotongan yang

dimulai dari bagian belakang elemen, menyisipkan “.” dan membalikkan isi

Page 136: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

111

elemen-elemen dari variabel @daftar. Apabila proses pemotongan dan

membalik isi variabel telah selesai akan dilanjutkan dengan membuat file

belakangS pada direktori /var/tmp/Server yang berisikan isi variabel $akhir.

Proses terakhir dari program reSRV.pl adalah pemanggilan program reSRV.sh

yang akan membuat seluruh file-file reverse yang dibutuhkan server.

4.4.1.4. Proses Program reSRV.sh

Fungsi dari program reSRV.sh digunakan untuk membuat menambahkan

file-file reverse server ke dalam direktori /var/named dengan memanfaatkan file-

file yang berada pada direktori sementara yang terletak di /var/tmp/Server untuk

dijadikan variabel-variabel input. Berikut potongan program reSRV.sh:

TMPS=/var/tmp/SERVER Var=/var/named namaS=`awk '{print $1}' $TMPS/namaS` dpnS=`awk '{print $1}' $TMPS/depanS` blkgS=`awk '{print $1}' $TMPS/belakangS` echo "\$ORIGIN $dpnS.ip6.arpa. \$TTL 86400 @ IN SOA $namaS. root.$namaS. ( ... IN NS ns.$namaS." > $Var/rev."$namaS".arpa echo "\$ORIGIN $dpnS.ip6.int. \$TTL 86400 @ IN SOA $namaS. root.$namaS. ( ... IN NS ns.$namaS. DNAME $dpnS.ip6.arpa." > $Var/rev."$namaS".int ./named-resolv.sh

Dari potongan program di atas akan menjelaskan untuk baris paling atas

program akan dilakukan inisialisasi untuk variabel-variabel input dan letak

direktori-direktori. Untuk baris-baris berikutnya akan dilanjutkan dengan

Page 137: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

112

pembuatan-pembuatan file-file yang ada dengan perintah echo”(…bentuk format

penulisan…)” > $Var/rev."$namaS".arpa. Setelah proses pembuatan file selesai

maka proses akhir program adalah memanggil program named-resolv.sh.

4.4.1.5. Proses Program named-resolv.sh

Pada baris pertama program akan digunakan sebagai inisialisasi direktori

dan variabel-varibel input. Proses program named-resolv.sh akan dilakukan proses

pembuatan atau penambahan pada file named.conf dan resolv.conf. Namun untuk

proses pembuatan dan penambahan data pada file akan dibedakan dengan

menggunakan perintah kondisi if dan else. Proses tersebut dibedakan karena pada

kondisi if [[ -f $Etc/named.conf ]] berfungsi mencari file named.conf pada direktori

/etc, dimana pada saat penggunaan program named6 pertama kali untuk membuat

file forward dan reverse server, program named6 memanggil fungsi tambah untuk

pertama kalinya akan mengubah nama file named.conf yang asli menjadi

named.conf~. Berikut bentuk potongan kode program named-resolv.sh:

TMPS=/var/tmp/SERVER; Etc=/etc; TMP=/var/tmp namaS=`awk '{print $1}' $TMPS/namaS` ipS=`awk '{print $1}' $TMPS/ipS` dpnS=`awk '{print $1}' $TMPS/depanS` revlocal="0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" inet="127.0.0.1 allow { localhost; } keys { rndckey; };" inet6="::1 allow { localhost; } keys { rndckeys; };" if [[ -f $Etc/named.conf ]] ... ... …..lanjutan di halaman berikutnya itung=`awk '/include/{print NR}' $Etc/named.conf` let x=$itung sed "$x"d $Etc/named.conf > $TMP/named.conf #============================================= ... include \"/etc/rndc.key\";" >> $TMP/named.conf ...

Page 138: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

113

... >> $Etc/resolv.conf rm $TMPS/namaS; rm $TMPS/ipS; rm $TMPS/pfxS rm $TMPS/depanS; rm $TMPS/belakangS else ... include \"/etc/rndc.key\";" > $Etc/named.conf ... ... > $Etc/resolv.conf rm $TMPS/namaS; rm $TMPS/ipS; rm $TMPS/pfxS rm $TMPS/depanS; rm $TMPS/belakangS exit 0 fi

Sehingga pada waktu pengecekan kondisi if [[ -f $Etc/named.conf ]], file

tersebut tidak ditemukan, maka program akan melanjutkan proses kondisi else

yang berfungsi untuk membuat file named.conf dan resolv.conf dengan bentuk

format yang telah di dukung oleh IPv6. Maka saat ditemukan proses penambahan

nama server lagi program akan selalu memproses kondisi if untuk melakukan

penambahan data. Untuk penambahan data pada file named.conf akan

memanfaatkan perintah awk dan sed yang berfungsi untuk menghitung baris

dengan regular expression “include” dan menghapus ekspresi regular tersebut,

sehingga zona nama dan reverse server dapat disisipkan pada file named.conf.

Bentuk perintah yang digunakan untuk menghitung dan menghapus baris adalah

sebagai berikut: “itung=`awk '/include/{print NR}' $Etc/named.conf`; let x=$itung” dan

”sed "$x"d $Etc/named.conf > $TMP/named.conf” Untuk proses terakhir akan

dilakukan pembuangan file-file sementara pada direktori /var/tmp/SERVER dan

proses untuk pembuatan atau penambahan file server telah selesai.

4.4.2. Proses Tambah Host

Page 139: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

114

Proses tambah host ini memiliki proses yang sama dengan proses

penambahan server dari program named6 pada fungsi tambah, perbedaan yang

ada dapat dilihat dari kondisi pengecekan dan penambahan pada file-file server

yang dituju. Program-program yang akan dilalui untuk proses menambah host

juga berbeda, proses program-program yang akan dilalui adalah program named6,

cekIP.pl, ffwdHST.sh, reHST.pl, dan reHST.sh

Sintak kondisi input yang diberikan elif [[ $isi2 == -H && $isi3 != "" && $isi4

== -ip6/prefix && $isi5 != "" && $isi6 = -Z && $isi7 != "" ]]. Jika kondisi terpenuhi, maka

kondisi pengecekan pertama adalah kondisi if [[ -d $TMPH ]] untuk mengecek

direktori TMPH pada direktori /var/tmp sudah ada atau tidak. Bila direktori tidak

ada, program akan memproses kondisi elif [[ -f $Var/f-"$isi7" ]] untuk mengecek file

server dengan nama “f-$isi7” pada direktori $Var sudah ada atau tidak. Jika file

server ada, maka program akan membuat direktori TMPH ke dalam direktori

/var/tmp yang berfungsi untuk menempatkan file-file sementara yang nantinya

akan digunakan sebagai variabel input untuk proses program-program lanjutan.

Jika file server tidak ada maka program akan menjalankan pesan "Zona DNS6: $isi7

Tidak Ditemukan !!!" dari kondisi else.

Apabila kondisi dapat terpenuhi, selanjutnya program akan membuat file-

file sementara pada direktori TMPH. File tersebut akan berisikan file namaH, ipH,

pfxH, dan zonaH yang kemudian akan di proses program cekIP.pl. Berikut

potongan kode program untuk menuliskan atau menambahkan nama host pada file

server dari fungsi tambah adalah sebagai berikut:

elif [[ $isi2 == -H && $isi3 != "" && $isi4 == -ip6/prefix && $isi5 != "" && $isi6 = -Z && $isi7 != "" ]]

then

Page 140: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

115

if [[ -d $TMPH && -f $Var/f-"$isi7" ]] then #------------Tambah Nama Host if cek=`grep $isi3 $TMPVar/$isi7` then echo; echo "Nama Host: $isi3 Sudah Ada Dalam Zona: $isi7"; echo exit 0 else echo "$isi5" > $TMPH/ip; sed 's/[/]/ /' $TMPH/ip > $TMPH/ipku ip=`awk '{print $1}' $TMPH/ipku`; pfx=`awk '{print $2}' $TMPH/ipku`; echo "$isi3" > $TMPH/namaH; echo "$ip" > $TMPH/ipH echo "$pfx" > $TMPH/pfxH; echo "$isi7" > $TMPH/zonaH rm $TMPH/ip; rm $TMPH/ipku ./cekIP.pl $ip $pfx $isi3 $isi7 exit 0 fi elif [[ -f $Var/f-"$isi7" ]] then mkdir $TMPH; echo "$isi5" > $TMPH/ip; sed 's/[/]/ /' $TMPH/ip > $TMPH/ipku ip=`awk '{print $1}' $TMPH/ipku`; pfx=`awk '{print $2}' $TMPH/ipku`; echo "$isi3" > $TMPH/namaH; echo "$ip" > $TMPH/ipH echo "$pfx" > $TMPH/pfxH; echo "$isi7" > $TMPH/zonaH rm $TMPH/ip; rm $TMPH/ipku ./cekIP.pl $ip $pfx $isi3 $isi7 exit 0 else echo; echo "Zona DNS6: $isi7 Tidak Ditemukan !!!"; echo exit 0 fi else echo; echo "Perhatikan Format Penulisan !!!"; echo; $helpS; $helpH exit 0 fi }

Dapat di lihat dari potongan program di atas untuk menambahkan nama

klien host dan alamat IPv6 ke dalam file-file server, perintah yang digunakan

sedikit berbeda dengan pembuatan atau penambahan file-file server. Pada

penambahan sebuah host memiliki perintah tambahan yaitu -Z yang artinya zona

atau wilayah domain server. Perintah -Z ini akan diikuti dengan $isi7 yang berisi

nama domain, sehingga memiliki arti nama host dengan alamat IPv6 akan

ditambahkan pada sebuah zona file server. Bila proses kondisi untuk menambah

host telah terpenuhi maka program akan memanggil program cekIP.pl yang diikuti

dengan variabel $ipH $pfxH $isi3 $isi7 sebagai masukan program tersebut.

Page 141: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

116

4.4.2.1. Proses Program cekIP.pl

Fungsi progam cekIP.pl digunakan oleh server dan host untuk mengecek

bentuk format alamat IPv6 dan batasan prefix. Proses ini memiliki proses kerja

yang sama pada saat menambahkan nama, alamat IPv6 dan prefix untuk server

yang telah dijelaskan terlebih di atas. Perbedaan yang dimiliki adalah pada

pemanfaatan variabel input untuk $zona = $ARGV[3] dan pengecekan status

keberadaan file sementara zonaH pada direktori $DIRH. Apabila format alamat

IPv6 dan prefix telah memenuhi kondisi dan status file zonaH ada, maka program

akan menambahkan isi file dengan nama sesuai isi variabel $zona pada direktori

/var/tmp dan melanjutkan memanggil program ffwdHST.sh.

4.4.2.2. Proses Program ffwdHST.sh

Fungsi program ffwdHST.sh adalah untuk menambahkan nama dan alamat

IPv6 host pada file server atau file pada direktori /var/named dengan nama file “f-

“$zoneH””. Untuk isi variabel input diambil dari pembacaan file-file yang sudah

terbuat pada direktori /var/tmp/TMPH dengan menggunakan perintah awk dengan

pemberian nama variabel zonaH, namaH, ipH, dan pfxH. Setelah penambahan

nama dan alamat host telah terbuat, maka program akan meneruskan proses

dengan memanggil program yang memiliki sintak perintah reHST.pl $ipH $pfxH.

4.4.2.3. Proses Program reHST.pl

Fungsi program reHST.pl memiliki proses kerja yang sama dengan

program reSRV.pl untuk membuat file sementara berisikan alamat IPv6 yang

Page 142: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

117

diurut secara terbalik berdasarkan nilai input prefix sehingga dapat digunakan

untuk proses program selanjutnya.

Perbedaan yang dimiliki program reHST.pl dengan program reSRV.pl,

yaitu pada saat pemotongan alamat IPv6 berdasarkan prefix terjadi, hasil

pemotongan yang digunakan hanya hasil pemotongan alamat bagian belakang

saja. Hal ini dilakukan agar dapat sesuai dengan bentuk format file-file yang telah

dijelaskan pada bab III sebelumnya. Jika proses pembuatan file-file sementara

telah selesai, maka langkah selanjutnya adalah memanggil program reHST.sh.

4.4.2.4. Proses Program reHST.sh

Proses program reHST.sh ini digunakan untuk menambahkan nama dan

alamat IPv6 host dengan bentuk terbalik pada file reverse server yang dituju atau

file pada direktori /var/named dengan format nama file rev.”$zoneH”.arpa.

Sedangkan variabel-variabel input diambil dari pembacaan file-file yang sudah

terbuat pada direktori /var/tmp/TMPH dengan menggunakan perintah awk. Variabel

input yang akan digunakan untuk menambah nama dan alamat IPv6 host adalah

$zoneH, $namaH, dan $blkgH. Perintah penambahan pada file reverse server

tersebut akan seperti berikut : echo "$blkgH IN PTR $namaH.$zoneH." >>

$Var/rev."$zoneH".arpa. Untuk proses terakhir dari program reHST.sh adalah

menghapus isi file-file sementara yang berada pada direktori /var/tmp/TMPH.

4.4.3. Proses Ubah Server dan Host

Proses ubah server dan host ini adalah fasilitas tambahan yang diberikan

pada program named6 dan bertugas untuk mengubah nama ataupun alamat IPv6

Page 143: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

118

untuk server maupun host. Adapun perintah untuk mengubah nama dan alamat

IPv6 akan dibedakan bentuk perintahnya, baik untuk server ataupun klien host.

4.4.3.1. Proses Ubah Nama Server dan Host

Berikut potongan program untuk mengubah nama server dan host dalam

fungsi ubah :

ubah() { if [[ $isi2 == help || $isi2 == "" ]] then $helpE elif [[ $isi2 == -DNS && $isi3 != "" && $isi4 == -NN && $isi5 != "" ]] then #------- EDIT NAMA SERVER if [[ -f $Var/f-"$isi3" && -d $TMPE ]] then echo "$isi3" > $TMPE/namaLama; echo "$isi5" > $TMPE/namaBaru ./EditNama6.sh exit 0 elif [[ -f $Var/f-"$isi3" ]] then mkdir $TMPE echo "$isi3" > $TMPE/namaLama; echo "$isi5" > $TMPE/namaBaru ./EditNama6.sh exit 0 else echo; echo "Nama Domain Sever: $isi3 Tidak Ditemukan !!!"; echo . $helpED exit 0 fi elif [[ $isi2 == -H && $isi3 != "" && $isi4 == -NN && $isi5 != "" && $isi6 == -Z && $isi7 != "" ]] then #------- EDIT NAMA HOST if [[ -f $Var/f-"$isi7" && -d $TMPE ]] then if cek=`grep $isi7 $TMPVar/$isi7` then echo "$isi3" > $TMPE/namaLama; echo "$isi5" > $TMPE/namaBaru echo "$isi7" > $TMPE/ZONA ./EditNama6.sh exit 0 …..lanjutan di halaman berikutnya else echo; echo "Nama Host: $isi3, Tidak Ada Dalam Zona: $isi7"; echo exit 0 fi elif [[ -f $Var/f-"$isi7" ]] then if cek=`grep $isi7 $TMPVar/$isi7`

Page 144: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

119

then mkdir $TMPE echo "$isi3" > $TMPE/namaLama; echo "$isi5" > $TMPE/namaBaru echo "$isi7" > $TMPE/ZONA ./EditNama6.sh exit 0 else echo; echo "Nama Host: $isi3, Tidak Ada Dalam Zona: $isi7"; echo exit 0 fi else echo; echo "File DNS Tidak Ditemukan !!!"; echo $helpEH exit 0 fi

Dari potongan kode program named6 untuk fungsi ubah diatas dapat

dilihat bentuk format perintah untuk mengubah nama server dari kondisi “elif [[

$isi2 == -DNS && $isi3 != "" && $isi4 == -NN && $isi5 != "" ]]”. Jika kondisi perintah

tidak terpenuhi maka program akan memproses pesan "Perhatikan Format Penulisan

!!!" dan $helpE.

Sedangkan perintah untuk mengubah nama host akan sedikit berbeda

karena pada perintah untuk menngubah nama host akan ditambahkan dengan

perintah “-Z” yang akan digunakan untuk mengarahkan perubahan nama host

akan dilakukan pada file-file server yang mewakili nama-nama host. Berikut

bentuk perintah untuk menambahkan host : “elif [[ $isi2 == -H && $isi3 != "" && $isi4

== -NN && $isi5 != "" && $isi6 == -Z && $isi7 != "" ]]”, jika kondisi perintah tidak

terpenuhi maka program akan memproses pesan "Perhatikan Format Penulisan !!!"

dan $helpE.

Saat pertama kali fungsi ubah dijalankan dan kondisi perintah yang

diberikan memenuhi kondisi-kondisi untuk melakukan pengubahan nama server

dan nama file server, maka program akan menjalankan kondisi elif [[ -f $Var/f-"$isi7"

Page 145: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

120

]] dan tidak menjalankan kondisi if [[ -f $Var/f-"$isi7" && -d $TMPE ]]. Karena pada

kondisi if, kondisi yang tidak terpenuhi adalah “-d $TMPE” yang berarti direktori

TMPE tidak ada pada direktori /var/tmp walaupun status file bernama “f-"$isi7””

ditemukan.

Demikian juga, bila proses yang di lakukan pertama kali adalah perubahan

nama host terlebih dahulu, maka kondisi yang akan dilakukan hampir sama

dengan kondisi pada ubah nama server, yaitu mengecek file server yang dituju dan

direktori TMPE sudah ada atau tidak. Jika file server dan direktori TMPE tidak

ada, program akan langsung menuju ke kondisi else dengan pesan “File DNS Tidak

Ditemukan !!!”. Tetapi , jika file server ada dan direktori tidak ada maka program

akan melanjutkan ke kondisi “elif [[ -f $Var/f-"$isi7" ]]” dan membuatkan direktori

TMPE.

Proses fungsi ubah akan dilanjutkan dengan pembuatan file sementara.

Bila yang akan di ubah adalah nama server maka file sementara yang akan di buat

adalah namaBaru dan namaLama yang akan digunakan sebagai variabel input

saat proses program selanjutnya. Tetapi jika yang akan di ubah adalah nama host

maka file sementara yang akan di buat untuk variabel input adalah namaBaru,

namaLama, dan ZONA.

Bila pembuatan file sementara sudah terbuat maka prosesselanjutnya

adalah pemanggilan program EditNama6.sh yang sebenarnya proses untuk

pengubahan nama server atau host akan dikakukan dalam program ini.

4.4.3.1.1. Program EditNama6.sh untuk Ubah Nama Server

Page 146: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

121

Berikut potongan kode program untuk mengubah nama server lama

dengan nama server baru :

Var=/var/named; Etc=/etc TMPE=/var/tmp/EDIT; TMPVar=/var/tmp if [[ -f $TMPE/ZONA ]] then ... … else namaL=`awk '{print $1}' $TMPE/namaLama` namaB=`awk '{print $1}' $TMPE/namaBaru` if [[ "$namaB" != "$namaL" ]] then sed "s/$namaL/$namaB/g" $Var/named.root6 > $TMPE/named.root6 mv $TMPE/named.root6 $Var sed "s/$namaL/$namaB/g" $Var/f-"$namaL" > $TMPE/f-"$namaB" mv $TMPE/f-"$namaB" $Var; rm $Var/f-"$namaL" ... ... sed "s/$namaL/$namaB/g" $TMPVar/"$namaL" > $TMPE/"$namaB" mv $TMPE/"$namaB" $TMPVar rm $TMPVar/"$namaL"; rm $TMPE/namaLama; rm $TMPE/namaBaru exit 0 else echo; echo "\"Nama Server Baru\" Sama Dengan \"Nama Server Lama\" !!!"; echo fi fi

Dari potongan program EditNama6.sh dapat diketahui cara kerja untuk

proses mengubah nama server dan variabel-variabel input yang digunakan. Saat

program EditNama6.sh dijalakan pertama yang di proses program adalah variabel-

variabel input dan inisialisasi direktori yang terletak pada baris paling atas

program.

Selanjutnya program akan melakukan cek kondisi dengan perintah if [[ -f

$TMPE/ZONA ]] yang akan mengecek status pada direktori TMPE memiliki file

bernama ZONA atau tidak, kondisi ini diberikan untuk membedakan proses antara

pengubahan nama server dan host. Jika status file ZONA tidak ada, proses akan

Page 147: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

122

dilanjutkan ke kondisi else yang akan memproses pembacaan isi file namaLama

dan namaBaru untuk variabel input.

Sebelum memproses pengubahan nama server akan diberikan kondisi if [[

"$namaB" != "$namaL" ]], yang akan mengecek isi dari variabel $namaB sama

dengan $namaL atau tidak. Jika isi kedua variabel sama, program akan memproses

kondisi else untuk menampilkan pesan "Nama Domain Baru” Sama Dengan “Nama

Domain Lama” !!! dan menghapus file sementara namaLama dan namaBaru pada

direktori TMPE.

Namun, jika isi variabel $namaB dan $namaL tidak sama, proses

pengubahan nama server akan di proses. Proses pengubahan nama dari program

akan memanfaatkan perintah “sed” untuk seleksi teks dan perintah “mv” untuk

memindahkan file. Untuk proses mengubah nama pada file server dan nama file

server, perlu mengetahui file-file yang berisikan nama server dan nama file yang

perlu diubah.

File-file yang berisikan nama server dan file yang menggunakan nama

server adalah : named.root6, f-“namaserver”, rev.”namaserver”.arpa,

named.conf, resolv.conf dan file sementara server berada direktori /var/tmp.

Dengan mengetahui file-file yang yang bernamakan dengan nama server dan

berisikan nama server, maka proses perubahan nama server dapat dilakukan

dengan menggunakan perintah “sed”. Sedangkan untuk merubah nama file server

yang menggunakan nama server akan dilakukan dengan perintah “mv”

Berikut adalah salah satu cara untuk merubah nama dalam satu file dengan

perintah sed dari potongan program diatas, sebagai berikut :

Page 148: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

123

sed "s/$namaL/$namaB/g" $Var/named.root6 > $TMPE/named.root6 mv $TMPE/named.root6 $Var

Dengan pilihan penggunaan bentuk perintah “sed "s/string1/string/g"

nama_file > file_baru” adalah perintah standar untuk menggantikan ekspresi regular

string1 dengan string2 dengan menambahkan flag “g” atau global yang berarti

secara keseluruhan pola yang cocok dalam file akan diganti. Untuk bentuk

perintah “> file_baru” adalah perintah untuk membuat file baru yang telah

terubah isinya dengan nama file yang sama. Sedangkan untuk perintah “mv” akan

berfungsi memindahkan file baru ke tempat file lama, sehingga file baru tersebut

akan menimpa file lama.

Berikut adalah salah satu cara untuk merubah nama server dalam sebuah

file dan nama file server lama dengan nama file server baru dengan perintah sed

dari potongan program diatas, sebagai berikut :

sed "s/$namaL/$namaB/g" $Var/f-"$namaL" > $Var/f-"$namaB" rm $Var/f-"$namaL"

Dari potongan kode program diatas, perintah yang digunakan untuk

mengubah nama server dalam file tetap menggunakan perintah “sed”. Proses

pembuatan file dengan nama baru akan langsung ditujukan ke direktori file

dengan nama lama berada. Kemudian dilanjutkan menghapus file dengan nama

lama, menggunakan perintah “rm”.

Setelah semua nama server dan file-file dengan nama server baru

terbentuk, proses terakhir adalah menghapus semua file-file lama dan proses

untuk mengubah nama server telah selesai.

Page 149: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

124

4.4.3.1.2. Program EditNama6.sh untuk Ubah Nama Host

Berikut potongan kode program untuk ubah nama host lama dengan nama host

baru pada program EditNama6.sh:

if [[ -f $TMPE/ZONA ]] then zona=`awk '{print $1}' $TMPE/ZONA` namaL=`awk '{print $1}' $TMPE/namaLama` namaB=`awk '{print $1}' $TMPE/namaBaru` if [[ $namaB != $namaL ]] then sed "s/$namaL/$namaB/g" $Var/f-"$zona" > $TMPE/f-"$zona" mv $TMPE/f-"$zona" $Var sed "s/$namaL/$namaB/g" $Var/rev."$zona".arpa > $TMPE/rev."$zona".arpa mv $TMPE/rev."$zona".arpa $Var sed "s/$namaL/$namaB/g" $TMPVar/"$zona" > $TMPE/"$zona" mv $TMPE/"$zona" $TMPVar rm $TMPE/ZONA; rm $TMPE/namaLama; rm $TMPE/namaBaru; exit 0 else echo; echo "\"Nama Host Baru\" Sama Dengan \"Nama Host Lama\" !!!"; echo fi else ... ... fi

Proses ubah nama host dari potongan program diatas memiliki proses kerja

yang sama dengan proses ubah nama server yang telah dijelaskan sebelumnya.

Hanya pada proses ubah nama host ini file-file yang di proses lebih sedikit, bila

dibandingkan dengan proses ubah nama server.

Hal ini disebabkan, proses untuk mengganti nama host tidak perlu

melakukan perubahan untuk nama file-file server yang akan di proses. Proses

ubah nama host ini akan menggunakan perintah “sed” yang akan memproses

pencocokan pola pada isi file-file server yang telah ditentukan Kemudian akan

Page 150: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

125

dilanjutkan dengan pembuatan file pada direktori TMPE dan dipindahkan dengan

perintah “mv” ke direktori tujuan untuk menimpa file lama. Proses terakhir setelah

mengganti nama host adalah menghapus file-file sementara-nya.

4.4.3.2. Proses Ubah Alamat Server dan Host

Proses ini ubah alamat ini dibedakan menjadi dua model, yaitu proses

ubah alamat/prefix server dan host. Proses ubah alamat ini memiliki proses yang

lebih panjang jika dibandingkan proses untuk ubah nama, karena pada proses

ubah alamat perlu dilakukan pengecekan bentuk format alamat/prefix IPv6 dan

membentuk alamat terbalik (reverse) untuk alamat/prefix baru ataupun

alamat/prefix lama.

Maka untuk pengecekan dan membentuk alamat/prefix terbalik diperlukan

bantuan proses program-program lainnya. Sesuai dengan urutan proses program

maka urutan proses program yang akan dijalankan agar dapat mengubah

alamat/prefix server atau host adalah sebagai berikut: cekIPB.pl berfungsi untuk

mengecek format bentuk alamat/prefix baru, reIPL.pl berfungsi untuk membentuk

alamat lama dengan format terbalik, reIPB.pl berfungsi untuk membentuk alamat

baru dengan format terbalik dan EditIP6.sh berfungsi untuk mengantikan

alamat/prefix lama dengan alamat/prefix baru.

Berikut potongan program untuk mengubah alamat IPv6 server atau host

dalam fungsi ubah pada program named6 :

elif [[ $isi2 == -ip6 && $isi3 != "" && $isi4 == -Nip6 && $isi5 != "" && $isi6 == -DNS && $isi7 != "" ]]

then #-------------- EDIT IP SERVER if [[ -f $Var/f-"$isi7" && -d $TMPE ]] then

Page 151: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

126

echo "$isi3" > $TMPE/ipL; sed 's/[/]/ /' $TMPE/ipL > $TMPE/ipLku ipLama=`awk '{print $1}' $TMPE/ipLku`; pfxLama=`awk '{print $2}' $TMPE/ipLku` echo "$isi5" > $TMPE/ipB; sed 's/[/]/ /' $TMPE/ipB > $TMPE/ipBku ipBaru=`awk '{print $1}' $TMPE/ipBku`; pfxBaru=`awk '{print $2}' $TMPE/ipBku` echo "$isi7" > $TMPE/DNS; nama=`awk '{print $1}' $TMPE/DNS` ipL=`awk '/'$nama'/{print $2}' $TMPVar/$nama` pfxL=`awk '/'$nama'/{print $3}' $TMPVar/$nama` if [[ $ipL == $ipLama && $pfxL == $pfxLama ]] then rm $TMPE/ipL; rm $TMPE/ipLku; rm $TMPE/ipB; rm $TMPE/ipBku; ./cekIPB.pl $ipBaru $pfxBaru $ipLama $pfxLama else echo; echo "Alamat IPv6 atau Prefix Lama Tidak Sesuai !!!"; echo rm $TMPE/ipL; rm $TMPE/ipLku;rm $TMPE/ipB; rm $TMPE/ipBku; rm $TMPE/DNS exit 0 fi elif [[ -f $Var/f-"$isi7" ]] then mkdir $TMPE ... ==========sama dengan atas========= ... if [[ $ipL == $ipLama && $pfxL == $pfxLama ]] then rm $TMPE/ipL; rm $TMPE/ipLku; rm $TMPE/ipB; rm $TMPE/ipBku; ./cekIPB.pl $ipBaru $pfxBaru $ipLama $pfxLama exit 0 else echo; echo "Alamat IPv6 atau Prefix Lama Tidak Sesuai !!!"; echo rm $TMPE/ipL; rm $TMPE/ipLku; rm $TMPE/ipB; rm $TMPE/ipBku;

rm $TMPE/DNS exit 0 fi else echo; echo "Nama Domain : $isi7 Tidak Ada !!!"; echo fi …..lanjutan program di halaman berikutnya elif [[ $isi2 == -ip6 && $isi3 != "" && $isi4 == -Nip6 && $isi5 != "" && $isi6 == -H && $isi7 != "" && $isi8 == -Z && $isi9 != "" ]] then #==========EDIT IP HOST=============# if [[ -f $Var/f-"$isi9" && -d $TMPE ]] then ... ==========sama dengan atas========= ... echo "$isi7" > $TMPE/HOST; namaH=`awk '{print $1}' $TMPE/HOST` echo "$isi9" > $TMPE/ZONA; namaD=`awk '{print $1}' $TMPE/ZONA` cekH=`awk '/'$namaH'/{print $1}' $TMPVar/$namaD` ipL=`awk '/'$namaH'/{print $2}' $TMPVar/$namaD`; pfxL=`awk '/'$namaH'/{print $3}' $TMPVar/$namaD` if [[ $namaH == $cekH && $ipLama == $ipL && $pfxLama == $pfxL ]]

Page 152: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

127

then rm $TMPE/ipL; rm $TMPE/ipLku; rm $TMPE/ipB; rm $TMPE/ipBku ./cekIPB.pl $ipBaru $pfxBaru $ipLama $pfxLama else echo; echo "Alamat IPv6 atau Prefix Lama Tidak Sesuai !!!"; echo rm $TMPE/ipL; rm $TMPE/ipLku; rm $TMPE/ipB; rm $TMPE/ipBku rm $TMPE/HOST; rm $TMPE/ZONA exit 0 fi elif [[ -f $Var/f-"$isi9" ]] then mkdir $TMPE ... ==========sama dengan atas========= ... if [[ $namaH == $cekH && $ipLama == $ipL && $pfxLama == $pfxL ]] then rm $TMPE/ipL; rm $TMPE/ipLku; rm $TMPE/ipB; rm $TMPE/ipBku ./cekIPB.pl $ipBaru $pfxBaru $ipLama $pfxLama else echo; echo "Alamat IPv6 atau Prefix Lama Tidak Sesuai !!!"; echo rm $TMPE/ipL; rm $TMPE/ipLku; rm $TMPE/ipB; rm $TMPE/ipBku rm $TMPE/HOST; rm $TMPE/ZONA exit 0 fi else echo; echo "Nama Domain6 : $isi9 Tidak Ada !!!"; $helpEH; echo fi else echo; echo "Perhatikan Format Penulisan !!!" $helpE echo "Gunakan command:= named6 view untuk cek list Nama & IP"; echo fi }

Dari potongan program diatas dapat dilihat bentuk perintah untuk

mengubah alamat/prefix server dari kondisi “elif [[ $isi2 == -ip6 && $isi3 != "" && $isi4

== -Nip6 && $isi5 != "" && $isi6 == -DNS && $isi7 != "" ]]”. Proses input untuk

mengedit alamat/prefix server dari fungsi ubah ini memiliki proses kerja yang

hampir sama dengan proses pada fungsi tambah. Proses setelah memenuhi kondisi

tersebut, maka program akan mengecek nama file server ada atau tidak.

Jika file server ada, maka program akan memproses bagian pembuatan

file-file sementara untuk digunakan sebagai inputan dan proses pengecekan

Page 153: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

128

kondisi. Untuk variabel-variabel input yang akan digunakan adalah variabel-

variabel $ipLama, $pfxLama, $ipBaru, $pfxBaru dan file DNS yang berisikan nama

server dari variabel $isi7.

Kondisi selanjutnya adalah pencocokan alamat dan prefix lama, jika

alamat atau prefix yang dimasukkan tidak cocok maka program akan

menampilkan pesan kesalahan. Tetapi bila inputan cocok, program akan

memanggil program cekIPB.pl yang diikuti dengan variabel input $ipBaru,

$pfxBaru, $ipLama,dan $pfxLama.

Sedangkan perintah untuk mengubah alamat/prefix host akan

menggunakan kondisi “elif [[ $isi2 == -ip6 && $isi3 != "" && $isi4 == -Nip6 && $isi5 != ""

&& $isi6 == -H && $isi7 != "" && $isi8 == -Z && $isi9 != "" ]]”. Proses serta program

yang akan digunakan sama dengan program yang dilakukan untuk mengubah

alamat/prefix server.

Pada proses mengubah alamat/prefix untuk host, akan memerlukan

pembuatan file bernama HOST dengan isi dari variabel “isi7” dan file ZONA

dengan isi dari variabel “$isi9”, dimana kedua file tersebut nantinya akan

digunakan untuk membedakan input alamat/prefix untuk host atau server dan

proses di dalam program EditIP6.sh saat akan melakukan proses perubahan

alamat.

4.4.3.2.1. Program cekIPB.pl untuk Ubah Alamat/Prefix Server dan Host

Proses kerja program cekIPB.pl berfungsi untuk mengecek format alamat

IPv6 dan nilai prefix yang dibatasi. Apabila saat pengecekan format alamat atau

Page 154: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

129

prefix terdapat kesalahan, maka program akan memanggil fungsi hapusD() atau

hapusZ() yang berfungsi untuk menghapus file-file sementara yang telah

terbentuk. Untuk membedakan masukan alamat/prefix baru untuk server atau host,

dengan memberikan perintah kondisi “if(open(test,"$DIR/DNS"))” yang akan

melakukan pengecekan status file dengan nama DNS ada atau tidak. Jika file DNS

ada, maka input alamat/prefix baru adalah masukan untuk server.

Selanjutnya, jika format alamat/prefix tidak ada kesalahan program akan

memproses pembuatan file ipLama, pfxLama, ipBaru, dan pfxBaru dengan bentuk

perintah seperti berikut:

system("echo '$ipL' > $DIR/ipLama"); system("echo '$prfxL' > $DIR/pfxLama"); system("echo '$ipB' > $DIR/ipBaru"); system("echo '$prfxB' > $DIR/pfxBaru");

Setelah proses pembuatan selesai, program akan melanjutkan proses

dengan memanggil program ReIPL.pl dengan bentuk perintah, sebagai berikut :

system("./ReIPL.pl $ipL $prfxL $ipB $prfxB");

4.4.3.2.2. Program ReIPL.pl untuk Ubah Alamat/Prefix Server dan Host

Fungsi dari program ini adalah untuk membentuk alamat IPv6 lama

dengan format terbalik (reverse) dan memotong alamat dengan menggunakan

batasan nilai prefix baru baik untuk server maupun host. Setelah proses

pembalikan dan pemotongan selesai program ini akan membuatkan file dengan

nama depanLama dan belakangLama. Proses kerja program sama dengan proses

kerja dari program reSRV.pl

4.4.3.2.3. Program ReIPB.pl untuk Ubah Alamat/Prefix Server dan Host

Page 155: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

130

Fungsi dari program ini adalah untuk membentuk alamat IPv6 baru dengan

format terbalik (reverse) dan memotong alamat dengan menggunakan batasan

nilai prefix baru baik untuk server maupun host. Setelah proses pembalikan dan

pemotongan selesai program ini akan membuatkan file dengan nama depanBaru

dan belakangBaru. Proses kerja program sama dengan proses kerja dari program

reSRV.pl.

4.4.3.2.4. Program EditIP6.sh untuk Ubah Alamat/Prefix Server dan Host

Fungsi dari program ini adalah proses menggantikan alamat/prefix lama

dengan alamat/prefix baru, baik untuk server ataupun host. Proses untuk ubah

alamat/prefix lama dan baru ini, hampir menyerupai proses pada program

EditNama6.sh untuk mengubah nama.

Perbedaan dari program EditIP6.sh dengan EditNama6.sh adalah

penambahan perintah “awk” yang akan membantu pencarian pola dengan perintah

“sed”. Karena pada file-file tertentu, sebuah nama server ataupun host memiliki

dua buah model penulisan alamat.

Berikut adalah potongan program untuk menggantikan alamat IPv6 pada

beberapa file server:

TMPE=/var/tmp/EDIT; TMPVar=/var/tmp Var=/var/named; Etc=/etc; If [[ -f $TMPE/HOST ]] then ipL=`awk '{print $1}' $TMPE/ipLama`; blkgL=`awk '{print $1}' $TMPE/belakangLama` ipB=`awk '{print $1}' $TMPE/ipBaru`; ... ... blk=`awk '/'$host'/{print NR}' $TMPE/rev.$namaZ.arpa` let buntut=$blk sed $buntut"s/$blkgL/$blkgB/" $Var/rev."$namaZ".arpa

Page 156: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

131

> $TMPE/rev."$namaZ".arpa mv $TMPE/rev."$namaZ".arpa $Var ... ... else ipL=`awk '{print $1}' $TMPE/ipLama`; dpnL=`awk '{print $1}' $TMPE/depanLama` ipB=`awk '{print $1}' $TMPE/ipBaru`; dpnB=`awk '{print $1}' $TMPE/depanBaru` pfxL=`awk '{print $1}' $TMPE/pfxLama`; pfxB=`awk '{print $1}' $TMPE/pfxBaru` ... ... cariD=`awk '/NS/{print NR}' $Var/f-$namaD` let a=$cariD+1; let b=$cariD+2 sed $a,$b"s/$ipL/$ipB/" $Var/f-"$namaD" > $TMPE/f-"$namaD" mv $TMPE/f-"$namaD" $Var ... ... rm $TMPE/belakangBaru; rm $TMPE/pfxBaru; rm $TMPE/"$namaD" exit 0 fi

Dari potongan program diatas dapat dijelaskan untuk proses kerja untuk

mengubah alamat lama server dengan alamat baru akan dilakukan pada file f-

forward server.

Pada awal program adalah inisialisasi direktori, kemudian program akan

memproses kondisi “if [[ -f $TMPE/HOST ]]” yang mempunyaii arti jika pada

direktori TMPE terdapat file HOST maka program akan memproses bagian

tersebut. Namun, jika kondisi tidak terpenuhi maka program akan memproses

kondisi else yang berarti akan melakukan perubahan alamat lama dengan alamat

baru untuk server.

Proses pertama kali yang dilakukan pada kondisi else adalah membaca isi

file-file sementara yang berada pada direktori TMPE dengan perintah “awk”

karena proses tersebut berfungsi untuk membuat variabel-variabel, seperti variabel

Page 157: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

132

$ipL, $pfxL, $ipB, pfxB dan variabel lainnya yang dibutuhkan untuk mengubah

alamat server.

Setelah variabel-variabel telah terbentuk maka proses selanjutnya adalah

memanfaatkan variabel cariD untuk mencari posisi baris dan pencocokan pola

karakter “NS” pada file “f-$namaD” dapat dilakukan dengan menggunakan

perintah “`awk '/NS/{print NR}' $Var/f-$namaD`”. Pada proses pencocokan

pola yang dipilih adalah karakter “NS” karena karakter tersebut hanya tedapat satu

(unik) di tiap-tiap file forward, serta berhubungan dengan nama server dan dua

baris dibawahnya diikuti dengan alamat. Berikut bentuk contoh potongan file

forward untuk mencari regular expression yang telah ditentukan:

… … 1W ; expiry 1D ) ; minimum IN NS ns.yahoo.com. IN AAAA 2002:444::abcd:10a IN A6 0 2002:444::abcd:10a www IN AAAA 2002::abcd:10a IN A6 0 2002::abcd:10a … …

Setelah posisi baris diketahui maka nilai posisi akan dimasukkan pada

variabel $a dan $b dengan menggunakan perintah “let a=$cariD+1; let b=$cariD+2”,

karena server memiliki dua model alamat pada satu baris dibawah pola “NS” dan

baris berikutnya. Maka nilai dari $cariD ditambahkan satu untuk variabel $a dan

untuk variabel $b akan ditambahkan dua. Setelah nilai $a dan $b telah sesuai

dengan kedua posisi alamat server, maka program melanjutkan dengan melakukan

perintah sed $a,$b"s/$ipL/$ipB/" $Var/f-"$namaD" > $TMPE/f-"$namaD" untuk

Page 158: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

133

mengubah alamat pada baris yang telah ditentukan dan dilanjutkan dengan

pembuatan file dengan nama yang sama pada direktori TMPE.

Karena hasil pengubahan masih berada di direktori TMPE, maka perintah

berikutnya adalah memindahkan file tersebut ke direktori $Var untuk menimpa file

yang lama. Proses terakhir dari program adalah menghapus file-file yang ada di

direktori TMPE.

Untuk proses mengubah alamat/prefix host juga mempunyai proses kerja

yang sama dengan proses mengubah alamat/prefix untuk server. Hanya isi file-file

yang perlu diubah tidak sebanyak file-file server.

4.4.4. Proses Hapus Server dan Host

Proses hapus server dan host merupakan fasilitas dari program named6

memiliki fungsi untuk menghapus sebuah server DNS atau klien host DNS. Untuk

penghapusan klien atau server ini akan dilakukan berdasar pada nama klien host

atau server DNS yang ingin dihapus. Fungsi ini akan dibedakan bentuk perintah

atau sintak untuk menghapus klien host atau server DNS. Hal ini dilakukan karena

klien DNS akan berada didalam sebuah file server DNS, sehingga memerlukan

beberapa perlakuan pada file server DNS tersebut. Sedangkan untuk menghapus

server DNS dapat langsung menghapus file-file server tapa mengecek isi klien-

klien host yang terdapat didalamnya. Berikut bentuk kode program yang dimiliki

dari fungsi hapus pada program named6:

hapus() { if [[ $isi2 == "" || $isi2 == "help" ]] then

Page 159: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

134

. $helpD elif [[ $isi2 == -DNS && $isi3 != "" ]] then if [[ -d $TMPE ]] then if [[ -f $Var/f-"$isi3" ]] then echo "$isi3" > $TMPVar/DNS ./delete6.sh exit 0 else echo; echo "Nama Domain: $isi3 Tidak Ada !!!"; echo exit 0 fi elif [[ -f $Var/f-"$isi3" ]] then mkdir $TMPE; echo "$isi3" > $TMPVar/DNS ./delete6.sh exit 0 else echo; echo "Nama Domain: $isi3 Tidak Ada !!!"; echo exit 0 fi elif [[ $isi2 == -H && $isi3 != "" && $isi4 == -Z && $isi5 != "" ]] then cekH=`awk '/'$isi3'/{print $1}' $TMPVar/$isi5` if [[ -d $TMPE && -f $Var/f-"$isi5" && "$isi3" == "$cekH" ]] then echo "$isi3" > $TMPVar/host; echo "$isi5" > $TMPVar/zona ./delete6.sh exit 0 elif [[ -f $Var/f-"$isi5" ]] then cekH=`awk '/'$isi3'/{print $1}' $TMPVar/$isi5` if [[ "$isi3" == "$cekH" ]] then mkdir $TMPE; echo "$isi3" > $TMPVar/host; echo "$isi5" >> $TMPVar/zona ./delete6.sh …..lanjutan program di halaman berikutnya exit 0 else echo; echo "Nama Host: $isi3 Tidak Ada !!!"; echo fi else echo; echo "Nama Host: $isi3 atau Nama Domain: $isi5 Tidak Ditemukan !!!";

echo fi else echo; echo "File Server belum di buat !!!"; echo . $helpD fi }

Page 160: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

135

Dari potongan program diatas dapat dilihat bentuk perintah yang dapat

digunakan untuk menghapus server atau host klien DNS. Untuk menghapus server

dapat digunakan perintah yang telah dibatasi dengan kondisi “elif [[ $isi2 == -DNS

&& $isi3 != "" ]]”, sedangkan perintah untuk menghapus host klien dapat digunakan

perintah “elif [[ $isi2 == -H && $isi3 != "" && $isi4 == -Z && $isi5 != "" ]]”. Setelah

kondisi terpenuhi, maka program akan melakukan pengecekan direktori $TMPE

yang digunakan untuk melakukan proses-proses penghapusan file ataupun isi dari

file.

Apabila direktori $TMPE telah ada, program akan menyeleksi kondisi

perintah penghapusan selanjutnya akan dilakukan untuk server atau host klien.

Karena proses penghapusan untuk server dan host klien akan dibedakan dalam

pemanfaatan file saat proses terjadi pada program delete6.sh. Untuk menghapus

server akan memanfaatkan file bernamakan DNS dengan isi nama server yang

akan dihapus. Sedangkan untuk host klien akan memanfaatkan file bernamakan

host dengan isi nama host klien yang akan dihapus.

4.4.4.1. Program delete6.sh untuk Hapus Server dan Host

Program delete6.sh berfungsi untuk menghapus server mempunyai proses

kerja yang sama dengan program EditIP6.sh yang telah dijelaskan sebelumnya.

Perbedaan pada fungsi hapus ini adalah saat menghapus sebuah server, maka file-

file yang berkaitan dengan nama server tersebut akan dihapus dari direktori $Var

dan untuk file-file sistem seperti named.root6, named.conf dan resolv.conf, hanya

Page 161: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

136

akan menghapus sesuai nama server yang diinginkan dengan memanfaatkan

perintah “awk” dan “sed”. Berikut potongan program delete6.sh untuk menghapus

server :

if [[ -f $TMPVar/DNS ]] then domain=`awk '{print $1}' $TMPVar/DNS` delN=`awk '/'$domain'/{print NR}' $Etc/named.conf`; let N1=$delN; let N2=$N1+17 sed "$N1,$N2"d $Etc/named.conf > $TMPE/named.conf; mv $TMPE/named.conf $Etc

... ...

rm $Var/f-"$domain"; rm $Var/rev."$domain".arpa; rm $Var/rev."$domain".int rm $TMPVar/"$domain"; rm $TMPVar/DNS exit 0 else

... ...

Sedangkan untuk menghapus host klien hanya memanfaatkan file-file

server yang ada pada direktori $Var. Proses untuk menghapus host klien sama

dengan proses menghapus server.

4.4.5. Proses Tampil

Proses tampil adalah fasilitas yang diberikan dari program named6 pada

fungsi tampil() untuk menampilkan nama server beserta klien-klien yang dimiliki

oleh sebuah server DNS. Proses fungsi tampil() akan bermanfaat saat seorang

administrator akan melakukan perubahan (edit) atau penghapusan server maupun

host. Proses tampil dapat dilakukan dengan tiga model perintah atau sintak. Untuk

perintah named6 view Zone akan menampilkan isi file named.conf pada direktori

/etc. Perintah named6 view –List6 disertai dengan nama domain, akan

menampilkan isi daftar nama dan alamat IPv6 untuk klien dan server dari file

Page 162: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

137

sementara pada direktori /var/named. Perintah named6 view –File6 (nama

domain) Forward atau Reverse, akan menampilkan file forward atau reverse yang

dimiliki sebuah zona domain. Berikut bentuk kode program yang dimiliki kode

program fungsi tampil pada program named6:

tampil() { if [[ $isi2 == "" || $isi2 == "help" ]] then . $helpV elif [[ $isi2 == Zone && $isi3 == "" ]] then cek=`awk '$1 != 0 {print NR}' $Etc/named.conf` awk 'NR == 13, NR == $cek {print}' $Etc/named.conf |more exit 0 elif [[ $isi2 = -File6 && $isi3 != "" && $isi4 != "" ]] then if [[ $isi4 = Forward ]] then if [[ -f $Var/f-"$isi3" ]] then tail -n 1000 $Var/f-"$isi3" | more exit 0 else echo; echo "File Zona Forward DNS Tidak Ditemukan !!!"; echo exit 0 fi elif [[ $isi4 = Reverse ]] then if [[ -f $Var/rev."$isi3".arpa ]] then tail -n 1000 $Var/rev."$isi3".arpa | more exit 0 else echo; echo "File Zona Reverse DNS Tidak Ditemukan !!!"; echo fi fi elif [[ $isi2 = -List6 && $isi3 != "" ]] then if [[ -f $TMPVar/"$isi3" ]] then echo; echo " ==================================================" echo " || Server/Host || IPv6 / Prefix ||" echo " =================================================="; echo echo awk '/'$isi3'/{print "\t "$1,"\t\t" $2"/"$3}' $TMPVar/$isi3 cek=`awk '$1 != 0 {print NR}' $TMPVar/$isi3` if [[ $cek > "1" ]]

Page 163: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

138

then echo " |" echo awk 'NR == 2, NR == $cek {print "\t | --> "$1,"\t"$2"/"$3"\n\t " echo fi else echo; echo "File Domain: $isi3 Tidak Ada !!!"; echo fi exit 0 else . $helpV fi }

Dari potongan progam diatas, fungsi tampil memiliki tiga buah model

untuk menampilkan file-file yang berhubungan dengan sistem dan file server.

Fungsi tampil ini akan membantu administrator saat akan mengubah (edit) atau

menghapus (delete) sebuah file server atau host klien.

Untuk perintah -Zona akan menampilkan zona-zona yang berada di dalam

file named.conf yang menggunakan perintah “awk” dan “more”, sebagai berikut :

cek=`awk '$1 != 0 {print NR}' $Etc/named.conf` awk 'NR == 13, NR == $cek {print}' $Etc/named.conf |more

Untuk perintah –File6 [nama domain] Forward akan menampilkan isi dari

file forward sebuah server dengan menggunakan perintah “tail” dan “more”,

sebagai berikut:

tail -n 1000 $Var/rev."$isi3".arpa | more

Untuk perintah –List6 [nama domain] akan menampilkan isi dari file

sementara sebuah server dengan menggunakan perintah “awk” yang dimanfaatkan

untuk menghiutng baris, sehingga dapat menampilkan ke bentuk yang ada,

sebagai berikut:

Page 164: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

139

awk '/'$isi3'/{print "\t "$1,"\t\t" $2"/"$3}' $TMPVar/$isi3 cek=`awk '$1 != 0 {print NR}' $TMPVar/$isi3` if [[ $cek > "1" ]] then echo " |" echo awk 'NR == 2, NR == $cek {print "\t | --> "\t"$2"/"$3"\n\t " echo fi

Page 165: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

BAB VI

KESIMPULAN DAN SARAN

Pada bab ini adalah akhir dari penulisan skripsi ini dicantumkan beberapa

kesimpulan dan saran-saran dari beberapa hal yang terkait dengan komponen

jaringan IPv6 dan pengembangan tools untuk layanan named dari program BIND

pada server DNS berbasis alamat IPv6, berdasarkan komposisinya dari bab-bab

sebelumnya.

6.1. Kesimpulan

Dari implementasi sever DNS berbasis IPv6 dan pembuatan tools aplikasi

untuk protokol IPv6 dapat disimpulkan:

1. Sebuah komputer yang difungsikan sebagai server DNS dengan sistem

operasi Linux dan penggunaan servis named dari BIND versi 9.2.3 yang

menggunakan protokol IPv6 telah dapat diimplementasikan dalam sebuah

jaringan lokal berbasis IPv6 (tanpa protokol IPv4). Namun dalam

penerapannya, sebuah model konversi untuk pencarian dari alamat ke

nama (reverse) dengan format bitstring masih belum dapat

implementasikan sehingga untuk model konversi dengan format nibble

(bentuk lama) yang masih digunakan.

2. Pemberian nama untuk komputer server dank lien yang berada dalam

jaringan lokal telah dapat dilakukan. Namun, agar tiap klien dapat

mengenali server yang mewakilinya perlu dibuatkan file named.root6 pada

146

Page 166: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

147

server DNS sebagai pengganti file cache (file untuk koneksi ke Root atau

backbone6).

3. Beberapa perintah yang telah mendukung, seperti perintah dig, host, ping6

dengan nama dan layanan server Web dengan penggunaan browser untuk

pemanggilan halaman dengan nama (http://[nama server Web]) atau

alamat IPv6 (http://[alamat IPv6]), secara keseluruhan telah dapat

dilakukan dari komputer klien dengan sistem operasi Linux.

4. Pada komputer klien dengan sistem operasi Windows hanya dapat

melakukan pencarian dengan penggunaan perintah ping6 dengan alamat

IPv6, karena perintah dig dan host hanya terdapat pada sistem operasi

Linux. Untuk layanan server Web dengan penggunaan browser untuk

pemanggilan halaman dengan nama atau alamat IPv6, tidak dapat

dilakukan dari browser bawaan Windows atau Internet Explorer 6. Tetapi

jika memiliki browser tambahan seperti Opera atau Mozilla, maka masih

dapat dilakukan dengan pemanggilan alamat IPv6 (http://[alamat IPv6]).

Hal ini disebabkan resolver yang dijalankan pada komputer dengan sistem

operasi Windows belum mendukung pencarian dengan menggunakan

alamat IPv6.

Page 167: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

148

6.2. Saran

Saran yang dapat diberikan penulis dalam pengembangan tools aplikasi

yang telah mendukung IPv6 lebih lanjut:

1. Dalam tools aplikasi untuk server DNS ini telah terbentuk dengan baik,

namun untuk kode pemrograman masih terasa terlalu panjang karena

penggunaan dua model bahasa pemrograman, sehingga pemakaian untuk

tiap bahasa pemrograman yang ada dipisah. Maka penulis menyarankan

untuk pengembangan berikutnya digunakan dengan satu model bahasa

pemrograman saja.

2. Tools aplikasi ini hanya akan berjalan pada sistem operasi Linux yang

memanfaatkan aplikasi dari BIND versi 9.2.3 dengan servis named, maka

penulis menyarankan untuk mengembangkan tools yang telah ada dan

memanfaatkan aplikasi yang sama, karena sewaktu-waktu protokol IPv6

telah digunakan secara global, maka tools named6 untuk alamat IPv6 ini

suatu saat akan memerlukan pengembangan juga.

3. Saat ini telah terdapat varian-varian terbaru dari sistem operasi Linux dan

Windows, maka penulis berharap dilakukan kemabali perbandingan yang

lebih luas dalam penggunaan protokol IPv6 dan servis-servis lainnya yang

telah mendukungnya dengan varian sistem operasi yang terbaru dari Linux

dan Windows atau lainnya.

4. Karena tools named6 ini dibuat berbasis text-mode, diharapkan

pengembangan dari program berikutnya dapat berbasis GUI (Graphical

User Interface) atau berbasis web.

Page 168: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

DAFTAR PUSTAKA

Stallings, William, “Komunikasi Data dan Komputer Jaringan Komputer”,

Salemba Teknika, 2002.

Susanto, Budi, “Unix & Pemrograman Script”, J&J Learning. Yogyakarta 2001.

Yuliardi, Rofiq, “Bash Sripting untuk Adminsitrasi Sistem Linux”, Elex Media

Komputindo, Jakarta 2003.

Haryanto, Steven, “REGEX Kumpulan Resep Pemrograman”, PCMedia Buku

Mini, 2004, Penerbit Dian Rakyat.

Taufan, Riza, “Teori dan Implementasi IPv6 - Protokol Internet Masa Depan”,

Elex Media Komputindo, Jakarta 2002.

Rahmat Rafiudin, “IPv6 Addresing”, Elex Media Komputindo, Jakarta 2005

Rudianto, Dudy, “Perl untuk Pemula”, Elex Media Komputindo, Jakarta 2003

http://www.bind9.net/Bv9ARM.ch09.html

http://h71000.www7.hp.com/doc/732final/6645/6645pro_005.html

http://mirrors.bieringer.de/Linux+IPv6-HOWTO

http://www.ilmukomputer.com/umum/wahidi/wahidi-ipv6.zip

Page 169: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

LAMPIRAN

Program named6 #!/bin/bash #Program bantu setting DOMAIN NAME SYSTEM berbasis protokol IPv6 # dalam mesin Linux berbasis Text-Mode # # oleh # Fito Nathius Tatontos # ([email protected]) || ([email protected]) Etc=/etc; Var=/var/named TMPS=/var/tmp/SERVER; TMPH=/var/tmp/HOST; TMPE=/var/tmp/EDIT TMPVar=/var/tmp help=/etc/dns6/help/hlp_bantu6; helpA=/etc/dns6/help/hlp_add helpS=/etc/dns6/help/hlp_addS; helpH=/etc/dns6/help/hlp_addH helpE=/etc/dns6/help/hlp_edit; helpED=/etc/dns6/help/hlp_editD; helpEH=/etc/dns6/help/hlp_editH; helpD=/etc/dns6/help/hlp_del helpV=/etc/dns6/help/hlp_view isi1=$1; isi2=$2; isi3=$3; isi4=$4; isi5=$5 isi6=$6; isi7=$7; isi8=$8; isi9=$9 bantu() { if [[ $isi1 == help || $isi1 == "" ]] then . $help else echo "Perhatikan format penulisan !!!" fi } tambah() { if [[ $isi2 == help || $isi2 == "" ]] then $helpA elif [[ $isi2 == -DNS && $isi3 != "" && $isi4 == -ip6/prefix && $isi5 != "" ]] then if [[ -d $TMPS ]] #=======TAMBAH NAMA SERVER then if [[ -f $Var/f-"$isi3" ]] then echo; echo "Nama Domain $isi3 Sudah Ada !!!"; echo else echo "$isi5" > $TMPS/ip; sed 's/[/]/ /' $TMPS/ip > $TMPS/ipku ip=`awk '{print $1}' $TMPS/ipku`; pfx=`awk '{print $2}' $TMPS/ipku`; echo "$isi3" > $TMPS/namaS; echo "$ip" > $TMPS/ipS; echo "$pfx" > $TMPS/pfxS if [[ $ip != "" && $pfx != "" ]] then echo "$isi3 $ip $pfx" > $TMPVar/"$isi3"; echo "1" > /proc/sys/net/ipv6/bindv6only

Page 170: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

rm $TMPS/ip; rm $TMPS/ipku ./cekIP.pl $ip $pfx $isi3 exit 0 fi exit 0 fi else [[ -s $Etc/resolv.conf ]] mkdir $TMPS; mv $Etc/named.conf $Etc/named.conf~ echo "$isi5" > $TMPS/ip; sed 's/[/]/ /' $TMPS/ip > $TMPS/ipku ip=`awk '{print $1}' $TMPS/ipku`; pfx=`awk '{print $2}' $TMPS/ipku`; echo "$isi3" > $TMPS/namaS; echo "$ip" > $TMPS/ipS; echo "$pfx" > $TMPS/pfxS echo "1" > /proc/sys/net/ipv6/bindv6only; rm $TMPS/ip; rm $TMPS/ipku ./cekIP.pl $ip $pfx $isi3 exit 0 fi elif [[ $isi2 == -H && $isi3 != "" && $isi4 == -ip6/prefix && $isi5 != "" && $isi6 = -Z && $isi7 != "" ]] then if [[ -d $TMPH && -f $Var/f-"$isi7" ]] #======TAMBAH NAMA KLIEN HOST then if cek=`grep $isi3 $TMPVar/$isi7` then echo; echo "Nama Host: $isi3 Sudah Ada Dalam Zona: $isi7";echo exit 0 else echo "$isi5" > $TMPH/ip; sed 's/[/]/ /' $TMPH/ip > $TMPH/ipku ip=`awk '{print $1}' $TMPH/ipku`; pfx=`awk '{print $2}' $TMPH/ipku`; echo "$isi3" > $TMPH/namaH; echo "$ip" > $TMPH/ipH echo "$pfx" > $TMPH/pfxH; echo "$isi7" > $TMPH/zonaH rm $TMPH/ip; rm $TMPH/ipku ./cekIP.pl $ip $pfx $isi3 $isi7 exit 0 fi elif [[ -f $Var/f-"$isi7" ]] then mkdir $TMPH; echo "$isi5" > $TMPH/ip; sed 's/[/]/ /' $TMPH/ip > $TMPH/ipku ip=`awk '{print $1}' $TMPH/ipku`; pfx=`awk '{print $2}' $TMPH/ipku`; echo "$isi3" > $TMPH/namaH; echo "$ip" > $TMPH/ipH echo "$pfx" > $TMPH/pfxH; echo "$isi7" > $TMPH/zonaH rm $TMPH/ip; rm $TMPH/ipku ./cekIP.pl $ip $pfx $isi3 $isi7 exit 0 else echo; echo "Zona DNS6: $isi7 Tidak Ditemukan !!!"; echo exit 0 fi else echo; echo "Perhatikan Format Penulisan !!!"; echo; $helpS; $helpH exit 0 fi } ubah() { if [[ $isi2 == help || $isi2 == "" ]]

Page 171: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

then $helpE elif [[ $isi2 == -DNS && $isi3 != "" && $isi4 == -NN && $isi5 != "" ]] then #======== EDIT NAMA SERVER if [[ -f $Var/f-"$isi3" && -d $TMPE ]] then echo "$isi3" > $TMPE/namaLama; echo "$isi5" > $TMPE/namaBaru ./EditNama6.sh exit 0 elif [[ -f $Var/f-"$isi3" ]] then mkdir $TMPE echo "$isi3" > $TMPE/namaLama; echo "$isi5" > $TMPE/namaBaru ./EditNama6.sh exit 0 else echo; echo "Nama Domain Sever: $isi3, Tidak Ditemukan !!!"; . $helpED exit 0 fi elif [[ $isi2 == -H && $isi3 != "" && $isi4 == -NN && $isi5 != "" && $isi6 == -Z && $isi7 != "" ]] then #======== EDIT NAMA HOST if [[ -f $Var/f-"$isi7" && -d $TMPE ]] then if cek=`grep $isi7 $TMPVar/$isi7` then echo "$isi3" > $TMPE/namaLama; echo "$isi5" > $TMPE/namaBaru echo "$isi7" > $TMPE/ZONA ./EditNama6.sh exit 0 else echo; echo "Nama Host: $isi3, Tidak Ada Dalam Zona: $isi7"; echo exit 0 fi elif [[ -f $Var/f-"$isi7" ]] then if cek=`grep $isi7 $TMPVar/$isi7` then mkdir $TMPE echo "$isi3" > $TMPE/namaLama; echo "$isi5" > $TMPE/namaBaru echo "$isi7" > $TMPE/ZONA ./EditNama6.sh exit 0 else echo; echo "Nama Host: $isi3, Tidak Ada Dalam Zona: $isi7"; echo exit 0 fi else echo; echo "File DNS Tidak Ditemukan !!!"; $helpEH exit 0 fi elif [[ $isi2 == -ip6/prefix && $isi3 != "" && $isi4 == -Nip6/prefix && $isi5 != "" && $isi6 == -DNS && $isi7 != "" ]] then #======= EDIT IP SERVER=============# if [[ -f $Var/f-"$isi7" && -d $TMPE ]]

Page 172: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

then echo "$isi3" > $TMPE/ipL; sed 's/[/]/ /' $TMPE/ipL > $TMPE/ipLku ipLama=`awk '{print $1}' $TMPE/ipLku`; pfxLama=`awk '{print $2}' $TMPE/ipLku` echo "$isi5" > $TMPE/ipB; sed 's/[/]/ /' $TMPE/ipB > $TMPE/ipBku ipBaru=`awk '{print $1}' $TMPE/ipBku`; pfxBaru=`awk '{print $2}' $TMPE/ipBku` echo "$isi7" > $TMPE/DNS; nama=`awk '{print $1}' $TMPE/DNS` ipL=`awk '/'$nama'/{print $2}' $TMPVar/$nama` pfxL=`awk '/'$nama'/{print $3}' $TMPVar/$nama` if [[ $ipL == $ipLama && $pfxL == $pfxLama && $pfxBaru != $pfxLama ]] then rm $TMPE/ipL; rm $TMPE/ipLku; rm $TMPE/ipB; rm $TMPE/ipBku; ./cekIPB.pl $ipBaru $pfxBaru $ipLama $pfxLama else echo; echo "Alamat IPv6 atau Prefix Lama Tidak Sesuai !!!"; echo echo "Alamat IPv6 atau Prefix Baru == IPv6 atau Prefix Lama !!!"; echo rm $TMPE/ipL; rm $TMPE/ipLku; rm $TMPE/ipB; rm $TMPE/ipBku; rm $TMPE/DNS exit 0 fi elif [[ -f $Var/f-"$isi7" ]] then mkdir $TMPE echo "$isi3" > $TMPE/ipL; sed 's/[/]/ /' $TMPE/ipL > $TMPE/ipLku ipLama=`awk '{print $1}' $TMPE/ipLku`; pfxLama=`awk '{print $2}' $TMPE/ipLku`; echo "$isi5" > $TMPE/ipB; sed 's/[/]/ /' $TMPE/ipB > $TMPE/ipBku ipBaru=`awk '{print $1}' $TMPE/ipBku`; pfxBaru=`awk '{print $2}' $TMPE/ipBku`; echo "$isi7" > $TMPE/DNS; nama=`awk '{print $1}' $TMPE/DNS` ipL=`awk '/'$nama'/{print $2}' $TMPVar/$nama` pfxL=`awk '/'$nama'/{print $3}' $TMPVar/$nama` if [[ $ipL == $ipLama && $pfxL == $pfxLama && $pfxBaru != $pfxLama ]] then rm $TMPE/ipL; rm $TMPE/ipLku; rm $TMPE/ipB; rm $TMPE/ipBku; ./cekIPB.pl $ipBaru $pfxBaru $ipLama $pfxLama exit 0 else echo; echo "Alamat IPv6 atau Prefix Lama Tidak Sesuai !!!"; echo echo "Alamat IPv6 atau Prefix Baru == IPv6 atau Prefix Lama !!!"; echo rm $TMPE/ipL; rm $TMPE/ipLku; rm $TMPE/ipB; rm $TMPE/ipBku; rm $TMPE/DNS exit 0 fi else echo; echo "Nama Domain : $isi7 Tidak Ditemukan !!!"; echo fi elif [[ $isi2 == -ip6/prefix && $isi3 != "" && $isi4 == -Nip6/prefix && $isi5 != "" && $isi6 == -H && $isi7 != "" && $isi8 == -Z && $isi9 != "" ]] then #=================EDIT IP HOST=============# if [[ -f $Var/f-"$isi9" && -d $TMPE ]] then echo "$isi3" > $TMPE/ipL; echo "$isi5" > $TMPE/ipB; sed 's/[/]/ /' $TMPE/ipL > $TMPE/ipLku; sed 's/[/]/ /' $TMPE/ipB > $TMPE/ipBku ipLama=`awk '{print $1}' $TMPE/ipLku`; pfxLama=`awk '{print $2}' $TMPE/ipLku` ipBaru=`awk '{print $1}' $TMPE/ipBku`; pfxBaru=`awk '{print $2}' $TMPE/ipBku` echo "$isi7" > $TMPE/HOST; namaH=`awk '{print $1}' $TMPE/HOST` echo "$isi9" > $TMPE/ZONA; namaD=`awk '{print $1}' $TMPE/ZONA` cekH=`awk '/'$namaH'/{print $1}' $TMPVar/$namaD`

Page 173: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

ipL=`awk '/'$namaH'/{print $2}' $TMPVar/$namaD`; pfxL=`awk '/'$namaH'/{print $3}' $TMPVar/$namaD` if [[ $namaH == $cekH && $ipLama == $ipL && $pfxLama == $pfxL && $pfxBaru != $pfxLama ]] then rm $TMPE/ipL; rm $TMPE/ipLku; rm $TMPE/ipB; rm $TMPE/ipBku ./cekIPB.pl $ipBaru $pfxBaru $ipLama $pfxLama else echo; echo "Alamat IPv6 atau Prefix Lama Tidak Sesuai !!!"; echo echo "Alamat IPv6 atau Prefix Baru == IPv6 atau Prefix Lama !!!"; echo rm $TMPE/ipL; rm $TMPE/ipLku; rm $TMPE/ipB; rm $TMPE/ipBku rm $TMPE/HOST; rm $TMPE/ZONA exit 0 fi elif [[ -f $Var/f-"$isi9" ]] then mkdir $TMPE echo "$isi3" > $TMPE/ipL; sed 's/[/]/ /' $TMPE/ipL > $TMPE/ipLku ipLama=`awk '{print $1}' $TMPE/ipLku`; pfxLama=`awk '{print $2}' $TMPE/ipLku`; echo "$isi5" > $TMPE/ipB; sed 's/[/]/ /' $TMPE/ipB > $TMPE/ipBku ipBaru=`awk '{print $1}' $TMPE/ipBku`; pfxBaru=`awk '{print $2}' $TMPE/ipBku`; echo "$isi7" > $TMPE/HOST; namaH=`awk '{print $1}' $TMPE/HOST` echo "$isi9" > $TMPE/ZONA; namaD=`awk '{print $1}' $TMPE/ZONA` cekH=`awk '/'$namaH'/{print $1}' $TMPVar/$namaD` ipL=`awk '/'$namaH'/{print $2}' $TMPVar/$namaD` pfxL=`awk '/'$namaH'/{print $3}' $TMPVar/$namaD` if [[ $namaH == $cekH && $ipLama == $ipL && $pfxLama == $pfxL && $pfxBaru != $pfxLama ]] then rm $TMPE/ipL; rm $TMPE/ipLku; rm $TMPE/ipB; rm $TMPE/ipBku ./cekIPB.pl $ipBaru $pfxBaru $ipLama $pfxLama else echo; echo "Alamat IPv6 atau Prefix Lama Tidak Sesuai !!!"; echo echo "Alamat IPv6 atau Prefix Baru == IPv6 atau Prefix Lama !!!"; echo rm $TMPE/ipL; rm $TMPE/ipLku; rm $TMPE/ipB; rm $TMPE/ipBku rm $TMPE/HOST; rm $TMPE/ZONA exit 0 fi else echo; echo "Nama Domain6 : $isi9 Tidak Ditemukan !!!"; $helpEH; echo fi else echo; echo "Perhatikan Format Penulisan !!!" $helpE echo "Gunakan command:= named6 view untuk cek list Nama & IP"; echo fi } hapus() { if [[ $isi2 == "" || $isi2 == "help" ]] then . $helpD elif [[ $isi2 == "-DNS" && $isi3 != "" ]] #===========HAPUS NAMA SERVER then if [[ -d $TMPE ]]

Page 174: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

then if [[ -f $Var/f-"$isi3" ]] then echo "$isi3" > $TMPVar/DNS ./delete6.sh exit 0 else echo; echo "Nama Domain Server: $isi3 Tidak Ditemukan !!!"; echo exit 0 fi elif [[ -f $Var/f-"$isi3" ]] then mkdir $TMPE; echo "$isi3" > $TMPVar/DNS ./delete6.sh exit 0 else echo; echo "Nama Domain Server: $isi3 Tidak Ditemukan !!!"; echo exit 0 fi elif [[ $isi2 == "-H" && $isi3 != "" && $isi4 == -Z && $isi5 != "" ]] then #===========HAPUS NAMA HOST cekH=`awk '/'$isi3'/{print $1}' $TMPVar/$isi5` if [[ -d $TMPE && -f $Var/f-"$isi5" && "$isi3" == "$cekH" ]] then echo "$isi3" > $TMPVar/host; echo "$isi5" > $TMPVar/zona ./delete6.sh exit 0 elif [[ -f $Var/f-"$isi5" && "$isi3" == "$cekH" ]] then mkdir $TMPE; echo "$isi3" > $TMPVar/host; echo "$isi5" > $TMPVar/zona ./delete6.sh exit 0 else echo; echo "Nama Host: $isi3 atau Nama Domain: $isi5 Tidak Ditemukan !!!"; echo fi else echo; echo "File Server belum di buat !!!"; echo . $helpD fi } tampil() { if [[ $isi2 == "" || $isi2 == "help" ]] then . $helpV elif [[ $isi2 == Zone && $isi3 == "" ]] then #============TAMPIL FILE NAMED.CONF echo cek=`awk '$1 != 0 {print NR}' $Etc/named.conf` awk 'NR == 13, NR == $cek {print}' $Etc/named.conf |more exit 0 elif [[ $isi2 = -File6 && $isi3 != "" && $isi4 != "" ]] then #============TAMPIL FILE FORWARD SERVER if [[ $isi4 = Forward ]]

Page 175: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

then if [[ -f $Var/f-"$isi3" ]] then tail -n 1000 $Var/f-"$isi3" | more #tampilkan baris dari bawah exit 0 else echo; echo "File Zona Forward DNS Tidak Ditemukan !!!"; echo exit 0 fi elif [[ $isi4 = Reverse ]] then #============TAMPIL FILE REVERSE SERVER if [[ -f $Var/rev."$isi3".arpa ]] then tail -n 1000 $Var/rev."$isi3".arpa | more #tampilkan baris dari bawah exit 0 else echo; echo "File Zona Reverse DNS Tidak Ditemukan !!!"; echo fi fi elif [[ $isi2 = -List6 && $isi3 != "" ]] then #============TAMPIL FILE TEMPORARY SERVER if [[ -f $TMPVar/"$isi3" ]] then echo; echo " ========================================================" echo " || Server/Host || IPv6 / Prefix |" echo " ========================================================"; echo awk '/'$isi3'/{print "\t "$1,"\t\t" $2"/"$3}' $TMPVar/$isi3 cek=`awk '$1 != 0 {print NR}' $TMPVar/$isi3` if [[ $cek > "1" ]] then echo " |" echo awk 'NR == 2, NR == $cek {print "\t | --> "$1,"\t"$2"/"$3"\n\t " }' $TMPVar/$isi3 echo fi else echo; echo "File Domain: $isi3 Tidak Ditemukan !!!"; echo fi exit 0 else . $helpV fi } mulai() { . /sbin/service named start } ulang() { . /sbin/service named restart }

Page 176: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

berhenti() { . /sbin/service named stop } stat() { . /sbin/service named status } case $isi1 in add) tambah;; edit) ubah;; delete) hapus;; "view") tampil;; help) bantu;; "") bantu;; start) mulai;; restart) ulang;; stop) berhenti;; status) stat;; esac exit 0 Program cekIP.pl #!/usr/bin/perl $ip = $ARGV[0]; $prfx = $ARGV[1]; $nama = $ARGV[2]; $zona = $ARGV[3]; $DIRS ="/var/tmp/SERVER"; $DIRH ="/var/tmp/HOST"; sub hapusS { system("rm $DIRS/namaS"); system("rm $DIRS/ipS"); system("rm $DIRS/pfxS"); } sub hapusH { system("rm $DIRH/namaH"); system("rm $DIRH/ipH"); system("rm $DIRH/pfxH"); system("rm $DIRH/zonaH"); } @prefix = (16, 32, 48, 64, 80, 96, 112); if($ip !~ /[G-Z]|[g-z]/ && $ip !~ /^(?>(.*?){1}):/ && $ip !~ /(?>(.*?){1}):::/ && $ip !~ /(?>(.*?){1})[;]/ && $ip !~ /(?>(\.*?\.){1})/) { if ($ip eq "::1") { print "\nMessage 4 ==> Anda memasukkan Alamat Loopback !!!\n\n"; if(open(test,"$DIRH/zonaH")){ hapusH(); } else { hapusS(); } } else { $kar= length($ip); #print "$kar\n\n"; for($z=0;$z<$kar;$z++) {

Page 177: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

$awal=substr($ip,$z,1); if($awal eq ":"){$ok=1;} if($ok ne 1 ){$hitungx=$hitungx+$awal; } } if($hitungx eq 0) {$error=1;} for($i=0;$i<$kar;$i++) { $karak = substr($ip,$i,1); #untuk baca karakter ke i sebanyak 1 karakter $karak2 = substr($ip,$i+1,1); # untuk baca karakter stelah karakter i $ending= substr($ip,$kar-1,1);# untuk baca akhir karakter ":" $jadi="$karak$karak2"; # gabungan karakter i dan i+1 if($karak eq ":" && $karak2 ne ":"){$count=$count+1;$x=0;} if($ending eq ":") {$error=1;} if($jadi eq "::") {$cap=$cap+1; } if($karak ne ":") { $x=$x+1; if($x>4){$error=1;} } } if($cap<"1" && $count < 7 || $cap ==1 && $count > 6 ) { print "\nMessage 2 ==> Format Input alamat IPv6 SALAH!!! \n\n"; if(open(test,"$DIRH/zonaH")){ hapusH(); } else { hapusS(); } } elsif($cap=="2" || $error=="1" || $count > "7" ) { print "\nMessage 3 ==> Format INPUT alamat IPv6 SALAH!!!\n\n"; if(open(test,"$DIRH/zonaH")){ hapusH(); } else { hapusS(); } } else { $tes=@prefix; for ($x=0; $x<$tes;$x++) #########checking prefix { if($prfx == $prefix[$x]) { $pass = "1";} } if ($pass eq "1") { if(open(test,"$DIRH/zonaH")) { system("echo $nama $ip $prfx >> /var/tmp/$zona"); system("./ffwdHST.sh"); } else { system("echo $nama $ip $prfx > /var/tmp/$nama"); system("./ffwdSRV.sh"); } } else { print "Perhatikan Format Prefix !!!\n"; print "Gunakan Prefix : 16, 32, 48, 64, 80, 96, 112\n"; if(open(test,"$DIRH/zonaH")){ hapusH(); }

Page 178: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

else { hapusS(); } } } } } else { print "\nMessage 1 ==> Format INPUT alamat IPv6 SALAH!!!\n\n"; if(open(test,"$DIRH/zonaH")){ hapusH(); } else { hapusS(); } } Program ffwdSRV.sh #!/bin/bash TMPS=/var/tmp/SERVER; Var=/var/named; Etc=/etc namaS=`awk '{print $1}' $TMPS/namaS`; ipS=`awk '{print $1}' $TMPS/ipS` pfxS=`awk '{print $1}' $TMPS/pfxS` revlocal="0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa." ptrlocal="1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR localhost." cek=`awk '/'$namaS'/{print $2}' $Etc/resolv.conf` if [[ -s $Etc/resolv.conf ]] then #================Tambah file named.root================== echo ". 3600000 IN NS $namaS. $namaS. 3600000 IN AAAA $ipS $namaS. 3600000 IN A6 0 $ipS " >> $Var/named.root6 #=================Tambah file MASTER6===================== echo "\$ORIGIN $namaS. \$TTL 86400 @ IN SOA $namaS. root.$namaS. ( 42 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS ns.$namaS. IN AAAA $ipS IN A6 0 $ipS " > $Var/f-"$namaS" ./reSRV.pl $ipS $pfxS exit 0 else #================Buat file named.local==================== echo "\$ORIGIN $revlocal \$TTL 86400 @ IN SOA localhost. root.localhost. ( 2005402170; serial 3H ; refresh

Page 179: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

15M ; retry 1W ; expiry 1D ) ; minimum IN NS localhost. $ptrlocal" > $Var/named6.local #==============Buat file localhost6.zone============== echo "\$ORIGIN localhost. \$TTL 86400 @ IN SOA localhost. root.localhost. ( 2005402170; serial 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS localhost. IN AAAA ::1 IN A6 0 ::1" > $Var/localhost6.zone #==================Buat file named.root================== echo ". 3600000 IN NS $namaS. $namaS. 3600000 IN AAAA $ipS $namaS. 3600000 IN A6 0 $ipS " > $Var/named.root6 #===================Buat file MASTER6==================== echo "\$ORIGIN $namaS. \$TTL 86400 @ IN SOA $namaS. root.$namaS. ( 42 ; serial (d. adams) 3H ; refresh 15M ; retry 1W ; expiry 1D ) ; minimum IN NS ns.$namaS. IN AAAA $ipS IN A6 0 $ipS " > $Var/f-"$namaS" ./reSRV.pl $ipS $pfxS exit 0 fi Program ffwdHST.sh #!/bin/bash TMPH=/var/tmp/HOST; TMPVar=/var/tmp Var=/var/named zoneH=`awk '{print $1}' $TMPH/zonaH` namaH=`awk '{print $1}' $TMPH/namaH` ipH=`awk '{print $1}' $TMPH/ipH` pfxH=`awk '{print $1}' $TMPH/pfxH`

Page 180: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

#============Tambah Host========================== echo "$namaH IN AAAA $ipH IN A6 0 $ipH " >> $Var/f-"$zoneH" ./reHST.pl $ipH $pfxH exit 0 Program reSRV.pl #!/usr/bin/perl $ipS = $ARGV[0]; $prfxS = $ARGV[1]; #####################PENDEFINISIAN nilai prfx; if ($prfxS == "16") { $nilai=0; $nilai2=1 } if ($prfxS == "32") { $nilai=1; $nilai2=2;} if ($prfxS == "48") { $nilai=2; $nilai2=3;} if ($prfxS == "64") { $nilai=3; $nilai2=4;} if ($prfxS == "80") { $nilai=4; $nilai2=5;} if ($prfxS == "96") { $nilai=5; $nilai2=6;} if ($prfxS == "112") { $nilai=6; $nilai2=7;} #cari "::" kemudian count kolom yg kurang $cari= length($ipS); for($i=0;$i<$cari;$i++) { $kar = substr($ipS,$i,1); $kar2 = substr($ipS,$i+1,1); $kar3 = substr($ipS,$i+2,1); if ($kar eq ":" && $kar2 ne ":") { $count=$count+1; } elsif($kar eq ":" && $kar2 eq ":") { $tempat=$tempat+1; if($kar3 ne "") { $count=$count+1; } } } if($tempat eq "1") { $hitung = 8 - ($count) ; # print "$hitung \n "; } if($hitung >= 0) { for($i=0;$i<$cari;$i++) { $kar=substr($ipS,$i,1); $kar2=substr($ipS,$i+1,1); if($kar ne ":")

Page 181: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

{ $karakter="$karakter$kar" } elsif($kar eq ":" && $kar2 ne ":") { $karakter="$karakter:"; } elsif($kar eq ":" && $kar2 eq ":") { for($x=1;$x<=$hitung;$x++) { $enol="0000"; $karakter="$karakter:$enol"; } } } my $str2 = $karakter; @daftar= split(/:/,$str2); $count=$#daftar; for($i=0;$i<=$count;$i++) { if(length($daftar[$i]) == 4) {} #print "$daftar[$i]"; } if(length($daftar[$i]) == 3 && $i != 0) { $daftar[$i]= "0$daftar[$i]"; } #print "$daftar[$i]"; } if(length($daftar[$i]) == 2 && $i != 0) { $daftar[$i]= "00$daftar[$i]";} #print "$daftar[$i]"; } if(length($daftar[$i]) == 1 && $i != 0) { $daftar[$i]= "000$daftar[$i]";} #print "$daftar[$i]";} } # print "\n"; ##########################PENGESETAN nilai pemotongan IPv6 bagian depan $itung=$nilai; for($j=0;$j<=$itung;$j++) { $awal="$awal$daftar[$j]"; } $panjang = length($awal); for($i=$panjang; $i>=0;$i--) { $temp=substr($awal,$i,1); if($i==$panjang-1) { $depan="$temp"; } else { $depan="$depan.$temp"; } } system("echo $depan > /var/tmp/SERVER/depanS"); #######################PENGESETAN nilai pemotongan IPv6 bagian belakang $itung2=7; for($j2=$nilai2;$j2<=$itung2;$j2++) ######set NILAI2 di dalam For { $blkg="$blkg$daftar[$j2]"; } $panjang2 = length($blkg); for ($i2=$panjang2-1; $i2>=0;$i2--) { $temp2=substr($blkg,$i2,1);

Page 182: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

if($i2==$panjang2-1) { $akhir="$temp2"; } else { $akhir="$akhir.$temp2"; } } system("echo $akhir > /var/tmp/SERVER/belakangS"); system("./reSRV.sh"); } Program reHST.pl #!/usr/bin/perl $ipH = $ARGV[0]; $prfxH = $ARGV[1]; #####################PENDEFINISIAN nilai prfx; if ($prfxH == "16") { $nilai=0; $nilai2=1 } if ($prfxH == "32") { $nilai=1; $nilai2=2;} if ($prfxH == "48") { $nilai=2; $nilai2=3;} if ($prfxH == "64") { $nilai=3; $nilai2=4;} if ($prfxH == "80") { $nilai=4; $nilai2=5;} if ($prfxH == "96") { $nilai=5; $nilai2=6;} if ($prfxH == "112") { $nilai=6; $nilai2=7;} #cari "::" kemudian count kolom yg kurang $cari= length($ipH); for($i=0;$i<$cari;$i++) { $kar = substr($ipH,$i,1); $kar2 = substr($ipH,$i+1,1); $kar3 = substr($ipH,$i+2,1); if ($kar eq ":" && $kar2 ne ":") { $count=$count+1; } elsif($kar eq ":" && $kar2 eq ":") { $tempat=$tempat+1; if($kar3 ne "") { $count=$count+1; } } } if($tempat eq "1") { $hitung = 8 - ($count) ; } if($hitung >= 0) { for($i=0;$i<$cari;$i++) { $kar=substr($ipH,$i,1); $kar2=substr($ipH,$i+1,1); if($kar ne ":") { $karakter="$karakter$kar" }

Page 183: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

elsif($kar eq ":" && $kar2 ne ":") { $karakter="$karakter:"; } elsif($kar eq ":" && $kar2 eq ":") { for($x=1;$x<=$hitung;$x++) { $enol="0000"; $karakter="$karakter:$enol" ; } } } # print"$karakter\n"; my $str2 = $karakter; @daftar= split(/:/,$str2); $count=$#daftar; for($i=0;$i<=$count;$i++) { if(length($daftar[$i]) == 4) {} # print "$daftar[$i]"; if(length($daftar[$i]) == 3 && $i != 0) { $daftar[$i]= "0$daftar[$i]"; } # print "$daftar[$i]"; if(length($daftar[$i]) == 2 && $i != 0) { $daftar[$i]= "00$daftar[$i]"; } # print "$daftar[$i]"; if(length($daftar[$i]) == 1 && $i != 0) { $daftar[$i]= "000$daftar[$i]"; } # print "$daftar[$i]"; } ###################PENGESETAN nilai pemotongan IPv6 bagian belakang $itung2=7; for($j2=$nilai2;$j2<=$itung2;$j2++) ######set NILAI2 di dalam For { $blkg="$blkg$daftar[$j2]"; } $panjang2 = length($blkg); for ($i2=$panjang2-1; $i2>=0;$i2--) { $temp2=substr($blkg,$i2,1); if($i2==$panjang2-1) { $akhir="$temp2"; } else { $akhir="$akhir.$temp2"; } } system("echo '$akhir' > /var/tmp/HOST/belakangH"); system("./reHST.sh"); }

Page 184: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

Program reSRV.sh #!/bin/bash TMPS=/var/tmp/SERVER Var=/var/named namaS=`awk '{print $1}' $TMPS/namaS` dpnS=`awk '{print $1}' $TMPS/depanS` blkgS=`awk '{print $1}' $TMPS/belakangS` #==========membuat file rev.ip6.arpa==================== echo "\$ORIGIN $dpnS.ip6.arpa. \$TTL 86400 @ IN SOA $namaS. root.$namaS. ( 42 ; Serial 3H ; Refresh 15M ; Retry 1W ; Expire 1D ) ; Minimum IN NS ns.$namaS. $blkgS IN PTR ns.$namaS." > $Var/rev."$namaS".arpa #==========membuat file rev.ip6.int===================== echo "\$ORIGIN $dpnS.ip6.int. \$TTL 86400 @ IN SOA $namaS. root.$namaS. ( 42 ; Serial 3H ; Refresh 15M ; Retry 1W ; Expire 1D ) ; Minimum IN NS ns.$namaS. DNAME $dpnS.ip6.arpa." > $Var/rev."$namaS".int ./named-resolv.sh exit 0 Program reHST.sh #!/bin/bash Var=/var/named TMPH=/var/tmp/HOST zoneH=`awk '{print $1}' $TMPH/zonaH` namaH=`awk '{print $1}' $TMPH/namaH` #baca nama host blkgH=`awk '{print $1}' $TMPH/belakangH` #baca ip potong belakang echo "$blkgH IN PTR $namaH.$zoneH." >> $Var/rev."$zoneH".arpa rm $TMPH/namaH; rm $TMPH/ipH; rm $TMPH/pfxH rm $TMPH/belakangH; rm $TMPH/zonaH exit 0

Page 185: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

Program named-resolv.sh #!/bin/bash TMPS=/var/tmp/SERVER; Etc=/etc; TMP=/var/tmp namaS=`awk '{print $1}' $TMPS/namaS` ipS=`awk '{print $1}' $TMPS/ipS` dpnS=`awk '{print $1}' $TMPS/depanS` revlocal="0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" inet="127.0.0.1 allow { localhost; } keys { rndckey; };" inet6="::1 allow { localhost; } keys { rndckeys; };" if [[ -f $Etc/named.conf ]] then if cek=`grep $namaS $Etc/named.conf` then echo echo "Nama Domain Sudah Ada" echo exit 0 else itung=`awk '/include/{print NR}' $Etc/named.conf` let x=$itung sed "$x"d $Etc/named.conf > $TMP/named.conf #=================Tambah file Zone=============== echo "zone \"$namaS\" IN { type master; file \"f-$namaS\"; allow-update { none;}; }; zone \"$dpnS.ip6.int\" IN { type master; file \"rev.$namaS.int\"; allow-update { none;}; }; zone \"$dpnS.ip6.arpa\" IN { type master; file \"rev.$namaS.arpa\"; allow-update { none;}; }; include \"/etc/rndc.key\";" >> $TMP/named.conf mv $TMP/named.conf $Etc/named.conf #===========Tambah File Resolver========== echo " nameserver $namaS search $ipS" >> $Etc/resolv.conf #========================================== rm $TMPS/namaS; rm $TMPS/ipS; rm $TMPS/pfxS rm $TMPS/depanS; rm $TMPS/belakangS exit 0 fi else

Page 186: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

#=============Buat File Zone=============== echo "// generated by named-bootconf.pl options { directory \"/var/named\"; listen-on-v6 { any; }; }; controls { inet $inet inet $inet6 }; zone \".\" IN { type hint; file \"named.root6\"; }; zone \"localhost\" IN { type master; file \"localhost6.zone\"; allow-update { none; }; }; zone \"$revlocal\" IN { type master; file \"named6.local\"; allow-update { none;}; }; zone \"$namaS\" IN { type master; file \"f-$namaS\"; allow-update { none;}; }; zone \"$dpnS.ip6.int\" IN { type master; file \"rev.$namaS.int\"; allow-update { none;}; }; zone \"$dpnS.ip6.arpa\" IN { type master; file \"rev.$namaS.arpa\"; allow-update { none;}; }; include \"/etc/rndc.key\";" > $Etc/named.conf #===============buat File Resolver=============== echo "nameserver $namaS search $ipS" > $Etc/resolv.conf rm $TMPS/namaS; rm $TMPS/ipS; rm $TMPS/pfxS

Page 187: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

rm $TMPS/depanS; rm $TMPS/belakangS; exit 0 fi Program EDITNama6.sh #!/bin/bash Var=/var/named; Etc=/etc TMPE=/var/tmp/EDIT; TMPVar=/var/tmp if [[ -f $TMPE/ZONA ]] then ########################-EDIT NAMA HOST-######################### zona=`awk '{print $1}' $TMPE/ZONA` namaL=`awk '{print $1}' $TMPE/namaLama` namaB=`awk '{print $1}' $TMPE/namaBaru` if [[ $namaB != $namaL ]] then sed "s/$namaL/$namaB/g" $Var/f-"$zona" > $TMPE/f-"$zona" mv $TMPE/f-"$zona" $Var sed "s/$namaL/$namaB/g" $Var/rev."$zona".arpa > $TMPE/rev."$zona".arpa mv $TMPE/rev."$zona".arpa $Var sed "s/$namaL/$namaB/g" $TMPVar/"$zona" > $TMPE/"$zona" mv $TMPE/"$zona" $TMPVar rm $TMPE/ZONA; rm $TMPE/namaLama; rm $TMPE/namaBaru; exit 0 else echo; echo "\"Nama Host Baru\" Sama Dengan \"Nama Host Lama\" !!!"; echo fi else ########################-EDIT NAMA DOMAIN-######################## namaL=`awk '{print $1}' $TMPE/namaLama` namaB=`awk '{print $1}' $TMPE/namaBaru` if [[ "$namaB" != "$namaL" ]] then sed "s/$namaL/$namaB/g" $Var/named.root6 > $TMPE/named.root6 mv $TMPE/named.root6 $Var sed "s/$namaL/$namaB/g" $Var/f-"$namaL" > $Var/f-"$namaB" rm $Var/f-"$namaL" sed "s/$namaL/$namaB/g" $Var/rev."$namaL".arpa > $Var/rev."$namaB".arpa rm $Var/rev."$namaL".arpa sed "s/$namaL/$namaB/g" $Var/rev."$namaL".int > $Var/rev."$namaB".int rm $Var/rev."$namaL".int sed "s/$namaL/$namaB/g" $Etc/resolv.conf > $TMPE/resolv.conf mv $TMPE/resolv.conf $Etc

Page 188: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

sed "s/$namaL/$namaB/g" $Etc/named.conf > $TMPE/named.conf mv $TMPE/named.conf $Etc sed "s/$namaL/$namaB/g" $TMPVar/"$namaL" > $TMPVar/"$namaB" rm $TMPVar/"$namaL"; rm $TMPE/namaLama; rm $TMPE/namaBaru exit 0 else echo; echo "\"Nama Domain Baru\" Sama Dengan \"Nama Domain Lama\" !!!"; echo fi fi Program EditIP6.sh #!/bin/bash TMPE=/var/tmp/EDIT; TMPVar=/var/tmp Var=/var/named; Etc=/etc; if [[ -f $TMPE/HOST ]] then ipL=`awk '{print $1}' $TMPE/ipLama`; blkgL=`awk '{print $1}' $TMPE/belakangLama` ipB=`awk '{print $1}' $TMPE/ipBaru`; blkgB=`awk '{print $1}' $TMPE/belakangBaru` pfxL=`awk '{print $1}' $TMPE/pfxLama`; pfxB=`awk '{print $1}' $TMPE/pfxBaru` host=`awk '{print $1}' $TMPE/HOST`; namaZ=`awk '{print $1}' $TMPE/ZONA` cariH=`awk '/'$host'/{print NR}' $Var/f-$namaZ` lok=$cariH; sed $lok"s/$ipL/$ipB/" $Var/f-"$namaZ" > $TMPE/f-"$namaZ" cariH2=`awk '/'$host'/{print NR}' $TMPE/f-$namaZ` loka=$cariH2; let lokasi=$loka+1 sed $lokasi"s/$ipL/$ipB/" $TMPE/f-"$namaZ" > $Var/f-"$namaZ" blk=`awk '/'$host'/{print NR}' $Var/rev.$namaZ.arpa` let buntut=$blk sed $buntut"s/$blkgL/$blkgB/" $Var/rev."$namaZ".arpa > $TMPE/rev."$namaZ".arpa mv $TMPE/rev."$namaZ".arpa $Var backH=`awk '/'$host'/{print NR}' $TMPVar/$namaZ` let baris=$backH sed $baris"s/$ipL/$ipB/" $TMPVar/"$namaZ" > $TMPE/"$namaZ" sed $baris"s/$pfxL/$pfxB/" $TMPE/"$namaZ" > $TMPVar/"$namaZ" rm $TMPE/f-"$namaZ"; rm $TMPE/HOST; rm $TMPE/ZONA; rm $TMPE/ipLama rm $TMPE/depanLama; rm $TMPE/belakangLama; rm $TMPE/pfxLama; rm $TMPE/ipBaru rm $TMPE/depanBaru; rm $TMPE/belakangBaru; rm $TMPE/pfxBaru; rm $TMPE/"$namaZ" exit 0 else ipL=`awk '{print $1}' $TMPE/ipLama`; dpnL=`awk '{print $1}' $TMPE/depanLama` ipB=`awk '{print $1}' $TMPE/ipBaru`; dpnB=`awk '{print $1}' $TMPE/depanBaru`

Page 189: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

pfxL=`awk '{print $1}' $TMPE/pfxLama`; pfxB=`awk '{print $1}' $TMPE/pfxBaru` blkgL=`awk '{print $1}' $TMPE/belakangLama` blkgB=`awk '{print $1}' $TMPE/belakangBaru` ##############cari letak baris ip6 dengan acuan "NS" #=> variable namaD u\ baca nama Domain dlm file DNS #=> variable cariD u\ cari posisi baris dlm f-$namaD dgn fasilitas "print NR" #=> perintah "sed" u\ mengubah variable yg akan ditukar #================EDIT IP PADA FILE NAMED.ROOT6======================== namaD=`awk '{print $1}' $TMPE/DNS`; root=`awk '/NS/{print NR}' $Var/named.root6` let x=$root+1 sed $x"s/$ipL/$ipB/" $Var/named.root6 > $TMPE/named.root6 root6=`awk '/NS/{print NR}' $TMPE/named.root6` let y=$root6+2 sed $y"s/$ipL/$ipB/" $TMPE/named.root6 > $Var/named.root6; rm $TMPE/named.root6 #==================== EDIT IP PADA FILE FORWARD======================= cariD=`awk '/NS/{print NR}' $Var/f-$namaD` let a=$cariD+1; let b=$cariD+2 sed $a,$b"s/$ipL/$ipB/" $Var/f-"$namaD" > $TMPE/f-"$namaD" mv $TMPE/f-"$namaD" $Var #================== EDIT IP PADA FILE REVERSE.ARPA & INT=============== sed "s/$dpnL/$dpnB/" $Var/rev."$namaD".int > $TMPE/rev."$namaD".int mv $TMPE/rev."$namaD".int $Var sed "s/$dpnL/$dpnB/" $Var/rev."$namaD".arpa > $TMPE/rev."$namaD".arpa mv $TMPE/rev."$namaD".arpa $Var sed "s/$blkgL/$blkgB/" $Var/rev."$namaD".arpa > $TMPE/rev."$namaD".arpa mv $TMPE/rev."$namaD".arpa $Var #================ EDIT IP PADA FILE NAMED.CONF & RESOLVER============ #cari letak baris pot. depan ip6 dgn acuan nama Zona "rev.$namaD.int & arpa" int=`awk '/rev.'$namaD'.int/{print NR}' $Etc/named.conf` let c=$int-2 sed $c"s/$dpnL/$dpnB/" $Etc/named.conf > $TMPE/named.conf arpa=`awk '/rev.'$namaD'.arpa/{print NR}' $TMPE/named.conf` let d=$arpa-2 sed $d"s/$dpnL/$dpnB/" $TMPE/named.conf > $Etc/named.conf rm $TMPE/named.conf search=`awk '/'$namaD'/{print NR}' $Etc/resolv.conf` let e=$search+1 sed $e"s/$ipL/$ipB/" $Etc/resolv.conf > $TMPE/resolv.conf mv $TMPE/resolv.conf $Etc #=================== EDIT IP PADA FILE BackUP========================== back=`awk '/'$namaD'/{print NR}' $TMPVar/$namaD` let f=$back sed $f"s/$ipL/$ipB/" $TMPVar/"$namaD" > $TMPE/"$namaD" sed $f"s/$pfxL/$pfxB/" $TMPE/"$namaD" > $TMPVar/"$namaD" #======================HAPUS FILE TEMP==============================

Page 190: DNS SERVER IMPLEMENTATION - repository.usd.ac.idrepository.usd.ac.id/31992/2/005314029_Full.pdf · DNS SERVER IMPLEMENTATION WITH IPv6 PROTOCOL DEVELOPMENT OF TOOLS named6 BASED ON

rm $TMPE/DNS; rm $TMPE/ipLama; rm $TMPE/depanLama; rm $TMPE/belakangLama rm $TMPE/pfxLama; rm $TMPE/ipBaru; rm $TMPE/depanBaru; rm $TMPE/belakangBaru; rm $TMPE/pfxBaru; rm $TMPE/"$namaD" exit 0 fi Program delete6.sh #!/bin/bash Var=/var/named; Etc=/etc TMPE=/var/tmp/EDIT; TMPVar=/var/tmp if [[ -f $TMPVar/DNS ]] ###############HAPUS FILE-FILE SERVER############# then domain=`awk '{print $1}' $TMPVar/DNS` delN=`awk '/'$domain'/{print NR}' $Etc/named.conf`; let N1=$delN; let N2=$N1+17 sed "$N1,$N2"d $Etc/named.conf > $TMPE/named.conf; mv $TMPE/named.conf $Etc delR=`awk '/'$domain'/{print NR}' $Etc/resolv.conf`; let R1=$delR; let R2=$R1+2 sed "$R1,$R2"d $Etc/resolv.conf > $TMPE/resolv.conf; mv $TMPE/resolv.conf $Etc delRoot=`awk '/'$domain'/{print NR}' $Var/named.root6`; let root1=$delRoot; let root2=$root1+3 sed "$root1,$root2"d $Var/named.root6 > $TMPE/named.root6; mv $TMPE/named.root6 $Var rm $Var/f-"$domain"; rm $Var/rev."$domain".arpa; rm $Var/rev."$domain".int rm $TMPVar/"$domain"; rm $TMPVar/DNS exit 0 else ###############HAPUS NAMA KLIEN PADA FILE SERVER############# host=`awk '{print $1}' $TMPVar/host`; zona=`awk '{print $1}' $TMPVar/zona` delH=`awk '/'$host'/{print NR}' $Var/f-$zona`; let H1=$delH; let H2=$H1+2 sed "$H1,$H2"d $Var/f-"$zona" > $TMPE/f-"$zona"; mv $TMPE/f-"$zona" $Var delZ=`awk '/'$host'/{print NR}' $Var/rev.$zona.arpa`; let Z1=$delZ; sed "$Z1"d $Var/rev."$zona".arpa > $TMPE/rev."$zona".arpa; mv $TMPE/rev."$zona".arpa $Var delB=`awk '/'$host'/{print NR}' $TMPVar/$zona`; let B=$delB sed "$B"d $TMPVar/"$zona" > $TMPE/"$zona"; mv $TMPE/"$zona" $TMPVar rm $TMPVar/host; rm $TMPVar/zona exit 0 fi