Jumat, 20 Juni 2008

CARA MENGUBAH IP PUBLIK MENJADI IP LOKAL

MENGUBAH IP PUBLIK MENJADI IP LOKAL

PADA WINDOWS SERVER 2003


Network Address Translation (NAT) adalah suatu teknik untuk mengubah suatu IP address ke IP address yg lain. Hal ini bisa dikarenakan karena di jaringan kita mengunakan network address yg disebut private address space di RFC 1918, yaitu:

10.0.0.0 - 10.255.255.255 (10/8 prefix)
172.16.0.0 - 172.31.255.255 (172.16/12 prefix)
192.168.0.0 - 192.168.255.255 (192.168/16 prefix)

Dan karena ini adalah private address, jaringan kita tentunya tidak dapat berkomunikasi dgn jaringan lain di Internet, karena semua host yg ingin terkoneksi di Internet harus menggunakan global atau public IP address. Untuk ini kita perlu men-translate IP address kita yg private menjadi public IP address.

Alasan lain untuk menggunakan NAT adalah security. Kita bisa men-translate seluruh jaringan kita (missal 254 PC) menjadi 1 public IP. Teknik ini disebut many-to-one NAT atau biasa disebut Port Address Translation (PAT). Teknik ini sangat bermanfaat jika kita menginginkan user di jaringan kita untuk meng-inisiasi koneksi ke Internet (browsing internet atau mengirim email misalnya), tapi kita tidak menginginkan host dari Internet untk meng-inisiasi koneksi ke PC user kita.

Host dari Internet tidak bisa meng-inisiasi koneksi ke internal host kita karena hanya ada 1 public IP address yg terlihat di jaringan kita, sedangkan jumlah PC yg sebenarnya ada lebih dari 1. Tentunya jika PC kita yg meng-inisiasi, maka reply atau return packet akan bisa
kembali karena device yg kita gunakan untuk melakukan NAT, akan memiliki mapping table dari NAT yg terjadi di jaringan.

Untuk kasus one-to-one NAT, dimana 1 private IP akan di-translate menjadi 1 global IP, maka mapping nya akan spt berikut:

Router#sh ip nat tra
Pro Inside global Inside local Outside local Outside global
— 195.1.134.1 192.168.1.1 — —
— 195.1.134.2 192.168.1.2 — —

Dalam contoh ini, IP private 192.168.1.1 di-translate ke public IP 195.1.134.1, IP private 192.168.1.2 di-translate ke public IP 195.1.134.2 dst.
Inside local adalah terminologi utk real IP address PC di jaringan kita, sedangkan Inside Global adalah public IP address yg kita gunakan untuk men-translasi real IP address tsb.
Outside local adalah local IP address dari tujuan kita sebagaimana kita melihatnya dari jaringan kita. Sedangkan Outside global adalah global IP address dari tujuan kita yg terlihat di Internet.

Ini bermanfaat utk destination based NAT, sbg contoh sbg berikut:
Ada server di Internet dgn global IP address 11.11.11.11, tapi kita ingin semua users di jaringan kita utk melihat server tsb sbg 192.168.1.11
Maka kita bisa melakukan destination based NAT, dgn outside local adalah 192.168.1.11 dan outside global, IP address tujuan yg sebenernya, adalah 11.11.11.11.

Jika kita tidak melakukan destination based NAT, maka outside local dan outside global dari tujuan kita akan sama, yaitu public IP tujuan yg sebenernya, dan ini bisa dilihat di contoh mapping PAT.

Untuk contoh many-to-one NAT atau PAT, dimana banyak real IP dari PC kita di-translate menjadi 1 public IP, maka contoh mapping nya sbg berikut:

Router#sh ip nat tra
Pro Inside global Inside local Outside local Outside global
tcp 195.1.134.4:12338 192.168.1.3:12338 33.33.33.33:23 33.33.33.33:23
tcp 195.1.134.4:12337 192.168.1.2:12337 22.22.22.22:23 22.22.22.22:23

