NAT JUNOS

From Teknologisk videncenter
Jump to: navigation, search

Juniper SRX enheder arbejder med 3 forskellige typer nat

Static NAT
One-to-one
Bruges som regl til at oversætte en offentlig adresse til en privat adresse på intersiden. Static NAT er 2-vejs, det vil sige at en nat regl tillader pakker fra inderside host til yderside og fra yderside til inderside.
Source NAT
Many-to-one
Source nat bruges oftest til at tillade flere private inderside adresser at blive oversat til 1 eller flere offentlige yderside adresser.
Destination NAT
One-to-many
Bruges som regl til at præsentere inderside servere på internettet.

Konfigurations eksempler

Eksempler og referencer er tilrettet til behovet i diagrammet ovenfor men fundet i Junipers NAT Guide

Image text

Source NAT

Ydersiden er forbiundet til en access port i vlan 99 og indersiden er forbundet til en access port i vlan 10. For hver af de 2 vlans er der oprettet et RVI: vlan.10 for VLAN 10 og vlan.99 for VLAN 99

[edit]
rael@SRX240# <input>show interfaces vlan</input>
unit 10 {
    family inet {
        address 10.0.255.1/24;
    }
}
unit 99 {
    family inet {
        dhcp;
    }
}

Hvert RVI interface er smidt i en security zone kalder trust for LAN netværket(10.0.255.0/24) og untrust for WAN netværket(192.168.146.0/24).

[edit]
rael@SRX240# <input>show security zones security-zone trust</input>
host-inbound-traffic {
    system-services {
        all;
    }
    protocols {
        all;
    }
}
<notice>interfaces {
    vlan.10;
}</notice>

[edit]
rael@SRX240# <input>show security zones security-zone untrust</input>
screen untrust-screen;
interfaces {
    vlan.99 {
        host-inbound-traffic {
            system-services {
                dhcp;
                tftp;
            }
        }
    }
}

Source NAT reglen er lavat så alt traffik der kommer fra et interface i en trust zone og bliver routet til et interface i untrust zonen, bliver NAt'et til ydersidens IP adresse. Alt trafik er tilladt.

[edit]
rael@SRX240# <input>show security nat source</input>
rule-set trust-to-untrust {
    from zone trust;
    to zone untrust;
    rule source-nat-rule {
        match {
            source-address 0.0.0.0/0;
        }
        then {
            source-nat {
                interface;
            }
        }
    }
}

Da vi arbejder på en SRX i Flow-mode skal trafikken også tillades i en politik. Som default tillader vi fra alt, til alt, på alle protokoller.

[edit]
rael@SRX240# <input>show security policies</input>
from-zone trust to-zone untrust {
    policy trust-to-untrust {
        match {
            source-address <notice>any</notice>;
            destination-address <notice>any</notice>;
            application <notice>any</notice>;
        }
        then {
            permit;
        }
    }
}

Show kommandoer

rael@SRX240> <input>show security nat source rule all</input>
Total rules: 1
Total referenced IPv4/IPv6 ip-prefixes: 1/0

source NAT rule: source-nat-rule      Rule-set: trust-to-untrust
  Rule-Id                    : 1
  Rule position              : 1
  From zone                  : trust
  To zone                    : untrust
  Match
    Source addresses         : 0.0.0.0         - 255.255.255.255
    Destination port         : 0               - 0
  Action                        : interface
    Persistent NAT type         : N/A
    Persistent NAT mapping type : address-port-mapping
    Inactivity timeout          : 0
    Max session number          : 0
  <notice>Translation hits           : 10193</notice>

Destination NAT

På serveren er der installeret en webserver på port 80. Den skal nu præsenteres på internettet på port 80 & 8080.
Først oprettet web servicen som en pool

[edit]
rael@SRX240# <input>show security nat destination</input>
pool JServer-10_0_255_10-80 {
    address 10.0.255.10/32 port 80;
}

Så oprettes 2 NAT regler for port 80 & 8080. Da vi har en DHCP tildelt adresse på ydersiden er destinations adressen sat til hele /24 netværket.(Proxy-ARP er ikke konfigureret så i dette setup vil det virke)

[edit]
rael@SRX240# <input>show security nat destination</input>
rule-set untrust-to-trust {
    from zone untrust;
    rule dest-nat-jserver-8080 {
        match {
            destination-address 192.168.146.0/24;
            destination-port 8080;
        }
        then {
            destination-nat pool JServer-10_0_255_10-80;
        }
    }
    rule dest-nat-jserver-80 {
        match {
            destination-address 192.168.146.0/24;
            destination-port 80;
        }
        then {
            destination-nat pool JServer-10_0_255_10-80;
        }
    }
}

Til sidste tillades HTTP trafik fra alle adresser til serverens adresse af en policy.
Læg her mærke til at adressen er inderside adresse på serveren og der kun matches på http/port 80. Destinations NAT ligger før policies i JUNOS Flowet og skal derfor konfigureres sådan.

[edit]
rael@SRX240# <input>show security policies</input>
from-zone untrust to-zone trust {
    policy untrust-to-trust {
        match {
            source-address any;
            <notice>destination-address JServer-10.0.255.10;
            application junos-http;</notice>
        }
        then {
            permit;
        }
    }
}

Show kommandoer

rael@SRX240> <input>show security nat destination pool all</input>
Total destination-nat pools: 2

Pool name       : JServer-10_0_255_10-80
Pool id         : 1
Total address   : 1
<notice>Translation hits: 46</notice>
Address range                        Port
    10.0.255.10 - 10.0.255.10          80

rael@SRX240> <input>show security nat destination summary</input>
Total pools: 2
Pool name            Address                           Routing        Port  Total
                     Range                             Instance             Address
JServer-10_0_255_10-80 10.0.255.10  - 10.0.255.10                     80    1
JServer-10_0_255_10-22 10.0.255.10  - 10.0.255.10                     22    1

Total rules: 3
Rule name            Rule set       From                               Action
dest-nat-jserver-8080 untrust-to-trust untrust                         JServer-10_0_255_10-80
dest-nat-jserver-80  untrust-to-trust untrust                          JServer-10_0_255_10-80
dest-natjserver-2222 untrust-to-trust untrust                          JServer-10_0_255_10-22

Fejlfinding

Verifying NAT Configuration

Referencer