Як я можу зробити свій веб-сервер доступним через IPv6 на платформі AWS?


15

Веб-сайт мого бізнесу використовує платформу AWS. Я хочу, щоб відвідувачі сайту могли отримати доступ до мого вмісту за допомогою протоколу IPv6. Як я можу додати IPv6 адресу?

Відповіді:


12

Незважаючи на те, що випадки EC2 не є власними IPv6, здатними до цього написання, Amazon впровадив IPv6 для своїх східних США (Північна Вірджинія), ЄС (Ірландія), Азіатсько-Тихоокеанський (Токіо) та Азіатсько-Тихоокеанський (Сінгапур) еластичні балансири навантаження. Я продемонструю, як зробити вміст IPv6 доступним за допомогою екземплярів EC2 та балансира навантаження.

Налаштування еластичного балансира навантаження (ELB)

Я припускаю, що ви вже використовуєте балансир навантаження. (Якщо ви хочете налаштувати його, дотримуйтесь вказівок у Посібнику розробника еластичного навантаження на веб-сторінці 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) за допомогою подвійного стека імені ELNS 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. Дякую за пораду, Маркусе.
Джефф Лофридж

1

Ви можете отримати безкоштовний тунель IPv6 від Tunnelbroker . Він добре працює з EC2. Я перевірив це.


4
"добре працює" - досить суб'єктивна фраза.
Кріс S

Це працює, спілкування йде і виходить, швидке, надійне. Чого ще ви очікуєте більше?
Камінь

Деталі про умови експлуатації, наприклад, навантаження. VPS стилю "lowendbox" може "добре працювати" для деяких людей, але для інших. Географічне розташування також може бути релевантним. Багато, багато змінних, які впливають на те, що може чи не може працювати для вас. (Я можу уявити, що є також деякі розбіжності, якщо "швидкий" має на увазі затримку або пропускну здатність або те і інше.)
Корнелій

Я створив тунель, я отримав адресу клієнта ipv6 для ec2, який підключається до брокера. Однак я не зміг отримати доступ до нього з Інтернету. Я не впевнений, чи не роблю я щось не так. але я можу отримати доступ до програми в межах ec2. І ще одне, я бачу, що в налаштуваннях мережевого адаптера ipv6 підключення встановлено не в мережі , IPv4 один підключений до Інтернету
Keerthivasan

1

IPv6 зараз загальнодоступний

Ми працювали над тим, щоб додати підтримку IPv6 до багатьох різних частин AWS протягом останніх кількох років, починаючи з еластичного балансування навантаження, AWS IoT, AWS Direct Connect, Amazon Route 53, Amazon CloudFront, AWS WAF і S3 Transfer Acceleration, вся підготовка до оголошення минулого місяця про підтримку IPv6 для екземплярів EC2 у віртуальних приватних хмарах (спочатку доступна для використання в регіоні Схід (Огайо) США).

Сьогодні я радий поділитися новиною про те, що підтримка IPv6 для екземплярів EC2 в VPC тепер доступна у загальній кількості п'ятнадцяти регіонів, а також підтримка Balancer завантаження додатків для IPv6 в дев'яти з цих регіонів.

автор: Джефф Барр 25 січня 2017 року


0

Примірник AWS EC2 по- , як і раніше отримувати RFC1918 адресний простір IPv4 , але якщо у вас є веб - сервіс позаду ELB тобто dualstackі ipv6префіксальні імена хостів для примірника УДР , які забезпечують подвійний IPv4 / IPv6 і тільки IPv6 доступ. Комунікація між ELB та екземпляром EC2 як і раніше залишатиметься як IPv4, але клієнт, який підключається через IPv6, не побачить нічого іншого, якщо веб-додаток, на якому ви розміщуєте, спеціально не шукає адресу IPv6.


Я хотів би додати, що ви, швидше за все, захочете налаштувати свій веб-сервер, щоб переглянути значення X-Forwarded-For, щоб побачити, які відвідувачі використовують IPv6, щоб перейти на ваш сайт.
Джефф Лофридж

1
Так, є кілька модулів (mod_rpaf & mod_extract_forwarded), які допомагають у цьому, разом із змінами в останніх версіях Apache2 (mod_remoteip), які насправді полегшать це. Не тільки з IPv6, але і з AWS ELB взагалі.
Джеремі Бууз

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 ми проксі весь трафік до програми Django EC2-VPC на порт 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 ми дозволяємо порту 9099 доступним і зовнішнім, тому що нам потрібно, щоб наш Linode nginx міг відправляти сюди трафік. Також не забудьте надіслати статичні та медіа-дані з EC2-VPC до Linode, за допомогою nginx:

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

Нарешті ми вказуємо запис DNS AAAA на сервер Linode, а запис DNS на EC2-VPC, і все працює добре. Весь трафік надходить на EC2-VPC, Real IP, що зберігається у заголовку X-Real-IP. Насправді я думаю, що сервер Linode може бути дорогим, щоб зробити його так само проксі, якщо у вас немає інших програм. Таким чином, можна використовувати будь-який сервер, який має функцію проксі і, звичайно, підтримку IPv6.

Моя оригінальна публікація: Отримуйте Ipv6 Traffic on Amazon Ec2 Vpc


Це буде затримка з високою затримкою і шалено складна порівняно з просто встановленням ELB перед сервером.
ceejayoz

1
@ceejayoz немає можливості отримувати трафік IPv6 від ELB на EC2-VPC, просто EC2-Classic, але зараз EC2-Classic має обмеження на створення і не має можливості для багатьох людей.
Анатолій Чмихало

Чи може кожен, хто поставив мінус на мій пост, пояснити, чому ви це зробили? Якщо це можливо з ELB, додайте доказ
Анатолій Чмихало

Досі ніхто не описує та не приносить доказів, я дуже розчарований у такій поведінці ..
Анатолій Чмихало
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.