<body><script type="text/javascript"> function setAttributeOnload(object, attribute, val) { if(window.addEventListener) { window.addEventListener('load', function(){ object[attribute] = val; }, false); } else { window.attachEvent('onload', function(){ object[attribute] = val; }); } } </script> <div id="navbar-iframe-container"></div> <script type="text/javascript" src="https://apis.google.com/js/platform.js"></script> <script type="text/javascript"> gapi.load("gapi.iframes:gapi.iframes.style.bubble", function() { if (gapi.iframes && gapi.iframes.getContext) { gapi.iframes.getContext().openChild({ url: 'https://draft.blogger.com/navbar.g?targetBlogID\x3d3417119785294949608\x26blogName\x3dMy+Special+Blog\x26publishMode\x3dPUBLISH_MODE_BLOGSPOT\x26navbarType\x3dTAN\x26layoutType\x3dCLASSIC\x26searchRoot\x3dhttps://yudymardianto.blogspot.com/search\x26blogLocale\x3den_US\x26v\x3d2\x26homepageUrl\x3dhttp://yudymardianto.blogspot.com/\x26vt\x3d995569220600001438', where: document.getElementById("navbar-iframe-container"), id: "navbar-iframe" }); } }); </script>

My Special Blog

Uang adalah Hamba yang sangat baik tapi merupakan Tuan yang sangat buruk.

Membagi Bandwidth Dengan FreeBSD

Sebelum saya menerang mengenai pembagian bandwith dengan FreeBSD dengan lebih lanjut, saya sarankan anda membaca man page 'ipfw(' dan 'dummynet(4)'.

Soalan
======
Ngapa butuh traffic shaping?
------------------------------

Traffic shaping adalah untuk menghad sesuatu bandwidth mengikut konfigurasi anda. Contohnya, anda mempunyai
10 buah PC di kantor anda dan anda mahu semua PC itu mendapat bandwidth sebanyak 256Kbps. Anda bisa lakukannya dengan cara ini. Selain itu, anda bisa pastikan sesuatu IP atau port mendapat 'priority' dengan menggunakan WFQ (Weight Fair Queueing)
Bolehkan benda ni handle banyak connection?
-------------------------------------------
Mungkin bisa, mungkin tidak juga. Saya udah mencoba cara ini dengan 40 client, dan enggak menghadapi apa-apa masalah.
Pentium II 300 dan 64MB RAM udah cukup bagus untuk menjanakannya. Pastikan anda menggunakan network card yang berkualitas.

Langkah 1: Kernel
=================
Pastikan kernel anda dicompile konfigurasi ini:
options IPFIREWALL
options DUMMYNET
options HZ=1000
'IPFIREWALL' adalah untuk filtering, 'DUMMYNET' adalah untuk traffic shaping dan 'HZ=1000' yang bermaksud operasi kernel akan dijalankan pada 1ms.

Langkah 2: IPFW
===============
IPFW merupakan interface kepada IPFIREWALL dan DUMMYNET. Ianya sudah ada dalam mana-mana OS FreeBSD.
Anda mesti menambah konfigurasi ini dalam /etc/rc.conf supaya IPFW diexecute secara automatik ketika bootup.
firewall_enable="YES"
firewall_script="/etc/ipfw.conf"
'firewall_enable="YES"' bermaksud bahawa rc.conf akan execute ipfw pada bootup dengan rules yang diset oleh
'firewall_script="/etc/ipfw.conf"'. Anda boleh menukar nama fail script anda.
Saya tidak akan menerang tentang ipfirewall dan NAT dalam artikel ini, anda perlu rujuk kepada artikel lain berkenaan perkara tersebut.

Langkah 3: Konfigurasi IPFW
===========================
Menghad Bandwidth (Bandwidth Limit)
-----------------------------------
Anda boleh menghad bandwidth dengan contoh-contoh dibawah:
contoh 1:
$ipfw pipe 1 config bw 128Kbit/s
$ipfw pipe 2 config bw 128Kbit/s
$ipfw add pipe 1 all from any to 192.168.1.1 in
$ipfw add pipe 2 all from 192.168.1.1 to any out
Konfigurasi ini akan menghad bandwidth download dan upload dari IP 192.168.1.1 kepada 128Kbps
contoh 2:
$ipfw pipe 1 config mask dst-ip 0x000000ff bw 128Kbit/s
$ipfw pipe 2 config mask src-ip 0x000000ff bw 128Kbit/s
$ipfw add pipe 1 all from any to 192.168.1.0/24 in
$ipfw add pipe 2 all from 192.168.1.0/24 to any out
Konfigurasi ini akan menghad bandwidth download dan upload dari network 192.168.1.0/24 kepada 128Kbps
WFQ (Weight Fair Queueing)
--------------------------
Anda boleh mengkofigurasikan mana-mana IP atau port yang akan mendapat 'priority' mengikut contoh-contoh dibawah:

