如何从仅IPv6的网络访问IPv4地址?


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 2014年

@MichaelHampton:我添加了问题的原因
rubo77 2014年

我已经编辑了您的标题,以解释实际的问题,因为在问题正文中很容易错过。
迈克尔·汉普顿

Answers:


12

您不能简单地“添加” IPv6地址来访问仅可通过IPv4使用的主机。这是两个完全不同且不兼容的协议。

为了使 IPv6的网络能够访问IPv4地址,需要一个网关,该网关可以访问IPv4。通常,这是通过NAT64 / DNS64网关完成的,该网关将IPv4地址转换为“伪” IPv6地址,并接受与这些“伪” IPv6地址的连接,并将连接转换为IPv4网络。这些IPv6地址将在64:ff9b::/96范围内。

在OpenWrt中,NAT64使用Tayga完成,而DNS64使用绑定。有关如何设置它们的更多信息,请参见OpenWrt Wiki。您需要姿势调整或障碍断路器;以前的OpenWrt版本没有对IPv6和其他技术的足够完整的支持。

您可以将公共DNS64 / NAT64解析器添加到/etc/resolv.conf中:

nameserver 2001:67c:2b0::4
nameserver 2001:67c:2b0::6

您还可以使用464xlat在客户端上“还原”翻译。464xlat使用相同的工具。(如上所述,但仅以不同的方式)。使用464xlat,您还可以访问带有原义IP的URL。


2

该域downloads.openwrt.org具有IPv4地址,但没有IPv6地址。因此,除非使用转换机制,否则无法通过IPv6到达它。您可以使用NAT64来从纯IPv6客户端创建到该纯IPv4服务器的TCP连接。

但是,为什么要使用仅IPv6的客户端?进入双栈是一个好主意,但是目前,仅IPv6仅对那些知道在拥有太多IPv4主机的世界中引入限制的人有用。

如果设法打开与服务器的TCP连接,您将面临另一个挑战。HTTP 1.1版要求客户端通过HTTP连接发送其正在联系的服务器的名称。许多站点,包括downloads.openwrt.org要求发送此标头的站点。

如果HTTP客户端知道要发送的域名,则只能发送该标头。因此,最好让客户端知道原始URL,并以某种方式允许其将名称解析为IP地址。如果必须是IPv6,那仍然意味着您将需要NAT64。但是,可以放置从域名到NAT64 IP地址的映射/etc/hosts,并且应该可以正常工作。

对于单个域名,这可能很好用。但是,如果希望仅IPv6的主机能够访问多个域而不必将每个域都放入/etc/hostsNAT64地址,则需要动态转换地址。这就是DNS64的用途。

现在,如果客户端确实具有IPv4访问权限并且仅缺少DNS,答案将变得更加简单。/etc/hosts就像大卫建议的那样输入IPv4地址。当然,每次服务器的IP地址更改时,您都需要更新该文件,希望这种情况不会太频繁。


当然,“采用双堆栈是个好主意”,但并不是每个人都可以“采用双堆栈”。如果我的提供者只给我一个或另一个,那么我无能为力。
paolo

@paolo如果您谈论的是服务器,则可以选择支持双堆栈的托管服务提供商。有如此众多的竞争供应商可供选择,坚持双栈支持只是通过减少供应商清单来简化选择。如果我们在谈论与最终用户的网络,则竞争会更少,因为您仅限于您所在地理区域的ISP。在这种情况下,只要您所依赖的服务是双栈,就可以使用ISP提供的功能。
kasperd '18

@paolo如果您要谈论的网络中,用户是开发人员,系统管理员或需要双栈以开发/支持双栈基础结构的其他用户,那么您真的应该使用双栈并在ISP不支持的情况下使用隧道支持IPv6。您几乎可以确定ISP提供了某种方法,可能通过NAT64或其他转换机制来访问仅IPv4的服务。
kasperd '18

显然,该站点现在已启用IPv6(我的浏览器连接到实际IP而不是我的标准6to4连接)
Paul Stelian

1

我认为您可能会问错问题-您不能将IPv6地址重定向到域,因为该过程的工作方式相反,即域解析为[或许多]主机。

我无法在您的路由器上找到任何信息,但是如果它运行的是OpenWRT,您应该可以在/ etc / hosts中添加一个条目,以便域名可以解析为适当的IP地址。


那就是我的想法。但是由于没有“合适的” ip6地址,我想我可以通过某种方式重定向它。我将其添加到问题中
rubo77
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.