network address translation

31
1 Network Address Translation

Upload: naasir

Post on 07-Jan-2016

70 views

Category:

Documents


1 download

DESCRIPTION

Network Address Translation. Gestione piano di numerazione IP. ICANN ( Internet Corporation for Assigned Names and Numbers ) RIR RIPE (Réseaux IP Européens) LIR Indirizzi privati (RFC 1918) e.g. 10/8…. Esempio di utilizzo di indirizzi privati. 10.0.0.0/14 10.0.0.0 mask 255.252.0.0. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Network Address Translation

1

Network Address Translation

Page 2: Network Address Translation

2

Gestione piano di numerazione IP

• ICANN (Internet Corporation for Assigned Names and Numbers)

• RIR– RIPE (Réseaux IP Européens)

• LIR

• Indirizzi privati (RFC 1918)– e.g. 10/8…..

Page 3: Network Address Translation

3

Esempio di utilizzo di indirizzi privati

10.3.0.0/16

10.2.0.0/16

10.1.1.0/2410.1.254.0/24

10.0.0.0/14

10.0.0.0 mask 255.252.0.0

Rete IP pubblica

R

NAT

R

NATR

NAT

R

NAT

Page 4: Network Address Translation

4

NAT come forma di sicurezza rudimentale

10.3.0.0/16R

NATRete IP pubblica

82.53.100.1

Page 5: Network Address Translation

5

Schema di riferimento

Network

Layer

Transport Layer

Application

Layer

Network

Layer

Transport Layer

Application

Layer

Indirizzo IP

Porta TCP/UDP

Page 6: Network Address Translation

6

Schema di riferimento NAT

10.3.0.0/16R

NATRete IP pubblica

IL IG

OGOL

Page 7: Network Address Translation

7

NAT BA2

Public network

10.0.0.0/24

.1

.100

171.69.58.60

C171.69.5.100

Inside Outside

80.17.192.4

A1 .120

