Saturday, April 11, 2015

Setting NAT in Juniper Junos SRX

Kembali kita bahas tentang Juniper Junos. Lebih spesifiknya lagi membahas mengenai cara membuat NAT / Network Address Translation di Junos. Apa itu NAT ? Liat lagi postingan sebelumnya tentang NAT. Sudah pernah dibahas dan dipraktekkan dengan menggunakan Cisco dan Mikrotik.
Network Simulasi NAT di Junos

Router
F0/0
F0/1
(ge-0/0/2.0)
Cisco-R1
10.11.11.1/30
10.22.22.1/30

Cisco-R2
10.22.22.2/30
10.33.33.1/24

Junos-SRX
10.11.11.2/30 (ge-0/0/0.0)
192.168.100.1/24 (ge-0/0.1.0)
192.168.200.1/24
PC1 : IP. 192.168.100.2/24
PC2 : IP. 192.168.200.2/24
PC3 : IP. 10.33.33.2/24


Konfigurasi Awal.
Network didesign sedemikian rupa seperti pada gambar. IP address setiap device seperti yang ada pada table. Saya asumsikan untuk konfigurasi awal tidak ada masalah, karena ini sudah sering dibahas. Dan sangat mendasar sekali. konfigurasi awal disini antara lain :
1.      Mengkonfigurasi Cisco-R1 dan Cisco-R2, dengan IP address berdasarkan table.
2.      Menambahkan routing static 10.33.33.0 via 10.22.22.2 di Cisco-R1
3.      Menambahkan routing default via 10.22.22.1 di Cisco-R2

Dengan konfigurasi awal di atas, seharusnya ping antara Cisco-R1, Cisco-R2 dan PC3, sudah tembus (bahasa lapangannya :) ).

Konfigurasi Junos.
Awalnya untuk simulasi ini saya menggunakan Junos Olive 12. Tapi ternyata tidak berhasil, ada error.
root# commit
[edit interfaces em0 unit 0 family]
  'inet'
    Can not configure services on local RE interfaces
error: configuration check-out failed

[edit interfaces em0 unit 0 family inet]

Kemudian saya ganti dengan Junos SRX.  Dengan menggunakan Junos SRX, interface bukan em0, em1, lagi. Tapi interface yang garing-garing. (renyah... enak....hahaha...)
Show interfaces terse Junos SRX

Ok, mari kita mulai mengkonfigurasi Junos SRX
root> edit
Entering configuration mode

root# delete
This will delete the entire configuration
Delete everything under this level? [yes,no] (no) yes

root# set interfaces ge-0/0/0.0 family inet address 10.11.11.2/30
root# set interfaces ge-0/0/0.0 description ##CONNECT-TO-CISCO-R1##
root# set interfaces ge-0/0/1.0 family inet address 192.168.100.1/24
root# set interfaces ge-0/0/1.0 description ##CONNECT-TO-PC1##
root# set interfaces ge-0/0/2.0 family inet address 192.168.200.1/24
root# set interfaces ge-0/0/2.0 description ##CONNECT-TO-PC2##
root# set routing-options static route 0.0.0.0/0 next-hop 10.11.11.1
Noted :
Sengaja dihilangkan bagian [...] / status level directory... untuk mempercepat pembahasan.

Di Junos SRX ada keunikan untuk membuat firewall (termasuk di dalamnya firewall itu ya... NAT). Dibuat zone-zone (bahasa sederhananya dibuat daerah atau kelompok-kelompok). Jika anda pernah menggunakan shorewall, nah seperti itulah kira-kira aturannya.
Kalau di artikel-artikel yang beredar di internet, biasanya zone itu dinamakan trust dan untrust. Trust merujuk ke daerah LAN, dan untrust merujuk ke daerah WAN. Sebenarnya kita bisa menamakan zonenya itu semau kita, yang penting kita paham apa dan tujuannya. Kita coba menggunakan nama zone loc dan net, istilah nama zone yang sering dipakai di shorewall.
root# set security zones security-zone loc interfaces ge-0/0/1
root# set security zones security-zone net interfaces ge-0/0/0

Dengan pembuatan zone ini, dari router Junos sudah bisa ping ke device tetangganya (ke gateway dan PC clients). Tapi dari device tetangga, tidak bisa ping ke router Junos. Ini dikarenakan firewall di Junos SRX. Secara default men-deny semua incoming trafik dari luar. So...
root# edit security zones security-zone loc interfaces ge-0/0/1