Dalam contoh ini, kita melakukan telnet (destination tcp port 23) ke remote host 22.22.22.22
dari private IP 192.168.1.2, dan telnet ke remote host 33.33.33.33 dari private IP 192.168.1.3.
Kita bisa lihat bahwa ke-2 private IP kita di-translate ke public IP yg sama, yaitu 195.1.134.4. Yg membedakan adalah source port yg digunakan di public IP.
Jadi di mapping ini terlihat bahwa koneksi dari 192.168.1.2 di map ke 195.1.134.4 port 12337, sedangkan koneksi dari 192.168.1.3 di map ke 195.1.134.4 port 12338.

Dgn adanya mapping ini, remote host 22.22.22.22 ketika mengirimkan paket reply (ingat di TCP/IP reply dari remote host destination portnya ditujukan ke source port dari host kita), akan mengirimkan paket ke 195.1.134.4 port 12337. Sedangkan reply packet dari 33.33.33.33 kan ke 195.1.134.4 port 12338.
Berdasarkan mapping tadi, NAT device atau router yg melakukan map bisa mengetahui bahwa packet reply dari 22.22.22.22 harus dikirimkan ke host 192.168.1.2 dan paket reply dari 33.33.33.33 harus dikirimkan ke host 192.168.1.3

Dari ke-2 contoh di atas kelihatan bahwa untuk normal NAT atau one-to-one NAT, setiap private IP akan memiliki public IP sendiri sehingga setiap host di jaringan kita masih bisa di hubungi dari luar. Host dari Internet masih bisa utk menghubungi tiap host kita karena
mereka memiliki public IP yg berbeda-beda.
Namun untuk kasus many-to-one NAT atau PAT, host dari Internet tidak dapat menghubungi setiap host karena semua host memiliki 1 public IP yg sama. Host dari internet hanya bisa me-reply koneksi dari host kita berdasarkan source port yg berbeda-beda.

Ok, langsung masuk contoh konfigurasi biar makin jelas. Contoh dilakukan dgn menggunakan Cisco router dgn 1 ethernet interface konek ke internal network dan 1 serial interface konek ke Internet. Kalo udah ngerti konsepnya bisa pake NAT device apa aja, gue sendiri buat memproteksi home lab gue pake OpenBSD PF.

Topologi:
Internal network – (eth0) router (s0/0) – internet

Internal network kita menggunakan private IP 192.168.1.0/24. IP address eth0 router kita 192.168.1.1 yg merupakan default gateway dari semua host di internal network.

1. Many-to-one PAT, semua private IP ke 1 public IP address

Kita cuma dapet 1 IP address dari ISP 195.1.134.2/30 yg juga merupakan IP address serial 0/0, router ISP kita menggunakan IP 195.1.134.1 yg juga merupakan default route router kita.
Maka konfigurasi PAT sbg berikut:
- Buat ACL yg mem-permit semua network 192.168.1.0/24

Router(config)#ip access-list standard internal_network
Router(config-std-nacl)#permit 192.168.1.0 0.0.0.255

- Bikin NAT rule untuk mentranslate net 192.168.1.0/24 ke 195.1.134.2 yg merupakan IP address s0/0

Router(config)#ip nat inside source list internal_network interface s0/0 overload

- enable NAT di interface e0/0 dan s0/0

Router(config)#int e0/0
Router(config-if)#ip nat inside

Router(config)#int s0/0
Router(config-if)#ip nat outside

2. ISP kita ternyata memberikan kita public IP 195.1.134.0/24, yg berarti range public IP yg bisa kita gunakan adalah 195.1.134.1 – 195.1.134.254. Ini berarti kita bisa melakukan one-to-one NAT, contoh:
192.168.1.1 ke 195.1.134.1
192.168.1.2 ke 195.1.134.2, dst.

Maka konfigurasi yg perlu dilakukan hanya:

Router(config)#ip nat inside source static network 192.168.1.0 195.1.134.0 /24

