[Tuto] Résoudre le problème de hairpinning Orange avec le DHCP/DNS de YunoHost

Il y a aussi une autre solution : prendre un vieil ordi avec deux cartes réseau et y installer un pfsense ou opensense. Après configuration du routeur firewall A LA PLACE de la box orange, vos problèmes seront résolus. Plus de box, rien que le routeur branché sur le WAN… elle est pas belle la vie ?

1 Like

Bonjour, merci pour ce tuto génialissime !
Je ne suis pas encore utilisateur de Yunohost car le problème de hairpinning m’avait dissuadé d’utiliser une machine en tant que serveur auquel l’accès serait impossible ou du moins compliqué depuis le réseau local…
Après avoir lu ce topic, j’ai tout de même quelques questions :

  • Si le serveur tombe en panne, n’y a-t-il pas un risque de ne plus avoir accès à internet? Comment faire dans ce cas?
  • Sinon, tu avais brièvement mentionné Pihole… As tu un tuto avec ce software qui permette de résoudre le problème de hairpinning, tout en coupant les pubs?
    Sinon merci encore !
1 Like

Hello Jungack,

Alors pour répondre à tes questions :

  • En effet, si le serveur tombe en panne il y a un risque que tes autres machines sur ton réseau local n’est plus d’accès internet car c’est ton serveur qui fait office de resolver DNS. La solution temporaire est alors d’activer à nouveau le DHCP de la LiveBox et de renouveler l’IP de tes machines afin que la LiveBox délivre une IP et que ta machine utilise les DNS de la live box. Autre solution : Sur chaque machine tu donnes manuellement l’IP du serveur DNS à utiliser.
    Bon après logiquement ton serveur YNH n’est pas sensé tomber en panne. Personnellement ça fait déjà plus d’un an que je tourne comme ça chez moi et mon serveur YNH tourne H24 sans problème.
  • Pour Pihole je ne peux pas t’aider car je ne l’ai jamais utilisé. C’est fidoboulettes qui avait mentionné ce soft :wink:
2 Likes

Merci beaucoup pour ta réponse ! Il ne reste plus qu’à mettre tout ça en place !

J’ai eu le même souci avec le script. J’ai une ipv6, et

dig +short myip.opendns.com @resolver1.opendns.com

ne fonctionne pas, il faut préciser “-4”:

dig +short myip.opendns.com @resolver1.opendns.com -4

pour l’ipv4 (idéalement, il faudrait aussi ajouter cette règle en ipv6, je ne sais pas s’il y a aussi des soucis d’hairpinning? D’après mes tests, on dirait que non).
Peut-être retourner une erreur plus explicite si l’on n’arrive pas à récupérer l’adresse ip?

Ah oui c’est possible que pour ceux qui ont l’IPv6 d’activer ça pose problème :-/

Aucune idée concernant le hairpinning en IPv6, je n’ai pas eu le temps de tester.

Mais sinon oui, il faudrait que j’ajoute dans le script un test concernant le retour de la commande qui récupère l’IP. Peut être un test sur le code retour de la commande et/ou sur le format retourner (un genre de regex pour vérifier que c’est bien une IP).

Bonjour,

J’ai eu également un souci de renouvellement de certificat, la box de mon provider internet ne supporte visiblement pas l’hairpinning en ipv4 mais bien en ipv6 ().

Ajouter un test en ipv6 en plus de celui en ipv4 pourrait-il être suffisant s’il était ajouté à cette fonction: https://github.com/ABLD/yunohost-ubuntu/blob/933c56bb7ec3d0f9a5fd54b1f360ff4ab26dfbaa/src/yunohost/certificate.py#L815 qu’en pensez-vous ?

=> get_public_ip() renvoie par défaut l’ipv4

Merci

Bonjour !

Merci beaucoup pour ce tutoriel clair et nécessaire pour résoudre ces problèmes d’hairpinning sans calvitie précoce. Je voulais préciser pour les autres copains Suisses que cette méthode fonctionne sans soucis avec la Sunrise Internet Box qui pose les mêmes problèmes que la box Orange… On peut carrément l’appliquer telle quelle :slight_smile:

Bonne année à tous !

Bonjour,

Super alors si ce tuto est encore applicable et qu’il peut aider certaines personnes :smiley:

De mon coté je ne suis plus chez Orange donc je n’utilise plus ce “hack”, si certaines personnes l’utilisent ou souhaitent proposer des amélioration je pourrais éditer le tuto avec plaisir !

Bonne année à tous également !

Merci beaucoup pour ce tuto, il me rend Orange et sa livebox suportable.

1 Like

Bonne initiative, mais grosse usine à gaz…

J’avais tenté de faire un serveur test il y a deux/trois ans avec une livebox d’un pote, qui voulait rester chez Orange : j’ai fait quasiment la même chose que décrit dans ce tuto… Mais les mises-à-jour “aidant”, cela n’a plus marché (de souvenir, j’avais fait cela avec une brique internet), et la connexion a fini par ne plus se faire bien que rien n’avait changé dans la config… Toucher à la resolv, les interfaces, et cela finit toujours par merder au fil du temps, et surtout des mises à jour.