[edit security zones security-zone loc interfaces ge-0/0/1.0]
root# set host-inbound-traffic ?
Possible completions:
+ apply-groups         Groups from which to inherit configuration data
+ apply-groups-except  Don't inherit configuration data from these groups
> protocols            Protocol type of incoming traffic to accept
> system-services      Type of incoming system-service traffic to accept
[edit security zones security-zone loc interfaces ge-0/0/1.0]

Di bagian host-inbound-traffic, ada pilihan protocols dan system-services apa saja yang di-allow masuk. Ok, misalkan ingin mengallow incoming traffic ping dan ssh, maka
root# set host-inbound-traffic system-services ping

[edit security zones security-zone loc interfaces ge-0/0/1.0]
root# set host-inbound-traffic system-services ssh

[edit security zones security-zone loc interfaces ge-0/0/1.0]

Setelah dilakukan perintah commit, seharusnya dari PC1 sudah bisa melakukan ping dan ssh ke interface Junos. Sementara ping hanya bisa dari PC1 saja, karena yang disetting itu tadi hanya di sisi interface ge-0/0/1.0.
Ping dari PC1 sebelum di-nat-kan

Ping ke gateway =ok. Ping ke IP 10.11.11.1 (Cisco-R1) = nok. Ini sudah benar, karena belum dibuatkan NAT-nya.

Source NAT di Junos SRX
Ada beberapa type NAT, yang sudah pernah kita bahas posting sebelumnya. Dan sekarang kita coba untuk mengkonfigurasi SNAT dengan metode Engress Interface Address. Kalo saya menyebutnya ini, IP NAT Masquerade / Masquerading. Karena memang persis caranya. CMIIW.
root# top
root# edit security nat source rule-set loc-to-net
root# set from zone loc
root# set to zone net
root# set rule source-nat-rule match source-address 192.168.100.0/24
root# set rule source-nat-rule match destination-address 0.0.0.0/0
root# set rule source-nat-rule then source-nat interface
root# top
root# edit security policies from-zone loc to-zone net policy loc-to-net
root# set match source-address any
root# set match destination-address any
root# set match application any
root# set then permit
root# commit
Oke, beres. Test ping dari PC1 lagi.
Ping dari PC1 setelah di-nat-kan

Berhasil. Dan ini dia konfigurasi fullnya.
root# run show configuration
version 12.1X47-D15.4;
interfaces {
    ge-0/0/0 {
        unit 0 {
            description "##CONNECT-TO-CISCO-R1##";
            family inet {
                address 10.11.11.2/30;
            }
        }
    }
    ge-0/0/1 {
        unit 0 {
            description "##CONNECT-TO-PC1##";
            family inet {
                address 192.168.100.1/24;
            }
        }
    }
    ge-0/0/2 {
        unit 0 {
            description "##CONNECT-TO-PC2##";
            family inet {
                address 192.168.200.1/24;
            }
        }
    }
}
routing-options {
    static {
        route 0.0.0.0/0 next-hop 10.11.11.1;
    }
}
security {
    nat {
        source {
            rule-set loc-to-net {
                from zone loc;
                to zone net;
                rule source-nat-rule {
                    match {
                        source-address 192.168.100.0/24;
                        destination-address 0.0.0.0/0;
                    }
                    then {
                        source-nat {
                            interface;
                        }
                    }
                }
            }
        }
    }
    policies {
        from-zone loc to-zone net {
            policy loc-to-net {
                match {
                    source-address any;
                    destination-address any;
                    application any;
                }
                then {
                    permit;
                }
            }
        }
    }
    zones {
        security-zone loc {
            interfaces {
                ge-0/0/1.0 {
                    host-inbound-traffic {
                        system-services {
                            ping;
                            ssh;
                        }
                    }
                }
                ge-0/0/2.0;
            }
        }
        security-zone net {
            interfaces {
                ge-0/0/0.0;
            }
        }
    }
}

To be continued

3 comments:

  1. keren gan sering sering share ilmunya ane mau baca baca yang laen dulu heheh :D

    ReplyDelete
  2. gan minta file junos SRXnya dong :D

    ReplyDelete