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 daniele @ 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ù evoluto può 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 .---------.
<- - - - - - - - - - - - ->| |<- - - - - - - - - - - ->| cliente |
196.1.2.3:1050 | | 192.168.1.1:1050 `---------'
| NAT/PAT |
200.7.8.9:23 | | 200.7.8.9:23 .---------.
<- - - - - - - - - - - - ->| |<- - - - - - - - - - - ->| 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ì. 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
<- - - - - - - - - - - - ->| NAT/PAT |<- - - - - -.
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 è dato dall'FTP che negozia con la controparte l'instaurazione di una connessione TCP aggiuntiva, attraverso informazioni contenuta nell'area «dati» 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 © 2000-2001 Daniele Giacomini -- daniele @ 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>
|