Topic: load balance dengan ubuntu

Assalamualaikum...
om om master yang keren2, mau nanya donk. jadi gini ceritanya, di kelas saya ada 2 koneksi speedy. speedy 1, pake modem wireless D-link. speedy 2, pake modem siemens 4200 yang perlu dial up (mode bridge).
niatnya pengen gabungin dua koneksi speedy itu jadi satu (dari internet tau namanya load balance hehe). servernya udah pake ubuntu 9.04 (soalnya katanya kang onno di portal CBN

http://portal.cbn.net.id/cbprtl/cyberte … ch|0|0|3|6

pake ubuntu bisa, gak perlu pake mikrotik). server menggunakan 3 ethernet, 2 dari speedy tadi terus yang satu buat nyebar koneksi pake LAN.
Nah masalahnya..udah banyak tutorial di internet dicoba tapi tetep belum berhasil. masih ada yang bingung, maklum namanya juga belajar.

yang pengan ditanyakan adalah:

1. setelah dari tutorialnya kang onno, untuk ngetest load balance'nya berhasil atau gak gamana?

2. setting buat client selanjutnya gimana? (ip, gateway dan DNS gmn?)

3. dari tutorialnya kang onno kayaknya gak ada pengaturan DNS dari 2 speedy itu, misal:
dari modem speedy 1, didapatkan ip 192.168.0.xyz dg gateway dan DNS 192.168.0.1
dari modem speedy 2, didapatkan ip 192.168.1.xyz dg gateway dan DNS 192.168.1.1

nah pengaturannya ip rule/route itu perlu DNS dari masing2 speedy gak? soalnya kalo menurut saya kok perlu ya? kalo perlu, settingnya gimana? atau apakah secara otomatis didapatkan DNS dari masing2 speedy tsb?

