Auteur Sujet: Reverse proxy ipv4 ok, mais ipv6 non  (Lu 5389 fois)

0 Membres et 1 Invité sur ce sujet

buddy

  • Expert
  • Abonné Free fibre
  • *
  • Messages: 15 127
  • Alpes Maritimes (06)
Reverse proxy ipv4 ok, mais ipv6 non
« Réponse #12 le: 03 janvier 2021 à 12:31:05 »
Il faudrait que tu affiches cette IP pour voir si c'est celle du proxy ou celle du client.

Si c'est celle du proxy, il faudrait modifier le proxy pour qu'il ajoute une entête de ce style
$_SERVER['HTTP_X_FORWARDED_FOR']
avec l'IP du client.

Darkjeje

  • Abonné Free adsl
  • *
  • Messages: 592
  • Free VDSL2 Issy-les-Moulineaux (92)
Reverse proxy ipv4 ok, mais ipv6 non
« Réponse #13 le: 03 janvier 2021 à 13:57:07 »
Il faudrait que tu affiches cette IP pour voir si c'est celle du proxy ou celle du client.

Si c'est celle du proxy, il faudrait modifier le proxy pour qu'il ajoute une entête de ce style
$_SERVER['HTTP_X_FORWARDED_FOR']
avec l'IP du client.

C'est en effet celle du proxy (qui est aussi la même que celle du reverse proxy, les deux étant sur le raspberry).
Avec $_SERVER['HTTP_X_FORWARDED_FOR'] j'obtiens l'adresse IP de ma freebox, donc du routeur quand je test depuis mon PC en local, et l'adresse IP public depuis mon smartphone en 4G.

Merci pour le tuyau ;)

Par contre l'adresse IP affichée par mon smartphone est celle en IPv4 et non en IPv6, alors que le site http://ip.lafibre.info/ m'indique que mon smartphone utilise le protocole IPv6 par défaut.
J'avance, mais ce n'est pas encore cela...

raf

  • Expert France-IX
  • Expert
  • *
  • Messages: 645
Reverse proxy ipv4 ok, mais ipv6 non
« Réponse #14 le: 07 janvier 2021 à 11:59:44 »
Je détectais en php l'IP utilisée pour ce connecter à mon site web, et si elle dépassait 15 caractères, alors je considérais que c'était une IPv6, et sinon une IPv4.
Là vue que j'ai "proxy_pass https://192.168.1.9:8443/;}" forcément il détecte une IPv4. Idem si je mets localhost à la place de 192.168.1.9.
Pas exactement le meilleur moyen de detecter, surtout quand tu es derriere un proxy. Regarde les autres messages avec HTTP_X_FORWARDED_FOR

J'ai désactiver IPv4 sur mon ordinateur, je conserve bien une adresse IPv6 (vérifié avec http://ip.lafibre.info/), mais je n'ai plus accès à mon site web. Donc IPv6 ne fonctionne pas.
Est-ce que ton site web publie dans DNS une adresse IPv4 ET une adresse IPv6 ?
Si ce n'est pas le cas, et que tu publies uniquement une IPv4 (ou alors l'IPv6 ne commence pas par 20 - au pif c'est une link-local comme dans ta tentative de config), c'est ZERO chances qu'il y a une connexion en IPv6 qui sera initie.

Si je mets mon adresse IPv6 public dans le proxy pass, je me connecte bien en IPv6, même si je n'ai pas de connectivité IPv6 sur le terminal utilisé.
Si tu n'as pas d'IPv6 sur un terminal, tu ne peux pas te connecter en IPv6 depuis ce terminal. OK, il y a le XLAT464, mais ca c'est des choses ou des equipements reseaux intermediaries (qui ont des adresses IPv6) interviennent.
Pareil, si tu n'as pas d'IPv4, tu ne peux pas te connecter en IPv4 (modulo NAT64+DNS64 quelque-part). Si tu n'as pas d'IPv4 et tu DOIS te connecter sur une IPv4 (au pif par-ce que l'adresse IPv6 du service en question n'existe pas ou n'est pas renseignee nulle-part), c'est l'echec direct.

Il ne semble donc pas y avoir d'inconvénient à mettre mon adresse IPv6 public dans mon proxy pass...
Non. Il y a 2 connexions, et il n'est pas necessaires que les deux soient via le meme protocole:
* client -> reverseProxy
* reverseProxy -> varis serveur
Sur la deuxieme connexion, l'adresse client est toujours celle du reverse proxy, il faut donc utiliser HTTP_X_FORWARDED_FOR pour transmettre l'IP (v4, v6, ??? IPX ???) du vrai client au serveur.