Tentunya enable NAT di e0/0 dan s0/0 spt contoh no.1

3. Kalo gak dapet persis 254 public IP gimana? Misal dapetnya 195.1.134.0/29, yg berarti range public IP yg bisa digunakan adalah 195.1.134.1-195.1.134.6 (ingat dgn /29 ada total 8 IP dari 0 sampai 7, tapi 0 adalah network address dan 7 sebagai IP terakhir merupakan
broadcast address).

Jika kita mau mentranslate net 192.168.1.0/24 ke range IP 195.1.134.1-195.1.134.6

- bikin NAT pool

Router(config)#ip nat pool public_IP 195.1.134.1 195.1.134.6 netmask 255.255.255.248

- bikin NAT rule, pake ACL internal_network spt contoh no.1 buat permit semua internal net 192.168.1.0/24

Router(config)#ip nat inside source list intenal_network pool public_IP

Jgn lupa enable NAT di e0/0 dan s0/0 spt contoh no.1

4. Ada masalah dgn contoh no.3? Ada.

Dalam 1 waktu, hanya ada 6 internal private IP yg bisa di translate ke 6 public IP. Jadi koneksi dari internal host ke 7 akan gagal dan harus menunggu sampai translation mapping timeout dan di clear, sehingga public ip kembali tersedia.

Cara mengatasinya, kita bisa bikin pool dgn 5 public IP address, dan 1 IP terakhir buat PAT. IP terakhir, 195.1.134.6 digunakan sbg IP address utk interface s0/0

Router(config)#ip nat pool public_IP 195.1.134.1 195.1.134.5 netmask 255.255.255.248

Router(config)#ip nat inside source list internal_network pool public_IP
Router(config)#ip nat inside source list internal_network interface s0/0 overload

Dgn begini, 5 private IP yg pertama akan di translate ke 5 public IP di pool, sedangkan private IP yg lain akan di translate ke ip ke-6, yg merupakan ip address dari interface s0/0.

5. Ok, ayo masuk ke contoh yg lebih advance:
Kita punya 6 public IP dari range 195.1.134.1.- 195.1.134.6
IP address 195.1.134.4 kita gunakan sbg ip address interface s0/0 router kita
IP address 195.1.134.1 digunakan oleh router ISP interface s0/0, yg merupakan default gateway router kita
IP address 195.1.134.2 mau kita gunakan sbg ip address web server kita, dgn real IP 192.168.1.2
Dan IP addres 195.1.134.3 mau kita gunakan sbg ip address mail server kita, dgn real IP 192.168.1.3

Sisanya, 195.1.134.5 dan 6, akan kita pergunakan nanti jika kita punya server2 baru

- Bikin ACL buat semua network, access-list internal_network permit 192.168.1.0 0.0.0.255

- Konfigure PAT buat semua internal network ke interface s0/0

Router(config)#ip nat inside source list internal_network interface s0/0 overload

- Bikin one-to-one NAT buat web dan mail server

Router(config)#ip nat inside source static 192.168.1.2 195.1.134.2
Router(config)#ip nat inside source static 192.168.1.3 195.1.134.3

Jgn kuatir jika terjadi overlap antara static NAT diatas dgn PAT di konfigurasi sebelumnya. Static NAT akan meng-overide rule utk 192.168.1.2 dan 192.168.1.3, sehingga ke-2 IP tsb tidak akan di PAT meskipun termasuk dlm ACL internal_network.
Jgn lupa enable NAT di interface s0/0 dan e0/0 spt contoh no.1

Dan kalo kita punya IOS Firewall dan ACL ingress in interface s0/0, maka kita harus permit koneksi dari internet ke public IP web dan mail server kita, dgn port yg terkait spt tcp 80 dan 25. Jadi di ACL ingress s0/0 jgn gunakan real IP address.

6. Kita terkoneksi dgn ISP, router kita cuman dapet 1 public IP address buat interface s0/0 tapi punya web server dan mail server? Jgn kuatir, ini bisa dilakukan dgn teknik port redirection.

