X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=netlayer.tex;h=1d45424615fa7e2b7cb0f888d3e93cac22f3af52;hp=2934e6382bc9af8f29d1ef41494f28610237c8c4;hb=533949c32eff5d8c6cc4020b774befb5741ce8c2;hpb=d3360b59e957e86e2cc972f1841678feca8eff33 diff --git a/netlayer.tex b/netlayer.tex index 2934e63..1d45424 100644 --- a/netlayer.tex +++ b/netlayer.tex @@ -32,10 +32,11 @@ nuova versione denominata IPv6. \label{sec:ip_protocol} L'attuale \textit{Internet Protocol} (IPv4) viene standardizzato nel 1981 -dall'RFC~719; esso nasce per disaccoppiare le applicazioni della struttura -hardware delle reti di trasmissione, e creare una interfaccia di trasmissione -dei dati indipendente dal sottostante substrato di rete, che può essere -realizzato con le tecnologie più disparate (Ethernet, Token Ring, FDDI, etc.). +dall'\href{http://www.ietf.org/rfc/rfc0719.txt}{RFC~719}; esso nasce per +disaccoppiare le applicazioni della struttura hardware delle reti di +trasmissione, e creare una interfaccia di trasmissione dei dati indipendente +dal sottostante substrato di rete, che può essere realizzato con le tecnologie +più disparate (Ethernet, Token Ring, FDDI, etc.). \subsection{Introduzione} @@ -207,11 +208,11 @@ apparecchio elettronico sarebbe stato inserito all'interno della rete. Per questo motivo si iniziò a progettare una nuova versione del protocollo L'attuale Internet Protocol (IPv4) viene standardizzato nel 1981 -dall'RFC~719; esso nasce per disaccoppiare le applicazioni della struttura -hardware delle reti di trasmissione, e creare una interfaccia di trasmissione -dei dati indipendente dal sottostante substrato di rete, che può essere -realizzato con le tecnologie più disparate (Ethernet, Token Ring, FDDI, -etc.). +dall'\href{http://www.ietf.org/rfc/rfc0719.txt}{RFC~719}; esso nasce per +disaccoppiare le applicazioni della struttura hardware delle reti di +trasmissione, e creare una interfaccia di trasmissione dei dati indipendente +dal sottostante substrato di rete, che può essere realizzato con le tecnologie +più disparate (Ethernet, Token Ring, FDDI, etc.). \subsection{I motivi della transizione} @@ -430,39 +431,39 @@ differenze: \begin{center} \begin{tabular}{|l|c|p{9cm}|} \hline - \textbf{Nome} & \textbf{Lunghezza} & \textbf{Significato} \\ + \textbf{Nome} & \textbf{Bit} & \textbf{Significato} \\ \hline \hline - \textit{version} & 4 bit & \textsl{versione}, nel caso + \textit{version} & 4 & \textsl{versione}, nel caso specifico vale sempre 4\\ - \textit{head length} & 4 bit &\textsl{lunghezza dell'intestazione}, + \textit{head length} & 4 &\textsl{lunghezza dell'intestazione}, in multipli di 32 bit\\ - \textit{type of service} & 8 bit & \textsl{tipo di servizio}, + \textit{type of service} & 8 & \textsl{tipo di servizio}, consiste in: 3 bit di precedenza, correntemente ignorati; un bit non usato a 0; 4 bit che identificano il tipo di servizio richiesto, uno solo dei quali può essere 1\\ - \textit{total length} & 16 bit & \textsl{lunghezza totale}, indica + \textit{total length} & 16 & \textsl{lunghezza totale}, indica la dimensione del pacchetto IP in byte\\ - \textit{identification} & 16 bit & \textsl{identificazione}, + \textit{identification} & 16 & \textsl{identificazione}, assegnato alla creazione, è aumentato di uno all'origine della trasmissione di ciascun pacchetto, ma resta lo stesso per i pacchetti frammentati\\ - \textit{flag} & 3 bit & + \textit{flag} & 3 & \textsl{flag} bit di frammentazione, uno indica se un pacchetto è frammentato, un'altro se ci sono ulteriori frammenti, e un'altro se il pacchetto non può essere frammentato. \\ - \textit{fragmentation offset} & 13 bit & \textsl{offset di frammento}, + \textit{fragmentation offset} & 13 & \textsl{offset di frammento}, indica la posizione del frammento rispetto al pacchetto originale\\ - \textit{time to live} & 16 bit & \textsl{tempo di vita}, + \textit{time to live} & 16 & \textsl{tempo di vita}, ha lo stesso significato di \textit{hop limit}, vedi Tab.~\ref{tab:IP_ipv6field}\\ - \textit{protocol} & 8 bit & \textsl{protocollo} + \textit{protocol} & 8 & \textsl{protocollo} identifica il tipo di pacchetto che segue l'intestazione di IPv4\\ - \textit{header checksum} & 16 bit & \textsl{checksum di intestazione}, + \textit{header checksum} & 16 & \textsl{checksum di intestazione}, somma di controllo per l'intestazione\\ - \textit{source IP} & 32 bit & \textsl{indirizzo di origine}\\ - \textit{destination IP} & 32 bit & \textsl{indirizzo di destinazione}\\ + \textit{source IP} & 32 & \textsl{indirizzo di origine}\\ + \textit{destination IP} & 32 & \textsl{indirizzo di destinazione}\\ \hline \end{tabular} \caption{Legenda per il significato dei campi dell'intestazione di IPv4} @@ -619,7 +620,8 @@ allocazione degli indirizzi unicast. \label{sec:IP_ipv6_unicast} Gli indirizzi \textit{provider-based} sono gli indirizzi usati per le -comunicazioni globali, questi sono definiti nell'RFC 2073 e sono gli +comunicazioni globali, questi sono definiti +nell'\href{http://www.ietf.org/rfc/rfc2073.txt}{RFC~2073} e sono gli equivalenti degli attuali indirizzi delle classi da A a C. L'autorità che presiede all'allocazione di questi indirizzi è la IANA; per @@ -639,7 +641,7 @@ stato suddiviso in una serie di campi secondo lo schema riportato in \multicolumn{1}{c}{$n$ bit}&\multicolumn{1}{c}{$56-n$ bit}& \multicolumn{1}{c}{64 bit} \\ \hline - \omit\vrule\hfill\vrule&\hspace{16mm} & & &\omit\hspace{76mm}\hfill\vrule\\ + \omit\vrule\hfill\vrule&\hspace{16mm} & & &\omit\hspace{76mm}\hfill\vrule\\ \centering 010& \centering \textsl{Registry Id}& \centering \textsl{Provider Id}& @@ -661,7 +663,8 @@ possibilit i seguenti possibili valori per il \textsl{Registry Id}; gli altri valori restano riservati per la IANA. \begin{table}[htb] - \begin{center} + \centering + \footnotesize \begin{tabular}{|l|l|l|} \hline \textbf{Regione} & \textbf{Registro} & \textbf{Id} \\ @@ -676,7 +679,6 @@ gli altri valori restano riservati per la IANA. \caption{Valori dell'identificativo dei Regional Register allocati ad oggi.} \label{tab:IP_ipv6_regid} - \end{center} \end{table} L'organizzazione degli indirizzi prevede poi che i due livelli successivi, di @@ -970,21 +972,25 @@ per il funzionamento della rete. \begin{table}[!htb] \centering \footnotesize - \begin{tabular}[c]{l l r} + \begin{tabular}[c]{|l|l|l|} \hline \textbf{Uso}& \textbf{Indirizzi riservati} & \textbf{Definizione}\\ \hline \hline - all-nodes & \texttt{FFxx:0:0:0:0:0:0:1} & RFC 1970\\ - all-routers & \texttt{FFxx:0:0:0:0:0:0:2} & RFC 1970\\ - all-rip-routers & \texttt{FFxx:0:0:0:0:0:0:9} & RFC 2080\\ - all-cbt-routers & \texttt{FFxx:0:0:0:0:0:0:10} &\\ - reserved & \texttt{FFxx:0:0:0:0:0:1:0} & IANA \\ - link-name & \texttt{FFxx:0:0:0:0:0:1:1} & \\ - all-dhcp-agents & \texttt{FFxx:0:0:0:0:0:1:2} & \\ - all-dhcp-servers & \texttt{FFxx:0:0:0:0:0:1:3} & \\ - all-dhcp-relays & \texttt{FFxx:0:0:0:0:0:1:4} & \\ - solicited-nodes & \texttt{FFxx:0:0:0:0:1:0:0} & RFC 1970\\ + all-nodes & \texttt{FFxx:0:0:0:0:0:0:1} & + \href{http://www.ietf.org/rfc/rfc1970.txt}{RFC~1970} \\ + all-routers & \texttt{FFxx:0:0:0:0:0:0:2} & + \href{http://www.ietf.org/rfc/rfc1970.txt}{RFC~1970} \\ + all-rip-routers & \texttt{FFxx:0:0:0:0:0:0:9} & + \href{http://www.ietf.org/rfc/rfc2080.txt}{RFC~2080} \\ + all-cbt-routers & \texttt{FFxx:0:0:0:0:0:0:10} & \\ + reserved & \texttt{FFxx:0:0:0:0:0:1:0} & IANA \\ + link-name & \texttt{FFxx:0:0:0:0:0:1:1} & \\ + all-dhcp-agents & \texttt{FFxx:0:0:0:0:0:1:2} & \\ + all-dhcp-servers& \texttt{FFxx:0:0:0:0:0:1:3} & \\ + all-dhcp-relays & \texttt{FFxx:0:0:0:0:0:1:4} & \\ + solicited-nodes & \texttt{FFxx:0:0:0:0:1:0:0} & + \href{http://www.ietf.org/rfc/rfc1970.txt}{RFC~1970} \\ \hline \end{tabular} \caption{Gruppi multicast predefiniti.} @@ -1078,9 +1084,11 @@ Le estensioni definite al momento sono le seguenti: vuole frammentare un pacchetto, ed è riprocessato automaticamente alla destinazione che riassembla i frammenti. \item \textbf{Authentication} gestisce l'autenticazione e il controllo di - integrità dei pacchetti; è documentato dall'RFC 162. + integrità dei pacchetti; è documentato + dall'\href{http://www.ietf.org/rfc/rfc1826.txt}{RFC~1826}. \item \textbf{Encapsulation} serve a gestire la segretezza del contenuto - trasmesso; è documentato dall'RFC 1827. + trasmesso; è documentato + dall'\href{http://www.ietf.org/rfc/rfc1827.txt}{RFC~1827}. \end{itemize} La presenza di opzioni è rilevata dal valore del campo \textit{next header} @@ -1225,7 +1233,8 @@ riservatezza a un livello inferiore al primo (quello di applicazione), con IPv6 è stato progettata la possibilità di intervenire al livello di rete (il terzo) prevedendo due apposite estensioni che possono essere usate per fornire livelli di sicurezza a seconda degli utenti. La codifica generale di questa -architettura è riportata nell'RFC 2401. +architettura è riportata +nell'\href{http://www.ietf.org/rfc/rfc2401.txt}{RFC~2401}. Il meccanismo in sostanza si basa su due estensioni: \begin{itemize} @@ -1253,11 +1262,11 @@ Il primo meccanismo di sicurezza di integrità (ma senza riservatezza) dei pacchetti IP. L'intestazione di autenticazione ha il formato descritto in -\tabref{tab:autent_head}: il campo \textit{Next Header} indica l'intestazione -successiva, con gli stessi valori del campo omonimo nell'intestazione -principale di IPv6, il campo \textit{Length} indica la lunghezza -dell'intestazione di autenticazione in numero di parole a 32 bit, il campo -riservato deve essere posto a zero, seguono poi l'indice di sicurezza, +\figref{fig:autent_estens}: il campo \textit{Next Header} indica +l'intestazione successiva, con gli stessi valori del campo omonimo +nell'intestazione principale di IPv6, il campo \textit{Length} indica la +lunghezza dell'intestazione di autenticazione in numero di parole a 32 bit, il +campo riservato deve essere posto a zero, seguono poi l'indice di sicurezza, stabilito nella associazione di sicurezza, e un numero di sequenza che la stazione sorgente deve incrementare di pacchetto in pacchetto. @@ -1267,36 +1276,12 @@ di dimensione pari a un multiplo intero di 32 bit e pu per allineare l'intestazione a 64 bit. Tutti gli algoritmi di autenticazione devono provvedere questa capacità. -\renewcommand\arraystretch{1.2} -\begin{table}[htb] - \footnotesize - \begin{center} - \begin{tabular}{@{\vrule}p{24mm}@{\vrule}p{24mm} - @{\vrule}p{48mm}@{\vrule} } - \multicolumn{3}{@{}c@{}}{0\hfill 15 16\hfill 31}\\ - \hline - \centering Next Header&\centering Length& - \centering Reserved \tabularnewline - \hline - \multicolumn{3}{@{\vrule}c@{\vrule}} - {\centering Security Parameter Index (SPI)}\\ - \hline - \multicolumn{3}{@{\vrule}c@{\vrule}} - {\centering Sequence Number}\\ - \hline - \multicolumn{3}{@{\vrule}c@{\vrule}}{} \\ - \multicolumn{3}{@{\vrule}c@{\vrule}}{Authentication Data} \\ - \multicolumn{3}{@{\vrule}c@{\vrule}} - {\centering ... } \\ - \multicolumn{3}{@{\vrule}c@{\vrule}}{} \\ - \hline - \end{tabular} - \caption{Formato dell'intestazione dell'estensione di autenticazione} - \label{tab:autent_estens} - \end{center} -\end{table} -\renewcommand\arraystretch{1} %default - +\begin{figure}[!htb] + \centering + \includegraphics[width=10cm]{img/ah_option} + \caption{Formato dell'intestazione dell'estensione di autenticazione.} + \label{fig:autent_estens} +\end{figure} L'intestazione di autenticazione può essere impiegata in due modi diverse modalità: modalità trasporto e modalità tunnel. @@ -1307,33 +1292,15 @@ autenticazione eccezion fatta per la \textit{Destination Option} che può comparire sia prima che dopo. -\begin{table}[htb] - \footnotesize - \begin{center} - \begin{tabular*}{90mm}{|c|c|c|c|c|c|} - \hline - & & & & & \\ - IP Head & - \parbox[c]{28mm}{hop by hop, dest., \\ - routing, fragment}& AH & - dest.opt & TCP & data \\ - & & & & & \\ - \hline - \end{tabular*} - \caption{Formato dell'intestazione dell'estensione di autenticazione} - \label{tab:autent_head} - \end{center} -\end{table} -\begin{center} - \begin{pspicture}(0,0)(9,0.8) - \pnode(0,0){A} - \pnode(9,0.4){B} - \ncline{<->}{A}{B}\ncput{copertura dell'autenticazione} - \end{pspicture} -\end{center} +\begin{figure}[!htb] + \centering + \includegraphics[width=10cm]{img/IP_AH_packet} + \caption{Formato di un pacchetto IPv6 che usa l'opzione di autenticazione.} + \label{fig:AH_autent_head} +\end{figure} La modalità tunnel può essere utilizzata sia per comunicazioni fra stazioni -singole che con un gateway di sicurezza; in questa modalità +singole che con un gateway di sicurezza; in questa modalità ... L'intestazione di autenticazione è una intestazione di estensione inserita @@ -1369,52 +1336,18 @@ apposita opzione che deve essere sempre l'ultima delle intestazioni di estensione; ad essa segue il carico del pacchetto che viene criptato. Un pacchetto crittografato pertanto viene ad avere una struttura del tipo di -quella mostrata in Tab~.\ref{tab:criptopack}, tutti i campi sono in chiaro +quella mostrata in \figref{fig:ESP_criptopack}, tutti i campi sono in chiaro fino al vettore di inizializzazione, il resto è crittografato. -\renewcommand\arraystretch{1.2} -\begin{table}[htb] - \footnotesize - \begin{center} - \begin{tabular}{@{\vrule}p{24mm}@{\vrule}p{24mm}@{\vrule} - p{24mm}@{\vrule}p{24mm}@{\vrule}} - \multicolumn{4}{@{}c@{}}{0\hfill 15 16\hfill 31}\\ - \hline - \multicolumn{4}{@{\vrule}c@{\vrule}}{}\\ - \multicolumn{4}{@{\vrule}c@{\vrule}}{Intestazione Principale}\\ - \multicolumn{4}{@{\vrule}c@{\vrule}}{...}\\ - \multicolumn{4}{@{\vrule}c@{\vrule}}{}\\ - \hline - \multicolumn{4}{@{\vrule}c@{\vrule}}{}\\ - \multicolumn{4}{@{\vrule}c@{\vrule}}{Intestazioni di estensione}\\ - \multicolumn{4}{@{\vrule}c@{\vrule}}{...}\\ - \multicolumn{4}{@{\vrule}c@{\vrule}}{}\\ - \hline - \multicolumn{4}{@{\vrule}c@{\vrule}} - {\centering Security Parameter Index}\\ - \hline - \multicolumn{4}{@{\vrule}c@{\vrule}} - {\centering Vettore}\\ - \multicolumn{4}{@{\vrule}c@{\vrule}} - {\centering di inizializzazione}\\ - \hline - \multicolumn{4}{@{\vrule}c@{\vrule}}{carico}\\ - \multicolumn{4}{@{\vrule}c@{\vrule}}{crittografato}\\ - \multicolumn{4}{@{\vrule}c@{\vrule}}{...}\\ - \cline{2-4} - & \multicolumn{3}{c@{\vrule}}{}\\ - \cline{1-1} - \cline{3-4} - \multicolumn{1}{@{\vrule}c}{}& - \centering \raisebox{2mm}[0pt][0pt]{riempimento} & - \centering lunghezza pad &\centering tipo carico\tabularnewline - \hline - \end{tabular} - \caption{Schema di pacchetto crittografato} - \label{tab:criptopack} - \end{center} -\end{table} -\renewcommand\arraystretch{1} %default + + +\begin{figure}[!htb] + \centering + \includegraphics[width=10cm]{img/esp_option} + \caption{Schema di pacchetto crittografato.} + \label{tab:ESP_criptopack} +\end{figure} + \subsection{Autoconfigurazione} @@ -1423,7 +1356,7 @@ fino al vettore di inizializzazione, il resto Una delle caratteristiche salienti di IPv6 è quella dell'autoconfigurazione, il protocollo infatti fornisce la possibilità ad un nodo di scoprire automaticamente il suo indirizzo acquisendo i parametri necessari per potersi -connettere a internet. +connettere a internet. L'autoconfigurazione sfrutta gli indirizzi link-local; qualora sul nodo sia presente una scheda di rete che supporta lo standard IEEE802 (ethernet) questo