Difference between revisions of "NAT JUNOS"
m (→Konfigurations eksempler) |
m (→Source NAT) |
||
(5 intermediate revisions by the same user not shown) | |||
Line 96: | Line 96: | ||
} | } | ||
} | } | ||
+ | </source> | ||
+ | ===Show kommandoer=== | ||
+ | <source lang=cli> | ||
+ | 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> | ||
</source> | </source> | ||
==Destination NAT== | ==Destination NAT== | ||
+ | På serveren er der installeret en webserver på port 80. Den skal nu præsenteres på internettet på port 80 & 8080.<br/> | ||
+ | Først oprettet web servicen som en pool | ||
+ | <source lang=cli> | ||
+ | [edit] | ||
+ | rael@SRX240# <input>show security nat destination</input> | ||
+ | pool JServer-10_0_255_10-80 { | ||
+ | address 10.0.255.10/32 port 80; | ||
+ | } | ||
+ | </source> | ||
+ | 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) | ||
+ | <source lang=cli> | ||
+ | [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; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | Til sidste tillades HTTP trafik fra alle adresser til serverens adresse af en policy.<br/> | ||
+ | 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. | ||
+ | <source lang=cli> | ||
+ | [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; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </source> | ||
+ | ===Show kommandoer=== | ||
+ | <source lang=cli> | ||
+ | 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 | ||
+ | |||
+ | </source> | ||
+ | |||
==Fejlfinding== | ==Fejlfinding== | ||
[http://www.juniper.net/techpubs/en_US/junos12.1x46/topics/task/verification/nat-security-configuration-verifying.html Verifying NAT Configuration] | [http://www.juniper.net/techpubs/en_US/junos12.1x46/topics/task/verification/nat-security-configuration-verifying.html Verifying NAT Configuration] | ||
Line 106: | Line 207: | ||
{{Source cli}} | {{Source cli}} | ||
[[Category:Juniper]] | [[Category:Juniper]] | ||
+ | [[Category:NAT]] | ||
+ | [[Category:SRX Flow-Based Forwarding]] |
Latest revision as of 18:35, 11 January 2015
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.
Contents
Konfigurations eksempler
Eksempler og referencer er tilrettet til behovet i diagrammet ovenfor men fundet i Junipers NAT Guide
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