Frage Sollte ich nur IPv6 oder sowohl IPv4 als auch IPv6 in meinem Webserver verwenden?


Auf meinem Webserver (Ubuntu, Nginx) sind sowohl IPv4- als auch IPv6-Adressen vom Host zugewiesen. Soll ich für meine Website nur an eine IPv6-Adresse binden? Ist es der empfohlene Standardweg? Oder soll ich sowohl IPv4- als auch IPv6-Adressen verwenden?


36
2017-08-27 02:35


Ursprung


Sie stellen die falsche Frage (an die falschen Leute) - Fragen Sie sich: "Muss ich von IPv4-Clients, IPv6-Clients oder beiden auf diese Site zugreifen können?". Die Antwort darauf ist auch die Antwort darauf, auf welche Adressen Ihr Webserver gehört werden muss. - voretaq7
Normalerweise würde ich einer Antwort "hole deine Spezifikationen zuerst" vollkommen zustimmen, aber in diesem Fall, seltsamerweise, tue ich das nicht; Ich stimme Michael zu. "v6 only" ist immer noch, leider, verschwindend unwahrscheinlich, die Voraussetzung zu sein (obwohl, wenn es ist, ist dieser Kommentar völlig falsch). Wenn nicht, dann sind wir bei "gemischter Stapel" und "nur v4". Selbst wenn Ihre Benutzer sagen, dass "nur v4" richtig ist, ist es zu diesem Zeitpunkt falsch; Mixed-Stack ist der Weg, um zukunftssicher zu sein, egal was die aktuelle Benutzergemeinschaft sagt. - MadHatter
@MadHatter An dieser Stelle können wir "v4 only" sicher eliminieren. Die inhärenten Grenzen von NAT in großem Maßstab machen v4 nur für den Betreiber einer Website oder möglicherweise für irgendeinen anderen Internetdienst unhaltbar. Weitere Details in meiner aktualisierten Antwort. - Michael Hampton♦
@ Michael Hampton stimmt immer noch mit dir überein. - MadHatter


Antworten:


Verwenden Sie sowohl IPv4 als auch IPv6

Sie sollten sowohl IPv4- als auch IPv6-Adressen verwenden.

Fast jeder im Internet hat derzeit eine IPv4-Adresse oder befindet sich hinter einem NAT oder kann auf IPv4-Ressourcen zugreifen.

Jedoch zum Zeitpunkt des Schreibens nur über 0,7%  2,3%  3,8%  6,5%  9%  12% 19% des Internets ist IPv6-fähig, aber diese Zahl wächst stetig, da IPv6 weltweit eingeführt wird.

An einigen wenigen Stellen bieten ISPs an in erster Linie IPv6 oder nur IPv6 an Privatkunden und Verwendung von NAT, NAT64 oder anderen ähnlichen Lösungen für IPv4-Konnektivität. Es wird erwartet, dass diese Zahl zunimmt, da der IPv4-Adressraum schließlich erschöpft ist. Diese Benutzer haben normalerweise eine bessere Leistung als IPv6.

Wo ISPs großangelegte NAT zur Lösung der IPv4-Erschöpfung einsetzen, werden Benutzer, die damit klarkommen, aufgrund der Verbindungsgrenzen, die den großen NAT-Gateways innewohnen, eine verminderte Zuverlässigkeit aller ihrer Internetverbindungen erleiden. Zum Beispiel könnte nur eine Webseite Laden Sie einige, aber nicht alle RessourcenB. beschädigte Symbole, wo Bilder sein sollten, fehlende Stile und Skripts usw. Dies ist ähnlich wie die Erschöpfung der Verbindungsgrenzen auf einem Heimrouter, betrifft aber alle Benutzer des ISP periodisch und scheinbar zufällig. Wenn Sie möchten, dass Ihre Site für diese Benutzer zuverlässig ist, müssen Sie sie über IPv6 bereitstellen (und der Internetdienstanbieter muss IPv6 implementiert haben).

Da IPv6 der Ort ist, an dem sich das Internet befindet, ist es jetzt möglich, die IPv6-Funktionalität Ihrer Website zu nutzen und Sie können Probleme lösen, lange bevor sie ernst werden.

Konfigurieren Sie nginx

Standardmäßig können Sie mit Linux und nginx gleichzeitig an IPv4 und IPv6 binden, indem Sie Ihre Einstellungen ändern listen Richtlinien zu:

listen [::]:80 ipv6only=off;

Oder für SSL-Sites:

listen [::]:443 ipv6only=off ssl;

52
2017-08-27 02:40



Ok danke ... noch eine Frage .. Nun habe ich den Server eingerichtet ... Im DNS rekursiv, muss ich zwei Datensätze A und AAAA (mit dem Hostnamen @) setzen und auf die entsprechenden ips zeigen? - THpubs
Ja das A Record ist für Ihre IPv4-Adresse und die AAAA Datensatz ist für Ihre IPv6-Adresse. - Michael Hampton♦
Perfekt. Vielen Dank für die Erklärung :) Ich bin neu in Sachen ipv6 - THpubs


An beide binden!

Wir hatten eine IIS-Website, deren Code einen internen Verweis auf sich selbst hatte und den DNS-Namen verwendete, den der Client verwendet hatte. Dieser Prozess würde immer fehlschlagen.

Ein weiteres Symptom war, dass ein lokal auf dem Server laufender Browser die Website nicht nach dem Namen des Servers, sondern nur nach der IPv4-Adresse finden konnte. Das ist, http://192.168.55.139 würde funktionieren, aber http://myhost würde versagen. Verwenden ping myhost würde standardmäßig die IPv6-Adresse zurückgeben (ping myhost -4 würde die IPv4-Adresse zurückgeben).

Die Lösung bestand darin, IIS zu öffnen und die Bindungen der Website so zu ändern, dass sie an die IPv6-Adresse und die IPv4-Adresse gebunden wurden.

enter image description here


2
2018-06-03 17:33



Es ist nicht notwendig, private Adressen zu verschleiern. Sie sollten jedoch auch an Ihre globale IPv6-Adresse binden, damit Ihre Site extern über IPv6 erreichbar ist. - Michael Hampton♦
Der erwähnte Code war der Winnovative HTML to PDF Converter. - Glen Little
Ein Dienst, der sowohl intern als auch extern zugänglich ist, ist einfacher, wenn Sie NAT nicht verwenden. Und es ist einfacher NAT zu vermeiden, wenn Sie IPv6 verwenden. Die blinde Verbindung mit einem von einem Client bereitgestellten Hostnamen klingt jedoch wie ein Konstruktionsfehler. Es ist durchaus möglich, dass der Kunde Ihnen ein Host Header mit einem Domainnamen, der Ihnen nicht gehört. - kasperd