Jadi, bikin dulu PAT biar internal network kita bisa konek ke Internet

Router(config)#ip nat inside source list internal_network interface s0/0 overload

Trus bikin port redirection buat traffic ke port 80 dan 25, di contoh ini private IP web server kita tetap 192.168.1.2 dan mail server 192.168.1.3

Router(config)#ip nat inside source static tcp 192.168.1.2 80 interface s0/0 80
Router(config)#ip nat inside source static tcp 192.168.1.3 25 interface s0/0 25

Dgn cara begini, traffic yg datang ke public IP interface serial port 80 akan di redirect ke real IP web server 192.168.1.2, dan traffic yg datang ke serial port 25 akan di redirect ke real IP mail server 192.168.1.3
Tinggal daftar di public DNS server untuk web dan MX record mail server kita, untuk me-resolve ke public IP router interface s0/0. Keuntungan lain dgn cara PAT ke interface adalah kita bisa saja mendapatkan IP address yg berbeda-beda (dynamic IP) setiap kali konek ke ISP.
Dgn setingan di atas, kita tidak perlu kuatir IP kita akan berubah.
Hanya mungkin public IP yg kita daftarkan untuk web dan mail server di public DNS server harus selalu di-update sesuai dgn IP address yg sedang kita dapatkan.

Mulai kerasakan The Power of NAT? )

7. Ok, seandainya kita gak mau mentranlasi koneksi dari 192.168.1.0/24 ke 192.168.2.0/24 (katakanlah ini network partner kita dan kita setup VPN misalnya), tapi kalo tujuannya ke internet maka spt contoh yg sebelumnya kita mau translasikan dgn PAT ke interface s0/0

- bikin ACL, extended dgn men-deny traffic dari net 192.168.1.0 ke 192.168.2.0, tapi permit yg lain

Router(config)#ip access-list extended selective_NAT
Router(config-ext-nacl)#deny ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255
Router(config-ext-nacl)#permit ip 192.168.1.0 0.0.0.255 any

Lalu bikin PAT rules
Router(config)#ip nat inside source list selective_NAT interface s0/0 overload

Karena di deny di ACL, maka traffic dari net 192.168.1.0 ke 192.168.2.0 tidak akan di translate, sedangkan diluar itu akan di PAT ke interface s0/0.

8. Makin advance, misalnya kita skrg punya 2 koneksi ke Internet, lewat interface s0/0 ke ISP 1 dan lewat interface s0/1 ke ISP 2.
Ke-dua ISP tsb memberikan kita 1 public IP buat masing-masing interface serial router kita.

Kita mau pada saat internal network konek ke ISP 1, maka akan di translate dan lewat interface s0/0, sedangkan pada saat internal network konek ke ISP 2 akan di translate dan lewat interface s0/1 (penentuan traffic dari internal network akan ke ISP yg mana
sebenernya di atur oleh normal routing, atau bisa menggunakan policy based routing, tapi di contoh ini kita berasumsi routingnya sudah jalan dan fokus kita adalah NAT berdasarkan interface output dari traffic)

Jadi kita menggunakan teknik policy based routing alias route-map untuk melihat traffic dari internal network melalui interface serial yg mana, kemudian akan di PAT secara sesuai:

Router(config)#route-map to_ISP1 permit 10
Router(config-route-map)#match interface s0/0

Router(config)#route-map to_ISP2 permit 10
Router(config-route-map)#match interface s0/1

Router(config)#ip nat inside source route-map to_ISP1 interface s0/0 overload
Router(config)#ip nat inside source route-map to_ISP2 interface s0/1 overload

Dgn ke-2 route-map tsb, packet yg akan keluar melalui interface s0/0 akan match dgn route-map to_ISP1, dan di PAT ke interface s0/0 IP address.
Sedangkan packet yg akan keluad melalui interface s0/1 akan match dgn route-map to_ISP2, dan di PAT ke interface s0/1 IP address.

