Pourquoi je vais devoir m'interesser bientôt à IPV6 ! 🔗
La distribution Debian est une excellente distribution, il n'y a pas à revenir sur le sujet. Je l'utilise sur un maximum de supports: pour le serveur dédié qui héberge ce blog, pour ma station de travail à la maison ainsi qu'au bureau. Pour des raisons d'efficacité, à part sur le serveur dédié qui utilise stable, j'emploie testing pour tout le reste. En effet, cela permet de conserver une certaine stabilité tout en ayant des logiciels assez récents. De plus, ça fait déjà quelque temps que stable est sortie…
Pour mes besoins professionnels, j'utilise BIRT pour générer des rapports. Je fais donc tourner BIRT sur une machine Debian, à l'aide d'openjdk-6 (Java en libre, on l'a longtemps réclamé alors autant l'utiliser) qui permet de faire tourner Eclipse qui permet de faire tourner BIRT. Je ne ferais pas de laius sur mon utilisation de BIRT, ça prendrait trop de temps et ce n'est pas l'objet de cet article.
Après une mise à jour (aptitude update && aptitude safe-upgrade
), une
partie de BIRT a commencé à ne
plus fonctionner: l'interface EClipse se comportait correctement mais,
impossible de générer un rapport. Pour mieux comprendre, sachez que
BIRT, pour générer un rapport,
lance un serveur interne qui écoute sur localhost sur un port au hasard
et ouvre un lien vers une page Web à cet endroit.
Le bug se manifestait de la manière suivante: impossible pour le navigateur Web de se connecter au serveur. Et effectivement, le serveur était bien présent, mais il était impossible de s'y connecter (en localhost, faut le faire quand même). Au bout de quelques jours, j'ai réellement eu besoin de générer un rapport… Après avoir réglé d'autres tâches, celle-ci est arrivée sur le haut de la pile et j'ai dû m'atteler au problème.
Tout se comportait comme s'il était impossible de joindre le serveur local alors que le service était lancé. Le problème ne venait pas du navigateur Web, ni d'une configuration de proxy, ni d'iptables. Après avoir lu le log d'Eclipse, j'ai eu quelques billes pour chercher sur le BTS Debian. Et au bout de quelques minutes, j'ai trouvé ce que je cherchais: #560056.
Il semble que dorénavant, le Kernel Linux soit configuré par défaut en
permettant la création de services uniquement sur IPV6 et non IPV4. En
effet, le fichier /etc/sysctl.d/bindv6only.conf
est utilisé pour
configurer le kernel par l'outil sysctl. Il est lancé au démarrage de la
machine par le script /etc/init.d/procps
. D'après ce que je comprends,
cette configuration impose à un démon qui souhaiterait ouvrir un service
réseau d'utiliser IPV6 par défaut et non IPV4.
Là où je vais devoir m'intéresser à IPV6 c'est que, de un, je n'y
connais pas grand-chose et, de deux, les configurations par défaut
semblent tourner vers IPV6 en lieu et place d'IPV4, alors que jusqu'ici,
c'était l'inverse. J'aime d'ailleurs assez bien la fin du commentaire du
fichier /etc/sysctl.d/bindv6only.conf
:
# When IPV6_V6ONLY is enabled, daemons interested in both IPv4 and IPv6
# connections must open two listening sockets.
# This is the default behaviour of almost all modern operating systems.