Làm cách nào tôi có thể truy cập máy chủ web của mình qua IPv6 trên nền tảng AWS?


15

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:


12

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.


8

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ì).


2
Thật không may, vẫn không có sẵn trực tiếp trên các phiên bản EC2 hoặc VPC. :(
Martijn Heemels

Nó vẫn chưa có sẵn! :( Đau khi bạn phải hỗ trợ thiết bị táo
Keerthivasan

6

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.


Hấp dẫn. Tôi không biết rằng Cloudflare có cổng IPv6 tự động. Cảm ơn vì tiền boa, Marcus.
Jeff Loughridge

1

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ó.


4
"hoạt động tốt" là một cụm từ khá chủ quan.
Chris S

Nó hoạt động, giao tiếp đi vào và ra, nhanh chóng, đáng tin cậy. Những gì bạn mong đợi nhiều hơn?
Đá

Chi tiết về điều kiện hoạt động, ví dụ tải. VPS kiểu "lowendbox" có thể "hoạt động tốt" đối với một số người, nhưng đối với những người khác thì không. Vị trí địa lý có thể có liên quan là tốt. Nhiều, nhiều biến số ảnh hưởng đến những gì có thể hoặc có thể không phù hợp với bạn. (Tôi có thể tưởng tượng cũng có một số bất đồng nếu "nhanh" ngụ ý độ trễ hoặc băng thông hoặc cả hai.)
Cornelius

Tôi đã tạo đường hầm, tôi có một địa chỉ máy khách ipv6 cho ec2 được kết nối với nhà môi giới .. Tuy nhiên, tôi không thể truy cập nó từ internet. Tôi không chắc mình có làm gì sai không. nhưng, tôi có thể truy cập ứng dụng trong ec2. Một điều nữa, tôi thấy rằng cài đặt bộ điều hợp mạng kết nối ipv6 được đặt thành không có mạng , IPv4 được kết nối một mình với internet
Keerthivasan

1

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 đó.

bởi Jeff Barr vào ngày 25 tháng 1 năm 2017


0

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ủ dualstackipv6tiề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.


Tôi sẽ thêm rằng bạn có thể muốn định cấu hình máy chủ web của mình để xem giá trị X-Forwarded-For để xem khách truy cập nào sử dụng IPv6 để truy cập trang web của bạn.
Jeff Loughridge

1
Có, có một số mô-đun (mod_rpaf & mod_extract_forwarded) để hỗ trợ điều đó cùng với những thay đổi trong các phiên bản mới nhất của Apache2 (mod_remoteip) sẽ thực sự giúp việc này dễ dàng hơn nhiều. Không chỉ với IPv6 mà nói chung với AWS ELB.
Jeremy Bouse

0

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


Điều này sẽ có độ trễ cao và cực kỳ phức tạp so với việc chỉ đặt ELB trước máy chủ.
ceejayoz

1
@ceejayoz không có cách nào để nhận lưu lượng IPv6 từ ELB trên EC2-VPC, chỉ EC2-Classic, nhưng hiện tại EC2-Classic có các hạn chế để tạo và không có tùy chọn cho nhiều người.
Anatolii Chmykhalo

Bất cứ ai có thể trừ đi bài viết của tôi có thể giải thích lý do tại sao bạn làm điều đó? Nếu có thể với ELB, vui lòng đính kèm bằng chứng
Anatolii Chmykhalo

Vẫn không có ai mô tả hoặc đưa ra bằng chứng, tôi rất thất vọng về hành vi này ..
Anatolii Chmykhalo
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.