Linux IPv6 HOWTO (it)Peter Bieringer

    pb at bieringer.de

   L'obiettivo di questo HOWTO � quello di rispondere alle domande, sia
   di base che avanzate, sull'implementazione di IPv6 sul sistema
   operativo Linux. Questo HOWTO fornir� al lettore informazioni
   sufficienti per installare, configurare ed usare applicazioni che
   utilizzano IPv6 su macchine Linux. Traduzione a cura di Michele
   Ferritto (m.ferritto--at--virgilio.it) e revisione a cura di Daniele
   Masini (d.masini--at--tiscali.it).
  _______________________________________________________________________

   Sommario
   1. Generale

        1.1. Copyright, licenza d'uso e altro
        1.2. Categoria
        1.3. Versione, Storia e Da Fare
        1.4. Traduzioni
        1.5. Informazioni tecniche
        1.6. Prefazione
        1.7. Termini utilizzati, glossario e abbreviazioni
        1.8. Requisiti per usare questo HOWTO

   2. Fondamenti

        2.1. Cosa � IPv6?
        2.2. Storia di IPv6 su Linux
        2.3. Che aspetto hanno gli indirizzi IPv6?
        2.4. FAQ (Fondamentali)

   3. Tipi di indirizzi

        3.1. Indirizzi senza un prefisso speciale
        3.2. Parte rete, detta anche prefisso
        3.3. Tipi di indirizzo (parte host)
        3.4. Lunghezze del prefisso per il routing

   4. Verificare se il sistema � pronto per IPv6

        4.1. Kernel pronto per IPv6
        4.2. Strumenti di configurazione di rete pronti per IPv6
        4.3. Programmi di test/debug pronti per IPv6
        4.4. Programmi pronti per IPv6
        4.5. Programmi client pronti per IPv6 (selezione)
        4.6. Programmi server IPv6
        4.7. FAQ (verificare se il sistema � pronto per IPv6)

   5. Configurazione delle interfacce

        5.1. I vari dispositivi di rete
        5.2. Attivazione/disattivazione delle interfacce

   6. Configurazione degli indirizzi IPv6

        6.1. Visualizzare gli indirizzi IPv6 esistenti
        6.2. Aggiungere un indirizzo IPv6
        6.3. Rimuovere un indirizzo IPv6

   7. Configurazione di instradamenti IPv6 standard

        7.1. Visualizzare gli instradamenti IPv6 esistenti
        7.2. Aggiungere un instradamento IPv6 attraverso un gateway
        7.3. Rimuovere un instradamento IPv6 attraverso un gateway
        7.4. Aggiungere un instradamento IPv6 attraverso un'interfaccia
        7.5. Rimuovere un instradamento IPv6 attraverso un'interfaccia
        7.6. FAQ per gli instradamenti IPv6

   8. Scoperta del vicinato (Neighbor Discovery)

        8.1. Visualizzare i vicini usando "ip"
        8.2. Manipolare la tabella relativa ai vicini utilizzando "ip"

   9. Configurare tunnel IPv6-in-IPv4

        9.1. Tipi di tunnel
        9.2. Visualizzare i tunnel esistenti
        9.3. Configurazione di un tunnel punto-punto
        9.4. Configurazione di tunnel 6to4

   10. Configurare tunnel IPv4-in-IPv6
   11. Impostazioni del kernel nel filesystem /proc

        11.1. Come accedere al filesystem /proc
        11.2. Voci in /proc/sys/net/ipv6/
        11.3. Voci relative a IPv6 in /proc/sys/net/ipv4/
        11.4. Voci relative a IPv6 in /proc/net/

   12. Interfaccia netlink al kernel
   13. Debug di rete

        13.1. Server socket binding
        13.2. Esempi di dump dei pacchetti di tcpdump

   14. Supporto per la configurazione persistente di IPv6 nelle
          distribuzioni Linux

        14.1. Red Hat Linux ed i "cloni"
        14.2. SuSE Linux
        14.3. Debian Linux

   15. Configurazione automatica e mobilit�

        15.1. configurazione automatica stateless
        15.2. configurazione automatica stateful con l'utilizzo del
                Router Advertisement Daemon (radvd)

        15.3. Dynamic Host Configuration Protocol v6 (DHCPv6)
        15.4. Mobilit�

   16. Firewalling

        16.1. Firewalling utilizzando netfilter6
        16.2. Preparazione
        16.3. Utilizzo

   17. Sicurezza

        17.1. Sicurezza del nodo
        17.2. Limitazioni di accesso
        17.3. Verifica sicurezza di IPv6

   18. Cifratura ed autenticazione

        18.1. Supporto nel kernel
        18.2. Utilizzo

   19. Qualit� del servizio (QoS)
   20. Suggerimenti per demoni abilitati IPv6

        20.1. Berkeley Internet Name Daemon BIND (named)
        20.2. Internet super daemon (xinetd)
        20.3. Server Web Apache2 (httpd2)
        20.4. Router Advertisement Daemon (radvd)
        20.5. tcp_wrapper
        20.6. vsftpd
        20.7. proftpd
        20.8. Altri Demoni

   21. Programmazione (uso delle API)
   22. Interoperabilit�
   23. Ulteriori informazioni e URL

        23.1. Libri stampati, articoli, riviste online (misto)
        23.2. Conferenze, Incontri, Summit
        23.3. Informazione online
        23.4. Infrastruttura IPv6
        23.5. Mailing list
        23.6. Strumenti on line
        23.7. Addestramento, Seminari
        23.8. 'La Scoperta On line' ...

   24. Storico delle revisioni / Ringraziamenti / La Fine

        24.1. Storico delle revisioni
        24.2. Ringraziamenti
        24.3. La Fine
     _________________________________________________________________

Capitolo 1. Generale

Informazioni sulle traduzioni disponibili possono essere trovate nella
sezione Traduzioni.
     _________________________________________________________________

1.1. Copyright, licenza d'uso e altro

1.1.1. Copyright

Written and Copyright (C) 2001-2004 by Peter Bieringer
     _________________________________________________________________

1.1.2. Licenza d'uso

This Linux IPv6 HOWTO is published under GNU GPL version 2:

The Linux IPv6 HOWTO, a guide how to configure and use IPv6 on Linux
systems.

Copyright (C) 2001-2004 Peter Bieringer

This documentation is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
more details.

You should have received a copy of the GNU General Public License along with
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
Place - Suite 330, Boston, MA 02111-1307, USA.
     _________________________________________________________________

1.1.3. A proposito dell'autore

1.1.3.1. Storia Internet/IPv6 dell'autore

     * 1993: Sono entrato in contatto con Internet utilizzando client
       e-mail e news basati su console (per esempio si cerchi "e91abier"
       su groups.google.com, sono io).
     * 1996: Ho ricevuto una richiesta per progettare un corso su IPv6,
       comprendente un seminario con il sistema operativo Linux.
     * 1997: Ho iniziato a scrivere una guida su come installare,
       configurare e usare IPv6 sui sistemi Linux, chiamata IPv6 &Linux -
       HowTo (si veda IPv6 &Linux - HowTo/History per maggiori
       informazioni).
     * 2001: Ho iniziato a scrivere questo nuovo Linux IPv6 HOWTO.
     _________________________________________________________________

1.1.3.2. Contatti

L'autore pu� essere contattato via e-mail presso <pb at bieringer dot de> e
anche tramite la sua homepage.

Attualmente egli vive a Monaco [zona settentrionale di Schwabing] / Bavaria
/ Germania (sud) / Europa (centrale) / Terra (superfice/continente).
     _________________________________________________________________

1.2. Categoria

Questo HOWTO dovrebbe essere elencato nella categoria
"Networking/Protocols".
     _________________________________________________________________

1.3. Versione, Storia e Da Fare

1.3.1. Versione

La versione attuale � indicata all'inizio del documento.

Per altre versioni/traduzioni disponibili, si veda anche
http://www.bieringer.de/linux/IPv6/.
     _________________________________________________________________

1.3.2. Storia

1.3.2.1. Storia principale

30-11-2001: Inizio del progetto del nuovo HOWTO.

02-02-2002: Molto del contenuto completato, primo rilascio pubblico del
capitolo 1 (versione 0.10).

14-01-2002: Pi� completo, qualche revisione, rilascio pubblico dell'intero
documento (versione 0.14).

16-08-2002: Procede la traduzione in Polacco

31-10-2002: Disponibile la traduzione in Cinese (si veda Traduzioni per
maggiori dettagli)

10-11-2002: Procede la traduzione in Tedesco

10-02-2003: Disponibile la traduzione in Tedesco

09-04-2003: Procede la traduzione in Francese

09-05-2003: Disponibile la traduzione in Francese

15-08-2003: Procede la traduzione in Spagnolo

16-10-2003: Procede la traduzione in Italiano

12-03-2004: Disponibile la traduzione in Italiano

18-06-2004: Procede la traduzione in Greco

29-08-2004: La traduzione in Spagnolo � sospesa
     _________________________________________________________________

1.3.2.2. Storia completa

Si veda lo Storico delle Revisioni alla fine di questo documento.
     _________________________________________________________________

1.3.3. Da Fare

     * Riempimento dei contenuti mancanti
     * Terminare controllo grammaticale
     _________________________________________________________________

1.4. Traduzioni

Le traduzioni devono sempre contenere l'URL, il numero di versione e il
copyright del documento originale (ma anche quelli della traduzione). Si
prega di non tradurre il changelog originale, non � molto utile. Sembra che
la frequenza delle modifiche al documento sia inferiore ad una volta al
mese. A partire dalla versione 0.27 inoltre sembra che la maggior parte dei
contenuti ai quali ho contribuito, sia stata scritta. Le traduzioni devono
sempre essere effettuate a partire dalla versione inglese.
     _________________________________________________________________

1.4.1. Traduzioni disponibili

1.4.1.1. Italiano

La traduzione in Italiano, a cura di Michele Ferritto, � stata aggiornata il
4 settembre 2004 ed � relativa alla versione 0.47 del documento originale.
Detta traduzione � disponibile presso il sito web dell'Italian Linux
Documentation Project. Il traduttore pu� essere contattato all'indirizzo
m.ferritto@toglimi.virgilio.it.
     _________________________________________________________________

1.4.1.1.1. Altre traduzioni

Per informazioni sulle altre traduzioni disponibili si veda il documento
originale presso il TLDP.
     _________________________________________________________________

1.5. Informazioni tecniche

1.5.1. Sorgente originale di questo HOWTO

Questo HOWTO e' stato scritto con LyX versione 1.2.0 su di un sistema Red
Hat Linux 7.3 con template SGML (libro DocBook). � disponibile presso
TLDP-CVS / users / Peter-Bieringer per contributi.
     _________________________________________________________________

1.5.1.1. Wrapping delle linee di codice

Il wrapping delle linee di codice � ottenuto utilizzando l'applicazione
"lyxcodelinewrapper.pl", creata dall'autore, che � possibile scaricare dal
CVS per i propri scopi: TLDP-CVS / users / Peter-Bieringer.
     _________________________________________________________________

1.5.1.2. Generazione dello SGML

L'output SGML � stato generato utilizzando le funzioni di esportazione di
LyX.

Si sono resi necessari anche alcuni aggiustamenti per ottenere un codice
SGML corretto (per i programmi Perl si veda anche TLDP-CVS / users /
Peter-Bieringer):

     * L'esportazione delle tabelle di LyX non crea correttamente i tag
       "colspan" - strumento per risolvere: "sgmllyxtabletagfix.pl"
       (risolto a partire da LyX 1.2.0).
     * LyX a volte usa speciali entit� per le virgolette (a destra ed a
       sinistra), invece di quelle normali, che ancora esistono nello
       HTML generato. Qualche browser non riesce a comprenderle
       correttamente (ad esempio Opera 6 TP 2 o Konqueror) - strumento
       per risolvere: "sgmllyxquotefix.pl".
     _________________________________________________________________

1.5.2. Riferimenti on-line alla versione HTML di questo HOWTO
(collegamenti/anchors)

1.5.2.1. Pagina indice Master

Di solito, un riferimento alla pagina indice master � raccomandato.
     _________________________________________________________________

1.5.2.2. Pagine dedicate

Poich� le pagine HTML vengono generate da un file SGML, i nomi dei file
risultanti sono praticamente casuali. Tuttavia, alcune pagine sono
etichettate in LyX, dando come risultato nomi statici. Queste etichette sono
utili come riferimento e non dovrebbero essere modificate in futuro.

Se pensate che abbia dimenticato qualche tag, per favore fatemelo sapere
cos� da poterlo aggiungere.
     _________________________________________________________________

1.6. Prefazione

Alcune cose prima di tutto:
     _________________________________________________________________

1.6.1. Quante versioni di HOWTO su Linux & IPv6 ci sono in giro?

Inclusa questa, ci sono tre (3) documenti HOWTO disponibili. Scusate se sono
troppi ;-)
     _________________________________________________________________

1.6.1.1. Linux IPv6 FAQ/HOWTO (obsoleto)

Il primo documento relativo a IPv6 fu scritto da Eric Osborne e chiamato
Linux IPv6 FAQ/HOWTO (per favore lo si usi solo per riferimenti storici).
L'ultima versione � stata la 3.2.1 rilasciata il 14 Luglio 1997.

Se qualcuno fosse a conoscenza della data relativa alla prima stesura di
tale HOWTO, mi mandi una e-mail (� un'informazione necessaria per la
"storia").
     _________________________________________________________________

1.6.1.2. IPv6 & Linux - HowTo (mantenuto)

Esiste una seconda versione chiamata IPv6 &Linux - HowTo scritta da me
(Peter Bieringer) in HTML puro. Ha visto la luce nell'Aprile del 1997 e la
prima versione in inglese � stata pubblicata nel Giugno del 1997. Continuer�
a mantenerla anche se si dissolver� lentamente (ma non del tutto) in favore
del Linux IPv6 HOWTO che state leggendo.
     _________________________________________________________________

1.6.1.3. Linux IPv6 HOWTO (questo documento)

Poich� IPv6 &Linux - HowTo � scritto in puro HTML, non � del tutto
compatibile con The Linux Documentation Project (TLDP), il sottoscritto
(Peter Bieringer) verso la fine del Novembre 2001, ha ricevuto una richiesta
per riscrivere lo IPv6 &Linux - HowTo in SGML. Comunque, a causa della
dismissione dell'HOWTO Future of IPv6 &Linux - HowTo e del fatto che IPv6
sta divenendo uno standard sempre pi� utilizzato, ho deciso di scrivere un
nuovo documento sulle questioni di base e avanzate che rimaranno importanti
per i prossimi anni. Maggiori contenuti dinamici e qualche dettaglio
avanzato si potranno trovare nel secondo HOWTO (IPv6 &Linux - HowTo).
     _________________________________________________________________

1.7. Termini utilizzati, glossario e abbreviazioni

1.7.1. Relativi alla rete

   Base 10
          Conosciuto sistema numerico decimale, nel quale ogni valore
          viene rappresentato con le cifre da 0 a 9.

   Base 16
          Utilizzato solitamente nei linguaggi di programmazione a basso
          ed alto livello, conosciuto anche come sistema numerico
          esadecimale, nel quale ogni valore viene rappresentato con le
          cifre da 0 a 9 ed i caratteri da A a F (senza distinzione tra
          maiuscole e minuscole).

   Base 85
          Sistema di rappresentazione di ogni valore con 85 differenti
          numeri e caratteri; esso porta a sequenze di cifre pi� corte -
          mai visto prima.

   Bit
          La pi� piccola unit� di immagazzinamento dati, acceso/vero (1)
          o spento/falso (0).

   Byte
          Principalmente un insieme di 8 (ma non necessariamente - si
          vedano i sistemi pi� vecchi) bit.

   Dispositivo
          In questo caso, hardware per la connessione di rete, si veda
          anche NIC.

   Dual homed host
          Un dual homed host � un nodo (sistema) con due interfacce di
          rete (fisiche o virtuali) su due differenti collegamenti che
          non inoltra nessun pacchetto tra le interfacce.

   Host
          Generalmente un single homed host su di un collegamento.
          Normalmente ha solo una interfaccia di rete attiva, per esempio
          Ethernet o PPP.

   Interfaccia
          Essenzialmente lo stesso di "dispositivo", si veda anche NIC.

   Intestazione IP (IP Header)
          Intestazione di un pacchetto IP (ogni pacchetto di rete ha
          un'intestazione, il cui tipo dipende dal livello di rete).

   Link (collegamento)
          Il link � il meccanismo di comunicazione dei pacchetti di rete
          di livello 2 OSI; esempi sono Ethernet, Token Ring, PPP, SLIP,
          ATM, ISDN, Frame Relay, ...

   Nodo
          Un nodo � un host o un router.

   Ottetto
          Un insieme di 8 bit, attualmente � analogo al "byte".

   Porta
          Informazione necessaria al dispatcher TCP/UDP (livello 4 OSI)
          per il trasporto delle informazioni agli strati superiori.

   Protocollo
          Ogni livello di rete contiene di solito un campo protocollo per
          facilitare le operazioni di recapito delle informazioni
          trasportate al livello superiore come per esempio il livello 2
          (MAC) e 3 (IP).

   Router
          Un router � un nodo con 2 o pi� interfacce di rete (fisiche o
          virtuali) capace di inoltrare pacchetti tra le interfacce.

   Socket
          Un socket IP � definito dal legame tra l'indirizzo IP del
          mittente (sorgente), l'indirizzo IP di destinazione e le
          relative Porte (binding).

   Stack
          Un insieme di livelli di rete.

   Maschera di sottorete (Subnet mask)
          Le reti IP usano maschere di bit per separare le reti locali da
          quelle remote.

   Tunnel
          Un tunnel � tipicamente una connessione punto-punto nella quale
          i pacchetti scambiati contengono al loro interno pacchetti di
          un altro protocollo, come per esempio in un tunnel
          IPv6-in-IPv4.
     _________________________________________________________________

1.7.1.1. Abbreviazioni

   ACL
          Access Control List.

   API
          Application Programming Interface.

   ASIC
          Application Specified Integrated Circuit.

   BSD
          Berkeley Software Distribution.

   CAN-Bus
          Controller Area Network Bus (physical bus system).

   ISP
          Internet Service Provider

   KAME
          Progetto - uno sforzo congiunto di sei societ� giapponesi per
          fornire al pubblico uno stack IPv6 e IPsec (sia per IPv4 che
          per IPv6) libero, per varianti BSD www.kame.net.

   LIR
          Local Internet Registry

   NIC
          Network Interface Card.

   RFC
          Request For Comments - Insieme di note tecniche e organizzative
          che riguardano Internet.

   USAGI
          UniverSAl playGround for Ipv6 Project - lavori per mettere in
          produzione uno stack IPv6 di qualit� per il sistema Linux.
     _________________________________________________________________

1.7.2. Informazioni relative al testo

1.7.2.1. Carattere di collegamento tra pi� righe di codice

Il carattere speciale "�" viene usato per segnalare che la linea di codice
corrente fa parte di quella precedente, ma � rappresentata fisicamente su
una riga diversa per una migliore visualizzazione nei file PDF e PS.
     _________________________________________________________________

1.7.2.2. Segnaposto

Negli esempi generici a volte si pu� trovare la seguente dicitura:
<myipaddress>


   Per l'uso concreto nella propria riga di comando o in uno script, tale
   dicitura deve essere sostituita con il contenuto opportuno (rimuovendo
   < e > naturalmente); in questo caso il risultato potrebbe essere, per
   esempio
1.2.3.4

     _________________________________________________________________

1.7.2.3. Comandi nella shell

Comandi eseguiti da utenti non-root iniziano con il carattere $, ad esempio
$ whoami


   Comandi eseguiti come utente root iniziano con il carattere #, ad
   esempio
# whoami

     _________________________________________________________________

1.8. Requisiti per usare questo HOWTO

1.8.1. Prerequisti personali

1.8.1.1. Esperienza con gli strumenti Unix

Si dovrebbe avere familiarit� con i principali strumenti Unix, ad esempio
grep, awk, find, ... e conoscere le relative opzioni di comando pi� comuni.
     _________________________________________________________________

1.8.1.2. Conoscenza della teoria delle reti

Si dovrebbe essere a conoscenza di livelli, protocolli, indirizzi, cavi,
plug, ecc. Se si � nuovi in questo campo, qui c'� un buon punto di partenza:
linuxports/howto/intro_to_networking.
     _________________________________________________________________

1.8.1.3. Esperienza con la configurazione di IPv4

Si deve avere necessariamente avuto qualche esperienza nella configurazione
di IPv4, altrimenti sar� dura capire cosa sta veramente succedendo.
     _________________________________________________________________

1.8.1.4. Esperienza con il Domain Name System (DNS)

Bisogna anche comprendere cosa � il Domain Name System (DNS), cosa fornisce
e come va usato.
     _________________________________________________________________

1.8.1.5. Esperienza con le strategie di network debugging

� necessario almeno capire come usare tcpdump e cosa pu� mostrare.
Diversamente, il network debugging risulter� molto ostico.
     _________________________________________________________________

1.8.2. Hardware compatibile con il sistema operativo Linux

Sicuramente si vorranno fare esperimenti con del vero hardware e non
semplicemente leggere questo HOWTO addormentandosi qua e l�. ;-7)
     _________________________________________________________________

Capitolo 2. Fondamenti

2.1. Cosa � IPv6?

IPv6 � un nuovo protocollo di livello 3 OSI (si veda
linuxports/howto/intro_to_networking/ISO - OSI Model) il quale soppianter�
IPv4 (conosciuto anche come IP). IPv4 fu progettato molto tempo fa (RFC 760
/ Internet Protocol del Gennaio 1980) e fin dal principio, ci sono state
molte richieste per pi� indirizzi e migliori risorse. L'ultima RFC � RFC
2460 / Internet Protocol Version 6 Specification. I cambiamenti pi�
importanti di IPv6 sono la riprogettazione dell'intestazione (header),
incluso l'aumento della dimensione degli indirizzi da 32 a 128 bit. Poich�
il livello 3 OSI � responsabile del trasporto dal mittente al destinatario
(end-to-end) dei pacchetti tramite l'instradamento (routing) basato sugli
indirizzi, esso deve includere i nuovi indirizzi IPv6 (sorgente e
destinazione) come IPv4.

Per maggiori informazioni sulla storia di IPv6 si dia uno sguardo alle
vecchie RFC relative elencate ad esempio presso Guida IPv6 SWITCH /
Riferimenti.
     _________________________________________________________________

2.2. Storia di IPv6 su Linux

Gli anni 1992, 1993 e 1994 della storia di IPv6 sono trattati (in generale)
dal seguente documento: IPv6 o IPng (IP next generation).

Da fare: miglior time-line, maggiori contenuti...
     _________________________________________________________________

2.2.1. Inizio

