Devrais-je utiliser uniquement IPv6 ou les deux IPv4 et IPv6 sur mon serveur Web?

39

Mon serveur Web (Ubuntu, Nginx) a des adresses IPv4 et IPv6 attribuées par l'hôte. Pour mon site Web, dois-je le lier à une adresse IPv6 uniquement? Est-ce la méthode standard recommandée? Ou dois-je utiliser les adresses IPv4 et IPv6?

THpubs
la source
13
Vous posez la mauvaise question (aux mauvaises personnes) - Demandez-vous "Dois-je pouvoir accéder à ce site à partir de clients IPv4, IPv6 ou des deux?". La réponse à cette question est également la réponse aux adresses sur lesquelles votre serveur Web doit écouter.
voretaq7
6
Ordinairement, je suis tout à fait d’accord avec une réponse du type «répondez d’abord à vos spécifications», mais dans ce cas, curieusement, ce n’est pas le cas; Je suis d'accord avec Michael. Malheureusement, "v6 seulement" est toujours impossible (bien que si c'est le cas, ce commentaire est totalement faux). Si ce n'est pas le cas, il ne reste plus que "stack mixte" et "v4 uniquement". Même si vos utilisateurs disent tous que "v4 seulement" est correct, à ce stade, c'est faux; La pile mixte est la solution idéale pour l'avenir, peu importe ce que dit la communauté d'utilisateurs actuelle.
MadHatter soutient Monica
@MadHatter À ce stade, nous pouvons éliminer en toute sécurité "v4-only". Les limites inhérentes au NAT à grande échelle rendent la version v4 seulement intenable pour l’exploitant d’un site Web ou très probablement de tout autre service Internet. Plus de détails dans ma réponse mise à jour.
Michael Hampton
@ MichaelHampton toujours d'accord avec vous.
MadHatter soutient Monica

Réponses:

56

Utilisez à la fois IPv4 et IPv6

Vous devez utiliser les adresses IPv4 et IPv6.

Presque tout le monde sur Internet a actuellement une adresse IPv4, ou est derrière un NAT, et peut accéder aux ressources IPv4.

Cependant, au moment de la rédaction du présent document, seuls 0,7% environ 2,3% 3,8% 6,5% 9% 12% 19% 22% 26% d'Internet est compatible IPv6 , mais ce nombre ne cesse de croître à mesure que l'IPv6 commence à se répandre dans le monde entier.

Dans quelques rares endroits, les fournisseurs de services Internet fournissent principalement aux clients résidentiels IPv6 ou uniquement IPv6 et utilisent des solutions NAT à grande échelle, NAT64 ou autres, pour la connectivité IPv4. Ce nombre devrait augmenter à mesure que l'espace d'adressage IPv4 est enfin épuisé. Ces utilisateurs auront généralement de meilleures performances sur IPv6.

Là où les fournisseurs de services Internet ont déployé le NAT à grande échelle pour résoudre l'épuisement IPv4, les utilisateurs qui y sont confrontés subiront une fiabilité réduite de toutes leurs connexions Internet en raison des limites de connexion inhérentes aux passerelles NAT à grande échelle. Par exemple, une page Web peut ne charger que certaines, mais pas toutes ses ressources , laissant des icônes brisées là où les images doivent se trouver, des styles et des scripts manquants, etc. Ceci est similaire à l'épuisement de la limite de connexion sur un routeur domestique, mais affecte tous les utilisateurs du réseau. FAI par intermittence et apparemment au hasard. Si vous souhaitez que votre site soit fiable pour ces utilisateurs, vous devez le servir via IPv6 (et le fournisseur de services Internet doit avoir déployé IPv6).

Étant donné qu'IPv6 est l'endroit où Internet se dirige, le fait d'avoir votre site Web activé IPv6 vous place désormais en avance sur le jeu et vous permet de résoudre tout problème bien avant qu'il ne devienne sérieux.

Configurez nginx

Par défaut, avec Linux et nginx, vous pouvez établir une liaison simultanée à IPv4 et IPv6 en modifiant vos listendirectives en:

listen [::]:80;
listen 80;

Ou, pour les sites SSL:

listen [::]:443 ssl;
listen 443 ssl;
Michael Hampton
la source
Ok merci ... encore une question .. Maintenant, j'ai configuré le serveur ... Dans le DNS récurrent, je dois mettre deux enregistrements A et AAAA (avec le nom d'hôte @) et pointer vers les relips?
THpubs
3
Oui, l' Aenregistrement concerne votre adresse IPv4 et l' AAAAenregistrement est votre adresse IPv6.
Michael Hampton
Parfait. Merci beaucoup pour l'explication :) Je suis nouveau dans l'ipv6
THpubs
Je ne suis pas familier avec nginx, mais ne devrait-il pas listen 443;aussi avoir le ssljuste comme listen [::]:443 ssl;? Donc listen 443 ssl;au lieu de listen 443;.
un CVn
@aCVn Oui, ça devrait. Merci d'avoir attrapé ça. Cela m'apprendra à éditer des choses à moitié endormies.
Michael Hampton
3

Lier aux deux!

Nous avions un site Web IIS dont le code faisait référence à lui-même, en utilisant le nom DNS que le client avait utilisé. Ce processus échouerait toujours.

Un autre symptôme était qu'un navigateur s'exécutant localement sur le serveur ne pouvait pas trouver le site Web par le nom du serveur, mais uniquement par l'adresse IPv4. C'est-à-dire, http://192.168.55.139fonctionnerait, mais http://myhostéchouerait. Utiliser ping myhostretournerait par défaut l'adresse IPv6 ( ping myhost -4renverrait l'adresse IPv4).

Le correctif consistait à ouvrir IIS et à modifier les liaisons du site Web afin qu'elles se lient à l'adresse IPv6, ainsi qu'à l'adresse IPv4.

entrez la description de l'image ici

Glen Little
la source
6
Il n'est pas nécessaire de masquer les adresses privées. Cependant, vous devez également vous connecter à votre adresse IPv6 globale afin que votre site puisse être atteint de manière externe via IPv6.
Michael Hampton
Le code mentionné était le Winnovative HTML to PDF Converter.
Glen Little
2
Avoir un service accessible à la fois en interne et en externe est plus facile si vous n'utilisez pas le NAT. Et il est plus facile d’éviter le NAT si vous utilisez IPv6. Mais se connecter aveuglément à un nom d’hôte fourni par un client ressemble à un défaut de conception. Il est tout à fait possible que le client vous envoie un en- Hosttête avec un nom de domaine qui ne vous appartient pas.
Kasperd