Назад | Перейти на главную страницу

Как получить доступ к IPv4-адресам из сети, поддерживающей только IPv6?

Я хотел бы получить доступ к этому адресу через 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 в домен?

Вы не можете просто «добавить» IPv6-адрес для доступа к хосту, который доступен только через IPv4. Это два совершенно разных и несовместимых протокола.

Для вашего IPv6-только сети, чтобы иметь доступ к IPv4-адресам, требуется шлюз, который имеет доступ к IPv4. Обычно это делается с помощью шлюза NAT64 / DNS64, который переводит адреса IPv4 в «поддельные» адреса IPv6, принимает подключения к этим «поддельным» адресам IPv6 и транслирует подключения к сети IPv4. Эти IPv6-адреса будут в 64:ff9b::/96 ассортимент.

В OpenWrt NAT64 выполняется с помощью Tayga, а DNS64 - с привязкой. Дополнительная информация о том, как их настроить: доступно в вики OpenWrt. Вам понадобится Регулировка отношения или Прерыватель барьеров; предыдущие версии OpenWrt не имели достаточно полной поддержки IPv6 и других технологий.

Вы можете добавить публичные DNS64 / NAT64-преобразователи в свой /etc/resolv.conf:

nameserver 2001:67c:2b0::4
nameserver 2001:67c:2b0::6

Вы также можете «отменить» перевод на сайте-клиенте, используя 464xlat. 464xlat использует те же инструменты. (упомянуто выше, но только по-другому). С 464xlat вы также можете обращаться к URL-адресам с буквальными IP-адресами.

Домен 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 как предложил Давидго. Конечно, вам нужно будет обновлять этот файл каждый раз при изменении IP-адреса сервера, что, надеюсь, будет происходить не слишком часто.

Я думаю, вы задаете неправильный вопрос - вы не можете перенаправить IPv6-адрес в домен, потому что процесс работает противоположным образом, то есть домен преобразуется в [или множество] хостов.

Мне не удалось найти никакой информации о вашем маршрутизаторе, но если он работает с OpenWRT, вы сможете добавить запись в / etc / hosts, чтобы имя домена преобразовывалось в соответствующий IP-адрес.