Il primo codice relativo a IPv6 fu aggiunto al kernel Linux 2.1.8 nel
Novembre 1996 da Pedro Roque. Era basato sull'API BSD:
diff -u --recursive --new-file v2.1.7/linux/include/linux/in6.h
� linux/include/linux/in6.h
--- v2.1.7/linux/include/linux/in6.h Thu Jan 1 02:00:00 1970
+++ linux/include/linux/in6.h Sun Nov 3 11:04:42 1996
@@ -0,0 +1,99 @@
+/*
+ * Types and definitions for AF_INET6
+ * Linux INET6 implementation
+ * + * Authors:
+ * Pedro Roque <******>
+ *
+ * Source:
+ * IPv6 Program Interfaces for BSD Systems
+ * <draft-ietf-ipngwg-bsd-api-05.txt>


   Le linee mostrate sono state copiate dalla patch-2.1.8 (l'indirizzo
   e-mail � stato nascosto nel copia&incolla).
     _________________________________________________________________

2.2.2. Nel mezzo

A causa della mancanza di manodopera, l'implementazione di IPv6 nel kernel
non � riuscita a seguire le stesure discusse o i nuovi RFC rilasciati.
Nell'Ottobre 2000, in Giappone � stato avviato un progetto chiamato USAGI,
il cui intento � quello di implementare tutto il supporto IPv6 mancante o
sorpassato in Linux. Questo tiene traccia delle implementazioni IPv6 su
FreeBSD realizzate dal progetto KAME. Di volta in volta essi creano delle
istantanee rispetto agli attuali sorgenti "vanilla" del kernel di Linux.
     _________________________________________________________________

2.2.3. Attuale

Sfortunatamente, la patch USAGI � cos� grande che gli attuali manutentori
del networking di Linux non riescono ad includerla nei sorgenti di
produzione del kernel della serie 2.4.x. Pertanto questa serie di kernel
manca di alcune (molte) estensioni e inoltre non � conforme a tutte le
attuali discussioni e RFC (si veda Statuto del gruppo di lavoro IP Versione
6 (ipv6)). Questo causa qualche problema di interoperabilit� con gli altri
sistemi operativi.
     _________________________________________________________________

2.2.4. Futuro

USAGI sta ora facendo uso della nuova serie di kernel di sviluppo 2.5.x per
inserirvi tutte le attuali estensioni. Con buone speranze i kernel della
serie 2.6.x conterranno una reale implementazione di IPv6 aggiornata.
     _________________________________________________________________

2.3. Che aspetto hanno gli indirizzi IPv6?

Come precedentemente accennato, gli indirizzi IPv6 sono lunghi 128 bit.
Questa quantit� di bit genera numeri decimali molto grandi che possono avere
fino a 39 cifre:
2^128-1: 340282366920938463463374607431768211455


   Tali numeri non sono indirizzi che possono effettivamente essere
   agevolmente memorizzati. Lo schema dell'indirizzo IPv6 � un insieme di
   bit (esattamente come IPv4, ma spesso di ci� non si � consapevoli).
   Pertanto una migliore notazione per cos� grandi numeri �
   l'esadecimale. In esadecimale, 4 bit (anche conosciuto come "nibble")
   sono rappresentati da un numero o un carattere da 0 a 9 e da A a F
   (10-15). Questo formato riduce la lunghezza dell'indirizzo IPv6 a 32
   caratteri.
2^128-1: 0xffffffffffffffffffffffffffffffff


   Questa rappresentazione non � ancora molto conveniente (possibile
   confusione o perdita di singole cifre esadecimali), cos� i progettisti
   di IPv6 hanno scelto un formato esadecimale con i due punti come
   separatori dopo ogni blocco di 16 bit. Inoltre, l'iniziale "0x"
   (l'indicatore usato nei linguaggi di programmazione per valori
   esadecimali) viene rimosso:
2^128-1: ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff


   Un esempio di indirizzo utilizzabile (si vedano i tipi di indirizzo
   pi� avanti) �:
3ffe:ffff:0100:f101:0210:a4ff:fee3:9566


   Per semplificare, lo zero iniziale di ogni blocco di 16 bit pu� essere
   omesso:
3ffe:ffff:0100:f101:0210:a4ff:fee3:9566  ->
� 3ffe:ffff:100:f101:210:a4ff:fee3:9566


   Una sequenza di 16 blocchi di bit contenenti solo zeri pu� essere
   rimpiazzata con "::". Ma non pi� di una alla volta, altrimenti non �
   pi� una rappresentazione unica.
3ffe:ffff:100:f101:0:0:0:1  ->  3ffe:ffff:100:f101::1


   La riduzione pi� grande si pu� apprezzare con l'indirizzo IPv6
   relativo a localhost:
0000:0000:0000:0000:0000:0000:0000:0001  ->  ::1


   Esiste anche una rappresentazione (codificata in base 85) cosidetta
   compatta definita RFC 1924 / A Compact Representation of IPv6
   Addresses (pubblicata il 1 Aprile 1996), mai vista da nessuna parte,
   probabilmente un pesce d'Aprile, ma di seguito � riportato un esempio:
# ipv6calc --addr_to_base85 3ffe:ffff:0100:f101:0210:a4ff:fee3:9566
Itu&-ZQ82s>J%s99FJXT


     Info: ipv6calc � un programma per calcolare e convertire indirizzi
     IPv6 nei vari formati e pu� essere trovato qui: ipv6calc homepage
     (Mirror).
     _________________________________________________________________

2.4. FAQ (Fondamentali)

2.4.1. Perch� il nome del successore di IPv4 � IPv6 e non IPv5?

In ogni intestazione IP, i primi 4 bit sono riservati per la versione del
protocollo. Cos� teoricamente sono possibili numeri di protocollo da 0 a 15:

     * 4: gi� utilizzato per IPv4
     * 5: riservato per lo Stream Protocol (STP, RFC 1819 / Internet
       Stream Protocol Version 2) (il quale non � mai stato veramente
       reso pubblico)

   Il successivo numero libero � 6. Per cui � nato IPv6!
     _________________________________________________________________

2.4.2. Indirizzi IPv6: perch� un cos� grande numero di bit?

Durante la progettazione di IPv4, si pens� che 32 bit fossero sufficienti
per il mondo. Guardando al passato, 32 bit sono stati sufficienti fino ad
ora e pu� darsi che basteranno per qualche altro anno. Comunque, 32 bit non
bastano per fornire in futuro, ad ogni dispositivo di rete un indirizzo
globale. Si pensi ai telefoni mobili, alle auto (inclusi i dispositivi sulle
loro CAN-bus), ai tostapane, ai frigoriferi, agli interruttori della luce, e
cosi via ...

Per questo i progettisti hanno scelto 128 bit, 4 volte pi� lungo e 2^96
volte superiore rispetto all'IPv4 di oggi.

La dimensione effettivamente utilizzabile � comunque inferiore rispetto a
quello che sembra. Questo perch� nello schema degli indirizzi attualmente
definito, 64 bit sono usati per gli identificatori di interfaccia e gli
altri 64 bit sono usati per l'instradamento. Assumendo gli attuali stretti
livelli di aggregazione (/48, /32, ...) � persino possibile esaurire lo
spazio, ma speriamo non nel prossimo futuro.

Per maggiori informazioni si vedano anche RFC 1715 / The H Ratio for Address
Assignment Efficiency e RFC 3194 / The Host-Density Ratio for Address
Assignment Efficiency.
     _________________________________________________________________

2.4.3. Indirizzi IPv6: Perch� un cos� piccolo numero di bit per un nuovo
progetto?

Al momento ci sono (forse) alcune persone (conosco solo Jim Fleming...) su
Internet che stanno pensando a IPv8 e IPv16, il loro progetto � ancora
lontano dall'essere accettato e implementato. Nel frattempo 128 bit sono
stati la migliore scelta per l'overhead dell'intestazione e il trasporto
dati. Consideriamo la minima Maximum Transfer Unit (MTU) in IPv4 (576
ottetti) e in IPv6 (1280 ottetti), la lunghezza dell'intestazione di IPv4 �
20 ottetti (minima, pu� arrivare a 60 ottetti con le opzioni) quella di IPv6
� 48 ottetti (fissa). Questa � il 3.4 % della MTU di IPv4 e il 3.8 % della
MTU di IPv6. Ci� significa che l'overhead dell'intestazione � quasi uguale.
Pi� bit per gli indirizzi richiedono intestazioni pi� grandi e quindi
maggiore overhead. Si consideri anche che la massima MTU su normali link
(come Ethernet attualmente) � di 1500 ottetti (in casi particolari 9k
ottetti utilizzando frame "Jumbo"). In definitiva, non sarebbe
strutturalmente appropriato se il 10 % o 20 % dei dati trasportati in un
pacchetto di livello 3 fosse usato per gli indirizzi e non per il payload.
     _________________________________________________________________

Capitolo 3. Tipi di indirizzi

Come in IPv4, gli indirizzi IPv6 possono essere divisi in parte rete e parte
host utilizzando le maschere di sottorete (subnet mask).

IPv4 ha dimostrato che in certi casi pu� essere utile assegnare pi� di un
indirizzo ad una singola interfaccia, ognuno per un differente scopo (alias,
multi-cast). Per rimanere estensibile in futuro, IPv6 va oltre e permette
l'assegnazione di pi� di un indirizzo IPv6 ad una stessa interfaccia. Non ci
sono attualmente limiti definiti da una RFC se non nell'implementazione
dello stack IPv6 (per prevenire attacchi DoS).

Utilizzando un grande numero di bit per gli indirizzi, IPv6 definisce dei
tipi basandosi sul valore di alcuni bit iniziali, che speriamo non verranno
cambiati in futuro (diversamente dall'attuale IPv4 e la storia delle classi
A, B, e C).

Inoltre il numero di bit � separato in una parte rete (i 64 bit pi�
significativi) e in una parte host (i 64 bit meno significativi) per
facilitare l'auto configurazione. A tal proposito, una valida URL per
mostrare in dettaglio un dato indirizzo IPv6 � il Laboratorio Avanzato
Gestione di Rete / Oracolo indirizzo IPv6.
     _________________________________________________________________

3.1. Indirizzi senza un prefisso speciale

3.1.1. Indirizzo localhost

� uno speciale indirizzo per l'interfaccia di loopback, simile al
"127.0.0.1"di IPv4. Con IPv6 l'indirizzo localhost �:
0000:0000:0000:0000:0000:0000:0000:0001


   o compresso:
::1


   I pacchetti con questo indirizzo come sorgente o destinazione non
   devono mai uscire dall'host che li invia.
     _________________________________________________________________

3.1.2. Indirizzo non specificato

Questo � un indirizzo speciale come "any" o "0.0.0.0" in IPv4 . Per IPv6 �:
0000:0000:0000:0000:0000:0000:0000:0000


   o:
::


   Questi indirizzi sono principalmente usati/visti nel socket binding
   (per ogni indirizzo IPv6) o nelle tabelle di instradamento.

   Nota: Questo tipo di indirizzo non pu� essere usato come destinazione.
     _________________________________________________________________

3.1.3. Indirizzo IPv6 con indirizzo IPv4 incorporato

Ci sono due tipi di indirizzi IPv6 che possono contenere un indirizzo IPv4.
     _________________________________________________________________

3.1.3.1. Indirizzo IPv6 mappato IPv4

Gli indirizzi compatibili IPv6 solo IPv4 sono a volte
utilizzati/visualizzati per socket creati da un demone abilitato IPv6, ma
relativo ad un indirizzo IPv4.

questi indirizzi sono definiti con un prefisso speciale di lunghezza 96
(a.b.c.d � l'indirizzo IPv4):
0:0:0:0:0:ffff:a.b.c.d/96


   o nel formato compresso
::ffff:a.b.c.d/96


   Per esempio, l'indirizzo IPv4 1.2.3.4 � rappresentato cos�:
::ffff:1.2.3.4

     _________________________________________________________________

3.1.3.2. Indirizzo IPv6 compatibile IPv4

Utilizzato per il tunneling automatico (RFC 2893 / Transition Mechanisms for
IPv6 Hosts and Routers), che sta per essere rimpiazzato da tunneling 6to4.
0:0:0:0:0:0:a.b.c.d/96


   o nel formato compresso
::a.b.c.d/96

     _________________________________________________________________

3.2. Parte rete, detta anche prefisso

I progettisti hanno definito alcuni tipi di indirizzo e ne hanno lasciati
parecchi per future definizioni, attualmente sconosciute. RFC 2373 [Luglio
1998] / IP Version 6 Addressing Architecture definisce l'attuale schema di
indirizzamento anche se c'� gi� una nuova bozza disponibile:
draft-ietf-ipngwg-addr-arch-*.txt.

Si dia ora uno sguardo ai differenti tipi di prefisso (e quindi tipi di
indirizzo):
     _________________________________________________________________

3.2.1. Indirizzo link locale

Sono particolari indirizzi, validi soltanto nel link di un interfaccia.
Usando questo indirizzo come destinazione, il pacchetto non attraverser� mai
un router. � usato per comunicazioni link quali:

     * c'� qualcun'altro su questo link?
     * c'� qualcuno con un particolare indirizzo (per esempio per la
       ricerca di un router)?

   Essi iniziano con (dove "x" � qualsiasi carattere esadecimale,
   normalmente "0")
fe8x:  <- attualmente l'unico utilizzato.
fe9x:
feax:
febx:


   Un indirizzo con questo prefisso si trova su ogni interfaccia
   abilitata IPv6 dopo una configurazione automatica stateless (che � il
   caso classico).
     _________________________________________________________________

3.2.2. Indirizzo di tipo sito locale

Questi sono indirizzi simili a quelli specificati dalla RFC 1918 / Address
Allocation for Private Internets, oggi utilizzati da IPv4, con il vantaggio
che chiunque usi questo tipo di indirizzo ha la possibilit� di utilizzare 16
bit per gestire fino a 65536 sottoreti. � analogo alla 10.0.0.0/8 di IPv4.

Un altro vantaggio: poich� � possibile assegnare pi� di un indirizzo ad
un'interfaccia IPv6, si pu� anche assegnare tale indirizzo locale in
aggiunta ad uno globale.

Questo tipo di indirizzo inizia con:
fecx:  <- il pi&ugrave; comunemente usato.
fedx:
feex:
fefx:


   (dove "x" � qualsiasi carattere esadecimale, normalmente "0")

   Si noti che ci sono dibattiti sul fatto di dismettere questo tipo di
   indirizzi poich� esistono diversi problemi. Per maggiori dettagli si
   veda draft-ietf-ipv6-deprecate-site-local-XY.txt.

   A mio modesto parere, questo tipo di indirizzi sono ancora una buona
   scelta per prove di laboratorio.
     _________________________________________________________________

3.2.3. Indirizzo di tipo globale "(Aggregatable) global unicast"

Attualmente, c'� un unico indirizzo di tipo globale definito (il primo
progetto, chiamato "provider based" fu cestinato alcuni anni f� RFC 1884 /
IP Version 6 Addressing Architecture [obsoleto], se ne possono trovare
alcune tracce nei pi� vecchi sorgenti del kernel Linux).

Inizia con (le x sono caratteri esadecimali)
2xxx:
3xxx:


   Nota: il prefisso "aggregabile" (aggregatable) � stato depennato dalle
   bozze attuali. Ci sono alcuni ulteriori sottotipi definiti, come di
   seguito riportato:
     _________________________________________________________________

3.2.3.1. Indirizzi 6bone di test

Questi sono i primi indirizzi globali che sono stati definiti ed utilizzati.
Iniziano con
3ffe:


   Esempio:
3ffe:ffff:100:f102::1


   Un particolare indirizzo 6bone di test che non sar� mai globalmente
   unico, inizia con
3ffe:ffff:


   ed � generalmente mostrato negli esempi, perch� se venissero mostrati
   indirizzi reali, sarebbe possibile per qualcuno fare un copia &
   incolla sui suoi file di configurazione. In questo modo si potrebbe
   causare inavvertitamente la duplicazione di un indirizzo globalmente
   unico. Ci� potrebbe causare seri problemi all'host originale (per
   esempio potrebbe ricevere pacchetti di risposta per richieste che non
   sono mai state inviate da esso). Tuttavia � possibile richiedere uno
   di questi prefissi, si veda Come far parte del 6bone. Anche alcuni
   tunnel brokers distribuiscono prefissi di indirizzi 6bone di test.
     _________________________________________________________________

3.2.3.2. Indirizzi 6to4

Questi indirizzi, pensati per uno speciale meccanismo di tunneling [RFC 3056
/ Connection of IPv6 Domains via IPv4 Clouds e RFC 2893 / Transition
Mechanisms for IPv6 Hosts and Routers], codificano un dato indirizzo IPv4 ed
una possibile sottorete. Essi iniziano con
2002:


   Per esempio, per rappresentare 192.168.1.1/5:
2002:c0a8:0101:5::1


   Un semplice comando di shell pu� aiutare a generarli a partire da
   indirizzi IPv4:
ipv4="1.2.3.4"; sla="5"; printf "2002:%02x%02x:%02x%02x:%04x::1" `echo $ipv4 |
tr "." " "` $sla


   Si veda anche tunneling con il 6to4 e informazioni sui relay router
   6to4.
     _________________________________________________________________

3.2.3.3. Assegnato dal provider per routing gerarchico

Questi indirizzi sono delegati agli Internet service provider (ISP) ed
iniziano con
2001:


   I prefissi ai maggiori ISP (proprietari di backbone, anche detti LIR)
   sono delegati dai local registries ed attualmente assegnano prefissi
   di lunghezza 35.

   Ogni ISP minore, pu� ottenere un prefisso di lunghezza 48.
     _________________________________________________________________

3.2.3.4. Indirizzi riservati per esempi e documentazione

Attualmente, due intervalli di indirizzi sono riservati per esempi e
documentazione:
3ffe:ffff::/32
2001:0DB8::/32   EXAMPLENET-WF


   Questi intervalli di indirizzi dovrebbero essere filtrati in base agli
   indirizzi di provenienza e possibilmente NON dovrebbero essere
   instradati sui router di confine verso Internet.
     _________________________________________________________________

3.2.4. Indirizzi multicast

Gli indirizzi multicast sono usati per servizi ad essi relativi.

Essi iniziano sempre con (xy � il valore dell'ambito di applicabilit� -
scope)
ffxy:


   Si suddividono in ambiti di applicabilit� (scope) e tipi:
     _________________________________________________________________

3.2.4.1. Multicast scope

L'ambito di applicabilit� multicast (multicast scope) � un parametro che
specifica la distanza massima che pu� percorrere un pacchetto a partire
dall'entit� che lo invia.

Attualmente, vengono definite le seguenti regioni (ambiti di applicabilit�):

     * ffx1: node-local, i pacchetti non lasciano mai il nodo.
     * ffx2: link-local, i pacchetti non sono mai inoltrati dai router,
       in questo modo non lasciano mai il link specificato.
     * ffx5: site-local, i pacchetti non lasciano mai il sito.
     * ffx8: organization-local, i pacchetti non lasciano mai
       l'organizzazione (non cos� facile da implementare, la gestione
       deve essere effettuata dal protocollo di instradamento).
     * ffxe: global scope.
     * gli altri sono riservati.
     _________________________________________________________________

3.2.4.2. Tipi multicast

Ci sono numerosi tipi gi� definiti/riservati (si veda RFC 2373 / IP Version
6 Addressing Architecture per i dettagli). Alcuni esempi sono:

     * Indirizzo di tutti i nodi: ID = 1h, indirizza tutti gli host sul
       nodo locale (ff01:0:0:0:0:0:0:1) o sul link connesso
       (ff02:0:0:0:0:0:0:1).
     * Indirizzo di tutti i router: ID = 2h, indirizza tutti i router sul
       nodo locale (ff01:0:0:0:0:0:0:2), sul link connesso
       (ff02:0:0:0:0:0:0:2), o sul sito locale (ff05:0:0:0:0:0:0:2).
     _________________________________________________________________

3.2.4.3. Indirizzo multicast link-local nodo sollecitato

Speciale indirizzo multicast utilizzato come destinazione nella scoperta del
vicinato, perch� a differenza di IPv4, ARP non esiste pi� in IPv6.

Un esempio di questo indirizzo somiglia a
ff02::1:ff00:1234


   Il prefisso utilizzato mostra che questo � un indirizzo multicast
   link-local. Il suffisso viene generato dall'indirizzo di destinazione.
   In questo esempio, un pacchetto dovrebbe essere inviato all'indirizzo
   "fe80::1234" ma lo stack di rete non conosce l'attuale indirizzo di
   livello 2 (MAC). I 104 bit pi� significativi vengono rimpiazzati con
   "ff02:0:0:0:0:1:ff00::/104" ed i 24 bit meno significativi vengono
   lasciati inalterati. Questo indirizzo viene quindi usato `on-link' per
   trovare il corrispondente nodo che deve inviare una risposta
   contenente il suo indirizzo di livello 2 (MAC).
     _________________________________________________________________

3.2.5. Indirizzi anycast

Gli indirizzi anycast sono indirizzi speciali e vengono utilizzati per
trattare cose come il server DNS pi� vicino, il server DHCP pi� vicino o
simili gruppi dinamici. Questi vengono presi dallo spazio degli indirizzi
unicast (aggregatable global o site-local per il momento). Il meccanismo
anycast (dal punto di vista del client) sar� gestito dai protocolli di
routing dinamici.

Nota: gli indirizzi anycast non possono essere usati come indirizzo del
mittente, ma sono validi soltanto come indirizzi di destinazione.
     _________________________________________________________________

3.2.5.1. Indirizzo anycast subnet-router

Un semplice esempio di un indirizzo anycast � il tipo subnet-router.
Assumendo che un nodo abbia il seguente indirizzo globale IPv6:
3ffe:ffff:100:f101:210:a4ff:fee3:9566/64  <- Indirizzo del nodo


   L'indirizzo anycast subnet-router sar� creato svuotando completamente
   il suffisso (i 64 bit meno significativi):
3ffe:ffff:100:f101::/64  <- indirizzo anycast subnet-router

     _________________________________________________________________

3.3. Tipi di indirizzo (parte host)

Per problemi di configurazione automatica e mobilit� � stato deciso di
usare, nella maggior parte degli attuali tipi, i 64 bit meno significativi
come parte host dell'indirizzo. Quindi ogni singola sottorete pu� possedere
un grande numero di indirizzi.

Questa parte host pu� essere considerata in maniera diversa:
     _________________________________________________________________

3.3.1. Generata automaticamente (anche detta stateless)

Con la configurazione automatica, la parte host dell'indirizzo viene
calcolata convertendo, con il metodo EUI-64, l'indirizzo MAC di un
interfaccia (se disponibile) in un indirizzo IPv6 unico. Se nessun indirizzo
MAC � disponibile per questo dispositivo (come accade ad esempio con le
periferiche virtuali), viene usato qualcos'altro (come l'indirizzo IPv4 o
l'indirizzo MAC di una interfaccia fisica).

Si consideri ancora il primo esempio
3ffe:ffff:100:f101:210:a4ff:fee3:9566


   qui
210:a4ff:fee3:9566


   � la parte host generata a partire dall'indirizzo MAC della scheda di
   rete
00:10:A4:E3:95:66


   utilizzando il Tutorial IEEE EUI-64 sviluppato per gli identificatori
   EUI-48.
     _________________________________________________________________

3.3.1.1. Problemi di Privacy con gli indirizzi generati automaticamente ed
una soluzione

Poich� la parte host viene "calcolata automaticamente" � globalmente unica
(a meno che un produttore di schede di rete usi lo stesso indirizzo MAC per
pi� di una NIC) � possibile effettuare il tracciamento del client quando non
viene utilizzato alcun proxy.

Ci� � un problema noto ed � stata definita una soluzione: la privacy
extension, descritta in RFC 3041 / Privacy Extensions for Stateless Address
Autoconfiguration in IPv6 (c'� anche gi� una nuova bozza disponibile:
draft-ietf-ipngwg-temp-addresses-*.txt). Utilizzando un valore casuale ed
uno statico viene generato di volta in volta un nuovo suffisso. Nota: ci� �
ragionevole soltanto per comunicazioni uscenti da client, ma non � utile nel
caso di server noti.
     _________________________________________________________________

3.3.2. Impostata manualmente

Per i server probabilmente � pi� facile ricordare semplici indirizzi e anche
questo pu� essere agevolato. � possibile assegnare un indirizzo IPv6
addizionale ad un'interfaccia, per esempio
3ffe:ffff:100:f101::1


   Per i suffissi manuali come "::1" mostrato nell'esempio precedente, �
   richiesto che il settimo bit pi� significativo sia impostato a 0 (il
   bit universale/locale degli identificatori generati automaticamente).
   Anche altre combinazioni di bit (altrimenti non scelte) sono riservate
   per indirizzi anycast.
     _________________________________________________________________

3.4. Lunghezze del prefisso per il routing

Nella prima fase della progettazione fu pianificato di usare un approccio al
routing completamente gerarchico per ridurre al massimo la dimensione delle
tabelle di routing. Il motivo di questo approccio fu il numero delle attuali
voci di routing di IPv4 nei router principali (> 104.000 nel Maggio 2001),
riducendo la necessit� di memoria nei router hardware (basati su ASIC
"Application Specified Integrated Circuit") per memorizzare la tabella di
routing ed incrementare la velocit� (un numero di voci inferiore consente
ricerche pi� veloci).

Il punto di vista attuale � che il routing debba essere sviluppato in
maniera gerarchica principalmente per reti con un solo service provider. Con
pi� di un ISP ci� non � possibile e si � soggetti ad una questione chiamata
multi-homing (informazioni sul multi-homing: Procider-Internal Aggregation
based on Geography to Support Multihoming in IPv6; GAPI: A Geographically
Aggregatable Provider Independent Address Space to Support Multihoming in
IPv6; Extension Header for Site-Multi-homing support; IPv6 Multihoming
Solutions).
     _________________________________________________________________

3.4.1. Lunghezze del prefisso ("maschera di rete" - netmask)

Come per IPv4, � il percorso della rete instradabile affinch� il routing
abbia luogo. Poich� la notazione standard per indicare la maschera di rete
con 128 bit non � agevole, i progettisti hanno utilizzato lo schema IPv4
Classless Inter Domain Routing (CIDR, RFC 1519 / Classless Inter-Domain
Routing) che indica il numero di bit dell'indirizzo IP da utilizzare
nelil'instradamento . Tale notazione � anche detta notazione "slash".

Un esempio:
3ffe:ffff:100:1:2:3:4:5/48


   Questa notazione verr� espansa in:

     * Rete:

3ffe:ffff:0100:0000:0000:0000:0000:0000


     * Maschera di rete:

ffff:ffff:ffff:0000:0000:0000:0000:0000

     _________________________________________________________________

3.4.2. Corrispondenza con una route

In circostanze normali (senza QoS) una ricerca in una tabella di
instradamento d� come risultato la route con il numero di bit dell'indirizzo
pi� significativo, cio� viene scelta la prima route che ha la lunghezza del
prefisso pi� grande corrispondente a quella dell'indirizzo di destinazione
considerato.

Per esempio, se una tabella di instradamento mostra le seguenti voci (la
lista non � completa):
3ffe:ffff:100::/48     ::            U  1 0 0 sit1
2000::/3               ::192.88.99.1 UG 1 0 0 tun6to4


   I seguenti indirizzi di destinazione dei pacchetti IPv6 saranno
   instradati attraverso i dispositivi elencati
3ffe:ffff:100:1:2:3:4:5/48  ->  instradato attraverso il dispositivo sit1
3ffe:ffff:200:1:2:3:4:5/48  ->  instradato attraverso il dispositivo tun6to4

     _________________________________________________________________

Capitolo 4. Verificare se il sistema � pronto per IPv6

Prima di poter cominciare a usare IPv6 su di un host Linux, bisogna
verificare se il sistema � pronto per IPv6. Potrebbe essere necessario
effettuare qualche operazione per abilitarlo.
     _________________________________________________________________

4.1. Kernel pronto per IPv6

Le moderne ditribuzioni Linux gi� contengono kernel pronti per IPv6; la
funzionalit� IPv6 � generalmente compilata come modulo ma � possibile che
questo non venga caricato automaticamente all'avvio del sistema.

Si veda la pagina IPv6+Linux-Status-Distribution per le informazioni pi�
aggiornate.

Nota: non si dovrebbero pi� usare i kernel della serie 2.2.x perch� non sono
pi� aggiornati per IPv6.
     _________________________________________________________________

4.1.1. Controllare il supporto IPv6 nel kernel corrente

Per controllare se il kernel corrente supporta IPv6, si dia un occhiata al
proprio filesystem /proc. Deve esistere la seguente voce:
/proc/net/if_inet6


   Un semplice test automatico potrebbe essere:
# test -f /proc/net/if_inet6 && echo "Running kernel is IPv6 ready"


   Se esso fallisce � ovvio che il modulo IPv6 non � stato caricato.
     _________________________________________________________________

4.1.2. Provare a caricare il modulo IPv6

Si pu� provare a caricare il modulo IPv6 eseguendo
# modprobe ipv6


   Se tale comando ha successo, questo modulo dovrebbe essere caricato;
   lo si pu� controllare con il seguente comando:
# lsmod |grep -w 'ipv6' && echo "IPv6 module successfully loaded"


   Il comando precedente dovrebbe quindi funzionare con successo.

   Nota: lo scaricamento del modulo non � attualmente supportato e pu�
   causare, in alcune circostanze, il crash del kernel.
     _________________________________________________________________

4.1.2.1. Caricamento automatico del modulo IPv6

� possibile caricare automaticamente il modulo IPv6 su richiesta. Basta
aggiungere la seguente linea nel file di configurazione del loader dei
moduli del kernel (normalmente /etc/modules.conf o /etc/conf.modules):
alias net-pf-10 ipv6  # carica automaticamente su richiesta il modulo IPv6


   � anche possibile disabilitare il caricamento automatico del modulo
   usando la seguente linea
alias net-pf-10 off   # disabilita il caricamento automatico del modulo IPv6


   Nota addizionale: nei kernel pi� recenti (serie 2.5 e successive), il
   meccanismo del caricatore dei moduli � stato modificato. Il nuovo file
   di configurazione � /etc/modprobe.conf invece di /etc/modules.conf, ma
   � comunque disponibile uno script per la traduzione. Per ulteriori
   dettagli si veda module-init-tool.
     _________________________________________________________________

4.1.3. Compilare il kernel con le funzionalit� IPv6

Se entrambe le operazioni precedenti avessero esito negativo e il kernel
considerato non avesse il supporto IPv6, si hanno le seguenti possibilit�:

     * Aggiornare la propria distribuzione con una versione avente il
       supporto IPv6 incluso (raccomandato per i principianti), si veda
       IPv6+Linux-Status-Distribution
     * Compilare un nuovo kernel "vanilla" (facile, se si conoscono le
       opzioni necessarie)
     * Ricompilare i sorgenti del kernel della propria distribuzione
       Linux (a volte non cos� facile)
     * Compilare un kernel con le estensioni USAGI

   Se si decide di compilare un kernel, si dovrebbero avere precedenti
   esperienze in questa operazione e si dovrebbe leggere il Linux Kernel
   HOWTO.

   Un confronto abbastana aggiornato tra il kernel puro (vanilla) e
   quello con le estensioni USAGI � disponibile su
   IPv6+Linux-Status-Kernel.
     _________________________________________________________________

4.1.3.1. Compilazione di un kernel "vanilla"

Consigli pi� dettagliati sulla compilazione di un kernel con IPv6 possono
essere reperiti, per esempio, su IPv6-HOWTO-2#kernel.

Nota: quando possibile si dovrebbero usare kernel della serie 2.4.x o
superiori, poich� il supporto IPv6, nella serie 2.2.x non � cos� aggiornato
e necessita di alcune patch per ICMPv6 e per il supporto 6to4 (che si
possono trovare su kernel series 2.2.x IPv6 patches).
     _________________________________________________________________

4.1.3.2. Compilazione del kernel con le estensioni USAGI

Come per il kernel vanilla, questa operazione � raccomandata solo agli
utenti esperti che abbiano gi� familiarit� con IPv6 e la compilazione del
kernel. Si veda anche il progetto USAGI / FAQ e Ottenere il miglior supporto
IPv6 con Linux (Articolo) (Mirror).
     _________________________________________________________________

4.1.4. Dispositivi di rete pronti per IPv6

Non tutti i dispositivi di rete esistenti hanno gi� (o avranno mai) la
capacit� di trasportare pacchetti IPv6. Lo stato attuale � reperibile presso
IPv6+Linux-status-kernel.html#transport.

Una questione importante � che a causa della struttura dei livelli di rete
nell'implementazione del kernel, un pacchetto IPv6 non viene effettivamente
riconosciuto dal suo numero di intestazione IP (6 invece di 4) ma piuttosto
dal numero di protocollo di trasporto di livello 2. Pertanto ogni protocollo
di trasporto che non usa tale numero di protocollo, non pu� inviare
pacchetti IPv6. Nota: il pacchetto viene comunque trasportato sul
collegamento, ma dal lato ricevente il recapito non funziona (come si pu�
vedere, per esempio, con tcpdump).
     _________________________________________________________________

4.1.4.1. Collegamenti che non saranno mai "idonei IPv6"

     * Serial Line IP (SLIP, RFC 1055 / SLIP), attualmente dovrebbe
       essere pi� correttamente detto SLIPv4, dispositivo chiamato: slX
     * Parallel Line IP (PLIP), simile a SLIP, nome del dispositivo:
       plipX
     * ISDN con incapsulazione rawip, nome del dispositivo: isdnX
     _________________________________________________________________

4.1.4.2. Collegamenti attualmente conosciuti come "idonei IPv6 ma non
supportati"

     * ISDN con incapsulazione syncppp, nome del dispositivo: ipppX
       (edizione di progetto dell'ipppd, sar� assorbito nel pi� generale
       livello PPP nel kernel serie 2.5.x).
     _________________________________________________________________

4.2. Strumenti di configurazione di rete pronti per IPv6

Anche se si sta usando un kernel con IPv6, non si andr� molto lontano se non
si hanno strumenti per la configurazione. Esistono diversi pacchetti che
possono farlo.
     _________________________________________________________________

4.2.1. Pacchetto net-tools

Il pacchetto net-tools include alcuni strumenti come ifconfig e route, che
permettono di configurare IPv6 su di un interfaccia. Si guardi all'output di
ifconfig -? o route -?, se viene mostrato qualcosa come IPv6 o inet6 allora
il programma � predisposto IPv6.

Il controllo per ifconfig pu� essere effettuato tramite:
# /sbin/ifconfig -? 2>& 1|grep -qw 'inet6' && echo "utility 'ifconfig' is IPv6-
ready"


   Analogamente per route:
# /sbin/route -? 2>& 1|grep -qw 'inet6' && echo "utility 'route' is IPv6-ready"

     _________________________________________________________________

4.2.2. Pacchetto iproute

Alexey N. Kuznetsov (attualmente un manutentore del codice di networking di
Linux) ha creato un set di strumenti che configurano la rete attraverso il
dispositivo netlink. Usando questi strumenti si hanno maggiori funzionalit�
rispetto a quelle fornite da net-tools ma non sono documentati granch� e non
sono indicati per i deboli di cuore.
# /sbin/ip 2>&1 |grep -qw 'inet6' && echo "utility 'ip' is IPv6-ready"


   Se il programma /sbin/ip non viene trovato, si raccomanda caldamente
   di installare iproute.

     * Lo si pu� prendere dalla propria distribuzione Linux (se lo
       contiene)
     * Si pu� scaricare il tar-ball e ricompilarlo: Sorgente originale
       FTP e mirror (mancante)
     * � possibile cercare il pacchetto RPM appropriato presso
       RPMfind/iproute (talvolta � raccomandata la ricompilazione del
       pacchetto SRPMS)
     _________________________________________________________________

4.3. Programmi di test/debug pronti per IPv6

Dopo aver preparato il proprio sistema per IPv6, lo si pu� usare per le
comunicazioni di rete. Prima di tutto si dovrebbe imparare come esaminare i
pacchetti IPv6 con uno sniffer. Ci� � caldamente raccomandato poich� in caso
di problemi pu� aiutare a fornire una diagnosi molto velocemente.
     _________________________________________________________________

4.3.1. Ping IPv6

Questo programma � normalmente incluso nel pacchetto iputils. � progettato
per semplici test di trasporto: esso invia pacchetti echo-request ICMPv6 ed
attende pacchetti echo-replay ICMPv6.

Utilizzo
# ping6 <hostwithipv6address>
# ping6 <ipv6address>
# ping6 [-I <device>] <link-local-ipv6address>


   Esempio
# ping6 -c 1 ::1
PING ::1(::1) from ::1 : 56 data bytes
64 bytes from ::1: icmp_seq=0 hops=64 time=292 usec
--- ::1 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max/mdev = 0.292/0.292/0.292/0.000 ms


   Suggerimento: ping6 ha bisogno dell'accesso raw al socket e quindi dei
   permessi di root. In questo modo se gli utenti (non-root) non possono
   usare ping6 ci possono essere due problemi:

    1. ping6 non � nel path degli utenti (probabilmente perch� ping6 di
       solito si trova in /usr/sbin) -> si aggiunga al path (non molto
       raccomandato)
    2. ping6 non viene eseguito correttamente, generalmente a causa della
       mancanza dei permessi di root -> chmod u+s /usr/sbin/ping6
     _________________________________________________________________

4.3.1.1. Specificare l'interfaccia per il ping IPv6

Usando indirizzi di tipo link-local per un ping IPv6, il kernel non sa
attraverso quale dispositivo (fisico o virtuale) deve inviare il pacchetto -
ogni dispositivo ha un indirizzo di tipo link-local. Il tentativo dar� come
risultato il seguente messaggio di errore:
# ping6 fe80::212:34ff:fe12:3456
connect: Invalid argument


   In questo caso bisogna specificare anche l'interfaccia come mostrato
   qui:
# ping6 -I eth0 -c 1 fe80::2e0:18ff:fe90:9205
PING fe80::212:23ff:fe12:3456(fe80::212:23ff:fe12:3456) from
� fe80::212:34ff:fe12:3478 eth0: 56 data bytes
64 bytes from fe80::212:23ff:fe12:3456: icmp_seq=0 hops=64 time=445 usec
--- fe80::2e0:18ff:fe90:9205 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss round-trip
� min/avg/max/mdev = 0.445/0.445/0.445/0.000 ms

     _________________________________________________________________

4.3.1.2. Ping6 verso indirizzi multicast

Un meccanismo interessante per rilevare host attivi IPv6 su di un link
consiste nell'effettuare ping6 verso l'indirizzo multicast link-local di
tutti i nodi (all-node):
# ping6 -I eth0 ff02::1
PING ff02::1(ff02::1) from fe80:::2ab:cdff:feef:0123 eth0: 56 data bytes
64 bytes from ::1: icmp_seq=1 ttl=64 time=0.104 ms
64 bytes from fe80::212:34ff:fe12:3450: icmp_seq=1 ttl=64 time=0.549 ms (DUP!)


   Diversamente da IPv4, dove le risposte ad un ping verso l'indirizzo di
   broadcast possono essere disabilitate, in IPv6 questa caratteristica
   non pu� essere disabilitata se non per mezzo del firewalling locale
   IPv6.
     _________________________________________________________________

4.3.2. Traceroute IPv6

Questo programma normalmente � incluso nel pacchetto iputils. � simile al
traceroute IPv4. Di seguito � riportato un esempio:
# traceroute6 www.6bone.net
traceroute to 6bone.net (3ffe:b00:c18:1::10) from 3ffe:ffff:0000:f101::2, 30
� hops max, 16 byte packets
 1 localipv6gateway (3ffe:ffff:0000:f101::1) 1.354 ms 1.566 ms 0.407 ms
 2 swi6T1-T0.ipv6.switch.ch (3ffe:2000:0:400::1) 90.431 ms 91.956 ms 92.377 ms
 3 3ffe:2000:0:1::132 (3ffe:2000:0:1::132) 118.945 ms 107.982 ms 114.557 ms
 4 3ffe:c00:8023:2b::2 (3ffe:c00:8023:2b::2) 968.468 ms 993.392 ms 973.441 ms
 5 3ffe:2e00:e:c::3 (3ffe:2e00:e:c::3) 507.784 ms 505.549 ms 508.928 ms
 6 www.6bone.net (3ffe:b00:c18:1::10) 1265.85 ms * 1304.74 ms


   Nota: diversamente da alcune moderne versioni del traceroute IPv4, le
   quali possono utilizzare pacchetti echo-request ICMPv4 come pure
   pacchetti UDP (il default), l'attuale traceroute IPv6 � in grado di
   inviare soltanto pacchetti UDP. Come probabilmente gi� si sapr�, i
   pacchetti echo-request ICMP sono pi� accettati dai firewall o dalle
   ACL sui router rispetto ai pacchetti UDP.
     _________________________________________________________________

4.3.3. Tracepath6

Questo programma normalmente � incluso nel pacchetto iputils. � simile a
traceroute6 e serve a tracciare il percorso per una data destinazione
scoprendo anche il relativo valore di MTU. Di seguito si pu� vedere un
esenpio:
# tracepath6 www.6bone.net
 1?: [LOCALHOST] pmtu 1480
 1: 3ffe:401::2c0:33ff:fe02:14 150.705ms
 2: 3ffe:b00:c18::5 267.864ms
 3: 3ffe:b00:c18::5 asymm 2 266.145ms pmtu 1280
 3: 3ffe:3900:5::2 asymm 4 346.632ms
 4: 3ffe:28ff:ffff:4::3 asymm 5 365.965ms
 5: 3ffe:1cff:0:ee::2 asymm 4 534.704ms
 6: 3ffe:3800::1:1 asymm 4 578.126ms !N
Resume: pmtu 1280

     _________________________________________________________________

4.3.4. Tcpdump IPv6

Su Linux, tcpdump � lo strumento pi� utilizzato per la cattura dei
pacchetti. Di seguito sono riportati alcuni esempi. Il supporto IPv6 �
incluso nelle attuali release della versione 3.6.

tcpdump permette l'utilizzo di espressioni per filtrare i pacchetti,
minimizzando il numero di quelli indesiderati:

     * icmp6: filtra il traffico nativo ICMPv6
     * ip6: filtra il traffico nativo IPv6 (ICMPv6 incluso)
     * proto ipv6: filtra il traffico tunnel IPv6-in-IPv4
     * not port ssh: sopprime la visualizzazione dei pacchetti SSH
       durante l'esecuzione di tcpdump in una sessione SSH remota

   Anche alcune opzioni della linea di comando sono molto utili per
   catturare e visualizzare una maggior quanti� di informazioni relative
   ad un pacchetto, per lo pi� interessanti per scavare a fondo nei
   pacchetti ICMPv6:

     * "-s 512": aumenta la lunghezza della cattura di un pacchetto a 512
       byte
     * "-vv": output veramente verboso
     * "-n": non fa la risoluzione dei nomi (indirizzo->nome), utile se
       la risoluzione DNS inversa non funziona bene
     _________________________________________________________________

4.3.4.1. Ping IPv6 verso l'indirizzo nativo 3ffe:ffff:100:f101::1 su di un
link locale
# tcpdump -t -n -i eth0 -s 512 -vv ip6 or proto ipv6
tcpdump: listening on eth0
3ffe:ffff:100:f101:2e0:18ff:fe90:9205 > 3ffe:ffff:100:f101::1: icmp6: echo
� request (len 64, hlim 64)
3ffe:ffff:100:f101::1 > 3ffe:ffff:100:f101:2e0:18ff:fe90:9205: icmp6: echo
� reply (len 64, hlim 64)

     _________________________________________________________________

4.3.4.2. Ping IPv6 verso 3ffe:ffff:100::1 instradato attraverso un tunnel
IPv6-in-IPv4

1.2.3.4 e 5.6.7.8 sono le estremit� del tunnel (tutti gli indirizzi sono a
puro titolo di esempio)
# tcpdump -t -n -i ppp0 -s 512 -vv ip6 or proto ipv6
tcpdump: listening on ppp0
1.2.3.4 > 5.6.7.8: 2002:ffff:f5f8::1 > 3ffe:ffff:100::1: icmp6: echo request
� (len 64, hlim 64) (DF) (ttl 64, id 0, len 124)
5.6.7.8 > 1.2.3.4: 3ffe:ffff:100::1 > 2002:ffff:f5f8::1: icmp6: echo reply (len
� 64, hlim 61) (ttl 23, id 29887, len 124)
1.2.3.4 > 5.6.7.8: 2002:ffff:f5f8::1 > 3ffe:ffff:100::1: icmp6: echo request
� (len 64, hlim 64) (DF) (ttl 64, id 0, len 124)
5.6.7.8 > 1.2.3.4: 3ffe:ffff:100::1 > 2002:ffff:f5f8::1: icmp6: echo reply (len
� 64, hlim 61) (ttl 23, id 29919, len 124)

     _________________________________________________________________

4.4. Programmi pronti per IPv6

Le attuali distribuzioni gi� contengono i pi� importanti client e server
abilitati per IPv6. Si veda prima di tutto su
IPv6+Linux-Status-Distribution. Si pu� anche vedere IPv6 &Linux - Stato
attuale - Applicazioni per controllare se il programma di interesse � gi�
stato portato a IPv6 ed � utilizzabile con Linux. Per i programmi di uso
comune ci sono alcuni suggerimenti disponibili presso IPv6 &Linux - HowTo -
Part 3 e IPv6 &Linux - HowTo - Part 4.
     _________________________________________________________________

4.5. Programmi client pronti per IPv6 (selezione)

Per far girare i test mostrati di seguito, � necessario che il sistema sia
abilitato per IPv6 ed alcuni esempi mostrano indirizzi che sono
raggiungibili solo se � disponibile una connessione al 6bone.
     _________________________________________________________________

4.5.1. Controllare il DNS per risolvere indirizzi IPv6

A causa di aggiornamenti di sicurezza negli ultimi anni, ogni server Domain
Name System (DNS) deve far girare software pi� recente che � in grado di
gestire l'indirizzamento (intermedio) IPv6 di tipo AAAA (il pi� recente,
chiamato A6 non � ancora di uso comune al momento poich� � supportato solo a
partire da BIND9 o superiori e il supporto del dominio radice IP6.ARPA non
esiste). Un semplice test per vedere se il sistema utilizzato pu� risolvere
indirizzi IPV6 �
# host -t AAAA www.join.uni-muenster.de


   e dovrebbe mostrare qualcosa del tipo:
www.join.uni-muenster.de. is an alias for ns.join.uni-muenster.de.
ns.join.uni-muenster.de. has AAAA address 3ffe:400:10:100:201:2ff:feb5:3806

     _________________________________________________________________

4.5.2. Client telnet pronti per IPv6

Client telnet per IPv6 sono disponibili. Un semplice test pu� essere fatto
con
$ telnet 3ffe:400:100::1 80
Trying 3ffe:400:100::1...
Connected to 3ffe:400:100::1.
Escape character is '^]'.
HEAD / HTTP/1.0
HTTP/1.1 200 OK
Date: Sun, 16 Dec 2001 16:07:21
GMT Server: Apache/2.0.28 (Unix)
Last-Modified: Wed, 01 Aug 2001 21:34:42 GMT
ETag: "3f02-a4d-b1b3e080"
Accept-Ranges: bytes
Content-Length: 2637
Connection: close
Content-Type: text/html; charset=ISO-8859-1
Connection closed by foreign host.


   Se il client non gestisce l'indirizzo IPv6 e visualizza qualcosa del
   tipo "cannot resolve hostname" allora non � abilitato per IPv6.
     _________________________________________________________________

4.5.3. Client ssh per IPv6

4.5.3.1. openssh

Le attuali versioni di openssh sono abilitate per IPv6. A seconda della
configurazione pre-compilazione ci sono due comportamenti.

     * --without-ipv4-default: il client tenta prima automaticamente una
       connessione IPv6 e se non funziona prova con IPv4
     * --with-ipv4-default: la connessione di default � IPv4, la
       connessione IPv6 deve essere forzata come mostra il seguente
       esempio

$ ssh -6 ::1
user@::1's password: ******
[user@ipv6host user]$


   Se il client non accetta l'opzione "-6" allora non � abilitato per
   IPv6, come la maggior parte dei pacchetti ssh versione 1.
     _________________________________________________________________

4.5.3.2. ssh.com

Anche il client e il server SSH di SSH.com sono predisposti per IPv6 e sono
gratutiti per tutte le macchine Linux e FreeBSD indifferentemente per uso
personale o commerciale.
     _________________________________________________________________

4.5.4. Browser web per IPv6

L'attuale stato dei browser web abilitati per IPv6 � reperibile presso
IPv6+Linux-status-apps.html#HTTP.

La maggior parte di questi hanno dei problemi che non sono stati ancora
risolti

    1. Se si usa un proxy impostato soltanto per IPv4, le richieste IPv6
       verranno inviate ma il proxy non riuscir� a comprenderle e quindi
       si avr� un errore. Soluzione: aggiornare il software del proxy (si
       veda pi� avanti).
    2. Le impostazioni automatiche per il proxy (*.pac) non possono
       essere estese per gestire le richieste IPv6 in modo diverso da
       IPv4 (per esempio non usare il proxy) a causa della loro natura
       (sono in Java-script e cablati nel sorgente, come si pu� vedere
       nel codice sorgente di Maxilla).

   Inoltre le vecchie versioni dei browser non sono in grado di
   interpretare le URL codificate con indirizzi IPv6 come
   http://[3ffe:400:100::1]/ (questa URL funziona solo con un browser
   abilitato per IPv6!).

   Un rapido test consiste nel provare l'URL sopra mostrata con il
   browser, senza utilizzare nessun proxy.
     _________________________________________________________________

4.5.4.1. URL per provare

Un buon punto di partenza per navigare con IPv6 � http://www.kame.net/. Se
la tartaruga presente sulla pagina � animata, la connessione avviene tramite
IPv6, altrimenti la tartaruga � immobile.
     _________________________________________________________________

4.6. Programmi server IPv6

In questa parte dell'HOWTO sono menzionati problemi pi� specifici dei
client. Quindi suggerimenti per i server abilitati per IPv6 come sshd,
httpd, telnetd, ecc.. sono mostrati pi� avanti in Suggerimenti per demoni
IPv6.
     _________________________________________________________________

4.7. FAQ (verificare se il sistema � pronto per IPv6)

4.7.1. Utilizzo degli strumenti

4.7.1.1. D: Non riesco a fare ping6 a indirizzi link-local

Messaggio di errore: "connect: Invalid argument"

Il kernel non sa quale link fisico o virtuale si vuole usare per inviare
pacchetti ICMPv6. Qindi viene visualizzato questo messaggio di errore.

Soluzione: Specificare l'interfaccia: "ping6 -I eth0
fe80::2e0:18ff:fe90:9205", si veda anche utilizzo del programma ping6.
     _________________________________________________________________

4.7.1.2. D: Non posso fare ping6 o traceroute6 come utente (non root)

Messaggio di errore: "icmp socket: Operation not permitted"

Questi strumenti creano particolari pacchetti ICMPv6 e li inviano. Ci� viene
fatto utilizzando nel kernel i socket raw, per� questi possono essere
utilizzati solo dall'utente "root". Perci� gli utenti normali ottengono tali
messaggi di errore.

Soluzione: se � effettivamente necessario che tutti gli utenti possano usare
questi strumenti, si pu� aggiungere il bit "suid" per mezzo del comando
"chmod u+s /path/to/program", si veda anche utilizzo del programma ping6. Se
non tutti gli utenti devono utilizzarli, si pu� cambiare il gruppo
proprietario dei programmi, impostandolo per esempio a "wheel". Quindi si
aggiungano gli utenti privilegiati a tale gruppo e si rimuova il bit di
esecuzione per tutti gli altri utenti con il comando "chmod o-rwx
/path/to/program". Oppure si pu� configurare "sudo" per abilitare la propria
policy di sicurezza.
     _________________________________________________________________

Capitolo 5. Configurazione delle interfacce

5.1. I vari dispositivi di rete

Su un nodo ci possono esssere differenti dispositivi di rete, che si possono
raggruppare nlle seguenti classi

     * Fisici, come eth0, tr0
     * Virtuali, come ppp0, tun0, tap0, sit0, isdn0, ippp0
     _________________________________________________________________

5.1.1. Dispositivi fisici

Le interfacce fisiche come Ethernet o Token-Ring sono quelle classiche e non
richiedono trattamenti particolari.
     _________________________________________________________________

5.1.2. Dispositivi virtuali

Le interfacce virtuali hanno sempre bisogno di un particolare supporto.
     _________________________________________________________________

5.1.2.1. Interfacce tunnel IPv6-in-IPv4

Queste interfacce sono normalmente chiamate sitx. Il nome sit �
un'abbreviazione per Simple Internet Transition. Questo tipo di dispositivo
ha la capacit� di incapsulare pacchetti IPv6 all'interno di pacchetti IPv4 e
di inviarli all'estremo opposto di un tunnel.

sit0 ha un significato speciale e non pu� essere usata per tunnel dedicati.
     _________________________________________________________________

5.1.2.2. Interfacce PPP

Le interfacce PPP prendono la loro capacit� IPv6 da un demone PPP abilitato
per IPv6.
     _________________________________________________________________

5.1.2.3. Interfacce ISDN HDLC

La capacit� IPv6 per l'HDLC con incapsulamento IP � gi� inclusa nel kernel.
     _________________________________________________________________

5.1.2.4. Interfacce ISDN PPP

Le interfacce ISDN PPP (ippp) presenti nel kernel, non sono abilitate per
IPv6. Inoltre l'abilitazione non � stata pianificata poich� nel kernel 2.5.+
esse saranno rimpiazzate da un pi� generico livello di interfaccia ppp.
     _________________________________________________________________

5.1.2.5. SLIP + PLIP

Come menzionato precedentemente, queste interfacce non supportano il
trasporto IPv6 (l'invio � OK ma la consegna al destinatario non funziona).
     _________________________________________________________________

5.1.2.6. Dispositivo ether-tap

I dispositivi ether-tap sono abilitati per IPv6 ed inoltre supportano la
configurazione stateless. Per il loro utilizzo � necessario il caricamento
preventivo del modulo "ethertap".
     _________________________________________________________________

5.1.2.7. Dispositivi tun

Non ancora provati personalmente.
     _________________________________________________________________

5.1.2.8. ATM

01/2002: Non sono attualmente supportati dai kernel vanilla, ma soltanto
dalle estensioni USAGI.
     _________________________________________________________________

5.1.2.9. Altre

Ho per caso dimenticato qualche interfaccia?...
     _________________________________________________________________

5.2. Attivazione/disattivazione delle interfacce

Possono essere usati due metodi per attivare/disattivare le interfacce.
     _________________________________________________________________

5.2.1. Uso di "ip"

Utilizzo:
# ip link set dev <interface> up
# ip link set dev <interface> down


   Esempio:
# ip link set dev eth0 up
# ip link set dev eth0 down

     _________________________________________________________________

5.2.2. Uso di "ifconfig"

Utilizzo:
# /sbin/ifconfig <interface> up
# /sbin/ifconfig <interface> down


   Esempio:
# /sbin/ifconfig eth0 up
# /sbin/ifconfig eth0 down

     _________________________________________________________________

Capitolo 6. Configurazione degli indirizzi IPv6

Esistono vari modi per configurare un indirizzo IPv6 su di un'interfaccia.
Si pu� usare "ifconfig" o "ip".
     _________________________________________________________________

6.1. Visualizzare gli indirizzi IPv6 esistenti

Prima di tutto si deve controllare se e quali indirizzi IPv6 sono gi�
configurati (forse automaticamente durante una configurazione automatica
stateless).
     _________________________________________________________________

6.1.1. Uso di "ip"

Utilizzo:
# /sbin/ip -6 addr show dev <interface>


   Esempio per un host con configurazione statica:
# /sbin/ip -6 addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP&gt; mtu 1500 qdisc pfifo_ fast qlen 100
inet6 fe80::210:a4ff:fee3:9566/10 scope link
inet6 3ffe:ffff:0:f101::1/64 scope global
inet6 fec0:0:0:f101::1/64 scope site


   Esempio per un host autoconfigurato

   di seguito sono riportati alcuni indirizzi IPv6 configurati
   automaticamente ed il loro tempo di vita.
# /sbin/ip -6 addr show dev eth0
3: eth0: <BROADCAST,MULTICAST,PROMISC,UP&gt; mtu 1500 qdisc pfifo_fast qlen
� 100
inet6 2002:d950:f5f8:f101:2e0:18ff:fe90:9205/64 scope global dynamic
valid_lft 16sec preferred_lft 6sec
inet6 3ffe:400:100:f101:2e0:18ff:fe90:9205/64 scope global dynamic
valid_lft 2591997sec preferred_lft 604797sec inet6 fe80::2e0:18ff:fe90:9205/10
� scope link

     _________________________________________________________________

6.1.2. Uso di "ifconfig"

Utilizzo:
# /sbin/ifconfig <interface>


   Esempio (l'output � stato filtrato con grep per mostrare solo gli
   indirizzi IPv6). Qui si possono vedere differenti indirizzi IPv6 con
   differenti scope.
# /sbin/ifconfig eth0 |grep "inet6 addr:"
inet6 addr: fe80::210:a4ff:fee3:9566/10 Scope:Link
inet6 addr: 3ffe:ffff:0:f101::1/64 Scope:Global
inet6 addr: fec0:0:0:f101::1/64 Scope:Site

     _________________________________________________________________

6.2. Aggiungere un indirizzo IPv6

L'aggiunta di un indirizzo IPv6 � simile al meccanismo degli indirizzi "IP
ALIAS" nelle interfacce Linux IPv4.
     _________________________________________________________________

6.2.1. Uso di "ip"

Utilizzo:
# /sbin/ip -6 addr add <ipv6address>/<prefixlength> dev <interface>


   Esempio:
# /sbin/ip -6 addr add 3ffe:ffff:0:f101::1/64 dev eth0

     _________________________________________________________________

6.2.2. Uso di "ifconfig"

Utilizzo:
# /sbin/ifconfig <interface> inet6 add <ipv6address>/<prefixlength>


   Esempio:
# /sbin/ifconfig eth0 inet6 add 3ffe:ffff:0:f101::1/64

     _________________________________________________________________

6.3. Rimuovere un indirizzo IPv6

Spesso non � necessario. Si faccia attenzione con la rimozione di indirizzi
IPv6 non esistenti: a volte, usando vecchi kernel, pu� risultarne un crash.
     _________________________________________________________________

6.3.1. Uso di "ip"

Utilizzo:
# /sbin/ip -6 addr del <ipv6address>/<prefixlength> dev <interface>


   Esempio:
# /sbin/ip -6 addr del 3ffe:ffff:0:f101::1/64 dev eth0

     _________________________________________________________________

6.3.2. Uso di "ifconfig"

Utilizzo:
# /sbin/ifconfig <interface> inet6 del <ipv6address>/<prefixlength>


   Esempio:
# /sbin/ifconfig eth0 inet6 del 3ffe:ffff:0:f101::1/64

     _________________________________________________________________

Capitolo 7. Configurazione di instradamenti IPv6 standard

Se si vuole lasciare il proprio link ed inviare pacchetti nel vasto mondo di
Internet IPv6, si ha bisogno dell'instradamento (routing). Se c'� gi� un
router abilitato per IPv6 sul proprio link, � possibile aggiungere
instradamenti IPv6.
     _________________________________________________________________

7.1. Visualizzare gli instradamenti IPv6 esistenti

Per prima cosa bisogna controllare quali e quanti indirizzi IPv6 sono gi�
configurati (forse automaticamente durante la configurazione automatica).
     _________________________________________________________________

7.1.1. Uso di "ip"

Utilizzo:
# /sbin/ip -6 route show [dev <device>]


   Esempio:
# /sbin/ip -6 route show dev eth0
3ffe:ffff:0:f101::/64 proto kernel metric 256 mtu 1500 advmss 1440
fe80::/10             proto kernel metric 256 mtu 1500 advmss 1440
ff00::/8              proto kernel metric 256 mtu 1500 advmss 1440
default               proto kernel metric 256 mtu 1500 advmss 1440

     _________________________________________________________________

7.1.2. Uso di "route"

Utilizzo:
# /sbin/route -A inet6


   Esempio (l'otput � filtrato per l'interfaccia eth0). Qui si possono
   vedere differenti instradamenti IPv6 per i vari indirizzi su di una
   singola interfaccia.
# /sbin/route -A inet6 |grep -w "eth0"
3ffe:ffff:0:f101 ::/64 :: UA  256 0 0 eth0 <- Instradamento di interfaccia glob
al
� address
fe80::/10        ::       UA  256 0 0 eth0 <- Instradamento di interfaccia link
-local
� address
ff00::/8         ::       UA  256 0 0 eth0 <- Instradamento di interfaccia all
multicast
� addresses
::/0             ::       UDA 256 0 0 eth0 <- Instradamento automatico di defau
lt

     _________________________________________________________________

7.2. Aggiungere un instradamento IPv6 attraverso un gateway

Per lo pi� necessario per raggiungere l'esterno utilizzando un router
abilitato IPv6 sul proprio link.
     _________________________________________________________________

7.2.1. Uso di "ip"

Utilizzo:
# /sbin/ip -6 route add <ipv6network>/<prefixlength> via <ipv6address>
� [dev <device>]


   Esempio:
# /sbin/ip -6 route add 2000::/3 via 3ffe:ffff:0:f101::1

     _________________________________________________________________

7.2.2. Uso di "route"

Utilizzo:
# /sbin/route -A inet6 add <ipv6network>/<prefixlength> gw
� <ipv6address> [dev <device>]


   Se l'indirizzo IPv6 � di tipo link-local pu� essere necessario
   specificare anche il dispositivo.

   L'esempio seguente mostra l'aggiunta di un instradamento per tutti gli
   indirizzi globali (2000::/3) attraverso il gateway 3ffe:ffff:0:f101::1
# /sbin/route -A inet6 add 2000::/3 gw 3ffe:ffff:0:f101::1

     _________________________________________________________________

7.3. Rimuovere un instradamento IPv6 attraverso un gateway

Non capita spesso di farlo manualmente, la maggior parte delle volte viene
fatto tramite script di configurazione in fase di arresto (del sistema o
dell'interfaccia).
     _________________________________________________________________

7.3.1. Uso di "ip"

Utilizzo:
# /sbin/ip -6 route del <ipv6network>/<prefixlength> via <ipv6address>
� [dev <device>]


   Esempio:
# /sbin/ip -6 route del 2000::/3 via 3ffe:ffff:0:f101::1

     _________________________________________________________________

7.3.2. Uso di "route"

Utilizzo:
# /sbin/route -A inet6 del <network>/<prefixlength> [dev <device>]


   Esempio per rimuovere l'instradamento precedentemente aggiunto:
# /sbin/route -A inet6 del 2000::/3 gw 3ffe:ffff:0:f101::1

     _________________________________________________________________

7.4. Aggiungere un instradamento IPv6 attraverso un'interfaccia

Molto spesso non � necessario. Talvolta pu� esserlo in caso di link
punto-punto dedicati.
     _________________________________________________________________

7.4.1. Uso di "ip"

Utilizzo:
# /sbin/ip -6 route add <ipv6network>/<prefixlength> dev <device>
� metric 1


   Esempio:
# /sbin/ip -6 route add 2000::/3 dev eth0 metric 1


   La metrica "1" � utilizzata per compatibilit� con la metrica usata dal
   router, poich� la metrica di default, utilizzando "ip", � "1024".
     _________________________________________________________________

7.4.2. Uso di "route"

Utilizzo:
# /sbin/route -A inet6 add <network>/<prefixlength> dev <device>


   Esempio:
# /sbin/route -A inet6 add 2000::/3 dev eth0

     _________________________________________________________________

7.5. Rimuovere un instradamento IPv6 attraverso un'interfaccia

Molto spesso non � necessario effettuare tale operazione manualmente. �
utilizzata negli script di configurazione in fase di shutdown.
     _________________________________________________________________

7.5.1. Uso di "ip"

Utilizzo:
# /sbin/ip -6 route del <ipv6network>/<prefixlength> dev <device>


   Esempio:
# /sbin/ip -6 route del 2000::/3 dev eth0

     _________________________________________________________________

7.5.2. Uso di "route"

Utilizzo:
# /sbin/route -A inet6 del <network>/<prefixlength> dev <device>


   Esempio:
# /sbin/route -A inet6 del 2000::/3 dev eth0

     _________________________________________________________________

7.6. FAQ per gli instradamenti IPv6

7.6.1. Supporto di un instradamento IPv6 di default

Un'idea di base di IPv6 � stato l'instradamento gerarchico, per cui c'�
bisogno di meno voci di instradamento nei router.

Esistono alcuni problemi nei kernel Linux attuali:
     _________________________________________________________________

7.6.1.1. Client (non viene instradato nessun pacchetto!)

Il client pu� configurare un instradamento di default come il prefisso
"::/0", pu� anche acquisire tale instradamento tramite la configurazione
automatica, per esempio utilizzando radvd sul link come mostra il seguente
esempio:
# ip -6 route show | grep ^default
default via fe80::212:34ff:fe12:3450 dev eth0 proto kernel metric 1024 expires
� 29sec mtu 1500 advmss 1440

     _________________________________________________________________

7.6.1.2. I router nel caso di inoltro di pacchetti

I convenzionali kernel Linux (almeno <= 2.4.17) non supportano gli
instradamenti di default. Lo si pu� impostare, ma la ricerca
dell'instradamento fallisce nel momento in cui il pacchetto dovrebbe essere
inoltrato (normale funzionamento di un router).

Perci�, al momento, il "default routing" pu� essere configurato soltanto
utilizzando l'attuale prefisso global address "2000::/3".

Il progetto USAGI gi�, per mezzo di un particolare accorgimento, � in grado
di supportarlo nelle sue estensioni.

Nota: sui router di confine si abbia cura di configurare il default routing
senza il filtraggio degli indirizzi, altrimenti il traffico multicast o
site-local non desiderato potrebbe venire inoltrato.
     _________________________________________________________________

Capitolo 8. Scoperta del vicinato (Neighbor Discovery)

La scoperta del vicinato � il successore IPv6 dell'ARP (Address Resolution
Protocol) di IPv4. Si possono recuperare informazioni sull'attuale vicinato
ed in pi� si possono creare e cancellare voci. Il kernel tiene traccia dei
vicini scoperti con successo (come l'ARP in IPv4). Si pu� indagare
all'interno della tabella relativa ai vicini scoperti utilizzando "ip".
     _________________________________________________________________

8.1. Visualizzare i vicini usando "ip"

Con il seguente comando si possono visualizzare i vicini IPv6 memorizzati
nell'apposita tabella (scoperti o impostati manualmente)
# ip -6 neigh show [dev <device>]


   Il seguente esempio mostra un vicino, costituito da un router
   raggiungibile
# ip -6 neigh show
fe80::201:23ff:fe45:6789 dev eth0 lladdr 00:01:23:45:67:89 router nud reachable

     _________________________________________________________________

8.2. Manipolare la tabella relativa ai vicini utilizzando "ip"

8.2.1. Aggiungere una voce manualmente

Con il seguente comando si pu� aggiungere manualmente una voce:
# ip -6 neigh add <IPv6 address> lladdr <link-layer address> dev <device>


   Esempio:
# ip -6 neigh add fec0::1 lladdr 02:01:02:03:04:05 dev eth0

     _________________________________________________________________

8.2.2. Cancellare una voce manualmente

Come si aggiunge, una voce si pu� anche cancellare:
# ip -6 neigh del <IPv6 address> lladdr <link-layer address> dev <device>


   Esempio:
# ip -6 neigh del fec0::1 lladdr 02:01:02:03:04:05 dev eth0

     _________________________________________________________________

8.2.3. Configurazioni pi� avanzate

Lo strumento "ip" � poco documentato, ma molto potente. Si veda l'"help" on
line per maggiori dettagli:
# ip -6 neigh help
Usage: ip neigh { add | del | change | replace } { ADDR [ lladdr LLADDR ]
          [ nud { permanent | noarp | stale | reachable } ]
          | proxy ADDR } [ dev DEV ]
       ip neigh {show|flush} [ to PREFIX ] [ dev DEV ] [ nud STATE ]


   Sembra che alcune opzioni siano solo per IPv4... se potete contribuire
   con informazioni sui flag e l'uso avanzato, siete pregati di
   inviarmele.
     _________________________________________________________________

Capitolo 9. Configurare tunnel IPv6-in-IPv4

Se si vuole uscire dal proprio link e non si hanno reti IPv6 nei dintorni,
si necessita del tunneling IPv6-in-IPv4 per raggiungere l'intero mondo
Internet-IPv6.

Ci sono alcuni tipi di meccanismi di tunnel ed alcune possibilit� per
configurarli.
     _________________________________________________________________

9.1. Tipi di tunnel

Esiste pi� di una possibilit� per inviare pacchetti IPv6 su link IPv4.
     _________________________________________________________________

9.1.1. Tunneling statico punto-punto: 6bone

Questo � un tipo di tunnel dedicato verso un estremo esterno, il quale � a
conoscenza della vostra rete IPv6 (per l'instradamento di ritorno) e
dell'indirizzo IPv4 del vostro estremo del tunnel come definito in RFC 2893
/ Transition Mechanisms for IPv6 Hosts and Routers. Requisiti:

     * L'indirizzo IPv4 del proprio estremo del tunnel deve essere
       statico, globalmente unico (pubblico) e raggiungibile dall'altro
       estremo (esterno) del tunnel
     * Si deve avere un prefisso globale IPv6 assegnato (si veda il 6bone
       registry)
     * L'estremo esterno di un tunnel deve essere in grado di instradare
       il vostro prefisso IPv6 al vostro estremo del tunnel (il pi� delle
       volte � richiesta una configurazione manuale sull'estremo esterno)
     _________________________________________________________________

9.1.2. Tunneling automatico

Il tunneling automatico avviene quando un nodo si connette direttamente ad
un altro nodo dopo averne prima ottenuto il relativo indirizzo IPv4.
     _________________________________________________________________

9.1.3. Tunneling 6to4

Il tunneling 6to4 (RFC 3056 / Connection of IPv6 Domains via IPv4 Clouds)
utilizza un semplice meccanismo per creare un tunnel in maniera automatica.
Ogni nodo con un indirizzo IPv4 globalmente unico, pu� essere un estremo di
un tunnel 6to4 (se nessu firewall IPv4 ne vieta il traffico). Il tunneling
6to4 non � generalmente uno-a-uno. Questo caso di tunneling pu� essere
suddiviso in upstream e downstream. Inoltre, uno speciale indirizzo IPv6
indica che il nodo in questione utilizza il tunneling 6to4 per connettersi
alla rete IPv6 pubblica.
     _________________________________________________________________

9.1.3.1. Generazione di un prefisso 6to4

L'indirizzo 6to4 viene definito dal seguente schema (preso da RFC 3056 /
Connection of IPv6 Domains via IPv4 Clouds):
|   3+13   |    32     |    16  |            64 bits             |
+---+------+-----------+--------+--------------------------------+
|  FP+TLA  |  V4ADDR   | SLA ID |           Interface ID         |
|  0x2002  |           |        |                                |
+---+------+-----------+--------+--------------------------------+


   Il campo formato da FP e TLA (16 bit) ha il valore 0x2002. V4ADDR �
   l'indirizzo IPv4 globalmente unico del nodo (in notazione
   esadecimale). SLA ID � l'identificatore della sottorete (65536
   sottoreti locali possibili) ed � utilizzabile per rappresentare la
   propria struttura di rete locale.

   Per i gateway questo prefisso viene generato normalmente usando uno
   SLA ID "0000" ed il suffisso "::1" (non � un obbligo, pu� essere anche
   di tipo arbitrario con ambito di applicazione locale) quindi
   l'indirizzo viene assegnato all'interfaccia del tunnel 6to4. Da notare
   che Microsoft Windows utilizza anche V4ADDR per il suffisso.
     _________________________________________________________________

9.1.3.2. Tunneling upstream 6to4

Il nodo deve sapere a quale estremo esterno del tunnel devono essere inviati
i suoi pacchetti IPv6 incapsulati in IPv4. Nei "primi" giorni del tunneling
6to4, vennero definiti dei router dedicati in grado di accettare upstream,
si veda informazioni 6to4 di NSayer per un elenco dei router.

Oggigiorno, i router upstream possono essere trovati automaticamente,
utilizzando l'indirizzo anycast 192.88.99.1. Dietro le quinte, i protocolli
di routing sono in grado di gestire tale meccanismo, si veda RFC 3068 / An
Anycast Prefix for 6to4 Relay Routers per i dettagli.
     _________________________________________________________________

9.1.3.3. Tunneling downstream 6to4

Il downstream (da 6bone -> il proprio nodo abilitato 6to4) non � esattamente
fissato e pu� variare dipendentemente dall'host esterno al quale i pacchetti
vengono inviati. Esistono due possibilit�:

     * L'host esterno usa il 6to4 e rispedisce indietro i pacchetti
       direttamente al vostro nodo (si veda in basso)
     * L'host esterno rispedisce indietro i pacchetti verso la rete
       pubblica IPv6 dipendentemente dall'instradamento dinamico, un
       relay router crea un tunnel automatico verso il vostro nodo.
     _________________________________________________________________

9.1.3.4. Possibile traffico 6to4

     * da 6to4 a 6to4: � di solito in un tunnel diretto tra i due host
       abilitati al 6to4
     * da 6to4 ad un non 6to4: � inviato tramite tunneling upstream
     * da non 6to4 a 6to4: � inviato tramite tunneling downstream
     _________________________________________________________________

9.2. Visualizzare i tunnel esistenti

9.2.1. Uso di "ip"

Utilizzo:
# /sbin/ip -6 tunnel show [<device>]


   Esempio:
# /sbin/ip -6 tunnel show
sit0: ipv6/ip remote any local any ttl 64 nopmtudisc
sit1: ipv6/ip remote 195.226.187.50 local any ttl 64

     _________________________________________________________________

9.2.2. Uso di "route"

Utilizzo:
# /sbin/route -A inet6


   Esempio (l'output � stato filtrato per mostrare solo i tunnel
   attraverso l'interfaccia virtuale sit0):
# /sbin/route -A inet6 | grep "\Wsit0\W*$"
::/96      ::               U   256  2  0  sit0
2002::/16  ::               UA  256  0  0  sit0
2000::/3   ::193.113.58.75  UG    1  0  0  sit0
fe80::/10  ::               UA  256  0  0  sit0
ff00::/8   ::               UA  256  0  0  sit0

     _________________________________________________________________

9.3. Configurazione di un tunnel punto-punto

Ci sono 3 possibilit� per aggiungere o rimuovere un tunnel punto-punto.

Una buona fonte di informazioni aggiuntive sulla configurazione di tunnel
con "ip" � Configurare i tunnel con iproute2 (articolo) (Mirror).
     _________________________________________________________________

9.3.1. Aggiungere un tunnel punto-punto

9.3.1.1. Uso di "ip"

Un metodo comune, attualmente utilizzato per minime quantit� di tunnel.

Utilizzo per creare un device tunnel (deve essere specificato anche un TTL
poich� il valore di default � 0).
# /sbin/ip tunnel add <device> mode sit ttl <ttldefault> remote
� <ipv4addressofforeigntunnel> local <ipv4addresslocal>


   Utilizzo (esempio generico per tre tunnel):
# /sbin/ip tunnel add sit1 mode sit ttl <ttldefault> remote
� <ipv4addressofforeigntunnel1> local <ipv4addresslocal>
# /sbin/ip link set dev sit1 up
# /sbin/ip -6 route add <prefixtoroute1> dev sit1 metric 1
# /sbin/ip tunnel add sit2 mode sit ttl <ttldefault>
� <ipv4addressofforeigntunnel2> local <ipv4addresslocal>
# /sbin/ip link set dev sit2 up
# /sbin/ip -6 route add <prefixtoroute2> dev sit2 metric 1
# /sbin/ip tunnel add sit3 mode sit ttl <ttldefault>
� <ipv4addressofforeigntunnel3> local <ipv4addresslocal>
# /sbin/ip link set dev sit3 up
# /sbin/ip -6 route add <prefixtoroute3> dev sit3 metric 1

     _________________________________________________________________

9.3.1.2. Uso di "ifconfig" e "route" (disapprovato)

Questo non � un sistema molto raccomandato per aggiungere un tunnel, poich�
� un po' strano. Nessun problema se se ne aggiunge soltanto uno, ma
volendone configurare pi� di uno, � piuttosto difficile chiudere il primo
lasciando funzionare gli altri.

Utilizzo (esempio generico per tre tunnel):
# /sbin/ifconfig sit0 up
# /sbin/ifconfig sit0 tunnel <ipv4addressofforeigntunnel1>
# /sbin/ifconfig sit1 up
# /sbin/route -A inet6 add <prefixtoroute1> dev sit1
# /sbin/ifconfig sit0 tunnel <ipv4addressofforeigntunnel2>
# /sbin/ifconfig sit2 up
# /sbin/route -A inet6 add <prefixtoroute2> dev sit2
# /sbin/ifconfig sit0 tunnel <ipv4addressofforeigntunnel3>
# /sbin/ifconfig sit3 up
# /sbin/route -A inet6 add <prefixtoroute3> dev sit3


   Importante: NON USARE QUESTO SISTEMA, poich� questa configurazione
   abilita implicitamente il "tunneling automatico" da qualunque macchina
   collegata ad Internet, ci� rappresenta un rischio, e non dovrebbe
   essere permesso.
     _________________________________________________________________

9.3.1.3. Uso del solo "route"

� anche possibile configurare tunnel con lo stile Non Broadcast Multiple
Access (NBMA), un modo facile per aggiungere pi� tunnel contemporaneamente,
ma nessuno dei tunnel pu� essere numerato (caratteristica non richiesta).

Utilizzo (esempio generico per tre tunnel):
# /sbin/ifconfig sit0 up
# /sbin/route -A inet6 add <prefixtoroute1> gw
� ::<ipv4addressofforeigntunnel1> dev sit0
# /sbin/route -A inet6 add <prefixtoroute2> gw
� ::<ipv4addressofforeigntunnel2> dev sit0
# /sbin/route -A inet6 add <prefixtoroute3> gw
� ::<ipv4addressofforeigntunnel3> dev sit0


   Importante: NON USARE QUESTO SISTEMA, poich� questa configurazione
   abilita implicitamente il "tunneling automatico" da qualunque macchina
   connessa ad Internet, ci� rappresenta un rischio, e non dovrebbe
   essere permesso.
     _________________________________________________________________

9.3.2. Rimozione di tunnel punto-punto

Generalmente non � cos� necessario farlo manualmente, ma viene utilizzato
negli script per lo shutdown pulito o il restart della configurazione IPv6.
     _________________________________________________________________

9.3.2.1. Uso di "ip"

Utilizzo per la rimozione di un device tunnel:
# /sbin/ip tunnel del <device>


   Utilizzo (esempio generico per tre tunnel):
# /sbin/ip -6 route del <prefixtoroute1> dev sit1
# /sbin/ip link set sit1 down
# /sbin/ip tunnel del sit1
# /sbin/ip -6 route del <prefixtoroute2> dev sit2
# /sbin/ip link set sit2 down
# /sbin/ip tunnel del sit2
# /sbin/ip -6 route del <prefixtoroute3> dev sit3
# /sbin/ip link set sit3 down
# /sbin/ip tunnel del sit3

     _________________________________________________________________

9.3.2.2. Uso di "ifconfig" e "route" (disapprovato poich� non molto
simpatico)

Non solo � strana la creazione ma anche lo shutdown... bisogna rimuovere i
tunnel in ordine inverso, cio� l'ultimo creato v� rimosso per primo.

Utilizzo (esempio generico per 3 tunnel):
# /sbin/route -A inet6 del <prefixtoroute3> dev sit3
# /sbin/ifconfig sit3 down
# /sbin/route -A inet6 del <prefixtoroute2> dev sit2
# /sbin/ifconfig sit2 down
# /sbin/route -A inet6 del <prefixtoroute1> dev sit1
# /sbin/ifconfig sit1 down
# /sbin/ifconfig sit0 down

     _________________________________________________________________

9.3.2.3. Uso di "route"

� come la normale rimozione di instradamenti IPv6.

Utilizzo (esempio generico per tre tunnel):
# /sbin/route -A inet6 del <prefixtoroute1> gw
� ::<ipv4addressofforeigntunnel1> dev sit0
# /sbin/route -A inet6 del <prefixtoroute2> gw
� ::<ipv4addressofforeigntunnel2> dev sit0
# /sbin/route -A inet6 del <prefixtoroute3> gw
� ::<ipv4addressofforeigntunnel3> dev sit0
# /sbin/ifconfig sit0 down

     _________________________________________________________________

9.3.3. Tunnel punto-punto numerati

A volte si rende necessario configurare un tunnel punto-punto con indirizzi
IPv6 come si fa attualmente in IPv4. Ci� � possibile soltanto con il primo
metodo di configurazione del tunnel (ifconfig+route - disapprovato) e con il
terzo (ip+route). In questi casi si pu� aggiungere l'indirizzo IPv6
all'interfaccia del tunnel, come mostrato nella configurazione
dell'interfaccia.
     _________________________________________________________________

9.4. Configurazione di tunnel 6to4

Si faccia attenzione al fatto che il supporto per i tunnel 6to4 non �
presente sui kernel vanilla della serie 2.2.x (si veda Controllo del
sistema/kernel per maggiori informazioni). Si noti anche che la lunghezza
del prefisso per un indirizzo 6to4 � 16 poich� da un punto di vista della
rete, tutti gli host abilitati 6to4 sono sullo stesso livello 2.
     _________________________________________________________________

9.4.1. Aggiugere un tunnel 6to4

Prima di tutto si deve calcolare il proprio prefisso 6to4, usando il proprio
indirizzo locale IPv4 instradabile (pubblico) (se l'host non ha questo
indirizzo IPv4 pubblico, in casi speciali � possibile fare il NAT sui
gateway di confine):

Assumendo che il proprio indirizzo IPv4 sia
1.2.3.4


   il prefisso 6to4 generato sar�
2002:0102:0304::


   I gateway 6to4 locali dovrebbero sempre avere il suffisso "::1",
   perci� il proprio indirizzo locale 6to4 sar�
2002:0102:0304::1


   Si usi per esempio il seguente comando per la generazione automatica:
ipv4="1.2.3.4"; printf "2002:%02x%02x:%02x%02x::1" `echo $ipv4 | tr "." " "`


   Attualmente ci sono due modi per configurare un tunneling 6to4.
     _________________________________________________________________

9.4.1.1. Uso di "ip" e di un dispositivo tunnel dedicato

Questo � attualmente il modo raccomandato (deve essere specificato un TTL
poich� il valore di default � 0).

Creare un nuovo dispositivo tunnel
# /sbin/ip tunnel add tun6to4 mode sit ttl <ttldefault> remote any local <local
ipv4address>


   Attivare l'interfaccia
# /sbin/ip link set dev tun6to4 up


   Aggiungere un indirizzo locale 6to4 all'interfaccia (nota: �
   importante la lunghezza 16 del prefisso!)
# /sbin/ip -6 addr add <local6to4address>/16 dev tun6to4


   Aggiungere un instradamento (di default) alla rete IPv6 globale
   utilizzando gli indirizzi anycast IPv4 all-6to4-routers
# /sbin/ip -6 route add 2000::/3 via ::192.88.99.1 dev tun6to4 metric 1


   � stato segnalato che alcune versioni di "ip" (per es. SuSE Linux 9.0)
   non supportano come gateway indirizzi IPv6 compatibili IPv4, in questo
   caso deve essere usato il relativo indirizzo IPv6:
# /sbin/ip -6 route add 2000::/3 via 2002:c058:6301::1 dev tun6to4 metric 1

     _________________________________________________________________

9.4.1.2. Uso di "ifconfig" e "route" e di un generico dispositivo tunnel
"sit0" (disapprovato)

Questo � disapprovato poich� l'uso del dispositivo tunnel generico sit0 non
permette di specificare il filtraggio per dispositivo.

Attivare l'interfaccia generica tunnel sit0
# /sbin/ifconfig sit0 up


   Aggiungere l'indirizzo locale 6to4 all'interfaccia
# /sbin/ifconfig sit0 add <local6to4address>/16


   Aggiungere l'instradamento (di default) alla rete IPv6 globale
   utilizzando l'indirizzo IPv4 anycast all-6to4-relays
# /sbin/route -A inet6 add 2000::/3 gw ::192.88.99.1 dev sit0

     _________________________________________________________________

9.4.2. Rimuovere un tunnel 6to4

9.4.2.1. Uso di "ip" e di un dispositivo tunnel dedicato

Rimuovere tutti gli instradamenti attraverso questo dispositivo tunnel
dedicato
# /sbin/ip -6 route flush dev tun6to4


   Disabilitare l'interfaccia
# /sbin/ip link set dev tun6to4 down


   Rimuovere il dispositivo tunnel creato
# /sbin/ip tunnel del tun6to4

     _________________________________________________________________

9.4.2.2. Uso di "ifconfig" e "route" ed un dispositivo tunnel generico
"sit0" (disapprovato)

Rimuovere l'instradamento (di default) attraverso l'interfaccia del tunnel
6to4
# /sbin/route -A inet6 del 2000::/3 gw ::192.88.99.1 dev sit0


   Rimuovere l'indirizzo locale 6to4 dall'interfaccia
# /sbin/ifconfig sit0 del <local6to4address>/16


   Disabilitare il dispositivo tunnel generico (si faccia attenzione a
   questo, potrebbe essere ancora in uso...)
# /sbin/ifconfig sit0 down

     _________________________________________________________________

Capitolo 10. Configurare tunnel IPv4-in-IPv6

Sar� riempito in futuro. Per il momento, questi tunnel sono principalmente
usati in ambienti di test ma sembra che attualmente manchi il supporto per
Linux (03/2004).

Nel frattempo per maggiori informazioni: RFC 2473 / Generic Packet Tunneling
in IPv6 Specification.
     _________________________________________________________________

Capitolo 11. Impostazioni del kernel nel filesystem /proc

Nota: l'origine di questa sezione � essenzialmente il file "ip-sysctl.txt"
che � incluso negli attuali sorgenti del kernel nella directory
"Documentation/networking". Ringraziamenti a Pekka Savola per il
mantenimento della parte relativa a IPv6 in questo file. Inoltre � stato
fatto un parziale copia &incolla del testo in questo documento.
     _________________________________________________________________

11.1. Come accedere al filesystem /proc

11.1.1. Uso di "cat" e "echo"

L'utilizzo di "cat" e "echo" � il modo pi� semplice per accedere al
filesystem /proc, sono richiesti per� anche alcuni requisiti

     * Il filesystem /proc deve essere abilitato nel kernel, significa
       cio� che durante la compilazione deve essere selezionata la
       seguente opzione

CONFIG_PROC_FS=y


     * Il filesistem /proc deve essere prima montato e ci� pu� essere
       verificato utilizzando

# mount | grep "type proc"
none on /proc type proc (rw)


     * Si necessita del permesso di lettura ed a volte anche di scrittura
       (di solito solo root) al filesystem /proc

   Di solito, solo le voci in /proc/sys/* sono scrivibili, le altre sono
   in lettura e servono solo per il recupero di informazioni.
     _________________________________________________________________

11.1.1.1. Recuperare un valore

Il valore di una voce pu� essere recuperato utilizzando "cat":
# cat /proc/sys/net/ipv6/conf/all/forwarding
0

     _________________________________________________________________

11.1.1.2. Impostazione di un valore

Un nuovo valore pu� essere impostato (se la relativa voce � scrivibile)
utilizzando "echo":
# echo "1" >/proc/sys/net/ipv6/conf/all/forwarding

     _________________________________________________________________

11.1.2. Uso di "sysctl"

L'utilizzo del programma "sysctl" � un metodo moderno per accedere agli
switch del kernel. Si pu� usare anche nel caso in cui il filesystem /proc
non sia montato. Si ha per� accesso solo a /proc/sys/*!

Il programma "sysctl" � incluso nel pacchetto "procps" (su sistemi Red Hat
Linux).

     * L'interfaccia sysctl deve essere abilitata nel kernel, in fase di
       compilazione deve cio� essere selezionata l'opzione seguente

CONFIG_SYSCTL=y
     _________________________________________________________________

11.1.2.1. Recupero di un valore

Il valore di una voce pu� essere recuperato con:
# sysctl net.ipv6.conf.all.forwarding
net.ipv6.conf.all.forwarding = 0

     _________________________________________________________________

11.1.2.2. Impostazione di un valore

Un nuovo valore pu� essere impostato (se la relativa voce � scrivibile) con:
# sysctl -w net.ipv6.conf.all.forwarding=1
net.ipv6.conf.all.forwarding = 1


   Nota: Non usare spazi prima e dopo del segno "=" quando si impostano
   valori. Inoltre, nel caso di valori multipli sulla stessa riga �
   necessario racchiuderli tra virgolette, come per esempio
# sysctl -w net.ipv4.ip_local_port_range="32768 61000"
net.ipv4.ip_local_port_range = 32768 61000

     _________________________________________________________________

11.1.2.3. Supplementi

Nota: in giro ci sono versioni di sysctl che visualizzano "/" invece di "."

Per maggiori dettagli si dia un'occhiata alla pagina man di sysctl.

Suggerimento: per cercare velocemente nelle impostazioni, utilizzare
l'opzione "-a" (mostra tutte le voci) assieme a "grep".
     _________________________________________________________________

11.1.3. Valori trovati nel filesystem /proc

Esistono vari formati (tipi di dati) dei valori nel filesystem /proc:

     * BOOLEANO: semplicemente uno "0" (falso) o un "1" (vero)
     * INTERO: un valore intero che pu� anche essere senza segno
       (unsigned)
     * righe pi� sofisticate, con diversi valori: a volte viene anche
       visualizzata una riga di intestazione, in caso contrario si dia
       uno sguardo ai sorgenti del kernel per avere informazioni sul
       significato di ogni valore...
     _________________________________________________________________

11.2. Voci in /proc/sys/net/ipv6/

11.2.1. conf/default/*

Cambia le impostazioni di default specifiche di un'interfaccia.
     _________________________________________________________________

11.2.2. conf/all/*

Cambia tutte le impostazioni specifiche di un'interfaccia.

Un'eccezione: "conf/all/forwarding" ha un significato diverso.
     _________________________________________________________________

11.2.2.1. conf/all/forwarding

     * Tipo: BOOLEANO

   Questo abilita l'inoltro globale IPv6 tra tutte le interfacce.

   Con IPv6 non si pu� controllare l'inoltro per dispositivo, ma comunque
   tale controllo pu� essere effettuato utilizzando il set di regole
   netfilter-IPv6 (controllato con ip6tables) e specificando i
   dispositivi di input e di output (si veda Firewalling/Netfilter6 per
   maggiori dettagli). In IPv4 ci� � gestito in maniera diversa poich� si
   pu� controllare l'inoltro per dispositivo (la decisione viene presa
   sull'interfaccia dove il pacchetto arriva).

   Inoltre configura tutte le impostazioni 'inoltro' Host/Router
   dell'interfaccia col valore specificato. Si veda successivamente per i
   dettagli. Ci si referisce a questo come inoltro globale (global
   forwarding).

   Se questo valore � 0, l'inoltro IPv6 non � abilitato: i pacchetti non
   lasceranno mai un'interfaccia, n� fisica n� logica, come per esempio i
   tunnel.
     _________________________________________________________________

11.2.3. conf/interface/*

Cambia le impostazioni particolari per interfaccia.

Il comportamento per certe impostazioni � diverso a seconda se l'inoltro
locale � abilitato o meno.
     _________________________________________________________________

11.2.3.1. accept_ra

     * Tipo: BOOLEANO
     * Funzionalit� di default: abilitato se l'inoltro locale �
       disabilitato. Disabilitato in caso contrario.

   Accetta gli avvisi router (Router Advertisements) e configura
   automaticamente l'interfaccia con i dati ricevuti.
     _________________________________________________________________

11.2.3.2. accept_redirects

     * Tipo: BOOLEANO
     * Funzionalit� di default: abilitato se l'inoltro locale �
       disabilitato. Disabilitato in caso contrario.

   Accetta i redirect inviati da un router IPv6.
     _________________________________________________________________

11.2.3.3. autoconf

     * Tipo: BOOLEANO
     * Default: VERO

   Configura indirizzi link-local (si veda anche Tipi di indirizzo)
   usando indirizzi hardware di livello 2 (L2). Per esempio questo genera
   automaticamente un indirizzo come "fe80::201:23ff:fe45:6789" su di
   un'interfaccia con un indirizzo L2-MAC.
     _________________________________________________________________

11.2.3.4. dad_transmits

     * Tipo: INTERO
     * Default: 1

   Il numero totale di segnali di tipo Duplicate Address Detection da
   inviare.
     _________________________________________________________________

11.2.3.5. forwarding

     * Tipo: BOOLEANO
     * Default: FALSO se l'inoltro globale � disabilitato (default),
       altrimenti VERO

   Configura il comportamento da Host/Router specifico per interfaccia.

   Nota: Si raccomanda di impostare la stessa configurazione su tutte le
   interfacce; gli scenari misti router/host sono piuttosto insoliti.

     * Valore FALSO: Per default, viene assunto il comportamento Host.
       Questo significa:

    1. Il flag IsRouter non � impostato negli avvisi di vicinato
       (Neighbour Advertisements).
    2. Le sollecitazioni router (Router Solicitation) vengono inviate
       quando necessario.
    3. Se accept_ra � VERO (default), vengono accettati gli avvisi router
       (e viene fatta la configurazione automatica).
    4. Se accept_redirects � VERO (default), vengono accettati i
       redirect.

     * Valore VERO: Se l'inoltro locale � abilitato, viene assunto il
       comportamento come router. Questo significa esattamente l'inverso
       rispetto a quanto detto prima:

    1. Il flag IsRouter � impostato negli avvisi di vicinato.
    2. Le sollecitazioni router non vengono inviate.
    3. Gli avvisi router vengono ignorati.
    4. I redirect vengono ignorati.
     _________________________________________________________________

11.2.3.6. hop_limit

     * Tipo: INTERO
     * Default: 64

   Il limite massimo di salti (hop) di default.
     _________________________________________________________________

11.2.3.7. mtu

     * Tipo: INTERO
     * Default: 1280 (minimo richiesto per IPv6)

   La Maximum Transfer Unit di default.
     _________________________________________________________________

11.2.3.8. router_solicitation_delay

     * Tipo: INTERO
     * Default: 1

   Secondi da attendere dopo l'attivazione dell'interfaccia prima di
   inviare sollecitazioni router.
     _________________________________________________________________

11.2.3.9. router_solicitation_interval

     * Tipo: INTERO
     * Default: 4

   Secondi di attesa tra una sollecitazione router e la successiva.
     _________________________________________________________________

11.2.3.10. router_solicitations

     * Tipo: INTERO
     * Default: 3

   Numero di sollecitazioni router da inviare prima di desumere l'assenza
   di router.
     _________________________________________________________________

11.2.4. neigh/default/*

Cambia le impostazioni di default per la rilevazione di vicinato per alcuni
speciali intervalli globali e valori di soglia:
     _________________________________________________________________

11.2.4.1. gc_thresh1

     * Tipo: INTERO
     * Default: 128

   Da completare con maggiori dettagli.
     _________________________________________________________________

11.2.4.2. gc_thresh2

     * Tipo: INTERO
     * Default: 512

   Da completare con maggiori dettagli.
     _________________________________________________________________

11.2.4.3. gc_thresh3

     * Tipo: INTERO
     * Default: 1024

   Parametro per impostare la dimensione della tabella relativa ai
   vicini.

   Si aumenti questo valore nel caso in cui si abbiano molte interfacce e
   problemi con gli instradamenti che cominciano a funzionare ed a
   fallire misteriosamente, oppure nel caso che facendo funzionare lo
   Zebra (demone di routing) si abbia:
ZEBRA: netlink-listen error: No buffer space available, type=RTM_NEWROUTE(24),
seq=426, pid=0

     _________________________________________________________________

11.2.4.4. gc_interval

     * Tipo: INTERO
     * Default: 30

   Da completare con maggiori dettagli.
     _________________________________________________________________

11.2.5. neigh/interface/*

Cambia delle impostazioni particolari, per interfaccia, per la rilevazione
del vicinato.
     _________________________________________________________________

11.2.5.1. anycast_delay

     * Tipo: INTERO
     * Default: 100

   Da completare con maggiori dettagli.
     _________________________________________________________________

11.2.5.2. gc_stale_time

     * Tipo: INTERO
     * Default: 60

   Da completare con maggiori dettagli.
     _________________________________________________________________

11.2.5.3. proxy_qlen

     * Tipo: INTERO
     * Default: 64

   Da completare con maggiori dettagli.
     _________________________________________________________________

11.2.5.4. unres_qlen

     * Tipo: INTERO
     * Default: 3

   Da completare con maggiori dettagli.
     _________________________________________________________________

11.2.5.5. app_solicit

     * Tipo: INTERO
     * Default: 0

   Da completare con maggiori dettagli.
     _________________________________________________________________

11.2.5.6. locktime

     * Tipo: INTERO
     * Default: 0

   Da completare con maggiori dettagli.
     _________________________________________________________________

11.2.5.7. retrans_time

     * Tipo: INTERO
     * Default: 100

   Da completare con maggiori dettagli.
     _________________________________________________________________

11.2.5.8. base_reachable_time

     * Tipo: INTERO
     * Default: 30

   Da completare con maggiori dettagli.
     _________________________________________________________________

11.2.5.9. mcast_solicit

     * Tipo: INTERO
     * Default: 3

   Da completare con maggiori dettagli.
     _________________________________________________________________

11.2.5.10. ucast_solicit

     * Tipo: INTERO
     * Default: 3

   Da completare con maggiori dettagli.
     _________________________________________________________________

11.2.5.11. delay_first_probe_time

     * Tipo: INTERO
     * Default: 5

   Da completare con maggiori dettagli.
     _________________________________________________________________

11.2.5.12. proxy_delay

     * Tipo: INTERO
     * Default: 80

   Da completare con maggiori dettagli.
     _________________________________________________________________

11.2.6. route/*

Cambia le impostazioni globali per l'instradamento.
     _________________________________________________________________

11.2.6.1. flush

Rimosso dalle recenti release del kernel - da completare con maggiori
dettagli.
     _________________________________________________________________

11.2.6.2. gc_interval

     * Tipo: INTERO
     * Default: 30

   Da completare con maggiori dettagli.
     _________________________________________________________________

11.2.6.3. gc_thresh

     * Tipo: INTERO
     * Default: 1024

   Da completare con maggiori dettagli.
     _________________________________________________________________

11.2.6.4. mtu_expires

     * Tipo: INTERO
     * Default: 600

   Da completare con maggiori dettagli.
     _________________________________________________________________

11.2.6.5. gc_elasticity

     * Tipo: INTERO
     * Default: 0

   Da completare con maggiori dettagli.
     _________________________________________________________________

11.2.6.6. gc_min_interval

     * Tipo: INTERO
     * Default: 5

   Da completare con maggiori dettagli.
     _________________________________________________________________

11.2.6.7. gc_timeout

     * Tipo: INTERO
     * Default: 60

   Da completare con maggiori dettagli.
     _________________________________________________________________

11.2.6.8. min_adv_mss

     * Tipo: INTERO
     * Default: 12

   Da completare con maggiori dettagli.
     _________________________________________________________________

11.2.6.9. max_size

     * Tipo: INTERO
     * Default: 4096

   Da completare con maggiori dettagli.
     _________________________________________________________________

11.3. Voci relative a IPv6 in /proc/sys/net/ipv4/

Al momento (e fino a quando IPv4 non sar� convertito in un modulo del kernel
indipendente) alcune opzioni qui presenti vengono utilizzate anche per IPv6.
     _________________________________________________________________

11.3.1. ip_*

11.3.1.1. ip_local_port_range

Questa impostazione � usata anche da IPv6.
     _________________________________________________________________

11.3.2. tcp_*

Queste impostazioni sono usate anche da IPv6.
     _________________________________________________________________

11.3.3. icmp_*

Queste impostazioni non vengono utilizzate da IPv6. Per abilitare il limite
sul flusso (rate limiting) dei messaggi ICMPv6 (vivamente raccomandato a
causa della possibilit� di tempeste di ICMPv6) devono essere usate le regole
netfilter-v6.
     _________________________________________________________________

11.3.4. altre

Sconosciute, ma probabilmente non usate da IPv6.
     _________________________________________________________________

11.4. Voci relative a IPv6 in /proc/net/

In /proc/net ci sono diversi valori disponibili in sola lettura. Tali
informazioni non possono essere ricavate usando "sysctl", quindi si usi per
esempio "cat".
     _________________________________________________________________

11.4.1. if_inet6

     * Tipo: Una riga per ogni indirizzo, che contiene pi� valori

   Tutti gli indirizzi IPv6 configurati, vengono visualizzati in un
   formato speciale. L'esempio mostra solo quello dell'interfaccia di
   loopback. Il significato � indicato di seguito (si veda
   "net/ipv6/addrconf.c" per maggiori dettagli).
# cat /proc/net/if_inet6
00000000000000000000000000000001 01 80 10 80 lo
+------------------------------+ ++ ++ ++ ++ ++
|                                |  |  |  |  |
1                                2  3  4  5  6


    1. Indirizzo IPv6 rappresentato con 32 caratteri esadecimali senza i
       due punti come separatore
    2. Numero dispositivo netlink (indice di interfaccia) in esadecimale
       (si veda anche "ip addr")
    3. Lunghezza del prefisso in esadecimale
    4. Valore dell'ambito di applicazione (scope value) (si vedano i
       sorgenti del kernel "include/net/ipv6.h" e "net/ipv6/addrconf.c"
       per maggiori dettagli)
    5. Flag dell'interfaccia (si veda "include/linux/rtnetlink.h" e
       "net/ipv6/addrconf.c" per maggiori dettagli)
    6. Nome del dispositivo
     _________________________________________________________________

11.4.2. ipv6_route

     * Tipo: Una riga per ogni instradamento, che contiene pi� valori

   Tutti gli instradamenti IPv6 configurati vengono visualizzati in un
   formato speciale. L'esempio riguarda solo l'interfaccia di loopback.
   Il significato viene indicato di seguito (si veda "net/ipv6/route.c"
   per maggiori dettagli).
# cat /proc/net/ipv6_route
00000000000000000000000000000000 00 00000000000000000000000000000000 00
+------------------------------+ ++ +------------------------------+ ++
|                                |  |                                |
1                                2  3                                4
� 00000000000000000000000000000000 ffffffff 00000001 00000001 00200200 lo
� +------------------------------+ +------+ +------+ +------+ +------+ ++
� |                                |        |        |        |        |
� 5                                6        7        8        9        10


    1. Rete IPv6 di destinazione rappresentata con 32 caratteri
       esadecimali senza i due punti come separatore
    2. Lunghezza del prefisso IPv6 di destinazione in esadecimale
    3. Rete IPv6 mittente (source) rappresentata con 32 caratteri
       esadecimali senza i due punti come separatore
    4. Lunghezza del prefisso IPv6 mittente (source) in esadecimale
    5. L'hop IPv6 successivo rappresentato con 32 caratteri esadecimali
       senza i due punti come separatore
    6. Metrica in esadecimale
    7. Contatore di riferimento
    8. Contatore di uso
    9. Flag
   10. Nome del dispositivo
     _________________________________________________________________

11.4.3. sockstat6

     * Tipo: Una riga per protocollo, con descrizione e valore

   Statistiche sui socket IPv6 usati. Esempio:
# cat /proc/net/sockstat6
TCP6: inuse 7
UDP6: inuse 2
RAW6: inuse 1
FRAG6: inuse 0 memory 0

     _________________________________________________________________

11.4.4. tcp6

Da completare.
     _________________________________________________________________

11.4.5. udp6

Da completare.
     _________________________________________________________________

11.4.6. igmp6

Da completare.
     _________________________________________________________________

11.4.7. raw6

Da completare.
     _________________________________________________________________

11.4.8. ip6_flowlabel

Da completare.
     _________________________________________________________________

11.4.9. rt6_stats

Da completare.
     _________________________________________________________________

11.4.10. snmp6

     * Tipo: Una riga per la descrizione SNMP e il valore

   Statistiche SNMP, possono essere recuperate tramite il server SNMP e
   la relativa tabella MIB con software di gestione di rete.
     _________________________________________________________________

11.4.11. ip6_tables_names

Tabelle netfilter6 disponibili.
     _________________________________________________________________

Capitolo 12. Interfaccia netlink al kernel

Da completare... Non ho esperienza con questo...
     _________________________________________________________________

Capitolo 13. Debug di rete

13.1. Server socket binding

13.1.1. Uso di "netstat" per il controllo del server socket binding

� sempre interessante vedere quali socket server sono attivi in un dato
momento su di un nodo. L'uso di "netstat" � una scorciatoia per ottenere
tali informazioni:

Opzioni utilizzate: -nlptu

Esempio:
# netstat -nlptu
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
� PID/Program name
tcp        0      0 0.0.0.0:32768           0.0.0.0:*               LISTEN
� 1258/rpc.statd
tcp        0      0 0.0.0.0:32769           0.0.0.0:*               LISTEN
� 1502/rpc.mountd
tcp        0      0 0.0.0.0:515             0.0.0.0:*               LISTEN
� 22433/lpd Waiting
tcp        0      0 1.2.3.1:139             0.0.0.0:*               LISTEN
� 1746/smbd
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN
� 1230/portmap
tcp        0      0 0.0.0.0:6000            0.0.0.0:*               LISTEN
� 3551/X
tcp        0      0 1.2.3.1:8081            0.0.0.0:*               LISTEN
� 18735/junkbuster
tcp        0      0 1.2.3.1:3128            0.0.0.0:*               LISTEN
� 18822/(squid)
tcp        0      0 127.0.0.1:953           0.0.0.0:*               LISTEN
� 30734/named
tcp        0      0 ::ffff:1.2.3.1:993      :::*                    LISTEN
� 6742/xinetd-ipv6
tcp        0      0 :::13                   :::*                    LISTEN
� 6742/xinetd-ipv6
tcp        0      0 ::ffff:1.2.3.1:143      :::*                    LISTEN
� 6742/xinetd-ipv6
tcp        0      0 :::53                   :::*                    LISTEN
� 30734/named
tcp        0      0 :::22                   :::*                    LISTEN
� 1410/sshd
tcp        0      0 :::6010                 :::*                    LISTEN
� 13237/sshd
udp        0      0 0.0.0.0:32768           0.0.0.0:*
� 1258/rpc.statd
udp        0      0 0.0.0.0:2049            0.0.0.0:*
� -
udp        0      0 0.0.0.0:32770           0.0.0.0:*
� 1502/rpc.mountd
udp        0      0 0.0.0.0:32771           0.0.0.0:*
� -
udp        0      0 1.2.3.1:137             0.0.0.0:*
� 1751/nmbd
udp        0      0 0.0.0.0:137             0.0.0.0:*
� 1751/nmbd
udp        0      0 1.2.3.1:138             0.0.0.0:*
� 1751/nmbd
udp        0      0 0.0.0.0:138             0.0.0.0:*
� 1751/nmbd
udp        0      0 0.0.0.0:33044           0.0.0.0:*
� 30734/named
udp        0      0 1.2.3.1:53              0.0.0.0:*
� 30734/named
udp        0      0 127.0.0.1:53            0.0.0.0:*
� 30734/named
udp        0      0 0.0.0.0:67              0.0.0.0:*
� 1530/dhcpd
udp        0      0 0.0.0.0:67              0.0.0.0:*
� 1530/dhcpd
udp        0      0 0.0.0.0:32858           0.0.0.0:*
� 18822/(squid)
udp        0      0 0.0.0.0:4827            0.0.0.0:*
� 18822/(squid)
udp        0      0 0.0.0.0:111             0.0.0.0:*
� 1230/portmap
udp        0      0 :::53                   :::*
� 30734/named

     _________________________________________________________________

13.2. Esempi di dump dei pacchetti di tcpdump

Qui vengono mostrati alcuni esempi di pacchetti catturati, probabilmente
utili per il proprio debugging...

...maggiori contenuti prossimamente...
     _________________________________________________________________

13.2.1. Scoperta del router

13.2.1.1. Avviso di router (Router advertisement)
15:43:49.484751 fe80::212:34ff:fe12:3450 > ff02::1: icmp6: router
� advertisement(chlim=64, router_ltime=30, reachable_time=0,
� retrans_time=0)(prefix info: AR valid_ltime=30, preffered_ltime=20,
� prefix=2002:0102:0304:1::/64)(prefix info: LAR valid_ltime=2592000,
� preffered_ltime=604800, prefix=3ffe:ffff:0:1::/64)(src lladdr:
� 0:12:34:12:34:50) (len 88, hlim 255)


   Il router con indirizzo link-local "fe80::212:34ff:fe12:3450" invia un
   avviso all'indirizzo multicast all-node-on-link "ff02::1" contenente
   due prefissi "2002:0102:0304:1::/64" (durata 30 s) e
   "3ffe:ffff:0:1::/64" (durata 2592000 s) con inclusi i suoi indirizzi
   di livello 2 (MAC) "0:12:34:12:34:50".
     _________________________________________________________________

13.2.1.2. Sollecitazione di router (Router solicitation)
15:44:21.152646 fe80::212:34ff:fe12:3456 > ff02::2: icmp6: router solicitation
� (src lladdr: 0:12:34:12:34:56) (len 16, hlim 255)


   Il nodo con indirizzo link-local "fe80::212:34ff:fe12:3456" ed
   indirizzo di livello 2 (MAC) "0:12:34:12:34:56" sta cercando un router
   on-link, quindi invia questa sollecitazione all'indirizzo multicast
   all-router-on-link "ff02::2".
     _________________________________________________________________

13.2.2. Scoperta del vicinato

13.2.2.1. Sollecitazione di scoperta del vicinato per rilevamento di
indirizzi duplicati

I seguenti pacchetti sono inviati da un nodo con indirizzo di livello 2
(MAC) "0:12:34:12:34:56" durante la configurazione automatica, per
controllare se un potenziale indirizzo � utilizzato o meno da un altro nodo
sul link, inviandoli all'indirizzo multicast link-local solicited node.

     * Il nodo vuole configurare il suo indirizzo link-local
       "fe80::212:34ff:fe12:3456" e controlla la presenza di duplicati

15:44:17.712338 :: > ff02::1:ff12:3456: icmp6: neighbor sol: who has
� fe80::212:34ff:fe12:3456(src lladdr: 0:12:34:12:34:56) (len 32, hlim 255)


     * Il nodo vuole configurare il suo indirizzo globale
       "2002:0102:0304:1:212:34ff:fe12:3456" (dopo aver ricevuto l'avviso
       precedentemente mostrato) e controlla ora la presenza di duplicati

15:44:21.905596 :: > ff02::1:ff12:3456: icmp6: neighbor sol: who has
� 2002:0102:0304:1:212:34ff:fe12:3456(src lladdr: 0:12:34:12:34:56) (len 32,
� hlim 255)


     * Il nodo vuole configurare il suo indirizzo globale
       "3ffe:ffff:0:1:212:34ff:fe12:3456" (dopo aver ricevuto l'avviso
       precedentemente mostrato) e controlla ora la presenza di duplicati

15:44:22.304028 :: > ff02::1:ff12:3456: icmp6: neighbor sol: who has
� 3ffe:ffff:0:1:212:34ff:fe12:3456(src lladdr: 0:12:34:12:34:56) (len 32, hlim
� 255)

     _________________________________________________________________

13.2.2.2. Sollecitazione di scoperta del vicinato per la ricerca di host o
gateway

     * Il nodo vuole inviare pacchetti a "3ffe:ffff:0:1::10" ma non ha
       l'indirizzo di livello 2 (MAC) a cui inviarli, per cui invia ora
       la sollecitazione

13:07:47.664538 2002:0102:0304:1:2e0:18ff:fe90:9205 > ff02::1:ff00:10: icmp6:
� neighbor sol: who has 3ffe:ffff:0:1::10(src lladdr: 0:e0:18:90:92:5) (len 32,
  hlim 255)


     * Il nodo cerca ora "fe80::10"

13:11:20.870070 fe80::2e0:18ff:fe90:9205 > ff02::1:ff00:10: icmp6: neighbor
� sol: who has fe80::10(src lladdr: 0:e0:18:90:92:5) (len 32, hlim 255)

     _________________________________________________________________

Capitolo 14. Supporto per la configurazione persistente di IPv6 nelle
distribuzioni Linux

Alcune distribuzioni Linux gi� contengono il supporto per la configurazione
persistente di IPv6 utilizzando quella esistente o nuova, file script e
riferimenti a file di script IPv4.
     _________________________________________________________________

14.1. Red Hat Linux ed i "cloni"

Da quando ho iniziato la stesura di IPv6 &Linux - HowTo � stata mia
intenzione abilitare una configurazione persistente di IPv6 la quale
prendesse in considerazione la maggior parte dei casi desiderati come host,
router, host dual-homed, router con un secondo troncone di rete, tunnel
normali, tunnel 6to4 e cos� via. Oggigiorno esiste un set di configurazioni
e file di script che fanno molto bene questo lavoro (non ho mai sentito di
problemi reali ma non so quanti lo usano). Poich� questi file di
configurazione e script vengono estesi di volta in volta, hanno una propria
homepage: initscripts-ipv6 homepage (Mirror). Dato che ho iniziato la mia
esperienza con IPv6 utilizzando un clone della Red Hat Linux 5.0, i miei
sistemi di sviluppo IPv6 sono perlopi� basati su Red Hat Linux, � quindi
piuttosto logico che gli script siano sviluppati per questo tipo di
distribuzione (le cosiddette ragioni storiche). Inoltre � molto semplice
estendere alcuni file di configurazione, crearne di nuovi e realizzare
alcuni semplici collegamenti per configurare IPv6 durante la configurazione
di IPv4.

Fortunatamente, da Red Hat Linux 7.1 in poi, � inclusa una parte dei miei
script IPv6; ci� � dovuto, e lo sar� in avvenire, all'assistenza di Pekka
Savola.

Anche Mandrake dalla versione 8.0 include un pacchetto di initscript IPv6 ma
un piccolo bug ne rende inefficace l'utilizzo ("ifconfig" manca dell'"inet6"
prima di "add").
     _________________________________________________________________

14.1.1. Test per il supporto di IPv6 negli script di configurazione della
rete

Si pu� verificare se la propria distribuzione Linux contenga o meno il
supporto per la configurazione persistente di IPv6 con il mio set. Dovrebbe
esistere la seguente libreria di script:
/etc/sysconfig/network-scripts/network-functions-ipv6


   Test automatico:
# test -f /etc/sysconfig/network-scripts/network-functions-ipv6 && echo "Main
� IPv6 script library exists"


   La versione della libreria IPv6 � importante se qualche caratteristica
   risultasse mancante. La si pu� ottenere lanciando il seguente comando
   (o pi� semplicemente guardando all'inizio del file):
# source /etc/sysconfig/network-scripts/network-functions-ipv6 &&
� getversion_ipv6_functions
20011124


   Nell'esempio mostrato, la versione utilizzata � la 20011124. Si
   confronti questa con le ultime informazioni su initscripts-ipv6
   homepage (Mirror) per vedere cosa � stato cambiato. � possibile
   trovare anche uno storico dei cambiamenti (change-log).
     _________________________________________________________________

14.1.2. Brevi suggerimenti per abilitare IPv6 sulle attuali RHL 7.1, 7.2,
7.3, ...

     * Verificare sul sistema se il modulo IPv6 � stato caricato o meno

# modprobe -c | grep net-pf-10
alias net-pf-10 off


     * Se il risultato � "off" allora si abiliti l'IPv6 aggiungendo la
       seguente linea a /etc/sysconfig/network

NETWORKING_IPV6=yes


     * Riavviare la macchina o riavviare la gestione della rete usando

# service network restart


     * Adesso il modulo IPv6 dovrebbe essere stato caricato

# modprobe -c | grep ipv6
alias net-pf-10 ipv6


   Se il sistema � su di un link che fornisce il router advertisement,
   verr� fatta una configurazione automatica. Per maggiori informazioni
   sulle impostazioni supportate, si veda
   /usr/share/doc/initscripts-$version/sysconfig.txt.
     _________________________________________________________________

14.2. SuSE Linux

Nelle pi� recenti versioni 7.x � disponibile un supporto molto rudimentale,
si veda /etc/rc.config per i dettagli.

A causa delle configurazioni e della struttura dei file di script molto
diversi, � difficile (se non impossibile) utilizzare il set per le RedHat ed
i cloni, con questa distribuzione. Nelle versioni 8.x le impostazioni di
configurazione cambiano completamente.
     _________________________________________________________________

14.2.1. SuSE Linux 7.3

     * Come configurare il 6to4 IPv6 con SuSE 7.3
     _________________________________________________________________

14.2.2. SuSE Linux 8.0

14.2.2.1. Configurazione indirizzo IPv6

Si inserisca il seguente valore nel file
/etc/sysconfig/network/ifcfg-<Interface-Name>
IP6ADDR="<ipv6-address>/<prefix>"

     _________________________________________________________________

14.2.2.2. Informazioni addizionali

Si veda il file /usr/share/doc/packages/sysconfig/README.
     _________________________________________________________________

14.2.3. SuSE Linux 8.1

14.2.3.1. Configurazione indirizzo IPv6

Si inserisca il seguente valore nel file
/etc/sysconfig/network/ifcfg-<Interface-Name>
IPADDR="<ipv6-address>/<prefix>"

     _________________________________________________________________

14.2.3.2. Informazioni addizionali

Si veda il file /usr/share/doc/packages/sysconfig/Network.
     _________________________________________________________________

14.3. Debian Linux

Le informazioni seguenti sono dovute al contributo di Stephane Bortzmeyer
<bortzmeyer at nic dot fr>

    1. Ci si assicuri che IPv6 sia attivo, che sia compilato nel kernel o
       che il modulo sia caricato. Per quest'ultimo ci sono tre
       possibilit�, aggiungerlo in /etc/modules, utilizzare il trucco
       pre-up mostrato pi� avanti o utilizzando kmod (qui non descritto).
    2. Si configurino le interfacce. Assumiamo di avere eth0 ed un
       indirizzo (3ffe:ffff:1234:5::1:1). Si modifichi
       /etc/network/interfaces come segue:

iface eth0 inet6 static
        pre-up modprobe ipv6
        address 3ffe:ffff:1234:5::1:1
        # To suppress completely autoconfiguration:
        # up echo 0 > /proc/sys/net/ipv6/conf/all/autoconf
        netmask 64
        # The router is autoconfigured and has no fixed address.
        # It is magically
        # found. (/proc/sys/net/ipv6/conf/all/accept_ra). Otherwise:
        #gateway 3ffe:ffff:1234:5::1


   Ora si riavvii o si digiti semplicemente
# ifup --force eth0


   si ha cos� il proprio indirizzo statico.
     _________________________________________________________________

14.3.1. Altre informazioni

     * IPv6 su Debian Linux di Craig Small
     * HOWTO per Freenet6 &Utenti Debian di Jean-Marc V. Liotier
       (annunciato il 24.12.2002 sulla mailing list users@ipv6.org )
     _________________________________________________________________

Capitolo 15. Configurazione automatica e mobilit�

15.1. configurazione automatica stateless

� supportata e vista sull'indirizzo assegnato link-local dopo che
un'interfaccia abilitata per IPv6 viene attivata.
     _________________________________________________________________

15.2. configurazione automatica stateful con l'utilizzo del Router
Advertisement Daemon (radvd)

Da completare. Si veda autoconfigurazione con demone radvd pi� avanti.
     _________________________________________________________________

15.3. Dynamic Host Configuration Protocol v6 (DHCPv6)

Dopo una lunga discussione, finalmente la RFC 3315 / Dynamic Host
Configuration Protocol for IPv6 (DHCPv6) � stata terminata. Al momento
dell'aggiornamento di questa sezione (03/2004) sono disponibili due
implementazioni:

     * http://klub.com.pl/dhcpv6/ di Tomasz Mrugalski <thomson at klub
       dot com dot pl>
     * DHCPv6 su Sourceforge
     _________________________________________________________________

15.4. Mobilit�

Da completare.

Per il momento, si veda homepage IPv6 Mobile per Linux(MIPL) per maggiori
dettagli. Ulteriori informazioni si possono trovare qui:

     * draft-oneill-mipv6-cao-??.txt/MIPv6 Care of Address Option
     * draft-mccann-mobileip-80211fh-01.txt/Mobile IPv6 Fast Handovers
       for 802.11 Networks
     * draft-haberman-ipv6-anycast-rr-??.txt/IPv6 Anycast Binding using
       Return Routability
     * draft-mun-aaa-localkm-mobileipv6-??.txt/Localized Key Management
       for AAA in MobileIPv6
     * draft-thubert-nemo-ro-taxonomy-??.txt/Taxonomy of Route
       Optimization Models in the NEMO Context
     * draft-le-aaa-diameter-mobileipv6-??.txt/Diameter Mobile IPv6
       Application
     * draft-wakikawa-manet-globalv6-02.txt/Global Connectivity for IPv6
       Mobile Ad Hoc Networks
     * draft-ietf-mobileip-fast-mipv6-??.txt/Fast Handovers for Mobile
       IPv6
     * draft-ietf-mobileip-ipv6-??.txt/Mobility Support in IPv6
     * draft-ohnishi-mobileip-v6vpngateway-??.txt/Mobile IPv6 VPN using
       Gateway Home Agent
     * draft-ietf-mobileip-hmipv6-??.txt/Hierarchical MIPv6 mobility
       management (HMIPv6)
     * draft-mkhalil-ipv6-fastra-??.txt/IPv6 Fast Router Advertisement
     * draft-okazaki-mobileip-abk-??.txt/Securing MIPv6 Binding Updates
       Using Address Based Keys (ABKs)
     * draft-vriz-mobileip-hbhlmap-??.txt/Hop-by-Hop Local Mobility
       Agents Probing for Mobile IPv6
     * draft-thubert-nemo-reverse-routing-header-??.txt/IPv6 Reverse
       Routing Header and its application to Mobile Networks
     * draft-ietf-mobileip-mipv6-ha-ipsec-??.txt/Using IPsec to Protect
       Mobile IPv6 Signaling between Mobile Nodes and Home Agents
     * draft-suh-rmm-??.txt/Regional Mobile IPv6 mobility management
     * draft-mccann-mobileip-ipv6mipv4-??.txt/IPv6 over Mobile IPv4
     * draft-kempf-mobileip-fmipv6-sem-??.txt/Improving the Architectural
       Alignment for FMIPv6
     * draft-le-aaa-mipv6-requirements-??.txt/Mobile IPv6 Authentication,
       Authorization, and Accounting Requirements
     * draft-hwang-rohc-mipv6-??.txt/RObust Header Compression (ROHC): A
       Compression Profile for Mobile IPv6
     * Cellular IP on Columbia University, USA
     * Mobile Networking Through Mobile IP by Charles E. Perkins, Sun
       Microsystems
     * LANCASTER MOBILE IPv6 PACKAGE
     * Testbed for MIND project on IPv6
     * HS247/Mobile IP Web Links
     * Mobile IPv6 Issue List
     * Hop-by-Hop Local Mobility Agents Probing for Mobile IPv6
     * IPv6 Reverse Routing Header and its application to Mobile Networks
     * Using IPsec to Protect Mobile IPv6 Signaling between Mobile Nodes
       and Home Agents
     * Regional Mobile IPv6 mobility management
     * IPv6 over Mobile IPv4
     * Improving the Architectural Alignment for FMIPv6
     * Mobile IPv6 Authentication, Authorization, and Accounting
       Requirements
     * RObust Header Compression (ROHC): A Compression Profile for Mobile
       IPv6
     * Cellular IP all Columbia University, USA
     * Mobile Networking Through Mobile IP di Charles E. Perkins, Sun
       Microsystems
     * LANCASTER MOBILE IPv6 PACKAGE
     * Testbed for MIND project on IPv6
     * HS247/Mobile IP Web Links
     _________________________________________________________________

Capitolo 16. Firewalling

Il firewalling IPv6 � importante, specialmente se si usa IPv6 su reti
interne con indirizzi globali. Poich�, diversamente dalle reti IPv4 dove i
comuni host interni sono protetti automaticamente utilizzando indirizzi IPv4
privati come RFC 1918 / Address Allocation for Private Internets o
indirizzamento IP privato automatico (APIPA) ricerca con Google: Microsoft +
APIPA, in IPv6 gli indirizzi globali sono normalmente utilizzati e qualcuno
con una connessione IPv6 potrebbe raggiungere tutti i nodi interni abilitati
IPv6.
     _________________________________________________________________

16.1. Firewalling utilizzando netfilter6

Il firewalling IPv6 nativo � supportato solo nei kernel versione 2.4+. Nei
vecchi 2.2- si pu� solo filtrare IPv6-in-IPv4 con il protocollo 41.

Attenzione: non c'� nessuna garanzia che le regole qui descritte o gli
esempi riportati possano veramente proteggere il proprio sistema!

Si faccia un controllo accurato del proprio insieme di regole dopo
l'installazione, si veda la Sezione 17.3 per maggiori dettagli.

Si noti inoltre che il progetto USAGI attualmente sta lavorando per finire
il tracciamento della connessione per IPv6! Questo render�, in futuro,
l'insieme delle regole pi� semplice e sicuro!
     _________________________________________________________________

16.1.1. Maggiori informazioni

     * Progetto netfilter 
     * archivio della mailing list utenti netfilter
     * archivio della mailing list sviluppatori netfilter 
     * Stato non ufficiale delle informazioni
     _________________________________________________________________

16.2. Preparazione

16.2.1. Procurarsi i sorgenti

Procurarsi gli ultimi sorgenti del kernel: http://www.kernel.org/

Procurarsi l'ultimo pacchetto iptables:

     * Tarball del sorgente (per le patch del kernel):
       http://www.netfilter.org/
     * Sorgente RPM per il rebuild dei binari (per sistemi RedHat):
       ftp://ftp.redhat.com/redhat/linux/rawhide/SRPMS/SRPMS/ o
       probabilmente anche presso
       http://www.netcore.fi/pekkas/linux/ipv6/
     _________________________________________________________________

16.2.2. Estrazione dei file

Impostare la directory di lavoro con quella che contiene i file scaricati:
# cd /path/to/src


   Spacchettare e rinominare i sorgenti del kernel
# tar z|jxf kernel-version.tar.gz|bz2
# mv linux linux-version-iptables-version+IPv6


   Spacchettare i sorgenti di iptables
# tar z|jxf iptables-version.tar.gz|bz2

     _________________________________________________________________

16.2.3. Applicare le ultime patch relative a iptables/IPv6 ai sorgenti del
kernel

Cambiare la directory di lavoro con quella relativa ad iptables
# cd iptables-version


   Applicare le patch pendenti
# make pending-patches KERNEL_DIR=/path/to/src/linux-version-iptables-version/


   Applicare le patch addizionali relative a IPv6 (non ancora incluse nel
   kernel vanilla)
# make patch-o-matic KERNEL_DIR=/path/to/src/linux-version-iptables-version/


   Rispondere s� alle seguenti opzioni (iptables-1.2.2)

     * ah-esp.patch
     * masq-dynaddr.patch (necessaria solo per sistemi con IP dinamico
       assegnato a connessioni WAN come PPP o PPPoE)
     * ipv6-agr.patch.ipv6
     * ipv6-ports.patch.ipv6
     * LOG.patch.ipv6
     * REJECT.patch.ipv6

   Verifica estensioni IPv6
# make print-extensions
Extensions found: IPv6:owner IPv6:limit IPv6:mac IPv6:multiport

     _________________________________________________________________

16.2.4. Configurazione, compilazione e installazione del nuovo kernel

Cambiare la directory di lavoro con quella contenente i sorgenti del kernel
# cd /path/to/src/linux-version-iptables-version/


   Modifica del Makefile
- EXTRAVERSION =
+ EXTRAVERSION = -iptables-version+IPv6-try


   Lanciare configure, abilitare le voci relative a IPv6
            Code maturity level options
                  Prompt for development and/or incomplete code/drivers: yes
            Networking options
                  Network packet filtering: yes
                  The IPv6 protocol: module
                       IPv6: Netfilter Configuration
                             IP6 tables support: module
                             All new options like following:
                                   limit match support: module
                                   MAC address match support: module
                                   Multiple port match support: module
                                   Owner match support: module
                                   netfilter MARK match support: module
                                   Aggregated address check: module
                                   Packet filtering: module
                                        REJECT target support: module
                                        LOG target support: module
                                   Packet mangling: module
                                   MARK target support: module


   Configurare anche le altre voci relative al proprio sistema.

   Compilazione e installazione: si veda la sezione kernel qui e gli
   altri HOWTO.
     _________________________________________________________________

16.2.5. Rebuild ed installazione dei binari di iptables

Ci si assicuri che l'albero dei sorgenti del kernel sia disponibile anche
tramite /usr/src/linux/

Rinominare la vecchia directory
# mv /usr/src/linux /usr/src/linux.old


   Creare un nuovo link simbolico
# ln -s /path/to/src/linux-version-iptables-version /usr/src/linux


   Rebuild del pacchetto RPM
# rpm --rebuild /path/to/SRPMS/iptables-version-release.src.rpm


   Installare il nuovo pacchetto iptables (iptables + iptables-ipv6)

     * Sui sistemi RH 7.1 di solito c'� gi� una vecchia versione
       installata, perci� si pu� usare l'opzione "freshen"

# rpm -Fhv /path/to/RPMS/cpu/iptables*-version-release.cpu.rpm


     * Se non fosse gi� installato, si usi l'opzione "install"

# rpm -ihv /path/to/RPMS/cpu/iptables*-version-release.cpu.rpm


     * Normalmente sui sistemi RH 6.2 non � installato nessun kernl
       2.4.x, perci� i requisiti non vanno bene. Si usi l'opzione
       "--nodeps" per installarlo

# rpm -ihv --nodeps /path/to/RPMS/cpu/iptables*-version-release.cpu.rpm


   Probabilmente pu� essere necessario creare un link simbolico per le
   librerie iptables dove il programma possa cercarle
# ln -s /lib/iptables/ /usr/lib/iptables

     _________________________________________________________________

16.3. Utilizzo

16.3.1. Verifica del supporto

Caricare il modulo, se cos� compilato
# modprobe ip6_tables


   Verifica della capacit�
# [ ! -f /proc/net/ip6_tables_names ] && echo "Current kernel doesn't support
� 'ip6tables' firewalling (IPv6)!"

     _________________________________________________________________

16.3.2. Imparare ad usare ip6tables

16.3.2.1. Elencare di tutte le voci netfilter IPv6

     * Elenco ridotto

# ip6tables -L


     * Elenco esteso

# ip6tables -n -v --line-numbers -L

     _________________________________________________________________

16.3.2.2. Elencare un filtro specifico
# ip6tables -n -v --line-numbers -L INPUT

     _________________________________________________________________

16.3.2.3. Inserire una regola di log con opzioni sul filtro di ingresso
(input)
# ip6tables --table filter --append INPUT  -j LOG --log-prefix "INPUT:"
� --log-level 7

     _________________________________________________________________

16.3.2.4. Inserire una regola drop sul filtro di ingresso (input)
# ip6tables --table filter --append INPUT  -j DROP

     _________________________________________________________________

16.3.2.5. Cancellare una regola tramite il suo numero
# ip6tables --table filter --delete INPUT 1

     _________________________________________________________________

16.3.2.6. Permettere il traffico ICMPv6

Utilizzando vecchi kernel (kernel 2.4.5 non patchati e iptables-1.2.2)
nessun tipo pu� essere specificato

     * Accettare i pacchetti ICMPv6 entranti attraverso i tunnel

# ip6tables -A INPUT -i sit+ -p icmpv6 -j ACCEPT


     * Permettere l'uscita dei pacchetti ICMPv6 attraverso i tunnel

# ip6tables -A OUTPUT -o sit+ -p icmpv6 -j ACCEPT


   I kernel pi� recenti permettono di specificare i tipi dei pacchetti
   ICMPv6:
# ip6tables -A INPUT -p icmpv6 --icmpv6-type echo-request -j ACCEPT

     _________________________________________________________________

16.3.2.7. Limitare la frequenza di ricezione dei pacchetti

Poich� pu� accadere (come l'autore ha gi� avuto modo di vedere) che possano
verificarsi tempeste di pacchetti ICMPv6, si dovrebbe sfruttare la
possibilit� di limitare la frequenza di ricezione (rate) almeno per i
pacchetti ICMPv6. In aggiunta anche la frequenza del logging dovrebbe essere
limitata per prevenire attacchi DoS verso il syslog e la partizione di
memorizzazione del file di log. Un esempio di limitazione del rate ICMPv6 �:
# ip6tables -A INPUT --protocol icmpv6 --icmpv6-type echo-request -j ACCEPT --m
atch limit --limit 30/minute

     _________________________________________________________________

16.3.2.8. Permettere SSH in ingresso

Qui viene mostrato un esempio per un insieme di regole che permette
connessioni SSH in ingresso, da uno specifico indirizzo IPv6

     * Permettere SSH entrante da 3ffe:ffff:100::1/128

# ip6tables -A INPUT -i sit+ -p tcp -s 3ffe:ffff:100::1/128 --sport 512:65535
� --dport 22 -j ACCEPT


     * Permettere pacchetti di risposta (al momento il tracking della
       connessione in IPv6 non fa parte dell'implementazione principale
       di netfilter6)

# ip6tables -A OUTPUT -o sit+ -p tcp -d 3ffe:ffff:100::1/128 --dport 512:65535
� --sport 22 ! --syn j ACCEPT

     _________________________________________________________________

16.3.2.9. Abilitare il traffico tunnel IPv6-in-IPv4

Per accettare pacchetti tunnel IPv6-in-IPv4, si devono inserire delle regole
relative a questi pacchetti nel proprio firewall IPv4, per esempio

     * Accettare il traffico entrante IPv6-in-IPv4 sull'interfaccia ppp0

# iptables -A INPUT -i ppp0 -p ipv6 -j ACCEPT


     * Permettere l'uscita del traffico IPv6-in-IPv4 sull'interfaccia
       ppp0

# iptables -A OUTPUT -o ppp0 -p ipv6 -j ACCEPT


   Se si ha solo un tunnel statico, si pu� specificare anche l'indirizzo
   IPv4

     * Accettare il traffico entrante IPv6-in-IPv4 sull'interfaccia ppp0
       che arriva dall'estremo del tunnel 1.2.3.4

# iptables -A INPUT -i ppp0 -p ipv6 -s 1.2.3.4 -j ACCEPT


     * Permettere l'uscita del traffico IPv6-in-IPv4 sull'interfaccia
       ppp0 verso l'estremo del tunnel 1.2.3.4

# iptables -A OUTPUT -o ppp0 -p ipv6 -d 1.2.3.4 -j ACCEPT

     _________________________________________________________________

16.3.2.10. Protezione dalle richieste di connessione TCP entranti

MOLTO RACCOMANDATO! Per ragioni di sicurezza si dovrebbe assolutamente
inserire una regola che blocchi le richieste di connessione TCP entranti. Si
adatti l'opzione "-i" se sono in uso altri nomi di interfaccia!

     * Bloccare le richieste di connessione TCP entranti a questo host

# ip6tables -I INPUT -i sit+ -p tcp --syn -j DROP


     * Bloccare le richieste di connessione TCP entranti agli host dietro
       a questo router

# ip6tables -I FORWARD -i sit+ -p tcp --syn -j DROP


   Pu� darsi che queste regole vadano posizionate successivamente ad
   altre, ma � comunque una cosa alla quale bisogna pensare. Il miglior
   sistema � creare uno script ed eseguire le regole secondo un ordine
   stabilito.
     _________________________________________________________________

16.3.2.11. Protezione dalle richieste UDP entranti

ANCHE QUESTO RACCOMANDATO! Come menzionato nelle informazioni sul firewall,
� possibile controllare le porte sulle sessioni UDP/TCP uscenti. In questo
modo, se tutti i propri sistemi locali IPv6 usano porte locali, cio� da
32768 a 60999, c'� anche la possibilit� di filtrare le connessioni UDP
(finch� il tracking non sar� funzionante) con:

     * Bloccare i pacchetti UDP entranti che non sono risposte a
       richieste inviate da questo host

# ip6tables -I INPUT -i sit+ -p udp ! --dport 32768:60999 -j DROP


     * Bloccare i pacchetti UDP entranti che non sono risposte a
       richieste inoltrate dagli host dietro a questo router

# ip6tables -I FORWARD -i sit+ -p udp ! --dport 32768:60999 -j DROP

     _________________________________________________________________

16.3.3. Esempio dimostrativo

Le seguenti righe mostrano una configurazione pi� sofisticata come esempio.
Buona creazione di regole netfilter6....
# ip6tables -n -v -L
Chain INPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
    0     0 extIN      all      sit+   *       ::/0                 ::/0
    4   384 intIN      all      eth0   *       ::/0                 ::/0
    0     0 ACCEPT     all      *      *       ::1/128              ::1/128
    0     0 ACCEPT     all      lo     *       ::/0                 ::/0
    0     0 LOG        all      *      *       ::/0                 ::/0
�        LOG flags 0 level 7 prefix `INPUT-default:'
    0     0 DROP       all      *      *       ::/0                 ::/0

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
�
    0     0 int2ext    all      eth0   sit+    ::/0                 ::/0
    0     0 ext2int    all      sit+   eth0    ::/0                 ::/0
    0     0 LOG        all      *      *       ::/0                 ::/0
�        LOG flags 0 level 7 prefix `FORWARD-default:'
    0     0 DROP       all      *      *       ::/0                 ::/0

Chain OUTPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination
�
    0     0 extOUT     all      *      sit+    ::/0                 ::/0
    4   384 intOUT     all      *      eth0    ::/0                 ::/0
    0     0 ACCEPT     all      *      *       ::1/128              ::1/128
    0     0 ACCEPT     all      *      lo      ::/0                 ::/0
    0     0 LOG        all      *      *       ::/0                 ::/0
�        LOG flags 0 level 7 prefix `OUTPUT-default:'
    0     0 DROP       all      *      *       ::/0                 ::/0

Chain ext2int (1 references)
 pkts bytes target     prot opt in     out     source               destination
�
    0     0 ACCEPT     icmpv6    *      *       ::/0                 ::/0
    0     0 ACCEPT     tcp      *      *       ::/0                 ::/0
�        tcp spts:1:65535 dpts:1024:65535 flags:!0x16/0x02
    0     0 LOG        all      *      *       ::/0                 ::/0
�        LOG flags 0 level 7 prefix `ext2int-default:'
    0     0 DROP       tcp      *      *       ::/0                 ::/0
    0     0 DROP       udp      *      *       ::/0                 ::/0
    0     0 DROP       all      *      *       ::/0                 ::/0

Chain extIN (1 references)
 pkts bytes target     prot opt in     out     source               destination
�
    0     0 ACCEPT     tcp      *      *       3ffe:400:100::1/128  ::/0
�        tcp spts:512:65535 dpt:22
    0     0 ACCEPT     tcp      *      *       3ffe:400:100::2/128  ::/0
�        tcp spts:512:65535 dpt:22
    0     0 ACCEPT     icmpv6    *      *       ::/0                 ::/0
    0     0 ACCEPT     tcp      *      *       ::/0                 ::/0
�        tcp spts:1:65535 dpts:1024:65535 flags:!0x16/0x02
    0     0 ACCEPT     udp      *      *       ::/0                 ::/0
�        udp spts:1:65535 dpts:1024:65535
    0     0 LOG        all      *      *       ::/0                 ::/0
�        limit: avg 5/min burst 5 LOG flags 0 level 7 prefix `extIN-default:'
    0     0 DROP       all      *      *       ::/0                 ::/0

Chain extOUT (1 references)
 pkts bytes target     prot opt in     out     source               destination
�
    0     0 ACCEPT     tcp      *      *       ::/0
� 3ffe:ffff:100::1/128tcp spt:22 dpts:512:65535 flags:!0x16/0x02
    0     0 ACCEPT     tcp      *      *       ::/0
� 3ffe:ffff:100::2/128tcp spt:22 dpts:512:65535 flags:!0x16/0x02
    0     0 ACCEPT     icmpv6    *      *       ::/0                 ::/0
    0     0 ACCEPT     tcp      *      *       ::/0                 ::/0
�        tcp spts:1024:65535 dpts:1:65535
    0     0 ACCEPT     udp      *      *       ::/0                 ::/0
�        udp spts:1024:65535 dpts:1:65535
    0     0 LOG        all      *      *       ::/0                 ::/0
�        LOG flags 0 level 7 prefix `extOUT-default:'
    0     0 DROP       all      *      *       ::/0                 ::/0

Chain int2ext (1 references)
 pkts bytes target     prot opt in     out     source               destination
�
    0     0 ACCEPT     icmpv6    *      *       ::/0                 ::/0
    0     0 ACCEPT     tcp      *      *       ::/0                 ::/0
�        tcp spts:1024:65535 dpts:1:65535
    0     0 LOG        all      *      *       ::/0                 ::/0
�        LOG flags 0 level 7 prefix `int2ext:'
    0     0 DROP       all      *      *       ::/0                 ::/0
    0     0 LOG        all      *      *       ::/0                 ::/0
�        LOG flags 0 level 7 prefix `int2ext-default:'
    0     0 DROP       tcp      *      *       ::/0                 ::/0
    0     0 DROP       udp      *      *       ::/0                 ::/0
    0     0 DROP       all      *      *       ::/0                 ::/0

Chain intIN (1 references)
 pkts bytes target     prot opt in     out     source               destination
�
    0     0 ACCEPT     all      *      *       ::/0
� fe80::/ffc0::
    4   384 ACCEPT     all      *      *       ::/0                 ff02::/16

Chain intOUT (1 references)
 pkts bytes target     prot opt in     out     source               destination
�
    0     0 ACCEPT     all      *      *       ::/0
� fe80::/ffc0::
    4   384 ACCEPT     all      *      *       ::/0                 ff02::/16
    0     0 LOG        all      *      *       ::/0                 ::/0
�        LOG flags 0 level 7 prefix `intOUT-default:'
    0     0 DROP       all      *      *       ::/0                 ::/0

     _________________________________________________________________

Capitolo 17. Sicurezza

17.1. Sicurezza del nodo

� caldamente raccomandata l'applicazione di tutte le patch disponibili e la
disabilitazione dei servizi non necessari. Inoltre si colleghino i servizi
solo agli indirizzi IPv4/IPv6 necessari e si installi un firewall locale.

Da completare con maggiori dettagli...
     _________________________________________________________________

17.2. Limitazioni di accesso

Molti servizi usano la libreria tcp_wrapper per il controllo di accesso. Qui
viene descritto l'uso di tcp_wrapper.

Da completare con maggiori dettagli...
     _________________________________________________________________

17.3. Verifica sicurezza di IPv6

Attualmente non ci sono in giro strumenti comodi capaci di controllare un
sistema sulla rete per problemi di sicurezza inerenti a IPv6. N� Nessus n�
nessun altro security scanner commerciale, per quanto ne so, � in grado di
effettuare la scansione di indirizzi IPv6.
     _________________________________________________________________

17.3.1. Implicazioni legali

ATTENZIONE: si abbia cura di effettuare la scansione solo sui propri sistemi
o solo dopo aver ricevuto un ordine scritto, diversamente si potrebbe
incorrere in problemi legali. SI CONTROLLINO DUE VOLTE gli indirizzi IPv6 di
destinazione prima di avviare una scansione.
     _________________________________________________________________

17.3.2. Verifica di sicurezza con netcat abilitato IPv6

Con il netcat abilitato IPv6 (si veda
IPv6+Linux-status-apps/security-auditing per maggiori dettagli) si pu�
eseguire un portscan tramite un apposito script che scorre un intervallo di
porte, cattura banner e cos� via. Esempio di utilizzo:
# nc6 ::1 daytime
13 JUL 2002 11:22:22 CEST

     _________________________________________________________________

17.3.3. Verifica di sicurezza con nmap abilitato IPv6

NMap, uno dei migliori portscanner nel mondo, supporta IPv6 sin dalla
versione 3.10ALPHA1. Esempio di utilizzo:
# nmap -6 -sT ::1
Starting nmap V. 3.10ALPHA3 ( www.insecure.org/nmap/ )
Interesting ports on localhost6 (::1):
(The 1600 ports scanned but not shown below are in state: closed)
Port       State       Service
22/tcp     open        ssh
53/tcp     open        domain
515/tcp    open        printer
2401/tcp   open        cvspserver
Nmap run completed -- 1 IP address (1 host up) scanned in 0.525 seconds

     _________________________________________________________________

17.3.4. Verifica di sicurezza con strobe abilitato IPv6

Strobe � un portscanner a basso budget (rispetto a NMap), ma esiste tuttavia
una patch disponibile per abilitare IPv6 (si veda
IPv6+Linux-status-apps/security-auditing per maggiori dettagli). Esempio di
utilizzo:
# ./strobe ::1 strobe 1.05 (c) 1995-1999 Julian Assange <proff@iq.org>.
::1 2401 unassigned unknown
::1 22 ssh Secure Shell - RSA encrypted rsh
::1 515 printer spooler (lpd)
::1 6010 unassigned unknown
::1 53 domain Domain Name Server


   Nota: lo sviluppo di strobe non � andato molto avanti, il numero di
   versione mostrato non � quello giusto.
     _________________________________________________________________

17.3.5. Risultati della verifica

Se il risultato di una verifica non coincide con la propria politica di
sicurezza, si utilizzi il firewalling IPv6 per tappare i buchi, per esempio
usando netfilter6 (si veda Firewalling/Netfilter6 per maggiori dettagli).

Info: Informazioni pi� dettagliate concernenti la sicurezza IPv6 si possono
trovare qui:

     * Firewalling Considerations for IPv6 /
       draft-savola-v6ops-firewalling-??.txt
     * IPv6 Neighbour Discovery trust models and threats /
       draft-ietf-send-psreq-??.txt
     * Security Considerations for 6to4 /
       draft-savola-v6ops-6to4-security-??.txt
     * Access Control Prefix Router Advertisement Option for IPv6 /
       draft-bellovin-ipv6-accessprefix-??.txt
     * Requirements for Plug and Play IPsec for IPv6 applications
       /draft-kobayakawa-ipsec-ipv6-pnpipsec-reqts-??.txt 
     * Security of IPv6 Routing Header and Home Address Options /
       draft-savola-ipv6-rh-ha-security-??.txt
     _________________________________________________________________

Capitolo 18. Cifratura ed autenticazione

Diversamente da IPv4 la cifratura e l'autenticazione sono funzioni
vincolanti di IPv6. Queste vengono normalmente implementate utilizzando
IPsec (il quale pu� essere usato anche da IPv4).

A causa per� dell'indipendenza della cifratura e dell'autenticazione dal
protocollo di scambio dele chiavi, ci sono attualmente alcuni problemi di
interoperabilit� a questo proposito.
     _________________________________________________________________

18.1. Supporto nel kernel

18.1.1. Supporto nel kernel Linux vanilla 2.4.x

Attualmente mancante nel vanilla 2.4. Esiste un problema nel tenere il
sorgente del kernel Linux libero dalle leggi relative alla
importazione/esportazione dei sistemi crittografici. Questo � uno dei casi
per cui il Progetto FreeS/WAN (IPsec solo per IPv4) non � ancora contenuto
nel sorgente vanilla.
     _________________________________________________________________

18.1.2. Supporto nel kernel USAGI

Il progetto USAGI ha prelevato, nel Luglio 2001, il codice FreeS/WAN IPv6
dall'IABG / IPv6 Project e lo ha incluso nelle proprie estensioni del
kernel. Attualmente stanno lavorando sull'implementazione di IPsec nei
kernel serie 2.5.x.
     _________________________________________________________________

18.1.3. Supporto nel kernel Linux vanilla 2.5.x

Attualmente, le estensioni IPsec del kernel USAGI stanno per essere migrate
nei kernel di sviluppo 2.5.x.
     _________________________________________________________________

18.2. Utilizzo

A differenza di FreeS/WAN, nell'IPsec del kernel 2.5.x il demone IKE
"racoon" (preso da KAME) viene usato al posto di "pluto" di FreeS/WAN. Ha
una sintassi di configurazione diversa da quella di "pluto", si noti inoltre
che la configurazione di IPsec � divisa in 2 parti (IKE e la configurazione
di topologia). Fino a quando non sar� inclusa documentazione qui, si dia uno
sguardo a Linux Advanced Routing &Traffic Control HOWTO / IPSEC.
     _________________________________________________________________

Capitolo 19. Qualit� del servizio (QoS)

IPv6 supporta il QoS tramite l'uso delle etichette di flusso (Flow Label) e
delle classi di traffico. Questo meccanismo pu� essere controllato con "tc"
(contenuto nel pacchetto "iproute").

Informazioni addizionali:

     * IPv6 Flow Label Specification

   Da completare con maggiori contenuti...
     _________________________________________________________________

Capitolo 20. Suggerimenti per demoni abilitati IPv6

Vengono mostrati alcuni suggerimenti per demoni abilitati IPv6.
     _________________________________________________________________

20.1. Berkeley Internet Name Daemon BIND (named)

IPv6 � supportato dalla versione 9. Si utilizzi sempre la versione pi�
recente disponibile. Deve essere utilizzata almeno la 9.1.3, le versioni pi�
vecchie possono contenere buchi di sicurezza utilizzabili da remoto.
     _________________________________________________________________

20.1.1. Ascoltare su indirizzi IPv6

Nota: diversamente da IPv4 le attuali versioni non permettono di legare il
socket del server a indirizzi IPv6 dedicati, perci� sono validi solo
(indirizzi) qualsiasi o nessuno. Poich� questo pu� rappresentare un problema
di sicurezza, si controlli anche la sezione Access Control List (ACL) pi�
avanti!
     _________________________________________________________________

20.1.1.1. Abilitare BIND named per l'ascolto su un indirizzo IPv6

Per abilitare l'ascolto IPv6, bisogna cambiare le seguenti opzioni
options {
        # qui ci saranno sicuramente anche altre opzioni
        listen-on-v6 { any; };
};


   Dopo il riavvio dovrebbe risultare qualcosa tipo
# netstat -lnptu |grep "named\W*$"
tcp 0 0 :::53         :::*      LISTEN 1234/named
# incoming TCP requests
udp 0 0 1.2.3.4:53    0.0.0.0:*        1234/named
� # incoming UDP requests to IPv4 1.2.3.4
udp 0 0 127.0.0.1:53  0.0.0.0:*        1234/named
� # incoming UDP requests to IPv4 localhost
udp 0 0 0.0.0.0:32868 0.0.0.0:*        1234/named
� # dynamic chosen port for outgoing queries
udp 0 0 :::53         :::*             1234/named
� # incoming UDP request to any IPv6


   Un semplice test pu� essere
# dig localhost @::1


   e dovrebbe visualizzare un risultato.
     _________________________________________________________________

20.1.1.2. Disabilitare il BIND named per l'ascolto su un indirizzo IPv6

Per disabilitare l'ascolto IPv6, occorre cambiare le seguenti opzioni
options {
        # qui ci saranno sicuramente anche altre opzioni
        listen-on-v6 { none; };
};

     _________________________________________________________________

20.1.2. Access Control List (ACL) di indirizzi IPv6 abilitati

� possibile definire le ACL relative a indirizzi IPv6 abilitati e queste
dovrebbero essere usate praticamente sempre. Un esempio pu� essere:
acl internal-net {
        127.0.0.1;
        1.2.3.0/24;
        3ffe:ffff:100::/56;
        ::1/128;
        ::ffff:1.2.3.4/128;
};
acl ns-internal-net {
        1.2.3.4;
        1.2.3.5;
        3ffe:ffff:100::4/128;
        3ffe:ffff:100::5/128;
};


   Queste ACL possono essere usate, per esempio, per le richieste (query)
   dei client e per il trasferimento delle zone a name server secondari.
   Ci� impedisce l'utilizzo del proprio name server di caching
   dall'esterno con IPv6.
options {
        # qui ci saranno sicuramente anche altre opzioni
        listen-on-v6 { none; };
        allow-query { internal-net; };
        allow-transfer { ns-internal-net; };
};


   � anche possibile configurare le opzioni allow-query e allow-transfer
   per la maggior parte delle singole definizioni di zona.
     _________________________________________________________________

20.1.3. Inviare query con indirizzo IPv6 dedicato

Quest'opzione non � richiesta, ma a volte necessaria:
query-source-v6 address <ipv6address|*> port <port|*>;

     _________________________________________________________________

20.1.4. Indirizzi IPv6 dedicati per zona

� anche possibile definire alcuni indirizzi IPv6 per zona.
     _________________________________________________________________

20.1.4.1. Indirizzo sorgente di trasferimento

L'indirizzo sorgente di trasferimento viene usato per i trasferimenti di
zona uscenti:
transfer-source-v6 <ipv6addr|*> [port port];

     _________________________________________________________________

20.1.4.2. Indirizzo sorgente di notifica

L'indirizzo sorgente di notifica viene usato per i messaggi di notifica
uscenti:
notify-source-v6 <ipv6addr|*> [port port];

     _________________________________________________________________

20.1.5. Esempi di file di zona IPv6

Alcune informazioni possono essere reperite anche da IPv6 DNS Setup
Information (articolo). Forse pu� essere d'aiuto anche il IPv6 Reverse DNS
zone builder for BIND 8/9 (strumento web).
     _________________________________________________________________

20.1.6. Servire dati DNS relativi a IPv6

Per IPv6 vengono definiti nuovi tipi e zone root per i reverse lookup:

     * AAAA e il reverse IP6.INT: specificati in RFC 1886 / DNS
       Extensions to support IP version 6, utilizzabile a partire dalla
       versione di BIND 4.9.6
     * A6, DNAME (ORA DISAPPROVATO!) e il reverse IP6.ARPA: specificati
       in RFC 2874 / DNS Extensions to Support IPv6 Address Aggregation
       and Renumbering, utilizzabili a partire dalla versione di BIND 9
       ma si vedano anche le ultime informazioni sullo stato attuale in
       draft-ietf-dnsext-ipv6-addresses-00.txt

   Forse verr� riempito con pi� contenuti, intanto si dia uno sguardo
   alle RFC segnalate e anche a

     * AAAA e il reverse IP6.INT: IPv6 DNS Setup Information
     * A6, DNAME (ORA DISAPPROVATO!) e il reverse IP6.ARPA: si guardi nei
       capitoli 4 e 6 del'Administrator Reference Manual (ARM) del BIND
       9, distribuito con il pacchetto bind o lo si prenda qui: BIND
       version 9 ARM (PDF)

   Poich� IP6.INT � disapprovato (ma ancora in uso), un server DNS che
   supporta informazioni IPv6 deve essere in grado di fornire entrambi i
   tipi di reverse zone.
     _________________________________________________________________

20.1.6.1. La miglior consuetudine attuale

Poich� ci sono alcuni problemi nell'uso di questi nuovi formati, la miglior
consuetudine �:

Supporto della risoluzione diretta:

     * AAAA

   Supporto della risoluzione inversa (reverse lookup):

     * Formato nibble inverso per la zona ip6.int (PER COMPATIBILIT� CON
       IL PASSATO)
     * Formato nibble inverso per la zona ip6.arpa (RACCOMANDATO)
     _________________________________________________________________

20.1.7. Controllare la connessione IPv6

Per verificare se il BIND � in ascolto e se fornisce o meno dati su di un
socket IPv6, si vedano i seguenti esempi.
     _________________________________________________________________

20.1.7.1. Connessione IPv6 con accesso negato dall'ACL

Specificando un server dedicato per la query, una connessione pu� essere
forzata con:
$ host -t aaaa www.6bone.net 3ffe:ffff:200:f101::1
Using domain server:
Name: 3ffe:ffff:200:f101::1
Address: 3ffe:ffff:200:f101::1#53
Aliases:
Host www.6bone.net. not found: 5(REFUSED)


   La voce di log relativa � del tipo:
Jan 3 12:43:32 gate named[12347]: client
� 3ffe:ffff:200:f101:212:34ff:fe12:3456#32770:
 query denied


   Se si vedono righe di questo tipo nel log, si controlli se le
   richieste di questi client debbano essere permesse o meno e si riveda
   quindi la propria configurazione dell'ACL.
     _________________________________________________________________

20.1.7.2. Connessione IPv6 con successo

Una connessione IPv6 avviene con successo se l'output � analogo a:
$ host -t aaaa www.6bone.net 3ffe:ffff:200:f101::1
Using domain server:
Name: 3ffe:ffff:200:f101::1
Address: 3ffe:ffff:200:f101::1#53
Aliases:
www.6bone.net. is an alias for 6bone.net.
6bone.net. has AAAA address 3ffe:b00:c18:1::10

     _________________________________________________________________

20.2. Internet super daemon (xinetd)

IPv6 � supportato da xinetd a partitre dalla versione 1.8.9. Si utilizzi
sempre la versione pi� recente disponibile. Deve essere utilizzata almeno la
versione 2.3.3, versioni pi� vecchie possono avere buchi di sicurezza
utilizzabili da remoto.

Alcune distribuzioni Linux contengono un pacchetto extra per xinetd IPv6,
altre lanciano xinetd con le estensioni IPv6 soltanto se viene impostata la
seguente variabile d'ambiente: NETWORKING_IPV6="yes", nella maggior parte
dei casi questo viene fatto tramite /etc/sysconfig/network (nel caso di
distribuzioni tipo Red Hat). Nelle distribuzioni pi� recenti, un unico file
binario supporta sia IPv4 che IPv6.

Se si abilita un servizio incorporato, come per esempio daytime, modificando
il file di configurazione /etc/xinetd.d/daytime come
# diff -u /etc/xinetd.d/daytime.orig /etc/xinetd.d/daytime
--- /etc/xinetd.d/daytime.orig Sun Dec 16 19:00:14 2001
+++ /etc/xinetd.d/daytime Sun Dec 16 19:00:22 2001
@@ -10,5 +10,5 @@
        protocol = tcp
        user = root
        wait = no
-       disable = yes
+       disable = no
 }


   Dopo il riavvio di xinetd si dovrebbe ottenere un risultato positivo
   del tipo:
# netstat -lnptu -A inet6 |grep "xinetd*"
tcp 0 0 ::ffff:192.168.1.1:993  :::*  LISTEN  12345/xinetd-ipv6
tcp 0 0 :::13                   :::*  LISTEN  12345/xinetd-ipv6 <- service
� daytime/tcp
tcp 0 0 ::ffff:192.168.1.1:143  :::*  LISTEN  12345/xinetd-ipv6


   L'esempio riportato mostra uno xinetd che ascolta su IMAP e IMAP-SSL
   IPv4.

   Nota: le versioni precedenti hanno il problema che xinet abilitato
   solo per IPv4 non si avvia su di un nodo abilitato per IPv6 ed anche
   un xinetd abilitato per IPv6 non si avvia su di un nodo abilitato solo
   per IPv4. Tale problema � stato risolto nelle ultime versioni,
   perlomeno dalla versione 2.3.11.
     _________________________________________________________________

20.3. Server Web Apache2 (httpd2)

Il server web Apache supporta IPv6 in maniera nativa, grazie ai manutentori,
dalla versione 2.0.14. Le patch disponibili per i pi� vecchi 1.3.x non sono
aggiornate e non dovrebbero essere usate in ambiente pubblico, ma sono
comunque disponibili presso KAME / Misc.
     _________________________________________________________________

20.3.1. Ascolto su indirizzi IPv6

Nota: gli host virtuali su indirizzi IPv6 non funzionano nelle versioni fino
alla 2.0.28 (� disponibile una patch per la 2.0.28). Si provi sempre prima
l'ultima versione disponibile poich� quelle precedenti hanno qualche
problema di sicurezza.
     _________________________________________________________________

20.3.1.1. Host virtuale in ascolto solo su indirizzo IPv6
Listen [3ffe:ffff:100::1]:80
<VirtualHost [3ffe:ffff:100::1]:80>
        ServerName ipv6only.yourdomain.yourtopleveldomain
        # ... sicuramente piu' linee di configurazione
</VirtualHost>

     _________________________________________________________________

20.3.1.2. Host virtuale in ascolto su indirizzo IPv6 e IPv4
Listen [3ffe:ffff:100::2]:80
Listen 1.2.3.4:80
<VirtualHost [3ffe:ffff:100::2]:80 1.2.3.4:80>
        ServerName ipv6andipv4.yourdomain.yourtopleveldomain
        # ... sicuramente piu' linee di configurazione
</VirtualHost>


   Questo, dopo il riavvio, dovrebbe dare un risultato analogo a
# netstat -lnptu |grep "httpd2\W*$"
tcp 0 0 1.2.3.4:80          0.0.0.0:* LISTEN 12345/httpd2
tcp 0 0 3ffe:ffff:100::1:80 :::*      LISTEN 12345/httpd2
tcp 0 0 3ffe:ffff:100::2:80 :::*      LISTEN 12345/httpd2


   Per un semplice test si pu� usare l'esempio di telnet gi� mostrato.
     _________________________________________________________________

20.3.1.3. Note addizionali

     * Apache2 supporta un metodo chiamato "sendfile" per accelerare la
       fornitura di dati. Alcuni driver di NIC supportano inoltre il
       checksum offline. In alcuni casi, ci� pu� portare a problemi di
       connessione e checksum TCP non validi. In questi frangenti, si
       disabiliti "sendfile" ricompilando con l'opzione di configurazione
       "--without-sendfile" o utilizzando la direttiva "EnableSendfile
       off" nel file di configurazione.
     _________________________________________________________________

20.4. Router Advertisement Daemon (radvd)

Il router advertisement daemon � molto utile in una LAN, se i client devono
essere configurati automaticamente. Il demone stesso dovrebbe girare sul
gateway di default IPv6 (non � obbligatorio che questo sia anche il gateway
di default IPv4, perci� si faccia attenzione a chi invia, sulla propria LAN,
gli avvisi di instradamento).

Si possono specificare alcune informazioni e flag che devono essere
contenute negli avvisi. Le pi� comunemente usate sono

     * Prefisso (necessario)
     * Tempo di vita del prefisso
     * Frequenza dell'invio degli avvisi (opzionale)

   Dopo un'appropriata configurazione, il demone invia gli avvisi
   attraverso le interfacce specificate, i client - si spera - le
   ricevono e configurano automaticamente gli indirizzi con i prefissi e
   l'instradamento di default ricevuti.
     _________________________________________________________________

20.4.1. Configurazione di radvd

20.4.1.1. Configurazione semplice

Di solito, il file di configurazione di radvd � /etc/radvd.conf. Un semplice
esempio � riportato di seguito:
interface eth0 {
        AdvSendAdvert on;
        MinRtrAdvInterval 3;
        MaxRtrAdvInterval 10;
        prefix 3ffe:ffff:0100:f101::/64 {
                AdvOnLink on;
                AdvAutonomous on;
                AdvRouterAddr on;
        };
};


   Dal lato client ci� risulta come
# ip -6 addr show eth0
3: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100
    inet6 3ffe:ffff:100:f101:2e0:12ff:fe34:1234/64 scope global dynamic
       valid_lft 2591992sec preferred_lft 604792sec
    inet6 fe80::2e0:12ff:fe34:1234/10 scope link


   Poich� il tempo di vita non � stato definito, viene indicato un valore
   molto elevato.
     _________________________________________________________________

20.4.1.2. Configurazione speciale 6to4

Dalla versione 0.6.2pl3 � supportata la (ri)-generazione automatica del
prefisso dipendentemente dall'indirizzo IPv4 dell'interfaccia specificata.
Questo meccanismo pu� essere utilizzato per distribuire avvisi in una LAN
dopo che il tunneling 6to4 subisce variazioni. Il pi� delle volte viene
utilizzato dietro ad un router Linux dial-on-demand dinamico. Poich� il
tempo di vita di questo prefisso � sicuramente molto breve (dopo ogni
dial-up c'� un diverso prefisso valido), esso viene configurato al valore
minimo:
interface eth0 {
        AdvSendAdvert on;
        MinRtrAdvInterval 3;
        MaxRtrAdvInterval 10;
        prefix 0:0:0:f101::/64 {
                AdvOnLink off;
                AdvAutonomous on;
                AdvRouterAddr on;
                Base6to4Interface ppp0;
                AdvPreferredLifetime 20;
                AdvValidLifetime 30;
        };
};


   Lato client questo si traduce in (assumendo che ppp0 abbia attualmente
   l'indirizzo locale IPv4 1.2.3.4):
# /sbin/ip -6 addr show eth0
3: eth0: <BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast qlen 100
   inet6 2002:0102:0304:f101:2e0:12ff:fe34:1234/64 scope global dynamic
      valid_lft 22sec preferred_lft 12sec
   inet6 fe80::2e0:12ff:fe34:1234/10 scope link


   Poich� � stato definito un tempo di vita molto piccolo, tale prefisso
   verr� velocemente scartato se non saranno ricevuti avvisi relativi ad
   esso.

   Nota aggiuntiva: se non si � usato lo speciale supporto 6to4 negli
   initscript, � necessario creare un instradamento speciale
   sull'interfaccia interna del router, altrimenti si avranno alcuni
   problemi di instradamento di ritorno. Per l'esempio mostrato qui:
# /sbin/ip -6 route add 2002:0102:0304:f101::/64 dev eth0 metric 1


   questo instradamento deve essere rimpiazzato ogni volta che il
   prefisso cambia, come nel caso in cui all'interfaccia dial-up viene
   assegnato un nuovo indirizzo IPv4.
     _________________________________________________________________

20.4.2. Debugging

Un programma chiamato "radvdump" pu� essere d'aiuto per guardare negli
avvisi ricevuti e inviati. Semplice da usare:
# radvdump
Router advertisement from fe80::280:c8ff:feb9:cef9 (hoplimit 255)
        AdvCurHopLimit: 64
        AdvManagedFlag: off
        AdvOtherConfigFlag: off
        AdvHomeAgentFlag: off
        AdvReachableTime: 0
        AdvRetransTimer: 0
        Prefix 2002:0102:0304:f101::/64
                AdvValidLifetime: 30
                AdvPreferredLifetime: 20
                AdvOnLink: off
                AdvAutonomous: on
                AdvRouterAddr: on
        Prefix 3ffe:ffff:100:f101::/64
                AdvValidLifetime: 2592000
                AdvPreferredLifetime: 604800
                AdvOnLink: on
                AdvAutonomous: on
                AdvRouterAddr: on
        AdvSourceLLAddress: 00 80 12 34 56 78


   L'output mostra ogni pacchetto di avviso ricevuto in formato
   leggibile. Si dovrebbero vedere i propri valori configurati,
   altrimenti forse non � il proprio radvd che invia gli avvisi... si
   cerchi un altro router sul link (e si consideri per il tracciamento il
   valore LLAddress che corrisponde all'indirizzo MAC).
     _________________________________________________________________

20.5. tcp_wrapper

il tcp_wrapper � una libreria che pu� essere d'aiuto per proteggere i
servizi dagli abusi.
     _________________________________________________________________

20.5.1. Capacit� di filtraggio

Si pu� utilizzare tcp_wrapper per

     * Filtrare in base all'indirizzo sorgente (IPv4 o IPv6)
     * Filtrare in base all'utente (richiede un demone ident in
       esecuzione sul client)
     _________________________________________________________________

20.5.2. Quali programmi usano tcp_wrapper

Sono conosciuti i seguenti:

     * Ogni servizio chiamato da xinetd (se xinetd viene compilato per
       utilizzare la libreria tcp_wrapper)
     * sshd (se compilato per utilizzare tcp_wrapper)
     _________________________________________________________________

20.5.3. Utilizzo

tcp_wrapper � controllato da due file chiamati /etc/hosts.allow e
/etc/hosts.deny. Per maggiori informazioni si veda
$ man hosts.allow

     _________________________________________________________________

20.5.3.1. Esempio del file /etc/hosts.allow

Ogni servizio che debba essere filtrato in maniera positiva (cio� le cui
connnessioni sono accettate) ha bisogno di una riga all'interno di questo
file.
sshd:           1.2.3. [3ffe:ffff:100:200::]/64
daytime-stream: 1.2.3. [3ffe:ffff:100:200::]/64


   Nota: ci sono in giro implementazioni difettose, che utilizzano la
   seguente errata descrizione di rete IPv6: [3ffe:ffff:100:200::/64]. Si
   spera che queste versioni vengano corrette al pi� presto.
     _________________________________________________________________

20.5.3.2. Esempio del file /etc/hosts.deny

Questo file contiene tutti le voci di filtraggio negativo e di solito
dovrebbe negare tutto utilizzando
ALL: ALL


   Se il nodo � particolarmente sensibile, si pu� rimpiazzare la linea
   standard indicata sopra, con quella indicata qui di seguito, ci� per�
   pu� causare un attacco DoS (a carico del mailer e della directory di
   spool) nel caso in cui vengano fatte molte connessioni in poco tempo.
   Un logwatch forse potrebbe essere una soluzione migliore per questo
   problema.
ALL: ALL: spawn (echo "Attempt from %h %a to %d at `date`"
 | tee -a /var/log/tcp.deny.log | mail root@localhost)

     _________________________________________________________________

20.5.4. Logging

A seconda della voce presente nel file di configurazione del demone syslog,
/etc/syslog.conf, il tcp_wrapper solitamente scrive i log nel file
/var/log/secure.
     _________________________________________________________________

20.5.4.1. Connessione rifiutata

Il rifiuto di una connessione IPv4 verso un servizio daytime, gestito
tramite xinetd, produce una riga simile a quella dell'esempio seguente
Jan 2 20:40:44 gate xinetd-ipv6[12346]: FAIL: daytime-stream libwrap
� from=::ffff:1.2.3.4
Jan 2 20:32:06 gate xinetd-ipv6[12346]: FAIL: daytime-stream libwrap
 from=3ffe:ffff:100:200::212:34ff:fe12:3456


   Il rifiuto di una connessione IPv4 verso un servizio sshd in doppio
   ascolto, produce una riga simile a quella dell'esempio seguente
Jan 2 20:24:17 gate sshd[12345]: refused connect from ::ffff:1.2.3.4
� (::ffff:1.2.3.4)
Jan 2 20:39:33 gate sshd[12345]: refused connect
 from 3ffe:ffff:100:200::212:34ff:fe12:3456
� (3ffe:ffff:100:200::212:34ff:fe12:3456)

     _________________________________________________________________

20.5.4.2. Connessione permessa

L'accettazione di una connessione IPv4 verso un servizio daytime, gestito
tramite xinetd, produce una riga simile a quella del seguente esempio
Jan 2 20:37:50 gate xinetd-ipv6[12346]: START: daytime-stream pid=0
� from=::ffff:1.2.3.4
Jan 2 20:37:56 gate xinetd-ipv6[12346]: START: daytime-stream pid=0
 from=3ffe:ffff:100:200::212:34ff:fe12:3456


   L'accettazione di una connessione IPv4, verso un servizio sshd in
   doppio ascolto, produce una riga simile a quella del seguente esempio
Jan 2 20:43:10 gate sshd[21975]: Accepted password for user from ::ffff:1.2.3.4
� port 33381 ssh2
Jan 2 20:42:19 gate sshd[12345]: Accepted password for user
 from 3ffe:ffff:100:200::212:34ff:fe12:3456 port 33380 ssh2

     _________________________________________________________________

20.6. vsftpd

20.6.1. Stare in ascolto su indirizzi IPv6

Si modifichi il file di configurazione, di solito /etc/vsftpd/vsftpd.conf,
aggiustando l'opzione di ascolto cos�
listen_ipv6=yes


   E' tutto.
     _________________________________________________________________

20.7. proftpd

20.7.1. Stare in ascolto su indirizzi IPv6

Si modifichi il file di configurazione, di solito /etc/proftpd.conf, ma si
faccia attenzione, non ha senso al 100% nel caso di installazione con host
virtuale
<VirtualHost 192.0.2.1>
        ...
        Bind 2001:0DB8::1
        ...
</VirtualHost>


   E' tutto.
     _________________________________________________________________

20.8. Altri Demoni

Al giorno d'oggi � piuttosto semplice, basta cercare un opzione della linea
di comando o un'opportuna direttiva di configurazione per abilitare
l'ascolto su IPv6. Si veda la pagina di manuale (man) del demone o si
controllino le relative FAQ. Pu� capitare che si possa associare un demone
esclusivamente all'indirizzo IPv6-"any" (::) piuttosto che ad un indirizzo
IPv6 dedicato, a causa della scarsit� del supporto (dipende da cosa � stato
implementato dal programmatore...).
     _________________________________________________________________

Capitolo 21. Programmazione (uso delle API)

Non ho esperienza nella programmazione IPv6, forse questo capitolo sar�
completato da altri o spostato in un altro HOWTO.

Maggiori informazioni possono essere trovate qui:

     * RFC 2553 / Basic Socket Interface Extensions for IPv6
     * Draft / Advanced Sockets API for IPv6 /
       draft-ietf-ipngwg-rfc2292bis-XY.txt
     * Porting applications to IPv6 HowTo di Eva M. Castro
     _________________________________________________________________

Capitolo 22. Interoperabilit�

In tutto il mondo esistono alcuni progetti che controllano
l'interoperabilit� tra i diversi sistemi operativi a proposito
dell'implementazione delle funzioni di IPv6. Alcune URL:

     * TAHI Project

   A seguire maggiori contenuti...
     _________________________________________________________________

Capitolo 23. Ulteriori informazioni e URL

23.1. Libri stampati, articoli, riviste online (misto)

23.1.1. Libri stampati (inglese)

23.1.1.1. Cisco

     * Cisco Self-Study: Implementing IPv6 Networks (IPV6), di Regis
       Desmeules. Cisco Press; ISBN 1587050862; 500 pagine; prima
       edizione (11 Aprile 2003). Nota: sar� pubblicato il 11 Aprile
       2003.
     * Configuring IPv6 with Cisco IOS, di Sam Brown, Sam Browne, Neal
       Chen, Robbie Harrell, Edgar, Jr. Parenti (Curatore), Eric Knipp
       (Curatore), Paul Fong (Curatore) 362 pagine; Syngress Media Inc;
       ISBN 1928994849; (12 Luglio 2002).
     _________________________________________________________________

23.1.1.2. Generale

     * IPv6 Essentials di Silvia Hagen, Luglio 2002, O'Reilly Numero
       d'Ordine: 1258, ISBN 0-5960-0125-8, 352 pagine. TdC, Indice,
       Capitoli di esempio ecc.; O'Reilly Pressrelease
     * IPv6: The New Internet Protocol, di Christian Huitema; pubblicato
       da Prentice-Hall; ISBN 0138505055. Descrizione: questo libro,
       scritto da Christian Huitema - un membro dell'InternetArchitecture
       Board, d� un'eccellente descrizione di IPv6, la differerenza con
       IPv4, quando e perch� � stato sviluppato. Fonte:
       http://www.cs.uu.nl/wais/html/na-dir/internet/tcp-ip/resource-list
       .html
     * IPv6 Networks di Niles Kitty; (ISBN 0070248079); 550 pagine;
       Pubblicato in data 05/01/1998.
     * Implementing IPV6. Supporting the Next Generation Internet
       Protocols di P. E. Miller, Mark A. Miller; Editore: John Wiley &
       Sons; ISBN 0764545892; seconda edizione (15 Marzo 2000); 402
       pagine.
     * Big Book of IPv6 Addressing Rfcs di Peter H. Salus (Compilatore),
       Morgan Kaufmann Publishers, Aprile 2000, 450 pagine ISBN
       0126167702.
     * Understanding IPV6 di Davies, Joseph; ISBN 0735612455; Data di
       pubblicazione 05/01/2001; Numero di Pagine: 350. Understanding
       IPV6 di Davies, Joseph; ISBN 0735612455; Data di Pubblicazione
       13/11/2002; Numero di Pagine 544.
     * Migrating to IPv6 - IPv6 in Practice. Di Marc Blanchet Editore:
       John Wiley & Sons; ISBN 0471498920; Prima edizione (Novembre
       2002); 368 pagine.
     * Programming IPv6 di Sean Walton; 560 pagine; Addison-Wesley
       Professional; ISBN 0672323443 Nota: Sar� pubblicato il 1 Agosto
       2003.
     * Wireless boosting IPv6 di Carolyn Duffy Marsan, 23/10/2000.
     * Una ricerca sulla rete O'Reilly per la parola chiave IPv6 ha
       restituito 29 risultati (28 Gennaio 2002).
     _________________________________________________________________

23.1.2. Libri stampati (tedesco)

     * Technik der IP-Netze (TCP/IP incl. IPv6) bei Amazon.de Anatol
       Badach, Erwin Hoffmann Carl Hanser Verlag M�nchen, Wien, 2001 ISBN
       3-446-21501-8 Kap. 6: Protokoll IPv6 S.205-242 Kap. 7:
       Plug&Play-Unterst�tzung bei IPv6 S.243-276 Kap. 8: Migration zum
       IPv6-Einsatz S.277-294 Kap. 9.3.4: RIP f�r das Protokoll IPv6
       (RIPng) S.349-351 Kap. 9.4.6: OSPF f�r IPv6 S.384-385 Kommentar:
       tw. nicht ganz up-to-date bzw. nicht ganz fehlerfreie Abbildungen
       Homepage des Buches und Tabelle mit Fixes
     * Internet-Sicherheit (Browser, Firewalls und Verschl�sselung) bei
       Amazon.de Kai Fuhrberg 2. akt. Auflage 2000 Carl Hanser Verlag
       M�nchen, Wien, ISBN 3-446-21333-3 Kap.2.3.1.4. IPv6 S.18-22 Kurz
       angerissen werden: RFC1825 - Security Association Konzept RFC1826
       - IP authentication Header RFC1827 - IP Encapsulation Security
       Payload
     * IPv6. Das neue Internet- Protokoll. Technik, Anwendung, Migration
       bei Amazon Hans Peter Dittler 2. akt. und erweiterte Auflage 2002
       dpunkt.verlag, ISBN 3-89864-149-X
     * Das neue Internetprotokoll IPv6 bei Amazon Herbert Wiese 2002 Carl
       Hanser Verlag, ISBN 3446216855
     _________________________________________________________________

23.1.3. Articoli, ebooks, riviste online (misto)

     * Getting Connected with 6to4 di Huber Feyrer, 06/01/2001
     * How Long the Aversion to IP Version 6 - Rivista di META Group
       Inc., l'accesso completo necessita della registrazione (gratuita)
       presso META Group Inc.
     * Transient Addressing for Related Processes: Improved Firewalling
       by Using IPv6 and Multiple Addresses per Host; scritto da Peter M.
       Gleiz, Steven M. Bellovin (PC-PDF-Version; Palm-PDF-Version;
       PDB-Version)
     * IPv6, th�orie et pratique (francese) 3e �dition, mars 2002,
       O'Reilly, ISBN 2-84177-139-3
     * IPSec (lingua: francese)
     * Internetworking IPv6 with Cisco Routers di Silvano Gai, McGrawHill
       Italia, 1997. I 13 capitoli e l'appendice A-D sono scaricabili
       cone documenti PDF.
     * Secure and Dynamic Tunnel Broker di Vegar Skaerven Wang, Master of
       Engineering Thesis in Computer Science, 2 Giugno 2000, Facolt� di
       Scienze, Dip. di Scienza dei Computer, Universit� di Tromso,
       Norvegia.
     * Aufbruch in die neue Welt - IPv6 in IPv4 Netzen von Dipl.Ing. Ralf
       D�ring, TU Illmenau, 1999
     * Migration and Co-existence of IPv4 and IPv6 in Residential
       Networks di Pekka Savola, CSC/FUNET, 2002
     _________________________________________________________________

23.1.4. Pubblicazioni di settore (riassunti, bibliografie, risorse online)

     * Standardisation Report, Dicembre 2002 pubblicato da IPv6 Cluster,
       1mb (ogni 4 mesi il rapporto standard viene aggiornato su:
       http://www.ist-ipv6.org/standards.html).
     * GEANT IPv6 Workplan
     * Mobility support in IPv6 di C.E. Perkins e D.B. Johnson. A
       Proseguimento della Seconda conferenza annuale internazionale sul
       Mobile (1996).
     * A simulation study on the performance of Mobile IPv6 in a
       WLAN-based cellular network, di Perez Costa X.; Hartenstein H. --
       Computer Networks, Settembre 2002, vol. 40, nr. 1, pagg.
       191-204(14) -- Elsevier Science.
     * IPv6 Trials on UK Academic Networks: Bermuda Project Aug.2002:
       Partecipanti - Ottenere la connessione - Progetti consegnabili -
       Topologia di rete - Assegnamento indirizzo - Accesso Wireless IPv6
       - Migrazione a IPv6 - Presentazione dei progetti - Internet 2 -
       Altri progetti IPv6 - IPv6 fora e standard Bermuda 2...
     * http://www.ipv6.ac.uk/
     * A scalable parallel internet router that enables the QoS through
       merging ATM with IPv6. Di Song S. -- Computer Communications, 1
       Maggio 2002, vol. 25, nr. 7, pagg. 647-651(5) -- Elsevier Science.
     * Linux IPv6: Which One to Deploy? Linux Journal, Vol. 96, pag. 86,
       88-90, Aprile 2002.
     * An overview and analysis of mobile Internet protocols in cellular
       environments. Chao H-C. -- Internet Research: Electronic
       Networking Applications and Policy, 24 Ottobre 2001, vol. 11, no.
       5, pagg 435-450(16) -- MCB University Press
     * IPv6 for Future Wireless NetworksToftegaard Nielsen T. -- Wireless
       Personal Communications, Giugno 2001, vol. 17, nr. 2/3, pagg.
       237-247(11) -- Kluwer Academic Publishers, Dordrecht, Olanda
     * IPv6 presso l'Universit� di Southampton
     * Seamless Support for Mobile Internet Protocol Based Cellular
       Environments Chao H-C.; Chu Y-M. -- International Journal of
       Wireless Information Networks, Luglio 2001, vol. 8, nr. 3, pagg
       133-153(21) -- Kluwer Academic/Plenum Publishers, New York, U.S.A.
     * IPv6: The Solution for Future Universal Networks. Note della
       Conferenza in Computer Science, Vol. 1818, pagg 82-??, 2000.
     * Modeling and performance analysis for IPv6 traffic with multiple
       QoS classes. Zhang L.; Zheng L. -- Computer Communications, 1
       October 2001, vol. 24, no. 15, pp. 1626-1636(11) -- Elsevier
       Science.
     * Threshold-Based Registration (TBR) in Mobile IPv6. Note della
       conferenza in Computer Science, Vol. 1818, pagg 150-??, 2000.
     * IPv6 Performance Analysis on FreeBSD Workstation Using Simple
       Applications. Note della conferenza in Computer Science, Vol.
       1961, pagg 33-??, 2000.
     * Microsoft Research IPv6 Implementation (MSRIPv6): MSRIPv6
       Configuring 6to4 - Connectivity with MSR IPv6 - Our 6Bone Node... 
     * New frontiers in cybersegmentation: marketing success in
       cyberspace depends on IP address. Louvieris P.; Driver J. --
       Qualitative Market Research: An International Journal, 27 Giugno
       2001, vol. 4, nr. 3, pagg 169-181(13) -- MCB University Press.
     * QoS-Conditionalized Handoff for Mobile IPv6. Note della conferenza
       in Computer Science, Vol. 2345, pagg 721-??, 2002.
     _________________________________________________________________

23.1.5. Altre

Per maggiori informazioni si veda l'URL: Guida IPv6 SWITCH / Riferimenti
     _________________________________________________________________

23.2. Conferenze, Incontri, Summit

23.2.1. 2002

     * Renater - Conf�rence IPv6 2002
     * IPv6 Deployment Summit at INET 2002

   Ho lasciato qualcosa? Eventuali suggerimenti sono ben accetti!
     _________________________________________________________________

23.2.2. 2003

Eventuali suggerimenti sono ben accetti!
     _________________________________________________________________

23.3. Informazione online

23.3.1. Entrare a far parte del backbone IPv6

Da completare pi� avanti con maggiori contenuti... i suggerimenti sono ben
accetti!
     _________________________________________________________________

23.3.1.1. Registri Globali

     * Backbone di test IPv6: 6bone, Come entrare a far parte del 6bone,
       Teilnahme am 6bone (lingua tedesca), partecipazione al 6bone
       (lingua inglese)
     _________________________________________________________________

23.3.1.2. I principali registri regionali

     * America: ARIN, ARIN / pagine di registrazione, ARIN / linee guida
       IPv6
     * EMEA: Ripe NCC, Ripe NCC / pagina di registrazione, Ripe NCC /
       registrazione IPv6
     * Asia/Pacifico: APNIC, APNIC / IPv6 guida alle risorse
     * America Latina e Caraibi: LACNIC, Servizi di registrazione IPv6,
       Politica di allocazione IPv6
     * Africa: AfriNIC

   Inoltre un elenco delle maggiori allocazioni (lunghezza prefisso 32)
   per ogni registro locale � disponibile qui: Ripe NCC / IPv6
   allocations.
     _________________________________________________________________

23.3.1.3. Tunnel broker

Nota: Un elenco dei tunnel broker disponibili pu� essere trovato nella
sezione Tunnel broker pi� avanti.

     * Il codice sorgente usato nella tesi per il Master di Vermicelli
       sul tunnel broker, Universit� di Tromso.
     * Ex IPng. risorse, tunnel broker e IPv6, ora migrati al Sistema
       SixXs.
     * Pagina IPv6-con-Linux di Eckes.
     * RIPE6.net: Configurare un tunnel IPv6 verso un tunnel broker;
       Instradare IPv6 dal vostro router ad altri client nella vostra
       rete...
     * tunnelc - uno script tunnel client basato su perl: freshmeat.net:
       Dettagli del progetto per tunnel client SourceForge: Informazioni
       Progetto - tunnelc (anche qui)
     * Mailing list Tunnelbroker (DE)
     * Linux Advanced Routing & Traffic Control HOWTO, Capitolo 6:
       tunneling IPv6 con Cisco e/o 6bone.

   Si veda anche qui per maggiori informazioni e URL: ipv6-net.org.
     _________________________________________________________________

23.3.1.4. 6to4

     * informazioni 6to4 di NSayer
     * RFC 3068 / An Anycast Prefix for 6to4 Relay Routers
     _________________________________________________________________

23.3.1.5. ISATAP

     * ISATAP (Intra-Site Automatic Tunnel Access Protocol) Information
       by JOIN
     _________________________________________________________________

23.3.2. Ultime notizie

Da completare pi� avanti... i suggerimenti sono ben accetti!

     * hs247 / notizie e informazioni IPv6
     * bofh.st / ultime notizie IPv6 (attualmente [Gennaio 2002]
       obsoleto...), anche homepage per il canale #IPv6 su IRCnet
     * ipv6-net.org, forum tedesco
     _________________________________________________________________

23.3.3. Riferimenti al protocollo

23.3.3.1. Request For Comment (RFC) relativi a IPv6

La pubblicazione dell'elenco degli RFC relativi a IPv6 va oltre lo scopo di
questo documento, le URL elencate vi potranno condurre a qualche lista:

     * Elenco ordinato per Stato di standardizzazione di IPng o Attuali
       specifiche di IPng di Robert Hinden
     * Specifiche relative a IPv6 su IPv6.org
     _________________________________________________________________

23.3.3.2. Attuali bozze dei gruppi di lavoro

Attuali (anche) bozze relative a IPv6 si possono trovare qui:

     * IP Versione 6 (ipv6)
     * Next Generation Transition (ngtrans)
     * Configurazione Host Dinamica (dhc)
     * Estensioni del Domain Name System (dnsext)
     * IP Mobile (mobileip)
     * Ottenere qualsiasi informazione su IPv6, dalle rassegne generali,
       attraverso bozze &RFC, fino alle implementazioni (inclusa la
       disponibilit� di stack su varie piattaforme & codice sorgente per
       stack IPv6)
     * Specifiche IPv6 - Gli ultimi RFC e raccolte di Internet Drafts.
     _________________________________________________________________

23.3.3.3. Altre

     * Magie di Rete / IPv6, Internet Protocol versione 6, intestazioni
       protocollo IPv6
     * Guida/Riferimenti IPv6 SWITCH , enorme elenco di riferimenti IPv6
       mantenuto da Simon Leinen
     * Laboratorio di Amministrazione di Rete Avanzato / Oracolo
       indirizzo IPv6 mostra in dettaglio gli indirizzi IPv6
     _________________________________________________________________

23.3.4. Maggiori informazioni

Da completare con maggiori contenuti pi� avanti... i suggerimenti sono ben
accetti!

DeepSpace6 / ancora link interessanti
     _________________________________________________________________

23.3.4.1. Relativi a Linux

     * DeepSpace6 / (Non solo) Portale Linux IPv6 - Italia (Mirror)
     * IPv6-HowTo for Linux di Peter Bieringer - Germania e il suo
       Bieringer / IPv6 - archivio software
     * Stato di Linux+IPv6 di Peter Bieringer - Germania (sta diventando
       obsoleto)
     * DeepSpace6 / Pagina dello stato di IPv6 - Italia (Mirror)
       (prender� il posto della precedente)
     * progetto USAGI - Giappone, e il loro progetto USAGI - archivio
       software
     * Pagina Linux IPv6 di Gav
     _________________________________________________________________

23.3.4.2. Relative a Linux per distribuzione

   PLD
          Distribuzione Linux PLD ("leader del mercato" per il contenuto
          di pacchetti abilitati IPv6)

   Red Hat
          Red Hat Linux, Pacchetti IPv6 di Pekka Savola

   Debian
          Debian Linux, Informazioni e stato di IPv6 di Craig Small,
          Jim's insignificant LAN IPv6 global connectivity HOWTO

   SuSE
          SuSE Linux

   Mandrake
          Linux Mandrake

   Per maggiori informazioni si veda Stato delle distribuzioni
   IPv6+Linux.
     _________________________________________________________________

23.3.4.3. Generale

     * IPv6.org
     * 6bone
     * Centro risorse IPv6 UK - UK
     * JOIN: informazioni IPv6 - Germania, della squadra del progetto
       JOIN che mantiene anche Collegamenti a pagine WWW esterne
       comprendenti IPv6/IPng.
     * progetto TIPSTER6 - Ungheria, "Testare Tecnologia Sperimentale e
       Servizi IPv6 in Ungheria".
     * progetto WIDE - Giappone
     * Guida IPv6 SWITCH - Svizzera
     * Angolo IPv6 di Hubert Feyrer - Germania
     * Progetto Vermicelli - Norvegia
     * Forum IPv6 - un consorzio mondiale di leader nella distribuzione
       di Internet, Reti di Ricerca &Didattica...
     * Playground.sun.com / Pagina Informazioni IPv6 - mantenuta da
       Robert Hinden e Nokia. Contiene qualsiasi informazione su IPv6,
       dalle rassegne generali, attraverso bozze & RFC, fino alle
       implementazioni (inclusa la disponibilit� di stack su varie
       piattaforme & codice sorgente per stack IPv6).
     * Centro di ricerca Ames della NASA (obsoleto)
     * 6INIT - Iniziativa Internet IPv6 - un quinto progetto di struttura
       di lavoro Europeo sotto il programma IST.
     * Task Force IPv6 (Unione Europea)
     * Documento Progetto IPv6 (lingua giapponese)
     * 6init - IPv6 INternet IniTiative
     * Visione D'insieme di IP Next Generation
     * Home page del gruppo IPng.
     * IPv6: La nuova versione del protocollo Internet, di Steve Deering.
     * IPv6: La Prossima Generazione del Protocollo Internet, di Gary C.
       Kessler.
     * IPv6: Protocollo di Prossima Generazione - 3Com
     * Letteratura della Ricerca IPv6 (IPng), di Mike Crawfurd.
     * Iniziativa Internet Prossima Generazione
     * sito internet II e Gruppo di Lavoro internet2 - Presentazione
       (HTML + PPT) dal laboratorio IPv6: (Autoconfigurazione Stateless,
       Indirizzamento IPv6, USAGI, Indirizzamento IPv6 indipendente dal
       provider e altri argomenti).
     * NetworkWorldFusion: Ricerca / Trovare Documenti: ricercato per
       parola chiave IPv6 (102 documenti trovati il 22.12.2002)
     * The Register (La ricerca di IPv6 il 22.12.2002, ha dato come
       risultato 30 documenti)
     * ricerca su ZDNet per IPv6
     * Ricerca su TechTarget per IPv6
     * Elenco risorse per IPv6 &TCP
     * Strumenti IPv6 Klingon, Strumenti IPv6 Klingon (accesso solo per
       IPv6 nativo): esempi di firewall IPv6, test della larghezza di
       banda e portscanner

   Ho dimenticato qualcosa? I suggerimenti sono ben accetti!
     _________________________________________________________________

23.3.4.4. Ricerca di Mercato

     * La storia di due direzioni di Tecnologia Wireless: Outsourcing
       dello sviluppo dei Processori e IPv6 Gruppo Yankee - 4/1/2002 - 12
       Pagine - ID: YANL768881
     * Atlante Mondiale di Internet: Americhe; IDATE - 2/1/2002 - 242
       Pagine - ID: IDT803907. Paesi coperti: America Centrale, Nord
       America, Sud America; Elenco: Prezzo: $ 3,500.00; stralcio:
       Panorama dei mercati di accesso a Internet nel mondo. Valutazione
       di mercato e previsione fino al 2006 per 34 paesi: struttura del
       mercato: principali ISP e quote di mercato; numero di abbonati, di
       ISP.
     * Crescita del primo interesse per IPv6 di IDC (Autore); Prezzo di
       Listino: $1,500.00; Edizione: e-book (Acrobat Reader); Editore:
       IDC; ISBN B000065T8E; (1 Marzo 2002)
     _________________________________________________________________

23.3.4.5. Brevetti

     * Database Brevetti Canadesi: Home, Ricerca (Ricerca di Base,
       semplicemente si metta IPv6 nel campo di ricerca ;-); trovati 84
       documenti il 22.12.2002)
     * Espacenet - Informazioni sui brevetti Europei: Uffici Nazionali,
       Membri di Espacenet(IPv6: 84 documenti, 22.12.2002)
     * Ricerca Delphion: Pagina di Ricerca Brevetti. Registrazione di
       base (gratuita) richiesta. Esempi trovati il 21.12.2002 cercando
       IPv6: Metodo di comunicazione tra terminali IPv4 e terminali IPv6
       e apparati di conversione IPv4-IPv6 Traduttore per reti IP,
       sistemi di rete che usano il traduttore e metodo di accoppiamento
       di reti IP
     _________________________________________________________________

23.3.5. Per paesi

23.3.5.1. Europe

     * www.ist-ipv6.org: Cluster IPv6 IST, Progetti di Ricerca e Sviluppo
       IPv6 Europei
     * Euro6IX: Backbone Internet Exchange IPv6 Europeo
     _________________________________________________________________

23.3.5.2. Austria

     * IPv6@IKNnet e Gruppo di Ricerca MIPv6: TU Vienna, Austria (IPv6:
       progetto, pubblicazioni, diploma / tesi di dottorato, Andamento
       delle Conferenze ecc.)
     _________________________________________________________________

23.3.5.3. Australia

     * Pagine Australiane IPv6 di Carl (contenuto vecchio)
     _________________________________________________________________

23.3.5.4. Belgio

     * BELNET: La Rete di Ricerca Belga
     * Euronet: uno dei pi� grandi ISP del Belgio...
     _________________________________________________________________

23.3.5.5. Brasile

     * BR6bone
     * Conferenza IPv6 in Brasile
     * IPv6 do Brasil
     _________________________________________________________________

23.3.5.6. Cina

     * Nokia Cina - Sito IPv6
     * Iniziativa Internet6 di Nokia Cina
     _________________________________________________________________

23.3.5.7. Cecoslovacchia

     * IPv6 su Cecoslovacchia On Line
     _________________________________________________________________

23.3.5.8. Germania

     * IPv6-net.org: forum IPv6 Tedesco
     _________________________________________________________________

23.3.5.9. Francia

     * Renater: Pagina Progetto IPv6 Renater
     * IPv6 - RSVP - ATM presso INRIA
     * Documentazione IPv6 NetBSD
     _________________________________________________________________

23.3.5.10. Ungheria

     * Testare Tecnologia Sperimentale e Servizi IPv6 in Ungheria
     * Pagina Ungherese di informazione su IPv6
     _________________________________________________________________

23.3.5.11. India

     * IPv6 presso il BITS
     _________________________________________________________________

23.3.5.12. Italia

     * Project6: Networking IPv6 con Linux
     * Edisontel: Portale IPv6 di Edisontel
     _________________________________________________________________

23.3.5.13. Giappone

     * Gruppo utenti Linux IPv6 JP
     * IPv6 Yamaha (spiacente, tutto in giapponese...)
     _________________________________________________________________

23.3.5.14. Corea

     * ETRI: Instituto di Ricerca di Elettronica e Telecomunicazioni
     * Forum IPv6 Corea: Progetto di Sviluppo IPv6 Coreano
     _________________________________________________________________

23.3.5.15. Messico

     * IPv6 Messico (versione spagnola & inglese): Homepage del progetto
       IPv6 dell'Universit� Nazionale Autonoma del Messico (UNAM)
     _________________________________________________________________

23.3.5.16. Olanda

     * SURFnet: Backbone IPv6 SURFnet
     * STACK, STACK (IPv6): Associazione degli studenti di computer
       dell'Universit� della Tecnologia di Eindhoven, Olanda
     * IPng.nl: collaborazione tra WiseGuys e Intouch
     _________________________________________________________________

23.3.5.17. Portogallo

     * Pagine IPv6 di Miguel Rosa (non funzionanti?)
     * FCCN (Fondazione Nazionale per la Computazione Scientifica)
     * Universit� dell'Algarve, Portogallo
     * IPv6 - MFA
     _________________________________________________________________

23.3.5.18. Russia

     * Forum IPv6 per la Russia: Centro Internet dell'Universit� Statale
       Yaroslavl
     _________________________________________________________________

23.3.5.19. Svizzera

     * SWITCH: La Rete Svizzera di Didattica &Ricerca
     _________________________________________________________________

23.3.5.20. Regno Unito

     * IPv6 nel R.U.
     * Centro risorse IPv6 del R.U.
     * Home IPv6 di British Telecom: Esperimento IPv6 dell'ISP BT, primo
       Internet Exchange IPv6 del R.U. ecc.
     _________________________________________________________________

23.3.6. Per sistemi operativi

23.3.6.1. *BSD

     * progetto KAME (*BSD)
     * FAQ sul networking IPv6 di NetBSD
     * Progetto Documentazione FreeBSD
     * Port di FreeBSD: Ipv6
     * BUGAT - Gruppo utenti BSD Austria - www.bugat.at: Tunnel IPv6
       FreeBSD (lingua Tedesca)
     _________________________________________________________________

23.3.6.2. Cisco IOS

     * Pagina di ingresso Cisco IOS IPv6
     * IPv6 per il Software Cisco IOS, File 2 di 3: Agosto 2002 -- Tavola
       dei Contenuti: IPv6 per il Software Cisco IOS; Documentazione
       Specifiche di Configurazione; Abilitare l'instradamento IPv6 e
       Configurazione; Indirizzamento IPv6; Abilitare Globalmente il
       Trattamento di IPv6.
     * Prontuario Cisco sull'Internet Networking, Capitolo IPv6
     _________________________________________________________________

23.3.6.3. Compaq

     * IPv6 presso Compaq - Presentazioni, Pagine Bianche,
       Documentazione...
     _________________________________________________________________

23.3.6.4. HPUX

     * FAQ di comp.sys.hp.hpux
     _________________________________________________________________

23.3.6.5. IBM

     * Ora che IBM ha annunciato la disponibilit� dello z/OS V1.4, che
       c'� di nuovo in questa release? Questa domanda fu posta il 15
       Agosto 2002
     _________________________________________________________________

23.3.6.6. Microsoft

     * Microsoft Windows 2000 IPv6
     * MSRIPv6 - Rete di Ricerca Microsoft - Homepage IPv6
     * Iniziare con l'anteprima della Tecnologia IPv6 per Windows 2000
     * Internet Connection Firewall Non Blocca il Traffico del Protocollo
       Internet Versione 6 (6.11.2001)
     * Numeri di Protocollo Internet (8.10.2002)
     * Aggiornamento sull'anteprima della Tecnologia IPv6 (16.10.2002)
     * HOW TO: Installare e configurare IP Versione 6 su Windows .NET
       Enterprise Server (26.10.2002)
     * Il Servizio Router 6to4 di Windows .NET Server Termina quando si
       avvisa un indirizzo 2002 sull'Interfaccia Pubblica (28.10.2002)
     * msdn - Microsoft Windows CE .NET - comandi IPv6
     * msdn - ricerca per IPv6 (100 risultati, 22.12.2002)
     _________________________________________________________________

23.3.6.7. Solaris

     * Pagina IPv6 Sun Microsystems per Solaris 8
     * Solaris 2 Frequently Asked Questions (FAQ) 1.73
     _________________________________________________________________

23.3.6.8. Sumitoma

     * Sumitomo Electric ha implementato IPv6 sui router della famiglia
       Suminet 3700
     _________________________________________________________________

23.3.6.9. ZebOS

     * ZebOS Server Routing Software di IpInfusion
     _________________________________________________________________

23.3.7. Sicurezza IPv6

     * Internet Security Systems: Centro per la Sicurezza, Ricerca
       Database X-Force (21.12.2002 - 6 argomenti trovati relativi a
       IPv6)
     * Progetto IPsec NIST (Istituto Nazionale degli Standard e delle
       Tecnologie, NIST)
     * Information Security, Ricerca per IPv6 (21.12.2002 - 9 articoli
       trovati)
     * NewOrder.box.sk (ricerca per IPv6) (Articoli, exploit, file
       database ecc.)
     _________________________________________________________________

23.3.8. Elenchi di applicazioni

     * IPv6.org / Applicazioni abilitate IPv6
     * Freshmeat / ricerca per IPv6, attualmente (14 Dicembre 2002) 62
       progetti
     * Forum IPv6: Elenco Router IPv6
     _________________________________________________________________

23.3.8.1. Strumenti di analisi

     * Ethereal - Ethereal � un analizzatore di protocollo libero per
       Unix e Windows
     * Radcom RC100-WL - Download dell'analizzatore di protocollo Radcom
       RC100-WL versione 3.20
     _________________________________________________________________

23.3.8.2. Prodotti IPv6

     * 6wind - soluzioni per Router IPv4/IPv6, QoS, Multicast, Mobilit�,
       Sicurezza/VPN/Firewall.
     * patch di Fefe per IPv6 con djbdns Agosto 2002 -- Cos'� djbdns e
       perch� necessita di IPv6? djbdns � un server DNS completamente
       maturo che si avvicina alle performance di BIND.
     * Home page IPv6 di Hitachi Ltd. Prodotti IPv6 GR2000 - router IPv6;
       Toolnet6 - Protocol Exchange software per IPv6.
     * Suite ZebOS Server Routing
     * SPA Mail Server 2.21
     * Inframail (Advantage Server Edition) 4.0
     * HTTrack Website Copier 3.2
     * CommView 3.4
     * Posadis 0.50.6
     * Xceed Winsock Library 1.2
     * CommView 3.4
     * TCP Wrapper (pronto per IPv6)
     _________________________________________________________________

23.3.8.3. SNMP

     * FAQ su SNMP di comp.protocpols.snmp Parte 1 di 2
     _________________________________________________________________

23.4. Infrastruttura IPv6

23.4.1. Statistiche

     * Storico della tabella di routing IPv6 creato da Gert D�ring,
       Space.Net
     * Statistiche dell'Utilizzo di www6.vermicelli.pasta.cs.uit.no
       (ultimi 12 mesi)
     * Elenco Ufficiale delle statistiche del Webserver 6bone
     * Dati di Allocazione di IPv6 &Vista dei Risultati, IPv6 WG, Ripe
       42, Ripe NCC
     _________________________________________________________________

23.4.2. Internet Exchange

Un'altra lista degli Internet Exchange IPv6 si pu� trovare qui: Sito Web
Exchange IPv6 o Stato IPv6 degli IXP in Europa
     _________________________________________________________________

23.4.2.1. Estonia

     * TIX (tallinn interneti exchange con supporto ipv6)
     _________________________________________________________________

23.4.2.2. Europa

     * Euro6IX, Backbone Internet Exchange IPv6 Europeo
     _________________________________________________________________

23.4.2.3. Francia

     * Internet Exchange IPv6 Nazionale Francese (attivo dal 1.11.2002).
       FNIX6 fornisce un'interconnessione FastEthernet ad alta velocit�
       affidabile e gratuita tra ISP che si trovano su TeleCity Paris.
     _________________________________________________________________

23.4.2.4. Germania

     * INXS: (Cavo & Wireless) Monaco e Amburgo
     _________________________________________________________________

23.4.2.5. Giappone

     * NSPIXP-6: Internet Exchange basato su IPv6 a Tokyo
     * JPIX, Tokyo
     _________________________________________________________________

23.4.2.6. Corea

     * 6NGIX
     _________________________________________________________________

23.4.2.7. Olanda

     * AMS-IX: Amsterdam Internet Exchange
     _________________________________________________________________

23.4.2.8. Regno Unito

     * UK6X: Londra
     * XchangePoint: Londra
     _________________________________________________________________

23.4.2.9. USA

     * 6TAP: Chicago. Supporta il peering in tutto il mondo.
     * NY6IX: Internet Exchange basato su IPv6 nella citt� di New York
     * 6IIX: New York, Los Angeles e Santa Clara
     * PAIX: Palo Alto
     _________________________________________________________________

23.4.3. Tunnel broker

Si veda anche: http://www.deepspace6.net/docs/tunnelbrokers.html
     _________________________________________________________________

23.4.3.1. Belgio

     * Wanadoo
     _________________________________________________________________

23.4.3.2. Canada

     * Freenet6 - Delega /48, Canada Ottenere IPv6 Usando Freenet6 su
       Debian creatore Freenet6
     _________________________________________________________________

23.4.3.3. Cina

     * CERNET-Nokia
     _________________________________________________________________

23.4.3.4. Estonia

     * Estpak
     _________________________________________________________________

23.4.3.5. Europa

     * XS26 Tunnel Broker Distribuito, USA & Europa
     _________________________________________________________________

23.4.3.6. Germania

     * JOIN, Universit� di M�nster
     * Tunnelbroker di Leipzig, Germania - Utenti Dialup con indirizzi IP
       dinamici, possono ottenere un indirizzo IPv6 statico... JOIN,
       Tunnelbroker di Leipzig, (attualmente offline ?) Das offizielle
       IPv6 Forum, Leipziger Tunnelbroker Flusso dal vivo IPv6
       sperimentale! 6bone Knoten Leipzig Info bez. Hackangriff (2001)
       Tunnelbroker per JOIN. Questo tunnel broker � a disposizione solo
       per gli studenti ed i membri dello staff di collegi ed universit�
     * Berkom
     _________________________________________________________________

23.4.3.7. Italia

     * Centro Studi e Laboratorio di Telecomunicazioni ( Pagina di
       Download: TunnelBroker Versione 2.1.) IPv6 Tunnel Broker:
       Istruzioni di installazione
     * EdisonTel
     * Comv6
     * Bersafe (lingua italiana)
     * LAB Telecom Italia (Pagina di Download del Software Tunnelbroker)
     _________________________________________________________________

23.4.3.8. Giappone

     * Iniziativa Internet Giappone (Lingua Giapponese) - con servizio di
       linea nativa IPv6 e servizio di tunneling IPv6
     _________________________________________________________________

23.4.3.9. Malesia

     * Manis
     _________________________________________________________________

23.4.3.10. Olanda

     * XS26 - "Accesso a Six" - con POP nella Repubblica Slovacca,
       Repubblica Ceca, Olanda, Germania e Ungheria.
     * IPng Olanda - Intouch, SurfNet, AMS-IX, UUNet, Cistron, RIPE NCC e
       AT&T sono connessi presso lo AMS-IX. � possibile ottenere (previo
       possesso di alcuni requisiti) un tunnel statico.
     * Utenti SURFnet
     _________________________________________________________________

23.4.3.11. Norvegia

     * UNINETT, Guida al Servizio IPv6 (per gli Utenti): tunnelbroker &
       allocazione indirizzo Tunnel Broker di UNINETT (link corretto, ma
       non disponibile - 23.12.2002) Uninett-Autoupdate-HOWTO
     _________________________________________________________________

23.4.3.12. Spagna

     * Consulintel
     _________________________________________________________________

23.4.3.13. Svizzera

     * Tunnelbroker AS8758, Dolphins Network Systems (attivo dal
       20.12.2002)
     _________________________________________________________________

23.4.3.14. Regno Unito

     * NTT Europa, NTT, Regno Unito - Prova di IPv6. Tunnel IPv4 e
       connessioni leased line native IPv6. I POP si trovano a Londra UK,
       Dusseldorf Germania, New Jersey USA (Costa Est), Cupertino USA
       (Costa Ovest), Tokyo Giappone
     * Servizio Tunnel Broker IPv6 BtexacT
     * IPNG-UK
     _________________________________________________________________

23.4.3.15. USA

     * ESnet, USA - Rete delle Scienze dell Energia: Registro Tunnel &
       Delegazione Indirizzo per siti direttamente connessi a ESnet e
       collaboratori ESnet.
     * 6REN, USA - L'iniziativa 6ren viene coordinata dalla Rete delle
       Scienze dell'Energia (ESnet), la rete per il programma di ricerca
       sull'energia del dipartimento americano dell'energia, presso il
       Laboratorio Nazionale Lawrence Berkeley dell'Universit� della
       California.
     * Tunnel Broker Distribuito XS26 , USA & Europa
     * Hurricane Electric, US backbone; Hurrican Electric Tunnelbroker
       (anche disponibile su http://tunnelbroker.com/) Comunicato Stampa:
       Hurricane Electric Upgrades IPv6 Tunnel Broker Tunnel Broker
       Endpoint Autoupdate, Script Perl
     * Mondo Services
     * DHIS Tunnel Dinamico, Sistema di Informazione Host Dinamico,
       Universit� di Bradford
     _________________________________________________________________

23.4.3.16. Singapore

     * http://tunnel-broker.singnet.com.sg/, con NAT e opzione IPsec
     _________________________________________________________________

23.4.3.17. Altri tunnel broker...

     * Relay Router 6to4 Pubblici (boicottaggio di MS IIE!)
     _________________________________________________________________

23.4.4. Servizi nativi IPv6

Nota: Questi servizi sono disponibili solo con una connessione IPv6 valida!
     _________________________________________________________________

23.4.4.1. Server per giochi

     * Quake2 su IPv6
     _________________________________________________________________

23.4.4.2. Server IRC

     * Cyconet (IRCnet Server Cyconet su IPv6)
     _________________________________________________________________

23.4.4.3. Stazioni radio, flussi musicali

     * Flusso sperimentale IPv6 dal vivo!, Universit� di Leipzig,
       Germania
     _________________________________________________________________

23.4.4.4. Server Web

     * Casa del Linux IPv6 HOWTO di Peter Bieringer

   Ho dimenticato qualcosa? I suggerimenti sono ben accetti!
     _________________________________________________________________

23.5. Mailing list

Elenchi di mailing list sono disponibili presso:

     * Progetto JOIN / Elenco di mailing list relative a IPv6
     * DeepSpace6 / Mailing List

   Le mailing list pi� importanti sono elencate nella seguente tabella:

   .

                     Focus

   Indirizzo e-mail per richiesta

   Cosa sottoscrivere

   Indirizzo e-mail lista

   Lingua

   Accesso tramite WWW

   Networking del kernel Linux incluso IPv6

   majordomo (at) oss.sgi.com

   netdev

   netdev (at) oss.sgi.com

   Inglese

   Archivio

   Linux e IPv6 in generale (1)

   majordomo (at) list.f00f.org

   linux-ipv6

   linux-ipv6 (at) list.f00f.org (moderata)

   Inglese

   Implementazione Linux del protocollo IPv6

   Su Web, si veda l'URL

        project6 (at) ferrara.linux.it

   Inglese

   Info, Sottoscrizione

   IP(v6) mobile per Linux

   majordomo (at) list.mipl.mediapoli.com

   mipl

   mipl (at) list.mipl.mediapoli.com

   Inglese

   Info, Archivio

   utenti Linux IPv6 con estensioni USAGI

   usagi-users-ctl (at) linux-ipv6.org

        usagi-users (at) linux-ipv6.org

   Inglese

   Info / Ricerca, Archivio

   IPv6 su Debian Linux

   su Web, si veda l'URL

       debian-ipv6 (at) lists.debian.org

   Inglese

   Info/Sottoscrizione/Archivio

   IPv6/6bone in Germania

   majordomo (at) atlan.uni-muenster.de

   ipv6

   ipv6 (at) uni-muenster.de

   Tedesco/Inglese

   Info, Archivio

   6bone

   majordomo (at) isi.edu

   6bone

   6bone (at) isi.edu

   Inglese

   Info, Archivio

   Discussioni IPv6

   majordomo (at) sunroof.eng.sun.com

   ipng

   ipng (at) sunroof.eng.sun.com

   Inglese

   Info, Archivio, Mirror dell'archivio

   Utenti IPv6 in generale

   majordomo (at) ipv6.org

   users

   users (at) ipv6.org

   Inglese

   Info, Archivio

   Bugtracking delle applicazioni Internet (2)

   bugtraq-subscribe (at) securityfocus.com

   bugtraq (at) securityfocus.com (moderata)

   Inglese

   Info, Archivio

   IPv6 in generale

   su Web, si veda l'URL

               ipv6 (at) ipng.nl

   Inglese

   Info/Sottoscrizione, Archivio

   majordomo (at) mfa.eti.br

   majordomo (at) mfa.eti.br

   ipv6

   ipv6 (at) mfa.eti.br

   Portoghese

   Info

   (1) raccomandata per argomenti comuni di Linux & IPv6.

   (2) molto raccomandata se si forniscono applicazioni server.

   Ho dimenticato qualcosa? I suggerimenti sono ben accetti!

   Inoltre le seguenti mailing list & newsgroups sono disponibili via
   web:

     * ipv6 (France) Descrizione: ipv6 Cette liste existe pour discuter
       en fran�ais de IP version 6. Elle s'addresse aux personnes
       desirant demarer des aujourd'hui des tests IPv6. Ce n'est en aucun
       cas un substitut des listes de l'IETF. Pour de plus amples
       informations: http://www.urec.fr/IPng
     * Tunnelbroker Maillingliste (Germania)
     * ipv6 (Ungheria) Descrizione: ipv6 Az IPv6 protokoll listaja
       Konfiguracios es adminisztracios kerdesek az IPv6-al kapcsolatban.
       (Archivum)
     * student-ipv6 (India) Descrizione: Questo � il gruppo relativo allo
       Student Awareness dell'IPv6 in India
     * IPV6-CNR@LISTSERV.CNR.IT (Italia) Descrizione: Gruppo di interesse
       IPv6 del CNR
     * ipv6-jp (Giappone)
     * ipv6 (Giappone)
     * IPV6@LISTS.UTWENTE.NL (Olanda) Descrizione: IPv6 overleg
     * IPV6@NIC.SURFNET.NL (Olanda) Descrizione: AMS-IX list for IPv6
       related matters
     * sun-ipv6-users Descrizione: Si prega di riportare
       prolemi/suggerimenti riguardanti l'implementazione SUN
       Microsystems di IPng
     * IPv6-BITS Descrizione: Questo gruppo coordiner� il lavoro del
       progettto Vertebrae.
     * openbsd-ipv6
     * IPv6 Descrizione: Questa mailing list tratta discussioni tecniche
       sulla possibilt� dell'IPv6/IPsec WRT di OpenBSD.
     * linux-bangalore-ipv6 Descrizione: La lista del Bangalore Linux
       User Group
     * gab Descrizione: L'intento � quello di discutere sui piani
       relativi all'indirizzamento di IPv6.
     * ipv6-bsd-user Descrizione: Questa mailing list � relativa
       all'implementazione IPv6 di INRIA/IMAG. Cette liste de discussion
       est au sujet de l'implementation INRIA/IMAG IPv6. Elle est
       bilingue Francais/Anglais. La mailing list � bilingua, francese e
       inglese. Se si desidera contattare gli implementatori, si provi
       ipv6-bsd-core@imag.fr. Si vous voulez contacter les implementeurs,
       essayez ipv6-bsd-core@imag.fr.
     * gated-ipv6
     * packet-switching Descrizione: Questa mailing list fornisce un
       forum per la discussione della teoria dello scambio dei pacchetti
       (packet switching), la tecnologia, l'implementazione e
       l'applicazione in ogni aspetto di rilievo, incluso, senza
       limitazioni, LAPB, X.25, SDLC, P802.1d, LLC, IP, IPv6, IPX,
       DECNET, APPLETALK, FR, PPP, IP Telephony, sistemi LAN PBX,
       protocolli di gestione come SNMP, e-mail, sistemi a finestra di
       rete trasparente (network transparent window), implementazione e
       verifica dei protocolli, test di conformit� e strumenti per la
       manutenzione o lo sviluppo dei sistemi di scambio dei pacchetti.
     * mumbaiinternetgroup Descrizione: Questo forum discute gli
       argomenti e gli sviluppi relativi ad Internet nella zona
       Asia/Pacifico. Vi si possono trovare discussioni su IPv4, IPv6,
       DNS, Numeri di Autonomous System, Internet Governence e molto di
       pi�...
     * de.comm.protocols.tcp-ip Descrizione: Umstellung auf IPv6
       Sorgente: Chartas der Newsgruppen in de.*
     * Hurricane Electric IPv6 Forum
     * Gruppo Google: comp.protocols.tcp-ip
     * Gruppo Google: linux.debian.maint.ipv6
     * Gruppo Google: microsoft.public.platformsdk.networking.ipv6
     * Gruppo Google: fa.openbsd.ipv6
     _________________________________________________________________

23.6. Strumenti on line

23.6.1. Testing tools

     * finger, nslookup, ping, traceroute, whois: Centro Risorse UK IPv6
       / Pagina di test
     * ping, traceroute, tracepath, registro 6bone, DNS: JOIN / Strumenti
       di test (solo lingua tedesca, ma non dovrebbero esserci problemi
       per chi non la capisce)
     * traceroute6, whois: IPng.nl
     * AAAA Lookup Checker http://www.cnri.dit.ie/cgi-bin/check_aaaa.pl
     _________________________________________________________________

23.6.2. Recupero di informazioni

     * Registro 6BONE
     * Elenco di tutti i blocchi IP IPv6-aggregated mondiali
       (aggiornamento giornaliero) Lo stesso servizio dal RIPE
     _________________________________________________________________

23.6.3. Looking Glass IPv6

     * IMAG, Francia
     * Looking Glass IPv6 presso SURRIEL
     * APAN, Giappone (APAN-JP)
     * Looking Glass DRENv6
     _________________________________________________________________

23.6.4. Applicazioni di aiuto

     * Calcolatrice di prefissi IPv6 di TDOI
     * verifica record DNS
     _________________________________________________________________

23.7. Addestramento, Seminari

     * Addestramento e Laboratorio IPv6, AERAsec, Germania (solo in
       lingua Tedesca per ora)
     * Migrazione a IPv6, Learning Tree International
     * CIW Internetworking Professional Training CBT CD
     * Pagine di Addestramento, R.U. - Ricerca per IPv6 (13 Corsi,
       22.12.2002)

   Ho dimenticato qualcosa? I suggerimenti sono ben accetti!
     _________________________________________________________________

23.8. 'La Scoperta On line' ...

IPv6: Addressing The Needs Of the Future [DOWNLOAD: PDF] del Yankee Group
(Autore) Prezzo di Listino: $595.00 Edizione: e-book (Acrobat Reader)
Pagine: 3 (tre) Editore: MarketResearch.com; ISBN B00006334Y; (1 Novembre
2001)

;-) Il numero delle copie sembra interessante...
     _________________________________________________________________

Capitolo 24. Storico delle revisioni / Ringraziamenti / La Fine

Le versioni x.y sono pubblicate su Internet.

Le versioni x.y.z sono in lavorazione e vengono pubblicate come file LyX e
SGML su CVS. Poich� Deep Space 6 esegue il mirror di questi file SGML e li
genera indipendentemente dalle versioni pubbliche di TLDP, queste verranno
mostrate qui ed anche sui loro mirror.
     _________________________________________________________________

24.1. Storico delle revisioni

24.1.1. Versioni 0.x

24.1.1.1. Versione Inglese (di Peter Bieringer)

Lo storico delle revisioni del documento originale � reperibile qui: TLDP /
Linux+IPv6-HOWTO / Revision History
     _________________________________________________________________

24.1.1.2. Versione Italiana (di Michele Ferritto)

   0.47.it.1
          4-09-2004/MF Aggiornamento traduzione.

   0.46.it.1
          24-03-2004/MF Aggiornamento traduzione.

   0.45.it.2
          23-01-2004/MF Integrazione correzioni e revisione definitiva.

   0.45.it.1
          12-01-2004/MF Aggiornamento traduzione e revisione di massima.

   0.44.2.it.1
          16-10-2003/MF Prima traduzione e revisione di massima.
     _________________________________________________________________

24.2. Ringraziamenti

Il modo pi� rapido per essere aggiunti a questo simpatico elenco consiste
nell'inviare correzioni e/o aggiornamenti a me ;-).

Se si vuole realizzare una revisione importante, si pu� utilizzare il file
LyX originale (si veda original source) e inviare l'output risultante da
diff, poich� il diff rispetto al file SGML non � di molto aiuto.
     _________________________________________________________________

24.2.1. Ringraziamenti principali

     * David Ranch <dranch at trinnet dot net>: Per avermi incoraggiato a
       scrivere questo HOWTO, per i suoi commenti editoriali sulle prime
       poche revisioni ed i suoi contributi a vari test effettuati sul
       mio sito web IPv6. Lo ringrazio anche per le sue revisioni pi�
       importanti ed i suoi suggerimenti.
     * Pekka Savola <pekkas at netcore dot fi>: Per revisioni importanti,
       spunti e suggerimenti.
     * Martin F. Krafft <madduck at madduck dot net>: Per il controllo
       grammaticale e la revisione generale del documento.
     * John Ronan <j0n at tssg dot wit dot ie>: Per il controllo
       grammaticale.
     * Georg K�fer <gkaefer at gmx dot at>: Per aver rilevato una non
       corretta generazione del PDF (messo a posto dal manutentore di LDP
       Greg Ferguson), gli spunti per libri tedeschi, il grande elenco di
       URL, il controllo di tutte le URL, i tanti suggerimenti, le
       correzioni ed i contributi e la traduzione in tedesco.
     * Michel Boucey <mboucey at free dot fr>: Per aver trovato refusi ed
       alcune URL non funzionanti, contribuito con alcuni suggerimenti ed
       URL ed aver effettuato la traduzione in francese.
     * Michele Ferritto <m dot ferritto at virgilio dot it>: Per aver
       trovato errori e per la traduzione in italiano.
     _________________________________________________________________

24.2.2. Altri ringraziamenti

24.2.2.1. Relativi alla tecnica del documento

Scrivere un HOWTO LDP come principiante (in LyX ed esportandolo a DocBook
per conformit� a SGML) non � cos� facile come qualcuno dice. Ci sono alcune
strane trappole... Ciononostante, ringrazio:

     * Gli autori della LDP Author Guide
     * B. Guillon: Per il suo DocBook con LyX HOWTO
     _________________________________________________________________

24.2.2.2. Ringraziamenti relativi al contenuto

I ringraziamenti per le correzioni ed i suggerimenti sono elencati qui,
sicuramente in futuro cresceranno

     * S. P. Meenakshi <meena at cs dot iitm dot ernet dot in>: Per il
       suggerimento di usare un programma di "invio mail" da shell su
       tcp_wrapper/hosts.deny
     * Frank Dinies <FrankDinies at web dot de>: Per la correzione di un
       errore nella spiegazione dell'indirizzo IPv6
     * John Freed <jfreed at linux-mag dot com>: Per aver trovato un
       errore nella spiegazione dell'indirizzo IPv6 multicast
     * Craig Rodrigues <crodrigu at bbn dot com>: Per suggerimenti sulla
       configurazione di IPv6 per RHL
     * Fyodor <fyodor at insecure dot org>: Mi ha fatto notare delle
       informazioni obsolete riguardo a nmap
     * Mauro Tortonesi <mauro at deepspace6 dot net>: Per alcuni
       suggerimenti
     * Tom Goodale <goodale at aei-potsdam dot mpg dot de>: Per alcuni
       suggerimenti
     * Martin Luemkemann <mluemkem at techfak dot uni-bielefeld dot de>:
       Per un suggerimento
     * Jean-Marc V. Liotier <jim at jipo dot com>: Ha trovato un errore
     * Yaniv Kaul <ykaul at checkpoint dot com>: Ha trovato un errore
     * Arnout Engelen <arnouten at bzzt dot net>: Per aver inviato una
       nota su di una bozza adottata come RFC
     * Stephane Bortzmeyer <bortzmeyer at nic dot fr>: Per aver dato un
       contributo sulla configurazione persistente su Debian
     * lithis von saturnsys <lithis at saturnsys dot com>: Per aver
       riportato un URL errato
     * Guy Hulbert <gwhulbert at rogers dot com>: Per aver inviato una
       nota per indicare che probabilmente la RFC1924 � un pesce d'Aprile
     * Tero Pelander <tpeland at tkukoulu dot fi>: Per aver riportato un
       URL non funzionante
     * Walter Jontofsohn <wjontof at gmx dot de>: Suggerimenti per SuSE
       Linux 8.0/8.1
     * Benjamin Hofstetter <benjamin dot hofstetter at netlabs dot org>:
       Per aver riportato un URL sbagliato
     * J.P. Larocque <piranha at ely dot ath dot cx>: Per aver riportato
       l'URL dell'archivio degli utenti della mailing list users at ipv6
       dot org
     * Jorrit Kronjee <jorrit at wafel dot org>: Per aver segnalato URL
       non funzionanti
     * Colm MacCarthaigh <colm dot maccarthaigh at heanet dot ie>:
       Suggerimenti per il problema di sendfile con Apache2
     * Tiago Camilo <tandre at ipg dot pt>: Ha contribuito con alcune URL
       sull'IPv6 mobile
     * Harald Geiger: Per aver riportato un bug su come � descritto il
       conteggio del bit universale/globale
     * Bjoern Jacke <bjoern at j3e dot de>: Per avermi sollecitato ad
       aggiornare alcune informazioni relative a xinetd
     * Christoph Egger <cegger at chrrr dot com>: Per aver segnalato che
       "ip" ha dei problemi con gli indirizzi compatibili IPv4 su SuSE
       Linux 9.0 ed avermi stimolato per aggiungere un suggerimento
       sull'esempio del 6to4-radvd
     * David Lee Haw Ling <hawling at singnet dot com dot sg>: Per aver
       inviato informazioni su di un tunnel broker
     * Michael H. Warfield <mhw at iss dot net>: Per aver inviato una
       nota sul suffisso per i router 6to4
     * Tomasz Mrugalski <thomson at klub dot com dot pl>: Invio di
       aggiornamenti per la sezione DHCPv6
     * Jan Minar <jjminar at fastmail dot fm>: Segnalazione di piccoli
       errori
     * Kalin KOZHUHAROV <kalin at tar dot bz>: Sistemazione di una
       spiegazione non troppo chiara
     * Roel van Dijk <rdvdijk at planet dot nl>: Segnalazione di URL non
       funzionanti
     * Catalin Muresan <catalin dot muresan at astral dot ro>:
       Segnalazione di piccoli errori
     * Dennis van Dok <dvandok at quicknet dot nl>: Segnalazione di
       piccoli errori
     _________________________________________________________________

24.3. La Fine

Grazie per la lettura. Spero che questo possa essere d'aiuto!

Se si ha qualche domanda, ci si iscriva alla mailing list appropriata e si
descriva il proprio problema fornendo pi� informazioni possibili.