• Tidak ada hasil yang ditemukan

METODOLOGI PENELITIAN

3.1. Alat dan Bahan

4.1.2. Aplikasi mampu generate parameter TC dan iptables yang dibutuhkan 1 HTB

HTB yang bersifat classful qdisc, memiliki pengaturan tc yang lebih banyak dibanding classless. Pada HTB tidak hanya mengatur qdisc tapi juga bisa dibuat child dari qdisc yang ada, dengan begitu kita dapat melakukan pengaturan yang lebih luas lagi. Terdapat beberapa pengaturan yang wajib pada classful qdisc pada kasus ini HTB.

1. pengaturan qdisc

#tc qdisc add dev eth1 root handle 1: htb default 9999

#tc qdisc add dev eth1 parent 1:2 handle 21: pfifo limit 10

pada pengaturan qdisc dapat dilihat syntax baku sebagai berikut, #tc qdisc [add|del] dev device_name [root|parent

CLASSID|handle QHANDLE] [QDISC_KIND]

Berikut penjelasan dari tiap pengaturan yang diperlukan :

2. opsi add adalah untuk menambahkan qdisc pada device network tertentu dan del untuk menghapusnya.

3. opsi device_name untuk pengaturan network device yang akan diatur. 4. opsi root untuk pengaturan qdisc induk.

5. opsi parent adalah classid dari parent qdisc. 6. opsi handle adalah qdiscid untuk qdisc tersebut.

2. pengaturan class

#tc class add dev eth1 parent 1:0 classid 1:1 htb rate

1Mbit ceil 2Mbit

#tc class add dev eth1 parent 1:1 classid 1:2 htb rate

64Kbit ceil 256Kbit

pada pengaturan class dapat dilihat syntax baku sebagai berikut,

#tc class [add|del] dev device_name [root|parent CLASSID]

[classid CLASSID] QDISCKIND rate n ceil n

Berikut penjelasan dari pengaturan yang diperlukan :

a) Opsi add adalah untuk menambahkan class dan del untuk menghapusnya.

b)Opsi device_name adalah network device yang akan diberikan class. c) Opsi root untuk pengaturan class induk.

d)Opsi parent adalah classid induk dari class tersebut.

e) Opsi CLASSID adalah classid yang digunakan sebagai id class tersebut.

f) Opsi QDISCKIND adalah qdisc yang digunakan pada class tersebut. g)Opsi rate adalah kecepatan normal class tersebut.

h)Opsi ceil adalah kecepatan maksimum class tersebut.

3. pengaturan filter

#tc filter add dev eth1 parent 1:0 protocol ip u32 match ip

untuk pengaturan filter berikut syntax baku :

#tc filter [add|del] dev device_name [parent CLASSID]

protocol proto [u32 match selector|fw classid CLASSID]

[root|handle handleid|flowid FLOWID]

penjelasan dari pengaturan yang diperlukan :

a) opsi add digunakan untuk menambah filter dan del untuk menghapus filter.

b) Opsi device_name adalah network device yang ditambah filter.

c) Opsi parent adalah parent yang memiliki qdisc root dari device_name. d) Opsi protocol untuk menentukan filter pada protocol yang diinginkan. e) Opsi u32 ataupun fw adalah untuk mencocokan paket data yang ingin

difilter.

f) Opsi handle maupun flowid untuk mencocokkan classid yang akan difilter.

Dari beberapa pengaturan sebelumnya akan didapat konfigurasi yang digambarkan sebagai berikut :

Gambar 4.3 HTB tree bandwidth management

Untuk penambahan tiap node yang akan ditambahkan pada tree tersebut. Cukup ditambahkan pada level 0 dan level 1 saja, dengan penambahan id yang sesuai dengan ketentuan. Node sebelah di kiri digunakan untuk klasifikasi paket data dari dan ke jaringan IIX dan sebelah kanan untuk jaringan internasional. Tiap-tiap node nantinya

Class main link Classid 1:1 Class IIX

