15.5.07

FreeBSD 6.1 + PF Transparent Proxy + Squid 2.6

FreeBSD 6.1 + PF Transparent Proxy + Squid 2.6 Print
Tuesday, 27 March 2007

by : godril ( godril@indofreebsd.or.id )This e-mail address is being protected from spam bots, you need JavaScript enabled to view it

Latar Belakang
Seorang teman menginginkan untuk menerapkan transparent proxy untuk semua host yang ada di LAN kantornya, kecuali untuk beberapa host yang memang sangat penting trafiknya untuk tidak dilewatkan ke transparent proxy.
Karena satu hal dan lain sebagainya, susunan jaringan yang berjalan adalah sebagai berikut:

pf transparent proxy

Oke, memang tampak aneh karena seharusnya mikrotik menjadi router utama menjadi gateway ke internet sedangkan seharusnya sebuah cache server tidak berada di sana, di posisi paling depan menghadap ke internet. Ceritanya panjang sekali, but whatever it is, yang jadi permasalahan sekarang adalah bagaimana setting cache server untuk jaringan yang agak unik tersebut.

Asumsi


* OS yang digunakan adalah FreeBSD 6.x

* Langkah-langkah konfigurasi Squid dan PF secara umum tidak akan dibahas di sini, karena bisa didapat dengan search di internet. Yang akan dibahas hanya konfigurasi yang dibahas saja.

* Tidak menggunakan server produksi sebagai percobaan

* Use with your own cautions!

Setup

Yang pertama terpikirkan oleh saya bahwa saya akan menggunakan versi Squid terbaru untuk software proxy yang akan diinstall. Sebuah proxy/cache server memerlukan sebuah mesin yang cukup powerfull. Demikian juga instalasi ini menggunakan mesin yang cukup kuat untuk dijadikan proxy:

shell> dmesg |less
Copyright (c) 1992-2006 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 6.1-RELEASE #0: Fri Jan 12 10:14:59 WIT 2007
root@somewhere:/usr/obj/usr/src/sys/KERNEL-SMP
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Xeon(TM) CPU 2.80GHz (2800.11-MHz 686-class CPU)
Origin = "GenuineIntel" Id = 0xf43 Stepping = 3
Features=0xbfebfbff
E2,SS,HTT,TM,PBE>
Features2=0x641d>
AMD Features=0x20100000
Logical CPUs per core: 2
real memory = 1073152000 (1023 MB)
avail memory = 1041035264 (992 MB)



Setelah saya lihat mesin diatas cukup bagus untuk proxy, saya melanjutkan ke direktori /usr/ports/www/squid dan menjalankan perintah:

shell> make fetch


Perintah tersebut hanya akan mengambil source Squid yang kemudian akan diletakkan di bawah direktori /usr/ports/distfiles. Waktu saya fetch, saya mendapatkan versi squid-2.6.STABLE9.tar.bz2

Setelah itu file tersebut saya pindah kan ke /usr/local/src, yaitu direktori yang sering saya gunakan untuk menaruh semua file source dan melakukan kompilasi dari sana.

shell> cd /usr/ports/distfiles
shell> mv squid-2.6.STABLE9.tar.bz2 /usr/local/src
shell> cd /usr/local/src
shell> tar -zxvf squid-2.6.STABLE9.tar.bz2
shell> cd squid-2.6.STABLE9
shell> ./configure --prefix=/usr/local/squid --enable-pf-transparent
shell> make && make install clean distclean



Catatan:
Option ./configure di atas bisa disesuaikan dengan kebutuhan masing-masing. Contoh di atas akan menempatkan semua base instalasi di bawah direktori /usr/local/squid. Karena bertujuan untuk digunakan sebagai transparent proxy dengan firewall pf, maka di sini ditambahkan opsi --enable-pf-transparent.

squid.conf

Selanjutnya adalah mengkonfigurasi Squid agar dapat menjalankan fungsinya sebagai transparent proxy. Di sini agak berbeda dengan versi sebelum Squid 2.6.x. Versi yang sebelumnya (Squid 2.5.x kebawah) menggunakan konfigurasi yang nampak seperti:

httpd_accel_host virtual
httpd_accel_port 80
httpd_accel_with_proxy on
httpd_accel_uses_host_header on



Sedangkan pada versi Squid 2.6.x, konfigurasi yang digunakan adalah:

http_port 10.0.0.1:3128 transparent



Baris tersebut mengatakan bahwa daemon Squid dibind ke interface dengan ip address 10.0.0.1 dan port 3128. Jadi jika di scanport di interface lain, port tersebut tidak akan terdeteksi. Sebuah contoh dari konsep Security through obscurity :-P.

Setting PF

Beberapa host di bawah mesin mikrotik sengaja tidak diproxy dengan alasan tertentu, sedangkan selain host-host tersebut, akan dilewatkan proxy. Pada gambar diagram, host-host tersebut dikelompokkan menjadi dua kelompok yaitu Proxied Hosts dan Non-Proxied Hosts (terdiri dari host dengan ip address: 192.168.1.84, 192.168.1.106, dan 192.168.1.100). Jadi konfigurasinya adalah:

