On Tue, 26 Feb 2002, Harry wrote:

> > jadi ide anda untuk memilih link dari dua ISP berbeda, _definitely_ not
> work
> > (asumsi: ISP has properly configured their network :-)
>
> justru krn ini, gua pertamanya penasaran 'n gak bisa tidur,
> coba liat
>
> > 6. IP ROUTE2 manipulasi
> > no, iproute2 bekerja di layer 3 (IP) full
>
>
> that's ok iproute2 bekerja full di layer3 OSI,  tetapi iproute2 manipulation
> setengah layer 2 setengah layer 3 (eql bekerja pada layer2 shg tidak bisa
> menyaring/filter), ini juga setengah bisa filter tp stgh gak bisa, jd
> load-balancingnya gak sempurna sebetulnya ...manipulasi doank.

apa yang dimaksud dengan _manipulasi_, terus terang saya belum paham
pernyataan ini. lagian iproute2 tidak untuk load balancing melainkan
routing table maintenance (ip) dan traffic conditioner tool (tc).

>
> >  (internet)--(ISP1)----\
> >                         \ 192.168.1.2 (eth0)
> >                          ---(                ) 10.16.1.1
> >                             (linux router    )----------| local network
> >                          ---(                )
> >                         / 172.16.1.2 (eth1)
> >  (internet)--(ISP2)----/
>
> begini prinsipnya:
> 1. betul yg anda katakan, apabila source ip dr isp1 ya harus dr isp1
> receivenya,  tapi bagaimana cara menggilir source ip tsb diantara
> paket-paket ?

menggilir? kayak _anu_ saja ;-)

> 2. gimana sih sebetulnya aliran paket dr routing system?
> 3. beberapa program tidak bisa assign ip external interface, yg melakukan
> ini adalah routing system..tapi bbrp lagi bisa seperti ping using bind(2)
> call, ttp bagaiman routing bisa membuat/assign ip ini? (nah kalo doi bisa
> masak kita gak bisa gantiin)
>

routing system tidak tergantung dengan aplikasi, ini adalah tugas kernel.
dalam kasus ini, routing decision diatur oleh tool: iproute2 dan iptables

> ketiga jawaban ini akan menuntun kita ke jalan yg benar...(hehehehe)
> dari prinsip ini, kita akan me'load balance' paket, consider this as
> experimental project:
>
> ip addr add 192.168.1.2 brd 255.255.255.255 dev eth0
> ip addr add 172.16.1.2 brd 255.255.255.255 dev eth1

iproute2 way:

# ip addr add 192.168.1.2/24 brd + dev eth0   <--- baca ipcref

>
> ip rule add prio 11 from 192.168.1.0 table 11
> ip route add default via 'gatewayisp1' dev eth0 src 192.168.1.2 proto static
> table 11
> ip route append prohibit default table 11 metric 1 proto static
>
> ip rule add prio 22 from 172.16.1.0 table 22
> ip route add default via 'gatewayisp2' dev eth1 src 172.16.1.2 proto static
> table 22
> ip route append prohibit default table 22 metric 1 proto static
>
> ip rule add prio 33 table 33
> ip route add default table 33 proto static \
> nexthop via 'gatewayisp1' dev eth0 \
> nexthop via 'gatewayisp2' dev eth1
>

ini logikanya bagaimana?, ingat tidak ada network 192.168.x.x dan
172.16.x.x dari diagram diatas. ip address tersebut merupaka ip dari isp,
sementara local network pake 10.x.x.x.

sekarang kalo skenarionya kita definisikan:
1. local network adalah 10.x.x.x
2. trafic http dan ftp melewati isp1, sisanya lewat isp2
3. ftp session hanya bisa passive (hanya untuk contoh ini)

langkah-langkah:
# ip addr add 192.168.1.2/24 brd + dev eth0
# ip addr add 172.16.1.2/24 brd + dev eth1
# ip addr add 10.16.1.1/24 brd + dev eth2
# ip route add default via 172.16.1.1 dev eth1

bikin rule symbol isp1
# echo "11 isp1" >> /etc/iproute2/rt_tables

bikin rule isp1
# ip rule add fwmark 1 table isp1

mark http/ftp sebagai 1 (yang lainnya unmarked)
# iptables -t mangle -A PREROUTING -p tcp -dport 80 -j MARK --set-mark 1
# iptables -t mangle -A PREROUTING -p tcp -dport 21 -j MARK --set-mark 1

bikin routing table isp1
# ip route add default via 192.168.1.1 dev eth0 table isp1

NAT rule
# iptables -t nat -A POSTROUTING -j SNAT -o eth0 --to-source 192.168.1.2
# iptables -t nat -A POSTROUTING -j SNAT -o eth1 --to-source 172.16.1.2

DISCLAIMER:
1. contoh-contoh diatas belum dicoba, resiko ditanggung sendiri
2. implementasi masih harus disempurnakan, keterangan lebih lanjut baca
dokumentasinya

salam

-- 
Yudhi Kusnanto (yudhi.akakom.ac.id) <-- change first . with @
STMIK Akakom Yogyakarta



-- 
Utk berhenti langganan, kirim email ke [EMAIL PROTECTED]
Informasi arsip di http://www.linux.or.id/milis.php3

Kirim email ke