¿Debo usar solo IPv6 o IPv4 e IPv6 en mi servidor web?


39

Mi servidor web (Ubuntu, Nginx) tiene direcciones IPv4 e IPv6 asignadas por el host. Para mi sitio web, ¿debo vincularlo solo a una dirección IPv6? ¿Es la forma estándar recomendada? ¿O debo usar las direcciones IPv4 e IPv6?


13
Está haciendo la pregunta incorrecta (a las personas equivocadas): pregúntese "¿Necesito poder acceder a este sitio desde clientes IPv4, clientes IPv6 o ambos?". La respuesta a eso es también la respuesta a las direcciones que su servidor web necesita escuchar.
voretaq7

66
Por lo general, estaría completamente de acuerdo con una respuesta de "obtenga sus especificaciones primero", pero en este caso, curiosamente, no lo hago; Estoy de acuerdo con Michael "v6 solamente" sigue siendo, lamentablemente, muy poco probable que sea el requisito (aunque si lo es, este comentario es totalmente incorrecto). Si no es así, entonces estamos en "stack mixto" y "solo v4". Incluso si todos los usuarios dicen que "v4 solamente" es correcto, en este punto, está mal; Mixed-stack es el camino a seguir para el futuro, sin importar lo que diga la comunidad de usuarios actual.
MadHatter apoya a Monica

@MadHatter En este punto, podemos eliminar de forma segura "solo v4". Los límites inherentes de NAT a gran escala hacen que solo v4 sea insostenible para el operador de un sitio web o, posiblemente, cualquier otro servicio de Internet. Más detalles en mi respuesta actualizada.
Michael Hampton

@MichaelHampton todavía está de acuerdo contigo.
MadHatter apoya a Monica el

Respuestas:


56

Use tanto IPv4 como IPv6

Debe usar las direcciones IPv4 e IPv6.

Casi todos en Internet actualmente tienen una dirección IPv4, o están detrás de un NAT de algún tipo, y pueden acceder a los recursos IPv4.

Sin embargo, en el momento de redactar este informe, solo alrededor del 0.7% 2.3% 3.8% 6.5% 9% 12% 19% 22% 26% de Internet es compatible con IPv6 , pero ese número crece constantemente a medida que IPv6 comienza a implementarse en todo el mundo.

En muy pocos lugares, los ISP proporcionan principalmente IPv6 o solo IPv6 a clientes residenciales y utilizan NAT, NAT64 u otras soluciones similares a gran escala para la conectividad IPv4. Se espera que este número aumente a medida que finalmente se agote el espacio de direcciones IPv4. Estos usuarios generalmente tendrán un mejor rendimiento sobre IPv6.

Cuando los ISP han implementado NAT a gran escala para resolver el agotamiento de IPv4, los usuarios atorados con esto sufrirán una confiabilidad reducida de todas sus conexiones a Internet debido a los límites de conexión inherentes a las puertas de enlace NAT a gran escala. Por ejemplo, una página web solo puede cargar algunos pero no todos sus recursos , dejando iconos rotos donde deberían estar las imágenes, faltando estilos y scripts, etc. Esto es similar al agotamiento del límite de conexión en un enrutador doméstico, pero afecta a todos los usuarios del ISP de forma intermitente y aparentemente aleatoria. Si desea que su sitio sea confiable para estos usuarios, debe servirlo a través de IPv6 (y el ISP debe haber implementado IPv6).

Dado que IPv6 es hacia donde se dirige Internet, tener su sitio web habilitado para IPv6 ahora lo coloca por delante del juego y le permite resolver cualquier problema mucho antes de que se convierta en algo serio.

Configurar nginx

De manera predeterminada con Linux y nginx, puede enlazar a IPv4 e IPv6 al mismo tiempo cambiando sus listendirectivas a:

listen [::]:80;
listen 80;

O, para sitios SSL:

listen [::]:443 ssl;
listen 443 ssl;

Ok, gracias ... una pregunta más ... Ahora he configurado el servidor ... En el DNS recurrente, tengo que poner dos registros A y AAAA (con el nombre de host @) y apuntando a los ips correspondientes.
THpubs

3
Sí, el Aregistro es para su dirección IPv4 y el AAAAregistro es para su dirección IPv6.
Michael Hampton

Perfecto. Muchas gracias por la explicación :) Soy nuevo en cosas de ipv6
THpubs

No estoy familiarizado con nginx, pero ¿no debería listen 443;tener el ssligual que el listen [::]:443 ssl;? Entonces en listen 443 ssl;lugar de listen 443;.
un CVn

@aCVn Sí, debería. Gracias por atrapar eso. Eso me enseñará a editar cosas mientras estoy medio dormido.
Michael Hampton

3

¡Ate a ambos!

Teníamos un sitio web de IIS cuyo código hacía una referencia interna a sí mismo, usando el nombre DNS que el cliente había usado. Este proceso siempre fallaría.

Otro síntoma fue que un navegador que se ejecuta localmente en el servidor no podía encontrar el sitio web por el nombre del servidor, solo por la dirección IPv4. Es decir, http://192.168.55.139funcionaría, pero http://myhostfracasaría. El uso ping myhostdevolvería, por defecto, la dirección IPv6 ( ping myhost -4devolvería la dirección IPv4).

La solución fue abrir IIS y cambiar los enlaces del sitio web para que se vinculen a la dirección IPv6, así como a la dirección IPv4.

ingrese la descripción de la imagen aquí


66
No es necesario ofuscar direcciones privadas. Sin embargo, también debe vincularse a su dirección IPv6 global para que se pueda acceder a su sitio externamente a través de IPv6.
Michael Hampton

El código mencionado fue el Winnovative HTML to PDF Converter.
Glen Little

2
Tener un servicio accesible tanto interna como externamente es más fácil cuando no usa NAT. Y es más fácil evitar NAT, si está utilizando IPv6. Pero conectarse ciegamente a un nombre de host proporcionado por un cliente suena como una falla de diseño. Es completamente posible que el cliente le envíe unHost encabezado con un nombre de dominio que no le pertenece.
kasperd
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.