Trang web của doanh nghiệp tôi sử dụng nền tảng AWS. Tôi muốn khách truy cập của trang web có thể tiếp cận nội dung của tôi bằng giao thức IPv6. Làm cách nào để thêm địa chỉ IPv6?
Trang web của doanh nghiệp tôi sử dụng nền tảng AWS. Tôi muốn khách truy cập của trang web có thể tiếp cận nội dung của tôi bằng giao thức IPv6. Làm cách nào để thêm địa chỉ IPv6?
Câu trả lời:
Mặc dù các phiên bản EC2 không có khả năng IPv6 bản địa như văn bản này, Amazon đã triển khai IPv6 cho Hoa Kỳ (Bắc Virginia), EU (Ireland), Châu Á Thái Bình Dương (Tokyo) và Châu Á Thái Bình Dương (Singapore). Tôi sẽ trình bày cách cung cấp nội dung IPv6 bằng các phiên bản EC2 và bộ cân bằng tải.
Thiết lập cân bằng tải đàn hồi (ELB)
Tôi sẽ cho rằng bạn đã sử dụng bộ cân bằng tải. (Nếu bạn muốn thiết lập một, hãy làm theo các hướng dẫn trong Hướng dẫn dành cho nhà phát triển cân bằng tải đàn hồi tại http://awsdocs.s3.amazonaws.com/ElasticLoadBalANCE/latest/elb-dg.pdf ).
Đặt một kiểm tra bên cạnh mục ELB để thông tin chi tiết xuất hiện ở bảng dưới cùng. Viết tên ngăn xếp kép của bạn cho ELB của bạn. Nó sẽ giống với một cái tên như dualstack.new-balancer-751654286.us-east-1.elb.amazonaws.com.
Kiểm tra DNS
Sử dụng dig hoặc nslookup để xác minh rằng bạn nhận được các bản ghi A (IPv4) và AAAA (IPv6) bằng cách sử dụng tên DNS ELB ngăn xếp kép. Nếu bạn không hài lòng với các công cụ dòng lệnh này, hãy sử dụng công cụ đào dựa trên web như công cụ tại http://www.kloth.net/service/dig.php .
Tạo CNAME cho tên miền của bạn
Tôi khuyên bạn nên thử nghiệm trên một miền vứt đi để tránh mất điện sản xuất tiềm năng. CNAME cho www.example.com phải trỏ đến tên ELB ngăn xếp kép.
xác minh
Truy cập www.example.com từ máy chủ được kết nối IPv6. Ngoài ra, bạn có thể sử dụng http://ipv6-test.com/validate.php để kiểm tra kết nối IPv6 đến trang web của bạn.
IPv6 không có sẵn (kể từ tháng 9 năm 2013) cho EC2; tuy nhiên nó có sẵn cho ELB. Vì vậy, bạn có thể sử dụng ELB như một loại cổng IPv4 , nhưng bạn chưa thể gán địa chỉ IPv6 cho các phiên bản EC2.
Có một cuộc trò chuyện rằng điều này có thể thay đổi trong "tương lai gần" (bất kể điều đó có nghĩa là gì).
Bạn có thể cung cấp trang web với IPv6 (và một số lợi ích khác) bằng cách ủy quyền trang web của bạn thông qua CloudFlare CDN.
Bạn có thể nhận được một đường hầm IPv6 miễn phí từ Tunnelbroker . Nó hoạt động tốt với EC2. Tôi đã thử nó.
IPv6 thường có sẵn
Chúng tôi đã làm việc để thêm hỗ trợ IPv6 cho nhiều phần khác nhau của AWS trong vài năm qua, bắt đầu với Cân bằng tải đàn hồi, AWS IoT, AWS Direct Connect, Amazon Route 53, Amazon CloudFront, AWS WAF và S3 Transfer Speed, tất cả xây dựng thông báo hỗ trợ IPv6 cho các phiên bản EC2 trong Đám mây riêng ảo (ban đầu có sẵn để sử dụng ở Khu vực Đông Hoa Kỳ (Ohio) vào tháng trước.
Hôm nay tôi rất vui được chia sẻ tin tức rằng hỗ trợ IPv6 cho các phiên bản EC2 trong VPC hiện có sẵn trong tổng số mười lăm khu vực, cùng với hỗ trợ Trình cân bằng tải ứng dụng cho IPv6 ở chín trong số các khu vực đó.
Ví dụ AWS EC2 vẫn nhận được không gian địa chỉ IPv4 RFC1918 nhưng nếu bạn có dịch vụ web phía sau ELB thì sẽ có tên máy chủ dualstack
và ipv6
tiền tố cho phiên bản ELB cung cấp truy cập IPv4 / IPv6 kép và chỉ truy cập IPv6. Giao tiếp giữa ELB và phiên bản EC2 sẽ vẫn là IPv4 nhưng máy khách kết nối qua IPv6 sẽ không thấy gì khác trừ khi ứng dụng web bạn đang lưu trữ đặc biệt tìm địa chỉ IPv6.
Lần trước, mục tiêu của chúng tôi là di chuyển ứng dụng Python Django từ máy chủ Linode sang Amazon EC2-VPC. Lúc đầu, tôi đọc rất nhiều thông tin qua Internet về các phiên bản EC2 và nhận thấy rằng EC2 VPC không hỗ trợ IPv6 tại thời điểm này.
Có, chúng tôi biết rằng có thể có thể với ELB và EC2-Classic, nhưng chúng tôi không có khả năng thiết lập EC2-Classic, vì tài khoản của chúng tôi mới hơn mà Amazon yêu cầu cho EC2-Classic. Đó là một vấn đề lớn, bởi vì chúng tôi thích cơ sở hạ tầng AWS và kiểu cơ sở dữ liệu RDS, nhưng chúng tôi cần có IPv6 trong ứng dụng của mình.
Sau thời gian suy nghĩ, chúng tôi quyết định tạo máy chủ Linode, đã có hỗ trợ IPv6, dưới dạng proxy. Trong cấu hình nginx của chúng tôi trên Linode, chúng tôi ủy quyền tất cả lưu lượng truy cập cho ứng dụng EC2-VPC Django trên cổng 9099, chúng tôi cũng nhận được tĩnh từ 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;
}
Trong EC2-VPC của chúng tôi, chúng tôi tạo ứng dụng Django trên cổng 9099 và làm cho nó có thể truy cập bên ngoài, cũng tại Bảng điều khiển Amazon, chúng tôi cũng cho phép cổng 9099 có thể truy cập bên ngoài, vì chúng tôi cần Linode nginx có thể gửi lưu lượng truy cập ở đây. Cũng đừng quên gửi tĩnh và phương tiện từ EC2-VPC đến Linode, bởi nginx:
location /s6/ {
alias /home/django/static/;
}
location /m6/ {
alias /home/django/media/;
}
Cuối cùng, chúng tôi trỏ bản ghi DNS AAAA đến máy chủ Linode và bản ghi DNS cho EC2-VPC và tất cả đều hoạt động tốt. Tất cả lưu lượng truy cập đến EC2-VPC, Real IP được lưu trữ trong tiêu đề X-Real-IP. Trên thực tế tôi nghĩ rằng máy chủ Linode có thể tốn kém để biến nó thành proxy nếu bạn không có bất kỳ ứng dụng nào khác trên đó. Vì vậy, tất nhiên có thể sử dụng bất kỳ máy chủ nào có tính năng proxy và hỗ trợ IPv6.
Bài viết gốc của tôi: Nhận lưu lượng truy cập Ipv6 trên Amazon Ec2 Vpc