Para pelaku bisnis jaringan, atau pengelola jaringan instansi dan institusi banyak sekali mencari program-program yang digunakan untuk melakukan traffic shapping atau bandwidth manager. Pada linux yang paling familiar adalah dengan menggunakan htb atau cbq. Sedangkan di BSD biasanya menggunakan ip dummynet dengan perintah-perintah ipfw
Nah bagi yang nggak mau berpusing-pusing dengan htb atau cbq maka ada suatu solusi yang lumayan ringkas dan cukup akurat.. Asal tahu aja kalau htb dan cbq yang selama ini saya pake ternyata memiliki kekurangan. Mereka tidak tahan dengan beban tinggi. Nah, ternyata linux juga memiliki solusi dengan menggunakan tools jaringan bawaannya yang bernama iptables. Iptables ini sudah biasa digunakan mengelola jaringan, mengarahkan route, memblokir, meneruskan, memberrikan aturan antrian dll. Lho terus gimana dong memberikan aturan traffic shapping dalam Linux?
Begini:
Komponen rule utama dalam iptables yang perlu dipakai adalah:
iptables blablablabla –source/–destination -m limit –limit xx/s –limit-burst xx -J ACCEPT
tapi dengan catatan bahwa secara policy, targetnya adalah DROP
Contoh:
Misalnya saya punya jaringan dengan kondisi seperti ini
Saluran masuk dari internet melalui
eth0, kemudian traffic internet tersebut dibagi ke
eth1, dengan net address 192.168.10.0/24
eth2, dengan net address 192.168.100.0/24
Kemudian pada net address yang pertama tersebut ada beberapa sub blok yaitu
- marketing
- hosting
- administrator
- technical support
- management
maka
contohnya:
iptables -P FORWARD -j DROP
iptables -A FORWARD -d 192.168.10.0/24 -m limit –limit 100/s –limit-burst 20 -j ACCEPT
iptables -A FORWARD -s 192.168.10.0/24 -m limit –limit 100/s –limit-burst 20 -j ACCEPT
;semua traffic masuk dan keluar dari 192.168.10.0/24 dibatasi maksimal sejumlah 100kbps
Banyak diantara teman-teman admin yang memiliki masalah dengan membagi jaringan internet ke jaringan lokal dari komputer Gateway/Router. Nah berikut tipsnya:
Untuk linux, sangat gampang..
1. Lihat dulu interface jaringan yang ada pada komputer gateway. Biasanya lebih dari satu.
2. Tentukan interface mana yang menghadap ke internet/sisi publik..
3. Tambahkan command iptables ini pada firewall
iptables -t nat -I POSTROUTING -o namadevice -j MASQUREADE
contoh
iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
Dengan perintah ini juga kita juga bisa melakukan IP Forwarding terhadap IP – IP tertentu , mana yang boleh masuk ke internet, mana yang tidak boleh. Misalnya:
iptables -t nat -I POSTROUTING -s 192.168.2.0/24 -j MASQUERADE. Dengan catatan perintah yang diatas tadi tidak dijalankan
PRoses forward ip bisa juga dilakukan dengan cara
selalu
tambahkan dalam file /etc/rc.local anda seperti ini
echo “1″ > /proc/sys/net/ipv4/ip_forward
nilai ini selalu akan berganti menjadi 0 jika komputer di reboot/dimatikan.
Untuk Windows, buka dulu Network Connectionnya dari Start Setting ..
Carilah interface yang berhubungan dengan internet. Misalnya adalah Network Connection1, Klik kanan, Propoerties dan carilah Advanced
Check, centanglah tanda Allow network User bla bla bla. Maka interface yang satunya akan segera membuat IP address baru 192.168.0.1 yang kita nanti juga bisa menggantinya.
Nah.. gampang khan?
Diarsipkan di bawah: Networking
Apa itu DNS:
DNS singkatan dari Domain Name System, DNS secara bodhon merupakan suatu tools dalam jaringan yang digunakan untuk menterjemahkan dari nama domain ke ip address.
Mengapa ada DNS?
Komputer pada dasarnya tidak bisa membaca domain (nama komputer) dalam bahasa manusia seperti yahoo.com, google.com dll. Sedangkan yang di baca oleh komputer adalah bahasa mesin, yang berupa digital atau angka (202.162.135.135, 222.124.24.91). Untuk itu perlu pemetaan antara bahasa yang digunakan manusia ke bahasa mesin.
Bagaimana mekanismenya?
Mekanismenya adalah, ketika komputer kita (selaku DNS Client) memanggil sebuah host lain (misal http://yahoo.com) maka komputer kita akan segera menanyakan ke Server DNS yang telah kita pasang di konfigurasi jaringan kita. Jika server DNS kita tahu (ada catatan tentang domain tertentu) maka kita akan segera dipanggilkan dengan nomer IP yang bersangkutan. Jika server DNS kita tidak tahu, maka server DNS kita akan menanyakan pada server DNS yang lebih atas lagi dan seterusnya. Jika tidak diketemukan, maka dinyatakan bahwa host tidak diketemukan.
Bagaimana setting DNS Client?
Di Windows tinggal klik
Start
Setting
Network Connection

Gambar 1. Langkah 1
. Akan muncul gambar seperti berikut

Gambar 2. Langkah 2
Kemudian pada Icon Network Connectionnya di klik kanan Pilih Properties Seperti di dalam gambar yang di tampilkan dibawah

Gambar 3. Langkah 3

Gambar 4. Network Properties

Gambar 5. Network Configuration
Set lah DNS pada server DNS yang ada dalam jaringan anda, jika tak tahu, tanya ke administrator
Di Linux, sangat gampang
Cari tahu dulu nomer IP Address DNS Server, kemudian bukalah file /etc/resolv.conf dengan mcedit atau vi ataupun editor teks lainnya
mcedit /etc/resolv.conf

Gambar 6. Konfigurasi DNS Client di Linux
Masukkanlah teks : nameserver no_IP_server_dns
seperti pada gambar
nah artinya, Semua kebutuhan nama suatu situs, akan direkuestkan ke ip tersebut. Jika komputer dengan no IP tersebut gak tahu, akan dilanjutkan ke atasnya dan seterusnya.
Nah sekarang bagaimana kalau Setting DNS SERVER?
Wehehe ini yang lumayan rumit
Namun yang paling penting kita harus memahami KOMPONEN DNS. Apa aja sih komponen DNS itu?
1. Resolver
2. Resolution
3. Caching
Resolver adalah ialah bagian aplikasi client yang mengakses name server. Resolver ada di CLIENT seperti yang kita set tadi. Semua aplikasi yang mengakses DNS memerlukan ini
Resolution. Sebuah server DNS, dalam menjawab permintaan nameserver, akan mencarikan nameserver yang terletak di server atasnya. Proses ini dinamakan dengan name resolution.
Caching. Selain resolution, dalam menjawab sebuah permintaan nameserver, maka Server akan mengakses databasenya didalam cache nya untuk mencari domain yang dimaksud. Namun karena kapasitas cache terbatas, maka perlu di batasi dengan menentukan Time To Live (TTL).
BIND
Bind merupakan software implemetasi DNS paling banyak digunakan dalam sebagai server DNS. BIND merupakan singkatan dari Berkeley Internet Name Domain. BIND versi terbaru dapat diambil di http://isc.org. Ketika dilakukan installasi BIND, maka BIND akan melakukan installasi menjadi tiga bagian
1. /etc/resolv.conf
2. /etc/named.conf
3. DNS resource record yang terdiri dari :
/var/named/root.cache
/var/named/named.local
/var/named/ut.zone
/var/named/ut.rev
DNS resource record adalah file database yang dibutuhkan oleh nameserver sebagai sumber data dalam prosesnya. File-file inilah yang kemudian akan dimodifikasi.
Dalam file tersebut, urutan penataannya adalah sebagai berikut:
SOA RECORD
NS RECORD
Other REcord seperti :
- A : Pemetaan dari Nama ke IP
- PTR
emetaan dari IP ke Nama
- CNAME : Canonical Name (Alias)
To be Continued
Kadang-kadang kita memiliki sebuah webserver yang berada di IP Local seperti gambar di bawah ini. Sedangkan hanya gateway memiliki IP Public yang bisa dilihat dari sisi internet. So? Permasalahannya, bagaimana kita bisa mempublishkan web yang ada di webserver dan bisa di akses dari sisi internet??

Gambar 1. Contoh denah jaringan
Ya, ternyata kita bisa membuat keadaan dimana komputer yang tidak memiliki IP Publik tersebut, bisa di akses dari sisi internet dengan memanfaatkan hak yang diberikan oleh komputer yang memiliki IP Publik.
Bagaimana caranya?
Solusinya adalah dengan NAT (Network Address Translation) yaitu mentranslasikan suatu IP Address ke sisi jaringan yang lain. Pada sistem Operasi Linux kita dapat melakukannya secara standard dengan menggunakan tools iptables. iptables sebagai tools pengatur trafik jaringan memiliki kemampuan untuk melakukan hal tersebut. iptables dijalankan dari sisi server akan meneruskan traffik yang merekues dari sisi publik/internet diteruskan ke sisi lokal.
Sehingga sintaksnya akan menjadi seperti demikian
iptables -t nat -I PREROUTING -p tcp -s IP_Publik_Yang_Merekuest –dport Port_Tujuan -j DNAT –to-destination IP_Lokal_tujuan:Port_aplikasinya
Penjelasan
-t nat = table nat pada iptables
-I PREROUTING = Insert pada chain Prerouting
-p tcp = protokol tcp
-s = Source/sumber Ip address yang merekues. Kalau semua diijinkan = 0/0
–dport = port tujuan yang diminta dari sisi publik
-j DNAT = Target Destination NAT
–to-destination = ke tujuan ip lokal yang diinginkan
Misal kita memiliki ip publik202.130.202.111 dan webserver ada pada sisi lokal 192.168.0.250 maka kita bisa melakukan seperti ini
iptables – t nat -I PREROUTING -p tcp -s 0/0 –dport 80 -j DNAT –to-destination 192.168.0.250:80
Atau jika port 80 telah digunakan oleh server itu sendiri, kitabisa memanfaatkan port yang kosong dari sisi server tersebut misal
iptables – t nat -I PREROUTING -p tcp -s 0/0 –dport 88 -j DNAT –to-destination 192.168.0.250:80
Namun, proses pemanggilan dalam browser harus lengkap menggunakan port
http://202.130.202.111:88
Ya, langkah ini juga bisa di balik apabila seorang administrator jaringan ingin merouting jaringan, agar rekuest ke port tertentu, dapat dialihkan ke route lain, namun logika dibalik dan port destination di belakang di hilangkan. Contoh:
iptables -t nat -I PREROUTING -p tcp -s 192.168.0.0/24 –dport 80 -j DNAT –to-destination 202.130.202.111
Langkah ini juga bisa di gunakan untuk protokol lain juga selain web seperti ssh, remote server dal protokol lainnya.
Semoga membantu.. Ada masalah? Silakan post reply …
Diarsipkan di bawah: Networking
IPTABLES
- Apa itu iptables?
iptables adalah suatu tools dalam sistem operasi linux yang berfungsi sebagai alat untuk melakukan filter (penyaringan) terhadap (trafic) lalulintas data. Secara sederhana digambarkan sebagai pengatur lalulintas data. Dengan iptables inilah kita akan mengatur semua lalulintas dalam komputer kita, baik yang masuk ke komputer, keluar dari komputer, ataupun traffic yang sekedar melewati komputer kita.
- Gimana perintahnya?
iptables [–t tables] [option] [rule] [target]
Contohnya:
iptables –P FORWARD ACCEPT
- Apa saja yang bisa dilakukan dengan iptables?
Dengan kemampuan tools iptables ini, kita bisa melakukan banyak hal dengan iptables. Yang paling penting adalah bahwa dengan iptables ini kita bisa membuat aturan (rule), untuk arus lalulintas data. Aturan aturan itu dapat mencakup banyak hal, seperti besar data yang boleh lewat, jenis paket/datagram yang dapat diterima, mengatur trafic berdasar asal dan tujuan data, forwarding, nat, redirecting, pengelolaan port, dan firewall.
- Bagaimana gambaran lalulintas dalam sistem jaringan.
Lalu lintas dalam sistem jaringan digambarkan sebagai berikut

Gambar 1. Lalu lintas data dalam sistem
Keterangan:
1. Data masuk ke dalam sistem komputer bisa melalui banyak jalan, biasanya melalui network interface. Bisa berupa card dan dapat pula berupa wifi lan atau yang lain. Setelah masuk sistem, maka data tersebut akan segera masuk ke dalam decission maker, yang menentukan bahwa data itu akan di proses ke dalam komputer (input) atau akan di lewatkan (forward).
2. Setelah data masuk jika data tersebut mendapatkan rantai FORWARD maka akan segera masuk dalam aturan dalam rule FORWARD tersebut.
3. Jika data masuk ke dalam rantai input, maka data akan mengalami rule
Perlakuan apa saja yang dialami data oleh iptables?
Perlakuan yang dialami oleh data/paket data oleh iptables digambarkan melalui tabel. Macam tabelnya adalah:
1. Filter : tabel default yang ada dalam penggunaan iptables
2. NAT : tabel ini digunakan untuk fungsi NAT, redirect, redirect port
3. Mangle : tabel ini berfungsi sebagai penghalus proses pengaturan paket
Bagaimana kita bisa peroleh informasi tentang iptables tersebut di dalam sistem operasi linux?
Kita bisa peroleh info tentang iptables, dengan cara mengetikkan:
man iptables
atau
iptables –help
Perintah man adalah untuk mendapatkan manual penggunaaan dari iptables ini. Sedangkan help adalah untuk mendapatkan informasi help dari iptables tersebut.
- OPTION
Option terdiri dari command, dan parameter serta opsi tambahan
COMMAND
Command dan rule yang dipasang pada iptables (firewall) memiliki ketentuan. Pada dasarnya iptables pada komputer dianggap sebagai TABEL IP sesuai dengan namanya. System hanya akan menjalan rule yang ada pada tabel. Sedangkan rule yang sudah ada pada iptables juga dapat di hapus atau di replace dengan rule lain. Berikut beberapa command untuk penambahan, penghapusan dan operasi sejenisnya yang akan diperlakukan terhadap rule.
Daftar Perintah berikut keterangan
-A atau –append Melakukan penambahan rule
-D atau –delete Melakukan penghapusan rule
-R atau –replace Melakukan replacing rule
-L atau –list Menampilkan ke display, daftar iptables
-F atau –flush Menghapus daftar iptables/pengosongan
-I atau –insert Melakukan penyisipan rule
-N atau –new-chain Melakukan penambahan chain baru
-X atau –delete-chain Melakukan penghapusan chain
-P atau –policy Memberikan rule standard
-E atau –rename Memberikan penggantian nama
-h atau –help Menampilkan fasilitas help
Table 1. Table Command iptables
Parameter
Parameter iptables digunakan sebagai pelengkap yang diperlukan untuk tujuan spesifikasi rule tersebut
Parameter berikut Keterangan
-p, –protocol (proto) Parameter ini untuk menentukan perlakuan terhadap protokol
-s, –source (address) –-src Parameter untuk menentukan asal paket
-d, –destination (address) –-dst Parameter untuk menentukan tujuan paket
-j, –jump (target)
-g, –goto (chain)
-i, –in-interface Masuk melalui interface (eth0, eth1 dst)
-o, –out-interface
[!] -f, –fragment
-c, –set-counters
Table 2. Tabel Parameter iptables
Parameter berikut Keterangan
–sport
–source-port Menentukan port asal
–dport
–destination-port Menentukan port tujuan
–tcp-flags Menentukan perlakuan datagram
–syn
Table 3. Tabel Parameter detail
Selanjutnya apa itu yang disebut dengan chain?
Chain/rantai digambarkan sebagai jalur aliran data. Chains yang diperlukan untuk iptables ini antara lain:
Chain berikut Keterangan
FORWARD Route packet akan di FORWARD tanpa di proses lanjut di local
INPUT Route packet masuk ke dalam proses lokal sistem
OUTPUT Route packet keluar dari local sistem
PREROUTING Chain yang digunakan untuk keperluan perlakuan sebelum packet masuk route. Biasanya dipakai untuk proses NAT
POSTROUTING Chain yang digunakan untuk keperluan perlakuan sesudah packet masuk route. Biasanya dipakai untuk proses NAT
Tabel 4. Tabel Chain
Chain PREROUTING dan POSTROUTING dimaksudkan sebagai jalur data sebelum dan sesudah data tersebut masuk ke dalam route.
PREROUTING: data sebelum masuk jalur route, akan di kenakan rule
POSTROUTING: data sebelum masuk akan dikenakan route
Apakah target itu?
Target adalah tujuan perlakuan terhadap rule. Pada target ini terletak keputusan, paket data mau diapakan, apakah mau di tolak, atau diteruskan atau diolah terlebih dahulu. Berikut daftar table target iptables
Target berikut Keterangan
ACCEPT Rantai paket tersebut diterima dalam rule
DROP Rantai paket tersebut “dijatuhkan”
REJECT Rantai paket tersebut ditolak seperti DROP
DNAT Rantai paket di “destination nat” kan ke address lain
SNAT Rantai paket di arahkan ke source nat tertentu
REDIRECT Rantai paket di redirect ke suatu addres dan port tertentu
MASQUERADE Bekerja seperti SNAT tapi tidak memerlukan source
REJECT Bekerja seperti DROP
Contoh beberapa kasus untuk iptables
Misalkan terdapat sebuah jaringan komputer menggunakan koneksi internet dengan IP ADDRESS publik
222.124.132.91 (eth0)
Server gateway memiliki 3 anak jaringan (jaringan lokal) dengan dibedakan subnet
192.168.0.0/24 (eth1)
192.168.1.0/24 (eth2)
192.168.10.0/24 (eth3)
Kondisi dalam jaringan, eth3 tidak diperbolehkan melakukan akses ke internet tetapi diperbolehkan masuk ke jaringan lokal lainnya melalui protokol http. Sedangkan eth1 dan eth2 diperbolehkan melakukan akses ke internet. Pada IP ADDRESS 192.168.1.10 terdapat webserver, dan pada IP Address 192.168.1.12 terdapat koleksi intranet yang akan dipublish ke internet. Disamping itu, koneksi internet 1 mega tersebut akan di share, untuk semua komputer di eth2 akan dibatasi pemakaiannya maksimal 10kbps. Berikut contoh sederhana routin firewallnya
#/bin/bash
#blok semua address (default), pada dasarnya semua akses di blok
iptables –P INPUT –j DROP
#bersihkan table
iptables –F
iptables –t nat –F
iptables –t mangle -F
#perkecualian dengan syarat tertentu
iptables -A INPUT -d 192.168.1.0/24 -m limit –limit 10/s –limit-burst 20 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -m limit –limit 10/s –limit-burst 20 -j ACCEPT
iptables –t nat –A POSTROUTING –s 192.168.0.0/24 –j MASQUERADE
iptables –t nat –A POSTROUTING –s 192.168.1.0/24 –j MASQUERADE
#forward webserver dan intranet
iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 80 -j DNAT –to 192.168.0.10:80
iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 88 -j DNAT –to 192.168.0.12:80
#redirect ke squid
iptables –t nat –A PREROUTING –s 192.168.10.0/24 -p tcp –dport 80 -j REDIRECT –to-port 3128
iptables –t nat –A PREROUTING –s 192.168.10.1/24 -p tcp –dport 80 -j REDIRECT –to-port 3128
=========================================================================================
Semoga bermanfaat