File: a2448.html

package info (click to toggle)
appunti-informatica-libera 2001.08.18-2
  • links: PTS
  • area: main
  • in suites: woody
  • size: 27,912 kB
  • ctags: 23,734
  • sloc: makefile: 69
file content (106 lines) | stat: -rw-r--r-- 6,498 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"    "http://www.w3.org/TR/html4/strict.dtd">
<HTML LANG="it">
<HEAD>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html">
    <META NAME="Generator" CONTENT="Alml">
    <META NAME="Description" CONTENT="GNU/Linux e altro software libero">
    <META NAME="Keywords" CONTENT="Linux, GNU/Linux, Unix, software, software libero, free software">
    <META NAME="Author" CONTENT="Daniele Giacomini &nbsp;&nbsp; &nbsp;daniele&nbsp;@&nbsp;swlibero.org">
    <META NAME="Date" CONTENT="2001.08.18 ">
    <META NAME="Resource-type" LANG="en" CONTENT="Document" >
    <META NAME="Revisit-after" LANG="en" CONTENT="15 days" >
    <META NAME="Robots" CONTENT="ALL" >
    <TITLE> Appunti di informatica libera</TITLE>
    <LINK REL="stylesheet" TYPE="text/css" HREF="a2.css">
    <LINK REL="Start" TITLE="Start" HREF="a2.html">
    <LINK REL="Prev" TITLE="Previous" HREF="a2447.html">
    <LINK REL="Next" TITLE="Next" HREF="a2449.html">
</HEAD>
<BODY>
<P>
<A HREF="a2449.html">[successivo]</A>
<A HREF="a2447.html">[precedente]</A>
<A HREF="a2.html">[inizio]</A>
<A HREF="a2506.html">[fine]</A>
<A HREF="a21.html">[indice generale]</A>
<A HREF="a26.html">[violazione GPL]</A>
<A HREF="a2504.html">[licenze]</A>
<A HREF="a2505.html">[indice analitico]</A>
<A HREF="a2432.html">[tomo]</A>
<A HREF="a2433.html">[parte]</A>
</P>
<HR>
<DIV>
<H1>Capitolo 349, diapositiva<BR><A NAME="title5267"></A><A NAME="anchor6427"></A> NAT/PAT 2 </H1>

<P><BIG>Un <A NAME="index26219"></A>router NAT pi&ugrave; evoluto pu&ograve; gestire anche la sostituzione delle porte TCP e UDP. In tal caso di parla anche di PAT.</BIG></P>

<TABLE ID="anchor6428" BORDER="0" WIDTH="100%">
<TR><TD>

<PRE>connessioni TCP viste                        connessioni TCP viste
all'esterno                                  localmente
                           .---------------.
199.3.2.1:23               |               | 199.1.2.3:23            .---------.
&lt;- - - - - - - - - - - - -&gt;|               |&lt;- - - - - - - - - - - -&gt;| cliente |
            196.1.2.3:1050 |               |        192.168.1.1:1050 `---------'
                           |    NAT/PAT    |
200.7.8.9:23               |               | 200.7.8.9:23            .---------.
&lt;- - - - - - - - - - - - -&gt;|               |&lt;- - - - - - - - - - - -&gt;| cliente |
           196.1.2.3:1093  |               |        192.168.1.2:1050 `---------'
                           `---------------'</PRE>

<P class="caption"> Due connessioni TCP indipendenti, rielaborate da un <A NAME="index26220"></A>router NAT/PAT. </P>

</TD></TR>
</TABLE>

<P><BIG>La figura mostra il caso in cui i <A NAME="index26221"></A>nodi 192.168.1.1 e 192.168.1.2 instaurano due connessioni TELNET indipendenti attraverso un <A NAME="index26222"></A>router NAT/PAT. In questo caso, il <A NAME="index26223"></A>router NAT/PAT non si limita a sostituire ai pacchetti gli indirizzi IP di origine o di destinazione, intervenendo anche sui numeri di porta TCP.</BIG></P>

<P><BIG>Il meccanismo NAT/PAT potrebbe anche essere utilizzato per dirigere le connessioni originate dall'esterno e dirette a porte determinate (probabilmente nel gruppo di porte privilegiato) a <A NAME="index26224"></A>nodi ben precisi nella rete locale, solitamente per raggiungere dei servizi realizzati l&igrave;. Per fare questo occorre quindi che il <A NAME="index26225"></A>router NAT/PAT annoti delle ridirezioni statiche riferite alla richiesta di porte particolari.</BIG></P>

<TABLE ID="anchor6429" BORDER="0" WIDTH="100%">
<TR><TD>

<PRE>connessione TCP vista                        connessione TCP vista
all'esterno                                  localmente
                           .---------------.
199.3.2.1:1045             |               | 199.1.2.3:1045
&lt;- - - - - - - - - - - - -&gt;|    NAT/PAT    |&lt;- - - - - -.
              196.1.2.3:80 |               |            :
                           `---------------'            :
                                                        : 
                                                        V 192.168.1.1:80
                                                   .----------.
                                                   | servente |
                                                   |   HTTP   |
                                                   | interno  |
                                                   `----------'</PRE>

<P class="caption"> Ridirezione del traffico diretto a un <A NAME="index26226"></A>servente HTTP interno. </P>

</TD></TR>
</TABLE>

<P><BIG>Il meccanismo NAT/PAT, come qualunque altra forma di rimaneggiamento dei pacchetti allo scopo di sostituire gli indirizzi IP o le porte TCP/UDP, funziona bene solo quando i protocolli utilizzati a livello di sessione, ovvero il quarto del modello OSI/ISO, non prendono iniziative autonome allo scopo di gestire gli indirizzi e le porte. In altri termini, tutto funziona bene se non si inseriscono informazioni sugli indirizzi e sulle porte al di sopra del livello del TCP o di UDP.</BIG></P>

<P><BIG>Il classico esempio problematico &egrave; dato dall'FTP che negozia con la controparte l'instaurazione di una connessione TCP aggiuntiva, attraverso informazioni contenuta nell'area &laquo;dati&raquo; dei pacchetti. In questo modo, un <A NAME="index26227"></A>router NAT/PAT ingenuo riuscirebbe a trasferire solo la prima connessione TCP.</BIG></P>

<P><BIG>Evidentemente, un <A NAME="index26228"></A>router NAT/PAT evoluto dovrebbe essere consapevole, non solo dei protocolli IP, TCP e UDP, ma anche di tutti i protocolli che si inseriscono al di sopra di questi, in modo da intervenire opportunamente.</BIG></P>

<P><BIG>Un'ultima cosa da considerare riguarda anche il problema dei pacchetti frammentati, che devono essere necessariamente ricomposti quando si usa il meccanismo NAT/PAT.</BIG></P>
Appunti di informatica libera 2001.08.18  --- <EM>Copyright &copy; 2000-2001 Daniele Giacomini -- &nbsp;daniele&nbsp;@&nbsp;swlibero.org</EM></DIV>
<HR>
<P>Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome  <A HREF="nat_pat_2.html">nat_pat_2.html</A></P>
<P>
<A HREF="a2449.html">[successivo]</A>
<A HREF="a2447.html">[precedente]</A>
<A HREF="a2.html">[inizio]</A>
<A HREF="a2506.html">[fine]</A>
<A HREF="a21.html">[indice generale]</A>
<A HREF="a26.html">[violazione GPL]</A>
<A HREF="a2504.html">[licenze]</A>
<A HREF="a2505.html">[indice analitico]</A>
</P>
</BODY>
</HTML>