Project

General

Profile

Demande #4437

L'interface Web de mumble n'est pas accessible en IPV6

Added by Laurent POUJOULAT over 1 year ago. Updated over 1 year ago.

Status:
En cours de traitement
Priority:
Faible
Assignee:
Christian P. Momon
Target version:
Start date:
04/24/2020
Due date:
% Done:

0%

Estimated time:

Description

L'interface Web de mumble n'est pas accessible en IPV6. Toutes les requêtes arrivent en IPV4. Il y a probablement un problème de routage quelque part.
A noter que cela n'affecte que mumble.chapril.org et pas visio.chapril.org.

Cela n'affecte pas le fonctionnement du service.

History

#1

Updated by Laurent POUJOULAT over 1 year ago

J'ai investigué un peu sur le sujet et il y a deux raisons empilées (au moins):

La première, c'est simplement que le NGinx de Allo n'écoute pas en IPV6 (!). Pour écouter in V4 et V6, il faut ajouter à la configuration:

listen [::]:80;

à la place de:
listen 80;

Il faut absolument mettre toutes les conf (visio et mumble) dans ce mode, sinon il se passe des choses étranges (mumble renvoie sur visio)

Mais ça ne suffit pas. Bastion transmet l'IP réelle via le proxy protocol. Pour récupérer l'IP réelle en IPV6, il faut donc aussi ajouter aussi:

set_real_ip_from 2a01:4f8:10b:c41::93;

Après ça, on voit bien les connexions en IPV6.

Mais ça ne suffit pas encore. Les logs montrent que l'IP transise par Bastion dans le header X-Real-IP via IPV6 est encore l'IP V4 du client !? La il y a encore un mystère, mais côté Bastion et/ou DNS.

J'ai laissé dans /root/tmp les fichiers de configuration NGinx de mes essais.

#2

Updated by Christian P. Momon over 1 year ago

La première, c'est simplement que le NGinx de Allo n'écoute pas en IPV6 (!).

Ha bah oui, bien vu ! :D

Pour écouter in V4 et V6, il faut ajouter à la configuration:
listen [::]:80;
à la place de:
listen 80;

Alors, pas vraiment « à la place de » mais en même temps :

    listen 80;
    listen [::]:80;

Là, ça devrait être bon :-)

#3

Updated by Laurent POUJOULAT over 1 year ago

  • Status changed from Nouveau to Confirmé
#4

Updated by Christian P. Momon over 1 year ago

Après analyse, la configuration DNS associait le domaine mumble.chapril.org à l'ipv6 de la vm allo :

=(^-^)=root@dns:/etc/bind# grep -R mumble
zones/masters/chapril.org:mumble          A       88.99.233.240
zones/masters/chapril.org-int:mumble            CNAME   allo.cluster

Donc c'était bien pour le flux 64738 mais pas pour les flux 80 et 443…

#5

Updated by Christian P. Momon over 1 year ago

Un problème connexe à cette configuration bancale d'ipv6 :
  • puisque le domaine avait une ipv6 définie dans le dns alors Letsencrypt cherchait à l'utiliser pour renouveler le certificat ;
  • comme le site web n'était pas accessible alors le renouvellement du certificat HTTPS échouait…

Pour stabiliser la plateforme, j'ai tout remis en ipv4 seulement.

#6

Updated by Christian P. Momon over 1 year ago

  • Status changed from Confirmé to En cours de traitement
Pour activer ipv6, deux possibilités :
  • nat ipv6 par port :
    • mumble.chapril.org --nat----80--> vm bastion --proxy--> vm allo…,
    • mumble.chapril.org --nat---443--> vm bastion --proxy--> vm allo…,
    • mumble.chapril.org --nat-64738--> vm allo…
    • revient à donner des ipv6 privées aux vm donc un gros changement dans l'infra,
  • utiliser 2 noms de domaines différents (solution suggérer par QGuLL) :
    • mumbleweb.chapril.org -----80--> vm bastion --proxy--> vm allo…,
    • mumbleweb.chapril.org ----443--> vm bastion --proxy--> vm allo…,
    • mumble.chapril.org -----80--> vm allo --302--> mumbleweb.chapril.org --proxy--> vm allo…,
    • mumble.chapril.org ----443--> vm allo --302--> mumbleweb.chapril.org --proxy--> vm allo…,
    • mumble.chapril.org --64738--> vm allo.

Une préférence ? Une autre idée ?

À noter que rester en ipv4 n'est pas nominal car implique que le domaine mumble.chapril.org ne soit pas CNAME de la fip.

Also available in: Atom PDF