Articles

IPv6, OpenWRT et de mauvaises comprehensions

J’ai lutté pendant un certain temps contre l’IPv6 sur la configuration de ce site web. C’est assez simple, ce site tourne sur un Raspberry pi4 avec 2GB de ram, avec nginx, PHP, Mariadb et un disque USB externe pour stocker les données. Le pi a une adresse IPv6 que j’envoie à Cloudflare, pour la protection et la mise en cache. Cela permet également aux personnes qui ne disposent que d’une connexion IPv4 d’accéder à cette page. Mais j’ai eu du mal à faire fonctionner les choses de manière cohérente pendant un certain temps. Mon routeur est basé sur OpenWRT, mon FAI m’a alloué un préfixe /64 complet… Tout aurait donc dû être facile. Sauf que ce n’était pas trivial.

Ce qui se passait, c’est que mon pi me donnait une adresse IPv6 accessible globalement, et que le site fonctionnait quand je mettais les bons trous dans mon firewall pour CloudFlare… Mais à chaque redémarrage du routeur, l’adresse IPv6 du pi changeait. Cela n’aurait pas dû se produire, puisqu’il y a une valeur DUID cohérente qui est normalement transmise au serveur DHCPv6 et que vous pouvez ensuite obtenir la même IP à nouveau.

Que s’est-il donc passé ? Il s’avère que j’avais mal configuré mon routeur DHCPv6. OpenWRT a une multitude de paramètres, et l’un des plus déroutants sur les parties IPv6 était pour le paramètre DHCP IPv6 de l’interface LAN, il avait les modes Relais, Serveur ou Hybride disponibles. Ne connaissant pas mieux, j’ai pensé que le mode hybride (relais ou serveur selon les besoins) serait la solution la plus simple et la meilleure.

Il m’a fallu beaucoup d’approfondissement pour me rendre compte qu’avec mon architecture de réseau relativement simple, j’étais bien mieux loti avec le mode serveur. Les modes Relais et Hybride sont destinés aux cas où vous essayez d’allouer des adresses IPv6 à des périphériques qui sont hors site ou qui arrivent par des réseaux invités dont la topologie n’est pas simple. Et je suis sûr que plus de la moitié des détails sont erronés.

En bref, cela ajoutait de la complexité et des contrôles qui me donnaient juste assez de corde pour me pendre. C’est pourquoi je suis revenu au mode serveur standard. Retour au mode serveur standard. Maintenant, *tous* mes périphériques réseau compatibles IPv6 reçoivent une adresse DHCPv6 dans le routeur. Cela rend la gestion beaucoup plus facile pour moi, puisque la vue d’ensemble d’OpenWRT me montre maintenant quels sont mes périphériques IPv6 sur le réseau. Et le pi ? Son IP survivra aux redémarrages. Je n’aurai donc plus besoin de me connecter à plusieurs reprises à Cloudflare ou à mon routeur et de copier-coller la nouvelle adresse IPv6 pour vous permettre d’accéder à ce site web.

Yocto vs Nodejs

Cela fait un moment que je travaille sur un projet Yocto pour un client.

J’ai passé beaucoup trop de temps à chercher comment compiler nodejs dans l’image. La recette est déjà là, dans meta-openembedded/meta-oe/recipes-devtools/nodejs. Mais je n’ai pas trouvé le drapeau pour l’activer avec Yocto Kirkstone.

Les quelques posts de forum que j’avais trouvés me disaient d’ajouter IMAGE_INSTALL_APPEND = ” nodejs” au fichier conf. Oups. Cela renvoyait une erreur comme quoi la syntaxe n’était pas la bonne pour ajouter n’importe quel type de variable.

Il s’avère qu’il est relativement simple de la mettre à jour, et j’ai trouvé la réponse ici. Au lieu de IMAGE_INSTALL_APPEND, utilisez IMAGE_INSTALL:append = ” nodejs”.

J’écris ceci pour que d’autres personnes rencontrant le même problème puissent le résoudre un peu plus facilement que moi.

GRBLhal sur SKR 2 pour une MPCNC

Il y a quelque temps, mon beau-frère et moi avions décidé que ce serait un projet amusant de construire chacun notre MPCNC. Etant donné que nous étions tous les deux en Suisse à l’époque, l’approvisionnement en pièces détachées n’était pas trivial, ni bon marché. Il était logique de grouper les commandes, et j’ai toute l’expérience de l’impression 3D et les machines nécessaires pour cela.

Read More