Network Address Translation (NAT)

nat.gif

Keterbatasan alamat IPv.4 merupakan masalah pada jaringan global atau Internet. Untuk memaksimalkan penggunakan alamat IP yang diberikan oleh Internet Service Provider (ISP) dapat digunakan Network Address Translation atau NAT. NAT membuat jaringan yang menggunakan alamat lokal (private), alamat yang tidak boleh ada dalam tabel routing Internet dan dikhususkan untuk jaringan lokal/intranet, dapat berkomunikasi ke Internet dengan jalan ‘meminjam’ alamat IP Internet yang dialokasikan oleh ISP. Atau dapat juga digunakan untuk koneksi jaringan antar organisasi yang berbeda yang tidak ingin alamat jaringannya diketahui oleh organisasi lain.

Dengan NAT, jaringan internal/lokal, tidak akan terlihat oleh dunia luar/internet. IP lokal yang cukup banyak dapat dilewatkan ke Internet hanya dengan melalui translasi ke satu IP publik/global. Sehingga dengan kata lain bahwa NAT sebagai jembatan IP lokal untuk keluar ke IP internet/publik.

Keterbatasan alamat IPv.4 merupakan masalah pada jaringan global atau Internet. Untuk memaksimalkan penggunakan alamat IP yang diberikan oleh Internet Service Provider (ISP) dapat digunakan Network Address Translation atau NAT. Cisco mengimplementasikan dengan menggunakan RFC 1631. NAT membuat jaringan yang menggunakan alamat lokal (private), alamat yang tidak boleh ada dalam tabel routing Internet dan dikhususkan untuk jaringan lokal/intranet, dapat berkomunikasi ke Internet dengan jalan ‘meminjam’ alamat IP Internet yang dialokasikan oleh ISP.

Dua Tipe NAT Dua tipe NAT adalah Static dan Dinamik yang keduanya dapat digunakan secara terpisah maupun bersamaan.
Statik Translasi Static terjadi ketika sebuah alamat lokal (inside) di petakan ke sebuah alamat global/internet (outside). Alamat lokal dan global dipetakan satu lawan satu secara Statik.
Dinamik NAT dengan Pool (kelompok)
Translasi Dinamik terjadi ketika router NAT diset untuk memahami alamat lokal yang harus ditranslasikan, dan kelompok (pool) alamat global yang akan digunakan untuk terhubung ke internet. Proses NAT Dinamik ini dapat memetakan bebarapa kelompok alamat lokal ke beberapa kelompok alamat global.
NAT Overload

Sejumlah IP lokal/internal dapat ditranslasikan ke satu alamat IP global/outside. Hal ini sangat menghemat penggunakan alokasi IP dari ISP. Sharing/pemakaian bersama satu
alamat IP ini menggunakan metoda port multiplexing, atau perubahan port ke packet outbound.
Kapan sebaiknya NAT Digunakan?
Gunakan NAT Jika:
• Anda membutuhkan koneksi ke Internet dan hosts/komputer-komputer anda tidak mempunyai alamat IP global.
• Anda berganti ke ISP baru dan anda diharuskan menggunakan alamat IP dari ISP baru tersebut untuk jaringan anda.

NAT digunakan untuk menyelesaikan masalah pengalamatan IP
Teknologi NAT memungkinakan alamat IP lokal/’private’ terhubung ke jaringan publik seperti Internet. Sebuah router NAT ditempatkan antara jaringan lokal (inside network) dan jaringan publik (outside network), dan mentranslasikan alamat lokal/internal menjadi alamat IP global yang unik sebelum mengirimkan paket ke jaringan luar seperti Internet.
Dengan NAT, jaringan internal/lokal, tidak akan terlihat oleh dunia luar/internet. IP lokal yang cukup banyak dapat dilewatkan ke Internet hanya dengan melalui translasi ke satu IP publik/global.