table {192.168.1.100,192.168.1.106, 192.168.1.84}
table { 192.168.1.0/16 }
set skip on lo0

rdr pass on $extif proto tcp from ! to ! port {80,8080,3128} \
-> 10.0.0.1 port 3128 #transparent proxy
nat from { 192.168.1.0/16 } to ! -> ($extif)

Router FreeBSD

Router FreeBSD

edit kernel anda, tambahkan options seperti dibawah ini:

---------------kernel----------------------------

#natd

options IPDIVERT

#filter & transparant

options IPFILTER

options IPFILTER_LOG

options IPFIREWALL

options IPFIREWALL_VERBOSE

options IPFIREWALL_VERBOSE_LIMIT

options IPFIREWALL_FORWARD

#beberapa options lainnya untuk memacu performa

options NBUF=4096

options NMBCLUSTERS=8192

---------kernel---------------------------------

edit rc.conf Kompilasi Kernel

cd /usr/src/sys/i386/conf

config GENERIC

cd ../compile/GENERIC

make cleandepend && make depend && make && make install && reboot

-------------------------------------------------------------

----------rc.conf-------------------------------

#firewall ,

firewall_enable="YES"

firewall_type="OPEN"

gateway_enable="YES"

#natd (rl0 adalah lan ip luar / PUBLIC IP)

natd_enable="YES"

natd_interface="rl0"

inetd_enable="YES"

#named (untuk resolve dns)

named_enable="YES"

#squid

Squid_enable="YES"

Membangun Mesin DVB Dengan Linux

Membangun Mesin DVB Dengan Linux

Membangun Mesin DVB Dengan Linux

Instalasi Linux Secara Umum.

Pada dasarnya kita menyiapkan dulu mesin dengan OS linux seperti RedHat, Mandrake,

Debian, Slackware, atau linux lainnya. Cara installnya pun tidak jauh beda, package-packagenya

juga hampir sama, hanya tiap OS linux mempunyai cara instalasi sendiri.

Di sini contoh menggunakan OS RedHat 7.3 yang notabene stable dan ringan untuk aplikasi

server/router sehingga tidak terlalu banyak proccess yang harus dijalankan.

Packages yang harus ada/exist untuk disiapkan sebagai mesin server/router adalah sebagai

berikut:

- Minimalisasi tanpa X Windows, Gnome, Kde, printing, sound, multimedia, dll.

- Yang harus ada Group packages untuk Advanced Router, Firewall, DNS, Utility,

Software Development, Libraries.

- Usahakan untuk memakai/mengaktifkan option Select Individual Packages agar bisa

memilih packages program tambahan.

- Packages tambahan yang harus ada antara lain sebagai berikut:

o Mc. Ini visual shell yang mirip file manager, include command mcedit untuk

editor file.

o Snmp. Protokol untuk network management. Bisa memakai ucd-snmp atau yang

terbaru net-snmp juga dengan utils-nya juga ucd-snmp-utils atau net-snmputils.

o Lynx. Text browser untuk browsing di console.

o Iptraf. Console-based network monitoring utility.

- Packages tambahan lain (Optional) jika ingin mengembangkan:

o Mrtg. Ini tool untuk memonitor traffic dengan mengambil data dari snmp yang

kemudian ditampikan dalam bentuk grafik html.

o Apache. Webserver yang dipake untuk menampilkan grafik dari mrtg.

o Squid. Aplikasi untuk cache proxy server.

Jika sudah selesai instalasi, masuk dengan login ROOT dan passwordnya.

Edit configurasi program dalam startup:

- Ketik : setup

- Aktifkan snmp, dan non-aktifkan program-program seperti apmd, atd, gpm.

Edit modules nya untuk meminimalisasi pemakaian IRQ. Ini penting nantinya untuk DVB

karena IRQ Pentavalue tidak boleh sharing/conflig.

mcedit /etc/modules.conf

