X-Git-Url: https://gapil.gnulinux.it/gitweb/?p=gapil.git;a=blobdiff_plain;f=sockctrl.tex;h=09d02506de1797da1925ac59ed71fafbe6663dd3;hp=e1980b03b119d91e29a430fcc3c7e738544e6b94;hb=33a54e1bfa5e62cb90d84c2d5f2d0c53864f6bec;hpb=a35faaa061294d0c8d5c9e8b57b865d4a5c20a6c diff --git a/sockctrl.tex b/sockctrl.tex index e1980b0..09d0250 100644 --- a/sockctrl.tex +++ b/sockctrl.tex @@ -1,6 +1,6 @@ %% sockctrl.tex %% -%% Copyright (C) 2004-2009 Simone Piccardi. Permission is granted to +%% Copyright (C) 2004-2011 Simone Piccardi. Permission is granted to %% copy, distribute and/or modify this document under the terms of the GNU Free %% Documentation License, Version 1.1 or any later version published by the %% Free Software Foundation; with the Invariant Sections being "Prefazione", @@ -2764,6 +2764,8 @@ sono definite in \file{netinet/ip.h}, ed accessibili includendo detto file. Imposta il valore del campo TOS.\\ \const{IP\_TTL} &$\bullet$&$\bullet$& &\texttt{int}& Imposta il valore del campo TTL.\\ + \const{IP\_MINTTL} &$\bullet$&$\bullet$& &\texttt{int}& + Imposta il valore minimo del TTL per i pacchetti accettati.\\ \const{IP\_HDRINCL} &$\bullet$&$\bullet$&$\bullet$&\texttt{int}& Passa l'intestazione di IP nei dati.\\ \const{IP\_RECVERR} &$\bullet$&$\bullet$&$\bullet$&\texttt{int}& @@ -2880,12 +2882,13 @@ sez.~\ref{sec:net_sendmsg}). supportata per socket di tipo \const{SOCK\_STREAM}. \item[\const{IP\_TOS}] L'opzione consente di leggere o impostare il campo - \textit{Type of Service} dell'intestazione IP (vedi - sez.~\ref{sec:IP_header}) che permette di indicare le priorità dei - pacchetti. Se impostato il valore verrà mantenuto per tutti i pacchetti del - socket; alcuni valori (quelli che aumentano la priorità) richiedono i - privilegi di amministrazione con la \itindex{capabilities} capability - \const{CAP\_NET\_ADMIN}. + \textit{Type of Service} dell'intestazione IP (per una trattazione più + dettagliata, che riporta anche i valori possibili e le relative costanti di + definizione si veda sez.~\ref{sec:IP_header}) che permette di indicare le + priorità dei pacchetti. Se impostato il valore verrà mantenuto per tutti i + pacchetti del socket; alcuni valori (quelli che aumentano la priorità) + richiedono i privilegi di amministrazione con la \itindex{capabilities} + capability \const{CAP\_NET\_ADMIN}. Il campo TOS è di 8 bit e l'opzione richiede per \param{optval} un intero che ne contenga il valore. Sono definite anche alcune costanti che @@ -2897,12 +2900,32 @@ sez.~\ref{sec:net_sendmsg}). dal protocollo utilizzando l'opzione \const{SO\_PRIORITY} illustrata in sez.~\ref{sec:sock_generic_options}. -\item[\const{IP\_TTL}] L'opzione consente di leggere o impostare il campo - \textit{Time to Live} dell'intestazione IP (vedi sez.~\ref{sec:IP_header}) - per tutti i pacchetti associati al socket. Il campo TTL è di 8 bit e +\item[\const{IP\_TTL}] L'opzione consente di leggere o impostare per tutti i + pacchetti associati al socket il campo \textit{Time to Live} + dell'intestazione IP che indica il numero massimo di \textit{hop} (passaggi + da un router ad un altro) restanti al paccheto (per una trattazione più + estesa si veda sez.~\ref{sec:IP_header}). Il campo TTL è di 8 bit e l'opzione richiede che \param{optval} sia un intero, che ne conterrà il valore. +\item[\const{IP\_MINTTL}] L'opzione, introdotta con il kernel 2.6.34, imposta + un valore minimo per il campo \textit{Time to Live} dei pacchetti associati + al socket su cui è attivata, che se non rispettato ne causa lo scarto + automatico. L'opzione è nata per implementare + l'\href{http://www.ietf.org/rfc/rfc5082.txt}{RFC~5082} che la prevede come + forma di protezione per i router che usano il protocollo BGP poiché questi, + essendo in genere adiacenti, possono, impostando un valore di 255, scartare + automaticamente tutti gli eventuali pacchetti falsi creati da un attacco a + questo protocollo, senza doversi curare di verificarne la + validità.\footnote{l'attacco viene in genere portato per causare un + \textit{Denial of Service} aumentando il consumo di CPU del router nella + verifica dell'autenticità di un gran numero di pacchetti di pacchetti + falsi; questi, arrivando da sorgenti diverse da un router adiacente, non + potrebbero più avere un TTL di 255 anche qualora questo fosse stato il + valore di partenza, e l'impostazione dell'opzione consente di scartarli + senza carico aggiuntivo sulla CPU (che altrimenti dovrebbe calcolare una + checksum).} + \item[\const{IP\_HDRINCL}] Se abilitata l'utente deve fornire lui stesso l'intestazione IP in cima ai propri dati. L'opzione è valida soltanto per socket di tipo \const{SOCK\_RAW}, e quando utilizzata eventuali valori