--------------------------------
kalo misalnya pake proxy didalamnya (buat web cache) gimana settingnya (terutama ip rule/route'nya)


yaudah kayaknya itu dulu, ntar mungkin nambah lagi hehehe kan lagi belajar. thx b4

2 (edited by si_faisal 27-05-2009 06:33:15)

Re: load balance dengan ubuntu

1. bisa dengan traceroute test dari client
    bisa juga di check dengan bandwidth monitor bwm-ng, apakah di kedua interface ada traffik atau tidak

2. setting untuk client tentu saja gateway dan dns diarahkan ke router ubuntu anda

3. coba tambahkan rules berikut
ip rule add to 192.168.0.xyz lookup table_SPEEDY1
ip rule add to 192.168.1.xyz lookup table_SPEEDY2

namun tentunya table SPEEDY1 dan 2 harus telah didefinisikan di /etc/rt_table dan diberikan masing2 default gateway untuk tiap2 table

tapi menurut saya sih kalo sama2 DNS satu provider, akan tetep bisa diakses dari speedy1 maupun speedy2

kecuali Providernya berbeda, dan memblok request DNS dari ISP lain,
jika seperti ini, bisa juga diakali dengan mengakses DNS yang mempbolehkan traffik dari semua alamat (OpenDNS atau DNS awari)

untuk proxy, silahkan diinstal saja squid nya, disini pernah beberapa kali diulas mengenai squid.
untuk rules ip rule nggak perlu dirubah kok.

Re: load balance dengan ubuntu

Oya, mungkin kasus-nya sama kayak si black4rez itu (persis banget)... Nah, kalo misal-nya salah ngasih rule/route-nya... Delete-nya rule/route-nya gmn mas???

Habis melakukan yang ada di tutorial kang Onno, ngetest dari router-nya bisa ga tho??? (misal, ping google.com). Soalnya, kmrn sehabis tak implementasikan rule/route-nya itu, saya ping ndak bisa....

Trus setelah itu karena IP-ethernet yang ke LAN (misal 192.168.3.xx/24). Alhasil, punya ide juga untuk coba setting di client dengan misal IP(192.168.3.2) Subnet Mask(255.255.255.0) IP Gateway dan DNS dari  komputer router (yaitu, 192.168.3.1) Tapi, dari client ping tetep ga mau jalan... 

Tak lihat di router-nya, "cat /etc/resolv.conf" DNS yang masuk cuman DNS lokal dari modem Speedy 1 (192.168.0.1). Apakah ada yang salah???

Terimakasih sebelumnya buat kk....

4 (edited by godhongenom 28-05-2009 20:58:37)

Re: load balance dengan ubuntu

Maaf, mas kalo pertanyaan-e banyak banget. Ini nginep di kampus malem2 ga bisa tidur mikir isinya routing table molo... Bentar, enaknya pertanyaan saya ttg load balance ubuntu masukkan thread baru atau di thread ini saja yah??

Gini, intinya sama persis dengan punya-e black4rez. Dan saya implementasikan. Dan ini hasil kerjaan saya

===================  START  ===============================
root@himaster-desktop:~# gedit /etc/network/interfaces
----/etc/network/interfaces------------
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.3.1
netmask 255.255.255.0

auto eth1
iface eth1 inet static
address 192.168.0.250
netmask 255.255.255.0

auto eth2
iface eth2 inet static
address 192.168.1.250
netmask 255.255.255.0
------------------------------------
root@himaster-desktop:~# /sbin/ip link set lo up
root@himaster-desktop:~# /sbin/ip link set eth0 up
root@himaster-desktop:~# /sbin/ip link set eth1 up
root@himaster-desktop:~# /sbin/ip link set eth2 up
root@himaster-desktop:~# gedit /etc/iproute2/rt_tables
------------------------------------
# reserved values
#
255    local
254    main
253    default
0    unspec
#
# local
#
#1    inr.ruhep

120 speedy1
121 speedy2
123 lan
------------------------------------

root@himaster-desktop:~# /sbin/ip route flush table speedy1
Nothing to flush.
root@himaster-desktop:~# /sbin/ip route flush table speedy2
Nothing to flush.
root@himaster-desktop:~# /sbin/ip route flush table lan
Nothing to flush.
root@himaster-desktop:~# /sbin/ip addr add 127.0.0.1/8 brd 127.0.0.255 dev lo
RTNETLINK answers: File exists
root@himaster-desktop:~# /sbin/ip addr add 192.168.0.250/24 brd 192.168.0.255 dev eth1
RTNETLINK answers: File exists
root@himaster-desktop:~# /sbin/ip addr add 192.168.1.250/24 brd 192.168.1.255 dev eth2
RTNETLINK answers: File exists
root@himaster-desktop:~# /sbin/ip addr add 192.168.3.1/24 brd 192.168.3.255 dev eth0

root@himaster-desktop:~# /sbin/ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 100
    link/ether 00:15:17:28:71:ec brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.250/24 brd 192.168.0.255 scope global eth1
    inet6 fe80::215:17ff:fe28:71ec/64 scope link
       valid_lft forever preferred_lft forever
3: eth2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 100
    link/ether 00:15:17:28:71:ea brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.250/24 brd 192.168.1.255 scope global eth2
    inet6 fe80::215:17ff:fe28:71ea/64 scope link
       valid_lft forever preferred_lft forever
4: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN qlen 1000
    link/ether 00:02:2a:d9:32:59 brd ff:ff:ff:ff:ff:ff
5: pan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN
    link/ether a6:f7:74:09:83:db brd ff:ff:ff:ff:ff:ff

root@himaster-desktop:~# /sbin/ip rule add prio 10 table main
root@himaster-desktop:~# /sbin/ip rule add prio 20 table speedy1
root@himaster-desktop:~# /sbin/ip rule add prio 30 table speedy2
root@himaster-desktop:~# /sbin/ip rule add prio 40 table lan

root@himaster-desktop:~# /sbin/ip rule
0:    from all lookup local
10:    from all lookup main
20:    from all lookup speedy1
30:    from all lookup speedy2
40:    from all lookup lan
32766:    from all lookup main
32767:    from all lookup default

himaster@himaster-desktop:~$ /sbin/ip route
192.168.1.0/24 dev eth2  proto kernel  scope link  src 192.168.1.250  metric 1
192.168.0.0/24 dev eth1  proto kernel  scope link  src 192.168.0.250  metric 1
169.254.0.0/16 dev eth2  scope link  metric 1000
default via 192.168.1.1 dev eth2  proto static
root@himaster-desktop:~#
root@himaster-desktop:~# /sbin/ip route del default table main
himaster@himaster-desktop:~$ /sbin/ip route
192.168.1.0/24 dev eth2  proto kernel  scope link  src 192.168.1.250  metric 1
192.168.0.0/24 dev eth1  proto kernel  scope link  src 192.168.0.250  metric 1
169.254.0.0/16 dev eth2  scope link  metric 1000
himaster@himaster-desktop:~$
root@himaster-desktop:~# /sbin/ip route del default table speedy1
RTNETLINK answers: No such process
root@himaster-desktop:~# /sbin/ip route del default table speedy2
RTNETLINK answers: No such process
root@himaster-desktop:~# /sbin/ip route del default table lan
RTNETLINK answers: No such process
root@himaster-desktop:~# /sbin/ip rule add prio 20 from 192.168.0.0/24 table speedy1
root@himaster-desktop:~# /sbin/ip route add default via 192.168.0.1 dev eth1 src 192.168.0.250 proto static table speedy1
root@himaster-desktop:~# /sbin/ip route append prohibit default table speedy1 metric 1 proto static
root@himaster-desktop:~# /sbin/ip rule add prio 30 from 192.168.1.0/24 table speedy2
root@himaster-desktop:~# /sbin/ip route add default via 192.168.1.1 dev eth2 src 192.168.1.250 proto static table speedy2
root@himaster-desktop:~# /sbin/ip route append prohibit default table speedy2 metric 5 proto static
root@himaster-desktop:~# /sbin/ip rule add prio 40 table lan
root@himaster-desktop:~# /sbin/ip route add default proto static table lan nexthop via 192.168.0.1 dev eth1 weight 1 nexthop via 192.168.1.1 dev eth2 weight 1

root@himaster-desktop:~# /sbin/ip rule
0:    from all lookup local
10:    from all lookup main
20:    from all lookup speedy1
20:    from 192.168.0.0/24 lookup speedy1
30:    from all lookup speedy2
30:    from 192.168.1.0/24 lookup speedy2
40:    from all lookup lan
40:    from all lookup lan
32766:    from all lookup main
32767:    from all lookup default

root@himaster-desktop:~# /sbin/ip route
192.168.1.0/24 dev eth2  proto kernel  scope link  src 192.168.1.250  metric 1
192.168.0.0/24 dev eth1  proto kernel  scope link  src 192.168.0.250  metric 1
169.254.0.0/16 dev eth2  scope link  metric 1000

root@himaster-desktop:~# /bin/echo 1 > /proc/sys/net/ipv4/ip_forward
root@himaster-desktop:~# /sbin/iptables -F
root@himaster-desktop:~# /sbin/iptables -P INPUT DROP
root@himaster-desktop:~# /sbin/iptables -A INPUT -i eth0 -j ACCEPT
root@himaster-desktop:~# /sbin/iptables -A INPUT -i eth2 -p tcp -s 0/0 --dport 25 -j ACCEPT
root@himaster-desktop:~# /sbin/iptables -A INPUT -i eth1 -p tcp -s 0/0 --dport 25 -j ACCEPT
root@himaster-desktop:~# /sbin/iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
root@himaster-desktop:~# /sbin/iptables -A INPUT -p tcp -i eth2 -j REJECT --reject-with tcp-reset
root@himaster-desktop:~# /sbin/iptables -A INPUT -p tcp -i eth1 -j REJECT --reject-with tcp-reset
root@himaster-desktop:~# /sbin/iptables -A INPUT -p udp -i eth2 -j REJECT --reject-with icmp-port-unreachable
root@himaster-desktop:~# /sbin/iptables -A INPUT -p udp -i eth1 -j REJECT --reject-with icmp-port-unreachable
root@himaster-desktop:~# /sbin/iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to 192.168.0.250
root@himaster-desktop:~# /sbin/iptables -t nat -A POSTROUTING -o eth2 -j SNAT --to 192.168.1.250
====================   END   ===============================

Setelah ini saya restart ubuntu-nya....

Dan setelah saya reboot, saya cek ping ke kedua gateway 192.168.1.1 dan 192.168.0.1 dan bisa. Trus saya coba ping ke internet (google.com), Ternyata ga mau... Trus saya cek lagi ke ip rule dan routenya. Hasilnya di ip rule ga kedeteksi adanya table speedy1,speedy2 dan lan yang sudah dibuat tadi. Intinya kayak dibawah ini hasil setelah restart, ip rule, ip route sama DNS...

===================  START  ===============================
himaster@himaster-desktop:~$ /sbin/ip rule
0:    from all lookup local
32766:    from all lookup main
32767:    from all lookup default
himaster@himaster-desktop:~$ /sbin/ip route
192.168.3.0/24 dev eth0  proto kernel  scope link  src 192.168.3.1
192.168.1.0/24 dev eth2  proto kernel  scope link  src 192.168.1.250
192.168.0.0/24 dev eth1  proto kernel  scope link  src 192.168.0.250
169.254.0.0/16 dev eth0  scope link  metric 1000
himaster@himaster-desktop:~$ cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.0.1
===============   END   =================================

1. Yang saya tanyakan, apa ada yang salah dalam implementasi??? Kalo ada yang mana??
2. "--dport 25" itu untuk apaan sih???
3. Sudah saya coba setting di client 192.168.3.2/24 dengan GW+DNS 192.168.3.1. tetep ga mau ngeping... Di server jg g mw ngeping. Trus gmn, aku pun makin bingung...

Mohon, minta bantuannya... Plis banget, buat tugas jaringan komputer kurang 3 hari lagi, sampe hari minggu besuk... Kasih clue, atau tolong analisis kenapa bisa begini. Thx

Oya, mohon sarannya, setiap kali restart, ip rule kembali seperti semula... Biar ga kembali seperti semula gmn??? thx

5 (edited by si_faisal 28-05-2009 21:22:02)

Re: load balance dengan ubuntu

load balancing nggak sulit kok mas
silahkan baca2 thead ini, lalu lakukan sedikit modifikasi
http://opensource.telkomspeedy.com/foru … hp?id=5802

kita jadikan thread ini ajang diskusi ya

kali ini biarkan gambar berbicara smile
subnet yang sama hanya ditulis dua segmen belakangnya saja

     |    Modem 1    |                    eth1_______
     |  10.10.100.1  |-------- 100.2 --|              |
                                                   |   Router  |_192.168.10.1______ Client 10.10 s.d. 10.50
                                                   |    Linux   |    eth0
     |    Modem 2    |-------- 200.2 - |________|
     |   10.10.200.1 |                     eth2 

=== PERTAMA
tentukan dulu, modem setup pppoe atau bridge?
jika setup pppoe di modem, maka alamat IP modem akan jadi gateway bagi tiap2 routing table yang mewakili interface
disini kita anggap pppoe dilakukan oleh modem

=== KEDUA
edit dan definisikan routing table baru
/etc/iproute2/rt_tables

#
# reserved values
#
255     local
254     main
253     default
0       unspec
#
# local
#
#1      inr.ruhep
201 SPEEDY1
202 SPEEDY2

=== KETIGA
kita tentukan alamat2 untuk tiap2 interface dengan mengedit /etc/network/interface

# The loopback network interface
auto lo
iface lo inet loopback
# Interface ke LAN
auto eth0
iface eth0 inet static
        address 192.168.10.1
        netmask 255.255.255.0
        network 192.168.10.0
        broadcast 192.168.10.255
        #Tambahkan default gateway global misal ke speedy 1
        gateway 10.10.100.1
        # DNS server bisa juga dideklarasikan disini atau nanti di /etc/resolv.conf
        dns-nameservers1 10.10.100.1
        dns-nameservers2 202.134.0.155
# Interface ke Modem1 - Speedy 1
auto eth1
iface eth1 inet static
        address 10.10.100.2
        netmask 255.255.255.0
        network 10.10.100.0
        broadcast 10.10.100.255
# Interface ke Modem2 - Speedy 2
auto eth2
iface eth2 inet static
        address 10.10.200.2
        netmask 255.255.255.0
        network 10.10.200.0
        broadcast 10.10.200.255

nah, sampai sini seharusnya router sudah bisa request ke internet.
file konfigurasi ini akan diedit lagi
untuk menambahkan rules ip route, jadi jika router di reboot tidak hilang setingnya

=== KEEMPAT
setelah itu, aktifkan rules forward
edit /etc/sysctl.conf jadi seperti ini

# Uncomment the next line to enable packet forwarding for IPv4
net.ipv4.ip_forward=1

=== KELIMA
pasang firewall iptables sederhana, untuk melakukan translasi alamat, agar client bisa mengakses internet

## NAT ke Speedy 1 - interface eth1
iptables -A POSTROUTING -t nat -s 192.168.10.0/24 -o eth1 -j SNAT --to-source 10.10.100.2
## NAT ke Speedy 2 - Interface eth2
iptables -A POSTROUTING -t nat -s 192.168.10.0/24 -o eth2 -j SNAT --to-source 10.10.200.2

kemudian save konfigurasi ke file
#iptables-save > /etc/iptables.rules

sampai sini, seharusnya client sudah bisa browsing dengan jalur Speedy 1 saja.
arahkan gateway client ke 192.168.10.1 dengan alamat dns speedy 202.134.0.155
(setup forwarder untuk router kita lakukan belakangan)

=== KEENAM
nah masuk bagian yang paling seru, mainan iproute untuk loadbalance smile
silahkan edit lagi /etc/network/interface, kira2 seperti ini

# The loopback network interface
auto lo
iface lo inet loopback
# Interface ke LAN
auto eth0
iface eth0 inet static
        address 192.168.10.1
        netmask 255.255.255.0
        network 192.168.10.0
        broadcast 192.168.10.255
        #Tambahkan default gateway global misal ke speedy 1
        gateway 10.10.100.1
        # DNS server bisa juga dideklarasikan disini atau nanti di /etc/resolv.conf
        dns-nameservers1 10.10.100.1
        dns-nameservers2 202.134.0.155
        # Load iptables
        up iptables-restore < /etc/iptables.rules
# Interface ke Modem1 - Speedy 1
auto eth1
iface eth1 inet static
        address 10.10.100.2
        netmask 255.255.255.0
        network 10.10.100.0
        broadcast 10.10.100.255
        up ip route add 10.10.100.0/24 dev eth1 src 10.10.100.2 table SPEEDY1
        up ip route add default via 10.10.100.1 table SPEEDY1
        up ip rule add from 10.10.100.2 table SPEEDY1
# Interface ke Modem2 - Speedy 2
auto eth2
iface eth2 inet static
        address 10.10.200.2
        netmask 255.255.255.0
        network 10.10.200.0
        broadcast 10.10.200.255
        up ip route add 10.10.200.0/24 dev eth2 src 10.10.200.2 table SPEEDY2
        up ip route add default via 10.10.100.1 table SPEEDY2
        up ip rule add from 10.10.200.2 table SPEEDY2
## Balance Koneksi dilakukan disini
## Sesuaikan angka weight untuk bagi beban
        up ip route replace default scope global nexthop via 10.10.100.1 dev eth1 weight 2 nexthop via 10.10.200.1 dev eth2 weight 2

save dan restart networkingnya

=== TUJUH - Testing
test load balancing dari client dengan mengunjungi situs2 ip lookup seperti
whatismyip.com
ipchicken.com
ip-lookup.net
ipgue.com
jika alamat berubah-ubah, maka setup load balancing berhasil

bisa juga cek via bwm-ng di router, perhatikan traffic RX untuk eth1 dan eth2
tentunya client harus ada aktififas browsing
#apt-get install bwm-ng
#bwm-ng

smile
good luck

6 (edited by godhongenom 29-05-2009 22:03:34)

Re: load balance dengan ubuntu

Mas ini hasil pekerjaan saya, tapi masih belum bisa konek itu mas.... Mohon saran, kalo ada implementasi yang salah

===========================================================
himaster@himaster-desktop:~$ sudo gedit /etc/iproute2/rt_tables

#
# reserved values
#
255    local
254    main
253    default
0    unspec
#
# local
#
#1    inr.ruhep
201 SPEEDY1
202 SPEEDY2

himaster@himaster-desktop:~$ sudo gedit /etc/network/interfaces

auto lo
iface lo inet loopback

# Interface ke LAN
auto eth2
iface eth2 inet static
        address 192.168.3.1
        netmask 255.255.255.0
        network 192.168.3.0
        broadcast 192.168.3.255
        #Tambahkan default gateway global misal ke speedy 2
        gateway 192.168.1.1
        # DNS server bisa juga dideklarasikan disini atau nanti di /etc/resolv.conf
        dns-nameservers1 192.168.1.1
        dns-nameservers2 202.134.0.155


# Interface ke Modem2 - Speedy 2
auto eth1
iface eth1 inet static
        address 192.168.1.250
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255


# Interface ke Modem1 - Speedy 1
auto eth0
iface eth0 inet static
        address 192.168.0.250
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255

himaster@himaster-desktop:~$ sudo gedit /etc/sysctl.conf
himaster@himaster-desktop:~$ sudo -i
root@himaster-desktop:~# iptables -A POSTROUTING -t nat -s 192.168.3.0/24 -o eth0 -j SNAT --to-source 192.168.0.250
root@himaster-desktop:~# iptables -A POSTROUTING -t nat -s 192.168.3.0/24 -o eth1 -j SNAT --to-source 192.168.1.250
root@himaster-desktop:~# iptables-save > /etc/iptables.rulesroot@himaster-desktop:~# cat /etc/iptables.rules
# Generated by iptables-save v1.4.1.1 on Fri May 29 20:58:35 2009
*nat
:PREROUTING ACCEPT [10:2032]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 192.168.3.0/24 -o eth0 -j SNAT --to-source 192.168.0.250
-A POSTROUTING -s 192.168.3.0/24 -o eth1 -j SNAT --to-source 192.168.1.250
COMMIT
# Completed on Fri May 29 20:58:35 2009

root@himaster-desktop:~# gedit /etc/network/interfaces
---------------------------------------------------------------------
auto lo
iface lo inet loopback

# Interface ke LAN
auto eth2
iface eth2 inet static
        address 192.168.3.1
        netmask 255.255.255.0
        network 192.168.3.0
        broadcast 192.168.3.255
        #Tambahkan default gateway global misal ke speedy 2 (yg lemot)
        gateway 192.168.1.1
        # DNS server bisa juga dideklarasikan disini atau nanti di /etc/resolv.conf
        dns-nameservers1 192.168.1.1
        dns-nameservers2 202.134.0.155
        # Load iptables
        up iptables-restore < /etc/iptables.rules


# Interface ke Modem2 - Speedy 2
auto eth1
iface eth1 inet static
        address 192.168.1.250
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        up ip route add 192.168.1.0/24 dev eth1 src 192.168.1.250 table SPEEDY2
        up ip route add default via 192.168.1.1 table SPEEDY2
        up ip rule add from 192.168.1.250 table SPEEDY2


# Interface ke Modem1 - Speedy 1
auto eth0
iface eth0 inet static
        address 192.168.0.250
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        up ip route add 192.168.0.0/24 dev eth0 src 192.168.0.250 table SPEEDY1
        up ip route add default via 192.168.0.1 table SPEEDY1
        up ip rule add from 192.168.0.250 table SPEEDY1

## Balance Koneksi dilakukan disini
## Sesuaikan angka weight untuk bagi beban

        up ip route replace default scope global nexthop via 192.168.1.1 dev eth1 weight 2 nexthop via 192.168.0.1 dev eth0 weight 2
===========================================================

restart
Setelah itu

---------------------------------------------------------------------
himaster@himaster-desktop:~$ cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.0.1
himaster@himaster-desktop:~$ sudo tracert google.com
[sudo] password for himaster:
traceroute to google.com (74.125.45.100), 30 hops max, 60 byte packets
1  192.168.1.1 (192.168.1.1)  2.249 ms  2.489 ms *

himaster@himaster-desktop:~$ ip rule
0:    from all lookup local
32764:    from 192.168.1.250 lookup SPEEDY2
32765:    from 192.168.0.250 lookup SPEEDY1
32766:    from all lookup main
32767:    from all lookup default
himaster@himaster-desktop:~$ ip route
192.168.3.0/24 dev eth2  proto kernel  scope link  src 192.168.3.1
192.168.1.0/24 dev eth1  proto kernel  scope link  src 192.168.1.250
192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.250
169.254.0.0/16 dev eth1  scope link  metric 1000
default
    nexthop via 192.168.1.1  dev eth1 weight 2
    nexthop via 192.168.0.1  dev eth0 weight 2
himaster@himaster-desktop:~$ sudo /etc/init.d/networking restart
* Reconfiguring network interfaces...                                          RTNETLINK answers: No such process
SIOCADDRT: No such process
Failed to bring up eth2.
before doing NFS mounts]: waiting for interface eth2
before doing NFS mounts]: waiting for interface eth1
before doing NFS mounts]: waiting for interface eth0
before doing NFS mounts]: waiting for interface eth2
before doing NFS mounts]: waiting for interface eth1
before doing NFS mounts]: waiting for interface eth0
                                                                         [ OK ]