Classid 1:2

Class Internasional Classid 1:3

Class IIX node Classid 1:n2

Class Intl Node Classid 1:n3 Class tcp node Classid 1:n2*2 Class udp Classid 1:n2*2+1 Qdisc Leaf RED Qdisc Handleid n2*2: Qdisc Leaf RED Qdisc Handleid n2*2+1: Level 0 1 2 3

akan diklasifikasikan lagi paket data pada transport layer yaitu apakah paket tersebut TCP atau UDP.

Classid 1:1 digunakan untuk menghandle maksimum bandwidth yang ada. Classid 1:2 digunakan untuk menghandle maksimum bandwidth untuk koneksi IIX. Classid 1:3 digunakan untuk menghandle maksimum bandwidth untuk koneksi internasional. Dan child dari node IIX dan Internasional akan digunakan untuk menghandle tiap node dalam jaringan. Classid child akan berupa 1:n2 untuk paket data IIX dan 1:n3 untuk paket data Internasional, dimana n adalah bilangan bulat. Tiap node akan memiliki leaf class yang membedakan paket TCP dan UDP. Tiap-tiap node class yang menghandle tiap node pada jaringan akan bertambah secara dinamis sesuai kebutuhan user, dan child classnya akan mengikuti.

Berikut potongan kode untuk generate class seperti gambar 4.3 di atas, # tc qdisc add dev DEVICE root htb default 8888

# tc class add dev DEVICE parent 1:0 classid 1:1 htb rate RATE

ceil MAXRATE

# tc class add dev DEVICE parent 1:1 classid 1:2 htb rate RATE

ceil MAXRATE

# tc filter add dev DEVICE parent 1:0 handle 6666 fw classid 1:2

# tc class add dev DEVICE parent 1:1 classid 1:3 htb rate RATE

ceil MAXRATE

# tc filter add dev DEVICE parent 1:0 handle 9999 fw classid 1:3

# bagian ini akan digenerate oleh aplikasi secara dinamis sesuai

kebutuhan pengguna.

# tc class add dev DEVICE parent 1:2 classid 1:N2 htb rate RATE

# tc filter add dev DEVICE parent 1:0 protocol ip u32 match ip dst

IP flowid 1:N2

# tc class add dev DEVICE parent 1:3 classid 1:N3 htb rate RATE

ceil MAXRATE

# tc filter add dev DEVICE parent 1:0 protocol ip u32 match ip dst

IP flowid 1:N3

# tc class add dev DEVICE parent 1:N2 classid 1:N2*2 htb rate RATE

ceil MAXRATE

# tc filter add dev DEVICE parent 1:N2 u32 match ip protocol 6

0xff flowid 1:N2*2

# tc class add dev DEVICE parent 1:N2 classid 1:N2*2+1 htb rate

RATE ceil MAXRATE

# tc filter add dev DEVICE parent 1:N2 u32 match ip protocol 17

0xff flowid 1:N2*2+1

# tc class add dev DEVICE parent 1:N3 classid 1:N3*2 htb rate RATE

ceil MAXRATE

# tc filter add dev DEVICE parent 1:N3 u32 match ip protocol 6

0xff flowid 1:N3*2

# tc class add dev DEVICE parent 1:N3 classid 1:N3*2+1 htb rate

RATE ceil MAXRATE

# tc filter add dev DEVICE parent 1:N3 u32 match ip protocol 17

0xff flowid 1:N3*2+1

2. RED

Pengaturan RED lebih singkat dibanding pengaturan HTB. Hal ini dikarenakan RED yang bersifat classless. Pengaturan RED hanya memerlukan beberapa

parameter, diantaranya :

a) limit rate, batasan kecepatan yang diizinkan.

b) min rate, batasan minimum kecepatan yang diizinkan.

c) max rate, batasan maksimum kecepatan yang diizinkan. Ketika melewati paket akan didrop.

d) burst rate

