Minggu, 05 April 2009

Internet Connection Sharing

kebetulan tadi malam saya baru lagi menginstall linux sebagai ICS, maka saya akan tulis kembali di dalam blog ini maklum pelupa :D.ICS atau sharing internet ini banyak di gunakan di kalangan warung internet ( WARNET ) , atau bahkan di kantor-kantor dan institusi tertentu. Tujuannya di buat server internet sharing connection ini adalah diantaranya untuk menghemat pemakaian IP address public pada Lokal Area Network. Dalam install kali ini saya masih tetep menggunakan distro linux Fedora. Sebagai ilustrasi, dalam contoh kali ini saya mendapat settingan ip dari isp sebagai berikut

IP Public : 192.168.0.2

Netmask : 255.255.255.0

Gateway : 192.168.0.102

Broadcast : 192.168.0.255

DNS 1 : 222.124.204.34

DNS 2 : 203.130.193.74

Rencananya akan di buat ip lokal dengan settingan sebagai berikut

IP Lokal : 192.168.1.1 ? sebagai ip server

IP Lokal : 192.168.1.2 ? sebagai ip pc 1

IP Lokal : 192.168.1.3 ? sebagai ip pc 2 dst

Dalam hal ini, saya asumsikan Linux Fedora telah terinstall di pc anda dengan terpasang 2 buah ethernet. Apabila masih bingung dengan cara installasi, silakan baca kembali artikel tentang installasi yang pernah saya tulis sebelumnya.

Baiklah selanjutnya kita periksa apakah ethernet sudah terdeteksi atau belum, biasanya sih langsung terbaca oleh linux, kita bisa mengeceknya dengan perintah lspci

[root@cartoonet ~]# lspci

00:0e.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

00:10.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

apabila ada tampilan seperti di atas, berarti ethernet sudah terdeteksi oleh linux. Berikutnya kita isi masing-masing ethernet dengan ip address yang telah kita tentukan, sehingga isinya seperti berikut ini :

untuk eth0 kita isi dengan ip public

[root@cartoonet ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0

# Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+

DEVICE=eth0

BOOTPROTO=none

BROADCAST=192.168.0.255

HWADDR=00:80:48:1F:85:FA

IPADDR=192.168.0.2

NETMASK=255.255.255.0

NETWORK=192.168.0.0

GATEWAY=192.168.0.102

ONBOOT=yes

untuk eth1 kita isi dengan ip lokal

[root@cartoonet ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth1

# Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+

DEVICE=eth1

ONBOOT=yes

BOOTPROTO=none

HWADDR=00:50:bf:58:f6:79

IPADDR=192.168.1.1

NETMASK=255.255.255.0

GATEWAY=192.168.0.2 ? ini adalah ip public / eth0

BROADCAST=192.168.1.255

selanjutnya isikan ip DNSnya di resolv.conf, sehingga seperti berikut ini

[root@cartoonet ~]# cat /etc/resolv.conf

nameserver 222.124.204.34

nameserver 203.130.193.74

lalu kita aktifkan fitur forwading nya sehingga menjadi seperti berikut ini

[root@cartoonet ~]# cat /etc/sysctl.conf

# Controls IP packet forwarding

net.ipv4.ip_forward = 1 ? angka ini asalnya 0, untuk mengaktifkanya kita edit menjadi 1

kemudian di komputer client kita isikan ip address nya seperti berikut

IP : 192.168.1.2

Netmask : 255.255.255.0

Gateway : 192.168.1.1

DNS 1 : 222.124.204.34

DNS 2 : 203.130.193.74

setelah itu lakukan ping ke ip public 192.168.0.2, apabila hasilnya reply berarti ip forwarding sudah aktif. Namun kok belum bisa browsing ya..?? kenapa demikian?.. karena fitur Internet Connection Sharing belum kita aktifkan. nah disini kuncinya agar pc client bisa berinternet ria. Kita aktifkan fitur ICSnya dengan menggunakan perintah berikut :

[root@cartoonet ~]# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

keterangan dari perintah diatas :

  • 192.168.1.0/24 adalah network address LAN atau alamat komputer-komputer lokal

  • eth0 di asumsikan sebagai ethernet card yang terhubung dengan isp / atau eth0 = ip public

apabila ip address komputer-komputer lokal tidak diketahui, atau berubah-ubah kita juga bisa menggunakan perintah berikut :

[root@cartoonet ~]# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

terlihat jelas perbedaanya dengan perintah sebelumnya kan?

Namun dalam artikel ini saya menyarankan menggunakan perintah berikut ini :

[root@cartoonet ~]# iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT –to-source 192.168.0.2

keterangan dari perintah diatas :

  • 192.168.1.0/24 adalah network address LAN atau alamat komputer-komputer lokal

  • 192.168.0.2 adalah ip address yang langsung menuju ke isp / ip public

  • eth0 di asumsikan sebagai ethernet card yang terhubung dengan isp / atau eth0 = ip public

untuk melihat hasil dari perintah di atas kita bisa melihatnya dengan perintah berikut

[root@cartoonet ~]# iptables -t nat -nvL

Chain POSTROUTING (policy ACCEPT 154 packets, 11063 bytes)

pkts bytes target prot opt in out source destination

6535 323K SNAT 0 — * eth0 192.168.1.0/24 0.0.0.0/0 to:192.168.0.2

apabila hasilnya seperti itu, berarti fitur Internet Connection Sharing sudah berhasil, selanjutnya tinggal mencoba ping dari pc client misal ke yahoo.com

C:\Documents and Settings\admin>ping yahoo.com

Pinging yahoo.com [68.180.206.184] with 32 bytes of data:

Reply from 68.180.206.184: bytes=32 time=328ms TTL=49

Reply from 68.180.206.184: bytes=32 time=378ms TTL=49

Reply from 68.180.206.184: bytes=32 time=336ms TTL=49

agar settingan tersebut tidak berubah ketika pc server di restart. Maka masukan perintah SNAT di atas ke /etc/rc.d/rc.local , sehingga seperti berikut ini :

[root@cartoonet ~]# cat /etc/rc.d/rc.local

#!/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

#untuk mengaktifkan fitur ICS

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j SNAT –to-source 192.168.0.2

catatan : konfigurasi diatas hanya sekedar untuk sharing internet saja, belum disertai dengan firewall,proxy,bandwidht management dll. Karena sesuai dengan judulnya Internet Connection Sharing ( simple Version ). semoga tulisan ini bermanfaat bagi yang membacanya .amiin.

Anda punya saran, kritikan, cacian, atau sekedar numpang narsis, silakan tulis di komentar :d.

Tidak ada komentar: