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?
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:
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.
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).
Sie können die Site mit IPv6 (und einigen anderen Vorteilen) verfügbar machen, indem Sie Ihre Site über CloudFlare CDN als Proxy bereitstellen.
Sie können einen kostenlosen IPv6-Tunnel von Tunnelbroker erhalten . Es funktioniert gut mit EC2. Ich habe es getestet.
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.
Die AWS EC2-Instanz empfängt weiterhin den IPv4-Adressraum RFC1918. Wenn Sie jedoch den Webdienst hinter einer ELB haben, gibt es die Hostnamen dualstack
und ipv6
Prä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.
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