Outils pour utilisateurs

Outils du site


issue72:tutoriel_-_connecting_to_ipv6

Table des matières

1

The 2008 Beijing Summer Olympics brought IPv6 to the attention of the technical crowd, with further reminders on World IPv6 Day, 8 June 2011, and World IPv6 Launch Day, 6 June 2012. We are, for the most part, informed that the current IP (IPv4) address space is running out, and that sometime in the short to middle term we will need to get to using IPv6 addresses and connectivity to the Internet. This is not quite yet the case for most people. Internet Service Providers have not rolled out native IPv6 access in many countries. Most servers still have only Pv4 access, with the exception of Internet giants such as Google, Facebook and several others. Much of the hardware available (specially in the domestic category) still handles only IPv4. But things are changing, and we will need to get to it. Going dual-stack, i.e. having both IPv4 and IPv6 activated at the same time, is a nice way of making the transition. Luckily for us, Debian, Ubuntu and most other GNU/Linux distributions are well up to speed as regards IPv6. The Linux kernel itself handles IPv6 quite well, GNU user-land applications have been adapted or ported to IPv6, and most widely-used GUI programs are now capable of making use of IPv6 connections - actually, when both IPv6 and IPv4 are present, they tend to prefer IPv6. So, in a way, Ubuntu is ideal to make a first contact with this new, IPv6-enabled version of the Web.

Les Jeux olympiques d'été de Beijing en 2008 ont attiré l'attention de la foule technique sur IPv6, avec des rappels supplémentaires lors de la Journée mondiale IPv6, le 8 juin 2011, et la Journée mondiale de lancement IPv6, le 6 juin 2012. Nous sommes, pour la plupart, au courant que l'espace actuel d'adresses IP (IPv4) s'épuise, et que prochainement, à court ou moyen terme, nous devrons nous habituer à utiliser les adresses et la connectivité IPv6 sur internet.

Ce n'est pas encore tout à fait le cas pour la plupart des gens. Les fournisseurs d'accès à Internet n'ont pas encore déployé l'accès IPv6 nativement dans de nombreux pays. La plupart des serveurs ne disposent encore que d'un accès IPv4, à l'exception des géants de l'internet comme Google, Facebook et plusieurs autres. La plupart des matériels disponibles (spécialement dans la catégorie domestique) ne traite encore que de l'IPv4. Mais les choses changent et nous devrons y passer. Être en double accès, avoir à la fois IPv4 et IPv6 activés en même temps, est une bonne façon de faire la transition.

Heureusement pour nous, Debian, Ubuntu et la plupart des autres distributions GNU/Linux sont bien à jour en ce qui concerne IPv6. Le noyau Linux lui-même gère IPv6 assez bien, les applications de l'espace utilisateur GNU ont été adaptées ou portées pour IPv6, et la plupart des programmes graphiques largement utilisés sont maintenant capables de faire usage des connexions IPv6 - en fait, lorsque IPv6 et IPv4 sont présents tous les deux, ils ont tendance à préférer IPv6.

Donc, en un sens, Ubuntu est idéal pour avoir un premier contact avec cette nouvelle version IPv6 du Web.

2