Il vaut mieux faire appel à un VPN afin de ne pas casser la config’ ou bien changer pour aller chez FREE (même si le reverse n’est plus disponible sur les connexions fixes pour le moment - et à voir si cette option va être réimplémentée dans le futur sur connexions fibres).

Par contre, chez FDN, personnalisation du rDNS en IPv4 et IPv6 ! Profitez-en !

1 Like

ça fonctionne bien pour le moment.
par contre j’ai eu une petite surprise le lendemain matin, chromcast et google home ne fonctionnaient plus, j’ai du leur réserver une ip sur la box pour les faire fonctionner à nouveau, je n’ai pas cherché plus loin pour les faire fonctionner sur mon serveur, mais à priori c’est une histoire de résolution DNS en dur sur les apareils de google.

Bonjour, comment on procède pour configurer un rdns avec un abonnement vpn FDN (Ilysse) ?

1 Like

@rodinux les plus simple c’est d’envoyer un mail à illyse. Mais de mémoire tu peux faire pas mal de chose puis l’interface COIN (l’espace adhérent⋅e d’illyse).

Pour la FDN, il suffit d’envoyer un mail en leur précisant :

  • bien évidemment : ton nom de domaine ;
  • adresse IPv4 ;
  • adresse Ipv6 (pas uniquement le préfixe), en entier !

Bonjour,
D’abord merci pour ce tuto qui fonctionne encore aujourd’hui .
Moi aussi j’avais ce problème d’accès au serveur depuis mon réseau local.
Mon modem-routeur est un D-link DSL-2640B, car je suis chez FDN qui ne fourni pas de box.

Information sur la version de YNH :

# yunohost -v
yunohost: 
  repo: stable
  version: 4.3.6.2
yunohost-admin: 
  repo: testing
  version: 4.3.4.1
moulinette: 
  repo: stable
  version: 4.3.3.1
ssowat: 
  repo: stable
  version: 4.3.3.1

Ce que j’ai fait pour résoudre :

1. Attribution d’une IP fixe au serveur YunoHost
J’avais déjà assigné une IPv4 fixe à mon YNH.

2. Activer le serveur DHCP de DNSmasq

  • Modifié le /etc/dnsmasq.conf comme ceci :
domain-needed
expand-hosts

# listen-address=127.0.0.1 # On veut écouter aussi les machines de notre LAN
resolv-file=/etc/resolv.dnsmasq.conf

cache-size=2048 # Nombre d'entrées DNS max à garder en cache
bogus-priv
dhcp-range=192.168.1.100,192.168.1.200,255.255.255.0,24h # Active le serveur DHCP, 
# celui-ci fournira des adresses IP entre 192.168.1.100 et 192.168.1.200 aux machines du réseau
dhcp-option=option:router,192.168.1.1 # Indique la passerelle de notre réseau
  • Ouvert le port 67 UDP avec sudo yunohost firewall allow UDP 67
  • Relancer DNSmasq avec sudo service dnsmasq restart

3. Désactiver le serveur DHCP du D-link DSL-2640B
A partir de l’interface web en 192.168.1.1.

  • Dans “Configuration de réseau local” : décocher “Activer le serveur DHCP”
  • Dans “Ajouter un DHCP statique” :
    Cocher “Activer”
    Renseigner les champs Nom de ordi, Adresse IP et Adresse MAC (récupérés avec un ip address)
  • “Enregistrer” : le serveur DHCP apparaît alors dans la “Liste des DHCP statiques”
  • “Enregistrer les paramètres” le D-link DSL-2640B se réinitialise.

4. Vérification du fonctionnement de DNSmasq
En effet, une machine faisant appel au service DHCP reçoit bien une IP dans la plage spécifier dans /etc/dnsmasq.conf et comme Primary DNS l’IP statique du YNH.
Par contre, pour les machines configurées en IP fixe j’ai du renseigner le serveur DNS avec l’IP du YNH.
J’ai maintenant accès au YNH depuis toutes les machines du réseau local par son domain.tld.

5. Ajouter vos domaines à la config de DNSmasq
Un fichier domain.tld était déjà présent dans /etc/dnsmasq.d, la ligne address= n’y figure pas mais par contre 4 lignes interface-name=.
Ça fonctionne ainsi je n’ai donc rien modifié.

6. Mise en place et renouvellement des certificats Let’s Encrypt
J’ai d’abord tenté un “renouveler manuellement maintenant” et la validité du certificat est bien passée à 89 jours.
Ça fonctionne ainsi je n’ai donc rien modifié.

Conclusion

  • Le tuto est toujours d’actualité, malgré les années.
  • Les points 5. et 6. semblent être pris en charge dans l’installation de YNH.
  • Ce tuto pourrait être intégré à la documentation.

Merci à toute l’équipe. :ok_hand: