<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>