PEMBUATAN DAN ANALISIS KINERJA PERANGKAT LUNAK ROUTER DENGAN FASILITAS NETWORK ADDRESS TRANSLATION
MUHAMAD RENDRA
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR 2009
PEMBUATAN DAN ANALISIS KINERJA PERANGKAT LUNAK ROUTER DENGAN FASILITAS NETWORK ADDRESS TRANSLATION
MUHAMAD RENDRA
Skripsi Sebagai salah satu syarat untuk memperoleh gelar Sarjana Komputer pada Departemen Ilmu Komputer
DEPARTEMEN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM INSTITUT PERTANIAN BOGOR 2009
ABSTRAK MUHAMAD RENDRA. Pembuatan dan Analisis Kinerja Perangkat Lunak Router dengan Fasilitas Network Address Translation. Dibimbing oleh HERU SUKOCO dan SRI WAHJUNI Router adalah perangkat yang penting dalam internet, namun hingga saat ini belum tersedia router perangkat lunak gratis yang berjalan di Windows XP dan memiliki fasilitas Network Address Translator (NAT) dengan static address assignment. Penelitian ini bertujuan untuk membuat perangkat lunak router dengan fasilitas NAT, mengimplementasikan Routing Information Protocol dan memiliki antarmuka pengguna grafis sehingga mudah dikonfigurasikan. Pada penelitan ini juga dilakukan pengujian dan analisis kinerja router perangkat lunak yang dibuat. Perangkat lunak yang dibuat bernama Sinaru. Sinaru hanya mempu menggunakan datalink ethernet. Untuk pemetaan alamat logika ke alamat fisik, Sinaru mengimplementasikan Address Resolution Protocol. Sebagai router, Sinaru juga mengimplementasikan Internet Protocol, Internet Control Message Protocol dan mempu mem-forward paket IP. Untuk pencarian rute, Sinaru menggunakan static routing dan dynamic routing dengan RIP. Karena RIP menggunakan User Datagram Protocol (UDP) maka sinaru juga mengimplementasikan UDP. Untuk keamanan jaringan, Sinaru juga memiliki fasilitas penyaringan paket IP. Pengujian terdiri atas 46 skenario pengujian yang menguji berbagai protokol yang diimplementasikan. Sinaru dapat melalui tahap pengujian dengan baik. Pengukuran kinerja yang dilakukan menghasilkan nilai rata-rata forwarding delay Sinaru sebesar 0,190557 ms. Sementara pengukuran kinerja terhadap router Windows XP menghasilkan nilai rata-rata forwarding delay sebesar 0,093290 ms. Pengukuran nilai rata-rata jitter Sinaru menghasilkan nilai rata-rata sebesar 12,127 μs, sementara jitter pada router Windows XP adalah 15,381 μs. Pengukuran nilai throughput pada jaringan dengan bandwidth 100 Mb/s menghasilkan nilai rata-rata 81,9 Mb/s dan 80,1 Mb/s. Sementara pengukuran throughput terhadap router Windows XP menghasilkan nilai rata-rata sebesar 94,2 Mb/s dan 90,1 Mb/s. Pengukuran utilisasi CPU terhadap process Sinaru menghasilkan nilai rata-rata 39,64% dan 37,84%. Sementara itu pemakaian memori process Sinaru menghasilkan nilai rata-rata 1.693.864 bytes dan 1.692.588 bytes. Dengan demikian dapat disimpukan bahwa Sinaru dapat menjalankan fungsinya sebagai router. Nilai forwarding delay dan throughput dari router windows XP lebih baik dari Sinaru, namun jitter Sinaru lebih baik dari router Windows XP. kata kunci : router perangkat lunak, internet protocol, network address translator, routing information protocol, forwarding delay, jitter, throughput.
Judul
: Pembuatan dan Analisis Kinerja Perangkat Lunak Router dengan Fasilitas Network Address Translation Nama : Muhamad Rendra NRP : G64102066
Menyetujui, Pembimbing I
Pembimbing II
Heru Sukoco, S.Si, M.T. NIP. 132 282 666
Ir. Sri Wahjuni, M.T. NIP. 132 311 920
Mengetahui, Dekan Fakultas Matematika dan Ilmu Pengetahuan Alam Institut Pertanian Bogor
Dr. drh. Hasim, DEA NIP. 131 578 806
Tanggal Lulus :
RIWAYAT HIDUP Penulis dilahirkan pada tanggal 11 Juni 1984 sebagai anak pertama dari dua bersaudara, dari pasangan Armidi dan Djasmani. Pada tahun 2002 penulis lulus dari SMUN 48 Jakarta dan pada tahun yang sama lulus seleksi masuk IPB melalui jalur Seleksi Penerimaan Mahasiswa Baru (SPMB). Penulis memilih Program Studi Ilmu Komputer, Departemen Ilmu Komputer, Fakultas Matematika dan Ilmu Pengetahuan Alam.
PRAKATA Puji syukur penulis panjatkan kepada Allah SWT atas segala karunia-Nya sehingga karya ilmiah ini berhasil diselesaikan. Tema yang dipilih dalam penelitian yang dilaksanakan sejak bulan Juli 2006 ini adalah pembuatan router, dengan judul Pembuatan dan Analisis Kinerja Perangkat Lunak Router dengan Fasilitas Network Address Translator. Terima kasih penulis ucapkan kepada Bapak Heru Sukoco, S.Si, M.T. dan Ibu Ir. Sri Wahjuni, M.T. selaku pembimbing, serta Bapak Wisnu Ananta Kusuma, S.T, M.T. yang telah banyak memberi saran. Ungkapan terima kasih juga disampaikan kepada ayah, ibu, serta seluruh keluarga, atas segala doa dan kasih sayangnya. Semoga karya ilmiah ini bermanfaat. Bogor, September 2008
Muhamad Rendra
v
DAFTAR ISI Halaman DAFTAR TABEL ............................................................................................................................. vi DAFTAR GAMBAR ........................................................................................................................ vi DAFTAR LAMPIRAN .................................................................................................................... vii PENDAHULUAN.............................................................................................................................. 1 Latar belakang ................................................................................................................................ 1 Tujuan............................................................................................................................................. 1 Ruang lingkup ................................................................................................................................ 1 TINJAUAN PUSTAKA..................................................................................................................... 1 Router ............................................................................................................................................. 1 Ethernet .......................................................................................................................................... 1 Internet Protocol ............................................................................................................................ 2 Address Resolution Protocol.......................................................................................................... 3 Internet Control Message Protocol................................................................................................ 3 Routing ........................................................................................................................................... 4 WinPcap ......................................................................................................................................... 4 Network Address Translator .......................................................................................................... 5 File Transfer Protocol (FTP)......................................................................................................... 5 Ukuran Kinerja ............................................................................................................................... 5 METODE PENELITIAN................................................................................................................... 6 Analisis Kebutuhan ........................................................................................................................ 6 Desain............................................................................................................................................. 7 Pembuatan Kode ............................................................................................................................ 7 Pengujian ........................................................................................................................................ 7 Analisis Kinerja Router.................................................................................................................. 8 HASIL DAN PEMBAHASAN........................................................................................................ 10 Analisis Kebutuhan ...................................................................................................................... 10 Desain........................................................................................................................................... 11 Pembuatan kode ........................................................................................................................... 12 Pengujian ...................................................................................................................................... 15 Analisis Kinerja Router................................................................................................................ 20 KESIMPULAN DAN SARAN........................................................................................................ 23 Kesimpulan................................................................................................................................... 23 Saran............................................................................................................................................. 23 DAFTAR PUSTAKA ...................................................................................................................... 23 LAMPIRAN ..................................................................................................................................... 25
vi
DAFTAR TABEL Halaman 1 Pesan-pesan ICMP (Forouzan & Sophia 2006) ........................................................................... 3 2 Spesifikasi sistem pengujian forwarding delay dan jitter ............................................................ 8 3 Spesifikasi sistem pengujian throughput...................................................................................... 9 4 Kebutuhan nonfungsional Sinaru ............................................................................................... 11 5 Skenario pengujian ..................................................................................................................... 17 6 Posisi klien - server dan perlu tidaknya mengubah payload FTP .............................................. 18 7 Sent time, waktu relatif, dan forwarding delay saat lonjakan. ................................................... 21 8 Throughput rata-rata ................................................................................................................... 22
DAFTAR GAMBAR Halaman 1 Model referensi OSI dan model referensi TCP/IP (Tanenbaum 2003)........................................ 1 2 Lapisan-lapisan Ethernet (Forouzan & Sophia 2006) .................................................................. 2 3 Format frame sublayer MAC (IEEE 2005).................................................................................. 2 4 Format datagram IP (Forouzan & Sophia 2006) .......................................................................... 2 5 Format header IP (Forouzan & Sophia 2006).............................................................................. 2 6 Format paket ARP (Forouzan & Sophia 2006) ............................................................................ 3 7 Format umum pesan ICMP (Forouzan & Sophia 2006) .............................................................. 4 8 Komponen utama WinPcap (WinPcap Team 2007) .................................................................... 4 9 Model layanan FTP (Postel & Reynolds 1985)............................................................................ 5 10 Tahapan-tahapan penelitian.......................................................................................................... 6 11 Topologi jaringan pengujian sederhana ....................................................................................... 7 12 Model jaringan pengujian kompleks ............................................................................................ 8 13 Topologi jaringan untuk mendapatkan forwarding delay dan jitter ............................................ 8 14 Topologi jaringan untuk mendapatkan throughput ...................................................................... 9 15 Diagram use-case ....................................................................................................................... 10 16 Perancangan jendela utama ........................................................................................................ 12 17 Diagram kelas Router ................................................................................................................. 12 18 Diagram kelas Network Interface, Queue, QueueData, Tabel ARP dan Entri ARP ................. 12 19 Diagram kelas clsAccessList dan clsAccessListEntry. ............................................................... 14 20 Source code dari operasi FilterIPHeader................................................................................... 14 21 Contoh saringan IP ..................................................................................................................... 14 22 Topologi jaringan pengujian kompleks ...................................................................................... 16 23 Penggantian payload FTP pada skenario 15 .............................................................................. 18 24 Penggantian payload FTP pada skenario 21 .............................................................................. 19
vii
25 Penggantian payload FTP pada skenario 22 .............................................................................. 19 26 Penggantian payload FTP pada skenario 29 .............................................................................. 20 27 Perbandingan forwarding delay Sinaru dan router Windows XP.............................................. 20 28 Jitter Sinaru ................................................................................................................................ 21 29 Jitter router Windows XP .......................................................................................................... 21 30 Perbandingan throughput TCP, Penguji1 sebagai klien iperf .................................................... 21 31 Perbandingan throughput TCP, Penguji2 sebagai klien iperf .................................................... 21 32 Utilisasi CPU, Penguji1 sebagai klien........................................................................................ 22 33 Utilisasi CPU, Penguji2 sebagai klien........................................................................................ 22 34 Pemakaian memori, Penguji1 sebagai klien............................................................................... 23 35 Pemakaian memori, Penguji2 sebagai klien............................................................................... 23
DAFTAR LAMPIRAN Halaman 1 Hasil desain antarmuka pengguna .............................................................................................. 26 2 Contoh kode mesin hasil kompilasi Sinaru ................................................................................ 35 3 Hasil pengujian pada jaringan sederhana ................................................................................... 36 4 Konfigurasi router-router pada jaringan pengujian kompleks .................................................. 39 5 Konfigurasi host-host pada jaringan pengujian kompleks ......................................................... 41 6 Hasil pengujian pada jaringan kompleks.................................................................................... 42
1
PENDAHULUAN
Router yang dibuat hanya mengimplementasikan protokol IP, Internet Control Message Protocol (ICMP), Address Resolution Protocol (ARP), User Datagram Protocol (UDP) dan RIP.
Hanya memperhatikan kinerja router berdasarkan forwarding delay, jitter, throughput, utilisasi CPU dan pemakaian memori.
Latar belakang Internet ialah sebuah kombinasi dari jaringan yang dihubungkan oleh router. Ketika sebuah paket dikirim dari pengirim ke penerima, paket mungkin akan melewati banyak router sampai akhirnya mencapai router yang terhubung ke jaringan tujuan (Forouzan & Sophia 2006). Network Address Translation (NAT) adalah salah satu metode untuk mengatasi kekurangan alamat Internet Protocol (IP) dengan cara penggunaan kembali alamat (address reuse). Caranya adalah dengan menempatkan perangkat NAT pada border dari stub domain. Setiap perangkat NAT memiliki tabel yang berisi pasangan alamat lokal dan alamat yang unik secara global. Alamat lokal tidak unik secara global dan dapat digunakan oleh domain lain, sehingga mengatasi permasalahan kekurangan alamat (Egevang & Francis 1994). NAT diimplementasikan sebagai fasilitas dari router. NAT mengikat alamat lokal dan alamat global dengan dua cara, yaitu static address assignment dan dynamic address assignment. Static address asignment memungkinkan host pada jaringan global memulai session ke host yang berada di dalam jaringan lokal. Tujuan Tujuan dari penelitian ini adalah membuat perangkat lunak router yang memiliki kemampuan static NAT, Routing Information Protocol (RIP) dan penyaringan paket IP. Perangkat lunak ini berjalan pada komputer biasa dengan sistem operasi Microsoft Windows XP. Perangkat lunak router yang telah dibuat akan dianalisis kinerjanya dengan melakukan pengukuran terhadap forwarding delay, jitter, throughput, utilisasi CPU dan pemakaian memori. Ruang lingkup Pada penelitian ini dilakukan pembatasan masalah pada:
Router yang dibuat hanya memiliki fasilitas menyimpan konfigurasi, static routing, RIP, static NAT, membuat log, dan penyaringan IP.
TINJAUAN PUSTAKA Router Router adalah sebuah perangkat yang berguna untuk meneruskan paket-paket antara dua atau lebih jaringan. Router bekerja pada lapisan network (layer 3) menurut model referensi Open System Interconnection (OSI) atau lapisan internet pada model referensi TCP/IP (Tanenbaum 2003). Router melakukan tugasnya berdasarkan informasiinformasi yang tersedia pada lapisan tersebut. Gambar 1 memperlihatkan model referensi OSI dan TCP/IP. OSI 7 6 5 4 3 2 1
Application Presentation Session Transport Network Data link Physical
TCP/IP Application Not present in the model
Transport Internet Host-to-network
Gambar 1 Model referensi OSI dan model referensi TCP/IP (Tanenbaum 2003) Router dapat berupa perangkat keras khusus dan dapat juga berupa perangkat lunak. Contoh produsen router perangkat keras yaitu Cisco Systems dan Juniper Networks. Contoh router perangkat lunak yaitu GNU zebra dan freesco. Ethernet Ethernet adalah protokol Local Area Network (LAN) yang paling banyak digunakan. Ethernet distandarkan pada standar IEEE Std 802.3. Ethernet meliputi Data link layer dan Physical layer dalam model referensi OSI (Forouzan & Sophia 2006). Perbandingan antara lapisan-lapisan pada model referensi OSI dan lapisan-lapisan ethernet dapat dilihat pada Gambar 2.
2
OSI Model
Ethernet
Data link layer
Logical Link Control (LLC) Media Access Control (MAC)
Physical layer
Physical layer Transmission medium
Gambar 2 Lapisan-lapisan Ethernet (Forouzan & Sophia 2006) Media Access Control (MAC) mengirim dan menerima data dari dan ke Physical layer dalam bentuk frame. Format dari frame MAC adalah sebagai berikut: 7 OCTETS
PREAMBLE
1 OCTET
SFD
6 OCTETS
DESTINATION ADDRESS
6 OCTETS
SOURCE ADDRESS
2 OCTETS
LENGTH/TYPE
OCTETS WITHIN FRAME TRANSMITTED TOP TO BOTTOM
MAC CLIENT DATA
46-1500 OCTETS
PAD
4 OCTETS FRAME CHECK SEQUENCE EXTENSION LSB
MSB b0
b7 BITS WITHIN FRAME TRANSMITTED LEFT TO RIGHT
Gambar 3 Format frame sublayer MAC (IEEE 2005) Penjelasan dari beberapa field pada frame MAC adalah sebagai berikut:
Alamat tujuan (Destination Address), berisi 48 bit alamat tujuan pengiriman frame. Dapat berupa unicast, multicast atau broadcast.
Alamat sumber (Source Address), berisi 48 bit alamat stasiun yang mengirim frame.
Length/Type, jika bernilai lebih kecil atau sama dengan 1500, field ini diartikan sebagai panjang data. Jika lebih besar dari 1536 diartikan sebagai tipe data.
yang digunakan pada internet (Tanenbaum 2003). IP mengirimkan data dalam paket-paket yang dinamakan datagram. Masing-masing datagram diangkut secara terpisah. Datagram dapat melalui rute yang berbeda dan sampai secara tidak berurutan atau dapat tergandakan (Forouzan & Sophia 2006). IP menyediakan layanan pengiriman datagram yang unreliable dan connectionless. Unreliable artinya tidak ada jaminan datagram sampai ke tujuan. Connectionless artinya tidak menyimpan informasi apa pun mengenai datagram. Masing-masing datagram diperlakukan secara independen terhadap datagram lainnya (Stevens 1994). Setiap host yang menggunakan protokol ini memiliki sebuah alamat logika yang disebut alamat IP (IP Address). Setiap datagram yang dikirim memiliki informasi alamat pengirim dan alamat penerima. Dengan menggunakan alamat ini, routerrouter mem-forward paket-paket berdasarkan informasi yang ada pada tabel rute masingmasing router. Sebuah datagram memiliki panjang 20 sampai 65536 bytes yang terdiri atas header dan data. Gambar 4 memperlihatkan format datagram IP dan Gambar 5 memperlihatkan format header pada datagram IP. 20-65536 bytes 20-60 bytes
Header
Gambar 4 Format datagram IP (Forouzan & Sophia 2006) VER 4 bits
Internet Protocol Internet Protocol adalah protokol yang berada pada lapisan network. Protokol inilah
HLEN 4 bits
DS 8 bits
Identification 16 bits Time to live 8 bits
Data dan pad, berisi data yang hendak dikirim. Jika panjang data lebih kecil dari 46 maka data harus ditambahi data ekstra (yaitu pad) sehingga besarnya 46 octets.
Ethernet menggunakan satu medium yang digunakan secara bersama-sama. Pengaturan akses medium dilakukan oleh sublayer MAC dengan menggunakan metode Carrier Sense Multiple Access With Collision Detection (CSMA/CD).
Data
Total Length 16 bits Flags 3 bits
Protocol 8 bits
Fragmentation offset 13 bits Header checksum 16 bits
Source IP address 32 bits Destination IP address 32 bits Option
Gambar 5 Format header IP (Forouzan & Sophia 2006) Penjelasan dari field-field yang ada pada header IP adalah sebagai berikut:
Versi (VER), berisi versi dari Internet Protocol. Saat ini bernilai 4.
Panjang header (HLEN), berisi panjang header IP dalam satuan empat bytes.
3
Differentiated Service (DS), berisi kode layanan.
Panjang total (Total Length), berisi panjang dari datagram IP dalam satuan bytes.
Identification, berisi kode unik yang membedakan datagram yang satu dengan yang lain dari pengirim yang sama. Digunakan untuk fragmentasi.
Flags, berisi keterangan mengenai sifat datagram. Digunakan untuk fragmentasi. Bit kedua pada flags adalah bit do not fragment (DF).
Fragmentation offset, berisi posisi relatif dari data pada datagram ini terhadap keseluruhan datagram sebelum dilakukan fragmentasi. Dalam satuan delapan bytes.
Setiap host yang ingin mengetahui alamat fisik dari host lain atau router dalam jaringannya akan mengirim paket ARP request. Paket ini berisi alamat fisik pengirim, alamat IP pengirim, dan alamat IP penerima. Karena pengirim tidak tahu alamat fisik penerima maka paket ini dikirim secara broadcast. Setiap host dan router pada jaringan akan menerima paket tersebut, tetapi hanya pemilik alamat IP penerima yang akan membalas dengan paket ARP reply. Paket ini dikirim secara unicast. Format paket ARP disajikan pada Gambar 6. Hardware Type Hardware Length
Protocol, berisi kode jenis protokol yang menggunakan layanan IP.
Header checksum, berisi nilai untuk mendeteksi kesalahan pada header.
Alamat IP sumber (Source IP address), berisi alamat IP dari host yang mengirim datagram.
Alamat IP tujuan (Destination IP address), berisi alamat IP tujuan dari datagram.
Option, field ini boleh ada atau tidak ada. Panjangnya antara nol sampai empat puluh bytes dan harus kelipatan empat.
Address Resolution Protocol Setiap host atau router yang hendak mengirim datagram IP mengetahui alamat IP tujuan, tetapi datagram itu harus dimasukkan ke dalam frame agar dapat melalui jaringan fisik. Ini artinya pengirim harus mengetahui alamat fisik dari tujuan. Sebuah pemetaan dilakukan untuk mengubah alamat logika (alamat IP) menjadi alamat fisik. (Forouzan & Sophia 2006). ARP menyediakan pemetaan secara dinamis dari alamat IP menjadi alamat fisik yang cocok. Istilah dinamis di sini dipakai karena proses pemetaan terjadi secara otomatis dan umumnya tidak memerlukan perhatian dari pengguna aplikasi atau administrator sistem (Stevens 1994).
Protocol Type Operation Request 1, Reply 2
Sender hardware address (For example, 6 bytes for Ethernet) Sender protocol address (For example, 4 bytes for IP)
Time to live (TTL), berisi waktu untuk hidup dari datagram. Field ini dikurangi satu setiap datagram diproses oleh router.
Protocol Length
Target hardware address (For example, 6 bytes for Ethernet) (It is not filled in a request) Target protocol address (For example, 4 bytes for IP)
Gambar 6 Format paket ARP (Forouzan & Sophia 2006) Internet Control Message Protocol IP tidak memiliki mekanisme pelaporan kesalahan (error-reporting) dan juga tidak memiliki mekanisme untuk bertanya (query) kepada host tertentu. ICMP adalah protokol yang didesain untuk menutupi kekurangan tersebut (Forouzan & Sophia 2006). Pesan ICMP (ICMP messages) dibagi menjadi dua kategori: pesan pelaporan kesalahan (error-reporting messages) dan pesan pertanyaan (query messages). Tabel 1 menyajikan pesan ICMP pada masing-masing kategori. Tabel 1 Pesan-pesan ICMP (Forouzan & Sophia 2006) Category Error-reporting messages
Query messages
Type 3 4 11 12 5 8 or 0 13 or 14 17 or 18 10 or 9
Message Destionation unreachable Source quench Time Exceeded Parameter problem Redirection Echo request or reply Timestamp request or reply Address mask request or reply Router solicitation or advertisement
Dalam sebuah pesan ICMP terdapat header sepanjang delapan bytes dan bagian data yang panjangnya bervariasi. Meskipun format umum header berbeda untuk setiap jenis pesan, format empat bytes pertama sama
4
untuk semua jenis pesan. Format umum pesan ICMP dapat dilihat pada Gambar 7. 8 bits
8 bits
Type
Code
8 bits
8 bits
Checksum
Rest of the header Data section
Gambar 7 Format umum pesan ICMP (Forouzan & Sophia 2006) Field pertama menentukan jenis pesan ICMP. Field kedua yang bernama code menentukan alasan untuk jenis pesan tertentu. Field selanjutnya adalah checksum yang berguna untuk mendeteksi kesalahan pada pesan ICMP. Empat bytes selanjutnya tergantung dari jenis pesan. Bagian data pada pesan pelaporan kesalahan berisi header paket IP yang membuat pesan kesalahan dikirim. Jika pesan ICMP adalah pesan query maka bagian data berisi informasi tambahan yang tergantung dari jenis pesan.
digunakan di dalam sistem otonom. RIP adalah protokol yang sederhana yang bekerja berdasarkan distance vector routing (Forouzan & Sophia 2006). Pada distance vector routing, rute pilihan antara dua node adalah rute yang jaraknya paling kecil. Tiap node memiliki tabel untuk menyimpan jarak terkecil ke setiap node. Pada awalnya, tiap node hanya mengetahui rute ke jaringan yang terhubung langsung dengannya. Setelah itu node-node akan saling mengirim informasi rute dan mengubah routing table berdasarkan informasi rute yang datang. WinPcap WinPcap adalah pustaka open source untuk menangkap paket dan analisis jaringan (WinPcap Team 2007). WinPcap menyediakan fasilitas untuk:
Menangkap raw packet, baik yang ditujukan untuk mesin yang menjalankan WinPcap atau untuk host lain (pada medium bersama).
Menyaring paket berdasarkan aturan yang dibuat pengguna.
Mengirim raw packets ke jaringan.
Mengumpulkan network traffic.
Routing Router menghubungkan dua atau lebih logical interfaces, yang direpresentasikan dengan IP subnets. Jadi router setidaknya memiliki satu physical interface. Untuk memforward datagram, router harus memilih alamat dan interface yang relevan dari router selanjutnya atau host tujuan. Pilihan ini, yang disebut relaying atau forwarding bergantung pada basis data rute pada router. Basis data ini disebut juga tabel routing atau tabel forwarding. Istilah “router” datang dari proses pembuatan basis data rute ini; protokol routing dan konfigurasi berinteraksi dalam proses yang dinamakan routing (Baker 1995). Menurut Forouzan dan Sophia (2006) tabel routing dapat berupa static atau dynamic. Tabel routing static berisi informasi yang dimasukkan secara manual. Administrator memasukkan rute dari tiap-tiap tujuan ke dalam tabel. Setelah dimasukkan, tabel tidak akan berubah sendiri kecuali diubah secara manual. Tabel routing dynamic adalah tabel yang diperbarui secara berkala menggunakan satu dari dynamic routing protocol seperti RIP, OSPF, atau BGP. Jika sewaktu-waktu ada perubahan pada internet, seperti ada router yang mati atau jalur yang putus maka dynamic routing protocol akan memperbarui seluruh tabel dari router-router. Salah satu dynamic routing protocol adalah Routing Information Protocol (RIP). RIP adalah intradomain routing protocol yang
informasi
statistik
Fasilitas di atas dimungkinkan dengan cara menggunakan sebuah device driver yang dimasukkan ke dalam bagian jaringan dari kernel Win32, ditambah beberapa DLL. Gambar 8 menunjukkan komponen-komponen utama WinPcap. Application Wpcap.dll Packet.dll
NPF Device Driver
Packets
User Level Kernel Level
Network
Gambar 8 Komponen utama WinPcap (WinPcap Team 2007) Packet.dll menawarkan antarmuka pemrograman tingkat rendah yang dapat digunakan untuk mengakses secara langsung fungsi-fungsi pada driver. Wpcap.dll menawarkan antarmuka pemrograman tingkat tinggi yang kompatibel dengan libpcap, sebuah pustaka penangkapan paket untuk unix yang terkenal. Hal ini memungkinkan penangkapan paket yang tidak bergantung
5
pada perangkat keras dan sistem operasi yang digunakan. WinPcap menerima dan mengirim paketpaket secara terpisah dari protokol pada host, seperti TCP/IP. Ini artinya WinPcap tidak dapat menghalangi, menyaring atau memanipulasi traffic yang dihasilkan oleh program lain pada mesin yang sama: WinPcap hanya “mengendus” paket-paket yang ada pada kabel. Oleh karena itu, WinPcap tidak memyediakan dukungan untuk aplikasi seperti traffic shapers, QoS schedulers dan personal firewalls. Network Address Translator NAT adalah metode yang memetakan alamat IP dari satu ruang alamat ke ruang alamat lain, dalam usaha membuat routing yang transparan bagi host. (Srisuresh & Holdrege 1999) Proses pemetaan alamat ini dilakukan oleh router yang berada di antara jaringan lokal dan global. Jaringan global, atau disebut juga jaringan publik, adalah jaringan yang menggunakan alamat jaringan yang unik dan dialokasikan oleh Internet Assigned Numbers Authority. Jaringan lokal, atau disebut juga jaringan pribadi, adalah jaringan yang menggunakan ruang alamat yang tidak tergantung pada alamat jaringan global. NAT mengikat alamat pada jaringan lokal dengan alamat jaringan global secara transparan. Static NAT memetakan alamat lokal ke alamat global dengan hubungan satuke-satu. Pemetaan ini tidak berubah selama masa hidup perangkat NAT. File Transfer Protocol (FTP) Menurut Forouzan dan Sophia (2006), File Transfer Protocol (FTP) adalah mekanisme standar yang diberikan oleh TCP/IP untuk mengkopi sebuah file dari satu host ke host lain. FTP berbeda dengan aplikasi klien-server lain karena FTP membuat dua koneksi antara host-host. Koneksi pertama digunakan untuk informasi kontrol (perintah [commands] dan jawaban [responses]) dan koneksi kedua untuk transfer data. FTP menggunakan layanan dari TCP. Port 21 untuk koneksi kontrol dan port 20 untuk koneksi data. Menurut Postel dan Reynolds (1985) proses server-FTP terdiri atas sebuah protocol interpreter (PI) dan sebuah proses transfer data (data transfer process, DTP). Proses user-FTP adalah sebuah himpunan fungsi-
fungsi yang terdiri atas sebuah PI, sebuah DTP dan sebuah user interface yang bersamasama membentuk fungsi transfer file dengan cara bekerja sama dengan satu atau lebih proses server-FTP. Gambar 9 menyajikan model layanan FTP. User Interface
Server Protocol Interpreter
File System
Server DTP
FTP Commands FTP Replies
Data Connection
Server-FTP
User
User Protocol Interpreter
User DTP
File System
USER-FTP
NOTES: 1. The data connection may be used in either direction. 2. The data connection need not exist all of the time.
Gambar 9 Model layanan FTP (Postel & Reynolds 1985) Perintah-perintah FTP (FTP Commands) adalah himpunan perintah yang terdiri atas informasi kontrol yang mengalir dari userFTP ke server-FTP. Jawaban FTP (FTP Reply) adalah acknowledgment (positif atau negatif) yang dikirim dari server kepada pengguna melalui koneksi kontrol sebagai balasan dari perintah FTP. Untuk dapat membuat koneksi data, FTP membutuhkan beberapa parameter, diantaranya adalah alamat IP dan nomor port koneksi data. Secara default untuk melakukan transfer data user-DTP akan “listen” pada port yang sama dengan port koneksi kontrol dan server-DTP akan membuat koneksi data ke user-DTP dari port 20. Meskipun demikian FTP menyediakan perintah-perintah untuk mengganti parameter koneksi data. Perintah PORT dapat digunakan untuk mengganti alamat IP dan nomor port yang akan dihubungi oleh server-DTP. Perintah PASV digunakan untuk meminta server-DTP untuk “listen” pada sembarang port dan menunggu dihubungi. Setelah menerima perintah PASV server akan membalas dengan memberitahu alamat IP dan nomor port yang digunakan oleh server. Ukuran Kinerja 1) Forwarding Delay Delay ialah waktu yang diperlukan oleh sebuah paket dikirim mulai dari node pengirim hingga diterima di node penerima (Sukoco 2005). Menurut Stallings (2000), pada proses pengiriman paket, kita bisa melihat tiga jenis delay yang terjadi :
6
Delay propagasi ialah waktu yang dipergunakan sebuah sinyal untuk merambat dari satu simpul ke simpul berikutnya.
Waktu transmisi ialah waktu yang dipergunakan transmitter untuk mengirim sebuah paket data.
Delay node ialah waktu yang dipergunakan sebuah node untuk melakukan fungsi pengolahan saat melakukan switching data.
Forwarding delay adalah selang waktu mulai dari saat bit terakhir dari paket IP masuk ditawarkan ke port masuk alat yang sedang diuji sampai saat bit terakhir dari paket IP keluar diterima dari port keluar alat yang sedang diuji. Forwarding delay harus diamati secara eksternal (Poretsky et al. 2006). Apabila R = Received Time dan S = Sent Time, maka delay dapat ditulis sebagai:
delay (i ) Ri Si 2) Jitter Jitter adalah variasi dari delay yang disebabkan oleh jaringan. Sebuah jaringan dengan jitter nol memerlukan waktu yang sama untuk men-transfer tiap paket, sementara jaringan dengan jitter yang besar memerlukan waktu yang lebih lama untuk mengantar beberapa paket dibandingkan dengan paket lainnya (Comer 2000). Untuk menghitung jitter digunakan rumus (Poretsky et al. 2006):
jitter (i) delay(i ) delay(i 1)
detiknya maka jalan tersebut throughput 5 mobil per detik.
memiliki
4) Utilisasi CPU Merupakan nilai yang menyatakan persentase penggunaan CPU time oleh suatu process dalam rentang waktu tertentu. 5) Pemakaian Memori Merupakan nilai yang menyatakan banyaknya memori yang digunakan oleh suatu process pada saat tertentu. Pemakaian memori dinyatakan dalam satuan byte.
METODE PENELITIAN Pada penelitian ini dilakukan pembuatan router dan dilanjutkan dengan analisis kinerja router. Metodologi yang digunakan pada pembuatan router adalah linear sequential model. Linear sequential model menggunakan pendekatan yang sistematis dan berurutan pada pengembangan perangkat lunak yang dimulai pada tingkat sistem dan berkembang melalui analisis, desain, pengodean, pengujian, dan support (Pressman 2001). Support tidak dilakukan dalam penelitian ini. Gambar 10 menggambarkan tahapan-tahapan yang dilakukan pada penelitian ini. System/information engineering Analysis
Design
Code
Test
Analisis kinerja
Linear Sequential Model (Pressman 2001)
Gambar 10 Tahapan-tahapan penelitian
3) Throughput
Analisis Kebutuhan
Menurut Sukoco (2005), throughput merupakan nilai dari sejumlah data paket (dalam satuan bit) yang diterima di node penerima dalam suatu satuan waktu tertentu. Atau secara sederhana dapat dirumuskan:
Proses analisis dilakukan untuk menentukan apa saja kebutuhan dari perangkat lunak, fungsi yang dibutuhkan, tingkah laku, performa dan antarmuka. Kebutuhan dari router IP versi 4 secara umum distandarkan oleh RFC 1812. Perangkat lunak juga mengimplementasikan protokol RIP yang distandarkan oleh RFC 1058, 1388, dan 1723. Selain itu perangkat lunak juga melakukan proses NAT yang diinformasikan oleh RFC 1631, 2663, dan 3022. Oleh karena itu proses analisis akan didasarkan pada dokumendokumen yang disebutkan di atas.
Throughput
RcvPacket t
Throughput merupakan ukuran dari kapasitas jaringan. Analoginya ialah jika sebuah jaringan diibaratkan sebuah jalan di antara dua buah tempat dan paket yang berjalan pada jaringan sama dengan mobil yang berjalan pada jalan. Maka rate throughput menghitung berapa banyak mobil yang dapat masuk ke jalan setiap detiknya. Sebagai contoh jika sebuah jalan dapat dilewati oleh lima buah mobil setiap
Pada tahap pengujian dan analisis kinerja, penulis menggunakan perangkat lunak sebagai berikut:
7
Gawk, yaitu implementasi dari bahasa pemrograman AWK. Digunakan untuk melakukan data parsing hasil penelitian.
Gnuplot, yaitu program untuk membuat plot. Gnuplot dapat membuat plot dari fungsi dan dari dari file berisi data.
Iperf, yaitu program untuk mengukur performa jaringan. Pada penelitian ini iperf digunakan untuk mendapatkan throughput.
Ping, yaitu program untuk debugging jaringan IP. Ping yang digunakan di sini adalah ping pada Windows XP.
Wireshark, yaitu sebuah network protocol analyzer. Wireshark dapat menangkap paket pada jaringan lalu menampilkannya pada layar atau menyimpan paket tersebut ke file.
Desain Desain perangkat lunak adalah proses yang berjenjang yang menyoroti empat atribut dari program: struktur data, arsitektur perangkat lunak, representasi antarmuka dan detail algoritma (Pressman 2001). Proses desain perangkat lunak ini akan dilakukan dengan metode desain berorientasi objek. Class akan dirancang dengan membuat class diagram. Struktur data dan detail algoritma tidak dituangkan dalam skripsi ini.
ditentukan akan menghasilkan output yang benar. Pada tahap pengujian, penulis tidak menguji logika internal, tetapi hanya fungsi eksternal. Lebih jauh, penulis tidak menguji output dari antarmuka pengguna dari program, tetapi hanya menguji output yang dikeluarkan melalui antarmuka jaringan (network interface). Dengan demikian tujuan dari pengujian ini adalah untuk memastikan bahwa fungsi-fungsi pada protokol-protokol yang dikodekan pada program telah benar. Untuk melakukan pengujian akan dibuat dua topologi jaringan pengujian yang berbeda. Setiap host pada jaringan pengujian dapat menjalankan Wireshark untuk mengamati lalu lintas paket pada jaringan. Hasil dari pengujian ini adalah berupa file packet capture yang dihasilkan oleh Wireshark. 1) Pengujian pada Jaringan Sederhana Pada pengujian ini disusun sebuah sistem yang terdiri atas dua buah jaringan, seperti yang terlihat pada Gambar 11. Setelah itu disusun berbagai skenario pengujian yang akan dilakukan pada topologi jaringan pengujian ini. Skenario-skenario ini disusun untuk menguji protokol ARP, IP, dan ICMP.
Pembuatan Kode Desain harus diterjemahkan ke dalam bentuk kode program. Pada tahapan inilah kode program dibuat. Jika desain dilakukan secara detail maka pembuatan kode program dapat dilakukan secara mekanis (Pressman 2001). Perangkat lunak akan dikodekan menggunakan Microsoft Visual Studio 2005 dengan menggunakan bahasa pemrograman C++. Perangkat lunak tidak menggunakan .NET Framework tetapi menggunakan Platform SDK versi Windows Server 2003 SP1.
Gambar 11 Topologi jaringan pengujian sederhana Konfigurasi IP untuk masing-masing host yang terlibat adalah sebagai berikut:
Host1 memiliki alamat IP 192.168.4.2/24 dan alamat gateway 192.168.4.1.
Router1 memiliki dua buah antarmuka jaringan. Antarmuka jaringan yang terhubung dengan host1 diberi nama “fa1” dan memiliki alamat IP 192.168.4.1/24. Antarmuka jaringan yang terhubung dengan host2 diberi nama “fa2” dan memiliki alamat IP 192.168.5.1/24.
Host2 memiliki alamat IP 192.168.5.2/24 dan alamat gateway 192.168.5.1.
Pengujian Menurut Pressman (2001) setelah kode program dibuat, pengujian program dapat dimulai. Proses pengujian difokuskan pada logika internal, memastikan semua statement telah diuji dan fungsi eksternal; yaitu, melakukan pengujian untuk mencari kesalahan dan memastikan input yang
2) Pengujian pada Jaringan Kompleks Pada pengujian ini disusun sebuah sistem yang terdiri atas lima buah jaringan, seperti yang terlihat pada Gambar 12. Setelah itu
8
akan disusun topologi fisik dan disusun pula skenario-skenario yang akan diuji. Skenarioskenario ini disusun untuk menguji protokol RIP, IP, ICMP dan NAT.
10.0.5.1/24
10.0.3.3/24
10.0.3.1/24
Router4
10.0.5.0/24
10.0.2.1/24 Router1
10.0.3.0/24
10.0.2.0/24
10.0.3.2/24
10.0.2.2/24
Router3 10.0.4.1/24
Router2 10.0.1.1/24
10.0.4.0/24
10.0.1.0/24
Gambar 12 Model jaringan pengujian kompleks Kelima jaringan di atas dihubungkan dengan empat buah router dan membentuk suatu sistem otonom. Router1 pada sistem ini menghubungkan kelima jaringan pengujian dengan sistem otonom yang lain (jaringan IPB) dengan menggunakan NAT. Oleh Router1 jaringan IPB dianggap sebagai jaringan global dan kelima jaringan pengujian dianggap sebagai jaringan lokal.
LOCAL_MACHINE\SYSTEM\CurrentContr olSet\Services\Tcpip\Parameters”. Setelah itu komputer di-restart. 1) Forwarding Delay dan Jitter Forwarding delay adalah salah satu komponen delay, oleh karena itu untuk mendapatkan forwarding delay dilakukan penghitungan delay. Komponen delay yang lain dapat diabaikan karena pengujian dilakukan menggunakan ethernet dengan kecepatan 100 Mb/s. Untuk mendapatkan forwarding delay dibutuhkan sent time dan received time. Forwarding delay yang akan didapat diperkirakan sangat kecil, oleh karena itu penguji yang mengamati sent time dan received time haruslah memiliki pengatur waktu yang sama. Oleh karena itu dibuatlah topologi jaringan yang mengondisikan pengirim paket juga berperan sebagai penerima paket sehingga pengukuran sent time dan received time dilakukan oleh komputer yang sama, seperti terlihat pada Gambar 13.
Analisis Kinerja Router Setelah perangkat lunak router selesai dibuat, dilakukan analisis kinerja terhadap perangkat lunak router. Analisis kinerja dilakukan berdasarkan pada lima parameter, yaitu forwarding delay, jitter, throughput, utilisasi CPU dan pemakaian memori. Untuk mendapatkan kelima parameter ini router akan diuji menggunakan dua skenario pada dua topologi jaringan yang berbeda. Skenario yang pertama dibuat untuk mendapatkan forwarding delay dan jitter, skenario yang kedua dibuat untuk mendapatkan throughput, utilisasi CPU dan pemakaian memori. Sebagai perbandingan, dilakukan pengukuran forwarding delay, jitter dan throughput terhadap router Windows XP. Pengukuran ini dilakukan dengan cara yang sama seperti yang dilakukan terhadap perangkat lunak router. Untuk membuat agar Windows XP melakukan IP forwarding, dilakukan perubahan pada registry Windows XP dengan mengganti nilai “IPEnableRouter” menjadi 0x00000001 pada registry key “HKEY_
Gambar 13 Topologi jaringan untuk mendapatkan forwarding delay dan jitter Topologi jaringan pada Gambar 13 terdiri atas dua buah komputer. Salah satu komputer berperan sebagai penguji dan yang lainnya berperan sebagai router yang diuji. Masingmasing komputer memiliki dua buah perangkat keras antarmuka jaringan fast ethernet. Tabel 2 menunjukkan spesifikasi perangkat keras dan sistem operasi yang akan digunakan. Tabel 2 Spesifikasi sistem pengujian forwarding delay dan jitter Spesifikasi
Penguji
Router
CPU
Intel Pentium 4 2.80 GHz
Intel Pentium 4 2.66 GHz
Memori
480MB DDR PC-3200
224MB DDR PC-3200
Harddisk
40GB
20 GB
Kartu Jaringan
Realtek RTL8139 dan ADMtek AN983
Realtek RTL8139 dan ADMtek AN983
Sistem Operasi
Microsoft Windows XP Pro SP2
Microsoft Windows XP Pro SP2
9
Dari dua buah antarmuka jaringan yang dimiliki penguji, hanya ada satu yang digunakan oleh TCP/IP stack. Penguji akan mengirim paket-paket melalui antarmuka jaringan yang digunakan oleh TCP/IP stack, lalu paket tersebut akan diterima oleh router untuk kemudian di-forward dan akan diterima kembali oleh penguji melalui antarmuka jaringan yang lain. Paket-paket yang dikirim oleh penguji memiliki alamat IP sumber 192.168.4.2 dan alamat IP tujuan 192.168.5.2. Agar penguji dapat menerima kembali paket tersebut maka penguji juga menjalankan perangkat lunak untuk menjawab semua ARP request yang menanyakan alamat fisik dari alamat IP 192.168.5.2 pada antarmuka jaringan yang tanpa TCP/IP Stack. Untuk mendapatkan sent time dan received time, dilakukan langkah berikut: 1. Pembangkitan trafik Trafik dihasilkan dengan menggunakan program ping. Program ping akan mengirimkan 300 paket ICMP echo request dengan jeda waktu antar keberangkatan paket kurang lebih 1,5 detik. Paket ICMP ini memiliki payload sebesar 18 bytes. 2. Penangkapan paket Penangkapan paket dilakukan dengan menggunakan Wireshark pada kedua antarmuka jaringan milik penguji dengan cara menjalankan dua buah instance dari Wireshark secara bersamaan. 3. Data parsing Dilakukan data parsing terhadap hasil dari penangkapan paket menggunakan perangkat lunak gawk. Dengan demikian didapat sent time dan received time. 2) Throughput, Utilisasi CPU dan Pemakaian Memori Untuk mendapatkan ukuran kinerja throughput dibuatlah topologi jaringan yang melibatkan dua penguji dan sebuah router yang diuji. Throughput yang didapatkan merupakan throughput jalur dari sebuah penguji ke penguji lainnya melalui sebuah router yang akan diuji, seperti yang ditunjukkan pada Gambar 14. Topologi jaringan pada Gambar 14 melibatkan tiga buah komputer. Masingmasing berperan sebagai Penguji1, Router1 dan Penguji2. Penguji1 dan Penguji2 masing-
masing memiliki sebuah perangkat keras antarmuka jaringan, sementara Router1 memiliki dua buah. Semua antarmuka jaringan yang digunakan memiliki bandwidth sebesar 100 Mb/s. Spesifikasi router dan penguji yang digunakan pada pengujian throughput dijelaskan pada Tabel 3.
Gambar 14 Topologi jaringan untuk mendapatkan throughput Tabel 3 Spesifikasi sistem pengujian throughput Penguji1
Router1
Penguji2
CPU
Intel Pentium 4 2.80 GHz
Intel Pentium 4 2.66 GHz
AMD Turion 64 Mobile MK-36
Memori
480MB DDR PC-3200
224MB DDR PC-3200
2.43GB DDR2 PC2-4300
Harddisk
40GB
20 GB
80GB
Kartu Jaringan
Realtek RTL8139
Realtek RTL8139 dan ADMtek AN983
Realtek RTL8139
Sistem Operasi
Linux Ubuntu 8.04
Microsoft Windows XP Pro SP2
Linux Ubuntu 8.04
Nilai throughput didapatkan dengan cara menjalankan perangkat lunak iperf. Iperf dijalankan oleh Penguji1 dalam mode klien dan oleh Penguji2 dalam mode server, setelah itu Penguji1 dan Penguji2 bertukar mode. Iperf dikonfigurasikan agar menggunakan protokol TCP dan dijalankan selama 60 detik. Selagi penguji menjalankan iperf, Router1 juga menjalankan program untuk mencatat utilisasi CPU dan juga pemakaian memori. Pengambilan data utilisasi CPU dan pemakaian memori dilakukan setiap satu detik sekali. Pencatatan dilakukan dengan menggunakan program buatan penulis sendiri. Pengambilan data utilisasi CPU oleh program menggunakan teknik yang dijabarkan dalam artikel dan kode oleh Avravmov (2005). Untuk mendapatkan besar pemakaian memori digunakan fungsi Windows API GetProcessMemoryInfo. Fungsi tersebut menyediakan beberapa statistik memori, statistik yang diambil oleh perangkat lunak sebagai data pemakaian memori adalah WorkingSetSize.
10
HASIL DAN PEMBAHASAN Analisis Kebutuhan 1) Kebutuhan Fungsional Secara umum fungsi-fungsi dari perangkat lunak yang akan dibuat digambarkan dalam bentuk Diagram use-case pada Gambar 15. Sinaru Mengatur tabel rute melalui RIP
‹‹include››
Menerima dan mengirim paket UDP
‹‹extend››
Melakukan NAT
‹‹include››
Mem-forward paket IP
‹‹include››
Menerima dan mengirim paket IP
Host lain ‹‹include››
1. Menerima dan mengirim frame ethernet Sistem memiliki use-case menerima dan mengirim frame ethernet yang digunakan aktor host lain dan host lain yang satu network untuk berkomunikasi dengan sistem. Use-case ini di-include oleh semua use-case yang berinteraksi dengan aktor host lain dan host lain yang satu network. 2. Mengatur tabel ARP
‹‹include›› ‹‹include››
Menerima dan mengirim paket ICMP
Pada Gambar 15 juga terlihat bahwa diagram use-case memiliki 14 use-case. Penjelasan dari masing-masing use-case adalah sebagai berikut:
Menyaring paket IP
Use-case mengatur tabel ARP digunakan oleh aktor host lain yang satu network untuk mendapatkan alamat fisik dari antarmuka jaringan router. Selain itu host lain yang satu network juga memberikan alamat fisiknya kepada sistem. 3. Menyaring paket IP
Mengatur tabel ARP Host lain yang satu network
‹‹include››
Menerima dan mengirim frame ethernet
Mengatur tabel NAT Mengatur antarmuka jaringan Mengatur tabel rute Memulai dan menghentikan router
Pengatur Mengatur saringan IP
Gambar 15 Diagram use-case Pada Gambar 15 terlihat sebuah sistem bernama Sinaru (Simple IPv4 NAT Router). Sinaru berinteraksi dengan tiga aktor, yaitu host lain, host lain yang satu network dan pengatur. Penjelasan dari masing-masing aktor adalah sebagai berikut: 1. Host lain, yaitu representasi dari host-host lain yang terhubung dengan sistem. Aktor ini berkomunikasi dengan sistem menggunakan IP versi 4. 2. Host lain yang satu network, yaitu representasi dari host-host yang terhubung secara langsung dengan sistem. Aktor ini adalah spesialisasi dari aktor host lain. 3. Pengatur, yaitu representasi dari manusia yang memiliki akses fisik ke sistem. Pengatur mengatur konfigurasi dan mengaktifkan router.
Use-case ini menawarkan fungsi penyaringan paket IP, yaitu menentukan paket mana saja yang boleh diterima atau dikirim dan paket mana saja yang boleh di-forward. 4. Menerima dan mengirim paket IP Use-case ini menawarkan fungsi-fungsi Internet protocol, seperti menerima paketpaket IP yang datang, membuat dan mengirim paket IP, serta melakukan pencarian rute. 5. Menerima dan mengirim paket ICMP Use-case ini menawarkan fungsi-fungsi pada protokol ICMP, seperti menerima paketpaket ICMP yang datang, dan membuat dan mengirim paket ICMP. 6. Mem-forward paket IP Use-case ini menawarkan fungsi memforward paket IP, yaitu mengirim kembali paket yang diterima sistem berdasarkan tabel rute yang dimiliki sistem. Sistem juga mengurangi nilai pada field TTL dan mengoreksi checksum pada header paket IP yang di-forward. 7. Melakukan NAT Use-case ini menawarkan fungsi melakukan penerjemahan alamat IP pada pada paket IP yang di-forward. Selain itu use-case ini juga melakukan penggantian alamat IP pada data ICMP Error-reporting message dan alamat IP pada payload FTP. Use-case ini adalah ekstensi dari use-case Mem-forward paket IP.
11
8. Menerima dan mengirim paket UDP
2) Kebutuhan Nonfungsional
Use-case ini menawarkan fungsi-fungsi pada protokol UDP, seperti menerima paketpaket UDP yang datang, dan membuat dan mengirim paket UDP.
Kebutuhan nonfungsional dijabarkan pada Tabel 4.
Use-case ini menawarkan fungsi-fungsi pada protokol RIP versi 2, seperti menerima paket-paket RIP versi 2 yang datang, memperbarui tabel rute sistem, membuat dan mengirim paket RIP versi 2 yang menginformasikan tabel rute sistem ke host lain. Use-case ini memungkinkan aktor pengatur melakukan pengaturan tabel NAT sistem yang menentukan paket-paket IP mana saja yang akan diterjemahkan alamat IP-nya. 11. Mengatur antarmuka jaringan Use-case ini memungkinkan aktor pengatur melakukan pengaturan perangkat keras antarmuka jaringan mana saja yang akan digunakan oleh sistem, menentukan alamat IP dari antarmuka jaringan tersebut dan berbagai parameter lainnya. 12. Mengatur tabel rute Use-case ini memungkinkan aktor pengatur melakukan pengaturan tabel rute statis yang dimiliki sistem dan juga mengatur parameter-parameter protokol RIP. 13. Mengatur saringan IP Use-case ini memungkinkan aktor pengatur melakukan pengaturan tabel saringan IP, yaitu sebuah tabel yang berisi kriteriakriteria untuk menentukan paket-paket IP mana saja yang boleh diterima atau diforward oleh sistem. 14. Memulai dan menghentikan router Use-case ini memungkinkan aktor Pengatur untuk menjalankan router dan menghentikan router. Pada saat router berjalan, aktor host lain dapat berkomunikasi dan memanfaatkan layanan pada sistem. Pada saat router berhenti, aktor host lain sama sekali tidak dapat berkomunikasi dengan sistem. Di lain pihak, aktor Pengatur dapat melakukan sebagian besar pengaturan, baik saat router berhenti maupun saat router berjalan.
Sinaru
Tabel 4 Kebutuhan nonfungsional Sinaru
9. Mengatur tabel rute melalui RIP
10. Mengatur tabel NAT
dari
Parameter
Kebutuhan
Availability
24 jam sehari, 7 hari seminggu Tidak menghilangkan paket kecuali paket tidak valid, ditolak oleh saringan IP atau queue penuh. Lebih kecil dari satu ms Tidak memungkinkan eksekusi kode dari paket apa pun yang masuk Bahasa Inggris
Reliability Response Time Security Komunikasi
3) Kebutuhan Antarmuka Eksternal 1. Antarmuka pengguna Antarmuka pengguna perangkat lunak ini menggunakan modus grafik. Perangkat lunak ini menerima masukan dalam bentuk klik pada tetikus (mouse) dan ketikan pada papan ketik (keyboard). Keluaran dari perangkat lunak ini dapat dilihat melalui monitor. 2. Antarmuka perangkat keras Kebutuhan minimum perangkat lunak ini adalah:
PC Keyboard Mouse Monitor VGA Satu atau lebih Network Interface Card (Ethernet atau Wireless Lan)
3. Antarmuka perangkat lunak Perangkat lunak ini membutuhkan antarmuka pemrograman Windows API untuk mengimplementasikan antarmuka pengguna dan pemrosesan paralel. Untuk dapat mengirim dan menerima frame ethernet secara langsung pada Microsoft Windows dibutuhkan WinPcap versi 4.0.2. Desain 1) Desain Sistem Dari kebutuhan fungsional yang telah dibuat sebelumnya, perangkat lunak ini dibagi menjadi dua subsistem, yaitu:
Subsistem antarmuka pengguna. Subsistem ini berinteraksi dengan aktor pengatur dalam rangka melakukan konfigurasi.
12
Subsistem router. Subsistem ini berinteraksi dengan host lain pada jaringan dan berfungsi sebagai router IP.
Seluruh subsistem berjalan pada process yang sama. Subsistem antarmuka pengguna memiliki satu thread, sementara subsistem router memiliki beberapa thread. Seluruh thread berjalan secara paralel. Pada saat awal perangkat lunak dijalankan, hanya ada satu thread yang berjalan, yaitu thread antarmuka pengguna. Saat router dimulai, thread-thread pada subsistem router akan dibuat dan dijalankan. Pada saat router dihentikan, thread-thread pada subsistem router akan dihentikan dan dihancurkan.
memiliki kelas-kelas lain, yaitu Tabel NAT, Tabel Filter, Network Interface, Tabel Rute, dan RIP. Gambar 17 memperlihatkan diagram kelas Router dan kelas-kelas lain yang dimilikinya. Tabel NAT 1
Entri NAT 1 *
Tabel Filter 1
Filter 1 *
1 1
Router
Network Interface 1 *
1
1 Rute
Tabel Rute 1 *
1 RIP 1
Gambar 17 Diagram kelas Router
2) Desain Antarmuka Pengguna Antarmuka pengguna perangkat lunak ini terdiri atas sebuah jendela utama. Perangkat lunak juga membuat sebuah icon pada system tray. Jendela utama tidak dapat diubah ukurannya tetapi jendela utama dapat diminimize dan disembunyikan. Untuk memunculkan jendela yang disembunyikan pengguna dapat mengklik icon pada system tray. Perancangan jendela utama dapat dilihat pada Gambar 16.
Kelas Network Interface memiliki 3 buah queue untuk menampung 3 jenis paket yang berbeda. Untuk melakukan itu dibuat sebuah kelas template yang memiliki parameter jenis paket yang akan ditangani. Paket yang ditangani adalah turunan dari kelas yang bernama QueueData. Kelas Network Interface juga memiliki sebuah kelas Tabel ARP untuk menangani ARP. Untuk lebih jelasnya dapat dilihat pada Gambar 18.
Gambar 16 Perancangan jendela utama
Gambar 18 Diagram kelas Network Interface, Queue, QueueData, Tabel ARP dan Entri ARP
Jendela utama berisi menu di sebelah kiri dan halaman konfigurasi di sebelah kanan. Di bagian bawah terdapat checkbox untuk membuat jendela utama menjadi paling atas di antara jendela-jendela lain. Di bagian bawah juga terdapat tombol untuk menyembunyikan jendela utama dan tombol untuk mengakhiri perangkat lunak. Menu tersusun secara hierarki. Bila teks pada menu diklik maka halaman akan berganti. Hasil dari desain antarmuka berupa gambar-gambar tangkapan layar dari Sinaru dapat dilihat pada Lampiran 1.
Pembuatan kode 1) Penggunaan WinPcap Untuk dapat mengambil frame ethernet dan menerima frame ethernet, digunakan WinPcap. Fungsi-fungsi WinPcap yang digunakan antara lain:
3) Desain Kelas
Pada subsistem router, dibuat beberapa kelas. Kelas Router berfungsi untuk merepresentasikan sebuah router. Kelas ini
pcap_open, untuk memulai penangkapan dan pengiriman paket. pcap_next_ex, untuk mengambil paket hasil tangkapan pada buffer driver NPF. pcap_sendpacket, untuk mengirim sebuah paket. pcap_sendqueue_transmit, untuk mengirim banyak paket sekaligus.
13
Selain dari menggunakan fungsi-fungsi dari WinPcap API, perangkat lunak ini juga memakai fungsi dari packet.dll yaitu PacketRequest. Fungsi ini berguna untuk mendapatkan atau mengubah variabel dari driver network interface. Pada perangkat lunak ini, PacketRequest antara lain digunakan untuk:
Mendapatkan alamat MAC saat ini. Mengubah hardware filter pada antarmuka jaringan agar menerima paket dengan alamat tujuan multicast RIP versi 2 (yaitu 01-00-5E-00-00-09). Mendapatkan status ketersambungan media. Mendapatkan ukuran frame maksimum. Mendapatkan link speed.
CreateEvent, untuk membuat objek event, yaitu objek yang memiliki dua state. Dengan fungsi SetEvent, objek event berada pada state signaled. Dengan fungsi ResetEvent, objek event akan berada pada state nonsignaled. Jika ada thread yang menunggu sebuah objek event yang dalam keadaan signaled (dengan menggunakan fungsi WaitForSingleObject) maka thread tersebut akan berhenti (menunggu). Sebaliknya jika objek event tersebut dalam keadaan nonsignaled maka thread akan terus berjalan.
CreateMutex, untuk membuat objek mutex, yaitu objek yang hanya dapat dimiliki oleh satu thread pada satu waktu. WaitForSingleObject dapat digunakan untuk menunggu kepemilikan mutex. Thread yang memanggil WaitForSingleObject akan menunggu sampai thread lain melepas mutex dengan memanggil ReleaseMutex.
InterlockedIncrement, untuk menaikkan nilai suatu variabel dengan nilai satu dan memberikan hasilnya serta memastikan hanya ada satu thread yang melakukan itu pada saat yang sama.
2) Paralelisme Untuk dapat membuat perangkat lunak yang berjalan secara paralel, digunakan beberapa fungsi Windows API. Fungsi-fungsi tersebut antara lain:
CreateThread, untuk membuat thread baru yang berjalan bersamaan dengan thread sebelumnya.
ThreadProc, adalah fungsi pada aplikasi yang akan dipanggil secara paralel ketika memanggil CreateThread. Thread akan selesai jika fungsi ini return.
SetThreadPriority, prioritas thread.
PostThreadMessage, untuk mengirim pesan kepada thread lain. Fungsi ini langsung kembali tanpa menunggu thread lain memproses pesan yang dikirim.
untuk
mengganti
Untuk melindungi data-data yang digunakan bersama oleh beberapa thread dan juga mengatur jalannya thread digunakan fungsi-fungsi sinkronisasi dari Windows API. Fungsi-fungsi tersebut antara lain:
InitializeCriticalSection, yaitu untuk membuat critical section. Untuk memasuki critical section digunakan fungsi EnterCriticalSection, untuk keluar critical section digunakan fungsi LeaveCriticalSection.
WaitForSingleObject, untuk membuat thread berhenti untuk menunggu objek sinkronisasi tertentu. Fungsi WaitForMultipleObject digunakan untuk menunggu beberapa objek.
3) Penyaringan IP Penyaringan paket IP dilakukan untuk setiap paket yang masuk dan keluar antarmuka jaringan Sinaru. Proses ini harus dilakukan secepat mungkin karena waktu yang dihabiskan paket IP pada proses penyaringan dapat mempengaruhi forwarding delay. Penyaringan paket IP pada Sinaru dilakukan dalam dua tahap, yaitu tahap persiapan dan tahap penyaringan. Tahap persiapan cukup dilakukan sekali, sementara tahap penyaringan dilakukan selama router berjalan dan dilakukan untuk setiap paket IP, baik paket yang masuk maupun yang keluar. Tahap persiapan diawali dengan memasukkan kriteria yang ditetapkan pengguna ke dalam sebuah objek dari kelas yang bernama clsAccessListEntry. Sebelum dimasukkan ke dalam atribut dari objek clsAccessListEntry, kriteria yang berupa deretan huruf di-parse dengan bantuan clsParser menjadi deretan kode yang dirancang penulis. Setelah itu objek clsAccessListEntry yang telah berisi kriteria akan dimasukkan ke dalam sebuah objek dari kelas yang bernama
14
clsAccessList. Objek clsAccessList akan meng-compile kriteria-kriteria berdasarkan atribut-atribut pada objek-objek clsAccessListEntry yang dimilikinya menjadi kode mesin (machine code). Gambar 19 memperlihatkan diagram kelas clsAccessList dan clsAccessListEntry. clsAccessListEntry -SourceAddressCode : char * -DestAddressCode : char * -ProtoTypeCode : char * -SrcPortCode : char * -DstPortCode : char *
clsAccessList -Name : TCHAR -DefAction : ActType -ACL_Code : LPVOID -ACL_CodeLen : size_t +CompileRules() +FilterIPHeader(in iphdr : IP_HEADER) : ActType
1
*
+compile() -compileAddressRecursive() -compilePortRecursive() -compileProto() -compileProtoTCP_UDP() -compilePayloadInit() -compilePort() -compileProtoRecursive() -compileICMPRecursive()
Gambar 19 Diagram kelas clsAccessList dan clsAccessListEntry. Objek clsAccessList meng-compile dengan menggunakan operasi CompileRules yang pada akhirnya memanggil operasi compile pada clsAccessListEntry. Kode mesin hasil kompilasi disimpan pada memori yang dialokasikan oleh fungsi API Windows HeapAlloc. Atribut bernama ACL_Code dari objek clsAccessList menyimpan pointer ke kode mesin hasil kompilasi. Tahap penyaringan dilakukan dengan menggunakan operasi FilterIPHeader dari objek clsAccessList terhadap paket IP yang hendak disaring. Operasi FilterIPHeader lalu mengeksekusi kode mesin yang dihasilkan pada tahap persiapan. Keluaran dari FilterIPHeader berupa ActType, yaitu sebuah nilai integer yang merepresentasikan aksi yang harus dilakukan terhadap paket IP yang telah disaring. Beberapa sifat dari kode mesin yang dihasilkan Sinaru adalah sebagai berikut:
Hanya menggunakan tiga register yaitu eax, ecx, dan edx. Tidak menggunakan stack. Dipanggil menggunakan instruksi call. Mengubah flag AF CF OF PF SF ZF. Membutuhkan parameter berupa pointer ke header IP yang akan disaring pada register ecx. Header IP yang dimasukkan harus sudah valid. Keluaran berada pada register eax.
Saringan IP yang telah dibuat kode mesinnya akan dieksekusi dengan cara memanggil operasi FilterIPHeader dari objek clsAccessList. Operasi FilterIPHeader akan memanggil kode mesin dengan instruksi call. Gambar 20 menunjukkan source code dari operasi FilterIPHeader.
ActType clsAccessList::FilterIPHeader (const IP_HEADER * iphdr) { ActType result = clsAccessListEntry::Block; if (this->lockReader()) { __asm { mov ecx, this mov eax, [ecx].ACL_Code cmp eax, 0 je gagal mov ecx, iphdr xor edx, edx call eax mov result, eax gagal: } this->unlockReader(); } return result; }
Gambar 20 Source code dari operasi FilterIPHeader Sebagai contoh, akan dibuat sebuah saringan IP yang menolak paket TCP dengan port tujuan 80 dari alamat IP 192.168.4.1, 192.168.4.55 sampai 192.168.5.200, 192.168.7.0/24, dan 192.168.3.56. Selain itu saringan IP juga dibuat agar menolak paket ICMP dengan tipe echo request dan timestamp request yang berasal dari alamat IP 192.168.0.0/16. Saringan IP ini dapat dinyatakan dalam format konfigurasi Sinaru yang diperlihatkan pada Gambar 21. access-list "contoh" allow deny ip src "192.168.4.1, 192.168.4.55 - 192.168.5.200, 192.168.7.0/24, 192.168.3.56" dest any proto tcp sport any dport "80" deny ip src "192.168.0.0/16" dest any proto icmp "8,13" end
Gambar 21 Contoh saringan IP Saringan IP di atas akan diubah menjadi kode mesin oleh Sinaru. Pembuatan kode mesin dilakukan dengan cara merakit potongan-potongan kecil kode mesin dan memasukkan parameter-parameter yang diperlukan seperti alamat IP dan alamat port serta menghitung alamat untuk instruksi lompatan seperti je, jbe , ja. Beberapa contoh potongan kode mesin yang dirakit Sinaru adalah sebagai berikut: 1. 8B 41 0C 0F C8, yaitu kode mesin dari instruksi mov eax, dword ptr[ecx+0Ch] dan bswap eax secara berurutan. Kode mesin ini berfungsi untuk mengambil alamat IP sumber dari header paket IP yang ditunjukkan oleh register ecx ke dalam register eax. 2. 3D 00 00 00 00, yaitu kode mesin dari instruksi cmp eax, alamatIP. Kode mesin ini berguna untuk mencocokkan alamat IP pada register eax. Sinaru akan mengganti empat bytes terakhir dengan alamat IP yang akan dicocokkan. Sebagai contoh, untuk mencocokkan apakah alamat IP
15
pada register eax adalah 192.168.4.1 maka kode mesin yang harus dihasilkan Sinaru adalah 3D 01 04 A8 C0. 3. 8A 41 09 3C 00, yaitu kode mesin dari instruksi mov al, byte ptr ecx+9 dan cmp al, kode_proto secara berurutan. Kode mesin ini berguna untuk mencocokkan jenis protokol pada header paket IP. Sinaru mengganti satu byte terakhir dengan kode jenis protokol. Sebagai contoh, untuk mencocokkan apakah isi paket IP adalah sebuah segment TCP maka Sinaru harus menghasilkan kode mesin 8A 41 09 3C 06. Kode mesin yang dirakit Sinaru untuk saringan IP pada Gambar 21 terdiri atas deretan bytes sebanyak 170 bytes. Kode mesin tersebut dapat dilihat pada Lampiran 2. Pengujian Pengujian dilakukan dalam dua tahapan, masing-masing tahap dilakukan pada topologi jaringan yang berbeda. Hal ini karena protokol yang diuji memang berbeda fungsi dan cara kerjanya. Misalnya, untuk menguji protokol ARP hanya dibutuh satu jaringan saja, sedangkan untuk menguji RIP dibutuhkan banyak jaringan. Semua router yang menjalankan Sinaru pada kedua tahapan pengujian dinonaktifkan TCP/IP stack-nya. Dengan demikian pada router tersebut hanya TCP/IP stack milik sinaru yang bekerja. 1) Pengujian pada Jaringan Sederhana Pengujian pada jaringan sederhana terdiri atas 17 skenario pengujian yang dibuat untuk menguji protokol ARP, ICMP dan IP. Hasil dari skenario-skenario pengujian ini dapat dilihat pada Lampiran 3. Skenario 1 menguji kemampuan router dalam membalas ARP request dan mengirim ARP reply. Skenario 2 menguji kemampuan router dalam mengirim ARP Reply. Skenario 3 memperlihatkan bahwa router dapat membalas paket ICMP echo request dengan mengirim paket ICMP echo reply. Skenario 4 memperlihatkan bahwa router dapat membalas paket ICMP echo request yang ditujukan ke alamat IP milik antarmuka jaringan yang berbeda dengan antarmuka jaringan yang menerima paket. Skenario 5 memperlihatkan bahwa router dapat mengirim paket ICMP echo request.
Skenario 6 menguji kemampuan router dalam membalas paket ICMP timestamp dengan mengirim paket ICMP timestamp reply. Skenario 7 memperlihatkan bahwa router dapat membalas paket ICMP address mask request dengan mengirim paket ICMP address mask reply, baik ke alamat IP router maupun ke alamat broadcast. Skenario 8 memperlihatkan bahwa router dapat mengirim paket ICMP destination unreachable dengan kode protocol unreachable ketika mendapat paket TCP. Router melakukan ini karena protokol TCP tidak diimplementasikan pada router. Skenario 9 memperlihatkan bahwa router dapat mengirim paket ICMP destination unreachable dengan kode port unreachable ketika mendapat paket UDP dengan port tujuan yang tidak terbuka. Skenario 10 memperlihatkan bahwa router dapat mengirim paket ICMP destination unreachable dengan kode net unreachable ketika router gagal menemukan rute untuk sebuah paket IP. Skenario 11 memperlihatkan bahwa router dapat mengirim ICMP time exceeded dengan kode TTL exceeded in transit ketika akan mem-forward paket IP yang field TTL pada header-nya bernilai satu. Skenario 12 memperlihatkan bahwa router dapat mengirim ICMP destination unreachable dengan kode fragmentation needed and DF set ketika router harus melakukan fragmentasi terhadap paket IP yang hendak di-forward tetapi bit DF pada header IP paket itu bernilai satu. Skenario 13 memperlihatkan bahwa router dapat mem-forward paket IP. Dalam proses ini tidak lupa router juga mengurangi TTL pada paket IP dan memperbarui header checksum-nya. Skenario 14 memperlihatkan bahwa router dapat mem-forward sekaligus melakukan fragmentasi jika Maximum Transmission Unit (MTU) dari antarmuka jaringan tujuan lebih kecil daripada panjang paket yang hendak di-forward. Skenario 15 memperlihatkan bahwa router dapat memproses IP options record route dengan mengisi alamat IP router pada record yang tersedia pada header paket IP yang hendak di-forward. Skenario 16 memperlihatkan bahwa router dapat memproses IP options internet timestamp dengan flags bernilai satu. Router mengisi alamat IP router dan timestamp pada record
16
yang tersedia di header paket IP yang hendak di-forward. Skenario 17 memperlihatkan bahwa lapisan internet pada router dapat bekerja dengan benar sehingga menyebabkan lapisan aplikasi pada dua host yang berbeda jaringan dapat berkomunikasi. 2) Pengujian pada Jaringan Kompleks Proses pengujian pada jaringan kompleks diawali dengan membuat topologi jaringan pengujian. Jaringan pengujian yang dibuat dapat dilihat pada Gambar 22. Router-router pada jaringan pengujian dikonfigurasikan seperti yang terlihat pada Lampiran 4. Hosthost pada jaringan pengujian dikonfigurasikan seperti yang terlihat pada Lampiran 5.
Jaringan-jaringan pada pengujian ini terbagi menjadi dua ruang alamat NAT, yaitu lokal atau dalam (inside) dan global (outside) atau luar. Pada tulisan ini akan digunakan istilah dalam dan luar. Yang termasuk jaringan dalam adalah 10.0.1.0/24, 10.0.2.0/24, 10.0.3.0/24, 10.0.4.0/24, dan 10.0.5.0/24. Jaringan selain itu dianggap jaringan luar. Jumlah host pada jaringan dalam sangat minimal, hal ini dikarenakan keterbatasan perangkat keras. Meskipun demikian hal tersebut tidak akan berpengaruh terhadap hasil pengujian. Sebuah router (Router4) pada jaringan dalam bukanlah perangkat lunak yang diuji, tujuannya adalah untuk memperlihatkan bahwa router perangkat lunak dapat bekerja sama dengan router lainnya.
FTP Server 172.17.0.10 172.17.1.147
Switch Cyber
Web server 172.17.0.19
172.17.36.184/24
10.0.3.1/24 10.0.5.1/24 10.0.3.3/24
Client5 10.0.5.50/24
10.0.2.1/24
Router PC (Router1)
SMC 7904BRA DWL-G700AP (Router4)
Client1 10.0.2.20/24
10.0.3.2/24
HUB
10.0.4.1/24 10.0.2.2/24
LAPTOP (Router3)
Client2 10.0.2.21/24 10.0.1.1/24
Router PC (Router2)
Client4 10.0.4.40/24
Client3 10.0.1.10/24
Gambar 22 Topologi jaringan pengujian kompleks
17
Setelah jaringan dibuat, dirancang 29 skenario pengujian yang dibuat untuk menguji protokol RIP, IP dan NAT pada router. Hasil dari masing-masing skenario pengujian ini dapat dilihat pada Lampiran 6. Skenario 1 memperlihatkan aksi protokol RIP versi 2 dari router-router yang diuji. Router dapat mengirim RIP request dan dapat memproses RIP request yang menanyakan seluruh rute dari router lain dengan mengirim RIP response yang berisi seluruh isi tabel rute. Router juga mengirim RIP response (triggered update) ketika tabel rute miliknya berubah. Rute yang dikirim adalah hanya yang berubah saja. Setiap kurang lebih tiga puluh detik router juga mengirim RIP response (regular update). Skenario dua sampai 29 menguji implementasi IP forwarding dan NAT dari router. Skenario-skenario pengujian NAT dapat dibagi menjadi tiga ketegori berdasarkan letak host-host yang akan berkomunikasi, yaitu:
Dalam-Dalam. Pada skenario-skenario ini semua host yang berkomunikasi berada pada jaringan dalam. Meskipun demikian host-host ini menggunakan alamat IP luar sebagai alamat IP tujuan pada header paket IP yang mereka kirim.
Dalam-Luar. Pada skenario-skenario ini host yang memulai komunikasi berada pada jaringan dalam, sedangkan host tujuan berada pada jaringan luar. Dalam hal komunikasi klien-server, klien berada pada jaringan dalam, sedangkan server berada pada jaringan luar.
Luar-Dalam. Kategori pengujian ini adalah kebalikan dari Dalam-Luar yang sudah dijelaskan sebelumnya. Host yang memulai komunikasi berada pada jaringan luar sedangkan host tujuan berada pada jaringan dalam. Dalam hal komunikasi klien-server, klien berada pada jaringan luar, sedangkan server berada pada jaringan dalam.
Skenario-skenario pengujian ini menggunakan program ping dan tracert. Lebih jauh, pengujian juga melibatkan protokol yang berada pada layer di atas layer 3, yaitu HTTP dan FTP. Tabel 5 memperlihatkan rangkuman jenis-jenis pengujian dan protokol atau program yang digunakan. Skenario 2, 3, dan 4 memperlihatkan kemampuan router-router dalam mem-
forward paket-paket dan mencari rute yang benar. Skenario 5 memperlihatkan bahwa router juga dapat mem-forward ke interface yang sama dengan paket diterima. Skenario 6 memperlihatkan bahwa router dapat mengirim ICMP Redirect. Tabel 5 Skenario pengujian Skenario
Protokol atau Program
IP Forwarding
ping
NAT DalamDalam
DalamLuar
LuarDalam
2
9, 12
17, 19
23, 26
tracert
3, 4, 5, 6
10, 11, 12, 13
18
24, 25
HTTP
7
14, 16
20
27, 28
FTP
8
15
21, 22
29
Skenario 7 dan 8 menunjukkan bahwa lapisan internet pada router-router dapat bekerja dengan benar sehingga menyebabkan lapisan aplikasi pada dua host yang berbeda jaringan dapat berkomunikasi. Pada skenario 7 lapisan aplikasinya adalah HTTP sedangkan pada skenario 8 lapisan aplikasinya adalah FTP. Paket-paket melalui dua router untuk sampai ke tujuannya. Skenario 9 sampai 16 memperlihatkan kemampuan unik router dalam menangani paket-paket yang harus mengalami proses penggantian alamat IP (NAT). Yang tidak biasa dari implementasi NAT ini adalah arah paketnya yang Dalam-Dalam, yaitu paket dari jaringan dalam yang bertujuan ke alamat IP luar yang ternyata juga berada di jaringan dalam. Paket ini tidak di-forward ke jaringan luar terlebih dahulu, tetapi langsung diforward ke jaringan dalam. Paket IP yang arahnya dari jaringan dalam ke jaringan dalam mengalami perubahan alamat IP sumber dan alamat IP tujuan. Skenario 9 memperlihatkan proses dalamdalam secara sederhana dengan menggunakan paket ICMP echo request untuk memperlihatkan proses penggantian alamat IP pada header paket IP yang dilakukan oleh Router1. Dalam proses ini Router1 mengganti alamat IP sumber dan juga alamat IP tujuan. Setelah itu langsung mengeluarkan paket ke interface yang terhubung ke jaringan dalam yang sesuai. Skenario 10 memperlihatkan pemakaian program tracert dalam jaringan pengujian untuk melihat router-router antara dua host. Karena Router2 dan Router3 tidak memiliki alamat IP luar, maka ICMP time exceeded yang dikirim oleh mereka diabaikan oleh
18
Router1, sehingga program tracert tidak mendapat paket tersebut. Skenario 11 adalah pengembangan dari skenario 10 dengan memberikan alamat IP luar kepada Router2 dan Router3. Hal ini menyebabkan paket ICMP time exceeded yang mereka kirim diproses oleh Router1. Paket ICMP time exceeded termasuk ICMP error-reporting messages yang datanya berisi header IP dari paket yang error. Proses NAT pada Router1 juga mengubah alamat IP sumber dan alamat IP tujuan pada header IP ini. Skenario 12 merupakan pengembangan dari skenario 10 dan 11. Pada skenario ini Client3 melakukan ping dan tracert ke alamat IP luar Client3. paket-paket diganti alamat IP sumber dan IP tujuannya oleh Router1. Program ping berhasil berjalan tanpa kendala, sementara pada program tracert, hop ke-3 time out karena Router2 tidak memiliki alamat IP luar. Pada skenario 13, Router2 diberi alamat IP luar sehingga program tracert berhasil berjalan tanpa ada time out. Paket ICMP time exceeded yang dikirim oleh Router2 memiliki payload berupa header IP yang diubah alamat IP sumber dan alamat IP tujuannya oleh Router1. Skenario 14 memperlihatkan bahwa proses dalam-dalam yang dilakukan oleh Router1 berlangsung secara benar dan transparan sehingga lapisan aplikasi HTTP Client1 dan Client4 dapat saling berkomunikasi menggunakan alamat IP luar masing-masing tanpa menyadari bahwa alamat IP pada header IP yang mereka terima telah diganti. Skenario 15 memperlihatkan permasalahan yang terjadi antara NAT dengan protokol yang terjadi pada layer di atas layer 3, dalam hal ini FTP. Di dalam payload-nya FTP memasukkan alamat IP dan port yang akan digunakan untuk melakukan transfer data. Alamat IP yang dimasukkan pada payload, dalam kasus tertentu dapat menjadi tidak valid karena adanya NAT. Solusinya adalah router NAT harus memperbarui alamat IP pada payload FTP. Solusi lainnya adalah mengatur klien atau server FTP agar langsung memberikan alamat IP luar mereka dalam koneksi kontrol FTP. Inti permasalahan FTP dengan NAT adalah pada perintah FTP (FTP command) PORT dan balasan FTP (FTP reply) 227. Balasan 227 merupakan balasan dari perintah PASV. Perintah PORT memberikan alamat IP
dan port klien agar server membuat koneksi ke alamat IP tersebut. Balasan 227 memberikan alamat IP dan port server agar klien membuat koneksi ke alamat IP tersebut. Keduanya pada dasarnya bertujuan untuk membangun proses transfer data dan dapat saling menggantikan. Meskipun demikian posisi klien dan posisi server berpengaruh terhadap bermasalah atau tidaknya perintah PORT atau balasan 227. Jika posisi klien dan server tidak menimbulkan masalah pada parintah PORT atau balasan 227, maka router tidak akan mengubah payload FTP. Tabel 6 menunjukkan hubungan posisi klien dan server dengan perlu atau tidaknya perintah PORT dan balasan 227 diubah. Tabel 6 Posisi klien - server dan perlu tidaknya mengubah payload FTP Posisi Klien dan Server
Perintah PORT
Balasan 227
Klien di dalam, Perlu diubah Perlu diubah Server di dalam Klien di dalam, Perlu diubah Tidak perlu diubah Server di luar Klien di luar, Tidak perlu diubah Perlu diubah Server di dalam
Pada skenario 15 baik klien maupun server berada pada jaringan dalam. Pada kasus ini baik perintah PORT maupun balasan 227 harus diperbaiki oleh NAT. Klien FTP pada Client4 dikonfigurasikan agar memakai perintah PORT dan PASV. Pada perintah PORT, Router1 gagal membetulkan alamat IP pada perintah tersebut karena keterbatasan pada Router1, meskipun demikian server FTP pada Client2 berhasil tersambung dengan klien FTP pada Client4 dengan menggunakan alamat IP dalam masing-masing. Sementara itu balasan 227 dapat diperbaiki oleh router1, sehingga proses transfer data menggunakan IP luar masing-masing berhasil dilakukan. Gambar 23 menunjukkan balasan 227 sebelum dan sesudah diperbaiki. Sebelum: 227 Entering Passive Mode (10,0,2,21,4,19)
Sesudah: 227 Entering Passive M (172,17,36,21,4,19)
Gambar 23 Penggantian payload FTP pada skenario 15 Skenario 16 memperlihatkan kondisi yang tidak mungkin dilakukan tanpa NAT. Pada skenario ini klien HTTP dapat berhubungan dengan server HTTP pada host yang sama tanpa melalui loopback interface. Baik klien
19
dan server sama sekali tidak menyadari hal ini dan menganggap bahwa mereka terkoneksi dengan host 172.17.36.20. Tanpa adanya NAT, koneksi ini akan melalui loopback interface sehingga tidak akan keluar ke jaringan di luar host tersebut. Skenario 17 sampai 29 memperlihatkan kemampuan router dalam menangani paketpaket yang harus di-forward dari interface yang terhubung dengan jaringan dalam ke interface yang terhubung dengan jaringan luar atau sebaliknya. Paket yang di-forward dari jaringan dalam ke jaringan luar akan diubah alamat IP sumbernya, sedangkan paket yang di-forward dari jaringan luar ke jaringan dalam akan diubah alamat IP tujuannya. Skenario 17 memperlihatkan proses NAT Dalam-Luar dengan mengunakan program ping untuk mengirim ICMP echo request ke host yang terletak di jaringan luar. Skenario 18 menggunakan program tracert untuk melihat rute-rute ke host tujuan yang terletak di jaringan luar. Pada skenario 18 router memiliki tugas tambahan yaitu membetulkan alamat IP sumber pada payload ICMP time exceeded yang berasal dari router-router yang berada di jaringan luar. Kalau tidak dibetulkan maka program tracert tidak akan mengetahui bahwa paket ICMP time exceeded tersebut adalah balasan dari echo request yang sebelumnya ia kirim. Skenario 19 memperlihatkan bahwa host di jaringan dalam yang tidak memiliki alamat IP luar tidak diperbolehkan mengirim paket ke jaringan luar. Paket itu akan diabaikan tanpa pemberitahuan oleh router. Skenario 20 memperlihatkan koneksi HTTP yang kliennya terletak pada jaringan dalam dan servernya terletak pada jaringan luar. Pengubahan alamat IP yang dilakukan oleh router sama sekali tidak mengganggu koneksi HTTP, sehingga koneksi dapat berlangsung secara normal. Skenario 21 dan 22 memperlihatkan klien FTP yang terletak pada jaringan dalam berhubungan dengan server FTP yang terletak pada jaringan luar. Berbeda dengan kondisi Dalam-Dalam, pada kondisi Dalam-Luar permasalahannya hanya pada perintah PORT. Balasan 227 tidak bermasalah karena balasan 227 memberitahukan alamat IP server yang terletak di jaringan luar sehingga tidak perlu diubah oleh router. Pada skenario 21, router membetulkan perintah PORT
gagal karena
keterbatasan pada implementasi router. Perintah yang gagal dibetulkan itu akan dibiarkan apa adanya dan dilewatkan oleh router sehingga menyebabkan koneksi data FTP gagal terbentuk. Gambar 24 menunjukkan perintah PORT yang gagal dibetulkan dan bagaimana seharusnya perintah PORT yang benar. Perintah yang gagal: PORT 10,0,4,40,4,89
Perintah yang seharusnya: PORT 172,17,36,3,4,89
Gambar 24 Penggantian payload FTP pada skenario 21 Skenario 22 menunjukkan bahwa untuk kasus tertentu router dapat membetulkan perintah PORT. Yaitu jika panjang alamat IP dalam bentuk susunan karakter ASCII sama dengan atau lebih panjang dari alamat IP luar. Oleh karena itu pada skenario 22 alamat IP klien diganti menjadi lebih panjang. Untuk lebih jelasnya, Gambar 25 menunjukkan perintah PORT sebelum dan sesudah dibetulkan. Sebelum: PORT 10,100,140,40,4,36
Sesudah: PORT
172,17,36,23,4,36
Gambar 25 Penggantian payload FTP pada skenario 22 Skenario 23 memperlihatkan proses NAT Luar-Dalam. Pada skenario ini host pada jaringan luar menggunakan program ping untuk mengirim paket ICMP echo request ke host yang terletak pada jaringan dalam. Skenario 24 memperlihatkan penggunaan program tracert untuk melihat rute-rute yang dilalui untuk mencapai tujuan. Program tracert berjalan normal, tetapi ketika router yang terletak di jaringan dalam mengirim paket ICMP time exceeded, router NAT tidak membolehkan paket itu ke jaringan luar karena router yang berada di jaringan dalam tidak memiliki alamat IP luar. Skenario 25 adalah perbaikan dari skenario 24. Pada skenario 25 router yang hendak mengirim time exceeded diberi alamat IP luar. Program tracert berjalan normal, ICMP time exceeded dari router di dalam pun diperbolehkan keluar, hanya saja router NAT memiliki tugas tambahan yaitu membetulkan alamat IP tujuan dari payload ICMP time exceeded. Dengan demikian program tracert mendapatkan jawaban yang normal seolaholah tidak ada proses NAT sama sekali.
20
Skenario 26 memperlihatkan apa yang terjadi jika ada paket dari jaringan luar yang ditujukan langsung kepada host di jaringan dalam. Pada skenario ini tabel rute routerrouter di jaringan luar (jaringan IPB) dibuat sedemikian sehingga paket dengan tujuan alamat IP dalam (10.0.4.0/24 dan 10.0.5.0/24) dapat diarahkan sampai ke interface jaringan luar Router1. Paket yang sampai akan diperbolehkan masuk dan dapat mencapai tujuannya. Ketika host di dalam akan membalas paket tersebut, akan ada dua kemungkinan yaitu: Jika host di dalam memiliki alamat IP luar maka paket tersebut akan melalui proses NAT sehingga alamat IP sumbernya berubah. Jika host di dalam tidak memiliki alamat IP luar maka paket balasan tersebut tidak akan di-forward keluar oleh router (paket dibuang). Skenario 27 memperlihatkan koneksi HTTP yang kliennya terletak pada jaringan luar dan servernya terletak pada jaringan dalam. Karena protokol HTTP benar-benar tidak peduli dengan lapisan protokol di bawahnya maka semua berjalan normal. Proses NAT pada router tidak melakukan pekerjaan tambahan kecuali mengganti alamat IP sumber atau alamat IP tujuan saja. Skenario 28 mirip dengan skenario 26 yang memperlihatkan host di jaringan luar ingin membuat koneksi HTTP dengan host yang terletak di jaringan dalam tetapi tidak menggunakan alamat IP luar melainkan langsung menggunakan alamat IP dalam. Paket SYN dari host luar dapat sampai ke tujuan, tetapi apakah balasannya (SYN+ACK) sampai atau tidak tergantung dari apakah host di dalam memiliki alamat IP luar atau tidak. Meskipun balasannya dapat mencapai host di luar tetapi koneksi HTTP tidak dapat terbentuk karena paket SYN+ACK diubah alamat IP sumbernya oleh router sehingga host di jaringan luar tidak mengenalinya. Skenario 29 memperlihatkan klien FTP yang terletak pada jaringan luar berhubungan dengan server FTP yang terletak pada jaringan dalam. Berbeda dengan kasus Dalam-Dalam maupun Dalam-Luar, pada kasus Luar-Dalam permasalahan terletak hanya pada balasan 227. Perintah PORT tidak bermasalah karena perintah PORT memberitahukan alamat IP klien yang terletak di luar sehingga tidak perlu diubah oleh router. Pada skenario ini router berhasil membetulkan alamat IP pada balasan 227 yang dikeluarkan oleh server FTP yang berada di jaringan dalam. Gambar 26
menunjukkan balasan 227 sesudah diganti oleh router.
sebelum dan
Sebelum: 227 Entering Passive Mode (10,0,2,21,4,52)
Sesudah: 227 Entering Passive M (172,17,36,21,4,52)
Gambar 26 Penggantian payload FTP pada skenario 29 Analisis Kinerja Router Analisis kinerja router dilakukan berdasarkan pada lima parameter, yaitu forwarding delay, jitter, throughput, utilisasi CPU dan pemakaian memori. Hasil pengukuran kelima parameter ini disajikan dalam bentuk grafik. Tiga parameter pertama dibandingkan dengan router Windows XP. 1) Forwarding Delay Gambar 27 memperlihatkan plot forwarding delay 300 paket ICMP echo request Sinaru dan router Windows XP. Garis berwarna merah merepresentasikan forwarding delay dari Sinaru dan garis berwarna hijau merepresentasikan forwarding delay dari router Windows XP. Nilai rata-rata forwarding delay dari Sinaru adalah 0,190557 ms, sementara nilai rata-rata forwarding delay dari router Windows XP adalah 0,093290 ms, dengan demikian forwarding delay rata-rata Sinaru sekitar dua kali lipat forwarding delay rata-rata router Windows XP. Gambar 27 juga menunjukkan bahwa forwarding delay dari router Windows XP lebih kecil dari forwarding delay dari Sinaru.
Gambar 27 Perbandingan forwarding delay Sinaru dan router Windows XP Pada Gambar 27 terlihat ada tiga lonjakan yang cukup besar pada forwarding delay Sinaru. Ketiga lonjakan ini terlihat berada pada jarak waktu yang hampir sama dan nilai forwarding delay yang hampir sama. Berdasarkan data penangkapan paket, lonjakan ini berada pada paket ICMP echo request ke-40, 160 dan 280. Tabel 7 dibuat
21
untuk memperlihatkan sent time, waktu relatif dan forwarding delay pada saat terjadi lonjakan berdasarkan data penangkapan paket. Tabel 7 Sent time, waktu relatif, dan forwarding delay saat lonjakan. Sent time relatif Waktu relatif Forwarding terhadap sequence terhadap lonjakan delay Sequence pertama sebelumnya (detik) (ms) (detik) 40
58,183625
-
0, 391
160
238,187097
180,003472
0, 389
280
418,190558
180,003461
0, 388
Berdasarkan Tabel 7, jarak waktu antara dua lonjakan forwarding delay yang berurutan hampir sama, yaitu sekitar 180 detik. Sementara itu forwarding delay ketiga lonjakan itu juga hampir sama, dengan nilai rata-rata 0,38933 ms. Dengan demikian, diduga lonjakan itu dikarenakan entri ARP yang berisi alamat fisik dari alamat IP 192.168.5.2 pada Sinaru mengalami time out. Waktu time out ARP pada Sinaru saat pengukuran delay adalah 180 detik. Akibat time out, untuk mem-forward paket ICMP echo request ke-40, 160 dan 280 Sinaru harus mengirim ARP request dan menunggu ARP reply. Hal inilah yang menyebabkan terjadinya lonjakan forwarding delay pada paket ICMP echo request ke-40, 160, dan 280. Di lain pihak, router Windows XP memiliki nilai time out ARP 600 detik. Jarak waktu sent time paket ICMP echo request pertama dengan paket ke-300 adalah 448 detik. Dengan demikian selama pengujian ARP router Windows XP tidak mengalami time out, sehingga tidak terlihat lonjakan yang sama pada plot forwarding delay dari router Windows XP.
Gambar 28 Jitter Sinaru
Gambar 29 Jitter router Windows XP 3) Throughput Perbandingan throughput selama 60 detik antara Sinaru dan router Windows XP diperlihatkan oleh Gambar 30. Penguji1 menjalankan iperf sebagai klien. Gambar 31 memperlihatkan perbandingan throughput pada saat Penguji2 berperan sebagai klien. Tabel 8 menunjukkan throughput rata-rata.
2) Jitter Dengan menggunakan data yang sama dengan plot forwarding delay, jitter dihitung dan diplot. Gambar 28 memperlihatkan hasil plot jitter 300 paket ICMP echo request Sinaru. Gambar 29 memperlihatkan hasil plot jitter 300 paket ICMP echo request router Windows XP. Nilai rata-rata jitter dari Sinaru adalah 12,127 μs, sementara nilai rata-rata jitter dari router Windows XP adalah 15,381 μs. Dari Gambar 28 dan Gambar 29 terlihat bahwa jitter dari Sinaru terlihat lebih baik daripada jitter router Windows XP. Pada plot jitter Sinaru juga terlihat adanya lonjakan yang sama seperti pada plot forwarding delay.
Gambar 30 Perbandingan throughput TCP, Penguji1 sebagai klien iperf
Gambar 31 Perbandingan throughput TCP, Penguji2 sebagai klien iperf
22
Tabel 8 Throughput rata-rata Router
Klien iperf Penguji1
Penguji2
Throughput (kb/s) Windows XP Sinaru
94.228 81.908
90.170 80.137
Berdasarkan Tabel 8, ketika Penguji2 berperan sebagai klien, throughput kedua router lebih rendah. Hal ini disebabkan perbedaan perangkat keras antara Penguji1 dan Penguji2. Throughput Sinaru selalu lebih rendah dibandingkan throughput router windows XP baik pada saat Penguji1 sebagai klien maupun saat Penguji2 sebagai klien.
Gambar 32 Utilisasi CPU, Penguji1 sebagai klien
4) Utilisasi CPU Pengukuran utilisasi CPU dilakukan pada saat router diuji throughput-nya. Program pencatat utilisasi CPU dijalankan satu kali dan akan terus mencatat utilisasi CPU setiap satu detik sampai program diberhentikan. Utilisasi CPU yang dicatat oleh program bukanlah utilisasi CPU sistem keseluruhan, melainkan hanya utilisasi CPU yang digunakan oleh process Sinaru. Plot utilisasi CPU Sinaru ketika Penguji1 mencatat throughput seperti pada Gambar 30 ditunjukkan oleh Gambar 32. Plot utilisasi CPU Sinaru ketika Penguji2 mencatat throughput seperti pada Gambar 31 ditunjukkan oleh Gambar 33. Pengujian throughput dimulai pada detik ke-0 dan berakhir pada detik ke-60. Gambar 32 dan Gambar 33 juga menyertakan utilisasi CPU sepuluh detik sebelum dan sepuluh detik sesudah pengukuran throughput. Rata-rata utilisasi CPU saat Penguji1 sebagai klien adalah 39,64%, sedangkan ratarata utilisasi CPU pada saat Penguji2 sebagai klien adalah 37,84%. Kedua nilai rata-rata ini tidak termasuk data sepuluh detik sebelum dan sepuluh detik sesudah pengukuran throughput. Utilisasi CPU pada saat Penguji2 sebagai klien lebih rendah karena throughputnya (Tabel 8) memang lebih rendah. Dari Gambar 32 dan Gambar 33 terlihat bahwa utilisasi CPU tidak seratus persen, artinya bukan utilisasi CPU Sinaru yang membatasi throughput seperti yang terlihat pada Tabel 8. Dari gambar juga terlihat bahwa ketika router tidak mem-forward paket (sepuluh detik sebelum dan sesudah pengukuran throughput) utilisasi CPU Sinaru bernilai nol persen.
Gambar 33 Utilisasi CPU, Penguji2 sebagai klien Meskipun dapat diambil kesimpulan bahwa bukan utilisasi CPU dari process Sinaru yang membatasi throughput akan tetapi Sinaru menggunakan WinPcap untuk menangkap paket. WinPcap memiliki bagian yang berjalan pada user level dan bagian yang berjalan pada kernel level. Kode WinPcap pada user level (wpcap.dll dan packet.dll) dihitung pada utilisasi CPU process Sinaru, sedangkan kode WinPcap pada kernel level tidak ikut dihitung. 5) Memori Pengukuran pemakaian memori dilakukan bersamaan dengan pengukuran utilisasi CPU dan menggunakan perangkat lunak yang sama. Pemakaian memori yang dicatat bukan pemakaian memori keseluruhan, melainkan hanya pemakaian memori process Sinaru. Plot pemakaian memori Sinaru ketika Penguji1 mencatat throughput seperti pada Gambar 30 ditunjukkan oleh Gambar 34. Plot pemakaian memori Sinaru ketika Penguji2 mencatat throughput seperti pada Gambar 31 ditunjukkan oleh Gambar 35. Pengujian throughput dimulai pada detik ke-0 dan berakhir pada detik ke-60. Gambar 34 dan Gambar 35 juga menyertakan pemakaian memori sepuluh detik sebelum dan sepuluh detik sesudah pengukuran throughput.
23
sehingga protokol FTP dapat bekerja dengan baik saat router melakukan NAT, meskipun demikian kemampuan ini terbatas sehingga pada kasus tertentu router gagal mengganti payload FTP.
Gambar 34 Pemakaian memori, Penguji1 sebagai klien
Pada parameter kinerja forwarding delay dan throughput Sinaru berada di bawah router windows XP, sedangkan pada parameter kinerja jitter Sinaru lebih baik dari router Windows XP. Dari hasil pengamatan terhadap utilisasi CPU terlihat bahwa Sinaru menggunakan 0 % CPU saat tidak melakukan apa-apa dan 39,64% saat router mem-forward dengan throughput 81,9 Mb/s. Dari hasil pengamatan terhadap pemakaian memori menunjukkan bahwa Sinaru tidak memakai banyak memori dan pemakaian memori yang stabil pada saat pengujian throughput. Saran
Gambar 35 Pemakaian memori, Penguji2 sebagai klien Rata-rata pemakaian memori saat Penguji1 sebagai klien adalah 1693864 bytes, sedangkan rata-rata pemakaian memori pada saat Penguji2 sebagai klien adalah 1692588 bytes. Kedua nilai rata-rata ini tidak termasuk data sepuluh detik sebelum dan sepuluh detik sesudah pengukuran throughput. Perbedaan rata-rata pemakaian memori ini sangat kecil dan tidak signifikan. Pada kedua plot memori di gambar Gambar 34 dan Gambar 35 terlihat bahwa sepuluh detik sebelum pengujian throughput, pemakaian memori konstan. Ketika terjadi pengukuran throughput pemakaian memori tampak turun naik, namun pemakaian memori tidak naik terus atau turun terus. Pada sepuluh detik setelah pengujian throughput pemakaian memori tampak kembali konstan. Ini memperlihatkan bahwa penggunaan memori Sinaru tidak besar dan stabil saat memforward banyak paket.
KESIMPULAN DAN SARAN Kesimpulan Sinaru (Simple IPv4 NAT Router) adalah router perangkat lunak yang memiliki fasilitas static NAT, RIP, dan penyaringan paket IP. Router juga mampu mengganti payload FTP
Perangkat lunak yang dibuat masih memiliki beberapa kekurangan dan masih dapat dikembangkan lebih lanjut. Pengembangan tersebut antara lain: 1. Membuat modul penangkapan dan pengiriman paket tersendiri, sehingga Sinaru tidak lagi membutuhkan WinPcap. Diharapkan kinerja Sinaru akan lebih baik. 2. Menyempurnakan penggantian payload FTP pada proses NAT sehingga router selalu berhasil melakukannya. Untuk itu proses NAT harus melakukan inspeksi ketat pada aliran kontrol FTP. 3. Menambahkan dukungan pada datalink selain Ethernet, misalnya PPPoE. 4. Menyempurnakan dan mengoptimalkan beberapa struktur data internal Sinaru, seperti tabel rute, tabel NAT dan tabel ARP. Saat ini tabel-tabel tersebut menggunakan struktur data doubly-linked list. Penggantian struktur data dengan yang lebih baik diharapkan dapat meningkatkan performa router. 5. Melakukan analisis kinerja yang lebih mendalam seperti yang dipaparkan di RFC 2544.
DAFTAR PUSTAKA Avravmov D. 2005. How to get CPU usage by performance counters (without PDH). http://www.codeproject.com/KB/system/c puusageByDudiAvramov.aspx [16 Februari 2008]
24
Baker F, editor. 1995. Requirements for IP Version 4 Routers. IETF. RFC 1812. Comer DE. 2000. Computer Networks and Internets. Ed ke-2. Pearson Education Asia. Egevang K, Francis P. 1994. The IP Network Address Translator (NAT). IETF. RFC 1631. Forouzan BA, Sophia CF. 2006. TCP/IP Protocol Suite. Ed ke-3. New York: McGraw-Hill. [IEEE] Institute of Electrical and Electronics Engineers, Inc. 2005. Part 3: Carrier sense multiple access with collision detection (CSMA/CD) access method and physical layer specifications. New York: IEEE. Poretsky S, Perser J, Erramilli S, Khurana S. 2006. Terminology for Benchmarking Network-layer Traffic Control Mechanisms. IETF. RFC 4689. Postel J, Reynolds J. 1985. File Transfer Protocol (FTP). IETF. RFC 959. Pressman RS. 2001. Software Engineering: A Practitioner’s Approach. Ed ke-5 McGraw-Hill. Srisuresh P, Holdrege M. 1999. IP Network Address Translator (NAT) Terminology and Considerations. IETF. RFC 2663. Stallings W. 2000. Data and Computer Communications. Ed ke-6. Prentice Hall International. Stevens WR. 1994. TCP/IP Illustrated. Volume ke-1, The Protocols. AddisonWesley. Sukoco H. 2005. Kontrol kongesti TCPfriendly menggunakan pendekatan multicast-berlapis untuk aplikasi streaming audio/video di internet [tesis]. Bandung: Institut Teknologi Bandung. Tanenbaum AS. 2003. Computer Networks. Ed ke-4. Pearson Education International. [WT] WinPcap Team. 2007. WinPcap documentation. http://www.winpcap.org/ docs/docs_40_2/html/main.html [12 Desember 2007].
LAMPIRAN
26
Lampiran 1 Hasil desain antarmuka pengguna
27
Lampiran 1 lanjutan
28
Lampiran 1 lanjutan
29
Lampiran 1 lanjutan
30
Lampiran 1 lanjutan
31
Lampiran 1 lanjutan
32
Lampiran 1 lanjutan
33
Lampiran 1 lanjutan
34
Lampiran 1 lanjutan
35
Lampiran 2 Contoh kode mesin hasil kompilasi Sinaru Address 0000 0003 0005 000A 000C 0011 0013 0018 001A 001F 0021 0027 0029 002E 0030 0033 0035 0037 0039 003B 003D 0040 0042 0044 0048 004B 004D 004F 0051 0055 0059 005B 0060 0061 0064 0066 006B 006D 0073 0075 0078 007A 007C 007E 0080 0082 0085 0087 0089 008D 0090 0092 0094 0096 0098 009A 009C 009E 00A3 00A4 00A9
8B 0F 3D 74 3D 72 3D 76 BA 21 81 74 3D 75 8A 3C 75 31 8B 24 C0 8A 0F 66 66 72 03 8B 66 66 75 B8 C3 8B 0F BA 21 81 75 8A 3C 75 31 8B 24 C0 8A 0F 66 66 72 03 8B 3C 74 3C 75 B8 C3 B8 C3
Machine code 41 0C C8 01 04 A8 C0 24 37 04 A8 C0 07 C8 05 A8 C0 16 00 FF FF FF C2 FA 00 07 A8 C0 07 38 03 A8 C0 31 41 09 06 2A D2 01 0F E0 02 D0 C8 2D 04 00 3B C2 14 D1 02 C1 C0 08 3D 50 00 06 01 00 00 00 41 C8 00 C2 FA 2F 41 01 28 D2 01 0F E0 D0 C8 2D 3B 12 D1 02 08 04 0D 06 01
0C 00 FF FF 00 00 A8 C0 09
02 04 00 C2
00 00 00
00 00 00 00
mov bswap cmp je cmp jb cmp jbe mov and cmp je cmp jne mov cmp jne xor mov and shl mov bswap sub cmp jb add mov rol cmp jne mov ret mov bswap mov and cmp jne mov cmp jne xor mov and shl mov bswap sub cmp jb add mov cmp je cmp jne mov ret mov ret
Mnemonic code eax,dword ptr[ecx+0Ch] eax eax,0C0A80401h 0030 eax,0C0A80437h 001A eax,0C0A805C8h 0030 edx,0FFFFFF00h edx,eax edx,0C0A80700h 0030 eax,0C0A80338h 0061 al,byte ptr[ecx+9] al,6 0061 edx,edx eax,dword ptr[ecx] al,0Fh al,2 dl,al eax ax,4 ax,dx 0061 edx,ecx eax,dword ptr[edx] ax,8 ax,50h 0061 eax,1 eax,dword ptr[ecx+0Ch] eax edx,0FFFF0000h edx,eax edx,0C0A80000h 00A4 al,byte ptr[ecx+9] al,1 00A4 edx,edx eax,dword ptr[ecx] al,0Fh al,2 dl,al eax ax,4 ax,dx 00A4 edx,ecx eax,dword ptr[edx] al,8 009E al,0Dh 00A4 eax,1 eax,0
36
Lampiran 3 Hasil pengujian pada jaringan sederhana Fungsi / protokol Skenario pengujian yang diuji 1 ARP Host1 mengirim ARP request menanyakan alamat fisik dari alamat IP 192.168.4.1 2
ARP
3
ICMP
4
ICMP
5
ICMP
6
ICMP
7
ICMP
8
ICMP, IP
9
ICMP, IP
Dengan menggunakan antarmuka pengguna, Router1 dibuat agar mengirim ping ke alamat IP 192.168.4.3 Host1 mengirim empat paket ICMP echo request ke alamat IP 192.168.4.1 Host1 mengirim empat paket ICMP echo request ke alamat IP 192.168.5.1 Dengan menggunakan antarmuka pengguna, Router1 dibuat agar mengirim empat paket ICMP echo request ke alamat IP 192.168.4.2 Host2 mengirim sebuah paket ICMP timestamp ke alamat IP 192.168.5.1 Host2 mengirim tiga paket ICMP address mask request, masingmasing ke alamat IP 192.168.5.2 , 192.168.5.255 , dan 255.255.255.255 Host1 mencoba membuka koneksi TCP ke alamat IP 192.168.4.1 port 80
Host1 mengirim paket UDP ke alamat IP 192.168.4.1 port 80
Yang diharapkan
Hasil pengujian
Router1 membalas dengan ARP reply dengan memberikan alamat fisik interface “fa1” melalui interface “fa1” Router1 mengirim ARP request menanyakan alamat fisik dari alamat IP 192.168.4.3 melalui interface “fa1” Router1 mengirim ICMP echo reply ke alamat IP 192.168.4.2 melalui interface “fa1” Router1 mengirim ICMP echo reply ke alamat IP 192.168.4.2 melalui interface “fa1” Router1 mengirimkan ICMP echo request ke alamat IP 192.168.4.2 melalui interface “fa1”
Sukses. ARP1_sniffer1.pcap
Router1 membalas dengan ICMP timestamp reply ke alamat IP 192.168.5.2 melalui interface “fa2” Router1 membalas dengan tiga ICMP address mask reply ke alamat IP 192.168.5.2 melalui interface “fa2”
Sukses ICMP4_Sniffer2.pcap
Router1 membalas dengan ICMP destination unreachable dengan kode protocol unreachable ke alamat IP 192.168.4.2 melalui interface “fa1” Router1 membalas dengan ICMP destination unreachable dengan kode port unreachable ke alamat IP 192.168.4.2 melalui interface “fa1”
Sukses ICMP6_Sniffer1.pcap
Sukses ARP2_sniffer1.pcap
Sukses ICMP1_Sniffer1.pcap Sukses ICMP2_Sniffer1.pcap Sukses ICMP3_Sniffer1.pcap
Sukses ICMP5_Sniffer2.pcap
Sukses ICMP7_Sniffer1.pcap
37
Lampiran 3 lanjutan Fungsi / protokol Skenario pengujian yang diuji 10 ICMP, IP Host1 mengirim empat Forwarding paket ICMP echo request dengan alamat IP tujuan 10.0.0.1
11 ICMP, IP Forwarding
Host1 mengirim empat paket ICMP echo request ke alamat IP 192.168.5.2 dengan TTL bernilai satu
12 ICMP, IP Forwarding
Dengan menggunakan antarmuka pengguna, buat agar MTU pada “fa2” bernilai 700, lalu Host1 mengirim paket ICMP echo request ke alamat IP 192.168.5.2 dengan jumlah data sebesar 1000 bytes dan flag DF di-set. Host1 mengirim empat paket ICMP echo request ke alamat IP 192.168.5.2
13 IP Forwarding
14 IP Forwarding, Fragmentation
15 IP Forwarding, IP Options
Dengan menggunakan antarmuka pengguna, buat agar MTU pada “fa2” bernilai 700, lalu Host1 mengirim paket ICMP echo request ke alamat IP 192.168.5.2 dengan jumlah data sebesar 1472 bytes. Host1 mengirim sembilan paket ICMP echo request dengan IP options record route ke alamat IP 192.168.5.2. Masing-masing memiliki jumlah record satu sampai sembilan.
Yang diharapkan
Hasil pengujian
Router1 membalas dengan empat paket ICMP destination unreachable dengan kode net unreachable ke alamat IP 192.168.4.2 melalui interface “fa1” Router1 membalas dengan empat paket ICMP time exceeded dengan kode time to live exceeded in transit melalui interface “fa1” Router1 membalas dengan paket ICMP destination unreachable dengan kode fragmentation needed and DF set ke alamat IP 192.168.4.1 melalui interface “fa1”.
Sukses Forw1_Sniffer1.pcap
Router1 mem-forward empat paket ICMP echo request tersebut dari interface “fa1” ke interface “fa2”. Semua paket yang di-forward nilai TTL-nya berkurang satu. Router1 mem-forward dan melakukan fragmentation terhadap paket yang lebih besar dari MTU.
Sukses Forw4_Sniffer1.pcap Forw4_Sniffer2.pcap
Router1 mem-forward sembilan paket ICMP echo request tersebut dari interface “fa1” ke interface “fa2”. Router1 juga mengisi options pada header paket IP tersebut.
Sukses Opt1_Sniffer1.pcap Opt1_Sniffer2.pcap
Sukses Forw2_Sniffer1.pcap
Sukses Forw3_Sniffer1.pcap
Sukses Forw5_Sniffer1.pcap Forw5_Sniffer2.pcap
38
Lampiran 3 lanjutan Fungsi / protokol Skenario pengujian yang diuji 16 IP Forwarding, Host1 mengirim empat IP Options paket ICMP echo request dengan IP options internet timestamp ke alamat IP 192.168.5.2. Masingmasing memiliki jumlah record satu sampai empat. 17 IP Forwarding Siapkan web server pada Host1 port 80. Lalu Host2 mencoba membuat koneksi TCP ke 192.168.5.2 port 80
Yang diharapkan
Hasil pengujian
Router1 mem-forward empat paket ICMP echo reqest tersebut dari interface “fa2” ke interface “fa1”. Router1 juga mengisi options pada header paket IP.
Sukses Opt2_Sniffer1.pcap Opt2_Sniffer2.pcap
Router1 mem-forward seluruh paket TCP tersebut dari interface “fa1” ke interface “fa2” dan sebaliknya.
Sukses Forw6_Sniffer1.pcap Forw6_Sniffer2.pcap
39
Lampiran 4 Konfigurasi router-router pada jaringan pengujian kompleks Nama Router1 Jenis Router PC yang diuji Network Interface Network Interface 1 Name “Net IPB” Type Nat Outside IP Address/mask 172.17.36.184/24 Has Upper Layer True Network Interface 2 Name “Net 2” Type Nat Inside IP Address/mask 10.0.2.1/24 Has Upper Layer True Network Interface 3 Name “Net 3” Type Nat Inside IP Address/mask 10.0.3.1/24 Has Upper Layer True RIP Enable RIP True Network Interface “Net IPB” Send Mode None Receive Mode RIP 2 Authentication None Options Network Interface “Net 2” Send Mode RIP 2 Receive Mode RIP 2 Authentication None Options Poison Reverse, Distribute Static routes Network Interface “Net 3” Send Mode RIP 2 Receive Mode RIP 2 Authentication None Options Poison Reverse, Distribute Static routes Static Routes ip route add 10.0.5.0 mask 255.255.255.0 10.0.3.3 NAT ip nat static inside 10.0.2.20 "Net 2" outside 172.17.36.20 "Net IPB" rewrites_ftp ip nat static inside 10.0.2.21 "Net 2" outside 172.17.36.21 "Net IPB" rewrites_ftp ip nat static inside 10.0.1.10 "Net 2" outside 172.17.36.22 "Net IPB" rewrites_ftp ip nat static inside 10.0.4.40 "Net 3" outside 172.17.36.23 "Net IPB" rewrites_ftp
Nama Jenis Network Interface Network Interface 1 Name Type IP Address/mask Has Upper Layer Network Interface 2 Name Type IP Address/mask Has Upper Layer RIP Enable RIP Network Interface Send Mode Receive Mode Authentication
Router2 Router PC yang diuji
“Net 2” Not Using NAT 10.0.2.2/24 True “Net 1” Not Using NAT 10.0.1.1/24 True True “Net 2” RIP 2 RIP 2 None
40
Lampiran 4 lanjutan Options Network Interface Send Mode Receive Mode Authentication Options
Poison Reverse “Net 1” None None None -
Nama Jenis Network Interface Network Interface 1 Name Type IP Address/mask Has Upper Layer Network Interface 2 Name Type IP Address/mask Has Upper Layer RIP Enable RIP Network Interface Send Mode Receive Mode Authentication Options Network Interface Send Mode Receive Mode Authentication Options
Router3 Router PC yang diuji
Nama Jenis Network Interface VLAN1 Nama Grouped Interface IP Address/mask VLAN2 Nama Grouped Interface IP Address/mask RIP Enable RIP Static Routes Route1 Network Address Netmask Gateway Route2 Network Address Netmask Gateway
Router4 SMC 7904BRA
“Net 3” Not Using NAT 10.0.3.2/24 True “Net 4” Not Using NAT 10.0.4.1/24 True True “Net 3” RIP 2 RIP 2 None Poison reverse, Accept next hop address “Net 4” None None None -
“Net 3” LAN1, LAN2 10.0.3.3/24 “Net 5” LAN3, LAN4 10.0.5.1/24 False
10.0.4.0 255.255.255.0 10.0.3.2 0.0.0.0 0.0.0.0 10.0.3.1
41
Lampiran 5 Konfigurasi host-host pada jaringan pengujian kompleks Nama IP Address/mask Default Gateway DNS Installed Service
Client1 10.0.2.20/24 10.0.2.1 127.0.0.1 http (apache), dns (ntbind)
Nama IP Address/mask Default Gateway DNS Installed Service Static Routes route –p add 10.0.1.0 mask 255.255.255.0 10.0.2.2
Client2 10.0.2.21/24 10.0.2.1 10.0.2.20 ftp (menggunakan filezilla)
Nama IP Address/mask Default Gateway DNS
Client3 10.0.1.10/24 10.0.1.1 10.0.2.20
Nama IP Address/mask Default Gateway DNS
Client4 10.0.4.40/24 10.0.4.1 10.0.2.20
Nama IP Address/mask Default Gateway DNS Installed Service
Client5 10.0.5.50/24 10.0.5.1 10.0.2.20 http (apache)
42
Lampiran 6 Hasil pengujian pada jaringan kompleks No Fungsi / protokol Skenario pengujian Yang diharapkan yang diuji 1 RIP Jalankan semua router, Protokol RIP bekerja dimulai dari Router1, sehingga seluruh Router2, lalu Router3. router memiliki tabel rute yang benar. Router yang baru dihidupkan akan mengirim RIP request. Router yang menerima akan membalas dengan RIP response untuk memberi tahu isi tabel rutenya. Router yang tabel rutenya berubah akan mengirim RIP response (triggered update) memberi tahu rute yang berubah. Setiap sekitar tiga puluh detik router mengirim RIP response (regular update). 2 IP Forwarding Client1 menjalankan Semua balasan ping program ping dengan (ICMP echo reply) target Client3, Client4, diterima oleh Client1. dan Client5. 3 IP Forwarding Client1 menjalankan Keluaran dari program program tracert dengan tracert menunjukkan target Client4 dan rute yang benar, begitu Client5. juga dengan hasil capture. 4 IP Forwarding Client2 menjalankan Output dari program program tracert dengan tracert menunjukkan target Client3. rute yang benar, begitu juga dengan hasil capture. 5 IP Forwarding Client1 menjalankan Paket melalui rute program tracert dengan yang salah karena tabel target Client3 rute pada Client1 tidak benar, namun Router1 mangarahkan paket ke Router2 (rute yang benar) sehingga paket bisa sampai ke tujuan. 6 IP Forwarding, Konfigurasikan agar Router1 mengirim ICMP interface “Net 2” pada ICMP redirect ketika Router1 diperbolehkan mendapat paket yang mengirim paket ICMP salah arah dari Client1, redirect, lalu lakukan dan diharapkan Client1 seperti skenerio mengubah tabel sebelumnya. rutenya.
Hasil pengujian Sukses Router1-NetIPB.pcap Router1-Net2.pcap Router1-Net3.pcap Router1-Log.txt Router2-Log.txt Router3-Log.txt Router1-Route.txt Router2-Route.txt Router3-Route.txt
Sukses Client1-Net2.pcap Client1-Ping.txt Sukses Client1-Net2.pcap Client1-Tracert.txt Sukses Client2-Net2.pcap Client2-Tracert.txt Sukses Client1-Net2.pcap Client1-Tracert.txt
Sukses Client1-Net2.pcap Client1-Tracertroute.txt
43
Lampiran 6 lanjutan No Fungsi / protokol Skenario pengujian yang diuji 7 IP Forwarding Dengan menggunakan web browser, Client5 membuka koneksi HTTP ke Client1. 8
IP Forwarding
Dengan menggunakan program klien FTP, Client5 membuka koneksi FTP ke Client2.
9
NAT (DalamDalam)
Client1 menjalankan program ping dengan target alamat IP luar Client1, Client2, Client3, dan Client4.
10 NAT (DalamDalam)
Client1 menjalankan program tracert dengan target alamat IP luar Client1, Client2, Client3, dan Client4.
11 NAT (DalamDalam)
Konfigurasikan agar interface “Net 2” milik Router2 dan interface “Net 3” milik Router3 memiliki alamat IP luar. Setelah itu Client1 menjalankan program tracert dengan target alamat IP luar Client3 dan ke Client4.
Yang diharapkan Paket - paket yang dikirim oleh Client5 dan Client1 sampai ke tujuan. Koneksi HTTP dapat terjadi. Paket - paket yang dikirim oleh Client5 dan Client2 sampai ke tujuan. Koneksi FTP dapat terjadi.
Hasil pengujian
Sukses Client5-Net5.pcap Client1-Net2.pcap TCP\TCP1.txt TCP\TCP2.txt Sukses Client5-Net5.pcap Client2-Net2.pcap Client5-Filezilla.txt TCP\ FTP-Control.txt TCP\ FTP-Data1.txt TCP\ FTP-Data2.txt Semua paket ping yang Sukses dikirim akan melalui Router1-Net2.pcap Router1 terlebih Router1-Net3.pcap dahulu, setelah itu Router1-NetIPB.pcap Router1 akan Client1-Ping.txt mengganti alamat IP sumber dan tujuan. Dalam proses ini Router1 tidak mengirim paket ke interface “NetIPB” Semua paket ping yang Sukses dikirim akan melalui Router1-Net2.pcap Router1 terlebih Router1-Net3.pcap dahulu. Paket ICMP Router1-NetIPB.pcap time exceeded yang Client1-Tracert.pcap dikirim oleh Router2 dan Router3 tidak dapat melewati Router1 karena keduanya tidak memiliki alamat IP luar. Dalam proses ini Router1 tidak mengirim paket ke interface “NetIPB” Semua paket ping yang Sukses dikirim akan melalui Router1-Net2.pcap Router1 terlebih Router1-Net3.pcap dahulu. Paket ICMP Router1-NetIPB.pcap time exceeded yang Client1-Tracert.pcap dikirim oleh Router2 dan Router3 dapat melewati Router1 karena keduanya memiliki alamat IP luar. Payload pada ICMP time exceeded juga diubah oleh proses NAT Router1 agar benar.
44
Lampiran 6 lanjutan No Fungsi / protokol Skenario pengujian yang diuji 12 NAT (DalamClient3 menjalankan Dalam) program ping dan tracert dengan target alamat IP luar Client3.
13 NAT (DalamDalam)
Konfigurasikan agar interface “Net 2” pada Router2 memiliki alamat IP luar. Client3 menjalankan program tracert dengan target alamat IP luar Client3.
14 NAT (DalamDalam)
Dengan menggunakan web browser, Client4 membuka koneksi HTTP ke alamat IP luar Client1.
15 NAT (DalamDalam)
Dengan menggunakan program klien FTP, Client4 membuka koneksi FTP ke alamat IP luar Client2. Konfigurasikan klien FTP untuk mengeluarkan perintah PORT dan setelah itu mengeluarkan perintah PASV. Dengan menggunakan web browser, Client1 membuka koneksi HTTP ke alamat IP luar Client1.
16 NAT (DalamDalam)
Yang diharapkan Semua paket ping yang dikirim akan melalui Router1 terlebih dahulu. Paket ICMP time exceeded yang akan melewati Router1 tidak dapat melewati Router1 karena interface “Net 2” dari Router2 tidak memiliki alamat IP luar. Semua paket ping yang dikirim akan melalui Router1 terlebih dahulu. Paket ICMP time exceeded dapat melewati Router1 karena interface “Net 2” pada Router2 memiliki alamat IP luar. Payload pada ICMP time exceeded juga diubah oleh proses NAT Router1 agar benar. Semua paket HTTP diubah alamat IP sumber dan tujuannya, sehingga keduanya dapat berkomunikasi. Koneksi FTP dapat terjadi. Perintah PORT gagal diterjemahkan, tetapi koneksi berhasil karena Client2 mengenali alamat IP dalam Client4. Sementara itu balasan 227 dari perintah PASV berhasil diubah oleh Router1. Paket akan dikirim melalui Router1 dan mengalami perubahan alamat IP sumber dan tujuan, setelah itu akan dikembalikan lagi ke Client1. Client1 sama sekali tidak merasa telah berhubungan dengan dirinya sendiri. Koneksi HTTP berjalan normal.
Hasil pengujian Sukses Router1-Net2.pcap Client3-PingTracert.txt
Sukses Router1-Net2.pcap Client3-Tracert.txt
Sukses Router1-Net2.pcap Router1-Net3.pcap Router1-NetIPB.pcap TCP\TCP1.txt TCP\TCP2.txt Sukses Router1-Net2.pcap Router1-Net3.pcap Router1-NetIPB.pcap Client4-Filezilla.txt TCP\FTP-ControlNet2.txt TCP\FTP-ControlNet3.txt TCP\FTP-Data1.txt TCP\FTP-Data2.txt Sukses Client2-Net2.pcap TCP\TCP1.bin TCP\TCP2.bin
45
Lampiran 6 lanjutan No Fungsi / protokol Skenario pengujian yang diuji 17 NAT (DalamClient4 menjalankan Luar) program ping dengan target sebuah host yang terletak pada jaringan luar. 18 NAT (DalamLuar)
19 NAT (DalamLuar)
20 NAT (DalamLuar)
21 NAT (DalamLuar)
Yang diharapkan
Paket ping dan balasannya akan melewati Router1 dan mengalami perubahan alamat IP sumber atau tujuan, tergantung dari arah paket. Client4 menjalankan Paket ping akan program tracert dengan melewati Router1 dan target sebuah host mengalami perubahan yang terletak pada alamat IP sumber atau jaringan luar. tujuan, tergantung dari arah paket. Proses NAT pada Router1 juga bekerja untuk mengubah payload pada ICMP errorreporting messages. Client5 menjalankan Program ping gagal program ping dengan karena Client5 tidak target sebuah host memiliki alamat IP yang terletak pada luar. Paket dari Client5 jaringan luar. tidak akan dapat keluar ke jaringan luar. Dengan menggunakan Paket HTTP diubah web browser, Client4 alamat IP sumber atau membuat koneksi tujuannya oleh HTTP ke sebuah web Router1. Koneksi server yang terletak di HTTP dapat terbentuk jaringan luar. dan berjalan normal. Dengan menggunakan Koneksi FTP dapat program klien FTP, terjadi. Perintah PORT Client4 membuka gagal diterjemahkan, koneksi FTP ke sebuah akibatnya koneksi data server FTP yang FTP tidak berhasil terletak di jaringan dibentuk. Sementara luar. Konfigurasikan itu balasan 227 dari klien FTP untuk perintah PASV tidak mengeluarkan perintah perlu diubah oleh PORT dan setelah itu Router1 (oleh karena mengeluarkan perintah itu pasti berhasil). PASV.
Hasil pengujian Sukses Router1-Net3.pcap Router1-NetIPB.pcap Client4-Ping.txt
Sukses Router1-Net3.pcap Router1-NetIPB.pcap Client4-Tracert.txt
Sukses Router1-Net3.pcap Router1-NetIPB.pcap Client5-Ping.txt Sukses Router1-Net3.pcap Router1-NetIPB.pcap TCP\TCP1.txt TCP\TCP2.txt Sukses Router1-Net3.pcap Router1-NetIPB.pcap Client4-Filezilla.txt TCP\FTP-Control.txt TCP\FTP-Data1.txt TCP\FTP-Data2.txt TCP\FTP-Data3.txt
46
Lampiran 6 lanjutan No Fungsi / protokol Skenario pengujian yang diuji 22 NAT (DalamGanti alamat IP Luar) Client4 menjadi 10.100.140.40/24 dan ganti default gatewaynya menjadi 10.100.140.1. Ganti alamat IP interface “Net 4” pada Router3 menjadi 10.100.140.1. Setelah itu dengan menggunakan klien FTP, Client4 membuka koneksi FTP ke sebuah server FTP yang terletak di jaringan luar. Konfigurasikan klien FTP untuk menggunakan perintah PORT. 23 NAT (Luarhost yang terletak di Dalam) jaringan luar menjalankan program ping dengan target Client4. 24 NAT (LuarDalam)
25 NAT (LuarDalam)
Yang diharapkan
Hasil pengujian
Koneksi FTP dapat terjadi. Perintah PORT berhasil diterjemahkan, koneksi data FTP berhasil terbentuk.
Sukses Router1-Net3.pcap Router1-NetIPB.pcap Client4-Filezilla.txt TCP\FTP-ControlNet3.txt TCP\FTP-ControlNetIPB.txt TCP\FTP-Data1.txt TCP\FTP-Data2.txt
Paket ping dan balasannya akan melewati Router1 dan mengalami perubahan alamat IP sumber atau tujuan, tergantung dari arah paket. host yang terletak di Output dari program jaringan luar tracert menunjukkan menjalankan program ada hop yang timeout. tracert dengan target Hal ini dikarenakan Client4. paket ICMP time exceeded yang dikirim oleh Router3 tidak dapat melewati Router1 karena Router3 tidak memiliki alamat IP luar. Konfigurasikan agar Output dari program interface “Net 3” milik tracert menunjukkan Router3 memiliki tidak ada hop yang alamat IP luar, lalu timeout. Sekarang host yang terletak di alamat IP luar dari jaringan luar Router3 sudah terlihat. menjalankan program Ini menandakan bahwa tracert dengan target paket ICMP time Client4. exceeded yang dikirim Router3 dapat melewati Router1 dan payload pada paket itu juga sudah dibetulkan oleh Router1.
Sukses Router1-Net3.pcap Router1-NetIPB.pcap 172.17.1.147-Ping.txt
Sukses Router1-Net3.pcap Router1-NetIPB.pcap 172.17.1.147Tracert.txt
Sukses Router1-Net3.pcap Router1-NetIPB.pcap 172.17.1.147Tracert.txt
47
Lampiran 6 lanjutan No Fungsi / protokol Skenario pengujian yang diuji 26 NAT (Luarhost yang terletak di Dalam) jaringan luar menjalankan program ping dengan target alamat IP dalam Client4 dan Client5. Pastikan paket ping tersebut dapat mencapai interface “NetIPB” milik Router1.
27 NAT (LuarDalam)
28 NAT (LuarDalam)
29 NAT (LuarDalam)
Yang diharapkan
Paket ping dari host di jaringan luar dapat mancapai Client4 dan Client5, tetapi balasannya (echo reply) belum tentu. Balasan dari Client4 akan diubah alamat IP sumbernya menjadi alamat IP luar Client4. host di jaringan luar tidak akan mengenali balasan ini. Balasan dari Client5 tidak dapat melewati Router1. Dengan menggunakan Paket HTTP diubah web browser, host alamat IP sumber atau yang terletak di tujuannya oleh jaringan luar membuka Router1. Koneksi koneksi HTTP ke HTTP dapat terbentuk Client1. dan berjalan normal. Dengan menggunakan Paket SYN dari luar web browser, host dapat sampai ke yang terletak di Client5 dan Client1, jaringan luar membuka tetapi balasannya koneksi HTTP ke (SYN+ACK) belum alamat IP dalam tentu. Balasan dari Client5 dan Client1 Client1 akan diubah alamat IP sumbernya menjadi alamat IP luar Client1. host di luar tidak akan mengenali paket SYN+ACK ini. Balasan dari Client5 tidak dapat melewati Router1. Dengan menggunakan Koneksi FTP berhasil program klien FTP, terbentuk. Perintah host yang terletak di PORT tidak perlu jaringan luar membuka diubah oleh Router1 koneksi FTP ke (oleh karena itu pasti Client2. Buat agar berhasil) dan koneksi klien FTP data FTP dapat mengeluarkan perintah terbentuk. Sementara PORT dan setelah itu itu balasan 227 dari mengeluarkan perintah perintah PASV PASV. berhasil diterjemahkan oleh Router1 dan koneksi data FTP dapat terbentuk
Hasil pengujian Sukses Router1-Net3.pcap Router1-NetIPB.pcap 172.17.1.147-PingTracert.txt
Sukses Router1-Net2.pcap Router1-NetIPB.pcap TCP\TCP1.txt TCP\TCP2.txt Sukses Router1-Net2.pcap Router1-Net3.pcap Router1-NetIPB.pcap
Sukses Router1-Net2.pcap Router1-NetIPB.pcap 172.17.1.147Filezilla.txt TCP\FTP-ControlNet2.txt TCP\FTP-ControlNetIPB.txt TCP\FTP-Data1.txt TCP\FTP-Data2.txt TCP\FTP-Data2.txt