{\pwi dTahomaP/=  SS@\++-"/ *(&0:8 ]642<?EIQF i !l(UUP (@gpA- . NAT TRAVERSALB. A/"*+ I nat traducono indirizzi tra un lato indirizzo privato e l'altro,indirizzo pubblico.Binding cache tabella che memorizza le traduzioni.Usatissimo..Risparmio indirizzi IP. Per certe applicazioni,come VoIP via sip non basta questa traslazione ma per il funzionamento del servizio prevede di conoscere il proprio indirizzo e la propria porta pubblico.I nat pero' agendo a lv rete non ha visione dei contenuti del pkt.Application Level GW:capisce i pkt ad esempio x sip e sostituisce indirizzo privato di host con pubblico del nat.Non automatico.B+(&x 'b #n  [ !E  #s #j & $T #T $ $f $ * #} A*m ) Inoltre non capisce il concetto di sessioni.L'host dietro il nat attiva la connessione,funziona a modello client server e non favorisce peer to peer.Dietro un nat non posso sapere facilmente indirizzo pubblico che mi viene assegnato.Nati working group per caratterizzare tutti i tipi di nat e migrati a nat application friendly. Gli host avranno problemi con nat ma bypassano problema con nat traversal.B)#= ( &  $ % # ) ( !r   A( ' B' A& % NAT TRADUZIONIB%  A07; -END POINT INDIPENDENT MAPPING:assegno indirizzo pubblico ad host e uso sempre quello.due host con indirizzi e porte diversi,assegna lo stesso indirizzo a tutti.Scelta finch ho risorse.B; # % ) *  A:-9 -ADDRESS DEPENDING MAPPING :indirizzo pubblico dipende da destinazione,se parlo con stessa macchina ma porte diverse ho sempre lo stesso indirizzo.B9 A  !A    A857 -ADDRESS PORT DEPENDING MAPPING:dipende da indirizzo e porta destinatario,cambiando la porta il mapping cambia,ogni volta che parlo con applicazione diverse,difficile da gestire.B7 % #\ $ &  A6`]g 5 C' un certo tempo in cui ho lo stesso indirizzo per un tempo definto dopo di che la voce viene tolta da binding cache.5 minuti il tempo prefissato.Per le well know port il tempo 2 minuti da quando smetto di parlare.Mando traffico fittizio keep alive udp per tenere la voce in cache.Il NAF deve mandare pkt all'ext per tenere su la connessione.B5' ' #X  $] % %s   &  A4 3 B3 A21 POLITICHE DI FILTERINGB1{  A<N@ Middlebox:Entit di firewall+nat in realt.Se faccio mapping dipendente alla porta il nat continua a cambiare indirizzi e porte a seconda di destinatario.Difficile da tracciare. Il nat seleziona i pacchetti che passano sulla rete.A ha creato associazione pubblico privatoB@$i $ &  ( & $  A?>B> A F BG C 1@G^ @GQFQD|p^:?:ߝD 3 `|E\E _z/89a"J \ H('|p]8$5 0EPD DAs=a%`D%|?AE DCBBD CC.@#|? #0c?v! rA 1%PB9R/2xޜss>7@tB=8餓O Ea)B((/t6|p￁$IAEQD&aFP &a %1CBu@ =WWpȂ.  ` 4A"F嗏o@@BE0@?G@J( [@Bp>#~P@ $Q @8 ߠ!DBW|L(A,(#8 zA 2`.1%? P|6@ @ p&0$`(0o ~뫯>(`Bd! Jv! ϟ%6?|1^z#`@_:bͳ֙d #=@ xȠ AU(2T RELAYING richiede server pubblico,relayBT d A  B AU WdBWA Cd'@A#J@J03‡4ra  0 '`~A]06xߞ9@ 6`O>P%A"(J  (( /{찿AP Z BZ %A   B %A(' A e B apre connessione verso relay,a questo punto si creano 2 connessioni client server.Il nat non mi blocca,il relay diventa nodo da cui passa il traffico,introduco un single point of failure non solo per A e B ma x tutti quelli che usano il servizio.Non scalabile,richiede interventi dell'operatore, limite che un relay assegna indirizzi pubblici per ogni client,risorsa limitata. Stun integra soluzioni di relaying.Accorpando le due entit in un solo nodo,STUN RELAY.B'#% % &s #X & & #F  $a $b &w $w  =  A  B A@ LOW PUNCHING permette comunicazione diretta tra due host nattati.Nasce udp.Si usa un server di randevouz.Questo deve sapere ind e porta pubblica e privata,public e private endpoint.In fase di registrazione colleziono informazione su A e B che mandano un messaggio al server.Randevouz server passa all'interlocutore informazioni sull'altro host.A questo punto gli host comunicano sugli indirizzi pubblici associati dai nat.Per aprire il nat entrambi devono comunicare tra di loro e mandare pkt keepalive per tenere binding sui nat. + leggero e scalabile non funziona con tutti i nat.Provo a farlo se no uso relaying.Passa solo undo behave.B0 #| & # "9  & " !e *  $a $B " !U $} #9  !X A  B #A"gn Usando tcp devo avviare connessioni sincronizzate per evitare il reset rispettivo nelle binding cache.B$ #9   A  B ApoBo  mm#6ut}|$%&'()*+,-./012ggm$; P@_|`ggmp6'9+6@ `|/ .C=BL0 (ggm*F83(: 4ggm ?~@ggm% % 4ءggm% ?>%Pg-gmdc@[8` , tAta6` 7_>P_>P0 8#8 88?x/^kpxgugm 70o~P %gtgm&4%6!|9> (",A=LP3Hggm,!0C0D /! 2ggm  PB $ggm- -@ aggm , N<' q #g+gmM@~U0@ 8Ѐ `3 r ߀8؀-O~ŗ`E@D G_0P@aT8H?o_og}gm}? ?x. g|gmt"8*31 Ns@Oz뭻oggm[Kf3I!|l / 820B(BO:Nz%6{~?[ggm@/ 16/>ggm># #:` ggm>'3,$!F)Ea@ċ6=.cO>"g$gm5%119؟!=:Dq$g%gmH' 0BP$ g&gma& 0B E`B ďg'gm36<*= (~آN| $(282 p~ .`/D @g(gmB xg)gm&0':|(D 1B)g* gm&Yg+gm"H   /a vg,3gmk$^rX~5_5`=6c^O@&P&` ' o@O `P !931 #'ppl;A:h;p;p;h;h<ܐAg-gmx@ @.#-"-vg.gm!_ D0BB]g/gm  ?:?" g0gmm66_{^{g1gm&+||;sσaB /cNg2gmq2!~cM6AL!ŐR