Jak sprawić, by mój serwer WWW był dostępny poprzez IPv6 na platformie AWS?

15

Witryna mojej firmy korzysta z platformy AWS. Chcę, aby odwiedzający witrynę mogli dotrzeć do moich treści przy użyciu protokołu IPv6. Jak mogę dodać adres IPv6?

Jeff Loughridge
źródło

Odpowiedzi:

12

Chociaż instancje EC2 nie są w tym momencie zgodne z natywną obsługą IPv6, Amazon wdrożył IPv6 w swoich modułach równoważenia obciążenia elastycznego w Stanach Zjednoczonych (Północna Wirginia), UE (Irlandia), Azja Pacyfik (Tokio) i Azja Pacyfik (Singapur). Pokażę, jak udostępnić zawartość IPv6 za pomocą instancji EC2 i modułu równoważenia obciążenia.

Konfiguracja modułu elastycznego równoważenia obciążenia (ELB)

Zakładam, że już używasz modułu równoważenia obciążenia. (Jeśli chcesz je skonfigurować, postępuj zgodnie ze wskazówkami w Przewodniku dla programistów modułu Elastic Load Balancer pod adresem http://awsdocs.s3.amazonaws.com/ElasticLoadBalancing/latest/elb-dg.pdf ).

Zaznacz pole obok wpisu ELB, aby szczegółowe informacje pojawiły się na dolnym panelu. Zapisz nazwę podwójnego stosu dla swojego ELB. Będzie przypominał nazwę typu dualstack.new-balancer-751654286.us-east-1.elb.amazonaws.com.

Testowanie DNS

Użyj dig lub nslookup, aby sprawdzić, czy otrzymujesz rekordy A (IPv4) i AAAA (IPv6) przy użyciu nazwy DNS ELB z dwoma stosami. Jeśli nie masz doświadczenia z tymi narzędziami wiersza poleceń, skorzystaj z internetowego wykopu, takiego jak http://www.kloth.net/services/dig.php .

Utwórz CNAME dla swojej domeny

Zalecam testowanie w domenie jednorazowej, aby uniknąć potencjalnych przerw w produkcji. Nazwa CNAME dla www.example.com powinna wskazywać nazwę ELB z dwoma stosami.

Weryfikacja

Wejdź na www.example.com z hosta podłączonego do IPv6. Alternatywnie możesz użyć http://ipv6-test.com/validate.php, aby przetestować łączność IPv6 z witryną.

Jeff Loughridge
źródło
8

IPv6 nie jest dostępny (od września 2013 r.) Dla EC2; jest jednak dostępny dla ELB. Możesz więc użyć ELB jako rodzaju bramy IPv4 , ale nie możesz jeszcze przypisać adresów IPv6 do instancji EC2.

Mówi się, że może się to zmienić w „najbliższej przyszłości” (cokolwiek to znaczy).

Chris S.
źródło
2
Niestety nadal nie jest dostępny bezpośrednio w instancjach EC2 lub VPC. :(
Martijn Heemels,
To wciąż nie jest dostępne! :( Ból, gdy musisz obsługiwać urządzenie Apple
Keerthivasan
6

Możesz udostępnić witrynę za pomocą protokołu IPv6 (i kilka innych korzyści), udostępniając ją przez CloudFlare CDN.

Marcus Downing
źródło
Ciekawy. Nie wiedziałem, że Cloudflare ma automatyczną bramę IPv6. Dzięki za wskazówkę, Marcus.
Jeff Loughridge
1

Możesz uzyskać bezpłatny tunel IPv6 od Tunnelbroker . Działa dobrze z EC2. Przetestowałem to.

Kamień
źródło
4
„działa dobrze” to dość subiektywne zdanie.
Chris S
Działa, komunikacja wchodzi i wychodzi, szybko, niezawodnie. Czego jeszcze oczekujesz?
Kamień
Szczegółowe informacje na temat warunków pracy, np. Obciążenia. VPS w stylu „lowendbox” może „działać dobrze” dla niektórych osób, ale nie dla innych. Istotna może być również lokalizacja geograficzna. Wiele, wiele zmiennych, które wpływają na to, co może lub nie może działać dla Ciebie. (Mogę sobie wyobrazić, że istnieje również różnica zdań, jeśli „szybki” oznacza opóźnienie lub przepustowość lub jedno i drugie.)
Cornelius
Stworzyłem tunel, mam adres klienta ipv6 dla ec2, który jest podłączony do brokera .. Jednak nie mogłem uzyskać do niego dostępu z Internetu. Nie jestem pewien, czy nie robię czegoś złego. ale mogę uzyskać dostęp do aplikacji w ec2. Jeszcze jedno, widzę, że ustawienia karty sieciowej łączność ipv6 nie jest ustawiona na sieć , IPv4 jest sam podłączony do Internetu
Keerthivasan
1

IPv6 jest teraz ogólnie dostępny

W ciągu ostatnich kilku lat pracowaliśmy nad dodaniem obsługi IPv6 do wielu różnych części AWS, zaczynając od elastycznego równoważenia obciążenia, AWS IoT, AWS Direct Connect, Amazon Route 53, Amazon CloudFront, AWS WAF i S3 Transfer Acceleration, wszystko to do momentu ogłoszenia w ubiegłym miesiącu wsparcia IPv6 dla instancji EC2 w wirtualnych chmurach prywatnych (początkowo dostępne do użytku w regionie wschodnim USA (Ohio)).

Dziś z przyjemnością dzielę się wiadomościami, że obsługa IPv6 dla instancji EC2 w VPC jest teraz dostępna w łącznie piętnastu regionach, a także obsługa modułu równoważenia obciążenia aplikacji dla IPv6 w dziewięciu z tych regionów.

autor: Jeff Barr w dniu 25 stycznia 2017 r

Felipe Alvarez
źródło
0

Instancja AWS EC2 nadal odbiera przestrzeń adresową RFC1918 IPv4, ale jeśli masz usługę sieciową za ELB, to istnieją dualstacki ipv6prefiksowane nazwy hosta dla instancji ELB, które zapewniają podwójny dostęp IPv4 / IPv6 i tylko IPv6. Komunikacja między ELB a instancją EC2 nadal pozostanie jako IPv4, ale klient łączący się za pośrednictwem IPv6 nie zobaczy niczego innego, chyba że hostowana aplikacja sieciowa szuka adresu IPv6.

Jeremy Bouse
źródło
Dodałbym, że prawdopodobnie chciałbyś skonfigurować swój serwer WWW, aby sprawdzał wartość X-Forwarded-For, aby zobaczyć, którzy użytkownicy korzystają z IPv6, aby dotrzeć do Twojej witryny.
Jeff Loughridge
1
Tak, istnieje kilka modułów (mod_rpaf i mod_extract_forwarded), które pomagają w tym wraz ze zmianami w najnowszych wersjach Apache2 (mod_remoteip), które faktycznie ułatwią to. Nie tylko z IPv6, ale ogólnie z AWS ELB.
Jeremy Bouse
0

Ostatnim razem naszym celem była migracja aplikacji Python Django z serwera Linode do Amazon EC2-VPC. Na początku czytam przez Internet wiele informacji o instancjach EC2 i zauważam, że EC2 VPC obecnie nie obsługuje IPv6.

Tak, wiemy, że być może jest to możliwe w przypadku ELB i EC2-Classic, ale nie mamy możliwości skonfigurowania EC2-Classic, ponieważ nasze nowe wersje są wymagane przez Amazon dla EC2-Classic. To był duży problem, ponieważ lubimy infrastrukturę AWS i styl bazy danych RDS, ale musimy uzyskać IPv6 w naszej aplikacji.

Po chwili namysłu zdecydowaliśmy się na serwer Linode, który ma już obsługę IPv6, jako serwer proxy. W naszej konfiguracji nginx na Linode zastępujemy cały ruch do aplikacji Django EC2-VPC na porcie 9099, a także otrzymujemy dane statyczne z 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;
    }

W naszym EC2-VPC tworzymy naszą aplikację Django na porcie 9099 i udostępniamy ją zewnętrznie, również w Amazon Console zezwalamy również na dostęp do portu 9099 zewnętrznie, ponieważ potrzebujemy, aby nasz Linode nginx mógł tutaj wysyłać ruch. Nie zapomnij również wysłać statycznego i medialnego z EC2-VPC do Linode, przez nginx:

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

Na koniec wskazujemy rekord DNSAAAA na serwer Linode, a rekord DNS na EC2-VPC i wszystko działa dobrze. Cały ruch przychodzi do EC2-VPC, Real IP przechowywany w nagłówku X-Real-IP. Właściwie uważam, że serwer Linode może być kosztowny, aby był tak samo proxy, jeśli nie masz na nim żadnych innych aplikacji. Możliwe jest więc użycie dowolnego serwera, który ma funkcję proxy i oczywiście obsługę IPv6.

Mój oryginalny post: Receive Ipv6 Traffic On Amazon Ec2 Vpc

Anatolii Chmykhalo
źródło
Będzie to wiązało się z dużymi opóźnieniami i jest niezwykle skomplikowane w porównaniu do zwykłego umieszczenia ELB przed serwerem.
ceejayoz
1
@ceejayoz nie ma sposobu, aby odbierać ruch IPv6 z ELB na EC2-VPC, tylko EC2-Classic, ale teraz EC2-Classic ma ograniczenia do tworzenia i nie ma opcji dla wielu osób.
Anatolii Chmykhalo
Czy każdy, kto umieścił minus w moim poście, może wyjaśnić, dlaczego to zrobiłeś? Jeśli to możliwe z ELB, proszę załączyć dowód
Anatolii Chmykhalo
Nadal nikt nie opisuje ani nie przynosi dowodów, jestem bardzo rozczarowany takim zachowaniem ..
Anatolii Chmykhalo