Inside Local (IP:port) Inside Global (IP:port) (#) Remote host (IP:port)

A1:4754 80.17.192.4:1234 171.69.58.60:80

A2:4776 80.17.192.4:3456 171.69.5.100:80

A1:4888 80.17.192.4:3322 171.69.58.60:80

………. …………. ………….

Translation Table

Nota(*) Il binding può essere funzione anche del remote host in funzione del tipo di NAT

(#) Il check su IP/porta remoti esiste o meno in funzione del tipo di NAT

Page 8: Network Address Translation

8

NAT BPublic network

.1 171.69.58.60

IG(80.17.192.4)

A1 .120

IL(A1):4754 B:80

SRC_ADDR DST_ADDR

1

IL(A1):4754 IG(A1):1234

NAT

2

IG(A1):1234 B:803

B:80 IG(A1):12344

NAT

5B:80 IL(A1):4754

6

ip nat translation ? icmp-timeout Specifica timeout per flussi NAT ICMPsyn-timeout Specifica timeout per flussi TCP NAT per inattività dopo un SYN

Le entry della translation table hanno un expire time …esempio con IOS

IL(10/8)

Page 9: Network Address Translation

9

InsideGlobal

InsideLocal

Statico ( one – to – one)

Ogni host della rete privata “esce” con un indirizzo pubblico fissato

InsideGlobal

InsideLocal

dinamico Gli host della rete privata sono mappati su un pool di indirizzi IG (N:M, N>>M)

InsideLocal

PAT (may-to-one) Port Address Translation

Gli host della rete privata sono mappati su un solo indirizzo IG (+ source port translation); il traffico outside -> inside è indirizzato all’host corretto in funzione della porta di destinazione

InsideGlobal

Page 10: Network Address Translation

10

Configurazione IOS del router

/* definizione dei pool

ip nat-pool pool1 80.17.192.1 80.17.192.254 netmask 255.255.255.0 ip nat-pool pool2 80.17.193.1 80.17.193.254 netmask 255.255.255.0

/* regole di natting: traffico che ha next hop che fa matching con la regola map1 viene

nattato con pool1….

Interface s0 ip nat outside // s0 è outsideInterface s1 ip nat outside // s1 è outsideInterface e0 ip nat inside // e1 è inside

ip nat inside source route-map map1 pool pool1ip nat inside source route-map map2 pool pool2

Route-map map1 permit 10 Route-map map2 permit 10 match interface serial 0 match interface serial 1

NAT.1

80.17.192.0/24 (pool1)

A1 .12080.17.193.0/24

(pool 2)

10.0.0.0/24

E0 S1

S0

Page 11: Network Address Translation

11

Si vuole indirizzare (in modo statico) tutto il traffico di un certo tipo proveniente dall’esterno verso un host specifico

esempio: traffico SMTP

ip nat inside source static tcp 10.0.0.120 80.17.192.4 25

Tutte le connessioni provenienti dall’esterno e indirizzate alla porta 25 saranno inoltrate a 10.0.0.120:25

NAT.1Server

DNS, posta,…

.120

10.0.0.0/24

E0

80.17.192.4

Page 12: Network Address Translation

12

NAT

ISP 1

OG 140.16/16

IL 10.0.0.0/8

Inside

NAT

Outside

ISP 2

OG 193.17/16

IG 193.17.15/24

IG 140.16.20/24

OL 192.168.1/24

OL 192.168.2/24

Pacchetto proveniente dall’esterno

Look up dst address = IG

Translation inside

Sostituisce DST address con IL

Look up src address = OG

Translation outside

scarta

fail fail

Alloca indirizzi OL

Crea entry OL - OG

Sostituisce SRC address con OL

Pacchetto proveniente dall’interno

Look up dst address = OL

Translation outside

Sostituisce DST address con OG

Look up src address = IL

Translation inside

scarta

fail fail

Alloca indirizzi IG

Crea entry

IL - IG

Sostituisce SRC address con IG

Page 13: Network Address Translation

13

NAT & ALG

Application Layer Gateway

Page 14: Network Address Translation

14

Alcuni applicativi inseriscono l’indirizzo IP nel payload

NAT BPublic network

.1 171.69.58.60

A1 .120

IL(A):4754 IG(A):1234

NAT

2

UDP 1IL(A):4754 B:5060IP

Pa

ylo

ad 10.0.0.120:4754

3IG(A):1234 B:5060

10.0.0.120:4754

10.0.0.120:4754B:804

???

Page 15: Network Address Translation

15

NAT 1

ip nat pool iga 140.16.10.1 140.16.10.254 netmask 255.255.255.0

ip nat inside source list 1 nat pool iga

access-list 1 permit 10.0.0.0 0.255.255.255

ip nat inside source static 10.20.20.10 140.16.10.254

NAT2

ip nat pool iga 193.17.15.1 193.17.15.254 netmask 255.255.255.0

ip nat inside source list 1 nat pool iga

access-list 1 permit 10.0.0.0 0.255.255.255

ip nat inside source static 10.20.20.10 193.17.15.250

Boot file

primary foo.com db.foo

primary 10.in-addr.arpa db.10

forwarders 128.9.0.107

options forward-only\

(OG) DNS 128.9.0.107

IL 10.0.0.0/8

DNS primario di foo.com (ns.foo.com)

10.20.20.10

NAT2ISP 2

OG 193.17/16

IG 193.17.15/24

IG 140.16.10/24

NAT1

ISP 1

OG 140.16/16

ns.foo.com è DNS autoritativo per foo.com

gli host della rete 10.0.0.0/8 usano ns.foo.com per tutte le query DNS

ns.foo.com effettua il forward delle query DNS verso 128.9.0.107

Db.foo file

; Name Serversfoo.com. IN NS ns.foo.com.; Addressesns.foo.com. IN A 10.20.20.10 ; Inside Local addressx.foo.com. IN A 10.1.1.1 ; Inside Local address

db.10 File

; Reverse address resolution for local network addresses; Name Servers10.in-addr.arpa. IN NS ns.foo.com.; Addresses10.20.20.10.in-addr.arpa IN PTR ns.foo.com. 1.1.1.10.in-addr.arpa IN PTR x.foo.com.

Page 16: Network Address Translation

16

(OG) DNS 128.9.0.107

IL 10.0.0.0/8

DNS primario di foo.com (ns.foo.com)

10.20.20.10

NAT2isp2.com

OG 193.17/16

IG 193.17.15/24

IG 140.16.10/24

NAT1

isp1.com

OG 140.16/16

Delega della reverse resolution 140.16.10/24

Sul DNS autoritativo di 16.140.in-addr.arpa (ISP 1)

10.16.140.in-addr.arpa. 86400 IN NS foo-ns.isp1.com

foo-ns.isp1.com. IN A 140.16.10.254

Delega della reverse resolution 193.17.15/24

Sul server autoritativo di 17.193.in-addr.arpa (ISP 2)

15.17.193.in-addr.arpa. 86400 IN NS foo-ns.isp2.com

foo-ns.isp2.com. IN A 193.17.15.250

Delega della risoluzione diretta del domino foo.com

Sul server autoritativo di .com

foo 86400 IN NS ns.foo.com.;

ns.foo.com. 86400 IN A 140.16.10.254 ; Inside Global address

IN A 193.17.15.250 ; Inside Global address

; il DNS di foo.com è visto con 2 indirizzi diversi che corrispondono allo stesso host

Page 17: Network Address Translation

17

Per Query DNS originate dall’esterno il NAT/ALG deve entrare nel merito del protocollo DNS; se fosse abilitato anche il NAT outiside entrerebbe nel merito anche delle queryoriginate dall’interno

DNS (OG) 128.9.0.107

IL 10.0.0.0/8

(ns.foo.com)

IL(10.20.20.10)

NAT2isp2.com

OG 193.17/16

IG 193.17.15/24

IG 140.16.10/24

NAT1isp1.com

OG 140.16/16

host x.foo.com

(10.1.1.1)

host y.bar.com (OG) (16.10.10.2)

bar.comns.bar.com OG (16.10.10.2)

123

5

6

4

• La risposta contiene A RR (per x.foo.com)

• La Translation Table non ha un entry con un IL uguale a quello riportato nella risposta come A RR.

• Quindi:

alloca un indirizzo dallo spazio IG (140.16.10.2)

crea una entry con:

• IL address = 10.1.1.1 (l’indirizzo riportato come A RR)

• IG address = 140.16.10.2

• Sostituisce 10.1.1.1 (IL) nella A RR della risposta con 140.16.10.2 (IG)

Page 18: Network Address Translation

18

Per Query DNS PTR RR originate dall’esterno (risoluzione inversa)

DNS (OG) 128.9.0.107

IL 10.0.0.0/8

(ns.foo.com)

IL(10.20.20.10)

NAT2isp2.com

OG 193.17/16

IG 193.17.15/24

IG 140.16.10/24

NAT1isp1.com

OG 140.16/16

host x.foo.com

(10.1.1.1)

host y.bar.com (OG) (16.10.10.2)

bar.comns.bar.com OG (16.10.10.2)

13

5

62

2) NAT1 legge che il campo QNAME della Query contiene 2.10.16.140.in-addr.arpa.

NAT1 rimpiazza QNAME con 1.1.1.10 e invia la query al DNS interno

4

4) NAT1 legge la risposta che ha campo QNAME = 1.1.1.10, PTR RR = 10.1.1.1 (IL) e nome dell’host x.foo.com

rimpiazza il campo QNAME con 2.10.16.140 e PTR RR con 140.16.10.2 (IG).

Page 19: Network Address Translation

19

Network Address Translation

tipologia

Page 20: Network Address Translation

20

NAT BA2

Public network

10.0.0.0/24

.1

.100

171.69.58.60

C171.69.5.100

80.17.192.4

A1 .120

Inside Local (IP:port) Inside Global (IP:port) Remote host (IP:port)

A1:4754 80.17.192.4:1234 B:80

A2:4776 80.17.192.4:3456 C:80

A1:4888 80.17.192.4:3322 B:8080

………. …………. ………….

Translation Table

Full ConeFull Cone

Binding non dipendono dall’IP di destinazione

I binding esistono sempre (è possibile avere traffico originato da esterno)

Page 21: Network Address Translation

21

NAT BA2

Public network

10.0.0.0/24

.1

.100

171.69.58.60

C171.69.5.100

80.17.192.4

A1 .120

Inside Local (IP:port) Inside Global (IP:port) Remote host (IP)

A1:4754 80.17.192.4:1234 B:80

A2:4776 80.17.192.4:3456 C:80

A1:4888 80.17.192.4:3322 B:8080

………. …………. ………….

Translation Table

Restricted ConeRestricted Cone

Binding non dipendono dall’IP di destinazione (solo da IP e porta sorgente)

I binding sono creati dinamicamente sul traffico uscente ( non è possibile avere traffico originato da esterno)

Data la translation table in figura, solo B può inviare traffico ad A1 e solo C ad A2 (ma da qualsiasi porta sorgente)

Page 22: Network Address Translation

22

NAT BA2

Public network

10.0.0.0/24

.1

.100

171.69.58.60

C171.69.5.100

80.17.192.4

A1 .120

Inside Local (IP:port) Inside Global (IP:port) Remote host (IP:port)

A1:4754 80.17.192.4:1234 B:80

A2:4776 80.17.192.4:3456 C:80

A1:4888 80.17.192.4:3322 B:8080

………. …………. ………….

Translation Table

Port Restricted ConePort Restricted Cone

Binding non dipendono dall’IP di destinazione (solo da IP e porta sorgente)

I binding sono creati dinamicamente sul traffico uscente ( non è possibile avere traffico originato da esterno)

Data la translation table in figura, solo B può inviare traffico ad A1 e solo C ad A2 (ma solo dalle porte 80,8080 per B e 80 per C)

Page 23: Network Address Translation

23

NAT BA2

Public network

10.0.0.0/24

.1

.100

171.69.58.60

C171.69.5.100

80.17.192.4

A1 .120

Inside Local (IP:port) Inside Global (IP:port) Remote host (IP:port)

A1:4754 80.17.192.4:1234 B:80

A2:4776 80.17.192.4:3456 C:80

A1:4888 80.17.192.4:3322 B:8080

………. …………. ………….

Translation Table

SymmetricSymmetric

Binding dipendono da IP, porta sorgente e IP di destinazione

I binding sono creati dinamicamente sul traffico uscente ( non è possibile avere traffico originato da esterno)

Data la translation table in figura, B:80, B:8080, C:80 possono può inviare traffico ad A1 e solo C:80 ad A2

Page 24: Network Address Translation

24

Network Address Translation

NAT traversal

Page 25: Network Address Translation

25

(STUN) Simple Traversal UDP through NAT (RFC 3489)(STUN) Simple Traversal UDP through NAT (RFC 3489)

NAT B

10.0.0.0/24

.1A1 171.69.58.60

A1:8000:“chi sono io ?” NAT

Probe

“Sono pronto a ricevere su 171.69.58.80 porta 8200”

80.17.192.4

“sei: 80.17.192.4:5053”

Stream RTP/UDP (80.17.192.4:5053 171.69.58.60:8200)

“Sono pronto a ricevere su 80.17.192.4 porta 5053”

• per raggiungere A1 si deve usare la stessa porta per traffico entrante e uscente (anche la porta sorgente di B deve essere uguale a quella di ascolto nel caso di port restricted cone)

• Nel caso di restricted cone o port restricted cone il client deve iniziare a trasmettere per poter ricevere

• Non funziona per Symmetric NAT

Stream RTP/UDP 171.69.58.60:X 80.17.192.4:5053

Page 26: Network Address Translation

26

(STUN) Simple Traversal UDP through NAT (RFC 3489)(STUN) Simple Traversal UDP through NAT (RFC 3489)

NAT

Probeclient Request (response address/port, Change IP, Change

Port)

Influenza DST IP:port della risposta

Influenza SRC IP:port della risposta

Response (mapped address, Changed, Source Address)

(IP1, port1)

(IP2, port2)

Change IP Change Port Changed Address Source Address

N N IP2, P2 IP1, P1

Y N IP2, P2 IP2, P1

N Y IP2,P2 IP1,P2

Y Y IP2,P2 IP2,P2

STUN DISCOVERY

# Test Change IP Change Port

1 N N

2 Y Y

3 N Y

Page 27: Network Address Translation

27

Test 1

Response?UDP

bloccato SRC IP =Mapped addr.

Yes=>

No NAT

Test 2

Open internet

Response?Yes

Fw UDPsimmetrico

Test 2

Response?Full Cone

YesTest 1

Verso IP2/P2

Map. Addrs ugualeTest 1

Symmetric Yes

Test 3 Response?Yes

Restricted Cone

PortRestricted

Cone

yes

No

Page 28: Network Address Translation

28

Binding LifetimeBinding Lifetime

NAT

Probeclient

NAT

IP1: port X Request

Response (Mapped address IP:port = IPa:Pb)

Il NAT crea un binding per il socket X

T

IP1: port Y Request (response IP:port = IPa:Pb)

Il NAT crea un binding per il socket Y

Se il client riceve la risposta sul socket x => il binding per x è ancora vivo

Se il client riceve la risposta sul socket y => il binding per x è spirato e NAT ha riusato lo stesso ipa:pb per il nuovo binding

Se il client non riceve risposta => il binding è spirato

Ricerca binaria su T per trovare:

TL: per ogni t > TL non si riceve risposta, t <= TL si riceve risposta

Page 29: Network Address Translation

29

Appendice

DNS

Page 30: Network Address Translation

30

Reminder: DNS Resolving

Resolver

Question:

www.ripe.net A

www.ripe.net A ?

Cachingforwarder(recursive)

root-serverwww.ripe.net A ?

“go ask net server @ X.gtld-servers.net”

gtld-serverwww.ripe.net A ?

“go ask ripe server @ ns.ripe.net”

ripe-server

www.ripe.net A ?

“193.0.0.203”

193.0.0.203

1 2

3

4

5

6

7

Add to cache9

8

10 TTL

Page 31: Network Address Translation

31