Buang option : parport dan usb-uhci dengan memberi pagar (#) depannya

Jika untuk SSH nya di set root login = NO, maka untuk SSH user akan selalu di suruh ngetik full

path walau sudah su.

mcedit /etc/ssh/sshd_config

ubah bagian ini menjadi no:

PermitRootLogin no

Maka untuk mengakalinya menggunakan cara ini:

- Sebelum create new user, edit dulu /etc/skel/.bash_profile dan tambahin isinya menjadi

sbb:

mcedit /etc/skel/.bash_profile

Tambahin bagian path menjadi:

PATH=$PATH:$HOME/bin:/sbin:/bin:/usr/sbin:/usr/bin

-

- Jika sudah terlanjur create user misal media, maka yang diedit adalah /

home/media/.bash_profile dan isikan sama seperti diatas.

mcedit /home/media/.bash_profile

Untuk mengaktifkan sudo, yang dilakukan adalah sebagai berikut:

- edit /etc/sudoers dengan command dan

mcedit /etc/sudoers

- Aktifkan 2 hal dibawah ini:

# Uncomment to allow people in group wheel to run all commands

%wheel ALL=(ALL) ALL

# Same thing without a password

%wheel ALL=(ALL) NOPASSWD: ALL

Kemudian masukkan user yang akan dimasukkan dalam daftar sudoers ke dalam group wheel

(root) dengan cara:

usermod –G 10 media

Kompilasi Kernel

Compile kernel sebenarnya ditujukan untuk optimasi program-program di linux (advanced user).

Tanpa compile kernel pun sudah jalan.

Hal yang perlu diperhatikan dalam compile kernel adalah:

- Kita mengetahui benar hardware komputer yang bersangkutan seperti processor,

motherboard, sound card, ethernet card, dll.

- Kita mengetahui linux secara keseluruhan, apa yang kita butuhkan dan apa tidak.

- Hal yang paling penting adalah Kita mengetahui apa saja yang kita setting, karena jika

tidak, keinginan kita untuk optimasi tidak berhasil malah jadi hancur, yang ditandai

dengan kernel panic pada waktu booting.

Langkah-langkah yang harus dilakukan, ketik sbb:

Ambil source linux terbaru versi 2.4 (linux-2.4.22.tar.bz2 ) atau 2.6 (linux-2.6.4.tar.bz2)

Taruh file tersebut di /usr/src kemudian extract

tar jxpf linux-2.4.22.tar.bz2

Bikin link linux biar mudah, juga untuk kepentingan compile DVB nanti.

ln –s linux-2.4.22 linux

Sehingga untuk selanjutnya tidak usah masuk ke directory /usr/src/linux-2.4.22, tapi

tinggal langsung ke /usr/src/linux

cd /usr/src/linux

make menuconfig

Lakukan pemilihan menu mana yang diaktifkan, mana yang sebagai modules dan mana yang

dinon-aktifkan.

(Tidak saya include-kan di sini karena optionnya sangat banyak sekali. Karena itu ini untuk

ADVANCE USER).

Pada intinya yang diaktifkan adalah:

- Driver untuk masing-masing hardware yang kita punya baik itu processor, motherboard,

soundcard dan ethernet card 10/100 Mbps..

- Aktifkan File system sepert ReiserFS, Ext3, Ext2. Juga jika ingin mengaktifkan partisi

windows agar bisa dibaca di linux, aktifkan Fat, Fat95.

- Aktifkan Option untuk NAT (Network Address Translation), Firewall dan Advance

routing.

- Bisa juga jika menginginkan tambahan untuk management bandwidth, aktifkan QOS

packer scheduler bisa memakai CBQ atau HTB.

Setelah selesai memilih semuanya, pilih exit dan save.

Kemudian ketik:

make dep

make bzImage

make modules

make modules_install

Setelah semuanya berhasil dengan baik, tidak ada error, kita tinggal mengkopikan hasilnya ke /

boot:

cp System.map /boot/System-map-DVB

cp arch/i386/boot/bzImage /boot/vmlinuz-DVB

Setelah itu edit /etc/lilo.conf seperti dibawah ini, tambahan dibawah sendiri.

mcedit /etc/lilo.conf

prompt

timeout=10

default=DVB

boot=/dev/hda

map=/boot/map

install=/boot/boot.b

message=/boot/message

linear

image=/boot/vmlinuz-2.4.18-3

label=linux

initrd=/boot/initrd-2.4.18-3.img

read-only

root=/dev/hda1

image=/boot/vmlinuz-DVB

label=DVB

read-only

root=/dev/hda1

Setelah selesai edit, jalankan menggunakan perintah:

lilo –v

Jika hasilnya seperti dibawah ini, berarti tambahan di lilo sukses:

LILO version 21.4-4, Copyright (C) 1992-1998 Werner Almesberger

'lba32' extensions Copyright (C) 1999,2000 John Coffman

Reading boot sector from /dev/hda

Merging with /boot/boot.b

Mapping message file /boot/message

Boot image: /boot/vmlinuz-2.4.18-3

Mapping RAM disk /boot/initrd-2.4.18-3.img

Added linux

Boot image: /boot/vmlinuz-dvb

Added dvb *

/boot/boot.0300 exists - no backup copy made.

Writing boot sector.

========================
Instalasi DVB
=================================
Dalam hal ini kita memakai Pentavalue card.

Ambil source terbaru pentaval untuk RedHat: pentaval-RHx-2.1.10_021111.tar.gz atau untuk

selain RedHat memakai pentaval-2.1.10_021111.tar.gz.

Extract file tsb dan jalankan command di bawah ini:

tar zxpf pentaval-RHx-2.1.10_021111.tar.gz

cd pentaval-RHx-2.1.10

autoheader

autoconf

aclocal

automake

./configure

make

make install

Jika sudah selesai dan berhasil, copykan file pentavalm, pentavalt dan pentavald ke /bin agar

mudah untuk execute nya.

cp pentaval* /bin/

Kemudian buat file /etc/pentaval.conf dengan isinya (dengan konfigurasi satelit Agila2):

[Transponder]

SatName=Agila2

Name=Trans1

Frequency=3660.000000

Symbol rate=15.000000

Polar=HOR

Band=C

22Khz=Off

LnbPower=On

Viterbi=3/4

;Aviterbi lists -> 1/2, 2/3, 3/4, 5/6, 7/8, Auto

LnbType=Universal

;LNB type lists -> None, 9300, 9750, 10000, 10600, 10750, 11300,

Universal

DISEqC=None

;DISEqC lists -> None, Port1, Port2 ~ Port16

Count=2

PID0=585

;PID0=516

;PID1=512

AutoPID=Off

CrcChecksum=Off

[Option]

SIP Count=0

;SIP0=4.5.6.7

;SIP1=1.2.3.4

;SIP2=0.0.0.0

;VMAC0=00:30:1D:00:41:B2

;VMAC0=00:D0:C1:01:12:57

[End]

kemudian buat file /etc/init.d/pentaval untuk init runningnya:

#!/bin/bash

# PENTAVAL

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

export PATH

# Source function library.

. /etc/rc.d/init.d/functions

# Source networking configuration.

. /etc/sysconfig/network

# Check that networking is up.

[ ${NETWORKING} = "no" ] && exit 0

# check if the pentaval conf file is present

[ -f /etc/pentaval.conf ] || exit 0

pentavalt=/bin/pentavalt

pentavald=/bin/pentavald

pentavalm=/bin/pentavalm

prog="pentaval"

RETVAL=0

start() {

echo -n $"Starting $prog: "

$pentavalt -a -d pentaval0 -f /etc/pentaval.conf

RETVAL=$?

# [ $RETVAL -eq 0 ] && echo_success

# [ $RETVAL -ne 0 ] && echo_failure

echo

return $RETVAL

}

stop() {

echo -n $"Stopping $prog: "

$pentavalt -q

RETVAL=$?

# [ $RETVAL -eq 0 ] && echo_success

# [ $RETVAL -ne 0 ] && echo_failure

echo

return $RETVAL

}

restart() {

stop

start

}

# See how we were called.

case "$1" in

start)

