Rabu, 07 Mei 2014

NAT (Network Address Translation)


NAT adalah pengalihan suatu alamat IP ke alamat yang lain. Dan apabila suatu paket dialihkan dengan NAT pada suatu link, maka pada saat ada paket kembali dari tujuan maka link ini akan mengingat darimana asal dari paket itu, sehingga komunikasi akan berjalan seperti biasa.
Kenapa orang-orang menggunakan NAT ?

  •  Koneksi Modem ke Internet.
 Kebanyakan ISP akan memberikan satu alamat IP pada saat anda melakukan dial up ke internet. Anda dapat mengirim paket ke alamat mana saja yang anda inginkan tetapi balasannya hanya akan diterima oleh satu alamat IP yang anda miliki.Apabila anda ingin menggunakan banyak komputer seperti jaringan dalam rumah anda untuk terhubung dengan internet dengan hanya satu kink ini, maka anda membutuhkan NAT.Cara ini adalah NAT yang paling umum digunakan sekarang ini, sering disebut sebagai masqurading.
 Banyak Server Terkadang anda ingin mengubah arah paket yang datang ke jaringan anda. Hal ini disebabkan anda hanya memiliki satu alamat IP, tapi anda ingin semua orang dapat mengakses komputer yang berada di belakang komputer yang memiliki alamat IP yang asli. Apabila anda dapat mengubah tujuan dari paket yang masuk, anda dapat melakukan ini.
   
Tipe NAT seperti ini disebut port-forwarding.
    Transparent Proxy
    Terkadang anda ingin seakan-akan setiap paket yang melewati komputer anda hanya ditujukan untuk komputer anda sendiri. Hal ini digunakan untuk membuat transparent proxy : Proxy adalah program yang berada di antara jaringan anda dan dunia luar, dan membuat keduanya dapat saling berkomunikasi. Bagian transparannya dikarenakan jaringan anda tidak akan mengetahui bahwa dia menggunakan proxy kecuali proxynya tidak bekerja.
    Program squid dapat dikonfiguraasi untuk bekerja seperti ini, dan hal ini disebut redirection atau transparent proxy.

  • Dua Tipe NAT

NAT terdiri atas dua macam tipe: Source NAT (SNAT) dan Destination NAT (DNAT) Source NAT adalah ketika anda mengubah alamat asal dari paket pertama dengan kata lain anda merubah dari mana koneksi terjadi. Source NAT selalu dilakukan setelah routing, sebelum paket keluar ke jaringan. Masquerading adalah contoh dari SNAT.

Destination NAT adalah ketika anda mengubah alamat tujuan dari paket pertama dengan kata lain anda merubah ke mana komunikasi terjadi. Destination NAT selalu dilakukan sebelum routing, ketika paket masuk dari jaringan. Port forwarding, load sharing dan transparent proxy semuanya adalah bentuk dari DNAT.
Menggunakan NAT di Linux

Untuk membuat NAt anda harus membuat aturan NAT yang akan memberitahu kernel koneksi apa yang harus diubah. Untuk ini kita menggunakan tool iptables dan membuatnya untuk mengubah tabel NAT dengan memberikan option "-t nat".

Tabel aturan NAT berisi 3 bagian yang disebut "chain", setiap aturan akan diperiksa secara berurutan sampai ada satu yang tepat. Kedua chain disebut PREROUTING (untuk Destination NAT, ketika paket pertama kali masuk), dan POSTROUTING (untuk Source NAT, ketika paket pergi). Yang ketiga, OUTPUT akan diabaikan. Tabel di bawah akan menggambarkannya :

      _____                                     _____
     /     \                                   /     \
   PREROUTING -->[Routing ]----------------->POSTROUTING----->
     \D-NAT/     [Decision]                    \S-NAT/
                     |                            ^
                     |                            | 
                     |                            |
                     |                            |
                     |                            |
                     |                            |
                     |                            |
                     --------> Local Process ------
   

Pada setiap node di atas, ketika paket melewati kita melihat koneksi apa yang diasosiasikan dengannya. Apabila hal itu adalah koneksi yang baru, kita melihat chain pada tabel nat yang berperan untuk mengetahui apa yang akan kita lakukan dengan paket tersebut.
Source NAT

