
Я хотел бы получить доступ к этому адресу через адрес IPv6:
http://downloads.openwrt.org/attitude_adjustment/12.09/ar71xx/generic/packages/
В наших маршрутизаторах Freifunk нет DNS, поэтому имя downloads.openwrt.org
не может быть разрешено. Все серверы в Интернете доступны только через адреса ipv6. Теперь мы не можем получить доступ к этому пакетному зеркалу изнутри маршрутизатора, чтобы установить пакеты через opkg install
.
Было бы решением, если бы мы могли добавить в нашу конфигурацию, например, следующее:
http://[2001:db8::1]/attitude_adjustment/12.09/ar71xx/generic/packages/
Наши маршрутизаторы работают под управлением OpenWRT и поддерживают только IPv6, и я хотел бы добавить запись, /etc/hosts
чтобы доменное имя downloads.openwrt.org
разрешалось в соответствующий адрес IPv6.
Можно ли перенаправить IPv6 на домен?
решение1
Вы не можете просто "добавить" адрес IPv6, чтобы достичь хоста, который доступен только через IPv4. Это два совершенно разных и несовместимых протокола.
Для того, чтобы ваш IPv6-толькоЧтобы сеть могла достичь адресов IPv4, необходим шлюз, имеющий доступ к IPv4. Обычно это делается с помощью шлюза NAT64/DNS64, который транслирует адреса IPv4 в «поддельные» адреса IPv6 и принимает соединения с этими «поддельными» адресами IPv6 и транслирует соединения в сеть IPv4. Эти адреса IPv6 будут находиться в диапазоне 64:ff9b::/96
.
В OpenWrt NAT64 реализован с помощью Tayga, а DNS64 — с помощью bind. Дополнительная информация о том, как их настроить, находится здесьдоступно в OpenWrt wiki. Вам понадобится Attitude Adjustment или Barrier Breaker; предыдущие версии OpenWrt не имели достаточно полной поддержки IPv6 и других технологий.
Вы можете добавить публичные DNS64/NAT64-resolver в ваш /etc/resolv.conf:
nameserver 2001:67c:2b0::4
nameserver 2001:67c:2b0::6
Вы также можете «вернуть» перевод на клиентском сайте, используя464xlat. 464xlat использует те же инструменты. (упомянутые выше, но только другим способом). С 464xlat вы также можете получить доступ к URL с буквальными IP-адресами.
решение2
У домена downloads.openwrt.org
есть адрес IPv4, но нет адреса IPv6. Поэтому вы не сможете связаться с ним по IPv6, если не используете механизм трансляции. Вы можете использовать NAT64, чтобы создать TCP-соединение с этим сервером только IPv4 из клиента только IPv6.
Но зачем вам использовать клиент только IPv6? Переход на двойной стек — хорошая идея, но на данный момент только IPv6 действительно полезен только для тестирования для тех, кто знает ограничения, которые возникают в мире, где слишком много хостов только IPv4.
Если вам удастся открыть TCP-соединение с сервером, вы столкнетесь с другой проблемой. HTTP версии 1.1 требует, чтобы клиент отправлял имя сервера, с которым он связывается по HTTP-соединению. И многие сайты, включая , downloads.openwrt.org
требуют отправки этого заголовка.
Ваш HTTP-клиент может отправлять этот заголовок, только если он знает доменное имя для отправки. Поэтому вам лучше сообщить клиенту исходный URL и каким-то образом предоставить ему доступ для преобразования этого имени в IP-адрес. Если это должен быть IPv6, это все равно означает, что вам понадобится NAT64. Однако сопоставление доменного имени с IP-адресом NAT64 можно вставить /etc/hosts
, и это должно работать просто отлично.
Это может работать нормально для отдельного доменного имени. Но если вы хотите, чтобы хост, работающий только по IPv6, мог достичь нескольких доменов без необходимости помещать каждый из них в /etc/hosts
адрес NAT64, вам нужна динамическая трансляция адресов. Для этого и нужен DNS64.
Теперь, если у клиента есть доступ IPv4 и отсутствует только DNS, ответ становится намного проще. Просто введите адрес IPv4, /etc/hosts
как предложил davidgo. Конечно, вам нужно будет обновлять этот файл каждый раз, когда IP-адрес сервера изменится, что, как мы надеемся, будет происходить не слишком часто.
решение3
Думаю, вы задаете неправильный вопрос. Вы не можете перенаправить адрес IPv6 на домен, потому что процесс работает наоборот, то есть домен преобразуется в [или несколько] хостов.
Мне не удалось найти никакой информации о вашем маршрутизаторе, но если он работает под управлением OpenWRT, вы должны иметь возможность добавить запись в /etc/hosts, чтобы доменное имя было преобразовано в соответствующий IP-адрес.