nolith / intro_ipv6

Presentazione beamer su IPv6.

Clone this repository (size: 2.1 MB): HTTPS / SSH
$ hg clone http://code.l0g.in/intro_ipv6

Changed (Δ9.2 KB):

raw changeset »

Presentazione.tex (203 lines added, 2 lines removed)

Up to file-list Presentazione.tex:

24
24
          titleline=true,% Show a line below the frame title.
25
25
          alternativetitlepage=true,% Use the fancy title page.
26
26
          titlepagelogo=logo-lart,% Logo for the first page.
27
          watermark=licenza_small,% Watermark used in every page.
28
          watermarkheight=5px,% Height of the watermark.
27
%          watermark=licenza_small,% Watermark used in every page.
28
%          watermarkheight=5px,% Height of the watermark.
29
29
          %watermarkheightmult=4,% The watermark image is 4 times bigger
30
30
                                % than watermarkheight.
31
31
          ]{Torino}
@@ -679,8 +679,209 @@ Indirizzo destinazione del datagramma.
679
679
		Quindi saranno a tutti gli effetti parte del dato trasportato a meno che il nodo in transito non sia interessato alla specifica estensione, che è indicata dal campo \texttt{Next Header}
680
680
	\end{colorblock}
681
681
\end{frame}
682
683
\begin{frame}\frametitle{1 interfaccia $\Leftrightarrow$ N indirizzi}
684
	In IPv6 la relazione interfaccia - indirizzo è di tipo 1:N. Non esiste un indirizzo predefinito ed altri secondari, sono tutti allo stesso livello di importanza. \pause
685
	\begin{colorblock}{Vantaggi?}
686
		\pause
687
		Se consideramo la tipica infrastruttura di hosting web con qualche decina di siti per ogni singolo server, con un solo indirizzo IPv4, è evidente che è un problema fornire il supporto per SSL, perch\'e la trasmissione del certificato per istaurare il tunnel sicuro avviene prima di comunicare quale sito vogliamo raggiungere. Con IPv6 basterà assegnare alla stessa macchina un indirizzo per ogni sito ed a ognuno di questi uno specifico certificato per SSL.
688
	\end{colorblock}
689
\end{frame}
682
690
% section ipv6_nel_dettaglio (end)
683
691
692
\section{Automatismi e routing} % (fold)
693
\label{sec:automatismi_e_routing}
694
695
\begin{frame}\frametitle{Autoconfigurazione}
696
	Una delle novità introdotte da IPv6 è l'autoconfigurazione dei nodi di rete, che anche in assenza
697
	di un router sono in grado di generare autonomamente un indirizzo link-local unicast per garantire la
698
	comunicazione fra i nodi interconnessi.
699
	
700
	La generazione di questo tipo di indirizzo è il primo passo da eseguire per poter ottenere
701
	un indirizzo global unicast. 
702
	
703
	Con gli indirizzi link-local unicast e con il protocollo ICMPv6 si va di fatto a spostare più in 
704
	alto di un livello il compito di ARP, rendendolo indipendente dalla
705
	tecnologia utilizzata per il livello due della rete.
706
\end{frame}
707
708
\begin{frame}\frametitle{Indirizzo link-local unicast autoconfigurato}
709
	\begin{colorblock}{Global Routing Prefix}
710
		Gli indirizzi link-local sono tutti nel prefix \texttt{FE80::/10}.
711
		
712
		All'interno di questo prefix è stato riservato il GRP \texttt{FE80::/64} per gli indirizzi
713
		link-local unicast autoconfigurati.
714
	\end{colorblock} \pause
715
	\vspace{0.5cm}
716
	\begin{colorblock}{Interface ID}
717
		Per assegnare la interface ID si utilizza l'EUI-64, un campo di 64 bit generato a partire
718
		 dall'indirizzo MAC dell'interfaccia di rete. 
719
	\end{colorblock}
720
\end{frame}
721
 
722
\begin{frame}[fragile]\frametitle{Extended Unique Identifier (EUI-64) - Algoritmo}
723
	
724
%\setlength{\byteheight}{4ex}
725
\settowidth{\bitwidth}{\tiny 9i}
726
\begin{bytefield}{64} 
727
	\bitheader{0,8,16,24,32,40,48,56,64} \\ 
728
	\wordgroupr{\tiny{MAC}}
729
	\bitbox{8}{MAC[0]} & \bitbox{8}{MAC[1]} &\bitbox{8}{MAC[2]} &\bitbox{8}{MAC[3]} &\bitbox{8}{MAC[4]} &\bitbox{8}{MAC[5]}
730
	\endwordgroupr \\
731
	\wordbox[]{1}{$\Downarrow$ \\[1ex]} \\ \pause
732
	\bitbox{8}{MAC[0]} & \bitbox{8}{MAC[1]} &\bitbox{8}{MAC[2]} &
