Monday, April 18, 2011

Cara mengaktifkan ip forwarding (ip routing) pada Linux (CentOS, Fedora, RedHat)

Dalam keadaan tertentu kita terkadang memerlukan fungsi ip forwarding (ip routing) atau fungsi melewatkan paket ip dari satu port ke port lain secara dadakan. Oops tapi router (Cisco, Juniper, Huawei, dll) tidak tersedia. Kalau ada linux maka bisa digunakan sebagai pengganti router ...
Misalnya satu mesin linux memiliki 2 atau lebih port ethernet, port pertama memiliki network 192.168.1.0/24 dan port kedua 192.168.30.0/24, seperti pada gambar berikut:
Linux terhubung ke dua network - perlu ip forwarding supaya paket menyeberang

Pada konfigurasi linux default fungsi ip forwarding tidak aktif sehingga paket ip tidak mengalir karena ditahan pada linux, bisa dilihat dari hasil ping yang gagal:

C:\Users\toshiba>ping 192.168.30.71
Pinging 192.168.30.71 with 32 bytes of data:
Request timed out.
Request timed out.
Ping statistics for 192.168.30.71:
    Packets: Sent = 2, Received = 0, Lost = 2 (100% loss),
Control-C
^C


Untuk mengaktifkan ip forwarding bisa dilakukan dengan perintah berikut pada Linux centOS, Fedora dan ReHat, sedangkan untuk Linux distro lain perlu dicarikan perintah yang relevan:


[root@appserver ~]# /sbin/sysctl -w net.ipv4.ip_forward=1
net.ipv4.ip_forward = 1


Dan hasilnya pada PC client bisa dilihat bahwa ping telah berhasil berikut ini:

C:\Users\toshiba>ping 192.168.30.71
Pinging 192.168.30.71 with 32 bytes of data:
Reply from 192.168.30.71: bytes=32 time=2ms TTL=63
Reply from 192.168.30.71: bytes=32 time=2ms TTL=63
Reply from 192.168.30.71: bytes=32 time=8ms TTL=63

Ping statistics for 192.168.30.71:

    Packets: Sent = 3, Received = 3, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 2ms, Maximum = 8ms, Average = 4ms
Control-C
^C



(Tangsel 18apr11)