Keuntungan menggunakan NAT Jika anda harus merubah alamat IP internal anda, dikarenakan anda berganti ISP atau dua intranet digabungkan (misalnya penggabungan dua perusahaan), NAT dapat digunakan untuk mentranslasikan alamat IP yang sesuai. NAT memungkinkan anda menambah alamat IP, tanpa merubah alamat IP pada hosts atau komputer anda. Dengan demikian akan menghilangkan duplicate IP tanpa pengalamatan kembali host atau komputer anda.

Contoh IP NAT Statik
Router#show ip nat translation
Pro Inside global Inside local Outside local Outside global
--- 156.8.34.1 10.15.0.1 --- ---
--- 156.8.34.2 10.15.0.2 --- ---
--- 156.8.34.3 10.15.0.3 --- ---

Contoh IP NAT Dinamik:
Router#show ip nat translation
Pro Inside global Inside local Outside local Outside global
tcp 143.4.23.1:1098 10.1.0.1:1098 73.4.5.6:23 73.4.5.6:23
tcp 143.4.23.1:1345 10.1.0.2:1345 73.4.5.6:23 73.4.5.6:23
tcp 143.4.23.1:1989 10.1.0.3:1989 73.4.5.7:21 73.4.5.7:21

Contoh Statistik NAT:
Router#show ip nat statistics
Total translations: 1 (0 static, 1 dynamic; 0 extended)
Outside interfaces: Serial0Inside interfaces: Ethernet0Hits: 1 Misses: 0
Expired translations: 2Dynamic mappings:-- Inside Source
access-list 1 pool Ilmukomputer refcount 2 pool Ilmukomputer: netmask 255.255.255.0
start 195.165.2.1 end 195.165.2.254
type generic, total addresses 254, allocated 1 (14%), misses 0

Contoh :
Router#debug ip nat
NAT: s=10.1.0.1->12.1.3.2, d=155.5.5.5 [1]
NAT: s=155.5.5.5, d=12.1.3.2->10.1.0.1 [1]
NAT: s=10.1.0.1->12.1.3.2, d=155.5.5.5 [2]
NAT*: s=155.5.5.5, d=12.1.3.2->10.1.0.1 [2]
!Additional output omitted……………

Untuk melacak atau melihat proses operasi NAT, gunakan perintah debug ip nat [list | detailed].
Pada contoh di atas dapat dijelaskan sebagai berikut :
• Tanda asterisk (*) menunjukkan translasi terjadi dengan “fast path” atau dengan menggunakan “cache”. Paket pertama akan selalu melalui jalur lambat/slow path (process-switched). Paket berikutnya akan melalui jalur cepat (fast path) jika dengan entri “cache”.
• s=10.1.0.1 adalah alamat asal (source address).
• d=155.5.5.5 adalah alamat tujuan (destination address).
• 10.1.0.1->12.1.3.2 menunjukkan bahwa alamat ditranslasikan.
• Nilai dalam tanda kurung adalah nomor identifikasi IP. Informasi ini sangat berguna untuk mencocokkan pasangan paket jika menggunakan alat ukur Sniffer, karena sangat banyak paket yang muncul dalam Sniffer.

Membersihkan Translasi Tabel NAT Berikut perintah untuk membersihkan isi tabel NAT pada Router Cisco:
Perintah
Keterangan
clear ip nat translation *
Membersihkan semua isi tabel NAT
Tanda (*) berarti SEMUA.
clear ip nat translation inside global-ip local-ip [outside local-ip global-ip]
Membersihkan translasi yang berisi sebuah translasi lokal/inside, atau translasi inside dan outside bersamaan.
clear ip nat translation outside local-ip global-ip
Membersihkan sebuah translasi global/outside.
clear ip nat translation protocol inside
Membersihkan sebuah “extended entry”.
Tip :
Jika NAT telah dikonfigur dengan benar, tetapi translasi tidak terjadi, bersihkan isi tabel NAT (clear ip nat translation *), kemudian cek kembali translasi yang terjadi.
source from : mudji basuki

Network Address Translation (NAT)

Tidak ada komentar: