Как я могу сделать свой веб-сервер доступным через IPv6 на платформе AWS?


15

Веб-сайт моего бизнеса использует платформу AWS. Я хочу, чтобы посетители сайта могли получать доступ к моему контенту по протоколу IPv6. Как я могу добавить адрес IPv6?

Ответы:


12

Хотя на момент написания этой статьи экземпляры EC2 не поддерживают нативный IPv6, Amazon внедрила IPv6 для своих эластичных балансировщиков нагрузки в восточной части США (Северная Вирджиния), ЕС (Ирландия), Азиатско-Тихоокеанском регионе (Токио) и Азиатско-Тихоокеанском регионе (Сингапур). Я продемонстрирую, как сделать контент IPv6 доступным, используя экземпляры EC2 и балансировщик нагрузки.

Эластичный балансировщик нагрузки (ELB)

Я предполагаю, что вы уже используете балансировщик нагрузки. (Если вы хотите его настроить, следуйте указаниям в Руководстве разработчика по 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), используя DNS-имя ELB с двумя стеками. Если вы не знакомы с этими инструментами командной строки, воспользуйтесь веб-копией, например, 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. :(
Мартейн Химельс

Это все еще не доступно! :( Больно, когда приходится поддерживать яблочное устройство
Keerthivasan

6

Вы можете сделать сайт доступным с IPv6 (и некоторыми другими преимуществами), проксируя свой сайт через CloudFlare CDN.


Интересный. Я не знал, что Cloudflare имеет автоматический шлюз IPv6. Спасибо за совет, Маркус.
Джефф Лафридж

1

Вы можете получить бесплатный туннель IPv6 от Tunnelbroker . Хорошо работает с EC2. Я проверял это.


4
«хорошо работает» - довольно субъективная фраза.
Крис С

Это работает, связь идет и выходит, быстро, надежно. Что еще вы ожидаете большего?
Камень

Подробности об условиях эксплуатации, например, нагрузка. VPS в стиле «lowendbox» может «хорошо работать» для некоторых людей, но не для других. Географическое положение также может иметь значение. Много, много переменных, которые влияют на то, что может или не может работать для вас. (Я могу предположить, что есть также некоторое разногласие, если «быстрый» подразумевает задержку или пропускную способность, или и то, и другое.)
Корнелиус,

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

1

IPv6 теперь общедоступен

За последние пару лет мы работали над добавлением поддержки IPv6 во многие различные части AWS, начиная с Elastic Load Balancing, AWS IoT, AWS Direct Connect, Amazon Route 53, Amazon CloudFront, AWS WAF и S3 Transfer Acceleration, все они готовились к объявлению в прошлом месяце о поддержке IPv6 для экземпляров EC2 в виртуальных частных облаках (первоначально доступных для использования в восточном регионе США).

Сегодня я рад поделиться с вами новостью о том, что поддержка IPv6 для экземпляров EC2 в VPC теперь доступна в общей сложности в 15 регионах, наряду с поддержкой Application Load 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 и заметил, что в настоящее время VP2 ECC не поддерживает 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 на 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.