25 Juni 2009

Memisah Traffick outgoing dengan PF

traffik yang berjalan pada suatu network tentunya sangat beragam service, dengan tujuan tertentu atau kebijakan network administrator, kadang diperlukan pemisahan outgoing untuk menstabilkan jaringan.
misalkan suatu perusahaan mempunyai kebijakan sebagai berikut:
kirim email dan terima lewat ISP A dan browsing lewat ISP B
mengapa administrator menerapkan kebijakan seperti itu, tentunya administrator punya alasan sendiri.
lalu bagai mana memisahkan traffick tersebut:
misalkan subnet network local adalah 192.168.0.0/24
  • ISP A IP address 202.x.xxx.10 netmask 255.255.255.252 gateway 202.x.xxx.9
  • ISP B IP address 202.x.xxx.18 netmask 255.255.255.252 gateway 202.x.xxx.17
maka rule nya adalah sbb:

$int_if="rl0"
$ext_ifA="rl1"
$ext_ifB="rl2"
$int_add="192.168.0.0/24"
$ext_addA="202.x.xxx.10"
$ext_addB="202.x.xxx.18"
$ext_gwA="202.x.xxx.9"
$ext_gwB="202.x.xxx.17"

pass in on $int_if route-to ( $ext_ifA $ext_gwA ) proto { tcp, udp } from $int_add to any port 25
pass in on $int_if route-to ( $ext_ifB $ext_gwB ) proto { tcp, udp } from $int_add to any port 80
pass in quick all
pass out quick all

Selengkapnya...

09 Mei 2009

Pengantar Menejemen Bandwidth dengan ALTQ IV (Habis)