start

;;

stop)

stop

;;

status)

status $httpd

RETVAL=$?

;;

restart)

stop

start

;;

*)

echo $"salah mas"

echo $"Pakai ini mas: $prog {start|stop|restart}"

exit 1

esac

exit $RETVAL

Chmod file /etc/init.d/pentaval menjadi 755

chmod 755 /etc/init.d/pentaval

Kemudian jalankan perintah untuk restart device pentaval:

/etc/init.d/pentaval restart

Agar tiap reboot ulang device pentaval langsung start, tambahkan option ini di /etc/rc.local:

mcedit /etc/rc.local

tambahin:

/etc/init./pentaval start

Jika parabola sudah dipointing dengan benar arah satelitnya, maka tinggal menancapkan

kabelnya ke device pentaval di komputer.

Untuk monitoring ketik pentavalm, maka akan terdisplay seperti ini:

----------------------------------

Monitor for Pent@VALUE (Ver 1.0.1)

----------------------------------

[Driver/Device info]

# Device name : pentaval0

# Driver status : Enable

# Driver version : 2.1.a

# MAC address : 00:30:6a:80:66:41

[Rx data info]

# Total RX packets : 7219657

# RX data rate : 0.248[Mbps]

[Tuner info]

# LNB Lock status: lock

# Viterbi decoded BER : 0

# Signal to Noise Ratio: 8.409477 [dB]

# Reed Solomon Corrected errors: 26824

# Reed Solomon Uncorrected errors: 124

# CRC/Checksum errors: 34

# LLC/SNAP encapsulation: Disable

Press the 'q' key to finish it !

Penjelasan:

#Signal to Noise Ratio : menunjukkan signal dari parabola, semakin besar semakin bagus.

Standar minimum adalah 7 dB

#Total RX packets : 7219657. Jika ini lebih dari 0 packet, maka data sudah bisa lewat. Namun

juga tetap 0, ada 2 penyebab:

1. IRQ terjadi conflig atau sharing. Cara untuk melihatnya adalah dengan mengetik cat /

proc/interrupts

2. Beberapa komputer tidak compatible dengan pentaval seperti merk Compaq.

# RX data rate : 0.248[Mbps]. Ini menunjukkan current downstream bandwidth usage.

=======================
Konfigurasi SNMP
=======================

Mcedit /etc/snmp/snmp.conf

Isikan/rubah setingan menjadi seperti di bawah ini:

# sec.name source community

com2sec public 0.0.0.0/0 public

# groupName securityModel securityName

group mediaselaras v1 public

group mediaselaras v2c public

group mediaselaras usm public

# Third, create a view for us to let the group have rights to:

#group context sec.model sec.level prefix read write notif

access mediaselaras "" any noauth exact all none none

## incl/excl subtree mask

view all included .1 80

## -or just the mib2 treeview

mib2 included .iso.org.dod.internet.mgmt.mib-2 fc

# System contact information

syslocation Lokasi anda

syscontact info@mediaselaras.net

Dibawah ini beberapa site yang berhubungan dengan hal ini.

Source Kernel:

