Как мне получить IPv4-адреса из сети только для IPv6?

11

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

rubo77
источник
2
Этот сайт по какой-то причине не имеет IPv6-адреса. Возможно, вам следует объяснить, в чем заключается ваша настоящая проблема, а не то, как вы думаете, каково ее решение ?
Майкл Хэмптон
Почему через IPv6? На какой операционной системе вы работаете.
JakeGould
@MichaelHampton: я добавил причину моего вопроса
rubo77
Я отредактировал ваш заголовок, чтобы объяснить, что представляет собой вопрос, поскольку его легко пропустить в теле вопроса.
Майкл Хэмптон

Ответы:

12

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

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

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

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

kasperd
источник
Конечно, «идти в двойной стек - это хорошая идея», но не все могут просто «пойти в двойной стек». Если мой провайдер дает мне только одно или другое, я мало что могу с этим поделать.
Паоло
@paolo Если вы говорите о серверах, то вы можете выбрать хостинг-провайдера, который поддерживает двойной стек. Существует так много конкурирующих провайдеров на выбор, что настаивать на поддержке двойного стека просто делает выбор немного проще, урезая список провайдеров на выбор. Если мы говорим о сетях с конечными пользователями, то здесь меньше конкуренции, поскольку вы ограничены интернет-провайдерами в своем географическом регионе. В этом случае использование того, что предоставляет провайдер, будет работать до тех пор, пока сервисы, на которые вы полагаетесь, имеют двойной стек, как и должно быть.
Касперд
@paolo Если вы говорите о сетях, в которых пользователи являются разработчиками, системными администраторами или другими пользователями, которым нужен двойной стек для разработки / поддержки инфраструктуры с двумя стеками, то вам действительно следует использовать двойной стек и использовать туннель, если интернет-провайдер этого не делает. поддержка IPv6. Вы можете быть почти уверены, что провайдер предоставляет какой-либо способ для доступа к услугам только IPv4, возможно, через NAT64 или другой механизм перехода.
Касперд
Очевидно, этот сайт теперь поддерживает IPv6 (мой браузер подключается к реальному IP-
Paul Stelian
1

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

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

davidgo
источник
это было то, что я имел в виду. но так как нет «подходящего» адреса ip6, я подумал, что смогу перенаправить его как-нибудь. Я добавил это к вопросу
rubo77