===========================================================
Nah, yang habis restart itu adalah data2nya... tetep ga bisa konek yang client.., Mau ngeping ke 192.168.3.1 tetapi ga mau dapet DNS dari 192.168.3.1...

Gmn mas??? Mohon petunjuknya... Pertanyaaan tambahan, gmn ngetest kalo load balance-nya itu failover?? Apa perlu saya copot kabel yang pertama[/kedua] (pada server), tapi masih bisa ngeping-kah gitu?? Pake bwm-ng juga tetap dapetnya trafik dari satu ethernet saja mas...

Oya, barusan aku restart lagi servernya, aku cek IP wi whatismyip.com, berubah-ubah terus. Tapi kalo ga direstart, ga berubah gitu... Jadi trafik tetep pada 1 ethernet aja, ga terbagi apalagi failover... gimana tuh pak mas mbak???

Thx...

7 (edited by si_faisal 30-05-2009 00:48:44)

Re: load balance dengan ubuntu

kalo mau mengarahkan DNS Server client ke router, harus install dns server bind atau dnsmasq

#sudo apt-get install dnsmasq
silahkan baca manualnya dan setup konfigurasinya di
/etc/dnsmasq.conf

untuk failover, kita harus menjalankan script yang dirancang untuk mengecek kondisi gateway
silahkan baca kembali
http://opensource.telkomspeedy.com/foru … hp?id=5802
pada bagian-bagian akhir therad

