Anda di halaman 1dari 6

Router&Bandwidth

ControlDengan
RaspberryPi

PostedonMarch3,2013byTedyTirtawidjaja

Akhirnya saya berhasil memanfaatkan RaspberryPimenjadi router dengan


kemampuan mengatur kuotabandwidthinternet. Saya ikuti beberapa petunjuk dari
sumbersumberberikutini:
http://www.debianadministration.org/articles/23
http://sirlagz.net/2013/01/27/howtoturntheraspberrypiintoa
shapingwifirouter/

Susunanjaringannyamenjadisepertiini:

PortEthernetbawaanRaspberryPi(eth0)menjadiportWANyangterhubung
langsungdenganmodeminternet.
AdapterUSBEthernet(eth1)menjadiportLANyangterhubungkeswitch.
WiFiTPLinktidaklagidipakaisebagaiDHCPserver.PortWANnyapuntidak
dipakai.Hanyadifungsikansebagaiaccesspoint.ClientmendapatIPaddress
dariRaspberry.KarenaWiFiinimenggunakanDDWRTsebagaisistem
operasinya,sayaharusmematikanDHCPserver&memilihuntuk
menggunakanDHCPForwarder.
IniadalahkonfigurasiIPdiRaspberryPi.
root@raspberrypi:~#cat/etc/network/interfaces
autolo

ifaceloinetloopback

autoeth0
ifaceeth0inetdhcp

autoeth1
ifaceeth1inetstatic
address192.168.10.1
netmask255.255.255.0
network192.168.10.0
broadcast192.168.10.255
dnsnameservers192.168.10.1
root@raspberrypi:~#

Port eth0 diset menggunakan IP dinamis, IPnya didapat dari modem FirstMedia.
Sementaraporteth1adalahportLANsehinggamenggunakanIPstatis.
Untuk menjadikan Raspberry sebagai DHCP server di jaringan lokal saya perlu
paketdnsmasq.
root@raspberrypi:~#aptgetinstalldnsmasq

Konfigurasidnsmasqsangatsimpelsepertiberikutini:
root@raspberrypi:~#cat/etc/dnsmasq.conf
interface=eth1
dhcprange=192.168.10.50,192.168.10.150,255.255.255.0,12h
root@raspberrypi:~#

SayahanyaperlumencantumkandiinterfacemanaDHCPserverakanberoperasi,
tentuiniinterfaceyangterhubungkeLAN.Dansatulagiopsiyang dhcprange,opsi
ini mendefinisikan alamat IP mana saja yang disediakan oleh DHCP server.
Sebenarnya masih banyak opsi yang bisa dipakai oleh dnsmasq, tapi untuk
keperluantestinihanyaituyangsayaperlukan.
Proses routing dijalankan oleh perintah iptables. Di website Debian
Administratorsudahadacontohscriptyangmemanfaatkan iptablessebagairouter
&jugasebagaifirewall.
root@raspberrypi:~#cat/etc/network/ifup.d/router
#!/bin/sh

PATH=/usr/sbin:/sbin:/bin:/usr/bin

#Notes:eth0=WANport/internet
#eth1=LANport
#
#deleteallexistingrules.
#
iptablesF

iptablestnatF
iptablestmangleF
iptablesX

#Alwaysacceptloopbacktraffic
iptablesAINPUTilojACCEPT

#Allowestablishedconnections,andthosenotcomingfromtheoutside
iptablesAINPUTmstatestateESTABLISHED,RELATEDjACCEPT
iptablesAINPUTmstatestateNEW!ieth0jACCEPT
iptablesAFORWARDieth0oeth1mstatestateESTABLISHED,RELATEDj

#AllowoutgoingconnectionsfromtheLANside.
iptablesAFORWARDieth1oeth0jACCEPT

#Masquerade.
iptablestnatAPOSTROUTINGoeth0jMASQUERADE

#Don'tforwardfromtheoutsidetotheinside.
iptablesAFORWARDieth0oeth0jREJECT

#Enablerouting.
echo1>/proc/sys/net/ipv4/ip_forward
root@raspberrypi:~#

Sementara untuk mengatur alokasi bandwidth aplikasi yang dipakai adalah tc.
Konsep yang diterapkan untuk mengatur alokasi bandwidth ini adalah HTB
(Hierarchical Token Bucket). Pengaturanbandwidthdilakukan dalam sistem hirarki.
Saya contoh apa yang dijelaskan di web ini. Ada beberapa modifikasi yang saya
tambahkan. Di web tadi hanya kecepatandownload yang dibatasi. Ternyata untuk
membatasi kecepatan upload, saya perlu tambahkan rule lain diport WANnya
(dalamcontohkasussayadiporteth0).

root@raspberrypi:~#cat/etc/network/ifup.d/tcscript
#!/bin/bash

#DOWNLOADLIMIT
tcqdiscadddeveth1roothandle1:0htbdefault10
tcclassadddeveth1parent1:0classid1:10htbrate256kbitceil256kbit
tcclassadddeveth1parent1:1classid1:5htbrate4864kbitceil4864kbi
tcfilteradddeveth1parent1:0prio1handle5fwflowid1:5

#UPLOADLIMIT
tcqdiscadddeveth0roothandle1:0htbdefault10
tcclassadddeveth0parent1:0classid1:10htbrate128kbitceil128kbit
tcclassadddeveth0parent1:1classid1:5htbrate4864kbitceil4864kbi
tcfilteradddeveth0parent1:0prio1handle5fwflowid1:5

iptablestmangleNshaperout
iptablestmangleNshaperin

iptablestmangleIPOSTROUTINGoeth1jshaperin
iptablestmangleIPREROUTINGieth1jshaperout
iptablestmangleIPREROUTINGieth0jshaperin
iptablestmangleIPOSTROUTINGoeth0jshaperout

iptablestmangleAshaperouts192.168.10.0/24jMARKsetmark1
iptablestmangleAshaperind192.168.10.0/24jMARKsetmark1

iptablestmangleAshaperouts192.168.10.129jMARKsetmark5
iptablestmangleAshaperind192.168.10.129jMARKsetmark5
root@raspberrypi:~#

Di contoh script di atas, saya buat skenario sederhana yaitu hanya IP


192.168.10.129
(IP
Macbook)
yang
diberi
akses
untuk
menggunakanbandwidthsampaimaksimum(45MB).

Sementarasemuaclientlaindalamjaringan192.168.10.0/24hanyabisamendapat
kecepatandownload256Kbps&kecepatanupload128Kbps.Ternyataberhasil,dan
inicontohnyahasiltestingdenganiPhone:

Kirakira
begitu
pemanfaatan
Raspberry
Pi
untuk
mengontrol
pemakaianbandwidth dalam jaringan. Masih banyak yang bisa dibahas dari topik
ini.

Anda mungkin juga menyukai