Як я можу дістатись до 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 на домен?


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 - з прив'язкою. Більш детальна інформація про їх налаштування доступна у вікі 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. Однак відображення від доменного імені до NAT64 IP-адреси можна поставити /etc/hosts, і воно повинно працювати чудово.

Це може спрацювати для окремого доменного імені. Але якщо ви хочете, щоб тільки хост IPv6 мав змогу дістатися до декількох доменів, не вводячи кожного з них /etc/hostsіз NAT64-адресою, вам потрібен динамічний переклад адрес. Саме для цього призначений DNS64.

Тепер, якщо клієнт має доступ до IPv4 і йому лише відсутній DNS, відповідь стає набагато простішим. Просто /etc/hostsвведіть IPv4-адресу в такий спосіб, як запропоновано davidgo. Звичайно, вам потрібно буде оновлювати цей файл щоразу, коли IP-адреса сервера змінюється, що, сподіваємось, буде не надто часто.


Безумовно, "перехід подвійного стека - це гарна ідея", але далеко не кожен може просто "пройти подвійний стек". Якщо мій провайдер дає мені лише те чи інше, я не можу з цим зробити багато.
paolo

@paolo Якщо ви говорите про сервери, ви можете обрати хостинг-провайдера, який підтримує подвійний стек. Існує така велика кількість конкуруючих постачальників на вибір, що наполягання на підтримці подвійних стеків просто робить вибір трохи простішим шляхом скорочення списку постачальників, на які можна вибрати. Якщо ми говоримо про мережі з кінцевими користувачами, конкуренція менша, оскільки ви обмежені провайдерами у вашому географічному регіоні. У такому випадку все, що надає Інтернет-провайдер, буде працювати до тих пір, поки послуги, на які ви покладаєтесь, мають подвійний стек, як вони повинні бути.
kasperd

@paolo Якщо ви говорите про мережі, де користувачі - це розробники, системні адміністратори чи інші, яким потрібен подвійний стек для того, щоб розвивати / підтримувати інфраструктуру подвійного стека, то вам дійсно слід пройти подвійний стек і використовувати тунель, якщо провайдер не робить підтримка IPv6. Ви можете бути впевнені, що провайдер надає певний спосіб досягти служб лише для IPv4, можливо, через NAT64 або інший механізм переходу.
kasperd

Мабуть, цей сайт зараз підтримує IPv6 (мій браузер підключається до фактичного IP, а не до мого стандартного 6to4 з'єднання)
Пол Стеліан

1

Я думаю, що ви можете задати неправильне запитання - Ви не можете перенаправити IPv6 адресу до домену, оскільки процес працює протилежно, тобто домен перетворюється на [або багато] хостів.

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


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