IMPLEMENTA
SECARA SIMULTAN
Ditujukan Untuk Me Memperole
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
IMPLEMENTASI SISTEM LOAD BALANCING
SIMULTAN PADA DUA BUAH KONEKSI INTERNET
SKRIPSI
Ditujukan Untuk Memenuhi Salah Satu Syarat Memperoleh Gelar Sarjana Teknik
Jurusan Informatika
Oleh:
Dionysius Yudi Sanjaya NIM: 035314009
JURUSAN TEKNIK INFORMATIKA
FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA
YOGYAKARTA
2009
SIMULTANEOUS
OF LOAD BALANCING SYSTEM
TOWARDS TWO INTERNET CONNECTIONS
Presented as P
To Obtain the
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
SIMULTANEOUS IMPLEMENTATION
OF LOAD BALANCING SYSTEM
TOWARDS TWO INTERNET CONNECTIONS
A Thesis
Presented as Partial Fulfillment of the Requirements To Obtain the Sarjana Teknik Degree
In Informatics Engineering
By :
Dionysius Yudi Sanjaya NIM: 035314009
DEPARTMENT OF INFORMATICS ENGINEERING
FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY
YOGYAKARTA
2009
TOWARDS TWO INTERNET CONNECTIONS
HALAMAN PERSEMBAHAN
Karya ini kupersembahkan untuk:
Tuhan Yesus, atas segala rahmat serta perlindungan-Nya, Engkau sahabat sejatiku
Kedua orang tua-ku, yang telah membesarkan aku dengan penuh perhatian dan
kasih sayang
Teman teman ‘Virtus Compusoft Team’ dan ‘Ruparagam.com’, sukses selalu buat
HALAMAN MOTO
Every day may not be good, but there’s something good in every day.
God grant me serenity to accept the things that I cannot change, and the courage
ABSTRAKSI
Kehandalan koneksi jaringan komputer khususnya internet sangat
dibutuhkan. Tugas akhir ini bertujuan melakukan penelitian penerapan load balancing system dan failover dengan menggunakan lebih dari satu buah koneksi internet.
Fokus tugas akhir ini adalah membuat sistem pada sebuah komputer yang
difungsikan sebagai router. Load balancing pada sistem ini difungsikan agar router dapat membagi koneksi untuk melewatkan request traffic dari jaringan local (LAN) ke internet melalui lebih dari satu buah jalur. Sedangkan penerapan
sistem failover bertujuan untuk membuat sistem agar router dapat menguji dan memindahkan jalur koneksi (gateway) ketika terdapat gangguan pada salah satu jalur koneksi yang digunakan.
Algoritma yang digunakan pada load balancing system ini adalah Round robin. Round robin load balancing system adalah algoritma penjadwalan koneksi secara rotasi. Artinya, jika suatu tcp session pertama kali dilewatkan melalui jalur atau koneksi 1, maka tcp session kedua akan dilewatkan pada jalur atau koneksi 2. TCP session ketiga akan dilewatkan kembali pada jalur 1. TCP session keempat akan dilewatkan pada jalur 2. Proses ini berlangsung terus-menerus selama terjadi
koneksi atau terdapat tcp session. Sistem ini akan diuji dengan cara mengatur perbandingan jumlah jalur koneksi internet yang akan digunakan. Perbandingan
Hasil penelitian dan pengujian menunjukkan sistem ini berhasil menjaga
koneksi internet sesuai dengan rasio yang telah ditetapkan (1:1, 1:2 dan 1:3).
Namun sistem ini belum mampu menangani / mengatur besar paket data yang
ABSTRACT
The reliability of computer network connectivity, especially internet, is
excessively needed in today’s modern era. The aim of this thesis is to make a
research toward the implementation of load balancing system and failover using
more than one internet connection.
The focus of this thesis is the creation of a system on a computer being
used as a router. Load balancing in this system is functioned so that the router can
share connections to let request traffic passing from local network (LAN) to the
internet through more than one gateway. While the implementation of failover
system on this research is to create a system so that the router is capable to test
and switch gateway when errors occur on one of the gateway being used.
Algorithm that is used on this load balancing system is Round robin.
Round robin load balancing system is an algorithm of scheduling connection rotationally. It means, if a TCP session is for the first time being passed through
gateway or connection 1, the second TCP session will be passed through gateway
or connection 2. The third TCP session will then be passed back through gateway
1. Forth TCP session will be passed through gateway 2. This process is going
continuously as long as there are connections or TCP sessions. This system will
be tested by managing the comparison of the internet connection amount which
will be used. The comparison of the internet connection amount is managed by
The result of this research and the analysis toward it show that this system
can maintain the internet connections successfully based on the ratio determined
(1:1, 1:2, and 1:3). However, this system could not manage the amount of data
KATA PENGANTAR
Puji syukur saya haturkan kepada Tuhan Yesus Kristus yang telah
melimpahkan berkat-Nya. Sehingga saya dapat menyelesaikan Laporan Tugas
Akhir ini. Pada kesempatan ini saya ingin mengucapkan terima kasih kepada
pihak – pihak yang telah membantu saya dalam menyelesaikan skripsi ini, baik
dalam hal bimbingan, perhatian, kasih sayang, semangat, kritik, dan saran yang
telah diberikan. Ucapan terima kasih ini saya sampaikan antara lain kepada :
1. Bapak Yosef Agung Cahyanta, S.T., M.T., selaku Dekan Fakultas Sains
dan Teknologi Universitas Sanata Dharma Yogyakarta.
2. Bapak Puspaningtyas Sanjoyo Adi, S.T., M.T., selaku Ketua Jurusan
Teknik Informatika Universitas Sanata Dharma sekaligus Dosen
Pembimbing TA. Terima kasih atas bimbingan selama saya mengerjakan
Laporan Skripsi ini.
3. Ibu Ridowati Gunawan, S.Kom., M.T., selaku Dosen Pembimbing
Akademik Teknik Informatika angkatan 2003.
4. Bapak H. Agung Hernawan, S.T, selaku Dosen Pembimbing TA. Terima
kasih atas bimbingan selama saya mengerjakan Laporan Skripsi ini.
5. Rm Greg. Heliarko SJ. Terimakasih atas doa yang diberikan selama
penyusunan tugas akhir ini.
6. Kedua orang tua, terima kasih atas dukungan, kasih sayang dan semangat
yang tiada henti sehingga saya dapat menyelesaikan Tugas Akhir ini.
7. Rekan-rekan Virtus Compusoft Team dan Ruparagam.com yang selama
8. Seluruh pihak yang membantu saya baik secara langsung maupun tidak
langsung, yang tidak dapat saya sebutkan satu persatu.
Saya menyadari tidak sedikit kekurangan yang terdapat pada laporan tugas
akhir ini. Saran dan kritik selalu saya harapkan dari pembaca untuk perbaikan –
perbaikan di masa yang akan datang.
Akhir kata, saya berharap tulisan ini dapat bermanfaat bagi kemajuan dan
perkembangan ilmu pengetahuan dan berbagai pihak pengguna pada umumnya.
Yogyakarta, September 2009
DAFTAR ISI
HALAMAN JUDUL ……… i
HALAMAN PERSETUJUAN ………. iii
HALAMAN PENGESAHAN ………... iv
PERNYATAAN KEASLIAN KARYA ……… v
PERNYATAAN PUBLIKASI KARYA ………... vi
HALAMAN PERSEMBAHAN ……… vii
HALAMAN MOTO ……….. viii
ABSTRAK ……… ix
ABSTRACT ……….. x
KATA PENGANTAR ………... xiii
DAFTAR ISI ………. xv
DAFTAR GAMBAR ……… xix
DAFTAR TABEL ………. xxi
BAB I. PENDAHULUAN 1.1 Latar Belakang Masalah ..……… 1
1.2 Rumusan Masalah ………... 2
1.3 Batasan Masalah ………. 3
1.5 Metode Penelitian ………... 4
1.6 Sistematika Penulisan ………. 5
BAB II. DASAR TEORI 2.1 Internet ……… 7
2.2 TCP/IP ………. 7
2.2.1 TCP ….………. 7
2.2.2 IP ………... 8
2.3 IP Routing ………... 9
2.4 Traffic ………... 10
2.5 Traffic Control Pada Linux ……… 10
2.6 Traffic Monitoring ……….. 11
2.6.1 Iptraf ……….... 11
2.7 Iptables ……… 12
2.8 Load Balancing ……… 14
2.8.1 Manfaat Load Balancing ……….. 16
2.8.2 Metode Load Balancing ……… 17
2.8.3 WAN Load Balancer Hardware ……… 18
2.9 Load Balancing Berbasis Linux ……… 19
BAB III. PERANCANGAN SISTEM
3.1 Perancangan Sistem ……… 21
3.2 Permodelan Hardware Dalam Lab Jaringan Skala Kecil …………. 22
3.3 Langkah – langkah Implementasi Sistem ……… 24
3.3.1 Aktivasi Modul Pada PC Router ……….. 25
3.3.2 Pembuatan Round Robin Load Balancing Script ……….. 26
3.3.2.1 Pembuatan Routing Tablesdan Rules Script…. 26 3.3.2.2 Pembuatan SNAT (Source Nating) …………... 27
3.3.3 Pembuatan Aplikasi Failover……….. 27
3.4 Perancangan Sistem Uji ……….. 33
3.4.1 Skenario Sistem Uji ………. 33
3.5 Analisis yang Dilakukan ……….... 35
BAB IV. IMPLEMENTASI DAN ANALISIS 4.1 Konfigurasi Komputer dan Peralatan ………... 39
4.2 Pembuatan Round Robin Load Balancing Script ……….... 41
4.2.1 Pembuatan Routing Tables dan Rules Script …………. 41
4.2.2 Pembuatan Gateway Script ………. 42
4.2.3 Source Nating (SNAT) ……… 43
4.2.4 Modifikasi file rc.local ……… 44
4.3.1 Failover Script……….. 45
4.4 Ujicoba dan Analisis Sistem Load Balancing pada PC Router … 48 4.4.1 Skenario 1 ………. 49
4.4.2 Skenario 2 ………. 51
4.4.3 Skenario 3 ………... 53
4.4.4 Skenario 4 ………. 56
4.4.5 Skenario 5 ………. 57
4.4.6 Skenario 6 ………. 58
4.4.7 Skenario 7 ………. 59
4.5 Analisis Keseluruhan ……….. 63
BAB V. PENUTUP 5.1 Kesimpulan ……… 65
DAFTAR GAMBAR
Gambar Keterangan Halaman
2.1 Contoh Capture Iptraf 11
2.2 Chain Pada Iptables 12
2.3 Request Traffic Load balancing menggunakan metode round-robin
18
2.4 Contoh WAN Load Balancer beserta konfigurasinya 19 3.1 Rancangan sistem load balancing dengan dua buah
koneksi internet (ISP)
21
3.2 Permodelan hardware dalam lab jaringan skala kecil 23 3.3 Diagram alir langkah-langkah implementasi sistem 24
3.4 Diagram alir program failover (1) 31
3.5 Diagram alir program failover (2) 32
3.6 Diagram alir / flowchart ujicoba yang akan dilakukan 38
4.1 Bagan permodelan sistem dalam lab jaringan skala kecil 41 4.2 Perilaku program failover ketika dilakukan pemutusan
jalur yang terhubung ke ISP1
57
4.3 Perilaku program failover jalur ke ISP1 disambungkan kembali
57
4.4 Perilaku script failover ketika dilakukan pemutusan jalur yang terhubung ke ISP0
58
4.5 Perilaku script failover ketika jalur yang diputuskan (ISP0) disambung kembali
58
koneksi pada semua jalur
DAFTAR TABEL
Tabel Keterangan Halaman
3.1 Konfigurasi ip address pada masing-masing pc yang digunakan
23
3.2 Perancangan routing table 26
3.3 Source nating 27
3.4 Perilaku program dan sinyal yang diberikan jika pemutusan koneksi dilakukan
28
3.5 Variabel awal yang digunakan beserta fungsinya 29
3.6 Situs yang dipilih untuk melakukan ujicoba 33
3.7 Urutan Situs yang Diakses 34
3.8 Skenario sistem uji yang akan dilakukan 35
3.9 Perbandingan koneksi dan trafficyang dilewatkan pada kedua jalur (ISP0 & ISP1)
36
3.10 Perilaku sistem yang dibuat ketika terjadi gangguan koneksi (skenario 4, 5, dan 6)
37
4.1 Aktivitas Browsing 1 skenario 1 49
4.2 Aktivitas Browsing 2 skenario 1 50
4.3 Aktivitas Browsing 3 skenario 1 50
4.4 Aktivitas Browsing 4 skenario 1 51
4.5 Aktivitas Browsing 1 skenario 2 52
4.6 Aktivitas Browsing 2 skenario 2 52
4.8 Aktivitas Browsing 4 skenario 2 53
4.9 Aktivitas Browsing 1 skenario 3 54
4.10 Aktivitas Browsing 2 skenario 3 54
4.11 Aktivitas Browsing 3 skenario 3 55
4.12 Aktivitas Browsing 4 skenario 3 56
4.13 Request traffic rata-rata pada suatu waktu 60
BAB I
PENDAHULUAN
1.1
Latar Belakang
Kenyamanan dan kelancaran browsing situs-situs Internet didukung oleh
banyak faktor antara lain: bandwidth yang besar, server-server dengan teknologi
processing terbaru dengan memory besar, media penyimpanan data yang cepat
diakses, dan daya tampung yang besar. Melihat begitu krusialnya kelancaran
ber-Internet, para penyedia jasa ber-Internet, penyedia web dan mail service, perusahaan
e-commerce, dan penyedia fasilitas Internet lainnya, harus benar-benar memperhatikan
kualitas dan reabilitas koneksi dan reliabilitas server-servernya.
Salah satu solusi untuk mengeliminasi waktu tunggu dan meningkatkan
kualitas koneksi ini adalah dengan terus meng-upgrade dan menggunakan
server-server canggih dengan disertai perbesaran bandwidth Internet-nya. Namun hal ini
bukan merupakan solusi yang ekonomis dan skalabel mengingat bandwidth Internet
relative mahal. Selain itu, menambah bandwidth belum tentu merupakan solusi untuk
masalah reabilitas.
terus-menerus bukan solusi yang bijaksana karena selain biayanya tinggi, downtime
mungkin akan terjadi.
Salah satu solusi untuk tetap menjaga kualitas koneksi dalam melayani
pengguna adalah dengan menggunakan sistem load balancing. Secara sederhana, load
balancing pada makalah ini adalah sebuah cara untuk membagi
traffic
(lalu lintas
data) dari sebuah jaringan yang terhubung ke internet menggunakan (melalui) dua
koneksi ISP (
Internet Service Provider)
yang berbeda. Dalam hal ini, bandwidth
masih merupakan salah satu faktor penting yang sangat berpengaruh pada
traffic
yang
ada. Tetapi satu buah bandwidth (yang berarti satu buah jalur) berarti satu buah titik
masalah. Jika tiba-tiba terjadi
down time
maka masalah akan terjadi pada seluruh
jaringan yang terkoneksi ke ISP. Namun dengan menggunakan sistem load balancing,
apabila terjadi kegagalan koneksi pada salah satu ISP, maka ISP yang lain masih
dapat meng-
cover-
nya.
1.2 Rumusan Masalah
Bagaimana mendistribusikan
request traffic (load balancing)
melalui lebih
dari 1 (satu) koneksi ISP ( Internet Service Provider ) dengan menggunakan metode
1.3 Batasan Masalah
Agar permasalahan terfokus pada rumusan masalah di atas, maka batasan
masalah pada penelitian ini adalah:
1. Port-port yang digunakan dalam skripsi ini adalah port http (80/8080),
icmp(5), ssh (22) karena port-port tersebut paling banyak digunakan.
2. Implementasi Load Balancing pada penelitian ini ditekankan dari sisi routing
dan scripting programming menggunakan shell.
3. Dalam skripsi ini penelitian akan membahas protokol TCP/IP saja, karena
TCP/IP sudah menjadi standar protokol umum dalam sistematika jaringan
internet.
4. Penelitian dilakukan pada layer aplikasi.
5. Router load balancing meneruskan trafic menggunakan parameter ICMP yang
menunjukkan host alive.
6. Penelitian ini memfokuskan load balancing dari sisi software.
7. Load balancing pada penelitian ini menggunakan metode load balancing
round robin.
1.4 Tujuan Penulisan
Tujuan dari penulisan tugas akhir ini adalah melakukan percobaan dan analisa
sistem
load balancing
sebagai alternatif yang
reliable
untuk membagi
traffic
dari
sebuah jaringan yang terhubung ke internet menggunakan (melalui) dua koneksi ISP
yang berbeda dalam bentuk simulasi.
1.5 Metode Penelitian
Metodologi yang digunakan dalam penyusunan makalah ini adalah sebagai
berikut:
Studi Literatur.
Kegiatan ini meliputi pendalaman materi yang berkaitan dengan
“
load balancing system”.
Hal ini meliputi kegiatan studi referensi yang mendukung
seperti buku, website, tutorial dll.
Perancangan Sistem.
Kegiatan ini dilakukan setelah semua informasi yang
diperlukan diperoleh dan dikaji secara cermat. Penggambaran sistem dalam bentuk
simulasi sederhana dilakukan pada tahap ini.
1.6
Sistematika Penulisan
Sistematika penulisan yang dilakukan pada tugas akhir ini adalah sebagai
berikut:
BAB I PENDAHULUAN
Bab ini mencakup latar belakang masalah, rumusan masalah, batasan
masalah, tujuan penulisan, dan metode penelitian.
BAB II LANDASAN TEORI
Berisi dasar-dasar teori yang digunakan dalam penulisan tugas akhir ini.
BAB III PERANCANGAN SISTEM
BAB IV IMPLEMENTASI DAN ANALISA
Melakukan implementasi dan menunjukkan hasil dari perancangan yang
dilakukan sebelumnya ke dalam bentuk simulasi. Kemudian melakukan analisa
terhadap sistem yang telah diuji.
BAB V PENUTUP
Berisi kesimpulan penulis atas keseluruhan bahasan dalam penulisan tugas
akhir ini.
REFERENSI
BAB II
DASAR TEORI
2.1 Internet
Singkatan dari Interconnection Networking. The network of the
networks. Diartikan sebagai sebuah global network of computer network atau
sebuah jaringan komputer dalam skala global/mendunia. Jaringan komputer ini
berskala internasional yang dapat membuat masing-masing komputer saling
berkomunikasi. Network ini membentuk jaringan interkoneksi (Inter-connected
network) yang terhubung melalui protokol TCP/IP. Dikembangkan dan diuji coba
pertama kali pada tahun 1969 oleh US Department of Defense dalam proyek
ARPAnet.
2.2 TCP/IP
TCP/IP adalah suatu protocol yang memungkinkan terjadinya
komunikasi antar komputer yang memiliki perbedaan karakteristik dari segi
hardware ataupun software. TCP/IP merupakan protokol yang paling sering
digunakan dalam operasi jaringan. TCP/IP terdiri dari dua protokol utama, yaitu:
Transmission Control Protocol dan Internet Protocol.
2.2.1 TCP
TCP dikenal sebagai protocol “connection oriented”. Artinya, protokol
proses pertukaran antar-program aplikasi. Ciri-ciri dari connection-oriented
adalah:
Semua paket mendapatkan tanda terima (acknoledgement) dari sender.
Paket yang hilang atau tidak diterima akan dikirimkan ulang.
Paket yang datang diurutkan kembali (sequence).
TCP bekerjasama dengan Internet Protocol (IP) untuk mengirimkan data
antar-komputer melintasi jaringan atau internet. Jika IP menangani penghartaran
data, maka TCP berperan mengawasi atau menjaga track unit individu data (yang
dikenal paket).
2.2.2 IP
IP (Internet Protocol) merupakan metode yang digunakan untuk
mengirim data dari satu komputer ke komputer lain melintasi jaringan. Setiap
komputer (dikenal dengan host) memiliki paling tidak satu IP address yang
berguna untuk memperkenalkan dirinya ke komputer lain di internet. IP yang
umum digunakan adalah IPv4, yang mempunyai format sepanjang 32-bit.
Sedangkan pengembangan dari IPv4 adalah IPv6, yang mempunyai format
128-bit. IP Address disebut Logic Address karena dibuat oleh software, dimana
alamat tersebut secara dinamis dapat berubah jika peralatan dipindahkan ke dalam
jaringan yang berbeda. IP header mempunyai elemen yang disebut time-to-live
(TTL) yang berguna untuk membatasi lamanya suatu paket “beredar” dalam
jaringan. Hal ini bertujuan jika ada paket yang mempunyai informasi salah, paket
2.3 IP Routing
Routing adalah hal mendasar dalam perancangan jaringan. Konsep dasar
routing adalah bagaimana memilih dan menetapkan address agar bias mencapai
tujuan dengan cepat dan efisien. Seting IP address, netmask, dan default gateway
dibutuhkan untuk membentuk routing. Setiap host (yang mendukung IP)
setidaknya mengetahui tiga kelas tujuan, yaitu:
Dirinya sendiri. Sistem operasi (Linux) secara default telah memasukkan
dukungannya untuk device loopback. Device loopback, yang dinotasikan
dengan “lo”, digunakan agar sebuah mesin dapat ‘berbicara’ dengan
dirinya sendiri. Sistem Linux, dalam hal ini dapat berkomunikasi
melalui IP address (yang terkonfigurasi secara local), baik untuk device
loopback maupun bukan.
Computer atau host local. Kelas IP address kedua adalah dalam segmen
jaringan yang terkoneksi secara local. Setiap mesin yang tergabung
dalam keluarga jaringan yang sama dapat mencapai keseluruhan IP
address yang ada dengan melintasi interface.
Komputer atau host remote. Setiap IP address, yang bukan milik mesin
bersangkutan atau bukan mesin lain yang tergabung dalam jaringan
lokal, hanya bias dicapai melalui device IP routing. Device IP routing
umumnya berupa mesin router atau gatway.
Pada penulisan tugas akhir ini, digunakan aplikasi iproute2 untuk membuat
2.4 Traffic
Traffic adalah besar atau jumlah TCP session yang membebani bandwidth
dari suatu jaringan yang terkoneksi. Sedangkan bandwidth adalah kapasitas atau
daya tampung jalur koneksi ethernet agar dapat dilewati traffic paket data dalam
jumlah tertentu. Bandwidth juga bisa berarti jumlah konsumsi paket data per
satuan waktu dinyatakan dengan satuan bit per second [bps]. Traffic jaringan
berhubungan dengan paket data yang dibangkitkan oleh kartu ethernet pada
komputer.
2.5 Traffic Control Pada Linux
Traffic control adalah suatu cara untuk me-manage traffic dari suatu
jaringan yang terhubung via Ethernet card. Paket data yang dikirimkan oleh
komputer lain diterima NIC (kartu ethernet), kemudian teruskan oleh driver kartu
ethernet (Network Driver) ke bagian kernel linux untuk diproses. Proses ini hanya
mengatur paket data yang keluar maupun masuk melalui satu kartu ethernet.
Kernel linux yang bertanggung jawab mengatur aliran data tersebut adalah kernel
traffic control. Traffic control juga dapat meliputi pembagian traffic pada setiap
Ethernet card yang terpasang. Traffic shapingadalah membagi kebutuhan traffic
pada setiap Ethernet card yang terpasang pada sebuah router sesuai dengan
ketentuan / aturan tertentu yang ditetapkan. Dalam penulisan tugas akhir ini,
2.6 Traffic Monitoring
Traffic monitoring
yang berjalan pada jalur
(software/tools) yang da
komputer, misal: netwatch,
ini penulis menggunakan
yang digunakan.
2.6.1 Iptraf
Iptraf adalah salah
jaringan. Iptraf memiliki
UDP, count, ARP, RARP
capture dari iptraf.
Traffic Monitoring
monitoring adalah aktifitas yang dilakukan untuk mengama
pada jalur koneksi (bandwidth). Terdapat banyak
yang dapat digunakan untuk memonitor traffic suatu
netwatch, speedometer, iptraf dll. Dalam penulisan tugas
unakan iptraf sebagai salah satu aplikasi network monitoring
salah satu aplikasi untuk melakukan monitoring
memiliki beberapa untuk melihat statistik termasuk info
ARP, RARP dan ICMP. Gambar 2.2 di bawah ini adalah
Gambar 2.1Contoh captureiptraf
n untuk mengamati traffic
banyak aplikasi
suatu jaringan
penulisan tugas akhir
network monitoring
monitoring traffic
termasuk info TCP,
2.7 Iptables
IPTables adalah administrator tools untuk memfilter paket IPV4 dan NAT.
IPTables diguanakan untuk men-setup, mangatur, dan memerikasa paket dari
aturan pemfilteran paket IP pada kernel Linux. Masing-masing tabel berisi
sejumlah chain dan dapat juga berisi chain dari user. Masing-masing chain adalah
daftar dari aturan yang dapat disesuaikan dengan paket. Masing-masing aturan
akan menetapkan apa yang akan dilakukan oleh paket. Ini semua disebut target
yang mungkin akan meloncatkannya kepada chain user pada tabel yang sama.
IPTables memiliki format penulisan sebagai berikut :
iptables [-t table] command [match][target/jump]
IPTables memiliki tiga macam daftar aturan bawaan dalam table penyaringan,
daftar tersebut dinamakan rantai firewall (firewall chain) atau sering disebut chain
saja. Ketiga chain tersebut adalah INPUT, OUTPUT dan FORWARD.
Gambar 2.2Chain pada IPTables
Jalannya sebuah paket melalui diagram di atas bisa dicontohkan sebagai berikut:
Perjalanan paket yang diforward ke host yang lain
3. Paket masuk ke chain PREROUTING pada table Mangle. Chain ini
berfungsi untuk me-mangle (menghaluskan) paket, seperti merubah TOS,
TTL dan lain-lain.
4. Paket masuk ke chain PREROUTING pada tabel nat. Chain ini berfungsi
utamanya untuk melakukan DNAT (Destination Network Address
Translation).
5. Paket mengalami keputusan routing, apakah akan diproses oleh host lokal
atau diteruskan ke host lain.
6. Paket masuk ke chain FORWARD pada tabel filter. Disinlah proses
pemfilteran yang utama terjadi.
7. Paket masuk ke chain POSTROUTING pada tabel nat. Chain ini berfungsi
utamanya untuk melakukan SNAT (Source Network Address Translation).
8. Paket keluar menuju interface jaringan, contoh eth1.
9. Paket kembali berada pada jaringan fisik, contoh LAN.
Perjalanan paket yang ditujukan bagi host lokal
1. Paket berada dalam jaringan fisik, contoh internet.
2. Paket masuk ke interface jaringan, contoh eth0.
3. Paket masuk ke chain PREROUTING pada tabel mangle.
4. Paket masuk ke chain PREROUTING pada tabel nat.
5. Paket mengalami keputusan routing.
6. Paket masuk ke chain INPUT pada tabel filter untuk mengalami proses
penyaringan.
Perjalanan paket yang berasal dari host lokal
1. Aplikasi lokal menghasilkan paket data yang akan dikirimkan melalui
jaringan.
2. Paket memasuki chain OUTPUT pada tabel mangle.
3. Paket memasuki chain OUTPUT pada tabel nat.
4. Paket memasuki chain OUTPUT pada tabel filter.
5. Paket mengalami keputusan routing, seperti ke mana paket harus pergi dan
melalui interface mana.
6. Paket masuk ke chain POSTROUTING pada tabel NAT.
7. Paket masuk ke interface jaringan, contoh eth0.
8. Paket berada pada jaringan fisik, contoh internet.
2.8 Load balancing
Secara harafiah, load balancing berarti pembagian beban menjadi
seimbang (balance). Dalam dunia Internet, server farm, dan jaringan komputer,
load balancing adalah proses distribusi beban terhadap sebuah servis yang ada
pada sekumpulan server atau perangkat jaringan ketika ada permintaan dari
pengguna.
Maksudnya adalah ketika sebuah server sedang diakses oleh para
pengguna, maka server tersebut sebenarnya sedang dibebani karena harus
melakukan proses terhadap permintaan para penggunanya. Jika penggunanya
Session-session komunikasi dibuka oleh server tersebut untuk
memungkinkan para penggunanya menikmati servis dari server itu. Jika satu
server saja yang dibebani, tentu server tersebut tidak akan dapat melayani banyak
pengguna karena kemampuannya dalam melakukan processing ada batasnya.
Batasan ini bisa berasal dari banyak hal misalnya kemampuan processing-nya,
bandwidth Internetnya, dan banyak lagi.
Untuk itu, solusi yang paling ideal adalah dengan membagi-bagi beban
yang datang tersebut ke beberapa server. Jadi, yang bertugas melayani pengguna
tidak hanya terpusat pada satu perangkat saja. Inilah apa yang disebut sistem load
balancing.
Dalam penulisan tugas akhir ini load balancing dilakukan untuk
pembagian koneksi traffic request (outgoing request) dari suatu jaringan yang
terkoneksi ke internet. “Load” pada penulisan tugas akhir ini adalah koneksi
request traffic dari komputer pengguna/klien. Load balancing diartikan sebagai
“cara untuk membagi koneksi request traffic dari sebuah jaringan yang terhubung
ke internet menggunakan (melalui) lebih dari satu buah koneksi ISP ( Internet
Service Provider)”.
Ketika pengguna suatu jaringan local mengakses suatu situs website
(internet), pada saat inilah sebenarnya terjadi pembebanan jalur koneksi dari
router ke ISP. Beban yang dimaksud di sini adalah traffic yang terjadi. Tanpa
menggunakan load balancing maka semua request akan dilewatkan pada satu
ada akan dibagi ke beberapa koneksi yang ada. Pada penulisan tugas akhir ini,
trafficakan dibagi ke dua ISP yang berbeda.
2.8.1 Manfaat Load balancing
Secara garis besar, manfaat dari menerapkan sistem load balancing
adalah:
Skalabilitas dan availabilitas bisa didapat. Pada suatu jaringan
komputer yang terhubung ke internet, satu buah sumber koneksi (dalam
hal ini adalah ISP) berarti satu buah titik masalah. Jika tiba-tiba terjadi
down time, masalah pasti akan terjadi terhadap koneksi internet yang
sedang berlangsung. Menggunakan sistem load balancing dengan
menggunakan lebih dari satu sumber koneksi menjadi salah satu solusi.
Artinya jika ternyata satu koneksi ISP terputus atau mati, maka masih ada
koneksi ke ISP lain yang dapat meng-cover-nya. Dengan kata lain, titik
masalah menjadi terpecah.
Menjamin reliabilitas servis. Reliabilitas sistem artinya adalah tingkat
kepercayaan terhadap sebuah sistem untuk dapat terus melayani pengguna
dengan sebaik-baiknya. Reliabilitas yang terjamin artinya tingkat
kepercayaan yang selalu terjaga agar para penggunanya dapat
2.8.2 Metode Load balancing
Penulis menggunakan metode weighted round robin load balancingpada
penulisan tugas akhir ini. Round robin load balancing adalah sebuah metode
pembagian traffic request dari suatu jaringan yang terkoneksi ke internet secara
rotasi. Misal: ada 3 buah traffic requestdari suatu jaringan lokal yang terkoneksi
ke dua ISP yang berbeda (ISP1 dan ISP2). Dengan asumsi menggunakan round
robin load balancingmaka request 1 akan diarahkan pada ISP1, request 2 akan
diarahkan pada ISP2, dan request 3 akan diarahkan kembali ke ISP1. Weighted
round robin load balancingadalah metode yang hampir sama dengan round robin
load balancing.Perbedaannya adalah pembagian request traffic dapat disesuaikan
dengan besar jalur (bandwidth) yang digunakan dari masing-masing ISP. Dengan
metode weighted round robin load balancing, request traffic dapat diarahkan
lebih banyak ke koneksi yang memiliki kapasitas bandwidth lebih besar.
Keuntungan dari metode ini adalah kemudahan untuk menambah jalur koneksi
yang akan digunakan. Kelemahan dari metode ini adalah tidak dapat melihat
utilisasi dari TCP session yang sedang berlangsung. Semua traffic akan dibagi
secara bergiliran melalui jalur yang ada tanpa memperhatikan utilisasinya (apakah
jalur sibuk atau tidak). Hal ini dapat menimbulkan antrian (queue) yang sangat
Gambar 2.3Request Traffic Load balancingmenggunakan metode round-robin
2.8.3 WAN Load Balancer Hardware
Load balancing request traffic menggunakan lebih dari satu ISP juga dapat
dilakukan dengan bantuan hardware yang diciptakan khusus untuk menangani
masalah ini. Hardware ini disebut WAN Load Balancer. Pada WAN load balancer,
fasilitas GUI (Graphical User Interface) untuk melakukan konfigurasi sudah
disediakan oleh vendor penyedia. Gambar 2.3 adalah contohWAN Load Balancer
Gambar 2.4Contoh WAN
Pada penulisan tugas
karena load balancing
setting pada sebuah PC yang difungsikan
Contoh WANLoad Balancerbeserta konfigurasinya
penulisan tugas akhir ini, hardware load balancer tidak akan
dititik beratkan pada sisi software dengan melakuka
pada sebuah PC yang difungsikan sebagai load balancer router.
beserta konfigurasinya
tidak akan dibahas
2.9 Load balancingBerbasis Linux
Penulis memilih untuk menggunakan Sistem Operasi Linux sebagai
platform dalam perancangan dan implementasi load balancing system.
2.9.1 Mengapa Linux
Linux didistribusikan di bawah bendera GPL (GNU Public License) yang
menganut asas open source. Open source sangat memungkinkan setiap pengguna
bebas meng-copy, menggunakan, memodifikasi, memperbanyak, dan menjualnya
bahkan dapat membuat sendiri distro linux yang sesuai dengan stylemereka.
Linux saat ini dapat digunakan untuk segala aspek kebutuhan pengguna,
selain konfigurasi yang jauh lebih mudah dibanding versi awal dulu, juga
tampilan desktop yang semakin interactive. Linux banyak diaplikasikan untuk
server-server jaringan skala kecil sampai skala besar, server aplikasi, print server,
file server, router, security system, workstations, atau digunakan sebagai desktop
perkantoran. Perusahaan-perusahaan yang bergerak di bidang networkingseperti
ISP (Internet Service Provider), manufaktur, engineering, retail, publikasi,
finansial, kesehatan, perbankan banyak mengaplikasikan dan mengandalkan linux
pada sistem utama mereka. Pada penulisan tugas akhir ini, penulis menggunakan
BAB III
PERANCANGAN SISTEM
3.1 Perancangan Sistem
Pada penelitian ini hanya akan dibahas metode weighted round robin load
balancing. Metode ini akan diterapkan untuk kemudian dilakukan analisis.
Penulis menggunakan sistem operasi linux pada perancangan sistem ini. Gambar
3.1 adalah bagan sistem yang dirancang oleh penulis.
Gambar 3.1Rancangan sistem load balancing dengan dua buah koneksi internet (ISP)
Jaringan local (local LAN) terhubung ke router (local router) yang difungsikan
juga sebagai load balancer router. Local routerterhubung ke dua buah ISP yang
berbeda. Dengan mengacu pada konsep tersebut, penulis melakukan permodelan
3.2 Permodelan Hardware Dalam Lab Jaringan Skala Kecil
Penulis menggunakan permodelan ini untuk melakukan ujicoba dan
analisis terhadap sistem yang telah dirancang sebelumnya. Adapun permodelan
dalam skala jaringan kecil ini terdiri dari 6 buah pc. Koneksi internet
menggunakan speedy. Keterangan dari permodelan tersebut adalah sebagai
berikut :
2 (dua) buah atau lebih PC Desktop, yang akan mewakili clientatau jaringan
lokal. Pada masing-masing pc ini dipasangkan 1 (satu) buah ethernet card
untuk menghubungkan ke router. Sistem operasi yang digunakan untuk PC
client ini adalah Windows XP SP2.
1 (satu) buah PC Desktop, yang difungsikan sebagai local router. Dalam hal
ini local router dipasangkan 3 buah Ethernet card. Satu Ethernet untuk
jaringan internal/lokal, dan dua lainnya dikoneksikan pada dua buah pc yang
mewakili 2 (dua) buah ISP. Sistem operasi yang digunakan dalam router lokal
ini menggunakan SlackWare 12.x. Aplikasi untuk network monitoring
dipasangkan pada komputer ini. Pada PC ini, akan dipasangkan script load
balancingyang dibuat.Traffic monitoring akan dilakukan pada PC ini dengan
menggunakan aplikasi iptraf.
2 (dua) buah PC Desktop, yang difungsikan sebagai ISP (ISP1 dan ISP2).
Masing-masing dipasangkan 2 buah Ethernet card. Satu Ethernet dihubungkan
ke PC yang mewakili net/web server dan satu buah Ethernet lainnya
dihubungkan ke local router. Sistem operasi yang digunakan adalah
1 (satu) buah Modem ADSL TelkomSPEEDY, sebagai internet, di hubungkan
ke komputer yang difungsikan sebagai internet.
Rancangan hardware ini digambarkan oleh penulis seperti tampak pada gambar
3.2 di bawah ini.
Gambar 3.2 Permodelan hardware dalam lab jaringan skala kecil
Tabel 3.1 di bawah ini adalah keterangan lebih jelas untuk gambar 3.2 yang dibuat
oleh penulis.
Tabel 3.1. Konfigurasi ip address pada masing-masing pc yang digunakan
No Nama PC Eth device IP Address 1 Client1 Eth0 192.168.2.2./24
2 Client2 Eth0 192.168.2.4/24
3 Router
Eth0 192.168.2.1/24
Eth1 10.1.0.2/30
Eth2 10.2.0.2/30
4 ISP0
Eth0 10.1.0.1/30
Eth1 192.168.1.10/24
5 ISP1
Eth0 10.2.0.1/30
Eth1 192.168.1.20/24
6 NET
Eth0 192.168.1.1
3.3 Langkah-langkah Implementasi Sistem
Berikut ini adalah langkah-langkah yang dilakukan penulis untuk
implementasi.
Aktivasi modul kernel pada PC router.
Pembuatan round robin load balancing scriptpada PC router.
Pembuatan aplikasi untuk failoverpada PC router.
Ujicoba
Analisis
Gambar 3.3 adalah diagram alir langkah-langkah yang dilakukan penulis untuk
mengimplementasikan sistem.
3.3.1 Aktivasi Modul Kernel Pada PC Router
Kernel adalah suatu perangkat lunak yang menjadi bagian utama dari
sebuah sistem operasi. Tugasnya melayani bermacam program aplikasi untuk
mengakses perangkat keras komputer. Sedangkan modul kernel Linux adalah
bagian dari kernel Linux yang dapat dikompilasi, dipanggil dan dihapus secara
terpisah dari bagian kernel lainnya saat dibutuhkan. Langkah berikutnya pada
analisis ini adalah aktivasi modul-modul kernel yang dibutuhkan pada local
router. Kernel yang digunakan adalah versi 2.6.x. Adapun kernel modul yang
diaktifkan antara lain:
IP: advance router. Module ini berfungsi agar PC dapat berfungsi sebagai
router .
IP: policy routing. Module ini berfungsi untuk menentukan paket routing
yang akan dikonfigurasi dengan iptables.
IP: multicast routing. Module ini berfungsi untuk meng-konfigurasi router
yang memiliki beberapa alamat tujuan / destination address. Dalam analisis
ini aktivasi kernel untuk multicast routing diperlukan agar routing dapat
dilakukan ke 2 (dua) buah ISP (ISP1 dan ISP2).
IP: equal cost multipath. Module ini berfungsi untuk mengaktifkan fungsi
3.3.2 Pembuatan Round Robin Load Balancing Script
Penulis membuat dua buah scripting untuk menjalankan weighted round
robin load balancing. Script ini akan dimasukkan pada file ‘rc.local’ yang terletak
pada direktori /etc/rc.d/. Scriptingtersebut meliputi:
Pembuatan routing tables dan rule script
Pembuatan gateway script
Pembuatan SNAT (source nating)
3.3.2.1 Pembuatan Routing Tables dan Rules Script
Routing table adalah sekelompok rangkaian aturan untuk menentukan
jalur koneksi yang akan dilewati traffic atau paket data pada suatu jaringan.
Pada tahap ini, penulis merancang routing tables untuk mengelompokkan
jalur yang dibuat sekaligus memberikan aturannya. Penulis memberi nama
tabel ISP0 dan ISP1. Tabel 3.2 berikut ini adalah penjelasan routing table
yang dibuat penulis pada PC router. Table 3.2. Perancangan routing table
Network Device Src Via Table & Rules
10.1.0.0/30 Eth1 10.1.0.2/30 10.1.0.1 ISP0
10.2.0.0/30 Eth2 10.2.0.2/30 10.2.0.1 ISP1
Setelah perancangan selesai seperti pada tabel 3.2, penulis membuat script
yang berfungsi untuk mengarahkan traffic yang masuk dari PC router dapat
penulis akan ditempatkan pada direktori /etc/rc.d/ pada sebuah file yang
bernama ‘rc.local’.
3.3.2.2 Pembuatan SNAT (Source Nating)
SNAT berfungsi untuk membuat PC router menjadi sebuah gateway
menuju ke internet. Penulis melakukan SNAT agar IP local dari client dikenali
sebagai IP public. Dalam hal ini adalah IP local dari PC client (192.168.2.2 dan
192.168.2.4) akan dikenali sebagai IP dari eth yang terkoneksi dengan ISP0
(10.1.0.2) dan ISP1 (10.2.0.2). Penulis menggunakan ‘iptables’ sebagai aplikasi
untuk memberikan policy routing pada PC router untuk melakukan nat. Tabel 3.3
berikut ini adalah rencana nating yang akan dilakukan pada PC router.
Tabel 3.3Source nating
No Source IP Address Destination SNAT to
1 192.168.2.0/24 0/0 10.1.0.2
2 192.168.2.0/24 0/0 10.2.0.2
Script ini oleh penulis akan ditempatkan pada direktori /etc/rc.d/ pada file yang
bernama ‘rc.local’.
3.3.3 Pembuatan Aplikasi Failover
Failover adalah kemampuan router untuk melakukan pemindahan
gateway jika salah satu jalur koneksi ke ISP yang digunakan putus atau
mengalami gangguan. Pada tahap ini, penulis melakukan perancangan aplikasi
Aplikasi atau script yang dibuat menggunakan shell scripting. Aplikasi ini akan
akan ditempatkan oleh penulis pada direktori /etc/rc.d/ pada file yang bernama
‘v.router’. Port ICMP akan digunakan dalam pembuatan aplikasi ini. Prinsip kerja
dari aplikasi ini adalah dengan melakukan ping ke ip gateway ISP melalui kedua
eth device / interface yang dikoneksikan ke masing-masing ISP. Jika status ping
melalui interface pertama tidak reply, maka diasumsikan terjadi gangguan pada
koneksi tersebut. Pada kondisi ini, aplikasi yang dibuat akan memindahkan
gateway ke jalur koneksi kedua melalui interface kedua. Tabel 3.4 di bawah ini
adalah asumsi yang dibuat penulis sebagai acuan dasar dalam pembuatan program
aplikasi ini.
Tabel 3.4. Perilaku program dan sinyal yang diberikan jika pemutusan koneksi dilakukan. P in g P C N E T m el a lu i et h 1 ( 1 0 .1 .0 .2 ) d a n e th 2 (1 0 .2 .0 .2 ) Status Ping
Perilaku Program Sinyal yang diberikan ISP0 (Jalur 1) ISP1 (Jalur 2)
R R Mengarahkan gateway
melalui kedua jalur yang ada (ISP0 & ISP1)
ISP0 & ISP1 OK
R SL Mengubah gateway ke
interface yang terhubung ke ISP0
ISP1 down
SL R Mengubah gateway ke
interface yang terhubung ke ISP1
ISP0 down
Keterangan:
Status ping
R=reply
SL=status lain
Dalam perancangan aplikasi ini, penulis telah menentukan beberapa variable
beserta fungsinya seperti pada tabel 3.5 berikut ini:
Tabel 3.5. Variabel awal yang digunakan beserta fungsinya.
No Nama variable Fungsi
1 TIMEOUT Menentukan waktu tunggu maksimal dari ping yang dilakukan dari PC router ke variable TESTIP. Pada program yang akan dibuat variabel ini diberikan nilai 4 yang berarti 4 detik.
2 SLEEPTIME Menentukan waktu idle dari aplikasi yang dibuat setiap satu kali melakukan pengecekan pada jalur koneksi yang ada.
3 GW[N] Ip address dari gateway yang digunakan (ISP0 dan ISP1)
4 ETHGW[N] Interface yang digunakan untuk koneksi ke jalur yang digunakan (misal: eth0)
5 DEV[N] Ip address ETHGW[N]
6 ISP[N] Nama isp yang digunakan
7 ISPN Jumlah ISP yang digunakan
8 CLB Counter untuk melakukan ping melalui gateway yang digunakan
9 LIFEISP Variabel untuk mengetahui jumlah isp atau jalur yang aktif
10 PS[N] Ping status untuk menentukan status ping (reply atau tidak)
11 TRIGERLB Sebagai acuan agar program berjalan terus-menerus
13 LB_ONE_ISP Variabel berisi script untuk menentukan jalur koneksi / gateway ketika hanya satu jalur koneksi yang aktif.
14 LOADBALANCE Variabel berisi script untuk menentukan jalur koneksi / gateway keseluruhan
15 LOADBALANCE2 Variabel berisi script awal untuk menentukan jalur koneksi /gateway keseluruhan.
16 TESTIP Variabel berisi ip address atau situs yang digunakan (dalam hal ini adalah 192.168.1.1) untuk test koneksi dari router (dengan ping).
Gambar 3.4 dan 3.5 merupakan rancangan dalam bentuk diagram alir
Aplikasi ini dibuat otomatis berjalan terus-menerus setiap PC router pada
kondisi hidup/aktif. Aplikasi ini hanya akan berhenti ketika terjadi gangguan
sistem, sistem pada kondisi shutdown / mati, atau dimatikan secara manual.
3.4 Perancangan Sistem Uji
Sistem round robin load balancing dijalankan pada tahap ini. Pada
pengujian ini penulis akan melakukan akses (browsing) dari PC klien untuk
kemudian dilakukan analisis.
3.4.1 Skenario Sistem Uji
Sistem uji dilakukan dengan melakukan aktifitas browsing dari PC client
ke beberapa situs yang ditentukan kemudian dilakukan analisis. Pada pengujian
ini, penulis melakukan aktifitas brwosing menggunakan 2 buah pc client.
Broswisng dilakukan secara bergantian dari pc client pertama dan kedua secara
berurutan. Tabel 3.6 berikut berisi daftar situs yang dipilih oleh penulis untuk
melakukan ujicoba.
Tabel 3.6Situs yang dipilih untuk melakukan ujicoba.
No Nama Situs Name Server / IP Address
1 forum.linux.or.id 67.19.121.27
2 virtusteam.web.id 74.81.82.140
3 www.klikbca.com 202.6.211.8
4 www.usd.ac.id 117.103.174.16
5 www.uty.ac.id 70.86.144.98
Penulis memilih keenam situs di atas karena situs-situs tersebut hanya
memiliki sebuah ip atau nameserver saja sehingga penulis mengasumsikan hal
tersebut akan mempermudah proses analisis. Tabel 3.7 berikut ini adalah tabel
urut untuk aktifitas browsing yang dibuat oleh penulis.
Tabel 3.7Urutan Situs yang Diakses
No PC Client Situs yang diases 1 PC1 forum.linux.orid
2 PC2 Forum.linux.or.id
3 PC1 Virtusteam.web.id
4 PC2 Virtusteam.web.id
5 PC1 www.klikbca.com
6 PC2 www.klikbca.com
7 PC1 www.usd.ac.id
8 PC2 www.usd.ac.id
9 PC1 www.uty.ac.id
10 PC2 www.uty.ac.id
11 PC1 www.uajy.ac.id
12 PC2 www.uajy.ac.id
Penulis membuat skenario sistem uji yang akan dilakukan dengan kondisi
Tabel 3.8 Skenario sistem uji yang akan dilakukan C li e n t M e la k u k a n B ro w si n
g Skenario Weight Kondisi ISP
ISP0 ISP1 ISP0 ISP1
1 1 1 Up Up
2 1 2 Up Up
3 1 3 Up Up
4 1 1 Up Down
5 1 1 Down Up
6 1 1 Down Down
Browsing &
Download 7 1 1 Up Up
Keterangan:
Kondisi ISP
UP = kondisi jalur tersambung / baik
Down = kondisi jalur terputus / down / terjadi gangguan
Skenario 4, 5, dan 6 pada tabel 3.8 merupakan skenario untuk melakukan
pengujian ‘fileover’. Pada kolom ‘Kondisi ISP’, status ‘Down’ diwakili dengan
melakukan pemutusan koneksi secara fisik antara PC client dan PC ISP0 atau
ISP1. Skenario 7 adalah pengujian untuk jumlah traffic yang dilewatkan pada
suatu jalur koneksi yang ada. Pada skenario ini dilakukan aktivitas download
dengan menggunakan aplikasi Internet Download Manager (IDM) dan browsing.
3.5 Analisis yang Dilakukan
Analisis akan dilakukan pada setiap percobaaan atau ujicoba yang telah
dilakukan sesuai dengan skenario pada tabel 3.4. Adapun analisis meliputi:
Request traffic yang dilewatkan pada kedua jalur koneksi yang digunakan.
Jumlah paket data yang melewati suatu jalur.
Penulis menggunakan aplikasi iptraf dan speedometer untuk melakukan
analisis ini. Aplikasi ini digunakan untuk melakukan pengamatan terhadap
koneksi yang dilewati request traffic yang ada. Untuk ujicoba sistem jika terjadi
pemutusan koneksi, penulis melakukan pengamatan pada program fileover yang
telah dibuat sebelumnya dengan memastikan keluaran yang dihasilkannya.
Kondisi load balance didapatkan ketika kedua jalur koneksi yang
digunakan berfungsi atau dapat digunakan untuk melakukan aktifitas browsing
yang dilakukan dari PC client.
Tabel 3.9 dan 3.10 di bawah ini dibuat oleh penulis sebagai asumsi tolok
ukur keberhasilan sistem yang dibuat mengacu pada skenario tabel 3.6
sebelumnya.
Tabel 3.9. Perbandingan koneksi dan trafficyang dilewatkan pada kedua jalur (ISP0 & ISP1).
Skenario
TCP session Perbandingan jumlah
koneksi terpakai atau traffic yg diharapkan
ISP0 ISP1
1 Ada Ada 1 : 1
2 Ada Ada 1 : 2
3 Ada Ada 1 : 3
4 Ada Tidak ada 1 : 0
5 Tidak ada Ada 0 : 1
6 Ttidak ada Tidak ada
Pada tabel 3.9, kolom ‘Perbandingan jumlah koneksi terpakai yang
diharapkan’ berisi rasio perbandingan rata-rata jalur yang digunakan. ‘Nilai’ pada
kolom tersebut adalah satuan perbandingan jumlah koneksi yang dilewatkan pada
jalur yang digunakan pada suatu waktu. Pada tabel 3.8, skenario 4, 5, dan 6
bukan merupakan kondisi load balance. Skenario tersebut dibuat penulis untuk
melakukan ujicoba failover script yang telah dibuat sebelumnya. Sedangkan
untuk skenario 7, kolom terakhir merupakan perbandingan jumlah traffic atau
paket data yang diharapkan. (Tabel 3.10 berikut adalah skenario pengujian
fileover script mengacu pada tabel 3.8.
Tabel 3.10.Perilaku sistem yang dibuat ketika terjadi gangguan koneksi (skenario 4, 5, dan 6)
Skn Kondisi GW Output
1 a Semua jalur terkoneksi dengan baik dari awal.
ISP0, ISP1
Load Balance
b ISP0 barusaja mengalami gangguan / terputus.
ISP0 normal kembali. Kondisi Load balance c ISP1 barusaja mengalami gangguan /
terputus
ISP1 normal kembali Kondisi load balance
2 Sama seperti skenario 1 ISP0, ISP1
Sama seperti skenario 1
3 Sama seperti skenario 1 ISP0, ISP1
Sama seperti skenario 1
4 a ISP1 baru saja mengalami gangguan ISP0 ISP1 down b ISP1 down pada monitoring
berikutnya
ISP1 masih down
5 a ISP0 baru saja mengalami gangguan ISP1 ISP0 down b ISP0 down pada monitoring
berikutnya berikutnya
ISP0 masih down
Keterangan:
Skn = Skenario
GW = Jalur yang dapat digunakan atau berfungsi dengan baik
Pada tabel 3.10, untuk skenario 2 dan 3, sistem fileover yang akan dibuat
diharapkan memiliki perilaku yang sama dengan skenario 1. Pada skenario ini,
kedua jalur koneksi yang digunakan dalam kondisi dapat digunakan atau
berfungsi dengan baik. Kolom ‘Output’ menjelaskan keluaran yang dihasilkan
sistem fileover yang telah dibuat. Adapun penulis membuat model output ini
untuk memberitahukan kondisi jalur koneksi yang digunakan. Proses
pengambilan kesimpulan dilakukan setelah tahap analisis ini. Gambar 3.6 berikut
ini adalah diagram alir atau flowchart ujicoba yang akan dilakukan oleh penulis.
BAB IV
IMPLEMENTASI DAN ANALISIS
4.1 Konfigurasi Komputer dan Peralatan
Pada tahap ini, penulis melakukan konfigurasi pada kelima komputer yang
telah dipersiapkan sebelumnya. Konfigurasi meliputi:
Instalasi sistem operasi seperti yang telah dirancang sesuai pada bab 3.2.
Konfigurasi IP address seperti yang telah dirancang pada tabel 3.1 dan
gambar 3.2.
Instalasi aplikasi yang digunakan pada PC router seperti: speedometer dan
ipcalc.
Konfigurasi koneksi fisik dan instalasi permodelan jaringan skala kecil.
Gambar 4.1 menunjukkan bagan dari tahap ini yang dilakukan oleh
penulis.
Aktivasi modul kernel pada PC router.
Konfigurasi komputer dan peralatan ini hanya ditulis singkat oleh penulis
pada bagian lampiran dari laporan ini. Untuk bagan konfigurasi yang telah
Gambar 4.1Bagan permodelan sistem dalam lab jaringan skala kecil
Setelah konfigurasi selesai, penulis melakukan ujicoba koneksi dari
masing-masing komputer. Penulis melakukan ping dari masing-masing-masing-masing komputer untuk
memastikan bahwa koneksi sudah benar. Adapun ping yang dilakukan penulis
adalah sebagai berikut:
- PC klien ke PC router
- PC router ke ISP0 dan ISP1
4.2 Pembuatan Round Robin Load Balancing Script
Pada tahap ini, penulis melakukan percobaan pembuatan script yang
dibutuhkan agar sistem round robin load balancing dapat diujicoba dan
diimplementasikan. Script ini nantinya akan diletakkan pada file ‘rc.local’ yang
terletak pada direktori /etc/rc.d/. Adapun pembuatan round robin load balancing
script ini meliputi:
Pembuatan routing tables dan rule script.
Pembuatan gateway script.
Pembuatan source nating script (SNAT).
4.2.1 Pembuatan Routing Tables dan Rule Script
Penulis membuat routing tables script dan rule script untuk
meng-implementasikan rancangan sesuai acuan pada tabel 3.2 dari bab 3. Tools yang
diguanakan oleh penulis adalah iproute2. Mengacu pada tabel 3.2 dari bab 3,
berikut ini adalah routing tables script dan rule script yang dibuat oleh penulis.
# table ISP0
ip route add 10.1.0.0/29 dev eth1 table isp0 ip route add default via 10.1.0.1 table isp0 ip rule add from 10.1.0.2 table isp0
# table ISP1 ip route add 10.2.0.0/29 dev eth2 table isp1 ip route add default via 10.2.0.1 table isp1
ip rule add from 10.2.0.2 table isp1
Keterangan Script:
scirpt tersebut berfungsi untuk mengelompokkan paket routing yang
bertujuan ke subnet 10.1.0.0/29 adalah termasuk pada routing tables isp0
dan akan dilewatkan melalui interface eth1. Sedangkan script berikut:
ip rule add from 10.1.0.2 table isp0
berfungsi untuk membuat aturan baru bahwa semua paket dari ip address
’10.1.0.2’ akan menggunakan tabel routing ‘isp0’ (melalui eth1). Script
berikutnya mempunyai fungsi yang sama.
Dalam script tersebut penulis membuat dua buah routing tables
untuk mengelompokkan route yang akan digunakan. Routing tables
tersebut dinamakan ‘isp0’ dan ‘isp1’. Pendefinisian table ini dilakukan
dengan menambahkan script yang ada pada file ‘rt_tables’ yang terletak
pada direktori ‘/etc/iproute2/’. Script yang ada pada ‘rt_tables’ yang telah
dimodifikasi oleh penulis adalah sebagai berikut:
255 local 254 main 253 default
0 unspec
120 isp0 121 isp1
4.2.2 Pembuatan Gateway Script
Sistem load balancing yang dirancang oleh penulis menggunakan lebih
dari satu buah gateway. Pada penulisan laporan tugas akhir ini, ada dua buah
gateway yang digunakan pada PC router, yaitu gateway ke PC ISP0 dan ISP1.
Berikut ini adalah script yang dibuat oleh penulis untuk menentukan gateway
ip route add default scope global nexthop via 10.1.0.1 dev eth1 weight 1 nexthop via 10.2.0.1 dev eth2 weight 1
Maksud dari script di atas adalah mengarahkan default gateway pertama ke
10.1.0.1 melalui eth1 (nexthop via 10.1.0.1 dev eth1) dengan parameter ‘weight’
sebesar 1 (weight 1). Default gateway berikutnya diarahkan ke 10.2.0.1 melalui
eth2 (nexthop via 10.2.0.1) dengan parameter ‘weight’sebesar 1 (weight 1).
4.2.3 Source Nating (SNAT)
Setelah gateway dibuat, penulis melakukan nating agar paket yang berasal
dari jaringan lokal (192.168.2.0/29) dikenali oleh ISP router dengan ip address
yang sudah ditentukan (10.1.0.2 dan 10.2.0.2). berikut ini adalah script yang
dibuat penulis untuk melakukan nating.
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -d 0/0 -o eth1 -j SNAT --to 10.1.0.2 iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -d 0/0 -o eth2 -j SNAT --to 10.2.0.2
Penjelasan script di atas adalah sebagai berikut:
Semua paket yang berasal dari subnet 192.168.2.0/24 yang bertujuan ke
0/0 (ke mana saja) dan keluar melalui interface eth1 akan di-nat ke
10.1.0.2 (iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -d 0/0 -o eth1 -j SNAT --to
10.1.0.2) .
Semua paket yang berasal dari subnet 192.168.2.0/24 yang bertujuan ke
0/0 (ke mana saja) dan keluar meluli interface eth2 akan di-nat ke 10.2.0.2
4.2.4 Modifikasi file rc.local
Langkah 4.2.1, 4.2.2, dan 4.2.3 digabungkan menjadi satu untuk kemudian
diletakkan pada file ‘rc.local’ yang terletak pada direktori /etc/rc.d/. Fungsi file ini
adalah untuk menjalankan secara otomatis script yang telah dibuat setiap kali
komputer booting. Script file ‘rc.local’ secara keseluruhan menjadi seperti ini:
# /etc/rc.d/rc.local ip route flush cache
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -d 0/0 -o eth1 -j SNAT --to 10.1.0.2 ip route add 10.1.0.0/29 dev eth1 table isp0
ip route add default via 10.1.0.1 table isp0 ip rule add from 10.1.0.2 table isp0
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -d 0/0 -o eth2 -j SNAT --to 10.2.0.2 ip route add 10.2.0.0/29 dev eth2 table isp1
ip route add default via 10.2.0.1 table isp1 ip rule add from 10.2.0.2 table isp1
ip route add default scope global nexthop via 10.1.0.1 dev eth1 weight 1 nexthop via 10.2.0.1 dev eth2 weight 1
4.3 Pembuatan Failover Script
Failover script yang dibuat mengacu pada flowchart dari bab3 (gambar 3.4
dan 3.5). Script ini ditempatkan pada direktori /etc/rc.d/ dengan nama ‘v.router’.
Script ini dibuat pertamakali dengan mendefinisikan beberapa variable yang
diperlukan. Adapun pendefinisian variabel awal adalah sebagai berikut:
# /etc/rc.d/v.router
# variabel untuk melakukan test koneksi baik dari ISP0 maupun ISP1. # variabel ini berisi ip address dari PC net.
# pada kenyataannya variabel ini berisikan alamat website tertentu (misal: www.yahoo.com) TESTIP=192.168.1.1
# variabel untuk menentukantimeout dari ping yang dilakukan dari PC router ke gateway 0 (ISP0) # dan gateway 1 (ISP1).
# ================================================================# # START INISIALISASI GATEWAY 0
# ip gateway 0 GW[0]=10.1.0.1
# interface yang digunakan untuk koneksi ke gateway 0 ETHGW[0]=eth1
# ip address interface eth1 DEV[0]=10.1.0.2
# variabel untuk memberikan nama pada gateway pertama (ISP0) ISP[0]=ISP0
# variabel untuk memberikan parameter ‘weight’ pada koneksi pertama (ISP0) W[0]=1
# variabel untuk inisialisasi ping status pada awal program sebelum program dijalankan. PS[0]=0
# END INISIALISASI GATEWAY 0 (ISP0)
# =================================================================# # START INISIALISASI GATEWAY 1 (ISP1)
# =================================================================# # ip gateway 1 (ISP1)
GW[1]=10.2.0.1
# interface yang digunakan untuk koneksi ke gateway 1 ETHGW[1]=eth2
# ip address interface eth1 DEV[1]=10.2.0.2
# variabel untuk memberikan nama pada gateway kedua (ISP1) ISP[1]=ISP1
# variabel untuk memberikan parameter ‘weight’ pada koneksi kedua (ISP1) W[1]=1
# variabel untuk inisialisasi ping status pada awal program sebelum program dijalankan. PS[1]=0
# variabel untuk inisialisasi jumlah isp koneksi (isp) yang digunakan. ISPN=2
Setelah inisialisasi dilakukan, program akan mengecek apakah variabel
nilai ‘TRIGERLB’ bernilai 1. Varibel ini pada dasarnya berfungsi untuk membuat
program ‘v.router’ agar dapat berjalan terus menerus. Penulis merancang script
sebagai berikut:
while [ $TRIGERLB -eq 1 ] do
[failover script] done
Script di atas akan menjalankan [failover script] secara terus menerus. Hal ini
disebabkan karena variabel ‘TRIGERLB’ diberikan nilai 1 pada awal program.
4.3.1 Failover Script
Failover script pertamakali akan menginisialisasi beberapa variabel
sebagai berikut:
# variabel yang berfungsi sebagai ‘counter’ untuk melakukan ping ke isp yang ada (ISP0 dan ISP1) # variabel ini akan di-increment dengan nilai 1 setiap kali ping ke isp dilakukan
CLB=0
# variabel untuk mengetahui jumlah isp yang tidak down. # pertama kali variabel ini diberikan nilai 0.
LIFEISP=0
# variabel untuk membandingkan apakahdefault gatewayyang telah dikonfigurasi sebelumnya # sama dengandefault gatewayketika failover script dijalankan
LOADBALANCE2=""
Setelah proses inisialisasi dilakukan, program akan melakukan pengecekan
apakah nilai dari variabel ‘CLB’ lebih kecil dari variabel ‘ISPN’. Selama variabel
‘CLB’ bernilai lebih kecil daripada variabel ‘ISPN’, maka program akan
melakukan ping ke ip address ISP0. Berikut ini adalah script yang dibuat oleh
penulis:
while [ $CLB -lt $ISPN ] do
ping -W $TIMEOUT -I ${DEV[$CLB]} -c 4 ${GW[$CLB]} > /dev/null 2>&1 result=$?
# ============================================================================# # pengecekan pertama
# cek apakah hasil dari ping yang dilakukan sukses (reply) if [ $result -eq 0 ]; then # jika ping sukses (reply) # pengecekan kedua jika ping sukses
# cek apakah ping status sebelumnya adalah 1 yang berarti tidak reply? if [ ${PS[$CLB]} -eq 1 ]; then
echo "Jalur ke "${ISP[$CLB]}" sudah berfungi kembali ... " PS[$CLB]=0
fi
LB[$CLB]="nexthop via ${GW[$CLB]} dev ${ETHGW[$CLB]} weight ${W[$CLB]}" # mendefinisikan variabel jika ternyata hanya link isp saat ini yang hidup LB_ONE_ISP="via ${GW[$CLB]} dev ${ETHGW[$CLB]}"
# increment variabel ‘LIFEISP’ LIFEISP=$((LIFEISP+1))
else # jika ping tidak sukses (tidak reply atau rto) # pengecekan kedua jika ping tidak sukses
# cek apakah ping status sebelumnya adalah 0 yang berarti sukses? if [ ${PS[$CLB]} -eq 0 ]; then
echo "Jalur ke ${ISP[$CLB]} down ... " PS[$CLB]=1
else
echo "Jalur ke ${ISP[$CLB]} masih down ... " fi
LB[$CLB]="" fi
# increment variabel ‘CLB’ CLB=$((CLB+1))
done
Langkah selanjutnya dalam pembuatan fileover script ini adalah
melakukan pengecekan jumlah isp yang aktif (terkoneksi dengan baik).
Pendefinisian variabel untuk melakukan perbandingan apakah default gateway
setelah failover script dijalankan. Jika sama, maka default gateway tidak perlu
diubah. Jika berbeda, berarti default gateway harus diubah. Berikut ini adalah
script yang dibuat oleh penulis:
# jika jalur isp yang aktif (terkoneksi dengan baik hanya 1) if [ $LIFEISP -eq 1 ]; then
LOADBALANCE=$LB_ONE_ISP
# jika semua jalur down (tidak ada jalur yang aktif) elif [ $LIFEISP -eq 0 ]; then
echo "SEMUA JALUR KE ISP DOWN...!!" # jika semua jalur aktif
elif [ $LIFEISP -eq $ISPN ]; then
echo "SEMUA JALUR KE ISP NORMAL. LOAD BALANCING JALAN" LOADBALANCE=${LB[*]}
# kondisi lain else
LOADBALANCE=${LB[*]} fi
# cek apakah default gw pertama sama dengan default gw # setelah failover script dijalankan
if [ "$LOADBALANCE" != "$LOADBALANCE2" ]; then
ip route replace default scope global $LOADBALANCE fi
# mengubah variabel LOADBALANCE2 sama dengan variabel LOADBALANCE LOADBALANCE2=$LOADBALANCE
# berhenti selama 5 detik setelah program dijalankan untuk kemudian dijalankan lagi. sleep $SLEEPTIME
4.4 Ujicoba dan Analisis Sistem Load Balancing Pada PC Router
Ujicoba dan analisis sistem ini mengacu pada skenario seperti yang telah
4.4.1 Skenario 1
Penulis memberikan parameter ‘weight’ 1 pada masing-masing koneksi
yang digunakan. Pada penulisan laporan tugas akhir ini, penulis mengakses
beberapa situs mengacu pada sub bab 3.4.1 sebagai sample untuk aktivitas
browsing dari client. Pada penulisan laporan tugas akhir ini, aktivitas browsing
dilakukan sebanyak 4 kali. Penulis melakukan pembersihan route cache sebelum
melakukan percobaan berikutnya. Hasil dari pengujian skenario 1 ini dilampirkan
penulis pada lampiran 1. Penulis mengelompokkan hasil analisis tersebut seperti
pada tabel 4.1, 4.2, 4.3, dan 4.4 berikut ini:
Tabel 4.1Aktivitas Browsing 1 Skenario 1
Req Source Destination Via Eth1 Eth2
1 PC1 67.19.121.27 x
2 PC2 67.19.121.27 x
3 PC1 74.81.82.140 x
4 PC2 74.81.82.140 x
5 PC1 202.6.211.8 x
6 PC2 202.6.211.8 x
7 PC1 117.103.174.16 x <