1 Internet Gateway dengan multiple ISP By Henry Saptono Jul 2008 I. Pendahuluan Memiliki jalur koneksi internet lebih dari satu koneksi tentunya akan ...
I. Pendahuluan Memiliki jalur koneksi internet lebih dari satu koneksi tentunya akan meningkatkan layanan akses internet bagi local area network Anda. Bagaimana tidak, coba bayangkan jika Anda hanya bergantung pada satu jalur koneksi internet (jalur ISP, ISP=internet service provider) ketika ada failure pada koneksi tersebut maka local area network Anda tentunya juga tidak akan dapat mengakses internet. Inilah contoh dari single point of failure, bagi sebuah warnet maka hal ini akan menyebabkan kerugian yang tidak sedikit. Untuk itu perlu dipertimbangkan untuk memiliki jalur alternatif atau backup. Paling tidak, dengan dimilikinya jalur koneksi internet ke beberapa (multiple) ISP dapat dimanfaatkan untuk pembagian beban traffic internet, dengan harapan seluruh traffic ke internet yang berasal dari local area network Anda, dapat displit ke beberapa jalur koneksi (ISP). Bagi sebuah warnet ini juga akan mencegah terjadinya single point of failure dari layanan akses internet pada warnet tersebut. Pada tulisan kali ini penulis bertujuan menjelaskan implementasi internet gateway dengan 2 jalur koneksi ISP (menggunakan ADSL) pada internet gateway yang berbasis distro linux CentOS 5, dengan bantuan tool administrasi firewall yaitu shorewall. Pada tulisan ini hanya akan dibahas bagaimana mengkonfigurasi sebuah linux internet gateway yang memiliki 2 jalur koneksi internet ADSL agar akses internet bagi LAN dapat displit ke dua ISP atau dibagi beban traffic internetnya (load balancer).
II. Shorewall Shoreline Firewall atau lebih dikenalnya dengan istilah shorewall adalah suatu utilitas yang dapat digunakan untuk konfigurasi netfilter/iptables (firewall). Dengan shorewall Anda dapat mengkonfigurasi banyak hal tidak hanya yang terkait dengan firewall dan bandwith management tetapi juga yang terkait dengan routing. Untuk medapatkan software shorewall Anda dapat mengakases http://www.shorewall.net/download.htm. Jika Anda menggunakan distro seperti RedHat, CentOS, dan Fedora Anda juga dapat memperoleh paket shorewall dalam kemasan binary rpm melalui http://www.invoca.ch/pub/packages/shorewall/4.0/, atau Anda dapat mencarinya melalui repository paket rpm di http://rpm.pbone.net.
III. Skenario Penulis mengasumsikan pembaca telah mengerti bagaimana melakukan instalasi paket binary rpm atau pembaca dapat membaca artikel atau tutorial lainnya yang berkaitan dengan manajemen software di linux khususnya paket rpm. Untuk itu dengan asumsi Anda telah menginstal shorewall maka setelah itu Anda dapat langsung mengkonfigurasi shorewall yang Anda instal pada komputer internet gateway. Untuk memudahkan penjelasan maka penulis membuat sebuah skenario sebagaimana yang tampak pada gambar 1.
Ketentuan skenario berdasarkan gambar 1 adalah sebagai berikut: ● ●
Jalur koneksi internet terdiri dari 2 jalur koneksi (2 ISP) menggunakan modem ADSL. Komputer internet gateway memiliki 3 buah interface network yaitu eth0, eth1 dan eth2, masingmasing interface memiliki skenario IP address sebagai berikut:
●
●
eth0 adalah interface network yang terhubung langsung dengan modem ADSL ke ISP1. IP eth0 adalah 192.168.200.2 dengan netmask 255.255.255.252, sedangkan IP LAN untuk modem ADSL ke ISP1 adalah 192.168.200.1. eth1 adalah interface network yang terhubung langsung dengan modem ADSL ke ISP2. IP eth1 adalah 192.168.100.2 dengan netmask 255.255.255.252, sedangkan IP LAN untuk modem ADSL ke ISP2 adalah 192.168.100.1. eth2 adalah interface network yang terhubung dengan local area network 192.168.10.0/255.255.255.0
Konfigurasi yang diharapkan adalah traffic internet dapat dibagi bebannya ke dua jalur ISP yang ada (load balancer internet gateway), dan internet gateway mampu melakukan routing dengan benar meskipun salah satu jalur internet ada yang terputus (failure). Kebijakan default firewall adalah semua koneksi dari manapun ke manapun di DROP kecuali
jika koneksi berasal dari komputer gateway itu sendiri. ●
●
Traffic dari LAN ke internet yang dijinkan hanya SSH (22), HTTP(80),HTTPS(443), FTP(21 dan 20), DNS (53), SMTP(25) dan POP3(110). Segment jaringan yang ada akan dibagi menjadi 3 zone yaitu zone dsl1 (ke ISP1), dsl2(ke ISP2) dan lan (local area network).
IV. Konfigurasi Sesuai dengan skenario bahwa kita akan mengkonfigurasi komputer internet gateway dengan 2 buah jalur koneksi internet (multiple ISP), maka berikut ini penulis akan menjelaskan langkahlangkah konfigurasinya: ●
●
Pastikan agar shorewall dapat diaktifkan dengan mendefinisikan parameter STARTUP_ENABLED=Yes , pada file /etc/shorewall/shorewall.conf Mendefinisikan zone network dengan cara mengedit file /etc/shorewall/zones, sehingga isi file tersebut seperti berikut ini:
############################################################################ ### #ZONE TYPE OPTIONS IN OUT # OPTIONS OPTIONS fw firewall dsl1 ipv4 dsl2 ipv4 lan ipv4 #LAST LINE - ADD YOUR ENTRIES ABOVE THIS ONE - DO NOT REMOVE ●
Mendefinisikan interface untuk tiap zone yang telah didefinisikan dengan cara mengedit file /etc/shorewall/interfaces, sehingga isi file tersebut seperti berikut ini:
############################################################################ ### #ZONE INTERFACE BROADCAST OPTIONS dsl1 eth0 detect dsl2 eth1 detect lan eth2 detect #LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE ●
Mendefinisikan default policy, dengan cara mengedit file /etc/shorewall/policy, sehingga isi file tersebut seperti berikut ini:
############################################################################ ### #SOURCE DEST POLICY LOG LIMIT:BURST # LEVEL fw lan ACCEPT fw dsl1 ACCEPT fw dsl2 ACCEPT lan fw DROP info lan dsl1 DROP info lan dsl2 DROP info dsl1 fw DROP info
dsl1 dsl2 DROP dsl1 lan DROP dsl2 fw DROP dsl2 dsl1 DROP dsl2 lan DROP all all DROP #LAST LINE -- DO NOT REMOVE
●
info info info info info
Langkah berikutnya mendefinisikan dua jalur koneksi ke provider atau ISP (lihat gambar 1) , dengan mengedit file /etc/shorewall/providers
#NAME NUMBER MARK DUPLICATE INTERFACE GATEWAY OPTIONS DSL1 1 1 main eth0 192.168.200.1 track,balance DSL2 2 2 main eth1 192.168.100.1 track,balance #LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE
COPY eth2 eth2
Pada option balance jika Anda ingin membagi beban dengan perbandingan antara DSL1 dan DSL2 adalah 2 banding 1 traffic maka option balance pada DSL1 diset menjadi balance=2, sedangkan DSL2 balance=1. Catatan: karena routing biasanya dicache maka balance hanya dapat berfungsi jika konfigurasi kernel Anda tidak menseting fitur CONFIG_IP_ROUTE_MULTIPATH_CACHED, atau pada file config kernel yang Anda gunakan saat ini parameter CONFIG_IP_ROUTE_MULTIPATH_CACHED=n .Cek saja config kernel Anda dengan perintah “grep i multipath_cached /boot/configversikernelanda” ● Mendefinisikan rule masquerade agar dapat menjadi internet sharing dengan multiple ISP yang dapat membagi traffic ke ISP1 dan ISP2, dengan cara mengedit file /etc/shorewall/masq. #INTERFACE SOURCE ADDRESS PROTO PORT(S) IPSEC eth0 192.168.100.2 192.168.200.2 eth1 192.168.200.2 192.168.100.2 eth0 eth2 192.168.200.2 eth1 eth2 192.168.100.2 #LAST LINE -- ADD YOUR ENTRIES ABOVE THIS LINE -- DO NOT REMOVE
SECTION NEW ACCEPT lan fw ACCEPT lan fw ACCEPT lan dsl1 ACCEPT lan dsl1 ACCEPT lan dsl2 ACCEPT lan dsl2 #LAST LINE -- ADD YOUR ●
MARK
tcp 20,21,22,25,53,80,110,443 udp 20,21,22,25,53,80,110,443 tcp 20,21,22,25,53,80,110,443 udp 20,21,22,25,53,80,110,443 tcp 20,21,22,25,53,80,110,443 udp 20,21,22,25,53,80,110,443 ENTRIES ABOVE THIS LINE -- DO NOT REMOVE
Langkah berikut ini sifatnya opsional hanya dilakukan jika Anda ingin menetapkan secara pasti agar komputer tertentu di dalam local area network (misalnya 192.168.10.2 dan
192.168.10.3) selalu melalui ISP1 dan ISP2. Untuk ini Anda dapat mengedit file /etc/shorewall/tcrules #MARK SOURCE DEST PROTO DEST SOURCE USER TEST #TOS # PORT(S) PORT(S) 1 192.168.10.2 0.0.0.0/0.0.0.0 2 192.168.10.3 0.0.0.0/0.0.0.0 #LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE ●
LENGTH
Selanjutnya aktifkan shorewall, atau jika sebelumnya sudah aktif maka restart shorewall agar membaca konfigurasi yang telah dibuat, seperti berikut ini:
[root@labtop1 ~]# shorewall start
atau [root@labtop1 ~]# shorewall restart
Agar shorewall diaktifkan otomatis saat proses boot lakukan perintah berikut ini: [root@labtop1 ~]# chkconfig shorewall on Selanjutnya silahkan Anda coba akses suatu website atau melakukan remote login ke suatu server yang ada di internet dari berbagai komputer dalam LAN, dan periksa apakah Anda terkoneksi ke internet melalui ISP1 ataukah ISP2. Untuk menjamin koneksi internet manakala adanya down atau putus koneksi pada salah satu ISP sebaiknya Anda membuat atau menggunakan script yang dapat mendeteksi putusnya koneksi ke ISP tersebut yang kemudian script itu dapat mereconfigure rule agar seluruh traffic dapat dialihkan ke ISP yang lainnya.