Il existe d'innombrables solutions pour connecter un ilôt de
machines
Le principe du
Le serveur n'existe apparemment pas en logiciel libre mais il y a
plusieurs clients comme tspc ou gw6. Ici, le routeur IPv6 du réseau local est une
La configuration se fait dans le fichier
# authentication method:
# Valeur par défaut...
auth_method=any
# IPv4 address of the client for its tunnel endpoint:
# Valeur par défaut...
client_v4=auto
# user identification:
# Le compte obtenu auprès du serveur de tunnels
userid=bortzmeyer
# password:
# Non, je ne le montre pas :-)
# Name of the script:
# Valeur par défaut...
template=setup
# 'server' is the tunnel broker identifier
# C'est le serveur indiqué par Renater, réservé à leurs clients ou
# partenaires. Notez le numéro de port, un autre serveur de tunnels
# existe sur cette machine avec un port différent (selon qu'on a un
# compte ou bien qu'on bénéficie du service gratuit, lisez bien la
# documentation de votre fournisseur).
server=tunnel-broker.renater.fr:3654
# retry_delay=time
# Valeur par défaut. Testé, ce service fonctionne bien, même lorsque
# la liaison IPv4 sous-jacente est fragile.
retry_delay=30
# Tunnel encapsulation mode:
# Valeur par défaut...
tunnel_mode=v6anyv4
# Tunnel Interface name:
# Valeur par défaut...
if_tunnel_v6v4=sit1
if_tunnel_v6udpv4=tun
# proxy_client indicates that this client acts as a TSP proxy for
# Valeur par défaut...
proxy_client=no
# Keepalive for v6udpv4 tunnels:
# Valeur par défaut...
keepalive=yes
keepalive_interval=30
# Logging facility uses syslog on Unix platforms
# Ne semble pas fonctionner, tout est apparemment enregistré dans /var/log/tspc.log
syslog_facility=DAEMON
syslog_level=ERR
# Router configuration
# On est routeur pour tout le réseau local, donc :
host_type=router
# prefixlen specifies the required prefix length for the TSP client
# Pour un routeur, c'est la valeur normale (cf. RFC 3177)
prefixlen=48
# if_prefix is the name of the OS interface that will be configured
# with the first /64 of the received prefix from the broker and the
# router advertisement daemon is started to advertise that prefix
# on the if_prefix interface.
#if_prefix=eth0
if_prefix=dummy0
# Une mention particulière ici. Contrairement à ce qu'on pourrait
# croire, cette mention est obligatoire. Comme nous préférions
# configurer à la main un certain nombre de paramètres, nous indiquons
# quand même une interface, mais "bidon", pour éviter que tspc ne
# modifie les réglages de notre vraie interface, eth0. L'interface
# "bidon" se crée sur Linux avec "modprobe dummy; ifconfig dummy0 up".
# For reverse DNS delegation of the prefix, define the following:
# Pas utilisé.
#dns_server=
Une fois le client lancé (c'est fait automatiquement au démarrage, sinon
dummy0 Lien encap:Ethernet HWaddr 32:A5:E1:71:37:A3
adr inet6: 2001:660:f108::1/64 Scope:Global
adr inet6: fe80::30a5:e1ff:fe71:37a3/64 Scope:Lien
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
...
eth0 Lien encap:Ethernet HWaddr 00:0C:6E:6E:E5:D4
inet adr:82.151.64.129 Bcast:82.151.64.255 Masque:255.255.255.128
adr inet6: 2001:660:f108:1::1/64 Scope:Global
adr inet6: fe80::20c:6eff:fe6e:e5d4/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
...
sit1 Lien encap:IPv6-dans-IPv4
adr inet6: fe80::5297:4081/64 Scope:Lien
adr inet6: 2001:660:f001:1::d/128 Scope:Global
UP POINTOPOINT RUNNING NOARP MTU:1280 Metric:1
RX packets:1548 errors:0 dropped:0 overruns:0 frame:0
TX packets:1748 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:520111 (507.9 KiB) TX bytes:312956 (305.6 KiB)
(L'adresse IPv6 est envoyée par le serveur de tunnels et, avec le service Freenet6, peut changer de temps en temps.) Et le routage IPv6 se passe bien, aussi bien pour le routeur,
que pour les autres machines du réseau local (testé avec des adresses
IPv6 statiques mais on aurait pu utiliser RA,
Le protocole utilisé entre client et serveur de tunnels a
fait l'objet d'une normalisation dans le
Et si cela ne marche pas ? Le client affiche le code d'erreur
numérique à trois chiffres et il
n'y a plus qu'à regarder dans le document cité plus haut ce qu'ils signifient. Par
exemple, 303 est
Pour Freenet6, on va utiliser une machine
% cd tspc-advanced
% make all target=linux
root# make install installdir=/usr/local/gw6c target=linux
On doit alors configurer le fichier
# Obtenus en s'inscrivant
userid=bortzmeyer
passwd=SECRET
...
server=broker.freenet6.net
...
auth_method=any
...
# Il est possible qu'on puisse obtenir un /48 mais je n'ai pas essayé
prefixlen=64
...
# La délégation DNS ne fonctionne pas pour moi. Peut-être n'est-elle
# accessible que si on a au moins un /48 ou bien que si on est un
# client payant ?
dns_server=ns1.bortzmeyer.org:ns2.bortzmeyer.org
Les tunnels sont souvent plus lents que le chemin direct
(davantage de routeurs, des passerelles entre v4 et v6 surchargées),
moins fiables, sans compter les problèmes de
# For testing purposes, always use IPv6 for AFNIC
precedence 2001:660:3003::/48 200
# Otherwise, always prefer IPv4
precedence ::ffff:0:0/96 100
Ces règles disent que les adresses IPv6 doivent être privilégiées pour
l'accès à
l'
% telnet www.afnic.fr
Trying 2001:660:3003:2::4:20...
Trying 192.134.4.20...
...
% telnet www.kame.net
Trying 203.178.141.194...
Trying 2001:200:0:8002:203:47ff:fea5:3085...
Pour ces deux machines double-pile (v4 et v6), on obtient bien l'ordre attendu.
Pour s'assurer que le
/dev/null
eend $?
}
]]>
et on l'installe avec :
# rc-update add freenet6 default
Merci à Simon Muyal pour ses explications et à Mohsen Souissi pour l'aide.