atau cara lain, mainan ip route, saat interface up atau down
kita bisa post langsung di /etc/network/interface
namun tidak melakukan deteksi dead gateway, hanya valid jika event interface up dan down

sebelumnya definisikan terlebih dahulu address eth1, agar alamat routing, valid pada saat deklarasi default gateway       
        #Tambahkan default gateway global misal ke speedy 2
        gateway 192.168.1.1

# Interface Loopback
auto lo
iface lo inet loopback
# Interface ke Modem1 - Speedy 1
auto eth0
iface eth0 inet static
        address 192.168.0.250
        netmask 255.255.255.0
        network 192.168.0.0
        broadcast 192.168.0.255
        up ip route add 192.168.0.0/24 dev eth0 src 192.168.0.250 table SPEEDY1
        up ip route add default via 192.168.0.1 table SPEEDY1
        up ip rule add from 192.168.0.250 table SPEEDY1
        ## Alihkan gateway ke Speedy2 saja saat interface eth0 down
        down ip rule del from 192.168.0.250 table SPEEDY1
        down ip route flush cache
        down ip route replace default scope global via 192.168.1.1 dev eth1
# Interface ke Modem2 - Speedy 2
auto eth1
iface eth1 inet static
        address 192.168.1.250
        netmask 255.255.255.0
        network 192.168.1.0
        broadcast 192.168.1.255
        up ip route add 192.168.1.0/24 dev eth1 src 192.168.1.250 table SPEEDY2
        up ip route add default via 192.168.1.1 table SPEEDY2
        up ip rule add from 192.168.1.250 table SPEEDY2
        ## Alihkan gateway ke Speedy1 saja saat interface eth1 down
        down ip rule del from 192.168.1.250 table SPEEDY2
        down ip route flush cache
        down ip route replace default scope global via 192.168.0.1 dev eth0
# Interface eth2 - LAN
auto eth2
iface eth2 inet static
        address 192.168.3.1
        netmask 255.255.255.0
        network 192.168.3.0
        broadcast 192.168.3.255
        # Tambahkan default gateway global misal ke speedy 2 (yg lebih cepat & stabil)
        gateway 192.168.1.1
        # DNS server dideklarasikan saja di /etc/resolv.conf, tidak disini
        # Load iptables
        up iptables-restore < /etc/iptables.rules
## Balance Koneksi dilakukan disini
## Sesuaikan angka weight untuk bagi beban
        up ip route replace default scope global nexthop via 192.168.1.1 dev eth1 weight 2 nexthop via 192.168.0.1 dev eth0 weight 2

untuk testing, coba cabut kabel ke modem 1, perhatikan
#ip route
ada perubahan atau tidak,
kemudian lakukan juga untuk modem2

jika ip public ke internet berubah2, berarti load balance udah berjalan.
silahkan dioprek2, dimodifikasi dan dioptimalkan
smile

HTH

8 (edited by godhongenom 30-05-2009 07:44:36)

Re: load balance dengan ubuntu

Untuk yang load balance trnyata sudah berhasil, saya coba di server untuk download, sdh bisa membagi ke dalam 2 interfaces berbeda dari kedua modem..Dan ternyata permasalahannya adalah, karena  nyetingnya server hanya sebagai client biasa dari kedua modem, belum sebagai server asli, soalnya butuh koneksi juga untuk browsing-browsing di internet. Lah, pada saat browsing itu jg banyak temen2 disini, sehingga koneksi dari salah satu modem wireless terbagi, jadi ga bisa terdedteksi kalo di server, koneksi-nya sudah bisa terbagi. Jadi, pas koneksi-nya kosong, saya lihat lagi, ternyata sudah terbagi dengan baik antara kedua koneksi modem.

oya, mas.. permasalahan yang dulu belum terselesaikan sampe skrg jg, ternyata client dari server ga dapat request DNS balesan dari server... alias internet sharingnya ga mau jalan...

Jadi setting salah satu client untuk uji coba seperti ini: (utk eth2, 192.168.3.0/24)
IP 192.168.3.2, Subnet Mask 255.255.255.0, IP gateway 192.168.3.1 DNS1 202.134.0.155

Menurut mas, gmn??? Apa perlu install bind-dns, soalnya saya masih pake seetingan yang pertama (pada bagian /etc/network/interfaces, yang menambah "down ip rule del bla bla bla" pada eth0[speedy1] dan eth1[speedy2]).. Trus, kalo misal perlu bind-dns, iptables-nya perlu diubah/ditambahin ga??? DIbawah ini contoh yang masih pake iptables yang lama???
------------------------------------------------------------
root@himaster-desktop:~# iptables-save > /etc/iptables.rulesroot@himaster-desktop:~# cat /etc/iptables.rules
# Generated by iptables-save v1.4.1.1 on Fri May 29 20:58:35 2009
*nat
:PREROUTING ACCEPT [10:2032]
:POSTROUTING ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A POSTROUTING -s 192.168.3.0/24 -o eth0 -j SNAT --to-source 192.168.0.250
-A POSTROUTING -s 192.168.3.0/24 -o eth1 -j SNAT --to-source 192.168.1.250
COMMIT
# Completed on Fri May 29 20:58:35 2009
------------------------------------------------------------
Trus, saya baca kembali (sampe tak pelototin satu per satu tiap kata biar paham) tutorial mas yang gabungin dari pppoe dan ethernet. ada tambahan
------------------------------------------------------------
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
------------------------------------------------------------

Habis install dnsmasq dan ipmasq (konfigurasi cuman dhcp server aja) akhirnya bisa jalan dari client, tapi serasa lambat sekali (ping google bisa, tapi browser-nya lambat bgt).  Saya coba ping di server, hasilnya "ping: sendmsg: operation not permitted", tapi kadang-kadang bisa reply, tapi kadang-kadang juga "not permitted lagi"

Trus coba saya tambahkan iptables ke MASQUERADE diatas. Eh, client bisa detek DNS tapi ga mau ngeping (RTO), buka browser jg g bisa. Dan saya liat di iptables.rules, kok tambah panjang yah??? Apa ini karena yang pertama "-j SNAT" yang kedua "-t nat" jadi ga pas???
Hasilnya ping di server jg sama saja (kadang reply, kadang not permitted), client malah ga bisa browsing (RTO), detek IP internet sih mau....

