Routing 2 ISP(2IP) 1 Server How to

Keadaan:
Memakai 2 ISP..
1 Server Linux yg dijadikan router ..

Punya 3 Lan card..

3 IP .. (1 ke modem ISP 1 Wireless IIX , 1 ke Modem ISP 2 AdsL Inter, 1 ke Hub/Switch)
Ip 1 : 202.2.2.2 (Ip dari ISP 1 IIX)
Ip 2 : 203.2.2.2 (Ip dari ISP 2 Inter)
Ip 3: 192.168.0.1 (Menuju Hub Switch)

Dalam keadaan diatas saya ingin membagi 2 antara koneksi games dan koneksi Internet browsing..
[root@router ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth2
203.2.2.0       0.0.0.0         255.255.255.0   U     0      0        0 eth1
202.2.2.0       0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth2
0.0.0.0         202.2.2.1       0.0.0.0         UG    0      0        0 eth0
[root@router ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:03:FF:34:5C:EC
inet addr:202.2.2.2  Bcast:202.2.2.255  Mask:255.255.255.0
inet6 addr: fe80::203:ffff:fe34:5cec/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:96 errors:0 dropped:0 overruns:0 frame:0
TX packets:147 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:12722 (12.4 KiB)  TX bytes:8048 (7.8 KiB)
Interrupt:11 Base address:0×6000

eth1      Link encap:Ethernet  HWaddr 00:03:FF:37:5C:EC
inet addr:203.2.2.2  Bcast:203.2.2.255  Mask:255.255.255.0
inet6 addr: fe80::203:ffff:fe37:5cec/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:207 errors:0 dropped:0 overruns:0 frame:0
TX packets:30 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:19322 (18.8 KiB)  TX bytes:3196 (3.1 KiB)
Interrupt:11 Base address:0×6000

eth2      Link encap:Ethernet  HWaddr 00:03:FF:36:5C:EC
inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
inet6 addr: fe80::203:ffff:fe36:5cec/64 Scope:Link
UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
RX packets:574 errors:0 dropped:0 overruns:0 frame:0
TX packets:270 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:51762 (50.5 KiB)  TX bytes:30191 (29.4 KiB)
Interrupt:11 Base address:0×8000

lo        Link encap:Local Loopback
inet addr:127.0.0.1  Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING  MTU:16436  Metric:1
RX packets:105 errors:0 dropped:0 overruns:0 frame:0
TX packets:105 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:9449 (9.2 KiB)  TX bytes:9449 (9.2 KiB)

[root@router ~]# route add default gw 203.2.2.1 netmask 0.0.0.0 dev eth1
[root@router ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         203.2.2.1       255.255.255.0   UG    0      0        0 eth1
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth2
203.2.2.0       0.0.0.0         255.255.255.0   U     0      0        0 eth1
202.2.2.0       0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth2
0.0.0.0         203.2.2.1       0.0.0.0         UG    0      0        0 eth1
0.0.0.0         202.2.2.1       0.0.0.0         UG    0      0        0 eth0
[root@router ~]# route add default gw 203.2.2.1 netmask 0.0.0.0 dev eth1

kita lihat table routing berikut

169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth2

itu tidak kita gunakan dan table yang sengaja aku buat salah tadi jadi kita pake perintah

[root@router ~]# route del -net 169.254.0.0 netmask 255.255.0.0 gw 0.0.0.0
[root@router ~]# route del -net 0.0.0.0 netmask 255.255.255.0 gw 203.2.2.1
[root@router ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.0.0     0.0.0.0         255.255.255.0   U     0      0        0 eth2
203.2.2.0       0.0.0.0         255.255.255.0   U     0      0        0 eth1
202.2.2.0       0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         203.2.2.1       0.0.0.0         UG    0      0        0 eth1
0.0.0.0         202.2.2.1       0.0.0.0         UG    0      0        0 eth0
[root@router ~]#

ok berarti disini kita sudah melihat routing table kita terlihat disana bahwa dari dan tujuan
gateway kita dengan netmask semua netmask kita ikutkan dan itu berarti eth0 dan eth1 sudah terkoneksi ke
isp masing2. coba saja ping ke ip2 gateway itu.

[root@router ~]# ping 202.2.2.1 -c 2
PING 202.2.2.1 (202.2.2.1) 56(84) bytes of data.
64 bytes from 202.2.2.1: icmp_seq=1 ttl=128 time=41.8 ms
64 bytes from 202.2.2.1: icmp_seq=2 ttl=128 time=2.73 ms

— 202.2.2.1 ping statistics —
2 packets transmitted, 2 received, 0% packet loss, time 1007ms
rtt min/avg/max/mdev = 2.734/22.274/41.814/19.540 ms
[root@router ~]# ping 203.2.2.1 -c 2
PING 203.2.2.1 (203.2.2.1) 56(84) bytes of data.
64 bytes from 203.2.2.1: icmp_seq=1 ttl=128 time=0.963 ms
64 bytes from 203.2.2.1: icmp_seq=2 ttl=128 time=0.821 ms

— 203.2.2.1 ping statistics —
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.821/0.892/0.963/0.071 ms
[root@router ~]#

ok sekarang kita sudah konek dengan gw kita, sekarang kita beralih ke arah iptables kita
di iptables kita akan masquerade dari kedua ip public kita ke satu tujuan yaitu eth2 dengan ip lokal
192.168.0.1 kita akan masukkan iptables kita di rc.local supaya bisa di load setiap kali pc router kita di nyalakan

===========================================================================================

#!/bin/sh
#
# This script will be executed *after* all the other init scripts.
# You can put your own initialization stuff in here if you don’t
# want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
service iptables stop
/sbin/iptables -F
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/route del -net 169.254.0.0 netmask 255.255.0.0 gw 0.0.0.0
/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -d 0/0 MASQUERADE
/sbin/iptables -A FORWARD -p tcp –dport 80 -i eth0 -s 192.168.0.1 -j DROP
/sbin/iptables -A FORWARD -p tcp –dport 80 -i eth1 -s 192.168.0.1 -j ACCEPT
/sbin/iptables -A FORWARD -p tcp –dport 0:79 -i eth1 -s 192.168.0.1 -j DROP
/sbin/iptables -A FORWARD -p tcp –dport 80:61000 -i eth1 -s 192.168.0.1 -j DROP
/sbin/iptables -A FORWARD -p tcp –dport 0:79 -i eth0 -s 192.168.0.1 -j ACCEPT
/sbin/iptables -A FORWARD -p tcp –dport 80:61000 -i eth0 -s 192.168.0.1 -j ACCEPT

/sbin/iptables -A FORWARD -p tcp –dport 80 -i eth0 -d 202.2.2.2 -j REJECT
/sbin/iptables -A FORWARD -p tcp –dport 80 -i eth1 -d 203.2.2.2 -j ACCEPT
/sbin/iptables -A INPUT -s 192.168.0.1 -d 202.2.2.2 –dport 80 -j DROP
/sbin/iptables -A INPUT -p -s 192.168.0.1 -d 202.2.2.2 –dport 80 -j DROP
/sbin/iptables -A INPUT -s 192.168.0.1 -d 203.2.2.2 –dport 80 -j ACCEPT
/sbin/iptables -A INPUT -p -s 192.168.0.1 -d 203.2.2.2 –dport 80 -j ACCEPT

================================================================================================

[root@router netfilter]# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination
MASQUERADE  all  –  0.0.0.0/0            0.0.0.0/0           MARK match 0×9

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
[root@router netfilter]#

nah setelah itu coba saja kita gunakan jika masih salah kita edit lagi dengan syntac yang sama
tetapi dengan merubah device atau ip dan aturan saja. di iptables ini hanya saya contohkan model iptables
dengan menggunakan metode FORWARD dan metode INPUT bisa kalian edit sendiri sesuai yang kalian mau
atau mempelajari manualnya iptables. dengan contoh di atas penulis sudah uci coba dengan aturan berikut
ip 203.2.2.1 dan 202.2.2.1 menjalankan httpd (80) dan ircd unreal (6660-7000)
dan ketika di ketik netstat terlihat listen dari ip sumber request terlihat.

sekian tutorial ini semoga banyak membantu
tidak lupa saya berterimakasih kepada ALLAH swt atas segala karunia NYA.
http://www.google.com  atas info dan arahannya.
http://www.wordpress.com atas space yang di berikan untuk block saya di http://ardantus.co.nr
http://www.co.nr atas domain gratis yang di berikan.
#indolinux@dalnet dan #fedora serta #iptables at freenode.net
semua teman2 yang memberi info dan dorogan moral agar saya selalu belajar.

semuanya thanks!!!

9 Responses to “Routing 2 ISP(2IP) 1 Server How to”

  1. zerg_ Says:

    good topic dj.. just what i need

  2. soulSurvivor Says:

    Baris perintah routing di bawah ini :
    [root@router ~]# route add default gw 203.2.2.1 netmask 0.0.0.0 dev eth1
    kayaknya ditulis 2x (?).

    Apa nggak sebaiknya menjadi :
    [root@router ~]# route add default gw 202.2.2.1 netmask 0.0.0.0 dev eth0
    ….. ???
    Kalau melihat dr table routing tersebut di atas.

    CMIIW, …. lho. :-D

  3. ndok mateng Says:

    soulSurvivor Says:
    Baris perintah routing di bawah ini :
    [root@router ~]# route add default gw 203.2.2.1 netmask 0.0.0.0 dev eth1
    kayaknya ditulis 2x (?).

    Apa nggak sebaiknya menjadi :
    [root@router ~]# route add default gw 202.2.2.1 netmask 0.0.0.0 dev eth0
    ….. ???
    Kalau melihat dr table routing tersebut di atas.

    CMIIW, …. lho.

    …???? default gw nya apa ga 1 aje bos
    ex di bsd
    route -q add default xxx.xxx.xxx.xxx/xx 203.2.2.1 (international)
    route -q add -net xxx.xxx.xxx.xxx/xx 202.2.2.1 (iix) <— di bsd sich gini (di linux /me kurang familiar )

    jadinya rajin dikit ampe tangan keriting ng…add ip per net :)

  4. ardantus Says:

    pas aku coba kemaren aku add 2 gw karena itu bukan pembagian bw dari 2 isp. tapi hanya 2 ip dari 2 isp yang masuk dengan 2 gw dan aturannya hanya satu boleh http dan satunya tidak but makasih atas comment nya. jika masih ada kesalahan mohon pembenaran dan makasih pula atas sharing ilmunya saya juga masih perlu belajar.

  5. andi Says:

    mas saya paek 2 isp yang satu speedy yang satu lagi …net nah ketika saya coba emang bisa tapi routeing nya malah lewat speedy semua sekalipun ke web server isp saya yang satu lagi. yang saya mau tanya apakah bisa / ngak klo di set routernya biar bisa nyari routing yang terdekat

  6. ardantus Says:

    hmm, eh ini bukan balancing lowh. tapi ini memisahkan mana yang ambil http dan bukan dan itu kasus dari orang batam. jika kasusnya load balancing beda lagi yaitu dengan membagi atau which. secara logikanya yaitu jika ada beban 10kb di koneksi pertama maka akan di bagi setengahnya ke koneksi kedua. dan itu memakai which. pernah coba beberapa kali meski pas pertama kali menulis routingnya pasti salah duluan btw coba akan aku tulis disini. beberapa hari ini sekaligus aku coba nantinya saya coba koneksi 2 yaitu indonet dan melsa bandung. btw thanks atas commentnya.jika cari routing terdekat aku belum nyoba tuh.

  7. andi Says:

    mas saya udah coba tapi koq gak berhasil yah browsing nya tetep aja ke ISP yang ke satu padahal udah saya pindahin ke ISP yang ke dua ketika saya cek ip di whatismyip.com ternyata masih pake ISP yang ke satu

  8. ardantus Says:

    ada, baiknya mending chating di mirc saja klo mau lebih enak lewat sini tidak akan menyelesaikan masalah. tutorial di atas hanya memisahkan koneksi ke port 80 ke isp a dan port lain ke isp b tidak seperti yang kasusmu. nah lagian secara logika tidak mungkin khan kamu pake 2 isp tapi muncul di whatismyip.com munculnya ipnya 2. tetep satu. sedangkan jika kita membuat loadbalancing dengan 2 koneksi 2 isp ip yang muncul itu tetep ip isp pertama yang kita buat default dan isp satunya hanya mengurangi setengah beban dari koneksi ke isp pertama bukannya memakai 2 koneksi trus munculnya 2 ip juga itu tidak mungkin kurasa. karena di syntax pengaturan load balancing adalah jika koneksi ke isp pertama terjadi maka akan di bagi 2 dan satunya lari ke isp kedua. jadi di kenalnya tetap ip isp default yang pertama. klo mau konsult sama temen2 di #indolinux @dalnet nick aku Dj-avu atau bisa di #awali . gw tunggu disana saya ol setiap hari jam 00-09.00 wib.

  9. Atoz a.k.a ROT-13 » Hari yang Melelahkan Says:

    [...] : “Pedoman Membangun Server Linux” karya pak Onno W. Purbo. Routing 2 ISP(2IP) 1 Server How to. Linux Advanced Routing & Traffic Control HOWTO – Chapter [...]

Leave a Reply