http://www.kernel.org/pub/linux/kernel/v2.4 <--- untuk versi 2.4 http://www.kernel.org/pub/linux/kernel/v2.6 <--- untuk versi 2.6 Source Pentaval: Untuk Redhat http://www.pentamedia.com/english/supports/down/Linux/pentaval-RHx-2.1.10_021111.tar.gz selain Redhat http://www.pentamedia.com/english/supports/down/Linux/pentaval-2.1.10_021111.tar.gz Beberapa source dan konfigurasi sudah disediakan, bisa diambil dari: http://www.mediaselaras.net/dvb/pentaval http://www.mediaselaras.net/dvb/pentaval.conf http://www.mediaselaras.net/dvb/pentaval-RHx-2.1.10_021111.tar.gz

Mikrotik Load Balancing

/ ip address
add address=10.0.160.254/24 network=10.0.160.0 broadcast=10.0.160.255 interface=ether1 comment="" \
disabled=no
add address=10.0.150.155/24 network=10.0.150.0 broadcast=10.0.150.255 interface=ether2 \
comment="" disabled=no
add address=192.168.100.188/24 network=192.168.100.0 broadcast=192.168.100.255 interface=ether3 \
comment="" disabled=no
/ ip firewall mangle
add chain=prerouting in-interface=ether1 connection-state=new nth=1,1,0 \
action=mark-connection new-connection-mark=odd passthrough=yes comment="" \
disabled=no
add chain=prerouting in-interface=ether1 connection-mark=odd action=mark-routing \
new-routing-mark=odd passthrough=no comment="" disabled=no
add chain=prerouting in-interface=ether1 connection-state=new nth=1,1,1 \
action=mark-connection new-connection-mark=even passthrough=yes comment="" \
disabled=no
add chain=prerouting in-interface=ether1 connection-mark=even action=mark-routing \
new-routing-mark=even passthrough=no comment="" disabled=no
/ ip firewall nat
add chain=srcnat connection-mark=odd action=src-nat to-addresses=10.0.150.155 \
to-ports=0-65535 comment="" disabled=no
add chain=srcnat connection-mark=even action=src-nat to-addresses=192.168.100.188 \
to-ports=0-65535 comment="" disabled=no
/ ip route
add dst-address=0.0.0.0/0 gateway=10.0.150.254 scope=255 target-scope=10 routing-mark=odd \
comment="" disabled=no
add dst-address=0.0.0.0/0 gateway=192.168.100.254 scope=255 target-scope=10 routing-mark=even \
comment="" disabled=no
add dst-address=0.0.0.0/0 gateway=192.168.100.254 scope=255 target-scope=10 comment="" \
disabled=no

dvb set routing

dvb set routing

*nat
:PREROUTING ACCEPT [1624:115710]
:POSTROUTING ACCEPT [1:124]
:OUTPUT ACCEPT [247:18549]
#-A POSTROUTING -d 202.0.0.0/255.0.0.0 -j SNAT --to-source 61.8.75.28
#-A POSTROUTING -d 61.8.64.0/255.255.240.0 -j SNAT --to-source 61.8.75.28
#-A POSTROUTING -d 203.130.192.0/255.255.224.0 -j SNAT --to-source 61.8.75.28
-A POSTROUTING -d 202.0.0.0/255.0.0.0 -j SNAT --to-source 222.124.182.35
-A POSTROUTING -d 61.8.64.0/255.255.240.0 -j SNAT --to-source 222.124.182.35
-A POSTROUTING -d 203.130.192.0/255.255.224.0 -j SNAT --to-source 222.124.182.35
-A POSTROUTING -d 0.0.0.0/0.0.0.0 -j SNAT --to-source 202.51.63.82


[root@localhost root]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:15:E9:F0:32:DB
inet addr:10.0.160.254 Bcast:10.0.160.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:4945 errors:0 dropped:0 overruns:0 frame:0
TX packets:5426 errors:405 dropped:0 overruns:0 carrier:810
collisions:35 txqueuelen:100
RX bytes:989404 (966.2 Kb) TX bytes:4213947 (4.0 Mb)
Interrupt:11

eth1 Link encap:Ethernet HWaddr 00:15:E9:6A:23:7F
inet addr:222.124.182.35 Bcast:222.124.182.39 Mask:255.255.255.248
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2233 errors:0 dropped:0 overruns:0 frame:0
TX packets:6551 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:564876 (551.6 Kb) TX bytes:1140146 (1.0 Mb)
Interrupt:5 Base address:0x2000

eth1:1 Link encap:Ethernet HWaddr 00:15:E9:6A:23:7F
inet addr:202.51.63.82 Bcast:202.51.63.87 Mask:255.255.255.248
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
Interrupt:5 Base address:0x2000

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:4 errors:0 dropped:0 overruns:0 frame:0
TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:296 (296.0 b) TX bytes:296 (296.0 b)

pentaval0 Link encap:Ethernet HWaddr 00:30:6A:80:B8:2F
inet addr:10.1.1.2 Bcast:255.255.255.255 Mask:255.255.255.255
UP BROADCAST RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:5658 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:4394629 (4.1 Mb) TX bytes:0 (0.0 b)
Interrupt:9 Base address:0xd000

[root@localhost root]# more /etc/sysconfig/network-scripts/ifcfg-eth1:1
DEVICE=eth1:1
ONBOOT=yes
BOOTPROTO=static
IPADDR=202.51.63.82
NETMASK=255.255.255.248