e) probability, kemungkinan paket yang akan didrop. Direkomendasikan 20% - 30%.

f) Avpkt, average packet yang direkomendasikan diset 1000.

Adapun bentuk syntax dari RED yang diset dari TC adalah sebagai berikut: #tc qdisc add dev DEV root red limit LIMIT min MIN max MAX

burst BURST avpkt 1000 probability PROP

Nilai yang diset pada RED haruslah dalam satuan Byte bukan bit. Maka sebelumnya harus dikonversi ke dalam Byte. Berikut rumus untuk mendapatkan beberapa parameter di atas.

Bandwidth : 64kbps = 8000KB/s Latency : 0.5 s.

Max : Bandwidth * Latency = 8000 * 0.5 = 4000 Min : Max / 2 = 2000

Limit : 8 * Max = 8 * 4000 = 32000

Burst : (2 * min + max) / (3 * avpkt) = (2 * 2000 + 4000) / (3 * 1000) = 2.667

Jika kita gunakan parameter di atas, maka akan kita gunakan pada tc sebagai berikut,

#tc qdisc add dev eth0 parent ID red limit 32000 min 2000 max

4000 burst 2.667 avpkt 1000 probability 0.02

Aplikasi nantinya akan meminta input berupa bandwidth dan latency yang dimiliki. Dan akan langsung mengenerate parameter lain, untuk kemudian menjalankan tc dengan parameter ada.

3. Iptables

Aplikasi ini dibutuhkan untuk melakukan filtering terhadap tiap paket data yang datang maupun dikirim dari router. Filter akan lebih spesifik untuk mencari dan menandai paket data mana yang datang maupun dikirim ke jaringan IIX ataupun Internasional. Karna nantinya kedua paket data tersebut akan diperlakukan berbeda.

Berikut potongan kode untuk melakukan filtering terhadap paket data yang datang dari IIX dan untuk dari Internasional akan ditandai bila tidak termasuk paket tersebut,

# clear iptables

#$IPTABLES = perintah iptables

#$DEV_UPLINK = device yang menghadap jaringan internet

#$DEV_DOWNLINK = device yang menghadap jaringan lokal

$IPTABLES -t mangle -F

$IPTABLES -t filter -F

$IPTABLES -t nat –F

$IPTABLES -t mangle -X

$IPTABLES -t mangle -N IIX

# bagian ini akan diulang dan ditambahkan ip dari server yang

$IPTABLES -t mangle -A IIX -i $DEV_UPLINK -p ! icmp -s

167.205.0.0/16 -j CONNMARK --set-mark 103

$IPTABLES -t mangle -A IIX -i $DEV_UPLINK -p ! icmp -s

167.205.0.0/16 -j RETURN

$IPTABLES -t mangle -A IIX -i $DEV_DOWNLINK -p ! icmp -d

167.205.0.0/16 -j CONNMARK --set-mark 103

$IPTABLES -t mangle -A IIX -i $DEV_DOWNLINK -p ! icmp -d

167.205.0.0/16 -j RETURN

#bagian ini akan menangani sisa paket data yang tidak cocok pada

rules sebelumnya dan ditentukan sebagai paket data dari jaringan

internasional

$IPTABLES -t mangle -N INTL

$IPTABLES -t mangle -A INTL -i $DEV_UPLINK -p ! icmp -s 0.0.0.0/0

-j CONNMARK --set-mark 104

$IPTABLES -t mangle -A INTL -i $DEV_UPLINK -p ! icmp -s 0.0.0.0/0

-j RETURN

$IPTABLES -t mangle -A INTL -i $DEV_DOWNLINK -p ! icmp -d

0.0.0.0/0 -j CONNMARK --set-mark 104

$IPTABLES -t mangle -A INTL -i $DEV_DOWNLINK -p ! icmp -d

0.0.0.0/0 -j RETURN

$IPTABLES -t mangle -A PREROUTING -j IIX

$IPTABLES -t mangle -A PREROUTING -j INTL

Dokumen terkait