Senin, 30 April 2012

Implementasi Static NAT

Pada kesempatan kali ini saya akan menyampaikan contoh sederhana penggunaan Network Address Translation (NAT) yang sangat sederhana. Penggunaan NAT itu sendiri masih menggunakan utility IPTABLES pada sistem operasi Ubuntu Server.
Saya akan sedikit menjelaskan mengenai fungsi NAT, yaitu suatu fitur dari sebuah router untuk melakukan pembungkusan (masquerading) IP Address. Proses ini dibutuhkan saat IP private menginginkan untuk dapat berkomunikasi dengan jaringan luar yang menggunakan IP public. Karena IP private tidak dapat berkomunikasi dengan IP public, maka diperlukan sebuah IP public yang digunakan untuk perantara komunikasi antara jaringan internal dengan jaringan luar.

Dari penjelasan di atas dapat diketahui bahwa NAT berfungsi untuk membungkus sebuah IP address dengan IP lainnya. Dalam praktek ini saya akan menggunakan topologi seperti berikut :



Dari gambar topologi di atas dapat kita ketahui ada 3 network yang berbeda (dibedakan berdasarkan kelas IP Address). Untuk menghubungkan ketiga network tersebut agar dapat saling terkoneksi tentu diperlukan penggunaan konsep routing. Supaya PC 1 dapat terkoneksi dengan PC 2, maka PC 1 harus mengetahui bahwa ada network 10.0.0.0/8 di belakang Router - NAT, lalu Router - NAT juga harus mengetahui bahwa ada network 192.168.0.0/24 di belakang Router. Saat ada pengenalan antar network, barulah PC 1 dapat terkoneksi dengan PC 2. Hal itu berlaku juga untuk arah yang
sebaliknya (dari PC 2 ke PC 1).

Dalam hal ini saya membuat sebuah skenario sederhana dengan mengenalkan kepada Router - NAT bahwa ada network 192.168.0.0/24 di belakang Router. Setelah ada pengenalan routing, Router - NAT dapat terkoneksi dengan network 192.168.0.0/24. Lalu setelah itu IP address Router - NAT akan membungkus IP address PC 1, sehingga PC 1 dapat terkoneksi dengan PC 2 tanpa ada pengenalan routing yang dilakukan pada PC 1.

Setelah sedikit pendahuluan, sekarang saya akan langsung memberikan tutorial cara menjalankan skenario sederhana di atas. Lakukan langkah-langkah berikut :
  1. Siapkan topologi dengan menggunakan virtualisasi sistem. Dalam hal ini saya menggunakan 4 buah sistem virtual menggunakan Ubuntu Server 6.06.
  2. Lakukan konfigurasi pengalamatan addressing dengan spesifikasi seperti berikut :
    a. PC 1 = 172.16.0.10/16
    b. PC 2 = 192.168.0.10/24
    c. Router 1 fe:00 = 172.16.0.1/16
    Router 1 fe:01 = 10.0.0.10/8
    d. Router 2 fe:00 = 10.0.0.1/8
    Router 2 fe:01 = 192.168.0.1/24
  3. Cara konfigurasi IP address pada Ubuntu dapat anda dapatkan pada materi mengenai Konfigurasi IP Address pada Ubuntu.
  4. Setelah konfigurasi addressing selesai, aktifkan fitur IP Forward pada Router - NAT dan juga pada Router.
  5. Buka file /etc/sysctl.conf dengan menggunakan utility nano (atau dengan menginputkan perintah nano /etc/sysctl.conf). Setelah itu hapus tanda # (cress / pagar) pada line net.ipv4.ip_forward=1.


  6. Setelah itu exit dari utility nano dengan menekan tombol Ctrl + X pada keyboard dan simpan (save) perubahan pada file tersebut.7. Aktifkan perubahan pada file /etc/sysctl.conf dengan mengetikan perintah sysctl -p.
  7. Setelah kedua Router memiliki fitur IP Forward, maka selanjutnya adalah mengenalkan kepada Router - NAT bahwa ada network 192.168.0.0/24 di belakang Router. Perhatikan gambar berikut :


    *) Sebelum dilakukan pengenalan routing, Router - NAT tidak dapat terkoneksi dengan PC 2, namun setelah ada pengenalan routing, Router - NAT dapat terkoneksi dengan PC 2.
  8. Lakukan konfigurasi NAT pada Router - NAT untuk membungkus IP dari PC 1. Gunakan perintah iptables -t nat -A POSTROUTING -s 172.16.0.0/16 -o eth1 -j MASQUERADE. Untuk melihat hasil konfigurasi, gunakan perintah iptables -t nat -L.


  9. Setelah itu lakukan pengujian dengan uji koneksi dari PC 1 ke PC 2. Gunakan perintah ping 192.168.0.10 dari PC 1.
Secara konsep, tanpa adanya routing dari PC 1 ke PC 2, maka PC 1 tidak akan terkoneksi dengan PC 2. Namun karena IP PC 1 sudah terbungkus oleh IP Router - NAT pada eth1 (fe:01), maka PC 1 sudah dapat terkoneksi dengan PC 2, karena Router - NAT sudah mendapat pengenalan routing sebelumnya.

Tidak ada komentar:

Posting Komentar