[root@localhost root]# more /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
ONBOOT=yes
BOOTPROTO=static
#IPADDR=61.8.75.28
#IPADDR=10.0.150.254
IPADDR=222.124.182.35
NETMASK=255.255.255.248
# GATEWAY=61.8.75.25
GATEWAY=222.124.182.33

Memisahkan Bandwidth Lokal dan International menggunakan Mikrotik

Image

Memisahkan Bandwidth Lokal dan International menggunakan Mikrotik

Versi 3
Perubahan dari versi sebelumnya:
  1. Proses mangle berdasarkan address-list
  2. Pemisahan traffic Indonesia dan overseas lebih akurat
Semakin berkembangnya konten Internet lokal di Indonesia telah memberikan peluang bisnis baru dalam industri Internet di Indonesia. Saat ini banyak Internet Service Provider
(ISP) yang
menawarkan paket bandwidth lokal atau IIX yang lebih besar dibandingkan bandwidth Internet Internasional, hal ini seiring dengan semakin banyaknya pengelola RT-RW Net yang mampu menyediakan layanan koneksi Internet yang lebih terjangkau bagi lingkungan sekitarnya.
Permasalahan umum yang terjadi pada jaringan RT-RW Net adalah masalah pengaturan bandwidth. Pada umumnya pengelola RT-RW Net akan kesulitan pada saat ingin memisahkan antara traffic lokal dengan traffic internasional karena umumnya jaringan RT-RW Net hanya menggunakan static routing, berbeda dengan ISP yang mampu membangun jaringan yang lebih komplek menggunakan protocol routing BGP sehingga ISP dapat dengan mudah memisahkan antara traffic local dan internasional.
Untuk memisahkan traffic lokal dengan traffic internasional tersebut RT-RW Net dapat dengan mudah menggunakan PC Router + Sistem Operasi Mikrotik, Mikrotik sebenarnya adalah linux yang sudah di buat sedemikian rupa oleh pengembangnya sehingga sangat mudah diinstall dan di konfigur dengan banyak sekali fitur dan fungsi. Untuk lebih lanjut mengenai mikrotik dapat dilihat pada situs webnya http://www.mikrotik.com atau http://www.mikrotik.co.id



Berikut adalah sekenario jaringan dengan Mikrotik sebagai router
Gambar 1. Sekenario Jaringan

Penjelasan:

  1. Mikrotik Router dengan 2 Network Interface Card (NIC) Ether1 dan Ether3, dimana Ether1 adalah Ethernet yang terhubung langsung ke ISP dan Ether3 adalah Ethernet yang terhubung langsung dengan jaringan 192.168.2.0/24
  2. Bandwidth dari ISP misalnya 256Kbps internasional dan 1024Kbps lokal IIX
  3. Komputer 192.168.2.4 akan diberi alokasi bandwidth 128Kbps internasional dan 256Kbps lokal IIX

Untuk memisahkan antara traffic lokal IIX dengan traffic internasional caranya adalah dengan menandai paket data yang menuju atau berasal dari jaringan lokal IIX menggunakan mangle. Pertanyaannya bagaimana caranya Mikrotik bisa mengetahui paket tersebut menuju atau berasal dari jairngan lokal IIX?

Jawabannya adalah dengan mengambil data dari http://lg.mohonmaaf.com
Pilih Query dengan men-cek-list BGP dan klik Submit

Image

Gambar 2. Hasil Query http://lg.mohonmaaf.com untuk perintah “show ip bgp”

Fungsi dari http://lg.mohonmaaf.com adalah sebagai fasilitas looking glass jaringan lokal yang dikelola oleh PT. IDC , terima kasih kepada Bapak Johar Alam yang telah menyediakan layanan tersebut.

Dari hasil query tersebut selanjutnya simpan sebagai text files untuk selanjutnya dapat diolah dengan menggunakan spreadsheet contohnya Ms. Excel untuk mendapatkan semua alamat Network yang diadvertise oleh router-router BGP ISP lokal Indonesia pada BGP router IDC atau National Inter Connection Exchange (NICE).

Pada penjelasan versi-2 dokumen ini saya menggunakan teknik langsung memasukkan daftar ip blok ke /ip firewall mangle, dengan teknik ini saya harus memasukkan dua kali daftar ip yang didapat dari router NICE ke /ip firewall mangle.

Cara lain yang lebih baik adalah dengan memasukkan daftar ip blok dari router NICE ke /ip firewall address-list dengan demikian maka pada /ip firewall mangle hanya terdapat beberapa baris saja dan pemisahan traffic Indonesia dan overseas dapat lebih akurat karena mangle dapat dilakukan berdasarkan address-list saja.

Lebih jelasnya adalah sbb:

Selanjutnya buat script berikut untuk dapat diimport oleh router Mikrotik

/ ip firewall address-list
add list=nice address=58.65.240.0/23 comment="" disabled=no
add list=nice address=58.65.242.0/23 comment="" disabled=no
add list=nice address=58.65.244.0/23 comment="" disabled=no
add list=nice address=58.65.246.0/23 comment="" disabled=no
add list=nice address=58.145.174.0/24 comment="" disabled=no
add list=nice address=58.147.184.0/24 comment="" disabled=no
add list=nice address=58.147.185.0/24 comment="" disabled=no
dst…