-----------------------------------iptables.rules-----------------------------------------
root@himaster-desktop:~# cat /etc/iptables.rules
# Generated by iptables-save v1.4.1.1 on Sat May 30 07:26:26 2009
*mangle
:PREROUTING ACCEPT [12466:9176068]
:INPUT ACCEPT [717:253953]
:FORWARD ACCEPT [11739:8921247]
:OUTPUT ACCEPT [1001:121435]
:POSTROUTING ACCEPT [12282:9014548]
COMMIT
# Completed on Sat May 30 07:26:26 2009
# Generated by iptables-save v1.4.1.1 on Sat May 30 07:26:26 2009
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -s 127.0.0.0/8 -i ! lo -j LOG
-A INPUT -s 127.0.0.0/8 -i ! lo -j DROP
-A INPUT -d 255.255.255.255/32 -i eth0 -j ACCEPT
-A INPUT -d 255.255.255.255/32 -i eth2 -j ACCEPT
-A INPUT -s 192.168.0.0/24 -i eth0 -j ACCEPT
-A INPUT -s 192.168.3.0/24 -i eth2 -j ACCEPT
-A INPUT -d 224.0.0.0/4 -i eth0 -p ! tcp -j ACCEPT
-A INPUT -d 224.0.0.0/4 -i eth2 -p ! tcp -j ACCEPT
-A INPUT -s 192.168.0.0/24 -i eth1 -j LOG
-A INPUT -s 192.168.0.0/24 -i eth1 -j DROP
-A INPUT -s 192.168.3.0/24 -i eth1 -j LOG
-A INPUT -s 192.168.3.0/24 -i eth1 -j DROP
-A INPUT -d 255.255.255.255/32 -i eth1 -j ACCEPT
-A INPUT -d 192.168.1.250/32 -i eth1 -j ACCEPT
-A INPUT -d 192.168.1.255/32 -i eth1 -j ACCEPT
-A INPUT -d 224.0.0.1/32 -j DROP
-A INPUT -j LOG
-A INPUT -j DROP
-A FORWARD -s 192.168.3.0/24 -d 192.168.0.0/24 -j ACCEPT
-A FORWARD -s 192.168.0.0/24 -d 192.168.3.0/24 -j ACCEPT
-A FORWARD -s 192.168.0.0/24 -i eth0 -o eth1 -j ACCEPT
-A FORWARD -s 192.168.3.0/24 -i eth2 -o eth1 -j ACCEPT
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -d 192.168.0.0/24 -o eth1 -j LOG
-A FORWARD -d 192.168.0.0/24 -o eth1 -j DROP
-A FORWARD -d 192.168.3.0/24 -o eth1 -j LOG
-A FORWARD -d 192.168.3.0/24 -o eth1 -j DROP
-A FORWARD -d 224.0.0.1/32 -j DROP
-A FORWARD -j LOG
-A FORWARD -j DROP
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -d 255.255.255.255/32 -o eth0 -j ACCEPT
-A OUTPUT -d 255.255.255.255/32 -o eth2 -j ACCEPT
-A OUTPUT -d 192.168.0.0/24 -o eth0 -j ACCEPT
-A OUTPUT -d 192.168.3.0/24 -o eth2 -j ACCEPT
-A OUTPUT -d 224.0.0.0/4 -o eth0 -p ! tcp -j ACCEPT
-A OUTPUT -d 224.0.0.0/4 -o eth2 -p ! tcp -j ACCEPT
-A OUTPUT -d 192.168.0.0/24 -o eth1 -j LOG
-A OUTPUT -d 192.168.0.0/24 -o eth1 -j DROP
-A OUTPUT -d 192.168.3.0/24 -o eth1 -j LOG
-A OUTPUT -d 192.168.3.0/24 -o eth1 -j DROP
-A OUTPUT -d 255.255.255.255/32 -o eth1 -j ACCEPT
-A OUTPUT -s 192.168.1.250/32 -o eth1 -j ACCEPT
-A OUTPUT -s 192.168.1.255/32 -o eth1 -j ACCEPT
-A OUTPUT -d 224.0.0.1/32 -j DROP
-A OUTPUT -j LOG
-A OUTPUT -j DROP
COMMIT
# Completed on Sat May 30 07:26:26 2009
# Generated by iptables-save v1.4.1.1 on Sat May 30 07:26:26 2009
*nat
:PREROUTING ACCEPT [358:24401]
:POSTROUTING ACCEPT [143:10413]
:OUTPUT ACCEPT [471:36912]
-A POSTROUTING -s 192.168.0.0/24 -o eth1 -j MASQUERADE
-A POSTROUTING -s 192.168.3.0/24 -o eth1 -j MASQUERADE
-A POSTROUTING -o eth0 -j MASQUERADE
-A POSTROUTING -o eth1 -j MASQUERADE
COMMIT
# Completed on Sat May 30 07:26:26 2009
---------------------------------------------------------------------------------------------

Tapi, sebelumnya thx bgt pokoke buat mas faisal reza yang sdh mbantu terus.... Pokoknya entar saya akan buat review perjalanan saya dari nol, kalo sdh beres nantinya... Yang jelas ada yang sedikit beda dg hasil penelitian saya (mgkin bdanya dikit, tapi gpp lah buat yang masi nyubi kyak saya).

jadi, saya tunggu jawabannya segera yah mas... Thx

9 (edited by si_faisal 30-05-2009 09:03:49)

Re: load balance dengan ubuntu

smile
untuk masalah DNS, tergantung keperluan mas
seperti telah saya utarakan sebelumya.
jika memang ingin membuat authoratitative server (name server yang bertanggung jawab atas sebuah domain) maka instal bind
misal punya domain sendiri labkomputer.lan
kemudian itu speedy nya pingin jadi webserver webserverlab.com

jika inginnya hanya DNS forwarder dan DHCP Server sederhana, agar bisa memforward request client, install dnsmasq aja udah cukup.

jangan kedua2 nya y mas, kalo install bind, jangan install dnsmasq
(harus diremove salah satu, nanti conflict karena sama2 make port 53)

untuk setup firewall, perubahannya hanya memperbolehkan akses untuk port 53 (tcp dan udp)
#iptables -A INPUT -t filter -p tcp -m tcp --dport 53 -j ACCEPT
#iptables -A INPUT -t filter -p udp -m udp --dport 53 -j ACCEPT

===
kalo menurut saya, yang bikin iptablesnya berubah jadi banyak adalah ipmasq, yang sebetulnya tidak perlu diinstall. (karena di 2 rules SNAT aja udah cukup, dan disarankan jika out interface nya static, tidak menggunakan MASQUERADE)

sebelumnya tanya dulu, mas godhongenom sudah familiar dengan iptables?
kalo saya lebih prefer membuat script firewall custom. karena ipmasq yang diinstall belum tentu support loadbalancing, dengan skema anda.

atau coba saya edit manual ya dari yang ada diatas :
btw, firewallnya restriktif sekali smile

# Completed on Sat May 30 8:59:26 2009 - Faisal Reza
*mangle
:PREROUTING ACCEPT [12466:9176068]
:INPUT ACCEPT [717:253953]
:FORWARD ACCEPT [11739:8921247]
:OUTPUT ACCEPT [1001:121435]
:POSTROUTING ACCEPT [12282:9014548]
COMMIT
# Completed on Sat May 30 8:59:26 2009 - Faisal Reza
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
## Allow traffic ke Loopback interface
-A INPUT -i lo -j ACCEPT 
-A INPUT -s 127.0.0.0/8 -i ! lo -j LOG 
-A INPUT -s 127.0.0.0/8 -i ! lo -j DROP 
## Allow input broadcast ke semua interface
-A INPUT -d 255.255.255.255/32 -i eth0 -j ACCEPT 
-A INPUT -d 255.255.255.255/32 -i eth1 -j ACCEPT 
-A INPUT -d 255.255.255.255/32 -i eth2 -j ACCEPT
## Allow traffic ke semua subnet sesuai interface 
-A INPUT -s 192.168.0.0/24 -i eth0 -j ACCEPT 
-A INPUT -s 192.168.1.0/24 -i eth1 -j ACCEPT 
-A INPUT -s 192.168.3.0/24 -i eth2 -j ACCEPT 
## Allow request DNS ke server | catatan - Bind atau DNSMasq sudah terinstall
-A INPUT -t filter -p tcp -m tcp --dport 53 -j ACCEPT
-A INPUT -t filter -p udp -m udp --dport 53 -j ACCEPT
## Saya nggak tau, ini buat apa, yang jelas memperbolehkan traffic dari tujuan 224.x.x.x 
## menuju router :D
-A INPUT -d 224.0.0.0/4 -i eth0 -p ! tcp -j ACCEPT 
-A INPUT -d 224.0.0.0/4 -i eth1 -p ! tcp -j ACCEPT 
-A INPUT -d 224.0.0.0/4 -i eth2 -p ! tcp -j ACCEPT 
## Log koneksi yang masuk dari Interface Internet selain yang match dideskripsikan di atas
-A INPUT -s 192.168.0.0/24 -i eth0 -j LOG 
-A INPUT -s 192.168.0.0/24 -i eth0 -j DROP 
-A INPUT -s 192.168.1.0/24 -i eth1 -j LOG 
-A INPUT -s 192.168.1.0/24 -i eth1 -j DROP 
## Log dan drop paket masuk lainnya
-A INPUT -j LOG 
-A INPUT -j DROP 
## Allow Forward dari Lan ke Internet dan sebaliknya
-A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT 
-A FORWARD -j ACCEPT
## Allow OUTPUT dari mesin router ke loopback
-A OUTPUT -o lo -j ACCEPT 
## Allow OUTPUT dari mesin router ke semua tujuan
-A OUTPUT -j ACCEPT
COMMIT
# Completed on Sat May 30 8:59:26 2009 - Faisal Reza
*nat
:PREROUTING ACCEPT [358:24401]
:POSTROUTING ACCEPT [143:10413]
:OUTPUT ACCEPT [471:36912]
## Lakukan SNAT dari client ke Alamat Internet router 
-A POSTROUTING -s 192.168.3.0/24 -o eth0 -j SNAT --to-source 192.168.0.250
-A POSTROUTING -s 192.168.3.0/24 -o eth1 -j SNAT --to-source 192.168.1.250
COMMIT
# Completed on Sat May 30 8:59:26 2009 - Faisal Reza

kemudian coba terapkan rules iptables diatas
#iptables-restore < /etc/iptables.rules

silahkan periksa lagi lebih teliti mas,
karena defaultnya restriktif, kesalahan deklarasi paket sedikit saja akan menyebabkan paket tidak boleh keluar masuk, sehingga mempengaruhi performance.

oh iya, jangan lupa ipmasq nya di uninstall, karena iptablesnya udah diedit manual
#apt-get autoremove ipmasq


smile smoga membantu

Re: load balance dengan ubuntu

halo black smile

hehehe, banyak juga pertanyaannya smile

yang pengan ditanyakan adalah:

1. setelah dari tutorialnya kang onno, untuk ngetest load balance'nya berhasil atau gak gamana?