Connecting to the Internet with IPv6 Supposing we do not have a native connection to the IPv6-enabled Internet, we shall need the services of a tunnel broker. This is the equivalent of an Internet Service Provider, but instead of giving access to the Internet for individual lines or devices, it gives access to the IPv6-enabled Internet starting from a normal IPv4 address. We will be creating an IPv6 tunnel from our computer to the tunnel broker, through the IPv4-only fabric that lies between us. Several tunnel brokers are available, both free and commercial. Two in the former category are SixXS (http://www.sixxs.net) and Gogo6 (http://www.gogo6.com). In both cases, the necessary software is open, free, and readily available from the Ubuntu repositories. For Gogo6, we need to sign up for their Freenet6 IPv6 access service, at http://www.gogo6.com/freenet6/account. Each of their servers works independently from the others, so remember which one you are on (choose the one you think is best accessible from your country). Once we have confirmation of being registered, we need to install the software: sudo apt-get install gogoc

Connexion à Internet en IPv6

Supposons que nous n'avons pas une connexion native à l'internet IPv6, nous aurons besoin des services d'un fournisseur de tunnel. C'est l'équivalent d'un fournisseur d'accès à internet, mais au lieu de donner accès à internet pour des lignes ou des dispositifs individuels, il donne accès à l'internet IPv6 à partir d'une adresse IPv4 normale. Nous allons créer un tunnel IPv6 à partir de notre ordinateur vers le fournisseur de tunnel, à travers le réseau IPv4, le seul qui se trouve entre nous.

Plusieurs fournisseurs de tunnels existent, libres ou commerciaux. Dans la première catégorie on trouve SixXS (http://www.sixxs.net) et Gogo6 (http://www.gogo6.com). Dans les deux cas, le logiciel nécessaire est libre, gratuit et facilement disponible depuis les dépôts Ubuntu.

Pour Gogo6, il faut s'inscrire à leur service Freenet6 d'accès à IPv6, sur http://www.gogo6.com/freenet6/account. Chacun de leurs serveurs fonctionne indépendamment des autres, donc n'oubliez pas celui sur lequel vous êtes (choisissez celui que vous pensez être le plus accessible depuis votre pays). Quand nous avons confirmation de notre inscription, nous avons besoin installer le logiciel :

sudo apt-get install gogoc

3

Naturally, we could also use a graphical program such as Synaptic, Ubuntu Software Center, or Muon. We then need to edit the configuration file /etc/gogoc/gogoc.conf with the username and password the server gave us, and restart the service with /etc/init.d/gogoc restart We should then be able to see the tunnel with the ifconfig command: ifconfig tun Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet6 addr: 2001:db8::101/128 Scope:Global UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1280 Metric:1

Naturellement, on peut aussi utiliser un programme graphique comme Synaptic, la Logithèque Ubuntu ou Muon.

Il faut ensuite modifier le fichier de configuration /etc/gogoc/gogoc.conf avec l'identifiant et le mot de passe que le serveur nous a donnés, et redémarrer le service avec

/etc/init.d/gogoc restart

Nous devrions alors être en mesure de voir le tunnel avec la commande ifconfig :

ifconfig

tun Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00

        inet6 addr: 2001:db8::101/128 Scope:Global
        UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1280  Metric:1

4

In this example, our IPv6 address would now be 2001:db8::101 . Since this is just an example, I chose a (relatively) simple address—real IPv6 addresses may need be written with up to 32 hexadecimal digits, grouped into eight four-digit groups. If we choose SixXS as our tunnel broker, the registration process may be slightly slower (it took slightly less than an hour for me) since it is not completely automated: real human beings process our request. We can then request a tunnel be activated for us, and, optionally, an IPv6 address subnet. The tunnel is all we need to access the IPv6 Internet on a single computer; the subnet is needed if we chose to connect a complete local network through our machine. For SixXS, the appropriate software package is aiccu: sudo apt-get install aiccu

Dans cet exemple, notre adresse IPv6 serait maintenant 2001:db8::101. Comme c'est juste un exemple, j'ai choisi une (relativement) simple adresse — les adresses IPv6 réelles peuvent atteindre un maximum de 32 chiffres hexadécimaux, regroupés en huit groupes de quatre chiffres.

Si nous choisissons SixXS comme fournisseur de tunnel, le processus d'enregistrement peut être un peu plus lent (il m'a fallu un peu moins d'une heure), car il n'est pas entièrement automatisé : de vrais êtres humains traitent notre demande. On peut alors demander qu'un tunnel soit activé pour nous et, éventuellement, un sous-réseau d'adresses IPv6. Le tunnel est tout ce dont nous avons besoin pour accéder à l'internet IPv6 depuis un seul ordinateur ; le sous-réseau est nécessaire si nous voulons connecter un réseau local complet à travers notre machine.

Pour SixXS, le logiciel approprié est aiccu :

sudo apt-get install aiccu

5

When we have edited configuration file /etc/aiccu.conf with the username and password given by SixXS, we can restart the service: /etc/init.d/aiccu restart and we should then be able to see the tunnel with the ifconfig command: ifconfig sixxs Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet6 addr: fe80::40:fe00:229:2/64 Scope:Link inet6 addr: 2001:db8::101/64 Scope:Global UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1280 Metric:1

Lorsque nous avons modifié le fichier de configuration /etc/aiccu.conf avec l'identifiant et le mot de passe donnés par SixXS, nous pouvons redémarrer le service :

/etc/init.d/aiccu restart

et nous devrions alors être en mesure de voir le tunnel avec la commande ifconfig :

ifconfig

sixxs Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00

        inet6 addr: fe80::40:fe00:229:2/64 Scope:Link
        inet6 addr: 2001:db8::101/64 Scope:Global
        UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1280  Metric:1

6

This one is configured in a slightly different way than the Gogo6 version (note the /64 segment, instead of a single host /128 address), and uses identifier “sixxs” instead of “tun”. If things have gone well so far, either with Gogo6 or with SixXS, we can now use the IPv6-activated versions of network tools to check connectivity, such as ping6 (instead of ping) and traceroute6 (instead of traceroute). Other tools, such as host and ip, work in the same way both for IPv4 and IPv6. So: host ipv6.google.com ipv6.google.com is an alias for ipv6.l.google.com. ipv6.l.google.com has IPv6 address 2a00:1450:4001:c02::63 ping6 -c 3 -n ipv6.google.com PING ipv6.google.com(2a00:1450:4001:c02::68) 56 data bytes 64 bytes from 2a00:1450:4001:c02::68: icmp_seq=1 ttl=51 time=228 ms 64 bytes from 2a00:1450:4001:c02::68: icmp_seq=2 ttl=51 time=228 ms 64 bytes from 2a00:1450:4001:c02::68: icmp_seq=3 ttl=51 time=229 ms Since we now have IPv6 connectivity with the Web, we can browse IPv6-only web pages. Some classical destinations to try out IPv6 are the dancing turtle at http://www.kame.net (it dances only if we connect through IPv6), or the test pages at http://www.test-ipv6.com or http://www.ipv6-test.com.

Celui-ci est configuré d'une manière légèrement différente de la version Gogo6 (remarquez le segment /64 à la place d'une adresse en /128 d'un seul hôte) et utilise l'identifiant « sixxs » au lieu de « tun ».

Si les choses se sont bien passées jusqu'ici, que ce soit avec Gogo6 ou avec SixXS, nous pouvons maintenant utiliser les versions IPv6 des outils de réseau pour vérifier la connectivité, tels que ping6 (au lieu de ping) et traceroute6 (au lieu de traceroute). D'autres outils, tels que host et ip, fonctionnent de la même manière à la fois pour IPv4 et IPv6. Ainsi :

host ipv6.google.com ipv6.google.com is an alias for ipv6.l.google.com. ipv6.l.google.com has IPv6 address 2a00:1450:4001:c02::63

ping6 -c 3 -n ipv6.google.com PING ipv6.google.com(2a00:1450:4001:c02::68) 56 data bytes 64 bytes from 2a00:1450:4001:c02::68: icmp_seq=1 ttl=51 time=228 ms 64 bytes from 2a00:1450:4001:c02::68: icmp_seq=2 ttl=51 time=228 ms 64 bytes from 2a00:1450:4001:c02::68: icmp_seq=3 ttl=51 time=229 ms

Puisque nous avons maintenant la connectivité IPv6 avec le Web, nous pouvons parcourir des pages qui sont uniquement IPv6. Certaines destinations classiques pour essayer IPv6 sont la tortue dansante sur http://www.kame.net (elle ne danse que si nous nous connectons à travers IPv6), ou des pages de test sur http://www.test-ipv6.com ou http://www.ipv6-test.com.

7

Difficulties with IPv6 and Ubuntu We have just set up a dual IPv4 and IPv6 stack; our computer is connected directly to the IPv4 Internet through our usual Service Provider, and indirectly to the IPv6 Internet through the tunnel broker. But if we had not set up or do not activate the tunnel, our computer can be in a situation in which it has a working IPv4 connection, but not so with IPv6. Ever since most modern operating systems activate IPv6 by default, this has given rise to some confusion. Many programs are capable of handling dual-stack access, they prefer to use IPv6 if possible and if not fall back to IPv4. But other programs cannot handle this, which usually ends up causing delays that annoy the user. Some programs even complain about “not being able to connect to the Internet” - even though a perfectly good IPv4 connection is up.

Difficultés avec IPv6 et Ubuntu

Nous venons de mettre en place une double pile IPv4 et IPv6 ; notre ordinateur est connecté directement à l'internet IPv4 par notre fournisseur d'accès habituel, et indirectement à l'internet IPv6 à travers le fournisseur de tunnel. Mais si nous n'avions pas mis en place ou si nous n'activons pas le tunnel, notre ordinateur peut être dans une situation dans laquelle il possède une connexion active IPv4, mais pas IPv6.

Depuis que les systèmes d'exploitation les plus modernes activent IPv6 par défaut, cela a donné lieu à une certaine confusion. De nombreux programmes sont capables de gérer la double pile, ils préfèrent utiliser IPv6 si possible et sinon revenir à IPv4. Mais d'autres programmes ne peuvent pas gérer cela, ce qui finit souvent par causer des latences qui gênent l'utilisateur. Certains programmes se plaignent même de « ne pas pouvoir se connecter à internet », même si une bonne connexion IPv4 est active.

8

This is now more-or-less fixed for software on Ubuntu, though with previous versions it was sometimes necessary to deactivate IPv6 at kernel level. One option was to blacklist the ipv6 kernel module, as mentioned by Robert Clipsham way back in number seven of FCM. Another possibility with recent kernels is to disable IPv6 through the proc interface: echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6 However, it should be stressed that these difficulties should no longer come up under Ubuntu: whichever order in which a program chooses to connect to the Internet, it should be able to do so through one route or the other. Not so in other operating systems, specially with commercial software.

C'est maintenant plus ou moins réglé pour les logiciels sous Ubuntu, mais avec les versions précédentes, il était parfois nécessaire de désactiver IPv6 au niveau du noyau. Une option était de « blacklister » le module ipv6 du noyau, comme mentionné par Robert Clipsham depuis longtemps dans le numéro 7 du FCM. Une autre possibilité avec les noyaux récents est de désactiver IPv6 via l'interface proc :

echo 1 > /proc/sys/net/ipv6/conf/all/disable_ipv6

Toutefois, il convient de souligner que ces difficultés ne devraient plus survenir sous Ubuntu : quel que soit l'ordre dans lequel un programme choisit de se connecter à internet, il devrait être en mesure de le faire à travers l'une ou l'autre des routes. Ce n'est pas forcément le cas dans d'autres systèmes d'exploitation, surtout avec des logiciels commerciaux.

9

World-reachable addresses The nice thing about IPv6 is that Network Address Translation (NAT) and private addresses, ubiquitous in the IPv4 world, are no longer used. The reason is that since there are so many public IPv6 addresses available, it will not be necessary to re-utilize them many times over in the form of private addresses that are not routable through the Internet. The corollary is that the computers we connect to the Web using IPv6 are directly reachable from all over the Internet. Nothing stands between us and the wild world out there. This can come out as an advantage. Consider, for example, the hoops some of us jump through in order to reach our home machines from outside, while on the road. Or to get into our work machines from home (though systems administrators may frown on this, and rightly so). With IPv4, we need to open a port in our router to enable access from the outside, and activate Destination NAT (DNAT) to make packets we actually send to our router's external address be resent inside towards a specific PC. And we must achieve this rather complex setup while at the same time taking into account system security.

Des adresses accessibles depuis le monde entier

Une bonne chose avec IPv6 est que les adresses translatées (Network Address Translation ou NAT) et les adresses privées, omniprésentes dans le monde IPv4, ne sont plus utilisées. La raison en est qu'il y a tellement d'adresses publiques IPv6 disponibles qu'il n'est plus nécessaire de les réutiliser de nombreuses fois sous la forme d'adresses privées non routables sur Internet.

Le corollaire est que les ordinateurs que nous connectons à internet en utilisant IPv6 sont directement accessibles depuis partout sur Internet. Rien ne se dresse entre nous et le monde sauvage à l'extérieur.

Cela peut être vu comme un avantage. Considérons, par exemple, les épreuves que certains d'entre nous traversent pour atteindre nos machines à la maison depuis l'extérieur quand on est en déplacement. Ou pour entrer dans nos machines de travail depuis la maison (bien que les administrateurs systèmes puissent froncer les sourcils à ce sujet, à juste titre). Avec IPv4, nous devons ouvrir un port sur notre routeur pour permettre l'accès de l'extérieur, et activer le « Destination NAT » (DNAT) pour que les paquets que nous envoyons en fait à l'adresse externe de notre routeur soient renvoyés à l'intérieur vers un PC spécifique. Et nous devons réussir cette configuration assez complexe tout en tenant compte de la sécurité du système.

10

With IPv6 and world-reachable addresses, this is no longer necessary. If, for example, my home computer has global address 2001:db8::101 and an Apache web server running, I can connect to it directly from outside my home by simply pointing any browser to the corresponding URL, http://[2001:db8::101] . If I set up a personal mail server, it can also be directly reached and mail sent to me from the Web. But having our computers directly reachable can also constitute a serious security risk. So we need to be really careful about what kinds of traffic we let in. To protect my home computer, I can use my global IPv6 address to set up a SSH or OpenVPN virtual private network (VPN). This way, full communication can be set up for all protocols through an encrypted and authenticated channel. Even if somebody in between may see my packets as they pass through, they cannot decrypt them and view the data contained within. So we have a strong argument in favor of setting up a secure VPN, and making sure our services can be accessed not directly from the Internet, but only through the VPN.

Avec des adresses IPv6 accessibles depuis le monde entier, ce n'est plus nécessaire. Si par exemple mon ordinateur personnel a l'adresse 2001:db8::101 et fait tourner un serveur web Apache, je peux m'y connecter directement à partir de l'extérieur simplement en pointant un navigateur sur l'URL correspondante, http://[2001:db8::101]. Si j'ai mis en place un serveur de messagerie personnel, il est également directement accessible et on peut m'envoyer du courrier depuis le Web.

Mais avoir nos ordinateurs directement accessibles peut également constituer un risque grave pour la sécurité. Nous devons donc être très prudents sur ​​le trafic que nous laissons entrer.

Pour protéger mon ordinateur personnel, je peux utiliser mon adresse IPv6 globale pour mettre en place un réseau privé virtuel (VPN) avec SSH ou OpenVPN. De cette façon, une communication complète peut être mise en place pour tous les protocoles à travers un canal chiffré et authentifié. Même si quelqu'un peut voir passer mes paquets et les intercepter, il ne pourra pas les décrypter ni afficher les données qu'ils contiennent. Nous avons donc un argument fort pour mettre en place un VPN sécurisé et nous assurer que nos services sont accessibles non pas directement depuis internet, mais seulement à travers le VPN.

11

Naturally, Ubuntu has all the necessary tools in the repositories, both for the client and for the server sides of the VPN. The corresponding software packages are ssh-server, openvpn and network-manager-openvpn – though, as usual, other possibilities also exist. Luckily, the Linux kernel firewall is also well up to the job, though it does need to be correctly set up. The command-line way of doing this is probably not for the faint of heart, as it is relatively easy to leave out a rule and make things too easy for the bad guys—or being over cautious and inadvertently blocking yourself out. So a GUI tool such as firestarter may be a wise choice to begin with.

Naturellement, Ubuntu a tous les outils nécessaires dans les dépôts, à la fois pour le client et pour le côté serveur du VPN. Les paquets logiciels correspondants sont ssh-server, openvpn et network-manager-openvpn – même si, comme d'habitude, d'autres possibilités existent également.

Heureusement, le pare-feu du noyau Linux est également à la hauteur, même s'il a besoin d'être correctement configuré. La configuration en ligne de commande n'est probablement pas pour les cœurs fragiles, car il est très facile d'oublier une règle et de rendre les choses trop faciles pour les méchants, ou d'être trop prudent et de vous bloquer par inadvertance. Ainsi, un outil graphique comme firestarter peut être un choix judicieux pour commencer.

12

If we set up some services we wish to share with friends—or just use for ourselves—we should also bear in mind the security implication of having a port open to the world. Special attention should be given to securing access, especially when sensitive data can be accessed, e.g. though file sharing. If all we want is access to our files while on the road, SFTP is probably the easiest service to set up. Basically, all we need to do is install package openssh-server on our home computer. We can then access it from any file manager that knows about SFTP (such as Gnome's Nautilus) using URL sftp://username@server_ip : Since SFTP is actually based on SSH, it may be considered quite secure, especially if no-password, public certificate-only access is used. For road-warriors, several apps can be found that do SSH and SFTP, both for iOS and Android. Unless, of course, you choose to go with Ubuntu on your phone or tablet, in which case finding suitable client software is simply a matter of choice.

Si nous configurons des services pour les partager avec des amis — ou simplement les utiliser nous-mêmes — nous devons aussi garder à l'esprit les implications de sécurité d'avoir un port ouvert sur le monde. Une attention particulière devrait être accordée à la sécurisation de l'accès, en particulier lorsque des données sensibles peuvent être consultées, par exemple via le partage de fichiers. Si nous voulons simplement accéder à nos dossiers à distance, SFTP est probablement le service le plus facile à mettre en place. En effet, tout ce que nous devons faire est d'installer le paquet openssh-server sur ​​notre ordinateur personnel. On peut alors y accéder depuis n'importe quel gestionnaire de fichiers qui connaît SFTP (comme Nautilus de Gnome) en utilisant l'URL sftp://nom_utilisateur@ip_du_serveur :

Puisque SFTP est en fait basé sur SSH, on peut le considérer comme plutôt sûr, surtout si on y accède sans aucun mot de passe mais uniquement par certificat public.

Pour les guerriers de la route, on trouve plusieurs applications qui font du SSH et du SFTP, à la fois pour iOS et Android. Sauf, bien sûr, si vous choisissez d'utiliser Ubuntu sur votre téléphone ou votre tablette, auquel cas le logiciel client approprié est simplement une question de choix.

issue72/tutoriel_-_connecting_to_ipv6.txt · Dernière modification : 2013/11/24 15:34 de andre_domenech