contoh 1:
$ipfw pipe 1 config bw 128Kbit/s
$ipfw pipe 2 config bw 128Kbit/s
$ipfw queue 100 config pipe 2 weight 90
$ipfw queue 101 config pipe 2 weight 60
$ipfw add pipe 1 all from any to 192.168.1.1 in
$ipfw add queue 100 tcp from 192.168.1.1 to any 22 out
$ipfw add queue 100 tcp from 192.168.1.1 to any 80 out
$ipfw add queue 100 udp from 192.168.1.1 to any 53 out
$ipfw add queue 101 all from 192.168.1.1 to any out
Konfigurasi ini akan menghad bandwidth download dan upload dari IP 192.168.1.1 kepada 128Kbps dan memberi 'priority' kepada port SSH(22), HTTP(80), dan DNS(53) yang menuju ke luar (pada client).

contoh 2:
$ipfw pipe 1 config bw 128Kbit/s
$ipfw pipe 2 config bw 128Kbit/s
$ipfw queue 100 config pipe 1 weight 90
$ipfw queue 101 config pipe 1 weight 60
$ipfw add queue 100 tcp from any to 192.168.1.1 22 in
$ipfw add queue 100 tcp from any to 192.168.1.1 80 in
$ipfw add queue 101 tcp from any to 192.168.1.1 in
$ipfw add pipe 2 all from 192.168.1.1 to any out

Konfigurasi ini akan menghad bandwidth download dan upload dari IP 192.168.1.1 kepada 128Kbps dan memberi 'priority' kepada port SSH(22), HTTP(80), dan DNS(53) yang menuju ke dalam (pada server).
SIAP! Semua konfigurasi DUMMYNET sudah lengkap, dan tibalah masa untuk menguji benda ini. Enjoy!

Terima kasih kepada azhax@indofreebsd.or.id

Update Ports dengan CVSUP FreeBSD

apa itu ports ? ports merupakankontribusi aplikasi. Koleksi FreeBSD ports
menawarkan cara yang simpel bagi pengguna dan administrator untuk menginstall aplikasi.
setiap port berisi patch patch untuk aplikasi orsinil dan jalan di BSD.
Cara kompile sebuah aplikasi sangatlah mudah dengan mengetikan make build pada port
directory. Makefile secara otomatis mendownload source code aplikasi, mem patch nya
dan mengcompile nya. Sangat simpel bukan ?
dengan hanya mengetikan make install anda
bisa menginstall aplikasi secara keseluruhan.
Untuk menginstall sebuah aplikasi dari ports maka dibutuhkan ports yang up to date.
sehingga ketika mengginstall aplikasi di dalam nya tidak terjadi broken link atau tidak
ditemukan nya source aplikasi yang kita butuhkan.
Bagaimanakah agar selalu ports tersebut up to date ?
caranya sangat mudah ..
pastikan anda login sebagai root pada server anda.

lakukan sedikit perubahan pada make.conf anda agar ketika melakukan download
source aplikasi mengambil dari source yang terdekat.

# ee /etc/make.conf

# mirror
MASTER_SITE_BACKUP?=http://ftp.id.freebsd.org/ports/distfiles/${DIST_SUBDIR}/
MASTER_SITE_OVERRIDE?=${MASTER_SITE_BACKUP}

lalu save dengan menekan CTRL c --> ketik exit

sekarang mari kita install cvsup nya
# cd /usr/ports
# make search name=cvsup-without-gui
Port: cvsup-without-gui-16.1h_2
Path: /usr/ports/net/cvsup-without-gui
Info: General network file distribution system optimized for CVS (non-GUI version)
Maint: jdp@FreeBSD.orgThis e-mail address is being protected from spam bots, you need JavaScript enabled to view it
B-deps: ezm3-1.2_1
R-deps:
WWW: http://www.cvsup.org/

# cd /usr/ports/net/cvsup-without-gui
# make install; make clean
sudah selesai menginstall cvsup-without-gui ? mudah dan cepat bukan ?
sekarang langkah terakhir tujuan kita adalah mengupdate ports collection tersebut
agar ports collection tersbut benar benar yang terbaru.
hal pertama yang harus kita lakukan adalah mengcopy contoh file port-supfile

# locate ports-supfile
/usr/share/examples/cvsup/ports-supfile
/usr/src/share/examples/cvsup/ports-supfile

# cp /usr/share/examples/cvsup/ports-supfile
# ee ports-supfile
ubah *default host=CHANGE_THIS.FreeBSD.org menjadi *default host=cvsup.id.FreeBSD.org
lalu save dengan menekan CTRL c --> ketik exit

Untuk mengatasi hal diatas yang harus dilakukan adalah update ports FreeBSD. caranya dengan cvsup, apa itu CVSUP mungkin dapat dilihat di:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/

mari kita mulai update ports

# cvsup -g -L 2 ports-supfile
Parsing supfile "ports-supfile"
Connecting to cvsup.id.FreeBSD.org
Connected to cvsup.id.FreeBSD.org
Server software version: SNAP_16_1h
Negotiating file attribute support
Exchanging collection information
Establishing multiplexed-mode data connection
Running
Updating collection ports-all/cvs
Edit ports/GIDs

tunggu sampe selesai dan kembali ke prompt

Shutting down connection to server
Finished successfully

Terima Kasih Kepada (Bp. Ogeb) www.indofreebsd.or.id