733
	 \colorbitbox{chameleongreen2}{16}{\texttt{0xFF FE}} &
734
	\bitbox{8}{MAC[3]} & \bitbox{8}{MAC[4]} &\bitbox{8}{MAC[5]} \\ 
735
	\wordbox[]{1}{$\Downarrow$ \\[1ex]} \\ \pause
736
	\wordgroupr{\tiny{EUI-64}}
737
	\colorbitbox{chameleongreen2}{8}{\texttt{0x02}} & \bitbox{8}{MAC[1]} &\bitbox{8}{MAC[2]} &
738
	 \bitbox{16}{\texttt{0xFF FE}} &
739
	\bitbox{8}{MAC[3]} & \bitbox{8}{MAC[4]} &\bitbox{8}{MAC[5]} 
740
	\endwordgroupr
741
\end{bytefield} 
742
	
743
\end{frame}
744
745
\begin{frame}[fragile]\frametitle{EUI-64 - esempio}
746
	Vediamo un esempio pratico con l'indirizzo MAC \texttt{00:16:cb:8c:de:8b} \pause
747
	
748
	\vspace{0.5cm}
749
750
	%\setlength{\byteheight}{4ex}
751
	\settowidth{\bitwidth}{\tiny 9i}
752
	\begin{bytefield}{64} 
753
		\bitheader{0,8,16,24,32,40,48,56,64} \\ 
754
		\wordgroupr{\tiny{MAC}}
755
		\bitbox{8}{\texttt{0x00}} & \bitbox{8}{\texttt{0x16}} &\bitbox{8}{\texttt{0xcb}}
756
		 &\bitbox{8}{\texttt{0x8c}} &\bitbox{8}{\texttt{0xde}} &\bitbox{8}{\texttt{0x8b}}
757
		\endwordgroupr \\
758
		\wordbox[]{1}{$\Downarrow$ \\[1ex]} \\ \pause
759
		\bitbox{8}{\texttt{0x00}} & \bitbox{8}{\texttt{0x16}} &\bitbox{8}{\texttt{0xcb}} &
760
		\colorbitbox{chameleongreen2}{16}{\texttt{0xff fe}} & \bitbox{8}{\texttt{0x8c}} &
761
		\bitbox{8}{\texttt{0xde}} &
762
		\bitbox{8}{\texttt{0x8b}} \\ 
763
		\wordbox[]{1}{$\Downarrow$ \\[1ex]} \\ \pause
764
		\wordgroupr{\tiny{EUI-64}}
765
		\colorbitbox{chameleongreen2}{8}{\texttt{0x02}} & \bitbox{8}{\texttt{0x16}} &
766
		\bitbox{8}{\texttt{0xcb}} &
767
		\bitbox{16}{\texttt{0xff fe}} & \bitbox{8}{\texttt{0x8c}} &\bitbox{8}{\texttt{0xde}} &
768
		\bitbox{8}{\texttt{0x8b}} \\ 
769
		\endwordgroupr
770
	\end{bytefield}
771
	\pause
772
	
773
	\vspace{0.25cm}
774
	
775
	L'indirizzo link-local EUI-64 è \texttt{fe80::2:16:cb:ff:fe:8c:de:8b}
776
\end{frame}
777
778
\begin{frame}[allowframebreaks]\frametitle{Configurazione stateless - Definizioni} % (fold)
779
\label{sub:configurazione_stateless}
780
La configurazione stateless offre la possibilità di ottenere un indirizzo global unicast e un router
781
verso cui instradare i pacchetti in modo automatico. 
782
783
Il procedimento fa uso di pacchetti ICMPv6 dedicati a questo scopo.
784
785
\vspace{0.25cm}
786
\textbf{Definizioni:}
787
%\subsubsection{Definizioni} % (fold)
788
%\label{ssub:definizioni}
789
\begin{description}
790
\item[tentative address] (indirizzo incerto) un indirizzo di cui si sta verificando l'unicità sul link, 
791
 ancora non è stato assegnato all'interfaccia.
792
\item[preferred address] (indirizzo preferito) un indirizzo assegnato all'interfaccia che può essere usato dai
793
 protocolli di livello superiore senza alcuna restrizione. Può figurare come 
794
 indirizzo di sorgente o di destinazione.
795
\item[deprecated address] (indirizzo deprecato) un indirizzo assegnato all'interfaccia il cui uso è
796
 scoraggiato, ma non proibito. I pacchetti inviati e ricevuti con questo indirizzo sono trattati
797
 normalmente, ma le nuove comunicazioni non dovrebbero utilizzarlo. 
798
 Un indirizzo deprecato può essere ancora utilizzato per quei protocolli in cui cambiare in favore 
799
 di un nuovo indirizzo preferito causerebbe problemi alla connessione (ad esempio una sessione 
800
 TCP attiva.)