Pada session terakhir ini pada seri pengantar menejemen bandwidth dengan ALTQ, saya akan sedikit membahas tentang passing pada altq untuk kasus-kasus tertentu.
coba lihat rule altq di bawah ini.
altq on $int_if bandwidth 10M hfsc queue {ddef, dsatu, ddua, dtiga
queue ddef bandwidth 512Kb
queue dsatu bandwidth 1Mb
queue ddua bandwidth 128Kb
queue dtiga bandwidth 256Kb

pass out quick on $int_if inet from any to 192.168.1.0/24 queue dsatu
pass out queue on $int_if inet from any to 192.168.2.0/24 queue dsatu
pass out quick on $int_if inet from any to 192.168.3.0/24 queue dsatu
pass out quick on $int_if inet from any to { 192.168.4.1, 192.168.5.1 } queue ddua

dari rule diatas dapat di artikan sebagai berikut:

  1. bahwa rule altq dengan id dsatu di gunakan untuk banyak rule passing, yang artinya network 192.168.1.0/24, 192.168.2.0/24 dan 192.168.3.0/24 akan mempunyai bandwidth masing-masing sebesar 1Mb, satu network dengan network tidak saling berhubungan dan tergantung.
  2. untuk rule altq dengan id ddua digunakan untuk passing ip 192.168.4.1 dan 192.168.5.1 yang artinya bandwidth share.
tapi dalam menentukan kebijakan menejemen bandwidth yang perlu di perhatikan adalah :
  1. Pelajari dasar kebutuhan nertwork yang kita milik
  2. cari pendekatan yang akan kita gunakan, pendekatan tersebut meliputi : dari ip mana dan ke ip mana, protokol apa yang akan di shape, interface mana yang akan di shape dan service apa yang akan di shape.
  3. karena dengan mengetahui dua permasalahan diatas maka, administrator akan lebih mudah dalam membuat rule ALTQ.


Selengkapnya...

03 Maret 2009

Pengantar Manajemen Bandwidth dengan ALTQ III

Seperti yang telah saya sampaikan diposting sebelumnya bahwa penulisan rule pf haruslah urut sesuai dengan aturannya dan tidak bisa di bolak-balik. adapun urutannya adalah sebagai berikut: variable, table, options, ALTQ, translating, forwarding, blocking dan passing. lalu apa hubungannya dengan posting kali ini?. bahasan kali ini adalah tentang rule passing untuk ALTQ dengan kasus yang spesial. karena rule passing juga tidak bisa di bolak-balik.

misalkan seorang administrator mempunyai kebijakan rule firewall sebagai berikut :
  1. bandwidth network 10.10.1.0/24 ke internet sebesar 128Kb
  2. bandwidth network 10.10.1.0/24 ke 192.168.1.0/24 sebesar 1Mb
  3. bandwidth network 10.10.2.0/24 sebesar 256Kb
  4. bandwidth network 10.10.3.0/24 sebesar 512Kb
  5. bandwidth link antar network 10.10.0.0/16 sebesar 10Mb
  6. bandwidth network 10.10.0.0/16 protocol icmp sebesar 128Kb
  7. bandwidth network 10.10.0.0/16 protocol tcp dan udp port 52 sebesar 128Kb
  8. bandwidth network 10.10.0.0/16 protocol tcp dan udp port 161 sebesar 128Kb
dalam penyusunan rule passing untuk kasus di atas adalah sebagai berikut :
  1. passing aturan nomor 6
  2. passing aturan nomor 7
  3. passing aturan nomor 8
  4. passing aturan nomor 5
  5. passing aturan nomor 2
  6. passing aturan nomor 1
  7. passing aturan nomor 3
  8. passing aturan nomor 4
misalkan aturan di atas tidak di penuhi, lalu apa yang terjadi ?
  1. ketika local link antar network 10.10.0.0/16 penuh, ping time akan naik
  2. link network 10.10.1.0/24 ke 192.168.1.0/24 yang sebesar 1Mb akan menjadi 128Kb
  3. permintaan port 161 klien akan time out karena bandwidth local link antar network 10.10.0.0/16 penuh
  4. masih banyak lagi tergantung kesalahan penempatan rules.

Selengkapnya...

01 Februari 2009

Pengantar Manajemen Bandwidth dengan ALTQ II

Salah satu usaha yang kadang di perlukan dalam manajemen bandwidth adalah men-bypass bandwidth antar local network walaupun berbeda subnet. misalkan, local network tersebut mempunyai subnet 10.10.1.0/30, 10.10.1.4/30, 10.10.1.8/30 dan 10.10.1.12/30.
pada dasarnya secara default tiap-tipa subnet diatas akan terlimit, karena masing-masing mempunyai broadcast yang berbeda. lalu bagaimana jika ingin men-bypass bandwidth antar subnet-subnet yang di inginkan ?
pada awalnya saya mengira bahwa untuk men-bypass bandwidth dengan ALTQ saya bisa menggunakan script table pada pf. tapi ternyata dugaan saya salah.

semula saya mengira dengan script seperti ini

table local { 0.0.0.0/0, !10.10.1.0/24 }

altq on $ext_if bandwidth 2Mb hfsc queue {udef, usatu, udua, tiga, empat }
queue udef bandwidth 8Kb hfsc (default realtime 8Kb)
queue usatu bandwidth 128Kb hfsc (realtime 128Kb)

altq on $int_if bandwidth 2Mb hfsc queue {ddef, dsatu, ddua, dtiga, dempat }
queue ddef bandwidth 8Kb hfsc (default realtime 8Kb)
queue dsatu bandwidth 128Kb hfsc (realtime 128Kb)

pass out quick on $ext_if from 10.10.1.0/30 to local queue usatu
pass out quick on $int_if from local to 10.10.1.0/30 queue dsatu

dengan rule seperti diatas ternyata salah besar, dan network 10.10.1.0/30 akan terlimit walaupun ke network 10.10.1.0/24 atau ke subnet yang lain. mengapa ?
karena defaultnya rule altq dengan pf adalah deny. artinya walaupun untuk local network harus di definisikan berapa besar bandwidth yang harus di sediakan. karena dengan rule seperti diatas maka akan berarti dari nerwork 10.10.1.0/30 ke 10.10.1.0/24 tidak dilimit. ini sangat melanggar aturan dasar ALTQ. lalu apa keuntungannya ? jelas dengan rule default deny (mendifinisikan bandwidth local network) akan sangat membantu bila link antar subnet throughput-nya "terbatas". misalkan link antar BTS yang menggunakan media wireless.

table akan sangat ampuh untuk di gunakan untuk blocking, seperti yang banyak saya gunakan untuk membuat inclusive firewall. misalkan.

table local { 0.0.0.0/0, !10.10.1.0/24 }
block in quick on $int_if proto icmp from local to any

lalu bagaimana men-bypass bandwidth ?
letakkan rule passing local network pada baris paling atas.

Selengkapnya...

30 Januari 2009

Angka 9 (Sembilan)

Angka sembilan adalah angka terahir di bilangan desimal. bila angka tersebut dikalikan dengan angka 1-9 maka akan menghasilkan angka yang bila di jumlahkan akan sama dengan sembilan pula.
biar lebih jelas lihat contoh berikut :

1 * 9 = 09 = 0 + 9 = 9
2 * 9 = 18 = 1 + 8 = 9
3 * 9 = 27 = 2 + 7 = 9
4 * 9 = 36 = 3 + 6 = 9
5 * 9 = 45 = 4 + 5 = 9
6 * 9 = 54 = 5 + 4 = 9
7 * 9 = 63 = 6 + 3 = 9
8 * 9 = 72 = 7 + 2 = 9
9 * 9 = 81 = 8 + 1 = 9

keistimewaan ini tidak di miliki oleh angka lain.


Selengkapnya...

27 Januari 2009

Sejarah Internet Di UMM

Awal Internet dan Packet Radio Network di UMM

Tahun 1996, Universitas Muhammadiyah Malang (UMM) pertama kali tersambung ke internet secara dedicated. Sambungan dilakukan via VSAT TDMA Elektrindo Nusantara ke gateway AI3-ITB pada kecepatan 64 kbps. Kegiatan instalasi jaringan internet pertama kali ini mempunyai momen penting bagi cikal bakal perkembangan TI di UMM khususnya. Instalasi yang melibatkan langsung mahasiswa dengan dibekali pelatihan pengetahuan dasar teknologi internet, tidak pernah kami bayangkan sebelumnya. Dari sinilah perkembangan TI UMM dimulai.

Training UMM oleh CNRG ITB

Di tahun 1997-1998, kurang lebih seminggu tim CNRG ITB mendampingi secara tatap muka, yang saat itu adalah Yadi Heryadi, Luthfi Kisbiono Arif, dan Ismail Fahmi (selanjutnya diskusi secara online via mailing list). Sementara UMMNet yang saat itu dibina Bapak Drs Muizzudin, Bapak Eko Budi Cahyono, S.Kom, dan Bapak Rahmat Wijaya, SE dengan dibantu beberapa mahasiswa yang ternyata menjadi ujung tombak, antara lain Taufik Rahman, Siswanto, Nur Kholis Madjid, Berlian Rozak, Tri Widianto Andi Aminudin, Muhammad Nasar, Haerani Akbar, Saiful Bahri, dan Bima Finanto. Dalam kesempatan inilah diterangkan berbagai materi yang berkaitan dengan Internet dan TCP/IP. Dipraktekkan bagaimana sejumlah komputer saling dihubungkan hingga membentuk jaringan intranet dan internet. Bagaimana instalasi OS FreeBSD dan Linux pertama kalinya dengan metode ftp, dapat dibayangkan bagaimana heran dan sulitnya menerima pelajaran mengingat kami saat itu paling banter hanya mengenal DOS, windows3.11 dan windows 95. Disisi lain, ditunjukkan bagaimana cara memanfaatkan internet untuk menimba pengetahuan, telnet, email, mailing list, search enggine, dsb.. Untunglah, dengan pembagian tim menjadi lebih spesifik, masing-masing dapat juga menguasai barang aneh tersebut, walaupun masih sebatas instalasi, konfigurasi dan trouble shooting.

Hingga akhirnya kami mulai bisa memasang FreeBSD Release-1 untuk server internet pertama kalinya, yang dimotori tim Administrator seperti Siswanto, Tri Widianto, Taufik, Haerani Akbar dengan servis DNS, proxy, dan Web Server. Mulailah online di internet situs UMM pertama kali di http://www.umm.ac.id. Sementara tim Webmaster yang dimotori Nur Kholis Madjid, Berlian, Andi, dkk saat itu mulai sibuk mendesain tampilan web untuk mengisi situs barunya.

Materi NOS (Network Operating System) dan Linux, oleh Ismail Fahmi, diberikan secara unix sebagai alternatif pengembangan jaringan UMMNet berikutnya. Mulailah dibahas teknologi Packet Radio yang menggunakan modem 1200 bps dan radio FM VHF. Terpilih secara alamiah sebagai motor waktu itu Muhammad Nasar dan beberapa kawan, yang konon tertarik dengan pengembangan sistem telekomunikasi radio ini.

Mengembangkan jaringan Packet Radio

Packet radio terus di-oprek oleh Nasar, yang saat itu masih berkutat pada sofware NOS berbasis DOS sampai sekian lamanya, sampai-sampai muncul julukan baru oleh rekan-rekannya, “CNRG UMM” (Cilik-cilik Ngoprek Radio Ga mari-mari). Akan tetapi tidak lama setelah sentilan itu muncul, berhasillah di-setup Gateway Radio Packet se Malang Raya menggunakan sistem operasi Linux Slackware 3.5, dengan perangkat bekas seperti CPU 486DX, memory 16M dan HDD 40Gb, sebuah modem baycom TCM3105 yang dirakit sendiri, serta sebuah radio tranceiver FM-VHF dengan daya pancar 200 mili watt mengudara pada frekuensi 144.15 MHz lewat sebuah antena VHF Omnidirectional yang diletakkan di atas atap gedung perpustakaan pusat UMM.

Alokasi IP Amatir-pun dialokasikan oleh Onno W. Purbo YC1DAV dengan netmask 44.132.136/24 untuk kecepatan 1200bps, dan 44.132.137/24 untuk pengembangan berikutnya di kecepatan 9600bps.

Hari terus berganti, tim UMMNet pun yang status sebagai mahasiswa, setelah masa studi selesai, satu persatu mulai melangkahkan kaki menapak babak selanjutnya.

sumber : http://opensource.telkomspeedy.com

Selengkapnya...

21 Januari 2009

Bekerja dengan Switch

Switch adalah device yang bekerja di layer 2 (Data Link) pada TCP/IP. Device ini selalu identik dengan bridge. karena kedua device ini akan memecah collosion domain yang besar menjadi collosion domain masing-masing port. Apa itu collosion domain ? collosion domain adalah kumpulan laju frame-frame yang banyak dalam jaringan sehingga memungkinkan untuk tubrukan antar frame. oleh karena itu, dengan switch atau dengan bridge maka kumpulan frame-frame yang banyak akan di pisah-pisah pada jalur masing-masing. Perbedaan switch dan bridge adalah swictch hardware base sedangkan bridge software base. lalu apa yang bisa di kerjakan oleh swicth ?
  1. Pengenalan MAC hardware yang konek ke masing-masing port.
  2. Forwarding frame antar port.
  3. Link redundan (hanya bisa di lakukan oleh manage switch).
lalu mengapa switch bekerja lebih baik daripada hub biasa ?
coba lihat gambar berikut :



misalkan
host-1 mempunyai MAC : 00:1c:f0:5b:9c:c1 konek ke port 1
host-2 mempunyai MAC : 00:1c:f0:5b:9c:c2 konek ke port 2
host-3 mempunyai MAC : 00:1c:f0:5b:9c:c3 konek ke port 3
host-4 mempunyai MAC : 00:1c:f0:5b:9c:c4 konek ke port 4
host-5 mempunyai MAC : 00:1c:f0:5b:9c:c5 konek ke port 5
host-6 mempunyai MAC : 00:1c:f0:5b:9c:c6 konek ke port 6

maka yang di lakukan oleh switch adalah sebagai berikut:
  1. Untuk pertama kali switch di nyalakan, switch mempunyai tabel address dalam keadaan kosong (tidak pengenali alamat apapun).
  2. Misalkan host-1 mengirim data ke host-2 maka switch akan mengenali bahwa port 1 konek dengan MAC 00:1c:f0:5b:9c:c1 lalu membroadcast ke alamat tujuan dengan mengirim frame ke semua port kecuali ke port dari mana frame tersebut berasal (di broadcast ke port 2,3,4,5 dan 6). bila sudah ada jawaban dari port tujuan (port 2) maka swicth akan menyimpan alamat MAC yang konek di port 2.
  3. Maka switch akan mempunyai database MAC sebagai berikut : port 1 00:1c:f0:5b:9c:c1, port 2 00:1c:f0:5b:9c:c2 dan port 3,4,5 dan 6 kosong.
  4. Misalkan host-1 mengirim data ke host-3, maka swicth akan mem-broadcast ke sumua port yang belum mepunyai alamat MAC, yaitu port 3,4, 5 dan 6.
  5. Setelah ada jawaban dari alamat tujuan, maka alamat MAC akan di simpan dalam database swicth. sehingga database swicth sebagai berikut : port 1 00:1c:f0:5b:9c:c1, port 2 00:1c:f0:5b:9c:c2 dan port 3 00:1c:f0:5b:9c:c3 dan port 4, 5 dan 6 kosong.
  6. Bila host-1 mengirim data kembali ke host-2, maka swicth akan langsung mengirim frame ke port-2 (karena alamat MAC sudah di simpan di database swicth) tanpa men-broadcast ke port lain.
  7. itu akan di lakukan terus menerus oleh swich bila ada frame yang melewatinya.
itulah sebabnya swicth bekerja lebih baik dari pada hub, karena hub tidak mempunyai tabel alamat MAC, sehingga tiap kali ada frame yang lewat akan terus di broadcast ke semua port sehingga mengurangi bandwidth dan kemungkinan collosion menjadi lebih besar.

walaupun swicth bekerja sudah cukup baik, masih di perlukan router untuk memisah broadcast domain bila network yang dimiliki cukup besar.

Selengkapnya...

16 Januari 2009

Membangun Server Load Balancing beberapa Speedy dengan VLAN

Satu alasan mengapa membangun server load balancing beberapa speedy dengan VLAN adalah karena keterbatasan slot PCI yang ada di komputer server. kalau membangun warnet dengan koneksi 12 speedy akan menjadi masalah di slot PCI server yang pasti tidak ada yang sebanyak itu. maka salah satu solusinya adalah di buat VLAN tiap-tiap modem speedy dengan memanfaatkan salah satu fitur yang di miliki oleh swith, tentunya switch yang support VLAN. dalam kesempatan ini saya menggunakan switch cisco catalyst 2950 XL dengan FreeBSD sebagai routernya.



misalkan IP local modem adalah:
modem-1 192.168.1.1/24
modem-2 192.168.2.1/24
modem-3 192.168.3.1/24
modem-4 192.168.4.1/24
modem-5 192.168.5.1/24
modem-6 192.168.6.1/24

sedangkan Network local LAN adalah 192.168.0.0/24

maka persiapan pertama adalah install mesin FreeBSD dan kompile kernel.

#cd /sys/i386/conf
#cp GENERIC loadbalancer
#vi loadbalancer

untuk module kernel tambahkan option berikut:

device vlan
device pf
device pflog
device pfsync

#config loadbalancer
#cd ..
#make depend && make && make install && reboot &

#vi /etc/rc.conf

pf_enable="YES"
pf_program="/sbin/pfctl"
pf_rules="/etc/pf.conf"
network_interfaces="AUTO"
hostname="loadbalancer"
gateway_enable="YES"
ifconfig_lo0="127.0.0.1"
cloned_interfaces="vlan10 vlan20 vlan30 vlan40 vlan50 vlan60"
ifconfig_rl0="inet 192.168.0.1 netmask 255.255.255.0"
ifconfig_vlan10="inet 192.168.1.2 netmask 255.255.255.0 vlan 10 vlandev rl1"
ifconfig_vlan20="inet 192.168.2.2 netmask 255.255.255.0 vlan 20 vlandev rl1"
ifconfig_vlan30="inet 192.168.3.2 netmask 255.255.255.0 vlan 30 vlandev rl1"
ifconfig_vlan40="inet 192.168.4.2 netmask 255.255.255.0 vlan 40 vlandev rl1"
ifconfig_vlan50="inet 192.168.5.2 netmask 255.255.255.0 vlan 50 vlandev rl1"
ifconfig_vlan60="inet 192.168.6.2 netmask 255.255.255.0 vlan 60 vlandev rl1"

#vi /etc/pf.conf

ext_if1="vlan10" # speedy1
ext_if2="vlan20" # speady2
ext_if3="vlan30" # speedy3
ext_if4="vlan40" # speedy4
ext_if5="vlan50" # speedy5
ext_if6="vlan60" # speedy6

# Gateway Out #
ext_gw1 = "192.168.1.1"
ext_gw2 = "192.168.2.1"
ext_gw3 = "192.168.3.1"
ext_gw4 = "192.168.4.1"
ext_gw5 = "192.168.5.1"
ext_gw6 = "192.168.6.1"

nat on $ext_if1 from $lan_net to any -> ($ext_if1)
nat on $ext_if2 from $lan_net to any -> ($ext_if2)
nat on $ext_if3 from $lan_net to any -> ($ext_if3)
nat on $ext_if4 from $lan_net to any -> ($ext_if4)
nat on $ext_if5 from $lan_net to any -> ($ext_if5)
nat on $ext_if6 from $lan_net to any -> ($ext_if6)

pass in quick on $int_if route-to {($ext_if1 $ext_gw1), ($ext_if2 $ext_gw2), ($ext_if3 $ext_gw3), ($ext_if4 $ext_gw4), ($ext_if5 $ext_gw5), ($ext_if6 $ext_gw6)} round-robin proto tcp from $lan_net to any flags S/SA modulate state

pass in quick on $int_if route-to {($ext_if1 $ext_gw1), ($ext_if2 $ext_gw2), ($ext_if3 $ext_gw3), ($ext_if4 $ext_gw4), ($ext_if5 $ext_gw5), ($ext_if6 $ext_gw6)} round-robin proto { udp, icmp } from $lan_net to any keep state

pass out quick on $ext_if1 proto tcp from any to any flags S/SA modulate state
pass out quick on $ext_if1 proto { udp, icmp } from any to any keep state
pass out quick on $ext_if2 proto tcp from any to any flags S/SA modulate state
pass out quick on $ext_if2 proto { udp, icmp } from any to any keep state
pass out quick on $ext_if3 proto tcp from any to any flags S/SA modulate state
pass out quick on $ext_if3 proto { udp, icmp } from any to any keep state
pass out quick on $ext_if4 proto tcp from any to any flags S/SA modulate state
pass out quick on $ext_if4 proto { udp, icmp } from any to any keep state
pass out quick on $ext_if5 proto tcp from any to any flags S/SA modulate state
pass out quick on $ext_if5 proto { udp, icmp } from any to any keep state
pass out quick on $ext_if6 proto tcp from any to any flags S/SA modulate state
pass out quick on $ext_if6 proto { udp, icmp } from any to any keep state

berikut adalah konfigurasi switch

Interface FastEthernet 0/1
switchport access vlan 10
descriptions speedy 1

Interface FastEthernet 0/2
switchport access vlan 20
descriptions speedy 2

Interface FastEthernet 0/3
switchport access vlan 30
descriptions speedy 3

Interface FastEthernet 0/4
switchport access vlan 40
descriptions speedy 4

Interface FastEthernet 0/5
switchport access vlan 50
descriptions speedy 5

Interface FastEthernet 0/6
switchport access vlan 60
descriptions speedy 6

Interface FastEthernet 0/7
switchport mode trunk
switchport trunk allowed 1,10-60

lalu tinggal nyolokin modem-1 ke port cisco 1 sampai modem-6 ke port cisco 6 dan port cisco 7 di colokin ke server (rl1) sedangkan server (rl0) dicolokin ke hub client.

Selengkapnya...