Outils pour utilisateurs

Outils du site


doc:ipv6

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
doc:ipv6 [2005/07/18 12:05]
lehobey
doc:ipv6 [2015/10/01 00:07] (Version actuelle)
fdl [Paradoxe] Suppression.
Ligne 1: Ligne 1:
-Cette page est une version augmentée, améliorée et commentée du document initialement paru [[http://​www.gulliver.eu.org/​ml-archives/​avril-2005/​threads.html|ici]].+(c) 2005 Frédéric Daniel Luc LEHOBEY. Ce document est publié sous la licence [[GNU GPL]]. Merci d'en respecter les [[droits GPL|termes]]. 
 + 
 +Cette page est une version augmentée, améliorée et commentée du document initialement paru [[http://​www.gulliver.eu.org/​ml-archives/​avril-2005/​msg00520.html|ici]].
  
 ====== Contexte ====== ====== Contexte ======
Ligne 19: Ligne 21:
  
 ===== Noyau ===== ===== Noyau =====
-J'ai utilisé le noyau Linux 2.6.8 standard de Debian sarge. Cela fonctionne aussi avec le noyau standard Linux 2.4.27 mais il faut charger explicitement le module //ipv6// dans le noyau. À faire en ajoutant //ipv6// à ///​etc/​modules//​ (à la main ou par modconf) ou bien en ajoutant où il le faut un //modprobe ipv6// comme dans le ///​etc/​network/​interfaces//​ proposé plus bas.+J'ai utilisé le noyau Linux 2.6.8 standard de Debian sarge. Cela fonctionne aussi avec le noyau standard Linux 2.4.27 mais il faut charger explicitement le module //ipv6// dans le noyau. À faire en ajoutant //ipv6// à ///​etc/​modules//​ (à la main ou par //modconf//) ou bien en ajoutant où il le faut un //modprobe ipv6// comme dans le ///​etc/​network/​interfaces//​ proposé plus bas.
  
 ===== Paquets utiles pour le diagnostic ===== ===== Paquets utiles pour le diagnostic =====
Ligne 37: Ligne 39:
   $ w3m http://​[2001:​4f8:​4:​7:​2e0:​81ff:​fe52:​9a6b]/​   $ w3m http://​[2001:​4f8:​4:​7:​2e0:​81ff:​fe52:​9a6b]/​
 pour surfer sur IPv6 (c'est l'​adresse de www.netbsd.org à la date d'​écriture de ce document.) pour surfer sur IPv6 (c'est l'​adresse de www.netbsd.org à la date d'​écriture de ce document.)
 +
 +Un site qui vous indique si vous êtes bien sur IPv6 avec une tortue qui bouge (et affiche votre adresse IPv6) est [[http://​www.kame.net/​]].
  
 ===== Conversion décimal-hexadécimal ===== ===== Conversion décimal-hexadécimal =====
Ligne 47: Ligne 51:
  
 ====== /​etc/​network/​interfaces du routeur ====== ====== /​etc/​network/​interfaces du routeur ======
 +
 ===== Configuration du tunnel vers IPv6 ===== ===== Configuration du tunnel vers IPv6 =====
 Entrelardée de commentaires. Entrelardée de commentaires.
  
-  ​auto sit1 +<​file>​ 
-  iface sit1 inet6 v4tunnel+auto sit1 
 +iface sit1 inet6 v4tunnel 
 +</​file>​
 Le nom //sit1// est souvent repris pour les tunnels (et //sit0// est utilisé par Debian) mais cela pourrait être n'​importe quel autre nom. Le nom //sit1// est souvent repris pour les tunnels (et //sit0// est utilisé par Debian) mais cela pourrait être n'​importe quel autre nom.
-          ​address 2002:​52e7:​94bd:​feed::​1+<​file>​ 
 +        ​address 2002:​52e7:​94bd:​feed::​1 
 +</​file>​
 L'​utilisation du sous-réseau //feed// permet de laisser libre //0// pour eth0. Cela pourrait être n'​importe quelle autre valeur de 4 chiffres hexadécimaux. L'​utilisation du sous-réseau //feed// permet de laisser libre //0// pour eth0. Cela pourrait être n'​importe quelle autre valeur de 4 chiffres hexadécimaux.
-          ​netmask 64 +<​file>​ 
-          endpoint any +        ​netmask 64 
-          local 82.231.148.189 +        endpoint any 
-L'​adresse locale (tout comme celle IPv6) est malheureusement codée en dur dans le fichier ce qui rend plus compliquée la mise en place du même système avec une adresse IPv4 reçue dynamiquement. +        local 82.231.148.189 
-          pre-up modprobe ipv6+</​file>​ 
 +L'​adresse locale (tout comme celle IPv6) est malheureusement codée en dur dans le fichier ce qui rend plus compliquée la mise en place du même système avec une adresse IPv4 reçue dynamiquement. Pour ces configurations-là,​ il vaut mieux probablement utiliser [[http://​www.freenet6.net|freenet6]]
 +<​file>​ 
 +        ​pre-up modprobe ipv6 
 +</​file>​
 Pour être sûr que le module est bien dans le noyau au moment où nous en avons besoin (indispensable pour les noyaux 2.4). Pour être sûr que le module est bien dans le noyau au moment où nous en avons besoin (indispensable pour les noyaux 2.4).
-          ​pre-up sysctl -w net.ipv6.conf.all.forwarding=1 +<​file>​ 
-          pre-up sysctl -w net.ipv6.conf.all.autoconf=0 +        ​pre-up sysctl -w net.ipv6.conf.all.forwarding=1 
-          pre-up sysctl -w net.ipv6.conf.all.accept_ra=0 +        pre-up sysctl -w net.ipv6.conf.all.autoconf=0 
-          pre-up sysctl -w net.ipv6.conf.all.accept_redirects=0 +        pre-up sysctl -w net.ipv6.conf.all.accept_ra=0 
-          pre-up sysctl -w net.ipv6.conf.all.router_solicitations=0+        pre-up sysctl -w net.ipv6.conf.all.accept_redirects=0 
 +        pre-up sysctl -w net.ipv6.conf.all.router_solicitations=0 
 +</​file>​
 Ces commandes configurent le noyau en mode routeur. Elles peuvent être remplacées par une configuration du fichier ///​etc/​sysctl.conf//​ (voir « man sysctl ») mais je trouve plus clair et logique de le faire ici. Ces commandes configurent le noyau en mode routeur. Elles peuvent être remplacées par une configuration du fichier ///​etc/​sysctl.conf//​ (voir « man sysctl ») mais je trouve plus clair et logique de le faire ici.
-          ​# Coupe-feu +<​file>​ 
-          pre-up ip6tables -F +        ​# Coupe-feu 
-          pre-up ip6tables -I INPUT -i $IFACE -p tcp --syn -j DROP +        pre-up ip6tables -F 
-          pre-up ip6tables -I FORWARD -i $IFACE -p tcp --syn -j DROP +        pre-up ip6tables -I INPUT -i $IFACE -p tcp --syn -j DROP 
-          pre-up ip6tables -I INPUT -i $IFACE -p udp \! --dport 32768:60999 -j DROP +        pre-up ip6tables -I FORWARD -i $IFACE -p tcp --syn -j DROP 
-          pre-up ip6tables -I FORWARD -i $IFACE -p udp \! --dport 32768:60999 -j DROP +        pre-up ip6tables -I INPUT -i $IFACE -p udp \! --dport 32768:60999 -j DROP 
-Configuration (optionnelle) d'un coupe-feu élementaire. Les chaînes standard d'//​iptables//​ sont //INPUT// (entrée sur la machine), ​//FORWARD// (transmission par la machine) et //OUTPUT// (sorties de la machine). +        pre-up ip6tables -I FORWARD -i $IFACE -p udp \! --dport 32768:60999 -j DROP 
-          # ssh +</​file>​ 
-          pre-up ip6tables -I FORWARD -i $IFACE -p tcp --dport 22 -j ACCEPT +Configuration (optionnelle) d'un coupe-feu élementaire. Les chaînes standard d'//​iptables//​ sont ''​INPUT'' ​(entrée sur la machine), ​''​FORWARD'' ​(transmission par la machine) et ''​OUTPUT'' ​(sorties de la machine). 
-Cette règle permet de se connecter par ssh sur les autre machines du réseau local mais pas sur le routeur. +<​file>​ 
-          pre-up ip6tables -I INPUT -i $IFACE -p tcp --dport 22 -j ACCEPT +        ​# ssh 
-Cette règle, optionnelle,​ permet de se connecter aussi sur le routeur par ssh. +        pre-up ip6tables -I FORWARD -i $IFACE -p tcp --dport 22 -j ACCEPT 
-          # GnomeMeeting +</​file>​ 
-          pre-up ip6tables -I FORWARD -i $IFACE -p tcp --dport 1720 -j ACCEPT +Cette règle permet de se connecter par //ssh// sur les autres ​machines du réseau local mais pas sur le routeur. 
-Pour permettre à //​gnomemeeting//​ de fonctionner sur les machines du réseau local. ​**Non testé** +<​file>​ 
-          # http +        ​pre-up ip6tables -I INPUT -i $IFACE -p tcp --dport 22 -j ACCEPT 
-          pre-up ip6tables -I FORWARD -i $IFACE -p tcp --dport 80 -j ACCEPT+</​file>​ 
 +Cette règle, optionnelle,​ permet de se connecter aussi sur le routeur par //ssh//
 +<​file>​ 
 +        ​# GnomeMeeting 
 +        pre-up ip6tables -I FORWARD -i $IFACE -p tcp --dport 1720 -j ACCEPT 
 +        pre-up ip6tables -I FORWARD -i $IFACE -p tcp --dport 30000:30010 -j ACCEPT 
 +        pre-up ip6tables -I FORWARD -i $IFACE -p udp --dport 5000:5016 -j ACCEPT 
 +</​file>​ 
 +Pour permettre à //​gnomemeeting//​ de fonctionner sur les machines du réseau local. ​Si c'est le routeur lui-même qui porte la caméra, il faut remplacer les ''​FORWARD''​ par des ''​INPUT''​. 
 +<​file>​ 
 +        # http 
 +        pre-up ip6tables -I FORWARD -i $IFACE -p tcp --dport 80 -j ACCEPT 
 +</​file>​
 Pour accéder au serveurs http du réseau local. Pour accéder au serveurs http du réseau local.
-          ​pre-up ip6tables -I INPUT -i $IFACE -p tcp --dport 80 -j ACCEPT+<​file>​ 
 +        ​pre-up ip6tables -I INPUT -i $IFACE -p tcp --dport 80 -j ACCEPT 
 +</​file>​
 Règle optionnelle si le routeur héberge lui-même un serveur http. Règle optionnelle si le routeur héberge lui-même un serveur http.
 D'​autres règles analogues peuvent être ajoutées selon les services dont vous avez besoin. D'​autres règles analogues peuvent être ajoutées selon les services dont vous avez besoin.
-          ​up ip -6 route add default via ::​192.88.99.1 dev $IFACE +<​file>​ 
-          down ip -6 route flush dev $IFACE+        ​up ip -6 route add default via ::​192.88.99.1 dev $IFACE 
 +        down ip -6 route flush dev $IFACE 
 +</​file>​
  
 ===== Configuration de l'​interface qui va fournir l'IPv6 au réseau local ===== ===== Configuration de l'​interface qui va fournir l'IPv6 au réseau local =====
 À modifier si ce n'est pas eth0 chez vous. À modifier si ce n'est pas eth0 chez vous.
-  ​auto eth0 +<​file>​ 
-  iface eth0 inet6 static +auto eth0 
-          address 2002:c000:201::1 +iface eth0 inet6 static 
-          netmask 64 +        address 2002:52e7:94bd::1 
-          pre-up modprobe ipv6 +        netmask 64 
 +        pre-up modprobe ipv6 
 +</​file>​
 ===== Configuration (optionnelle) de cette même interface en IPv4 ===== ===== Configuration (optionnelle) de cette même interface en IPv4 =====
  
-  ​iface eth0 inet static +<​file>​ 
-          address 192.168.0.1 +iface eth0 inet static 
-          netmask 255.255.255.0 +        address 192.168.0.1 
 +        netmask 255.255.255.0 
 +</​file>​
 ===== Configuration du DNS sur le routeur ===== ===== Configuration du DNS sur le routeur =====
 Suppose l'​installation préalable de dnsmasq et resolvconf (voir plus bas). Suppose l'​installation préalable de dnsmasq et resolvconf (voir plus bas).
-  ​auto lo +<​file>​ 
-  iface lo inet loopback +auto lo 
-          dns-nameservers 127.0.0.1+iface lo inet loopback 
 +        dns-nameservers 127.0.0.1 
 +</​file>​
  
 ====== /​etc/​radvd.conf du routeur ====== ====== /​etc/​radvd.conf du routeur ======
-Toujours sous l'​hypothèse que eth0 est l'​interface qui fournit au réseau local l'​IPv6. Attention, //radvd// est très pointilleux sur la syntaxe ​du fichier ​du fichier ///​etc/​radvd.conf//​.+Toujours sous l'​hypothèse que eth0 est l'​interface qui fournit au réseau local l'​IPv6. Attention, //radvd// est très pointilleux sur la syntaxe du fichier ///​etc/​radvd.conf//​.
  
-  ​interface eth0 +<​file>​ 
-  +interface eth0 
-     ​AdvSendAdvert on; +
-     ​prefix 2002:​52e7:​94bd::​1/64 +   ​AdvSendAdvert on; 
-     ​+   ​prefix 2002:​52e7:​94bd::/​64 
-     ​}; +   ​
-  };+   ​}; 
 +}; 
 +</​file>​
  
 ====== /​etc/​dnsmasq du routeur ====== ====== /​etc/​dnsmasq du routeur ======
 Configuration (optionnelle) d'un serveur dhcp. Configuration (optionnelle) d'un serveur dhcp.
-  ​dhcp-range=192.168.0.50,​192.168.0.150,​12h+<​file>​ 
 +dhcp-range=192.168.0.50,​192.168.0.150,​12h 
 +</​file>​
 Par exemple. Le réseau choisi doit être cohérent avec celui de eth0 dans ///​etc/​network/​interfaces//​. Par exemple. Le réseau choisi doit être cohérent avec celui de eth0 dans ///​etc/​network/​interfaces//​.
  
 Pour ajouter d'​autres serveurs de noms : Pour ajouter d'​autres serveurs de noms :
-  ​server=/​domaine.suffix/​adresse.ip.du.serveur+<​file>​ 
 +server=/​domaine.tld/​adresse.ip.du.serveur 
 +</​file>​
 En sachant que la syntaxe En sachant que la syntaxe
-  ​server=//​adresse.ip.du.serveur+<​file>​ 
 +server=//​adresse.ip.du.serveur 
 +</​file>​
 récupère les noms sans qualification de domaine. récupère les noms sans qualification de domaine.
  
 Il peut être utile dans ce dernier cas de commenter le paramètre : Il peut être utile dans ce dernier cas de commenter le paramètre :
-  ​#​domain-needed+<​file>​ 
 +#​domain-needed 
 +</​file>​
 (attention, bien savoir ce qu'on fait.) (attention, bien savoir ce qu'on fait.)
  
-Installation de //​resolvconf//​ fortement recommandée pour que le routeur soit son propre DNS (voir la commande dns-nameservers dans ///​etc/​network/​interfaces//​.+Installation de //​resolvconf//​ fortement recommandée pour que le routeur soit son propre DNS (voir la commande dns-nameservers dans le ///​etc/​network/​interfaces// ​plus haut).
  
 ====== /etc/hosts du routeur ====== ====== /etc/hosts du routeur ======
-Si dnsmasq est activé, les associations (//​leases//​) dhcp seront automatiquement utilisées par dnsmaq. Cependant, il faut avoir un client dhcp qui déclare le nom de la machine. C'est le cas de //pump//. Il est aussi possible d'​utiliser //​dhcp3-client//​ en paramétrant le fichier ///​etc/​dhcp3/​dhclient.conf//​ avec un+Si dnsmasq est activé, les associations (//​leases//​) dhcp seront automatiquement utilisées par dnsmasq. Cependant, il faut avoir un client dhcp qui déclare le nom de la machine. C'est le cas de //pump//. Il est aussi possible d'​utiliser //​dhcp3-client//​ en paramétrant le fichier ///​etc/​dhcp3/​dhclient.conf//​ avec un
   send host-name "​nomdelamachine";​   send host-name "​nomdelamachine";​
 Pour ce qui est du /etc/hosts du routeur, il sera utilisé par dnsmasq pour fournir les adresses IPv6 qui y sont. Voici le mien : Pour ce qui est du /etc/hosts du routeur, il sera utilisé par dnsmasq pour fournir les adresses IPv6 qui y sont. Voici le mien :
Ligne 146: Ligne 191:
   127.0.0.1 ​      ​localhost.localdomain ​  ​localhost   127.0.0.1 ​      ​localhost.localdomain ​  ​localhost
   192.168.0.1 ​    ​palestine   192.168.0.1 ​    ​palestine
- 
   # The following lines are desirable for IPv6 capable hosts   # The following lines are desirable for IPv6 capable hosts
   ::1     ​ip6-localhost ip6-loopback   ::1     ​ip6-localhost ip6-loopback
Ligne 154: Ligne 198:
   ff02::2 ip6-allrouters   ff02::2 ip6-allrouters
   ff02::3 ip6-allhosts   ff02::3 ip6-allhosts
- 
   ::1                                     ​localhost   ::1                                     ​localhost
 +  # machines réseau fdl
   2002:​52e7:​94bd:​fd12:​230:​65ff:​fe05:​3215 ​ clochette   2002:​52e7:​94bd:​fd12:​230:​65ff:​fe05:​3215 ​ clochette
   2002:​52e7:​94bd:​0:​a00:​20ff:​fec6:​59b9 ​    ​dormette   2002:​52e7:​94bd:​0:​a00:​20ff:​fec6:​59b9 ​    ​dormette
 +  2002:​52e7:​94bd:​0:​2e0:​4cff:​fed2:​d8c1 ​    ​melior
   2002:​52e7:​94bd:​fd11:​2e0:​4cff:​fedb:​e059 ​ melusine   2002:​52e7:​94bd:​fd11:​2e0:​4cff:​fedb:​e059 ​ melusine
   2002:​52e7:​94bd:​fd11:​210:​5aff:​fe45:​c504 ​ morgane   2002:​52e7:​94bd:​fd11:​210:​5aff:​fe45:​c504 ​ morgane
Ligne 167: Ligne 211:
   2002:​52e7:​94bd:​0:​a00:​20ff:​fe89:​5332 ​    ​solaria   2002:​52e7:​94bd:​0:​a00:​20ff:​fe89:​5332 ​    ​solaria
   2002:​52e7:​94bd:​0:​a00:​20ff:​fe86:​2d74 ​    ​titania   2002:​52e7:​94bd:​0:​a00:​20ff:​fe86:​2d74 ​    ​titania
 +  # machines réseau arno
   2002:​5243:​6d2e::​1 ​                      ​pustule   2002:​5243:​6d2e::​1 ​                      ​pustule
  
 Il n'y a donc bien qu'​__un seul fichier__ à maintenir pour que toutes les autres machines clientes se connaissent mutuellement. Il n'y a donc bien qu'​__un seul fichier__ à maintenir pour que toutes les autres machines clientes se connaissent mutuellement.
  
 +L'​adresse IPv6 attribuée automatiquement à chaque machine en fonction de son adresse MAC et du préfix choisi pour //radvd// peut se lire par un appel à //​ifconfig//​ sur les machines clientes.
 +
 +====== /​etc/​network/​interfaces des clients ======
 +
 +En général il n'y a rien à faire. Il suffit de configurer leurs interfaces en dhcp (IPv4) et aussitôt, l'​autoconfiguration IPv6 fera son effet. Si on ne veut configuer ni dhcp ni IPv4, il y a moyen de le faire à la main comme plus haut pour les adresses IPv6 fixes. IPv6 marchera aussi avec la seule configuration d'une adresse IPv4 fixe.
 +
 +<​file>​
 +auto eth0
 +iface eth0 inet dhcp
 +</​file>​
 +
 +====== Conseils de fin ======
 +« man » est votre ami.
 +
 +===== Redémarrer les différents services =====
 +  # invoke-rc.d networking restart
 +  # invoke-rc.d ipmasq restart
 +  # invoke-rc.d radvd restart
 +  # invoke-rc.d dnsmasq restart
 +
 +
 +===== Remerciements =====
 +  * John Goerzen (http://​changelog.complete.org/​node/​61) ;
 +  * Jeroen Massar (http://​lists.debian.org/​debian-ipv6/​2004/​01/​msg00013.html) ;
 +  * Craig Small (http://​people.debian.org/​~csmall/​ipv6/​setup624.html et http://​people.debian.org/​~csmall/​ipv6/​setup.html)
 +  * Daniel De Graaf (http://​www.public.iastate.edu/​~danield//​info/​ipv6)
 +  * Jean-Marc Liotier (http://​www.ruwenzori.net/​ipv6/​Jims_LAN_IPv6_global_connectivity_howto.html)
 +  * plus généralement,​ à tous ceux qui publient leur documentation sur Internet ;
 +  * à [[http://​arno.skamp.eu.org/​|Arnaud Fouquaut]] pour le test de cette configuration ;
 +  * à tous ceux qui apporteront leur contribution à cette documentation.
 +
 +====== Simplifications possibles ? ======
 +Selon des sources postérieures à la rédaction originale :
 +  * Possible d'​utiliser directement ''​sit0''​ selon http://​www.melb.apana.org.au/​wiki/​IPv6ConfigurationForDebian ?
 +  * //6to4// avec adresse IPv4 dynamique : http://​www.wlug.org.nz/​6to4
 +
 +
 +===== Autres documentations =====
 +Postérieures à la rédaction originale :
 +  * http://​sindominio.net/​suburbia/​print.php3?​id_article=148
 +  * http://​wiki.debian.org/​DebianIPv6
doc/ipv6.1121681130.txt.gz · Dernière modification: 2005/07/18 12:06 (modification externe)