Wie kann ich meinen Webserver auf der AWS-Plattform über IPv6 erreichbar machen?


15

Die Website meines Unternehmens verwendet die AWS-Plattform. Ich möchte, dass die Besucher der Website über das IPv6-Protokoll auf meine Inhalte zugreifen können. Wie kann ich eine IPv6-Adresse hinzufügen?

Antworten:


12

Obwohl EC2-Instanzen zum jetzigen Zeitpunkt nicht IPv6-fähig sind, hat Amazon IPv6 für seine Elastic Load Balancer im Osten der USA (Nord-Virginia), in der EU (Irland), im asiatisch-pazifischen Raum (Tokio) und im asiatisch-pazifischen Raum (Singapur) implementiert. Ich werde zeigen, wie IPv6-Inhalte mithilfe von EC2-Instanzen und einem Load Balancer verfügbar gemacht werden.

Aufbau des Elastic Load Balancer (ELB)

Ich gehe davon aus, dass Sie bereits einen Load Balancer verwenden. (Wenn Sie eine einrichten möchten, befolgen Sie die Anweisungen im Elastic Load Balancer-Entwicklerhandbuch unter http://awsdocs.s3.amazonaws.com/ElasticLoadBalancing/latest/elb-dg.pdf. )

Setzen Sie ein Häkchen neben den ELB-Eintrag, damit im unteren Bereich detaillierte Informationen angezeigt werden. Notieren Sie sich Ihren Dual-Stack-Namen für Ihre ELB. Es ähnelt einem Namen wie dualstack.new-balancer-751654286.us-east-1.elb.amazonaws.com.

DNS testen

Verwenden Sie dig oder nslookup, um zu überprüfen, ob Sie A- (IPv4) und AAAA-Einträge (IPv6) mit dem Dual-Stack-ELB-DNS-Namen erhalten. Wenn Sie mit diesen Befehlszeilentools nicht vertraut sind, verwenden Sie eine webbasierte Grabung wie die unter http://www.kloth.net/services/dig.php .

Erstellen Sie CNAMEs für Ihre Domain

Ich empfehle das Testen auf einer Einwegdomäne, um mögliche Produktionsausfälle zu vermeiden. Der CNAME für www.example.com sollte auf den Dual-Stack-ELB-Namen verweisen.

Nachprüfung

Besuchen Sie www.example.com von einem mit IPv6 verbundenen Host aus. Alternativ können Sie http://ipv6-test.com/validate.php verwenden , um die IPv6-Konnektivität zu Ihrer Site zu testen.


8

IPv6 ist für EC2 nicht verfügbar (Stand: September 2013). es ist jedoch für ELB verfügbar. Sie können ELB also als eine Art IPv4-Gateway verwenden , aber Sie können EC2-Instanzen noch keine IPv6-Adressen zuweisen.

Es wird geredet, dass sich dies in "naher Zukunft" ändern könnte (was auch immer das bedeutet).


2
Leider immer noch nicht direkt auf EC2- oder VPC-Instanzen verfügbar. :(
Martijn Heemels

Es ist immer noch nicht verfügbar! :( Schmerzen, wenn Sie Apple-Gerät unterstützen müssen
Keerthivasan

6

Sie können die Site mit IPv6 (und einigen anderen Vorteilen) verfügbar machen, indem Sie Ihre Site über CloudFlare CDN als Proxy bereitstellen.


Interessant. Mir war nicht bewusst, dass Cloudflare über ein automatisches IPv6-Gateway verfügt. Danke für den Tipp, Marcus.
Jeff Loughridge

1

Sie können einen kostenlosen IPv6-Tunnel von Tunnelbroker erhalten . Es funktioniert gut mit EC2. Ich habe es getestet.


4
"Funktioniert gut" ist eine ziemlich subjektive Formulierung.
Chris S

Es funktioniert, Kommunikation geht rein und raus, schnell und zuverlässig. Was erwarten Sie sonst noch mehr?
Stone

Angaben zu Betriebsbedingungen, zB Belastung. Ein VPS im "Lowendbox" -Stil könnte für einige Leute "gut funktionieren", für andere jedoch nicht. Der geografische Standort könnte ebenfalls relevant sein. Viele, viele Variablen, die beeinflussen, was für Sie möglicherweise funktioniert oder nicht. (Ich kann mir vorstellen, dass es auch Meinungsverschiedenheiten gibt, wenn "schnell" Latenz oder Bandbreite oder beides impliziert.)
Cornelius

Ich habe den Tunnel erstellt, ich habe eine IPv6-Client-Adresse für ec2, die mit dem Broker verbunden ist. Ich konnte jedoch nicht über das Internet darauf zugreifen. Ich bin mir nicht sicher, ob ich etwas falsch mache. aber ich kann auf die anwendung in ec2 zugreifen. Eine weitere Sache, ich sehe, dass Netzwerkadapter-Einstellungen IPv6-Konnektivität auf kein Netzwerk eingestellt ist , IPv4 ist allein mit dem Internet verbunden
Keerthivasan

1

IPv6 jetzt allgemein verfügbar

Wir haben in den letzten Jahren daran gearbeitet, vielen verschiedenen Teilen von AWS IPv6-Unterstützung hinzuzufügen, angefangen mit elastischem Lastenausgleich, AWS IoT, AWS Direct Connect, Amazon Route 53, Amazon CloudFront, AWS WAF und S3 Transfer Acceleration. Alles bis zur Ankündigung der IPv6-Unterstützung für EC2-Instanzen in Virtual Private Clouds im letzten Monat (ursprünglich für den Einsatz in der Region US-Ost (Ohio) verfügbar).

Heute freue ich mich, Ihnen mitteilen zu können, dass IPv6-Unterstützung für EC2-Instanzen in VPCs jetzt in insgesamt fünfzehn Regionen verfügbar ist. In neun dieser Regionen wird Application Load Balancer für IPv6 unterstützt.

von Jeff Barr am 25. Januar 2017


0

Die AWS EC2-Instanz empfängt weiterhin den IPv4-Adressraum RFC1918. Wenn Sie jedoch den Webdienst hinter einer ELB haben, gibt es die Hostnamen dualstackund ipv6Präfixe für die ELB-Instanz, die dualen IPv4 / IPv6- und nur IPv6-Zugriff bieten. Die Kommunikation zwischen der ELB und der EC2-Instanz bleibt weiterhin IPv4-konform, aber der Client, der über IPv6 eine Verbindung herstellt, sieht nichts anderes, es sei denn, die von Ihnen gehostete Webanwendung sucht speziell nach der IPv6-Adresse.


Ich würde hinzufügen, dass Sie wahrscheinlich Ihren Webserver so konfigurieren möchten, dass er den X-Forwarded-For-Wert betrachtet, um zu sehen, welche Besucher IPv6 verwenden, um Ihre Site zu erreichen.
Jeff Loughridge

1
Ja, es gibt mehrere Module (mod_rpaf & mod_extract_forwarded), die dabei helfen, zusammen mit den Änderungen in den neuesten Versionen von Apache2 (mod_remoteip), die dies tatsächlich viel einfacher machen. Nicht nur mit IPv6, sondern generell mit AWS ELB.
Jeremy Bouse

0

Letztes Mal war es unser Ziel, die Python Django-Anwendung vom Linode-Server auf Amazon EC2-VPC zu migrieren. Zuerst habe ich über das Internet viele Informationen zu EC2-Instanzen gelesen und festgestellt, dass EC2 VPC derzeit kein IPv6 unterstützt.

Ja, wir wissen, dass es mit ELB und EC2-Classic möglich ist, aber wir können EC2-Classic nicht einrichten, da unser Konto neuer ist als das, das Amazon für EC2-Classic benötigt. Es war ein großes Problem, weil wir AWS-Infrastruktur und RDS-Datenbankstil mögen, aber wir müssen IPv6 in unserer Anwendung bekommen.

Nach einiger Überlegung entscheiden wir uns, einen Linode-Server, der bereits IPv6 unterstützt, als Proxy zu verwenden. In unserer Nginx-Konfiguration unter Linode übertragen wir den gesamten Datenverkehr an die EC2-VPC-Django-Anwendung auf Port 9099. Außerdem erhalten wir statische Daten von der EC2-VPC:

    location /static/ {
            proxy_pass http://--AWS_IP--/s6/;
    }

    location /media/ {
            proxy_pass http://--AWS_IP--/m6/;
    }

    location / {
            proxy_pass http://--AWS_IP--:9099/;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_read_timeout 4000;
    }

In unserer EC2-VPC machen wir unsere Django-Anwendung auf Port 9099 verfügbar und machen sie auch von außen zugänglich. Auch in der Amazon-Konsole erlauben wir Port 9099, auch von außen zugänglich zu sein, da unser Linode-Nginx in der Lage sein muss, Datenverkehr hierher zu senden. Vergessen Sie auch nicht, statische Daten und Medien von EC2-VPC mit nginx an Linode zu senden:

    location /s6/ {
            alias /home/django/static/;
    }
    location /m6/ {
            alias /home/django/media/;
    }

Schließlich verweisen wir auf den Linode-Server einen AAAA-DNS-Eintrag und auf den EC2-VPC einen DNS-Eintrag, und alles funktioniert. Der gesamte Datenverkehr kommt zu EC2-VPC, Real IP, das im X-Real-IP-Header gespeichert ist. Eigentlich denke ich, dass Linode-Server teuer sein könnten, wenn Sie keine anderen Anwendungen darauf haben. So ist es natürlich möglich, jeden Server mit Proxy-Funktion und IPv6-Unterstützung zu verwenden.

Mein ursprünglicher Beitrag: Empfange IPv6-Verkehr auf Amazon Ec2 Vpc


Dies wird eine hohe Latenz sein und ist im Vergleich dazu, dass nur eine ELB vor den Server gestellt wird, wahnsinnig kompliziert.
Ceejayoz

1
@ceejayoz Es gibt keine Möglichkeit, IPv6-Datenverkehr von ELB auf EC2-VPC zu empfangen, nur EC2-Classic, aber jetzt muss EC2-Classic Einschränkungen erstellen und für viele Benutzer gibt es keine Option.
Anatolii Chmykhalo

Kann mir jemand erklären, warum du das getan hast? Wenn es mit ELB möglich ist, fügen Sie bitte einen Beweis bei
Anatolii Chmykhalo

Noch niemand beschreiben oder Beweise bringen, ich bin sehr enttäuscht über dieses Verhalten ..
Anatolii Chmykhalo
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.