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 (Δ8.7 KB):

raw changeset »

Presentazione.tex (298 lines added, 60 lines removed)

Up to file-list Presentazione.tex:

@@ -139,7 +139,7 @@ Facoltà di Ingegneria%\\Dipartimento di
139
139
{ 
140
140
\begin{frame}<beamer> 
141
141
\frametitle{Sommario} 
142
\tableofcontents[currentsection,currentsubsection] 
142
\tableofcontents[subsectionstyle=show/shaded/hide] 
143
143
\end{frame} 
144
144
} 
145
145
@@ -157,6 +157,29 @@ Facoltà di Ingegneria%\\Dipartimento di
157
157
158
158
\section{Perch\'e IPv6}
159
159
160
\subsection{IPv6}
161
\begin{frame}\frametitle{IPv6}
162
IPv6 \`e la nuova versione del protocollo IP, \`e stato progettato per risolvere le debolezze di IPv4 e per esaltarne i punti di forza.
163
164
%\begin{itemize}[<+->]
165
%	\item Un indirizzo IPv6 \texttt{2001:0db8:85a3:08d3:1319:8a2e:0370:7344}
166
%	\item la notazione CIDR per i prefix
167
%\end{itemize}
168
169
\vspace{1.5cm}
170
171
\pause
172
\begin{colorblock}{Vantaggi di IPv6}
173
\begin{itemize}
174
\item Maggior spazio di indirizzamento
175
\item Abolizione dei NAT
176
\item Header semplificato
177
\item Autoconfigurazione
178
\end{itemize}
179
\end{colorblock}
180
\end{frame}
181
182
160
183
\subsection{Timeline}
161
184
\begin{frame}[t]\frametitle{Gli indirizzi IP stanno finendo?}
162
185
\begin{tikzpicture}[timeline/.style={->,color=chameleongreen1,thick},
@@ -226,29 +249,7 @@ Facoltà di Ingegneria%\\Dipartimento di
226
249
\tlelement{11}{2009} {\item A oggi gli studi di Geoff Huston individuano la fine degli indirizzi IPv4 fra agosto 2011 e giugno 2012.}
227
250
\end{frame}
228
251
229
\subsection{IPv6}
230
\begin{frame}\frametitle{IPv6}
231
IPv6 \`e la nuova versione del protocollo IP, \`e stato progettato per risolvere le debolezze di IPv4 e per esaltarne i punti di forza.
232
233
%\begin{itemize}[<+->]
234
%	\item Un indirizzo IPv6 \texttt{2001:0db8:85a3:08d3:1319:8a2e:0370:7344}
235
%	\item la notazione CIDR per i prefix
236
%\end{itemize}
237
238
\vspace{1.5cm}
239
240
\pause
241
\begin{colorblock}{Vantaggi di IPv6}
242
\begin{itemize}
243
\item Maggior spazio di indirizzamento
244
\item Abolizione dei NAT
245
\item Header semplificato
246
\item Autoconfigurazione
247
\end{itemize}
248
\end{colorblock}
249
\end{frame}
250
251
\subsection{Address Space}
252
\subsection{Vantaggi principali}
252
253
\begin{frame}[plain]
253
254
\setbeamercovered{invisible}
254
255
\tikzstyle{every picture}+=[remember picture]
@@ -256,22 +257,6 @@ IPv6 \`e la nuova versione del protocoll
256
257
\tikzstyle{ipv4}+=[rectangle,minimum size=1cm,fill=chameleongreen1,draw=chameleongreen3]
257
258
\tikzstyle{na} = [baseline=-.5ex]
258
259
259
\mode<beamer> {
260
\begin{tikzpicture}[remember picture,overlay]
261
  \node at ($(current page.center) + (0,2cm) $) [ipv4] (ipv4) {} ;
262
  \coordinate (ipv6) at ($ (ipv4) + (2cm,-.5cm) $);
263
264
  \path[->]<2-> (ipv4_text) edge [bend right] (ipv4);
265
  \path[->]<4-> (ipv6_text) edge [bend right] (ipv6);
266
  \begin{actionenv}<6->
267
  %\path[v6 arrow] (current page.north west) -- +(-1cm,-1cm);
268
  \path[v6 arrow] (current page.north) -- +(0,-.5cm); %(current page.south);
269
  \path[v6 arrow] (current page.south) -- +(0,+.5cm);
270
  \path[v6 arrow] (current page.west) -- +(+.5cm,0);
271
  \path[v6 arrow] (current page.east) -- +(-.5cm,0);
272
  \end{actionenv}
273
\end{tikzpicture} 
274
275
260
\vspace{12em}
276
261
277
262
\begin{itemize}
@@ -285,11 +270,25 @@ IPv6 \`e la nuova versione del protocoll
285
270
  \item<6-> Per mantenere le proporzioni dovremmo colorare di bianco l'intera superficie del Sistema Solare!
286
271
  \item<7-> Pi\`u di $6.66 \cdot 10^{23}$ indirizzi per metro quadrato della superficie terrestre (cioè 666 mila miliardi di miliardi).
287
272
  \end{itemize}
288
\end{itemize} }
273
\end{itemize} 
274
275
\begin{tikzpicture}[remember picture,overlay]
276
  \node at ($(current page.center) + (0,2cm) $) [ipv4] (ipv4) {} ;
277
  \coordinate (ipv6) at ($ (ipv4) + (2cm,-.5cm) $);
278
279
  \path[->]<2-> (ipv4_text) edge [bend right] (ipv4);
280
  \path[->]<4-> (ipv6_text) edge [bend right] (ipv6);
281
  \begin{actionenv}<6->
282
  %\path[v6 arrow] (current page.north west) -- +(-1cm,-1cm);
283
  \path[v6 arrow] (current page.north) -- +(0,-.5cm); %(current page.south);
284
  \path[v6 arrow] (current page.south) -- +(0,+.5cm);
285
  \path[v6 arrow] (current page.west) -- +(+.5cm,0);
286
  \path[v6 arrow] (current page.east) -- +(-.5cm,0);
287
  \end{actionenv}
288
\end{tikzpicture}
289
289
290
290
\end{frame}
291
291
292
\subsection{NAT}
293
292
\begin{frame}\frametitle{Network Address Translation (NAT)}
294
293
%\begin{actionenv}<only@1-6>
295
294
Il Network Address Translation (NAT) è una tecnica che consiste nel modificare gli indirizzi IP dei pacchetti in transito su un sistema che agisce da router. \pause
@@ -317,7 +316,6 @@ Il Network Address Translation (NAT) è
317
316
%	
318
317
\end{frame}
319
318
320
\subsection{Header semplificato}
321
319
\begin{frame}[fragile]\frametitle{Header semplificato}
322
320
\begin{columns}
323
321
\begin{column}{5.5cm}
@@ -347,7 +345,6 @@ Il Network Address Translation (NAT) è
347
345
\end{frame}
348
346
349
347
350
\subsection{Autoconfigurazione}
351
348
\begin{frame}\frametitle{Autoconfigurazione}
352
349
\begin{itemize}
353
350
@@ -707,16 +704,40 @@ Indirizzo destinazione del datagramma.
707
704
\section{Automatismi e routing} % (fold)
708
705
\subsection{Introduzione} 
709
706
\begin{frame}\frametitle{Autoconfigurazione}
710
	Una delle novità introdotte da IPv6 è l'autoconfigurazione dei nodi di rete, che anche in assenza
711
	di un router sono in grado di generare autonomamente un indirizzo link-local unicast per garantire la
712
	comunicazione fra i nodi interconnessi.
707
	\begin{itemize}
708
	\item Una delle novità introdotte da IPv6 è l'autoconfigurazione dei nodi di rete, che anche in assenza di un router sono in grado di generare autonomamente un indirizzo link-local unicast per garantire la comunicazione fra i nodi interconnessi.
709
	\item La generazione di questo tipo di indirizzo è il primo passo da eseguire per poter ottenere un indirizzo global unicast.
710
	\end{itemize}
711
\end{frame}
712
713
\subsection{ICMPv6}
714
\begin{frame}\frametitle{ICMPv6 - Definizione}
715
	\begin{colorblock}{Definzione  (Wikipedia)}
716
	L'Internet Control Message Protocol versione 6 (ICMPv6) è l'evoluzione nelle reti IPv6 del protocollo ICMP per le reti IPv4. In essa \emph{vengono aggiunte nuove funzionalità che nel protocollo precedente erano demandate ad altri livelli protocollari (come ad esempio l'ARP)} e tolte altre che, invece, erano poco usate. 
713
717
	
714
	La generazione di questo tipo di indirizzo è il primo passo da eseguire per poter ottenere
715
	un indirizzo global unicast. 
718
	Come nel caso della versione precedente, l'ICMPv6 viene utilizzato per monitorare lo stato della rete e per inviare pacchetti di gestione e di errore. 
716
719
	
717
	Con gli indirizzi link-local unicast e con il protocollo ICMPv6 si va di fatto a spostare più in 
718
	alto di un livello il compito di ARP, rendendolo indipendente dalla
719
	tecnologia utilizzata per il livello due della rete.
720
	Essa è descritta nell'RFC 2463.
721
	\end{colorblock}
722
	\begin{flushright}
723
		\url{http://it.wikipedia.org/wiki/ICMPv6}
724
	\end{flushright} 
725
\end{frame}
726
727
\begin{frame}[fragile]\frametitle{ICMPv6 - Pacchetto}
728
	\begin{colorblock}{Struttura del pacchetto}
729
		\begin{center}
730
		\begin{bytefield}{32} 
731
			\bitheader{0,8,16,32} \\ 
732
			%\wordgroupr{Generic Header}
733
			\bitbox{8}{Type} & \bitbox{8}{Code} & \bitbox{16}{Checksum}\\
734
			%\endwordgroupr \\
735
			\wordbox[lrt]{1}{Message body} \\ 
736
			\skippedwords \\ 
737
			\wordbox[lrb]{1}{} \\
738
		\end{bytefield}
739
		\end{center}
740
	\end{colorblock}
720
741
\end{frame}
721
742
722
743
\begin{frame}\frametitle{Indirizzo link-local unicast autoconfigurato}
@@ -840,6 +861,38 @@ Il procedimento fa uso di pacchetti ICMP
840
861
	\uncover<5->{Il fallimento di questa procedura obbliga ad una configurazione manuale dell'host.}
841
862
\end{frame}
842
863
864
\begin{frame}[fragile,shrink=10]\frametitle{ICMPv6 - Neighbor Solicitation}
865
		\begin{center}
866
		\begin{bytefield}{32} 
867
			\bitheader{0,8,16,32} \\ 
868
			%\wordgroupr{Generic Header}
869
			\bitbox{8}{Type=\texttt{135}} & \bitbox{8}{Code=\texttt{0}} & \bitbox{16}{Checksum}\\
870
			%\endwordgroupr \\
871
			\wordbox{1}{Reserved}\\
872
			\wordbox{4}{Target Address}\\
873
			\wordbox[lrt]{1}{Options} \\ 
874
			\skippedwords \\ 
875
			\wordbox[lrb]{1}{} \\
876
		\end{bytefield}
877
		\end{center}
878
\end{frame}
879
880
\begin{frame}[fragile,shrink=10]\frametitle{ICMPv6 - Neighbor Advertisement}
881
		\begin{center}
882
		\begin{bytefield}{32} 
883
			\bitheader{0,1,2,3,8,16,32} \\ 
884
			%\wordgroupr{Generic Header}
885
			\bitbox{8}{Type=\texttt{136}} & \bitbox{8}{Code=\texttt{0}} & \bitbox{16}{Checksum}\\
886
			%\endwordgroupr \\
887
			\bitbox{1}{ R } & \bitbox{1}{\tiny S \\ \texttt{1}} &\bitbox{1}{ O } & \bitbox{29}{Reserved}\\
888
			\wordbox{4}{Target Address}\\
889
			\wordbox[lrt]{1}{Options} \\ 
890
			\skippedwords \\ 
891
			\wordbox[lrb]{1}{} \\
892
		\end{bytefield}
893
		\end{center}
894
\end{frame}
895
843
896
\begin{frame}\frametitle{Configurazione stateless - Procedimento (cont.)} % (fold)
844
897
	\begin{colorblock}{Indirizzo global}
845
898
		\begin{itemize}
@@ -887,15 +940,202 @@ Il procedimento fa uso di pacchetti ICMP
887
940
\vspace{.5cm} \pause
888
941
889
942
\begin{colorblock}{\emph{other statefull configuration} (flag~O) - stateless DHCP}
890
	Indica la presenza di un server DHCPv6 per la richiesta di parametri \underline{diversi dall'indirizzo IP}.
943
	Indica la presenza di un server DHCPv6 per la richiesta di parametri \underline{diversi dall'indirizzo IP}. (DNS, NTP, SIP, etc \ldots)
891
944
\end{colorblock}
892
945
\end{frame}
893
946
894
%In tutti gli altri casi è necessario che l'indirizzo sia segnato come \emph{tentative address} e
895
%verificato con i pacchetti ICMP.
947
%\begin{frame}[fragile]\frametitle{ICMPv6 - Router Solicitation}
948
%		\begin{center}
949
%		\begin{bytefield}{32} 
950
%			\bitheader{0,8,16,32} \\ 
951
%			%\wordgroupr{Generic Header}
952
%			\bitbox{8}{Type=\texttt{133}} & \bitbox{8}{Code=\texttt{0}} & \bitbox{16}{Checksum}\\
953
%			%\endwordgroupr \\
954
%			\wordbox{1}{Reserved}\\
955
%			\wordbox[lrt]{1}{Options} \\ 
956
%			\skippedwords \\ 
957
%			\wordbox[lrb]{1}{} \\
958
%		\end{bytefield}
959
%		\end{center}
896
960
%\end{frame}
897
% subsubsection procedimento (end)
898
% subsection configurazione_stateless (end)
961
%
962
%\begin{frame}[fragile]\frametitle{ICMPv6 - Router Advertisement}
963
%		\begin{center}
964
%		\begin{bytefield}{32} 
965
%			\bitheader{0,8,16,32} \\ 
966
%			%\wordgroupr{Generic Header}
967
%			\bitbox{8}{Type=\texttt{134}} & \bitbox{8}{Code=\texttt{0}} & \bitbox{16}{Checksum}\\
968
%			%\endwordgroupr \\
969
%			\bitbox{8}{Current Hop Limit} & \bitbox{1}{Code=\texttt{0}} & \bitbox{1}{Checksum}\\
970
%			\wordbox{1}{Reserved}\\
971
%			\wordbox[lrt]{1}{Options} \\ 
972
%			\skippedwords \\ 
973
%			\wordbox[lrb]{1}{} \\
974
%		\end{bytefield}
975
%		\end{center}
976
%\end{frame}
977
978
\section{Routing OSPFv3} % (fold)
979
\begin{frame}\frametitle{Routing OSPFv3}
980
981
	\begin{columns}
982
	\column{.4\textwidth} % column designated by a command
983
	\begin{itemize}
984
		\item Algoritmo identico alla versione 2 (IPv4)
985
		\item Utilizza solo indirizzi link-local
986
		\item rete $\rightarrow$ link
987
	\end{itemize}
988
	\column{.6\textwidth}
989
	\resizebox{.9\textwidth}{!}{
990
	\includegraphics{aree_ospf}
991
	}
992
	\end{columns}
993
\end{frame}
994
995
%\begin{frame}[fragile,shrink]\frametitle{Tabella di routing}
996
%\begin{verbatim}
997
%	Codes: 
998
%	 C - Connected, L - Local, S - Static  B - BGP, R - RIP, D - EIGRP
999
%	 O - OSPF Intra, OI - OSPF Inter, OE1 - OSPF ext 1, OE2 - OSPF ext 2
1000
%	OE2 ::/0 [110/1], tag 1
1001
%	     via FE80::20F:24FF:FECF:CF42, GigabitEthernet1/0/2
1002
%	OE2 2001:760:2C05:1::/64 [110/20]
1003
%	     via FE80::223:5DFF:FE15:FC41, GigabitEthernet1/0/5
1004
%	L   2001:760:2C05:F0FF::7/128 [0/0]
1005
%	     via GigabitEthernet1/0/2, receive
1006
%	C   2001:760:2C05:F0FF::8/127 [0/0]
1007
%	     via GigabitEthernet1/0/5, directly connected
1008
%	L   2001:760:2C05:F0FF::9/128 [0/0]
1009
%	     via GigabitEthernet1/0/5, receive
1010
%	O   2001:760:2C05:F0FF::12/127 [110/2]
1011
%	     via FE80::223:5DFF:FE15:FC41, GigabitEthernet1/0/5
1012
%	O   2001:760:2C05:F0FF::14/127 [110/3]
1013
%	     via FE80::223:5DFF:FE15:FC41, GigabitEthernet1/0/5
1014
%	OE2 2001:760:2C05:F0FF::16/127 [110/20]
1015
%	     via FE80::223:5DFF:FE15:FC41, GigabitEthernet1/0/5
1016
%	L   FF00::/8 [0/0]
1017
%	     via Null0, receive
1018
%\end{verbatim}
1019
%\end{frame}
1020
% section routing_ospfv3 (end)
1021
1022
\section{DNS} % (fold)
1023
1024
\begin{frame}[fragile]\frametitle{I record DNS per IPv6}
1025
	
1026
	\begin{colorblock}{Query DNS}
1027
		Per gestire gli indirizzi IPv6 sono stati introdotti i record AAAA.\\
1028
		
1029
		Esistono anche i record A6 ma sono ancora poco utilizzati.
1030
	\end{colorblock}
1031
	\pause
1032
	\begin{colorblock}{Query inverse}
1033
		Ogni sottodominio di \texttt{IP6.ARPA} rappresenta una cifra 
1034
		esadecimale dell'indirizzo IPv6 a partire da quella più significativa.
1035
		Quindi per chiedere l'hostname per l'indirizzo \texttt{2001:db8::cafe}
1036
		bisogna interrogare il server DNS per il nome di dominio
1037
		
1038
		\vspace{.25cm}
1039
		\resizebox{\textwidth}{!}{
1040
		\texttt{e.f.a.c.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa}}
1041
	\end{colorblock}
1042
\end{frame}
1043
1044
\begin{frame}[fragile,shrink]\frametitle{Esempio record AAAA (BIND 9)}
1045
	\begin{verbatim}
1046
$TTL    3600
1047
@ 86400 IN SOA dns.ipv6.unifi.it. staffreti.unifi.it. (
1048
                       2009081102   ; Serial
1049
                       86400    ; Refresh
1050
                       7200     ; Retry
1051
                       3600000    ; Expire
1052
                       3600 )  ; Minimum
1053
1054
@ 86400   IN      NS    dns.ipv6.unifi.it.
1055
1056
@ 4800    IN      AAAA  2001:760:2c05:1::20
1057
          IN      A     150.217.1.20
1058
1059
dns   4800    IN  AAAA  2001:760:2c05:1::20
1060
      4800    IN  A     150.217.1.20
1061
1062
lenst 4800    IN  AAAA  2001:760:2c05:1001::24
1063
\end{verbatim} %$
1064
\end{frame}
1065
1066
\begin{frame}[fragile,shrink]\frametitle{Esempio record PTR (BIND 9)}
1067
\begin{verbatim}
1068
$TTL 3d ; Default TTL 
1069
@ IN SOA 5.0.c.2.0.6.7.0.1.0.0.2.ip6.arpa. staffreti.unifi.it. (
1070
                2009081102      ; Serial number (YYYYMMdd)
1071
                24h             ; Refresh time
1072
                30m             ; Retry time
1073
                2d              ; Expire time
1074
                3d )            ; Default TTL
1075
1076
IN     NS     dns.ipv6.unifi.it.
1077
1078
; prefix 2001:760:2c05:1::/64
1079
$ORIGIN 1.0.0.0.5.0.c.2.0.6.7.0.1.0.0.2.ip6.arpa.
1080
0.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR dns.ipv6.unifi.it.
1081
; prefix 2001:760:2c05:1001::/64
1082
$ORIGIN 1.0.0.1.5.0.c.2.0.6.7.0.1.0.0.2.ip6.arpa.
1083
4.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR lenst.ipv6.unifi.it.
1084
\end{verbatim} %$
1085
\end{frame}
1086
1087
\begin{frame}[t]\frametitle{Il problema del reverse DNS}
1088
	\begin{colorblock}{RFC 1912}
1089
		\emph{Ogni host raggiungibile su Internet deve avere un hostname ed un record PTR per il reverse DNS.}
1090
		
1091
		Questo è un problema per IPv6.
1092
		\begin{itemize}
1093
		\item impossibile una generazione a priori (sono troppi)
1094
		\item una generazione on demand potrebbe esporre ad attacchi DOS 
1095
		\end{itemize}
1096
	\end{colorblock}
1097
	\pause
1098
	\begin{colorblock}{Come viene usato oggi il reverse DNS?}
1099
		\begin{itemize}
1100
		\item Controllo SPAM per i mail server
1101
		\item Funzionalità di logging 
1102
		\end{itemize}
1103
	\end{colorblock}
1104
	\pause
1105
	\begin{colorblock}{Soluzione}
1106
		Registrare i record PTR solo per i server.
1107
	\end{colorblock}
1108
\end{frame}
1109
%\subsection{Il problema del reverse \acs{DNS}} %fold
1110
%\label{sub:il_problema_del_reverse_dns}
1111
%Ogni host raggiungibile su Internet deve avere un hostname ed un record PTR per
1112
%il reverse \ac{DNS}. Questo \`e ci\`o che richiede l'RFC1912\cite{rfc1912} 
1113
%in merito ai record IPv4, ma per IPv6? La questione rimane aperta perch\'e
1114
%l'RFC non \`e stato aggiornato dopo la pubblicazione di IPv6 ed il reverse 
1115
%\ac{DNS} viene utilizzato solo in alcuni casi.
1116
%Alcune funzionalit\`a di logging lo usano per avere un output più leggibile, senza alcun 
1117
%problema nel caso in cui il record non sia presente ed alcuni server di posta 
1118
%elettronica, durante una sessione SMTP, verificano attraverso una query inversa
1119
%che il server mittente sia effettivamente chi dichiara di essere e non uno spammer.
1120
%
1121
%Da un punto di vista pratico basterebbe registrare i record PTR solo per i
1122
%server di posta, ma la discussione rimane comunque aperta nella comunit\`a.
1123
%Gli \ac{ISP} per IPv4 solitamente generano in modo automatico i record \ac{DNS}
1124
%per tutti gli indirizzi che ricevono dal \ac{RIR}, ma dato l'elevato numero di
1125
%indirizzi presenti gi\`a in un prefix da 64 bit, che dovrebbero assegnare ad ogni
1126
%cliente, questa strada risulta impercorribile. 
1127
%Un'altra possibilità è la generazione dei record PTR al momento stesso della 
1128
%query \ac{DNS}; tuttora non sono noti plugin di BIND per questa funzionalità
1129
%e si tratta comunque di una strategia rischiosa in quanto esporrebbe ad attacchi 
1130
%di tipo \ac{DDOS}.
1131
%
1132
%Se si scegliesse di generare staticamente a priori tutti i record AAAA e PTR 
1133
%è mandatorio l'uso di un server DHCP per assegnare indirizzi in un intervallo 
1134
%ristretto. Per la generazione dei record si può utilizzare lo script ruby sviluppato
1135
%durante il lavoro di tesi e disponibile in appendice \ref{lst:dns_gen}.
1136
% subsection il problema del reverse dns (end) 
1137
% section dns (end)
1138
899
1139
% section automatismi_e_routing (end)
900
1140
901
1141
\section{Implementare IPv6}
@@ -1074,9 +1314,7 @@ Il procedimento fa uso di pacchetti ICMP
1074
1314
\end{tikzpicture}
1075
1315
\end{frame}
1076
1316
1077
\section{Risultati}
1078
1079
\section{Licenza}
1317
\section*{Licenza}
1080
1318
\begin{frame}\frametitle{Licenza Creative Commons\newline{}\small Attribuzione-Non commerciale-Condividi allo stesso modo 2.5 Italia}
1081
1319
\small
1082
1320
\begin{colorblock}{Tu sei libero:}