801
\item[valid address] (indirizzo valido) un indirizzo deprecato o preferito.
802
\item[invalid address] (indirizzo non valido) un indirizzo che non è assegnato a nessuna interfaccia. 
803
 Un indirizzo valido diventa non valido quando il suo \emph{valid~lifetime} scade. 
804
 Gli indirizzi non validi non devono essere utilizzati come indirizzo di sorgente o di destinazione.
805
\item[preferred lifetime] il periodo di tempo in cui l'indirizzo deve essere considerato preferito.
806
 Alla scadenza l'indirizzo diventa deprecato.
807
\item[valid lifetime] il periodo di tempo in cui l'indirizzo deve essere considerato valido. Questo
808
 valore deve essere maggiore o uguale del \emph{preferred~lifetime}. Alla sua scadenza l'indirizzo diventa
809
 non valido.
810
\end{description}
811
\end{frame}
812
% subsubsection definizioni (end)
813
814
\begin{frame}\frametitle{Configurazione stateless - Procedimento} 
815
	\begin{colorblock}{Indirizzo link-local}
816
		\begin{itemize}
817
		\item<+-> generazione di un \emph{tentative address} link-local con il metodo EUI-64
818
		\item<+-> invio di un pacchetto ICMPv6 Neighbor Solicitation con campo \texttt{Target Address} impostato sull'indirizzo da verificare
819
		\item<+-> se un nodo utilizza questo indirizzo risponde con un pacchetto ICMPv6 Neighbor Advertisement avvisando che l'indirizzo è già in uso.
820
		\item<+-> se non si ricevono Neighbor Advertisement l'indirizzo diventa \emph{valid address}
821
		\end{itemize}
822
	\end{colorblock} 
823
	\vspace{.5cm}
824
	\uncover<5->{Il fallimento di questa procedura obbliga ad una configurazione manuale dell'host.}
825
\end{frame}
826
827
\begin{frame}\frametitle{Configurazione stateless - Procedimento (cont.)} % (fold)
828
	\begin{colorblock}{Indirizzo global}
829
		\begin{itemize}
830
		\item<+-> Una volta ottenuto un indirizzo link-local valido, un host cerca di determinare la presenza di router sul proprio link.
831
		\item<+-> I router inviano periodicamente dei pacchetti multicast di Router Advertisement in cui annunciano i prefix di loro competenza
832
			\begin{itemize}
833
				\item<+-> Router Solicitation all'indirizzo \texttt{FF02::2} per forzare l'invio
834
			\end{itemize}
835
		\item<+-> il pacchetto di Router Advertisement contiene le istruzioni per ottenre un indirizzo
836
			\begin{itemize}[<5->]
837
				\item \emph{autonomous address-configuration} (flag~A)
838
				\item \emph{managed address configuration} (flag~M)
839
				\item \emph{other statefull configuration} (flag~O) 
840
			\end{itemize}
841
		\end{itemize}
842
	\end{colorblock}
843
\end{frame}
844
845
\begin{frame}\frametitle{Configurazione stateless - Procedimento (cont.)}
846
\begin{colorblock}{\emph{autonomous address-configuration} (flag~A)}
847
	Se il nodo è riuscito a
848
	completare in modo automatico l'assegnazione di un indirizzo link-local, allora può assegnarsi
849
	come \emph{preferred address} un indirizzo composto dal prefix annunciato e dalla interface ID calcolata secondo lo standard EUI-64.
850
	
851
	\vspace{.5cm}
852
	
853
	\begin{tabular}{| x{5cm} | x{5cm} |}
854
   	\hline
855
   	Prefix annunciato & EUI-64 \tnhl 
856
   	\multicolumn{1}{c}{64 bit} &
857
   	\multicolumn{1}{c}{64 bit}
858
   \end{tabular}
859
860
	\vspace{.5cm}
861
862
	Altrimenti registra l'indirizzo come \emph{tentative address} e lo verifica con i pacchetti ICMPv6.
863
\end{colorblock}
864
\end{frame}
865
866
\begin{frame}\frametitle{Configurazione stateless - Procedimento (cont.)}
867
\begin{colorblock}{\emph{managed address configuration} (flag~M) - statefull DHCP}
868
	Indica la presenza di un server DHCPv6.
869
\end{colorblock}
870
871
\vspace{.5cm} \pause
872
873
\begin{colorblock}{\emph{other statefull configuration} (flag~O) - stateless DHCP}
874
	Indica la presenza di un server DHCPv6 per la richiesta di parametri \underline{diversi dall'indirizzo IP}.
875
\end{colorblock}
876
\end{frame}
877
878
%In tutti gli altri casi è necessario che l'indirizzo sia segnato come \emph{tentative address} e
879
%verificato con i pacchetti ICMP.
880
%\end{frame}
881
% subsubsection procedimento (end)
882
% subsection configurazione_stateless (end)
883
% section automatismi_e_routing (end)
884
684
885
\section{Come fare}
685
886
686
887
\subsection{Tunnel Broker}