IPv6网站不能在IIS 8中工作

我是IPv6的新手,但我认为它可以像IPv4一样工作(关于在IIS中configuration)

我的域名提供者声明我需要设置AAAAlogging,而不是Alogging。 正如我这样做,我指向我的服务器

在这里输入图像说明

我绑定我的网站,并在IIS中selectIPv6地址

我没有使用HTTPS,所以在端口80绑定。所有其他网站工作正常,但这是唯一的网站,我试图使用IPv6(所有其他的IPv4)

我已经将IPv6添加到防火墙。 奇怪的是,它甚至没有从平回来。 我通过添加一个新的规则 – >自定义 – >所有程序 – > ProtocolType:ICMPv6,然后点击自定义以确保所有ICMPtypes被选中 – >作用域(任何IP地址) – >允许连接,我将其应用于域名,私人和公共

如果我从我的VPS ping 2001:4ba0:cafe:c54::1 ,它会回复。 但是,这是外界不可见的!

图片

但是我已经在http://ipv6-test.com/validate.php上testing了我的网站 在这里输入图像说明

该网站是www.bmup.co.uk. 如果我从IIS内部浏览它,网站会按照预期加载,所以这个问题是与外部请求有关的。

如果我执行nslookup我会得到:

图片

我有问题(不能通过浏览器访问)从3个机器在2个不同的位置(虽然在英国)。 服务器在德国。

我可以做什么,我可以在浏览器中查看我的网站。

我可以从我的办公室ping上面提到的IP地址。

PING 2001:4ba0:cafe:c54 :: 1(2001:4ba0:cafe:c54 :: 1)56个数据字节
来自2001年的64字节:4ba0:咖啡馆:c54 :: 1:icmp_seq = 1 ttl = 115时间= 41.2ms
来自2001的64字节:4ba0:cafe:c54 :: 1:icmp_seq = 2 ttl = 115时间= 33.4ms
来自2001的64字节:4ba0:cafe:c54 :: 1:icmp_seq = 3 ttl = 115时间= 34.8ms

当我访问上面提到的网站时,它说

这是我的网站! 欢呼!

我在chrome中使用的IPvFoo插件显示页面上的所有资源都是使用上面提到的IP地址中的IPv6提供的。

IPvvFoo插件结果

我怀疑我是在你的VPS上,所以我想我是外部世界的一部分,我似乎没有问题。

也许你的外部世界的一部分是阻止或不连接IPv6?


我可以做什么,我可以在浏览器中查看我的网站。

从您的系统pipe理员工具包部署科学方法 ,并开始结构化和有条不紊。

您知道您的系统已正确configuration为通过IPv6提供网页,您已经在本地进行validation,并且已经从外部validation了这一点。 这回答你的标题和原来的问题。

现在你想知道为什么你不能从2个地点访问它。 所以开始收集信息

  • 当您尝试访问网站时,浏览器中显示的(扩展的)错误消息是什么?

  • 您是否无法通过IPv6访问系统?

  • 你可以连接到互联网上的任何IPv6资源? 尝试http://v6.testmyipv6.com/
  • 你可以从这些位置ping-6 / ping6服务器吗?
  • 你可以telnet到它的IPv6地址的networking服务器端口80?
  • 像mtr这样的path检查工具是否显示出有用的东西?
  • 等等

说真的,我们甚至无法回答你提供的信息所带来的延伸问题。

  • 显然,使用具有IPv6连接的系统就是答案

多么惊人的编辑。 我无法访问v6.testmyipv6.com的事实表明,根据您的原始答案,我只是在一个无法访问IPv6的地区?

英国的IPv6可用性不是按地区划分的,而是由ISP提供的。 如果你想要IPv6,而你的ISP不提供它,那么你可以尝试使用隧道服务,例如

  • he.net

根据您的意见和其他人的testing,似乎最可能的解释是您的客户端系统根本无法访问IPv6networking。 伊恩的答案在处理这一方面做得很好。 这个答案对你的问题的背景和你前进的select有更广泛的看法。

IPv4和IPv6主要是独立的协议。 在某些情况下,有一些转换机制可以提供有限的互操作性,但它们都是可选的。

IPv6的想法是,我们都将从IPv4转向支持IPv4和IPv6的双栈configuration。 一旦所有东西都是双栈,那么就可以开始丢弃IPv4的过程。 希望这是在IPv4地址用完之前发生的。

不幸的是,没有发生。 大多数组织都认为双栈很痛苦,收益不大。 IPv6支持者试图在修改地址大小问题之外进行修改,其中一些是对立的(例如很长一段时间,由于路由表大小,无法获得与提供商无关的IPv6地址问题)。

有一个名为teredo的转换机制,它允许NAT后面的只有IPv4的主机与仅有IPv6的主机进行互操作。 但是,由于担心绕过防火墙,微软只在默认情况下在没有检测到域控制器的networking上启用它(并且我在域控制器检测中看到误报)。 这对于性能和可靠性也不是很好。 几年前,MS正在讨论禁用他们的公共teredo服务器,基本上禁用每个人都teredo,但我不知道他们是否真的通过它。

现在,在RIR级别的IPv4耗尽的情况下,一些ISP最终开始认真对待IPv6,但是仍然有很大一部分互联网用户没有IPv6连接,而且至less还有几年的时间。

那么你有什么select?

  1. 如果您拥有一个封闭的客户端组,那么您可以通过ISP的本地支持,通过teredo或6to4等转换机制或通过隧道提供商提供的点对点隧道来确保所有客户端机器都具有IPv6连接。 如果您的网站需要从“一般互联网”访问,则这是不实际的。

  2. 您可以获得该服务的IPv4地址,不幸的是随着IPv4危机的深入,这个选项可能会变得更加昂贵。

  3. 您可以使用通过IPv4接受客户端连接的反向代理,并通过IPv6将它们转发到您的服务器。 代理可以在多个IPv6源服务器之间共享一个IPv4地址。 这个代理可以由你自己操作(如果你有多个服务器),它可以由你的托pipe服务提供商提供(Mythic Beasts是我知道谁是这个服务的唯一提供者),或者它可能是一个外部服务(例如cloudflare )。

下面的图片显示了一个简单的回应请求,并回复了一个支持IPv6的网站。 如您所见,Ping命令包含-6标志,这将强制Ping使用IPv6。 如果一切顺利,你应该看到一个答复。 如果你有一个本地的IPv6连接到互联网,那么响应应该是相当快的。 在图4所示的示例中,响应时间相当长,因为我正在使用隧道代理(即提供IPv6连接的公司)在IPv4隧道中运行IPv6。 如果您的回应请求未能引起回复,则可能是防火墙或其他networking设备在您的Windows系统与目标之间的某处阻止了ICMPv6。

在这里input图像说明

在使用防火墙和路由器时,您需要使用与IPv4networking类似的规则进行configuration。 您现有的IPv4规则大部分将不起作用。 当规则是独立于networking层的时候并且关注于传输层协议(TCP或者UDP)和端口。 不pipe你做什么,不pipe你有多诱惑,都不要configuration允许所有stream量在IPv6接口之间stream动以排除IPv6连接故障的IPv6默认规则。 networking犯罪分子,networking恐怖分子和从事networking战争活动的国家都精通使用IPv6。