ฉันจะทำให้เว็บเซิร์ฟเวอร์ของฉันสามารถเข้าถึงได้ผ่าน IPv6 บนแพลตฟอร์ม AWS ได้อย่างไร


15

เว็บไซต์ของธุรกิจของฉันใช้แพลตฟอร์ม AWS ฉันต้องการให้ผู้เยี่ยมชมเว็บไซต์สามารถเข้าถึงเนื้อหาของฉันโดยใช้โปรโตคอล IPv6 ฉันจะเพิ่มที่อยู่ IPv6 ได้อย่างไร

คำตอบ:


12

แม้ว่าอินสแตนซ์ของ EC2 จะไม่สามารถใช้งาน IPv6 ได้ตามปกติ แต่ Amazon ได้ใช้ IPv6 สำหรับสหรัฐอเมริกาตะวันออก (เวอร์จิเนียตอนเหนือ), EU (ไอร์แลนด์), เอเชียแปซิฟิก (โตเกียว) และเอเชียแปซิฟิก (สิงคโปร์) ฉันจะสาธิตวิธีทำให้เนื้อหา IPv6 พร้อมใช้งานโดยใช้อินสแตนซ์ของ EC2 และตัวโหลดบาลานซ์

การตั้งค่า Elastic Load Balancer (ELB)