Untuk melakukan Source NAT anda harus merubah asal dari koneksi. Hal ini dilakukan di chain POSTROUTING, pas sebelum keluar. Hal ini sangat penting, dikarenakan berarti tools lain yang di dalam router itu (routing, packet filtering) akan melihat paket itu tidak berubah. Hal ini juga berarti opsi '-o' (outgoing interface) juga bisa digunakan.

Source dispesifikasikan dengan menggunakan '-j SNAT', dan juga opsi '--to-source' untuk menspesifikasikan sebuah alamat IP, range alamat IP dan port atau range port (hanya untuk protokol UDP dan TCP) yang sifatnya optional.

    Mengubah alamat asal ke 1.2.3.4
    # iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4

    Mengubah alamat asal ke 1.2.3.4, 1.2.3.5, or 1.2.3.6
    # iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4-1.2.3.6

    Mengubah alamat asal ke 1.2.3.4, port 1-1023
    # iptables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to 1.2.3.4:1-1023

  • Masquerading

Terdapat kasus yang khusus untuk Source NAT yang disebut masquerading, sebaiknya hanya digunakan untuk alamat IP yang dinamik, seperti menggunakan dialup secara standar (untuk alamat IP yang statis, gunakan SNAT si atas). Anda tidak perlu menempatkan alamat asal apabila anda menggunakan masquerading, dikarenakan alamat asal akan memakai alamat dari interface tempat paket itu keluar. Hal ini akan memudahkan apabila ada penggantian alamat IP dari interface tersebut, sehingga keslaahan da[at dihindari.

    Masquerade semua paket yang keluar dari ppp0
    # iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

  • Destination NAT

Destination NAT dilakukan pada chain PREROUTING, pas ketika paket masuk, hal ini berarti semua tools di dalam router akan melihat paket akn pergi ke tujuan yang sebenarnya . Hal ini juga berarti bahwa opsi '-i' (incoming interface) bisa digunakan.

Destination NAT dispesifikasikan dengan menggunakan '-j DNAT' dan opsi '--to-destination' menspesifikasikan sebuah alamat IP, range alamat IP dan range dari port (hanya untuk protokol UDP dan TCP) yang sifatnya optional.

    Merubah alamat tujuan ke 5.6.7.8
    # iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8

    Merubah alamat tujuan ke 5.6.7.8, 5.6.7.9, or 5.6.7.10
    # iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8-5.6.7.10

    Merubah alamat tujuan dari lalu lintas web ke 5.6.7.8 port 8080
    # iptables -t nat -A PREROUTING -p tcp --dport 80 -i eth0 -j DNAT --to 5.6.7.8:8080

  • Redirection

Terdapat kasus khusus dari Destination NAT yang disebut redirection. Redirection adalah pengarahan dari paket yang masuk dari posrt tertentu diarahkan ke port lain, dimana setiap port menandakan aplikasi jaringan yang berbeda.

    Mengirim dari port 80 lalu lintas web ke squid (transparent) proxy
    # iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

Dalam hal ini squid harus dikonfigurasi sehingga dia tahu paket yang masuk adalah transparent proxy.

Sumber : http://toto.nurulfikri.com/?page=Article&link=art&pg=Network%20Address%20Translation

Subnetting Classfull

A. IP Address
IP (Internet Protokol) Addres diperlukan agar host lain dalam satu jaringan dapat berkomunikasi.  Dalam memberi IP address pada server dan switch dam konfigurasi harus menggunakan IP address yang fix.
IP address terbagi menjadi dua, yaitu bagian network address(identitas jaringan) dan node/host address(Identitas host dalam satu jaringan).  Pada IP address versi 4 terdiri atas 4 oktet. Nilai 1 oktek adalah 255. IP addres sebanyak ini harus dibagi ke seluruh pengguna. Sehingga unrtuk mempermudah proses pembagian serta mempermudah pendistribusian pendaftaran, IP address harus dikelompokkan dalam kelas-kelas. IPv4 taerdiri dari 5 kelas yaitu A, B, C, D, dan E. kelas D digunakan untuk multicasting sedangkan E untuk riset.

Berikut adalah IP Address Range untuk masing-masing kelas :
Kelas IP Address
   
Kelas IP Address
IP Address
Netmask Default
A
1.0.0.0-127.0.0.0
255.0.0.0
B
128.0.0.0-191.255.0.0
255.255.0.0
C
192.0.0.0-223.255.255.0
255.255.255.0
D
224.0.0.0-239.255.255.255
-
E
240.0.0.0-255.0.0.0
-

B. Subneting
Subnet adalah upaya / proses untuk memecah sebuah network dengan jumlah host yang cukup banyak, menjadi beberapa network dengan jumlah host yang lebih sedikit. 
Subnetting berguna untuk :

- untuk menentukan batas network ID dalam suatu subnet.
- Memperbanyak jumlah network (LAN)
- Mengurangi jumlah host dalam satu network
- Tujuan lain dari subnetting yang tidak kalah pentingnya adalah untuk mengurangi tingkat kongesti (gangguan/ tabrakan) lalulintas data dalam suatu network.

Selain itu, subnetting diperlukan, karena: Efisiensi penggunaan IP Address   Pendelegasian kekuasaan untuk pengaturan IP Address.

- Mempermudah manajemen jaringan
- Mengatasi masalah perbedaan hardware dan topologi fisik jaringan
Pada dasarnnya, subnetting adalah mengambil bit-bit dari bagian host sebuah alamat IP dan me-reserve atau menyimpannya untuk mendefinisikan alamat subnet. Jadi semakin banyak jumlah subnet, semakin sedikit jumlah bit yang tersedia untuk mendefinisikan host bit.

C. Istilah pada Subnetting

Berikut beberapa istilah-istilah umum dalam pengalamatan IP yaitu

• Host IP Address :  alamat IP klien

• Network Mask : 
seringkali disebut subnet mask, digunakan untuk menentukan banyaknya jaringan yang dapat dicakup

• Network Address : 
alamat jaringan, digunakan sebagai pengenal sebuah jaringan, selalu diperoleh dari alamat pertama dari sekumpulan alamat terdaftar dalam suatu jaringan

• Network Broadcast Address :
alamat broadcast, digunakan untuk melakukan broadcasting (penyebaran) paket data dalam satu jaringan, selalu diperoleh dari alamat terakhir dari sekumpulan alamat terdaftar dalam suatu jaringan

• Total Number of Host Bits : 
jumlah total host yang dapat ditampung dalam bit, untuk mengetahui jumlah host/klien maksimal yang dapat diberi alamat IP pada sebuah jaringan

• Number of Hosts :
 jumlah alamat yang dapat digunakan sebagai host, jumlah yang dapat digunakan merupakan jumlah alamat total dalam sebuah jaringan dikurangi dengan 2 (karena satu sebagai Network Address, dan satunya lagi untuk Broadcast Address)


D. Classfull

IP Classfull

Pada saat address Internet distandarkan (awal 80-an), address Internet dibagi dlm 4 kelas:
Class A : Network prefix 8 bit
Class B : Network prefix 16 bit
Class C : Network prefix 24 bit
Class D : Multicast
Class E : Eksperimen

Tiap IP address mempunyai satu kunci yg mengidentifikasi kelas
Class A : IP address mulai dg “0”
Class B : IP address mulai dg “10”
Class C : IP address mulai dg “110”
Class D : IP address mulai dg “1110
Class E : IP address mulai dg “11110”

Classful ip address mempunyai sejumlah masalah :

1.Terlalu sedikit network address untuk jaringan yang besar (address class A dan clasas B telah lenyap

2.Hierarki 2 tingkat tidak sesuai utk jaringan besar dg address Class A dan Class B

3.Tidak fleksibel. Misalkan perusahaan memerlukan 2000 address

-Address class A dan B berlebihan (overkill!)
-Address class C tidak mencukupi (memerlukan 10 address class C)

4. Tabel Routing Membengkak. Routing pada backbone Internet memerlukan satu entry untuk tiap network address. Pd 1993 ukuran tabel routing mulai melebihi kapasitas router.

5. Internet memerlukan address lebih dari 32-bit dari beberapa alasan diatas maka sekarang IP CLASSFUL tidak dipakai lagi,dan beralih ke IP CLASSLESS.


E. Packet Tecer

Packet Tracer adalah sebuah software simulasi jaringan. Sebelum melakukan konfigurasi jaringan yang sesungguhnya (mengaktifkan fungsi masing-masing device hardware) terlebih dahulu dilakukan simulasi menggunakan software ini. Simulasi ini sangat bermanfaat jika membuat sebuah jaringan yang kompleks namun hanya memiliki komponen fisik yang terbatas.

F. Cara Menciptakan Subnetting

1.CIDR ( Classless Interdomain Domain Routing)
Merupakan sebuah cara alternatif untuk mengklasifikasikan alamat-alamat IP berbeda dengan sistem klasifikasi ke dalam kelas A, kelas B, kelas C, kelas D, dan kelas E. Disebut juga sebagai supernetting. CIDR merupakan mekanisme routing yang lebih efisien dibandingkan dengan cara yang asli, yakni dengan membagi alamat IP jaringan ke dalam kelas-kelas A, B, dan C. Metode yang digunakan adalah VLSM( Variable Length Subnet Mask ).

Tabel 1. Tabel Nilai CIDR
nSubnet Mask
CIDR
Subnet Mask
CIDR
255.128.0.0
/9
255.255.240.0
/20
255.192.0.0
/10
255.255.248.0
/21
255.224.0.0
/11
255.255.252.0
/22
255.240.0.0
/12
255.255.254.0
/23
255.248.0.0
/13
255.255.255.0
/24
255.252.0.0
/14
255.255.255.128
/25
255.254.0.0
/15
255.255.255.192
/26
255.255.0.0
/16
255.255.255.224
/27
255.255.128.0
/17
255.255.255.240
/28
255.255.192.0
/18
255.255.255.248
/29
255. 
255.224.0
/19
255.255.255.252
/30

   
Catatan penting dalam subnetting ini adalah penggunaan oktat pada subnet mask dimana :
- untuk IP address kelas C yang dapat dilakukan CIDR-nya adalah pada oktat terakhir karena pada IP Address kelas C subnet mask defaultnya adalah 255.255.255.0
- untuk IP address kelas B yang dapat dilakukan CIDR-nya adalah pada 2 oktat terakhir karena pada IP Address kelas B subnet mask default-nya adalah 255.255.0.0
- untuk IP address kelas A yang dapat dilakukan CIDR-nya adalah pada 3 oktat terakhir karena IP address kelas A subnet mask default-nya adalah 255.0.0.0

Disamping menghafal tabel-tabel diatas, dapat juga mempelajari cara menghitung dengan mempergunakan rumus Ø  Jumlah Host per Network = 2 n - 2

Dimana n adalah jumlah bit tersisa yang belum diselubungi, misal Network Prefix /10, maka bit tersisa (n) adalah 32 –10 = 222 22 – 2 = 4.194.302
Ø  Jumlah Subnet = 2 N

Dimana N adalah jumlah bit yang dipergunakan (diselubungi) atau N = Network Prefix – 8 Seperti contoh: bila network prefix /10, maka N = 10 – 8 = 2
2 2 = 4

2.VLSM(Variable Length Subnet Mask )

VLSM adalah pengembangan mekanisme subneting, dimana dalam vlsm dilakukan peningkatan dari kelemahan subneting klasik, yang mana dalam clasik subneting, subnet zeroes, dan subnet- ones tidak bisa digunakan. selain itu, dalam subnet classic, lokasi nomor IP tidak efisien.
Jika pada pengalokasian IP address classfull, suatu network ID hanya memiliki satu subnetmask, maka VLSM menggunakan metode yang berbeda, yakni dengan memberikan suatu network address lebih dari satu subnetmask.
Dengan menggunakan variable-length subnetting, teknik subnetting dapat dilakukan secara rekursif: network identifier yang sebelumnya telah di-subnet-kan, di-subnet-kan kembali. Ketika melakukannya, bit-bit network identifier tersebut harus bersifat tetap dan subnetting pun dilakukan dengan mengambil sisa dari bit-bit host.
Perhitungan IP Address menggunakan metode VLSM adalah metode yang berbeda dengan memberikan suatu Network Address lebih dari satu subnet mask. Dalam penerapan IP Address menggunakan metode VLSM agar tetap dapat berkomunikasi kedalam jaringan internet sebaiknya pengelolaan networknya dapat memenuhi persyaratan :
 
1.Routing protocol yang digunakan harus mampu membawa informasi mengenai notasi prefix untuk setiap rute broadcastnya (routing protocol : RIP, IGRP, EIGRP, OSPF dan lainnya, bahan bacaan lanjut protocol routing : CNAP 1-2),
2.Semua perangkat router yang digunakan dalam jaringan harus  mendukung metode VLSM yang menggunakan algoritma penerus packet informasi.

Sumber : http://mahanirosyidha.blogspot.com/2013/05/subnetting-classfull-dan-classless.html