• Tidak ada hasil yang ditemukan

BAB VI KESIMPULAN DAN SARAN

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

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

Program named6

#!/bin/bash

#Program bantu setting DOMAIN NAME SYSTEM berbasis protokol IPv6 # dalam mesin Linux berbasis Text-Mode

#

# oleh # Fito Nathius Tatontos

# (ceng2_po@yahoo.com) || (gg_kretek@yahoo.com) 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

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 [[ -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 ]]

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`

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

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 ]]

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 }

. /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++)

}

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(); }

} } 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

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`

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 ":")

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--) {

{ $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" }

{ 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");

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

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

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

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

Dokumen terkait