secara sederhana bisa dilihat dgn command /sbin/ifconfig - pastikan nilai TX & RX berjalan sesuai algoritma-nya :

# /sbin/ifconfig 
eth0      Link encap:Ethernet  HWaddr 00:00:11:22:33:44  
          inet addr:172.16.222.29  Bcast:172.16.222.255  Mask:255.255.255.0
          inet6 addr: fe80::203:47ff:febb:ceee/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14646 errors:0 dropped:0 overruns:0 frame:0 ---> packet diterima
          TX packets:9451 errors:0 dropped:0 overruns:0 carrier:0 ---> kirim
          collisions:0 txqueuelen:1000 
          RX bytes:5863925 (5.5 MiB)  TX bytes:1370655 (1.3 MiB)

atau pakai iptraf juga bisa, ntop juga bisa - pokoknya dilihat saja itu 2 jalur terpakai sejajar tidak, atau bisa saja dimatikan salah satu NIC-nya dgn ifdown eth?.

2. setting buat client selanjutnya gimana? (ip, gateway dan DNS gmn?)

karena cuma klien, maka tidak ada perubahan - nilai IP, DNS dan gateway tetap sama seperti biasanya

3. dari tutorialnya kang onno kayaknya gak ada pengaturan DNS dari 2 speedy itu, misal:
dari modem speedy 1, didapatkan ip 192.168.0.xyz dg gateway dan DNS 192.168.0.1
dari modem speedy 2, didapatkan ip 192.168.1.xyz dg gateway dan DNS 192.168.1.1

nah pengaturannya ip rule/route itu perlu DNS dari masing2 speedy gak? soalnya kalo menurut saya kok perlu ya? kalo perlu, settingnya gimana? atau apakah secara otomatis didapatkan DNS dari masing2 speedy tsb?

tidak ada yang spesifik, DNS tidak berkaitan dgn load-balancing.
tergantung dari metode NIC - memakai DHCP dari modem atau modemnya bridge-mode.
kalo DHCP dari modem, maka DNS akan dapat dari apa yang dialokasikan oleh modem,
kalo modemnya bridge, maka dapat dari settingan speedy, atau malah bisa pakai DNS sendiri saja smile

ok., HTH.

11 (edited by godhongenom 30-05-2009 23:04:35)

Re: load balance dengan ubuntu

Maaf, mas... Saya sudah out of mind lagi melanjutkannya bagaimana...

iptables manual yang dibahas di mas faisal reza ga mau jalan. Sama saja. Malah kalo ada ping dari PC server ke situs tertentu, ping-nya ga mau jalan dan pasti ada tulisan,"operation not permitted".

