DNS 的 IPv6 问题

DNS 的 IPv6 问题

我有一台虚拟机,只能通过 IPv6 访问(没有可用的 IPv4)。它是 Ubuntu 16.04 LTS 服务器。我以前从未使用过仅使用 IPv6 的机器,因此我一定错过了一些琐碎的事情。

我的配置:

  1. 是否配置
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

我的问题是,虽然我可以 ping 通谷歌,但我似乎无法访问互联网的其余部分。我无法从谷歌以外的任何地方 ping 或 wget(!!!)

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

例如,虽然我可以使用 wgethttp://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 nopt 工作正常。我的配置有错误吗?

答案1

您所看到的内容与预期完全一致。您的机器只有 IPv6。Google 有 IPv4 和 IPv6 两种协议,因此您可以通过 IPv6 访问它们。但 GitHub 只有 IPv4。IPv4 和 IPv6 是不同的协议,因此它们之间无法通信。

基本上,您的服务器和 GitHub 使用不同的语言,并且您没有使用翻译服务。

允许 IPv6 客户端与 IPv4 服务器通信的转换协议称为 NAT64 + DNS64。理想情况下,托管您服务器的 ISP 应该提供这样的服务。如果他们不提供,那么您可以尝试我的一位好朋友 (Jan Žorž) 在他的实验室中托管的实验性服务。您可以在以下位置找到说明https://go6lab.si/current-ipv6-tests/nat64dns64-public-test/

请注意,NAT64 仅允许 IPv6 客户端访问 IPv4 服务器,而不能反过来。因此,只有 IPv4 的客户端无法访问您的 IPv6 服务器。为此,您需要 SIIT-DC 服务,但我不知道有谁提供这样的服务。

相关内容