<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<div class="moz-cite-prefix">Le 23/10/2022 à 18:59, Emmanuel Thierry
a écrit :<br>
</div>
<blockquote type="cite"
cite="mid:28E5964E-5B51-4F57-AB1F-916542E027FA@sekil.fr">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
Bonjour,<br class="">
<div><br class="">
<blockquote type="cite" class="">
<div class="">Le 23 oct. 2022 à 15:11, Laurent GUERBY via
technique <<a
href="mailto:technique@lists.tetaneutral.net"
class="moz-txt-link-freetext" moz-do-not-send="true">technique@lists.tetaneutral.net</a>>
a écrit :</div>
<br class="Apple-interchange-newline">
<div class=""><span style="caret-color: rgb(0, 0, 0);
font-family: Helvetica; font-size: 12px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; text-align: start; text-indent:
0px; text-transform: none; white-space: normal;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
text-decoration: none; float: none; display: inline
!important;" class="">On Sun, 2022-10-23 at 14:36 +0200,
manu chez Z via technique wrote:</span><br
style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
font-size: 12px; font-style: normal; font-variant-caps:
normal; font-weight: normal; letter-spacing: normal;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px; text-decoration: none;"
class="">
<blockquote type="cite" style="font-family: Helvetica;
font-size: 12px; font-style: normal; font-variant-caps:
normal; font-weight: normal; letter-spacing: normal;
orphans: auto; text-align: start; text-indent: 0px;
text-transform: none; white-space: normal; widows: auto;
word-spacing: 0px; -webkit-text-size-adjust: auto;
-webkit-text-stroke-width: 0px; text-decoration: none;"
class="">Le 23/10/2022 à 13:56, Albert ARIBAUD a écrit :<br
class="">
<blockquote type="cite" class="">Bonjour,<br class="">
<br class="">
Le dimanche 23 octobre 2022 à 12:37 +0200, manu chez Z
via<br class="">
technique a<br class="">
écrit :<br class="">
<blockquote type="cite" class="">Bonjour<br class="">
Nous (le pic) utilisons une architecture à base de
conteneurs<br class="">
docker,<br class="">
avec un reverse-proxy connecté aux ports 80 et 443,
qui renvoie<br class="">
les<br class="">
requêtes sur divers conteneurs en fonction du virtual
host<br class="">
demandé.<br class="">
Il y a un gros problème avec cette architecture, car
les logs du<br class="">
proxy (et donc aussi les logs des conteneurs qui sont
derrière)<br class="">
contiennent l'adresse IP source lorsqu'il s'agit d'une
requête<br class="">
IPv4,<br class="">
mais l'adresse IPv4 du gateway lorsqu'il s'agit de
requêtes IPv6<br class="">
!<br class="">
Donc nous n'avons pas connaissance de l'adresse IPv6
utilisée. Un<br class="">
exemple avec le cloud du pic, qui repose sur le
travail<br class="">
d'oxytanet<br class="">
(mais c'est la même chose avec nos autres services):<br
class="">
web_1 | 2022-10-23T10:21:06.535228752Z 172.18.0.2 - -<br
class="">
[23/Oct/2022:10:21:06 +0000] "GET /s/xxxxxxxxxxxx
HTTP/1.1" 200<br class="">
7447<br class="">
"-" "curl/7.74.0" "172.18.0.1"<br class="">
C'est très ennuyeux, ne serait-ce que pour des raisons
légales.<br class="">
Et<br class="">
c'est de plus en plus ennuyeux, car il y a de plus en
plus de<br class="">
requêtes IPv6.<br class="">
J'ai cherché tous les tutos du monde qui parlent de
ça, mais je<br class="">
n'ai<br class="">
pas réussi à m'en sortir, même sur une machine de
tests<br class="">
rebootable à<br class="">
l'envie. Est-ce que quelqu'un a déjà fait ça ?<br
class="">
Merci de votre aide !<br class="">
</blockquote>
<br class="">
J'ai eu le problème avec NGINX en reverse proxy d'une
autre<br class="">
machine,<br class="">
mais je pense que c'est la même chose qu'avec des
containers.<br class="">
<br class="">
Ma solution s'est appuyée sur les options<br class="">
<br class="">
proxy_pass <URI du serveur>;<br class="">
proxy_set_header Host $host;<br class="">
proxy_set_header X-Forwarded-For $remote_addr;<br
class="">
<br class="">
où "proxy_pass <URI du serveur>" est la directive
qui réalise le<br class="">
reverse proxy, et les deux "proxy_set_header" sont ce
qui permet au<br class="">
serveur final de savoir quelle était l'adresse du vrai
client.<br class="">
<br class="">
Comme tu ne précises pas de détails sur ton reverse
proxy, ce qui<br class="">
précède ne s'applique peut-être pas à ton cas, mais tu
dois trouver<br class="">
l'équivalent chez Apache et autres.<br class="">
<br class="">
</blockquote>
<br class="">
Bonjour<br class="">
<br class="">
Merci de ta réponse, mais il ne s'agit pas d'un problème
de <br class="">
configuration du proxy: on voit dans les logs les adresses
IPv4, pas<br class="">
les <br class="">
adresses IPv6. Si c'était un problème de proxy il se
produirait de<br class="">
la <br class="">
même manière pour les deux stacks. Et par ailleurs nous
avons le<br class="">
même <br class="">
problème sur une machine qui héberge des sites web, où le
reverse<br class="">
proxy <br class="">
est un nginx (<a
href="https://hub.docker.com/r/jwilder/nginx-proxy"
class="moz-txt-link-freetext" moz-do-not-send="true">https://hub.docker.com/r/jwilder/nginx-proxy</a>)
et sur<br class="">
la <br class="">
machine qui héberge le cloud, là il s'agit de l'infra
oxytanet à base<br class="">
de <br class="">
traefik (cf. <a
href="https://framagit.org/oxyta.net/docker-atelier"
class="moz-txt-link-freetext" moz-do-not-send="true">https://framagit.org/oxyta.net/docker-atelier</a>).<br
class="">
<br class="">
Il y a les directives dont tu parles dans la conf du proxy
nginx mais<br class="">
le <br class="">
problème est en amont du proxy: Docker transforme les
requêtes IPv6<br class="">
en <br class="">
IPv4, et au passage on perd l'information de l'adresse
IPv6. J'ai <br class="">
évidemment essayé de jouer avec les options de
configuration d'IPv6<br class="">
dans <br class="">
Docker, mais c'est là que je me suis perdu....<br class="">
</blockquote>
<br style="caret-color: rgb(0, 0, 0); font-family:
Helvetica; font-size: 12px; font-style: normal;
font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; text-align: start; text-indent:
0px; text-transform: none; white-space: normal;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
text-decoration: none;" class="">
<span style="caret-color: rgb(0, 0, 0); font-family:
Helvetica; font-size: 12px; font-style: normal;
font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; text-align: start; text-indent:
0px; text-transform: none; white-space: normal;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
text-decoration: none; float: none; display: inline
!important;" class="">En regardant les fichiers docker
d'oxyta :</span><br style="caret-color: rgb(0, 0, 0);
font-family: Helvetica; font-size: 12px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; text-align: start; text-indent:
0px; text-transform: none; white-space: normal;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
text-decoration: none;" class="">
<br style="caret-color: rgb(0, 0, 0); font-family:
Helvetica; font-size: 12px; font-style: normal;
font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; text-align: start; text-indent:
0px; text-transform: none; white-space: normal;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
text-decoration: none;" class="">
<a
href="https://framagit.org/oxyta.net/proxyta.net/-/blob/master/prod-le/docker"
style="font-family: Helvetica; font-size: 12px;
font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans:
auto; text-align: start; text-indent: 0px; text-transform:
none; white-space: normal; widows: auto; word-spacing:
0px; -webkit-text-size-adjust: auto;
-webkit-text-stroke-width: 0px;"
class="moz-txt-link-freetext" moz-do-not-send="true">https://framagit.org/oxyta.net/proxyta.net/-/blob/master/prod-le/docker</a><br
style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
font-size: 12px; font-style: normal; font-variant-caps:
normal; font-weight: normal; letter-spacing: normal;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px; text-decoration: none;"
class="">
<span style="caret-color: rgb(0, 0, 0); font-family:
Helvetica; font-size: 12px; font-style: normal;
font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; text-align: start; text-indent:
0px; text-transform: none; white-space: normal;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
text-decoration: none; float: none; display: inline
!important;" class="">-compose.yml</span><br
style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
font-size: 12px; font-style: normal; font-variant-caps:
normal; font-weight: normal; letter-spacing: normal;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px; text-decoration: none;"
class="">
<br style="caret-color: rgb(0, 0, 0); font-family:
Helvetica; font-size: 12px; font-style: normal;
font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; text-align: start; text-indent:
0px; text-transform: none; white-space: normal;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
text-decoration: none;" class="">
<span style="caret-color: rgb(0, 0, 0); font-family:
Helvetica; font-size: 12px; font-style: normal;
font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; text-align: start; text-indent:
0px; text-transform: none; white-space: normal;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
text-decoration: none; float: none; display: inline
!important;" class="">On voit :</span><br
style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
font-size: 12px; font-style: normal; font-variant-caps:
normal; font-weight: normal; letter-spacing: normal;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px; text-decoration: none;"
class="">
<br style="caret-color: rgb(0, 0, 0); font-family:
Helvetica; font-size: 12px; font-style: normal;
font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; text-align: start; text-indent:
0px; text-transform: none; white-space: normal;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
text-decoration: none;" class="">
<span style="caret-color: rgb(0, 0, 0); font-family:
Helvetica; font-size: 12px; font-style: normal;
font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; text-align: start; text-indent:
0px; text-transform: none; white-space: normal;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
text-decoration: none; float: none; display: inline
!important;" class="">ipv6nat:</span><br
style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
font-size: 12px; font-style: normal; font-variant-caps:
normal; font-weight: normal; letter-spacing: normal;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px; text-decoration: none;"
class="">
<span style="caret-color: rgb(0, 0, 0); font-family:
Helvetica; font-size: 12px; font-style: normal;
font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; text-align: start; text-indent:
0px; text-transform: none; white-space: normal;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
text-decoration: none; float: none; display: inline
!important;" class=""> image: robbertkl/ipv6nat</span><br
style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
font-size: 12px; font-style: normal; font-variant-caps:
normal; font-weight: normal; letter-spacing: normal;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px; text-decoration: none;"
class="">
<br style="caret-color: rgb(0, 0, 0); font-family:
Helvetica; font-size: 12px; font-style: normal;
font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; text-align: start; text-indent:
0px; text-transform: none; white-space: normal;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
text-decoration: none;" class="">
<span style="caret-color: rgb(0, 0, 0); font-family:
Helvetica; font-size: 12px; font-style: normal;
font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; text-align: start; text-indent:
0px; text-transform: none; white-space: normal;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
text-decoration: none; float: none; display: inline
!important;" class="">Sur la page github de ipv6nat :</span><br
style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
font-size: 12px; font-style: normal; font-variant-caps:
normal; font-weight: normal; letter-spacing: normal;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px; text-decoration: none;"
class="">
<br style="caret-color: rgb(0, 0, 0); font-family:
Helvetica; font-size: 12px; font-style: normal;
font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; text-align: start; text-indent:
0px; text-transform: none; white-space: normal;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
text-decoration: none;" class="">
<a
href="https://github.com/robbertkl/docker-ipv6nat#why-would-i-need-this"
style="font-family: Helvetica; font-size: 12px;
font-style: normal; font-variant-caps: normal;
font-weight: normal; letter-spacing: normal; orphans:
auto; text-align: start; text-indent: 0px; text-transform:
none; white-space: normal; widows: auto; word-spacing:
0px; -webkit-text-size-adjust: auto;
-webkit-text-stroke-width: 0px;"
class="moz-txt-link-freetext" moz-do-not-send="true">https://github.com/robbertkl/docker-ipv6nat#why-would-i-need-this</a><br
style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
font-size: 12px; font-style: normal; font-variant-caps:
normal; font-weight: normal; letter-spacing: normal;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px; text-decoration: none;"
class="">
<br style="caret-color: rgb(0, 0, 0); font-family:
Helvetica; font-size: 12px; font-style: normal;
font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; text-align: start; text-indent:
0px; text-transform: none; white-space: normal;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
text-decoration: none;" class="">
<span style="caret-color: rgb(0, 0, 0); font-family:
Helvetica; font-size: 12px; font-style: normal;
font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; text-align: start; text-indent:
0px; text-transform: none; white-space: normal;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
text-decoration: none; float: none; display: inline
!important;" class="">On trouve pas mal d'information sur
pourquoi docker et ipv6 c'est ...</span><br
style="caret-color: rgb(0, 0, 0); font-family: Helvetica;
font-size: 12px; font-style: normal; font-variant-caps:
normal; font-weight: normal; letter-spacing: normal;
text-align: start; text-indent: 0px; text-transform: none;
white-space: normal; word-spacing: 0px;
-webkit-text-stroke-width: 0px; text-decoration: none;"
class="">
<span style="caret-color: rgb(0, 0, 0); font-family:
Helvetica; font-size: 12px; font-style: normal;
font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; text-align: start; text-indent:
0px; text-transform: none; white-space: normal;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
text-decoration: none; float: none; display: inline
!important;" class="">compliqué. (Et rien vu sur les logs
dans ipv6nat).</span><br style="caret-color: rgb(0, 0, 0);
font-family: Helvetica; font-size: 12px; font-style:
normal; font-variant-caps: normal; font-weight: normal;
letter-spacing: normal; text-align: start; text-indent:
0px; text-transform: none; white-space: normal;
word-spacing: 0px; -webkit-text-stroke-width: 0px;
text-decoration: none;" class="">
</div>
</blockquote>
</div>
<br class="">
<div class="">Le seul argument entendable (et vaguement évoqué
dans le thread) étant que certains hébergeurs ne fournissent
qu’un /128 (donc 1 IPv6) et non un /64, auquel cas tu es obligé
de faire du NAT (stateful) comme en IPv4. Dans tous les autres
cas il y a de meilleures solutions que le NAT. Ils voulaient
juste un truc qui marchait comme en IPv4…</div>
<div class=""><br class="">
</div>
<div class="">Concernant le problème initial, tu peux toujours
déployer ton propre reverse proxy configuré comme il faut (avec
un nginx bien entendu !).</div>
<div class=""><br class="">
</div>
<div class="">Manu</div>
<div class=""><br class="">
</div>
<div class=""><br class="">
</div>
</blockquote>
<p>Bonjour</p>
<p>En fait nous avons deux serveurs avec des services docker qui se
trouvent derrière un reverse proxy: sur l'un il y a nextcloud
packagé par oxytanet qui repose sur traefik, sur l'autre il y a
des sites webs vivant dans plusieurs conteneurs, et cette fois le
reverse-proxy est le jwilder, qui repose cette fois sur nginx.</p>
<p>Le problème est le même dans les deux cas: on arrive facilement à
avoir l'IP d'origine dans les logs lorsqu'il s'agit d'IPv4, pas du
tout en IPv6. Le problème est en amont du proxy, c'est un problème
de configuration de docker (pas du proxy) que je n'arrive pas à
régler.</p>
<p>Merci et bonne soirée,</p>
<p>Emmanuel</p>
<p><br>
</p>
</body>
</html>