Jadi, saya ulangi konfigurasi lagi dari awal dan sampe install dnsmasq saja (IP-tables masih yang pertama. Dari client sdh dhcp dan bisa dapet IP DNS-server otomatis. dari nslookup client jg bisa ndetek DNS situs2 tertentu juga. Tetapi, setelah di-ping ga mau jalan, alias RTO (Requeest Time out).

Bingung, ngantug, strezz,.... Mohon clue-nya... Seharusnya sudah bisa, kalo katanya mas Faisal pada saat ga pake dnsmasq pun bisa, tinggal diarahkan saja IP gateway ke arah gateway utama dalam "/etc/network/interfaces" dengan "/etc/resolv.conf" diisi dari DNS telkom

Oya, ada beberapa sih yang membuat saya tanda-tanya... yaitu, icon networking di pojok kanan ubuntu itu kok tandanya silang yah??? (alias kayak ndak ada koneksi). Tapi kalo lewat terminal ada konfigurasi. (mnurut saya karena identifikasi di "/etc/network/interfaces", bener ga??? mohon koreksi. Soale kalo ga di identifikasi, iconnya ga silang lagi. Apa karena ini??)

Intinya sharing koneksi dari server ke client ga mau itu, mas?? Oya, harusnya kan bisa ping dari client ke gateway kedua modem (karena ada routing:
-A POSTROUTING -s 192.168.3.0/24 -o eth0 -j SNAT --to-source 192.168.0.250
-A POSTROUTING -s 192.168.3.0/24 -o eth1 -j SNAT --to-source 192.168.1.250

Bbrp hari lali, di tutorialnya pak onno kayaknya bisa ngeping dari client (192.168.3.xx) ke 192.168.1.1(modem speedy 2)  atau 192.168.0.1(modem speedy1). Cuman dulu, tutorial dr pak Onno ga isa resolve DNS. Dan ternyata kasusnya sama dengan punyae mas faisal, tapi sdh selesai dengan menggunakan dnsmasq.

Mungkin saya perlu gabungin tutorial dari mas Faisal (yg pake DNSMasq, dan pengaturan up down di /etc/network/interfaces) dengan pak Onno dari segi iptables-nya itu (ada beberapa iptables)... sehingga tutorial dr pak Onno saya tambahi dg dnsmasq, kayaknya bisa...

Tulung tutorial dari mas Faisal, bisa ngasih saran ttg Ga bisanya ngeping, hanya resolve dns saja?? Yang jelas, kalo dicoba di server sudah bisa load balance.

Ngantug banget kie mas, bebrapa hari nglembur nyoba ngoprek... Tidur bentar 2 jam, habis itu bangun lagi... Thx bgt pokoke buat mas Faisal dan mas Abdi, mungkin mas abdi bisa ngasih klue, ato mas Faisal tak tunggu banget... (tapi menurutku hasruse bisa, tpi g tw knapa??)

Ini data2-nya:
-------------------------------------------------------------
himaster@himaster-desktop:~$ cat /etc/iptables.rules
# Generated by iptables-save v1.4.1.1 on Sat May 30 21:23:24 2009
*nat
:PREROUTING ACCEPT [0:0]
:POSTROUTING ACCEPT [2:131]
:OUTPUT ACCEPT [2:131]
-A POSTROUTING -s 192.168.3.0/24 -o eth0 -j SNAT --to-source 192.168.0.250
-A POSTROUTING -s 192.168.3.0/24 -o eth1 -j SNAT --to-source 192.168.1.250
COMMIT
# Completed on Sat May 30 21:23:24 2009
himaster@himaster-desktop:~$ cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.0.1
himaster@himaster-desktop:~$ ip rule
0:    from all lookup local
32764:    from 192.168.0.250 lookup SPEEDY1
32765:    from 192.168.1.250 lookup SPEEDY2
32766:    from all lookup main
32767:    from all lookup default
himaster@himaster-desktop:~$ ip route
192.168.3.0/24 dev eth2  proto kernel  scope link  src 192.168.3.1
192.168.1.0/24 dev eth1  proto kernel  scope link  src 192.168.1.250
192.168.0.0/24 dev eth0  proto kernel  scope link  src 192.168.0.250
169.254.0.0/16 dev eth1  scope link  metric 1000
default
    nexthop via 192.168.1.1  dev eth1 weight 2
    nexthop via 192.168.0.1  dev eth0 weight 2
-------------------------------------------------------------

Re: load balance dengan ubuntu

@ daunmuda smile

sabar, sabar ... pelan2, nanti hasilnya juga paham sendiri smile

ok, kita coba dgn cara sederhana saja ya - habis, abdi juga sedikit pusing kalo melihat script yang panjang smile no offense, maklum udah ggak muda lagi smile

secara sederhana, load balancing itu apa?
hanyalah pembagian beban kepada beberapa interface.

jadi kita pegang saja prinsip sederhana itu ya, nanti kalo udah paham & dioprek2 terus InsyaAlloh pasti bisa lebih maju kok.

ini pakai linux apa? debian atau red hat?

Re: load balance dengan ubuntu

iptables manual yang dibahas di mas faisal reza ga mau jalan. Sama saja. Malah kalo ada ping dari PC server ke situs tertentu, ping-nya ga mau jalan dan pasti ada tulisan,"operation not permitted".

kalo ini, kemungkinan besar karena paket di chain output ke blok sama iptables
coba jangan pake firewall dulu, sampai semuanya running well, nanti ditambahkan pelan2.

smile trouble shootingnya bertahap mas

1. ping dari server ke internet udah bisa?
2. browsing dari server udah bisa
3. coba /etc/resolv.conf isi saja dengan alamat DNS Provider, 202.x.x.x
    (kali aja modemnya gagal forward)
4. cat /proc/sys/net/ipv4/ip_forward nilainya udah 1 kan?
5. parameter /etc/sysctl.conf yang lain udah sesuai?
6. firewall lain tidak ada kan. seperti ufw (ubuntu firewall)? atau apparrmor mungkin?

dll

jika server sudah oke (fully functional), kemudian baru koneksinya kita sharing.
1. tentukan dulu layanan apa yang akan disediakan untuk client
    (DNS forwarder, DHCP server dll)
2. ping dari client ke interface server mengarah ke dalam bisa?
3. ping dari client ke interface internet server bisa?
4. ping dari client ke modem bisa?
5. ping dari client ke domain internet bisa?
6. test nslookup dari client bisa?

mohon jelaskan errornya to the point dan terstruktur.

smile
jangan nyerah.

14 (edited by godhongenom 31-05-2009 21:12:37)

Re: load balance dengan ubuntu

Wah, saya ndak tau nih... Tiba-tiba saya bisa ngeping dan reply dari client ke internet. Padahal kemaren-kemaren ga bisa. Gila bener.

Jadi, begini mungkin logika saya agak aneh. Begini, Kemaren2 saya pake jalur koneksi yang koneksi speedy-nya agak Tidak stabil sebagai hop pertama dan yang stabil sebagai hop kedua. Alasan saya karena, dalam teknik load balance kan harusnya bisa kedua interface jalan. Nah, permasalahannya karena saya lagi ujicoba. Jadi, saya hanya memasang server ujicoba ini sebagai client dari kedua modem speedy (soale modem wireless). Liat gambar (maap, mas kopas dari mas faisal)
     
     |   Modem1+W |           eth0__________
     |  192.168.0.1  |--- 0.250 --|                |
                                             |  Router     |____192.168.3.1_____Client 192.168.3.2-254
                                             |  Linux       |    eth2
     |  Modem 2+W |--- 1.250 --|_________|
     |  192.168.1.1  |         eth1

Nah, pada saat download (saya coba download paket besar dari indowebster, titipan temen), saya liat trafiknya di bwm-ng, cuman 1 koneksi dari ethernet yang jalan. Nah, maksud saya kenapa saya milih hop pertama dari speedy ga stabil ini, karena (mungkin, menurut saya) koneksi yang lambat ini akan tertarik dulu bandwidth-nya untuk mencoba koneksi dan bisa menarik koneksi yang kedua apabila ga mampu untuk koneksi yang pertama.

Saya mengandaikan kayak seseorang, intinya seseorang harus berusaha dulu semaksimal mungkin, meskipun hasil-e ga mampu ga masalah, ntar ada yang backup, gitu loh... Heheheheh. Eh, ternyata mungkin beda ya??? Mohon koreksinya.... (pertanyaan 1)

Saya install ulang ubuntu-nya (soale bingung, ntar masih ada yang kesisa routing table ato firewall-nya). Dan saya ulangi lagi dari awal, tanpa install dnsmasq. Eh, ternyata sudah bisa, client nge-ping ke internet dan reply. Bedanya, saya pake koneksi speedy yang stabil sbg hop pertama dan yg g stabil d hop kedua.

Nah, saya pengin nanya. [pertanyaan 2] Apa musti harus dimatikan dulu fasilitas Wireless pada modem speedy agar traffik bisa benar2 terpisah dengan baik (load balance-nya). Soale dulu saya nyoba yang berhasil itu pas malem2 banget (jadi ndak ada yang ganggu trafiknya)

Oya, saya sudah nyoba liat IP di ip-lookup.net, whatismyip.com, ipgue.com, dll. Tetep hanya 1 ip publik saja yang kedetek. Dulu pas saya pake hop 1 yg ga stabil masih bisa nge-check beda  ip publik(yo soale mungkin asumsi saya yang kayak "orang" tadi)

Saya cek, kedua modem speedy sama-sama konek. Dan traffik malah dari speedy1 (yang mana banyak yg ngonek-kan kesini, harus-e dapat traffik-e dikit, tapi malah maksimum[100-an lebih kbps]). Lha malah dari speedy2 (yang jarang konek), malah ga ada traffik sama sekali. Jadi, kalo sebenere saya pake laptop nyambung ke speedy2, kecepatan bisa maksimum juga[100-an lbih kbps].
---------------------------------------------------------
Oya, tadi barusan baru bahas client bisa ping ke internet dan reply. Tapi, kenapa kok ketika buka browser ndak bisa yah?? [pertanyaan 3]

[untk uji pertama dari server, yang troubleshooting itu], pertanyaan 5 yang ga mudheng?? [parameter /etc/sysctl.conf yang lain udah sesuai?] Soalnya yg tutorial-nya cuman mengaktifkan rules ip-forwarding. Jadi, kalo emang gitu aja, semua uji untuk server udah sempurna.

[untuk uji kedua dari client]. !
1. Planning-nya nanti ada 1 server yang dipublik (webserver dan ftp server). Gambarnya begini: Tapi, kalo misal ntar route table-nya agak panjang. Ntar cukup yang koneksi buat ngenet saja... (DNS forwarder + DHCP perlu, pake dnsmasq kayak-e mudah..., hohoho)
   
    Modem 1 -----\                                           /---- Beberapa PC (internet-an)
                         -----Router------Switch ------ |----- Wireless (internet-an)
    Modem 2 -----/                                           \---- Server (Web+FTP)
2. Bisa (ke 192.168.3.1), reply
3. Bisa (ke 192.168.0.250 dan 192.168.1.250), reply
4. Bisa (kedua modem, 192.168.0.1 dan 192.168.1.1), reply
5. Bisa (internet), reply
6. Bisa, kedetek.. (pake dns telkom)

namun, masih belum bisa konek lewat web...

Gmn mas, pak??? Ada tanggapan??? Sebelumnya Matur nuwun banget untuk semuanya yang telah nyemangatin saya, yang bloon ini.. hohohoh... Thx yah??

aku tnggu reply-nya..

Re: load balance dengan ubuntu

coba weightnya diatur

speedy yang stabil dikasih angka 5
speedy yang kirang stabil, dikasih angka 2

perlu diingat bahwa metode load balancing ini berbasis routing cache
(mengingat jalur), jadi kemungkinan suatu request (yang pernah diakses) akan melewati jalur yang sama.

smile

Re: load balance dengan ubuntu

hehehe lucu juga cara pertanyaannya smile
seru2 smile

Saya mengandaikan kayak seseorang, intinya seseorang harus berusaha dulu semaksimal mungkin, meskipun hasil-e ga mampu ga masalah, ntar ada yang backup, gitu loh... Heheheheh. Eh, ternyata mungkin beda ya??? Mohon koreksinya.... (pertanyaan 1)

jawab 1 : koneksi berdasar TCP/handshake, sesi harus selesai dgn/pada jalur yg sudah terbuat. khusus pada pertanyaan ini, kecil kemungkinan backup akan jalan tanpa parameter tambahan pada konfigurasi load-balancing-nya, atau setidaknya klien memicu koneksi baru ke destinasi lainnya.

Saya install ulang ubuntu-nya (soale bingung, ntar masih ada yang kesisa routing table ato firewall-nya). Dan saya ulangi lagi dari awal, tanpa install dnsmasq. Eh, ternyata sudah bisa, client nge-ping ke internet dan reply. Bedanya, saya pake koneksi speedy yang stabil sbg hop pertama dan yg g stabil d hop kedua

hehehe, itukan tinggal skrip yang lama dibuang, terus reboot aja, kok di-install ulang? smile
DNS kecil sekali hubungannya dgn load-balancing. dnsmasq atau BIND sama saja yang penting klien bisa resolv nama - maka beres smile

[pertanyaan 2] Apa musti harus dimatikan dulu fasilitas Wireless pada modem speedy agar traffik bisa benar2 terpisah dengan baik (load balance-nya). Soale dulu saya nyoba yang berhasil itu pas malem2 banget (jadi ndak ada yang ganggu trafiknya)

jawab 2 : nggak perlu sepertinya & hampir nggak ada hubungannya, kecuali modem-nya ada skrip2 khusus yang memisah akses kabel dan nirkabel smile

Saya cek, kedua modem speedy sama-sama konek. Dan traffik malah dari speedy1 (yang mana banyak yg ngonek-kan kesini, harus-e dapat traffik-e dikit, tapi malah maksimum[100-an lebih kbps]). Lha malah dari speedy2 (yang jarang konek), malah ga ada traffik sama sekali. Jadi, kalo sebenere saya pake laptop nyambung ke speedy2, kecepatan bisa maksimum juga[100-an lbih kbps].

lihat jawaban # 1 smile

Oya, tadi barusan baru bahas client bisa ping ke internet dan reply. Tapi, kenapa kok ketika buka browser ndak bisa yah?? [pertanyaan 3]

jawab 3 : nggak ada yg spesifik, kalo udah bisa nge-PING ke internet berarti tinggal masalah firewall atau proxy.

[untk uji pertama dari server, yang troubleshooting itu], pertanyaan 5 yang ga mudheng?? [parameter /etc/sysctl.conf yang lain udah sesuai?] Soalnya yg tutorial-nya cuman mengaktifkan rules ip-forwarding. Jadi, kalo emang gitu aja, semua uji untuk server udah sempurna.

mungkin parameter sysctl yang dimaksud sama saja dgn tutorial kang onno = ip_forward,
walaupun masih ada parameter yg lain smile

kalo udah jalan, berarti syukur - bagus smile

[untuk uji kedua dari client]. !
1. Planning-nya nanti ada 1 server yang dipublik (webserver dan ftp server). Gambarnya begini: Tapi, kalo misal ntar route table-nya agak panjang. Ntar cukup yang koneksi buat ngenet saja... (DNS forwarder + DHCP perlu, pake dnsmasq kayak-e mudah..., hohoho)

untuk uji coba kan? masalah DNS server-nya buang aja dulu, pakai dari modem saja untuk router load-balance-nya, klien juga sama, atau isi saja statik ke DNS speedy.

kalo udah jalan semua, baru di-oprek2 lagi DNS-nya smile

ada baiknya semua berawal dari sederhana, kecil2an dulu smile

HTH.

Re: load balance dengan ubuntu

Oya, kemaren sudah ngoborl2 sama mas faisal reza... nah, kesimpulannya adalah iptables yang dibuat pada file iptables.rules ga mau jalan pada saat restart. Dan saya coba cari info di google, ternyata scriptnya bukan "up iptables-restore < iptables.rules" tapi haruse "pre-up iptables-restore < iptables.rules"

Saya baca help-nya ubuntu bagian iptables. Dan setelah itu saya restart, ternyata sudah bisa terus, baik ping maupun buka di browser dari client

Oya, aku inget sih ttg handshake itu, lupa2 inget... hahaha

sik, review hal yang masih belum mudheng ini mas.... Pada saat tertentu kita bisa download secara maksimum dg kecepatan 200-ab kbps. Tapi, pada saat yang lain cuma menthok di kecepatan 1 speey (100-an kbps). itu pada saat di server.

Klo di client, pada saat cuman 1 client, kcepatan download juga menthok 100-an kbps... tapi ketika lebih dari = 2, kcepatan bisa terbagi dengan maksimal....

kenapa bisa begitu mas????? beban trafik data-ne itu berati tiap 1 alamat internet untuk 1 interfaces???? saya denger2 istilah per session ato per apa gitu yang satunya, bener ga?? emng gitu??? tapi, kok pada saat tertentu bisa download dg kecepatan maksimum?? Apa hal ini karena routing cache seperti yang dibilang mas faisal reza... jadi, pernah terjadi koneksi kedua modem speedy pada alamat yang sama itu????

Oya, ngomong2 ttg bonding bisa review??? Kalo menurut saya, bonding dan load balance kayak hampir sama, tinggal sudut pandang saja.... Kalo bonding menggabungkan bbrpa koneksi ke 1 koneksi, berati dari luar ke dalam. Kalo load balance memisahkan beban trafik ke bbrpa koneksi, jadi dari dalam ke luar. Heheheh, bener gitu ga???

Tapi, kalo saya liat pembahasan di thread yg lain ga bisa dianggap 1. Nah, untuk mendapatkan kecepatan maksimum koneksi dr bbrpa koneksi, trus pake apa???

Thx b4... Terimakasih buat kang abdi-ae, nginngetin ttg jabat tangan-e koneksi TCP/ip.. Untuk mas faisal jg makasih chat-ingannya ngasih tau ttg iptables yg ga keload pada saat restart...

Re: load balance dengan ubuntu

Thank's B4 buat master-master semua...
saya sudah berhasil menjalankan LB dengan baik di ubuntu 8.04
tapi masalahnya untuk game online seperti 9Dragon, Point BlanK, FB Poker kok suka disconect sendiri ya? solusinya bagaimana?
Terimakasih untuk jawabannya...

Re: load balance dengan ubuntu

Wah...lm g nulis dsni ud rame neh...kl mslh dc ndiri ni krn koneksinya g persistent mas..kyanya dl saya bs ngatasinya pake Nth di iptables, tp iptablesnya kudu dpatch pake patch-o-matic dl tuh mas...CMIIW

Re: load balance dengan ubuntu

penjelasan yang bagus,..... menarik  untuk di coba..... kalo udah di coba

21

Re: load balance dengan ubuntu

zitux@zitux:~$ nslookup
> set type=any
> dns.persegi.net
Server:        192.168.2.1
Address:    192.168.2.1#53

** server can't find dns.persegi.net: NXDOMAIN
>

mas klo jawaban seperti itu salah dimana ya ?

=============================
nubie Mohon Dibantu....   http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/9.gif

22 (edited by ozi 11-07-2010 05:23:01)

Re: load balance dengan ubuntu

Abis dah bisa jalan
ip sudah berubah2 << whatismyip.com
bwm-ng rx tx sudah jalan
tp koneksi tambah lemot lambat gak seperti pake 1 line ?????
bisa bantuin ??

# The loopback network interface
auto lo
iface lo inet loopback
# SPEDDY1
auto eth0
iface eth0 inet static
address 192.168.1.7
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
up ip route add 192.168.1.0/24 dev eth0 src 192.168.1.7 table SPEEDY1
up ip route add default via 192.168.1.1 table SPEEDY1
up ip rule add from 192.168.1.7 table SPEEDY1
#SPEDDY2
auto eth2
iface eth2 inet static
address 192.168.3.7
netmask 255.255.255.0
network 192.168.3.0
broadcast 192.168.3.255
gateway 192.168.3.1
up ip route add 192.168.3.0/24 dev eth2 src 192.168.3.7 table SPEEDY2
up ip route add default via 192.168.3.1 table SPEEDY2
up ip rule add from 192.168.3.7 table SPEEDY2
#LAN
auto eth1
iface eth1 inet static
address 192.168.2.1
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
dns-search dns.persegi.net
## Balance Koneksi dilakukan disini
## Sesuaikan angka weight untuk bagi beban
        up ip route replace default scope global nexthop via 192.168.1.1 dev eth0 weight 2 nexthop via 192.168.3.1 dev eth2 weight 2
=============================
nubie Mohon Dibantu....   http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/9.gif

23

Re: load balance dengan ubuntu

ozi wrote:

zitux@zitux:~$ nslookup
> set type=any
> dns.persegi.net
Server:        192.168.2.1
Address:    192.168.2.1#53

** server can't find dns.persegi.net: NXDOMAIN
>

mas klo jawaban seperti itu salah dimana ya ?

SOLVED big_smile
yg punya masalah sama bisa coba edit seri Zona

sebuah tips: Banyak orang menggunakan tanggal terakhir edited sebagai seri dari zona, seperti 2009022605 yang yyyymmddss (di
mana angka serial), setiap edit file configurasi tersebut agar mengganti serial tersbut dengan tanggal terbaru bertujuan agar bind9
segera mengupdate perubahaannya.

tq

=============================
nubie Mohon Dibantu....   http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/9.gif

24

Re: load balance dengan ubuntu

ozi wrote:

Abis dah bisa jalan
ip sudah berubah2 << whatismyip.com
bwm-ng rx tx sudah jalan
tp koneksi tambah lemot lambat gak seperti pake 1 line ?????
bisa bantuin ??

# The loopback network interface
auto lo
iface lo inet loopback
# SPEDDY1
auto eth0
iface eth0 inet static
address 192.168.1.7
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
up ip route add 192.168.1.0/24 dev eth0 src 192.168.1.7 table SPEEDY1
up ip route add default via 192.168.1.1 table SPEEDY1
up ip rule add from 192.168.1.7 table SPEEDY1
#SPEDDY2
auto eth2
iface eth2 inet static
address 192.168.3.7
netmask 255.255.255.0
network 192.168.3.0
broadcast 192.168.3.255
gateway 192.168.3.1
up ip route add 192.168.3.0/24 dev eth2 src 192.168.3.7 table SPEEDY2
up ip route add default via 192.168.3.1 table SPEEDY2
up ip rule add from 192.168.3.7 table SPEEDY2
#LAN
auto eth1
iface eth1 inet static
address 192.168.2.1
netmask 255.255.255.0
network 192.168.2.0
broadcast 192.168.2.255
dns-search dns.persegi.net
## Balance Koneksi dilakukan disini
## Sesuaikan angka weight untuk bagi beban
        up ip route replace default scope global nexthop via 192.168.1.1 dev eth0 weight 2 nexthop via 192.168.3.1 dev eth2 weight 2

SOLVED big_smile
dgn mematikan uwf / firewall

sudo ufw disable
=============================
nubie Mohon Dibantu....   http://l.yimg.com/us.yimg.com/i/mesg/emoticons7/9.gif

Re: load balance dengan ubuntu

gan........ maaf ganggu bang
saya sudah menerapkan cara loadbalancinya mas REZA, saya pasang 2 Speedy
tapi kok ketika saya mendownload dari INDOWEBSTER saya cuma dapet 100Kbps, padahal kalo model penggabungan dengan MIKROTIK, saya bisa dapet 200Kbps
mohon pencerahanya

terima kasih

--------------------------------------------------------------------------
mudenge sue