ฉันจะสมมติว่าคุณใช้ load balancer อยู่แล้ว (หากคุณต้องการตั้งค่าให้ทำตามคำแนะนำในคู่มือนักพัฒนา Elastic Load Balancer ที่http://awsdocs.s3.amazonaws.com/ElasticLoadBalancing/latest/elb-dg.pdf )

ทำเครื่องหมายถัดจากรายการ ELB เพื่อให้ข้อมูลรายละเอียดปรากฏในแผงด้านล่าง เขียนชื่อสแต็กคู่ของคุณสำหรับ ELB ของคุณ มันจะคล้ายกับชื่อเช่น dualstack.new-balancer-751654286.us-east-1.elb.amazonaws.com

ทดสอบ DNS

ใช้ dig หรือ nslookup เพื่อตรวจสอบว่าคุณได้รับ A (IPv4) และ AAAA (IPv6) บันทึกโดยใช้ชื่อ dual stack ELB DNS ถ้าคุณไม่พอใจกับเครื่องมือบรรทัดคำสั่งเหล่านี้ใช้ขุดบนเว็บดังกล่าวเป็นหนึ่งในhttp://www.kloth.net/services/dig.php

สร้าง CNAME สำหรับโดเมนของคุณ

ฉันแนะนำให้ทดสอบโดเมนที่ไม่ใช้งานเพื่อหลีกเลี่ยงปัญหาการผลิตที่อาจเกิดขึ้น CNAME สำหรับ www.example.com ควรชี้ไปที่ชื่อ ELB สแต็กคู่

การตรวจสอบ

เยี่ยมชม www.example.com จากโฮสต์ที่เชื่อมต่อ IPv6 หรือคุณสามารถใช้http://ipv6-test.com/validate.phpเพื่อทดสอบการเชื่อมต่อ IPv6 กับเว็บไซต์ของคุณ


8

IPv6 ไม่สามารถใช้งานได้ (จนถึงเดือนกันยายน 2013) สำหรับ EC2; อย่างไรก็ตามมันพร้อมใช้งานสำหรับ ELB ดังนั้นคุณสามารถใช้ ELB เป็นเกตเวย์ IPv4 ได้แต่คุณยังไม่สามารถกำหนดที่อยู่ IPv6 ให้กับอินสแตนซ์ของ EC2 ได้

มีเรื่องไร้สาระที่สิ่งนี้อาจเปลี่ยนแปลงใน "อนาคตอันใกล้" (อะไรก็ตามที่หมายถึง)


2
ยังไม่สามารถใช้งานได้โดยตรงในอินสแตนซ์ EC2 หรือ VPC แต่น่าเสียดายที่ :(
Martijn Heemels

มันยังไม่พร้อมใช้งาน! :( ปวดเมื่อคุณต้องรองรับอุปกรณ์แอปเปิ้ล
Keerthivasan

6

คุณสามารถทำให้ไซต์พร้อมใช้งานกับ IPv6 (และประโยชน์อื่น ๆ ) โดยการพร็อกซีไซต์ของคุณผ่าน CloudFlare CDN


น่าสนใจ ฉันไม่ทราบว่า Cloudflare มีเกตเวย์ IPv6 อัตโนมัติ ขอบคุณสำหรับเคล็ดลับมาร์คัส
Jeff Loughridge

1

คุณจะได้รับอุโมงค์ IPv6 ฟรีจากTunnelbroker มันทำงานได้ดีกับ EC2 ฉันได้ทำการทดสอบแล้ว


4
"ทำงานได้ดี" เป็นวลีส่วนตัว
Chris S

ทำงานได้การสื่อสารเข้าและออกรวดเร็วเชื่อถือได้ คุณคาดหวังอะไรอีก
ศิลา

รายละเอียดเกี่ยวกับสภาพการใช้งานเช่นโหลด สไตล์ "lowendbox" VPS อาจ "ทำงานได้ดี" สำหรับบางคน แต่ไม่ใช่สำหรับคนอื่น ตำแหน่งทางภูมิศาสตร์อาจมีความเกี่ยวข้องเช่นกัน ตัวแปรจำนวนมากที่มีอิทธิพลต่อสิ่งที่อาจหรืออาจไม่เหมาะกับคุณ (ผมสามารถจินตนาการนอกจากนี้ยังมีบางอย่างถ้า disaggreement "เร็ว" นัยแฝงหรือแบนด์วิดธ์หรือทั้งสอง.)
คอร์นีเลีย

ฉันสร้างอุโมงค์ฉันได้รับที่อยู่ ipv6 ของลูกค้าสำหรับ ec2 ที่เชื่อมต่อกับโบรกเกอร์ .. อย่างไรก็ตามฉันไม่สามารถเข้าถึงได้จากอินเทอร์เน็ต ฉันไม่แน่ใจว่าฉันไม่ได้ทำอะไรผิด แต่ฉันสามารถเข้าถึงแอปพลิเคชันภายใน ec2 อีกอย่างหนึ่งฉันเห็นว่าการตั้งค่าอะแดปเตอร์เครือข่ายการเชื่อมต่อ ipv6 ถูกตั้งค่าเป็นไม่มีเครือข่าย IPv4 เชื่อมต่อกับอินเทอร์เน็ตเพียงอย่างเดียว
Keerthivasan

1

IPv6 พร้อมใช้งานแล้วในขณะนี้

เรากำลังดำเนินการเพื่อเพิ่มการสนับสนุน IPv6 ให้กับส่วนต่าง ๆ ของ AWS ในช่วงสองสามปีที่ผ่านมาโดยเริ่มจากการปรับสมดุลโหลดยืดหยุ่น, AWS IoT, การเชื่อมต่อ AWS โดยตรง, เส้นทาง Amazon 53, Amazon CloudFront, AWS WAF และ S3 เร่งความเร็วการโอน ทั้งหมดสร้างขึ้นถึงการประกาศเมื่อเดือนที่แล้วของการสนับสนุน IPv6 สำหรับอินสแตนซ์ EC2 ใน Virtual Private Clouds (เริ่มแรกพร้อมใช้งานในภูมิภาคสหรัฐอเมริกาตะวันออก (โอไฮโอ))

วันนี้ฉันมีความสุขที่จะแบ่งปันข่าวว่าการสนับสนุน IPv6 สำหรับอินสแตนซ์ EC2 ใน VPCs มีให้บริการในสิบห้าภูมิภาคพร้อมด้วยการสนับสนุน Application Load Balancer สำหรับ IPv6 ในเก้าภูมิภาค

โดย Jeff Barr เมื่อ 25 มกราคม 2017


0

อินสแตนซ์ AWS EC2 ยังคงได้รับพื้นที่ที่อยู่ IPvC RFC1918 แต่ถ้าคุณมีบริการเว็บด้านหลัง ELB จะมีชื่อโฮสต์dualstackและipv6นำหน้าสำหรับอินสแตนซ์ ELB ที่ให้การเข้าถึง IPv4 / IPv6 คู่และ IPv6 เท่านั้น การสื่อสารระหว่างอินสแตนซ์ของ ELB และ EC2 จะยังคงเป็น IPv4 แต่ไคลเอนต์ที่เชื่อมต่อผ่าน IPv6 จะไม่เห็นอะไรที่แตกต่างนอกจากเว็บแอปพลิเคชันที่คุณโฮสต์จะค้นหาที่อยู่ IPv6 โดยเฉพาะ


ฉันจะเพิ่มว่าคุณอาจต้องการกำหนดค่าเว็บเซิร์ฟเวอร์ของคุณเพื่อดูค่า X-Forwarded-For เพื่อดูว่าผู้เข้าชมรายใดที่ใช้ IPv6 เพื่อเข้าถึงเว็บไซต์ของคุณ
Jeff Loughridge

1
ใช่มีหลายโมดูล (mod_rpaf & mod_extract_forwarded) เพื่อให้ความช่วยเหลือพร้อมกับการเปลี่ยนแปลงใน Apache2 รุ่นล่าสุด (mod_remoteip) ที่จริงจะทำให้การทำเช่นนี้ง่ายขึ้นมาก ไม่ใช่แค่กับ IPv6 แต่โดยทั่วไปแล้ว AWS ELB
Jeremy Bouse

0

ครั้งสุดท้ายที่เป้าหมายของเราคือการโอนย้ายแอปพลิเคชั่น Python Django จากเซิร์ฟเวอร์ Linode ไปยัง Amazon EC2-VPC ตอนแรกฉันอ่านข้อมูลจำนวนมากทางอินเทอร์เน็ตเกี่ยวกับอินสแตนซ์ของ EC2 และสังเกตว่า EC2 VPC ไม่รองรับ IPv6 ในเวลานี้

ใช่เรารู้ว่าอาจเป็นไปได้กับ ELB และ EC2-Classic แต่เราไม่มีความสามารถในการตั้งค่า EC2-Classic เพราะเรามีบัญชีใหม่ที่ Amazon ต้องการสำหรับ EC2-Classic มันเป็นปัญหาใหญ่เพราะเราชอบรูปแบบฐานข้อมูล AWS และฐานข้อมูล RDS แต่เราต้องรับ IPv6 ในแอปพลิเคชันของเรา

หลังจากเวลาคิดเราตัดสินใจที่จะสร้างเซิร์ฟเวอร์ Linode ที่มีการสนับสนุน IPv6 เป็นพร็อกซีแล้ว ในการกำหนดค่า nginx ของเราบน Linode เราทำการส่งทราฟฟิกทั้งหมดไปยังแอปพลิเคชัน EC2-VPC Django บนพอร์ต 9099 และเราจะได้รับคงที่จาก 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;
    }

ใน EC2-VPC เราสร้างแอปพลิเคชั่น Django ของเราที่พอร์ต 9099 และทำให้สามารถเข้าถึงได้จากภายนอกนอกจากนี้ที่ Amazon Console เรายังอนุญาตให้พอร์ตภายนอกที่สามารถเข้าถึงพอร์ต 9099 ได้เช่นกันเพราะเราต้องการให้ Linode nginx ของเราสามารถส่งปริมาณข้อมูลได้ที่นี่ อย่าลืมส่งสแตติกและสื่อจาก EC2-VPC ไปยัง Linode โดย nginx:

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

ในที่สุดเราก็ชี้ระเบียน AAAA DNS ไปยังเซิร์ฟเวอร์ Linode และระเบียน A DNS ไปยัง EC2-VPC และทำงานได้ดี การรับส่งข้อมูลทั้งหมดมาถึง EC2-VPC, Real IP ที่เก็บไว้ในส่วนหัว X-Real-IP อันที่จริงฉันคิดว่าเซิร์ฟเวอร์ Linode อาจมีราคาแพงที่จะทำให้มันเหมือนกับพรอกซีถ้าคุณไม่มีแอปพลิเคชันอื่น ๆ ดังนั้นจึงเป็นไปได้ที่จะใช้เซิร์ฟเวอร์ใด ๆ ที่มีคุณสมบัติพร็อกซีและรองรับ IPv6 แน่นอน

โพสต์ต้นฉบับของฉัน: รับการจราจร Ipv6 ใน Amazon Ec2 Vpc


นี่จะเป็นเวลาแฝงที่สูงและมีความซับซ้อนอย่างเมามันเมื่อเทียบกับการวาง ELB ไว้ด้านหน้าเซิร์ฟเวอร์
ceejayoz

1
@ceejayoz ไม่มีวิธีรับการรับส่งข้อมูล IPv6 จาก ELB บน EC2-VPC เพียง EC2-Classic แต่ตอนนี้ EC2-Classic มีข้อ จำกัด ในการสร้างและไม่มีตัวเลือกสำหรับคนจำนวนมาก
Anatolii Chmykhalo

ทุกคนที่ใส่เครื่องหมายลบในโพสต์ของฉันสามารถอธิบายได้ว่าทำไมคุณถึงทำเช่นนั้น? ถ้าเป็นไปได้กับ ELB โปรดแนบหลักฐาน
Anatolii Chmykhalo

ยังไม่มีใครอธิบายหรือนำหลักฐานมาฉันผิดหวังมากในพฤติกรรมนี้ ..
Anatolii Chmykhalo
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.