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:0x6000
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:0x6000
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:0x8000
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 0x9
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!!!

Specs My Server.

[root@lpds-125-163-0-1 ~]# cat /proc/cpuinfo
processor       : 0
vendor_id       : GenuineIntel
cpu family      : 15
model           : 2
model name      : Intel(R) Pentium(R) 4 CPU 1.80GHz
stepping        : 9
cpu MHz         : 1803.257
cache size      : 512 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe cid xtpr
bogomips        : 3609.53
clflush size    : 64
[root@lpds-125-163-0-1 ~]# cat /proc/meminfo
MemTotal:       498884 kB
MemFree:          6344 kB
Buffers:         33628 kB
Cached:         185440 kB
SwapCached:          0 kB
Active:         364024 kB
Inactive:        86692 kB
HighTotal:           0 kB
HighFree:            0 kB
LowTotal:       498884 kB
LowFree:          6344 kB
SwapTotal:     1020088 kB
SwapFree:      1019964 kB
Dirty:            3148 kB
Writeback:           0 kB
AnonPages:      231668 kB
Mapped:           7376 kB
Slab:            35512 kB
SReclaimable:    21928 kB
SUnreclaim:      13584 kB
PageTables:       1308 kB
NFS_Unstable:        0 kB
Bounce:              0 kB
CommitLimit:   1269528 kB
Committed_AS:   256376 kB
VmallocTotal:   524280 kB
VmallocUsed:      4400 kB
VmallocChunk:   519680 kB
HugePages_Total:     0
HugePages_Free:      0
HugePages_Rsvd:      0
Hugepagesize:     4096 kB
[root@lpds-125-163-0-1 ~]#