GuidoD
(Guido Drehsen)
29 Enero, 2023 11:24
1
Para su información, acabo de crear una solicitud de extracción para web.ssl.template.yml para poder usar la función NAT IPv6 de Docker en una instancia de Discourse.
Con mi cambio, pude usar la NAT IPv6 de Docker con Discourse.
Sin mi cambio, las solicitudes de clientes IP6 eran rechazadas por Discourse, solo se aceptaban las solicitudes de clientes IP4.
Docker ahora maneja NAT IP6 de manera similar a NAT IP4.
main ← GuidoDr:patch-1
opened 11:14AM - 29 Jan 23 UTC
the "listen [::]:443 ssl http2;" is also required in the first rewrite section w… here it was only rewritten to "listen 443 ssl http2;" Otherwise Discourse will reject requests from pure IP6 webbrowser access.
it has to be:
- replace: filename: "/etc/nginx/conf.d/discourse.conf" from: /listen 80;\s+listen \[::\]:80;\s+gzip on;/m to: | listen 443 ssl http2; listen [::]:443 ssl http2; SSL_TEMPLATE_SSL_BLOCK
With this change the docker IPv6 NAT is handled correctly by Discourse.
In order to enable IP6 in docker without the userland-proxy do create the file /etc/docker/daemon.json and do restart the docker daemon. Then the original IP6 from the accessing client is visible in Discourse for the admins under last IP address and can be checked with the IP check. With the userland-proxy only the IP4 address of the docker daemon would be shown there.
Here the content of my daemon.json (I just anonymized my DNS servers a little bit with the xxx): {
"userland-proxy": false,
"ipv6": true,
"fixed-cidr-v6": "fd00::/80",
"experimental": true,
"ip6tables": true,
"dns": ["xxx.169.148.34","xxx.214.7.22","8.8.8.8","8.8.4.4"]
}
With this the docker container is not exposed directly to the internet with a global IPv6 but instead it is running with a ULA that is not accessible globally. So IP6 is handled in docker with NAT like IP4.
And Discourse is now reachable by IP4 and IP6 and always the original IP address is visible in Discourse.
1 me gusta
GuidoD
(Guido Drehsen)
4 Abril, 2023 10:35
2
¿Alguien del equipo de desarrolladores principales de Discourse puede revisar mi PR?
Para que sea fusionado o rechazado y cerrado.
sam
(Sam Saffron)
4 Abril, 2023 10:45
3
El problema aquí es que no estoy seguro de que queramos aumentar esta superficie por defecto.
Tengo dudas sobre si cambiar esto para todas las instalaciones, ya que exponer v6 puede o no ser la intención del usuario.
Preguntaré internamente si queremos hacer el cambio o no.
3 Me gusta
De acuerdo. Lo siguiente es una mejor manera de hacer esto y proporciona una vía fácil para optar por este comportamiento:
main ← ipv6_template
opened 05:39PM - 04 Apr 23 UTC
By default nginx in the container only listens for IPv4 connections. Some users
… want to enable direct IPv6 connectivity to the container either via forwarding
or NAT. This provides an easy method to allow that.
6 Me gusta
GuidoD
(Guido Drehsen)
5 Abril, 2023 06:47
6
gracias por la PR. y que se fusionó inmediatamente en discourse docker.
Simplemente hice git pull, habilité el “templates/web.ipv6.template.yml” en app.yml y reconstruí la aplicación después de haber deshabilitado mis cambios en web.ssl.template.yml.
Nuestro sitio todavía funciona bien en IPv4 e IPv6.
2 Me gusta
system
(system)
Cerrado
5 Mayo, 2023 06:48
7
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.