Проблема IPv6 с DNS

У меня есть виртуальная машина, доступ к которой осуществляется только через IPv6 (IPv4 недоступен). Это сервер Ubuntu 16.04 LTS. Раньше я никогда не использовал машину, использующую только IPv6, и поэтому я должен пропустить что-то тривиальное.

Моя конфигурация:

  1. Ifconfig
eth0      Link encap:Ethernet  HWaddr aa:00:08:d0:f9:b2  
          inet6 addr: myIPv6Address/64 Scope:Link
          inet6 addr: myIPv6Address/64 Scope:Global
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:206 errors:0 dropped:0 overruns:0 frame:0
          TX packets:187 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:27034 (27.0 KB)  TX bytes:44976 (44.9 KB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:82 errors:0 dropped:0 overruns:0 frame:0
          TX packets:82 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:34008 (34.0 KB)  TX bytes:34008 (34.0 KB)
  1. и т.д. / сети
source /etc/network/interfaces.d/*

iface eth0 inet6 static
    address myIPv6Address
    netmask 64
    dns-nameservers 2001:4860:4860::8844 2001:4860:4860::8888

Моя проблема в том, что, хотя я могу пинговать Google, у меня нет доступа к остальной части Интернета. Я не могу пинговать или wget из любого места, кроме Google (!!!)

ping6 ipv6.google.com 
PING ipv6.google.com(fra16s14-in-x0e.1e100.net)56 data bytes
64 bytes from fra16s14-in-x0e.1e100.net: icmp_seq=1 ttl=54 time=61.2 ms 
64 bytes from fra16s14-in-x0e.1e100.net: icmp_seq=2 ttl=54 time=61.3 ms 
64 bytes from fra16s14-in-x0e.1e100.net: icmp_seq=3 ttl=54 time=61.3 ms

Например, хотя я могу wget http://www.google.com/ я ничего не могу получить от github:

wget -6 https://github.com/somefile
--2017-01-02 13:43:54--  
https://github.com/somefile
Resolving github.com (github.com)... failed: Name or service not known.
wget: unable to resolve host address ‘github.com’    

Что мне не хватает? Не должно быть в состоянии wget? Кажется, что мой DNS не работает должным образом. У меня есть ошибки в моей конфигурации?

1 ответ

Решение

То, что вы видите, именно так, как и ожидалось. Ваша машина имеет только IPv6. У Google есть как IPv4, так и только IPv6, поэтому вы можете обращаться к ним по IPv6. Но у GitHub есть только IPv4. IPv4 и IPv6 - это разные протоколы, поэтому они не общаются друг с другом.

По сути, ваш сервер и GitHub говорят на разных языках, и вы не используете службу перевода.

Протокол трансляции, который позволяет клиентам IPv6 общаться с серверами IPv4, называется NAT64 + DNS64. В идеале интернет-провайдер, на котором размещен ваш сервер, должен предоставлять такую ​​услугу. Если нет, то вы можете попробовать экспериментальные услуги, которые мой хороший друг (Ян Жорж) проводит в своей лаборатории. Вы можете найти инструкции на https://go6lab.si/current-ipv6-tests/nat64dns64-public-test/.

Помните, что NAT64 разрешает клиентам IPv6 только доступ к серверам IPv4, а не наоборот. Таким образом, ваш сервер IPv6 не будет доступен для клиентов, которые имеют только IPv4. Для этого вам понадобится услуга SIIT-DC, но я не знаю никого, кто бы предлагал такую ​​услугу.

Другие вопросы по тегам