untuk mendapatkan script diatas dapat melalui URL berikut:

http://www.datautama.net.id/harijanto/mikrotik/ip_firewall_address_list_nice.php

URL diatas secara online akan melakukan query ke router NICE dari http://lg.mohonmaaf.com

dari hasil URL diatas copy lalu paste ke mikrotik dengan menggunakan aplikasi putty.exe ssh ke ipmikrotik tersebut, caranya setelah di copy teks hasil proses URL diatas lalu klik kanan mouse pada jendela ssh putty yang sedang meremote mikrotik tersebut. Cara ini agak kurang praktis tetapi karena jika script diatas dijadikan .rsc ternyata akan bermasalah karena ada beberapa baris ip blok yang saling overlap sebagai contoh:

\... add address=222.124.64.0/23 list="nice"
[datautama@router-01-jkt] > /ip firewall address-list \
\... add address=222.124.64.0/21 list="nice"
address ranges may not overlap

dimana 222.124.64.0/21 adalah supernet dari 222.124.64.0/23 artinya diantara dua blok ip tersebut saling overlap, sehingga pada saat proses import menggunakan file .rsc akan selalu berhenti pada saat menemui situasi seperti ini.
Sampai saat ini saya belum menemukan cara yang praktis utk mengatasi hal tersebut diatas.Kalau saja kita bisa membuat address-list dari table prefix BGP yang dijalankan di mikrotik maka kita bisa mendapatkan address-list dengan lebih sempurna.
Selanjutnya pada /ip firewall mangle perlu dilakukan konfigurasi sbb:

/ ip firewall mangle
add chain=forward src-address-list=nice action=mark-connection \
new-connection-mark=mark-con-indonesia passthrough=yes comment="mark all \
indonesia source connection traffic" disabled=no
add chain=forward dst-address-list=nice action=mark-connection \
new-connection-mark=mark-con-indonesia passthrough=yes comment="mark all \
indonesia destination connection traffic" disabled=no
add chain=forward src-address-list=!nice action=mark-connection \
new-connection-mark=mark-con-overseas passthrough=yes comment="mark all \
overseas source connection traffic" disabled=no
add chain=forward dst-address-list=!nice action=mark-connection \
new-connection-mark=mark-con-overseas passthrough=yes comment="mark all \
overseas destination connection traffic" disabled=no
add chain=prerouting connection-mark=mark-con-indonesia action=mark-packet \
new-packet-mark=indonesia passthrough=yes comment="mark all indonesia \
traffic" disabled=no
add chain=prerouting connection-mark=mark-con-overseas action=mark-packet \
new-packet-mark=overseas passthrough=yes comment="mark all overseas \
traffic" disabled=no


Langkah selanjutnya adalah mengatur bandwidth melalui queue simple, untuk mengatur bandwidth internasional 128Kbps dan bandwidth lokal IIX 256Kbps pada komputer dengan IP 192.168.2.4 dapat dilakukan dengan contoh script sbb:

/ queue simple
add name="harijant-indonesia" target-addresses=192.168.2.4/32 \
dst-address=0.0.0.0/0 interface=all parent=none packet-marks=indonesia \
direction=both priority=8 queue=default/default limit-at=0/0 \
max-limit=256000/256000 total-queue=default disabled=no
add name="harijanto-overseas" target-addresses=192.168.2.4/32 \
dst-address=0.0.0.0/0 interface=all parent=none packet-marks=overseas \
direction=both priority=8 queue=default/default limit-at=0/0 \
max-limit=128000/128000 total-queue=default disabled=no


Script diatas berarti hanya komputer dengan IP 192.168.2.4 saja yang di batasi bandwidthnya 128Kbps internasional (overseas) dan 256Kbps lokal IIX (indonesia) sedangkan yang lainnya tidak dibatasi.

Hasil dari script tersebut adalah sbb:

Image
Gambar 3. simple queue untuk komputer 192.168.2.4


Dengan demikian maka komputer 192.168.2.4 hanya dapat mendownload atau mengupload sebesar 128Kbps untuk internasional dan 256Kbps untuk lokal IIX.

Untuk mengujinya dapat menggunakan bandwidthmeter sbb:


Image
Gambar 4. Hasil bandwidth meter komputer 192.168.2.4 ke lokal ISP


Image
Gambar 5. Hasil bandwidth meter ke ISP internasional

Dengan demikian berarti Mikrotik telah berhasil mengatur pemakaian bandwidth internasional dan lokal IIX sesuai dengan yang diharapkan pada komputer 192.168.2.4.

Pada penjelasan versi-3 ini proses mangle terhadap traffic “overseas” dapat lebih akurat karena menggunakan address-list dimana arti dari src-address=!nice adalah source address “bukan nice” dan dst-address=!nice adalah destination address “bukan nice”.

Sehingga demikian traffic “overseas” tidak akan salah identifikasi, sebelumnya pada penjelasan versi-2 traffic “overseas” bisa salah indentifikasi karena traffic “overseas” di definisikan sbb

add connection-mark=mark-con-indonesia action=mark-packet new-packet-mark=indonesia chain=prerouting comment="mark indonesia"
add packet-mark=!indonesia action=mark-packet new-packet-mark=overseas chain=prerouting comment="mark all overseas traffic"

packet-mark=!indonesia artinya “packet-mark=bukan paket Indonesia”, padahal “bukan paket Indonesia” bisa saja paket lainnya yang telah didefinisikan sebelumnya sehingga dapat menimbulkan salah identifikasi.

Adapun teknik diatas telah di test pada router mikrotik yang menjalankan NAT , jika router mikrotik tidak menjalankan NAT coba rubah chain=prerouting menjadi chain=forward.
Untuk lebih lanjut mengenai pengaturan bandwidth pada Mikrotik dapat dilihat pada manual mikrotik yang dapat didownload pada

http://www.mikrotik.com/docs/ros/2.9/RouterOS_Reference_Manual_v2.9.pdf


Script diatas dapat diimplementasikan pada Mikrotik Versi 2.9.27 , untuk versi mikrotik sebelumnya kemungkinan ada perbedaan perintah.

Reference:


* http://www.mikrotik.com
* http://www.mikrotik.co.id
* http://wiki.mikrotik.com



Selamat mencoba.

Setting Network di OpenBSD

Setting Network di OpenBSD

I. Pengecekan network card



Pada tahap installasi kan kita sudah setting network jadi sebenarnya sudah tidak di perlukan setting lagi kecuali ada yang mau di rubah.



Coba kita gunakan command ifconfig

Gateway# ifcongfig –a

lo0: flags=8009 mtu 33224

inet 127.0.0.1 netmask 0xff000000

ne3: flags=8863 mtu 1500

media: Ethernet autoselect (10baseT)

inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255

pflog0: flags=141 mtu 33224

sl0: flags=c010 mtu 296

sl1: flags=c010 mtu 296

ppp0: flags=8010 mtu 1500

ppp1: flags=8010 mtu 1500

tun0: flags=10 mtu 3000

tun1: flags=10 mtu 3000

enc0: flags=0<> mtu 1536

bridge0: flags=0<> mtu 1500

bridge1: flags=0<> mtu 1500

vlan0: flags=0<> mtu 1500

vlan1: flags=0<> mtu 1500

gre0: flags=8010 mtu 1450

gateway#



coba liat network interface yang ada ne3 sudah terpasang address dengan ip 192.168.0.1 dengan netmask 0xffffff00 = 255.255.255.0



berarti network card kita udah up sekarang test untuk memastikan apa benar benar up.

Lakukan command ping untuk local LAN anda

Contoh :

Gateway# ping 192.168.0.100

PING 192.168.0.100 (192.168.0.100): 56 data bytes

64 bytes from 192.168.0.100: icmp_seq=0 ttl=128 time=0.644 ms

64 bytes from 192.168.0.100: icmp_seq=1 ttl=128 time=0.509 ms

64 bytes from 192.168.0.100: icmp_seq=2 ttl=128 time=0.469 ms



nah berarti network sudah jalan sukses selamat anda layak di cium om obsd :P



nah kalu masih blom isa gimana ? berarti anda gagal dalam instalasi network pada saat install jadi gimana donk ?? yah udah gini aja



sekarang kamu bisa man ifconfig untuk lebih jelasnya



tapi pastikan kalu Ethernet card situ emang terpasang dengan benar kabel UTP HUP atau router dengan baik. Dan pastinya ke detect ama openbsd anda.



Cara cecknya liat lah dmesg mu

Gateway# dmesg | more

Cari yang berbau bau merek network card situ seperti ini :



ne3 at pci0 dev 9 function 0 "Realtek 8029" rev 0x00: irq 11

ne3: address 00:80:c8:c2:c4:65



berarti network interface daku ne3 . yah sutra lakukan edit manual dengan ifconfig atau dengan mengedit langsung file di /etc yaitu hostname.ne3 < forwarding="1" 1="Permit" forwarding="1" 1="Permit" forwarding="1"> 1



selesai jadi deh computer situ sebagai gateway J





III. IP alias





Pada mesin BSD anda tentu ada kala nya anda perlu lebih dari 1 ip address elo karena itu di obsd juga dapat anda lakukan yaitu dengan cara :



Anda dapat lakukan dengan ifconfig . man ifconfig untuk melakukan ini

Atau langsung dengan menedit file /etc/hostname.xxx



Cara :

Gateway# vi /etc/hostname.ne3

inet 192.168.0.1 255.255.255.0 NONE

inet alias 192.168.0.200 255.255.255.0 NONE



ifconfig :

gateway# ifconfig ne3 inet alias 192.168.0.200 netmask 255.255.255.0



setelah itu reboot mesin anda dan coba liat dengan command ifconfig –a apakah ip alias sudah terpasang di network interface ne3

zte c300 trunk mode

  gpon   profile tcont PPPOE type 4 maximum 9900000   profile tcont 100M type 4 maximum 100000   profile tcont 50M-TRUNK type 4 maximum 5000...