问题:我正在玩IPv6并将其转换为IPv4,反之亦然。
我想访问http://127.0.0.1/
并做了标准的ipv4到ipv6的计算:AA = 127 BB = 0 CC = 0 DD = 1
与架构
0000:0000:0000:0000:0000:ffff:AABB:CCDD
这让我:
0000:0000:0000:0000:0000:ffff:7F00:0001
所以我试了
http://[:::::ffff:7F00:1]
但它没有显示任何东西。 通过一些Googlesearch,我发现我需要
http://[::1]/
使用IPv6访问回送接口。
现在我并不太惊讶,因为回送接口可能是一个特例。 但后来我试图访问我的公共文件服务器:
http://88.84.21.77/
我计算的IPv6地址是
http://[::ffff:5854:154d]/
但它也没有解决。
现在我的问题是:我是否做了任何转换错误,或者不是那样工作。
或者可能是因为我的服务器或ISP不支持IPv6? 我的服务器在Ubuntu 9.04下运行,具有所有必要的补丁。
IPv6不仅仅是编写IPv4地址的另一种方式,您不能像以前那样在它们之间进行转换。 一个说v6的服务器将有一个与v4地址完全不同的v6地址。 例如主机orange.kame.net
有v4地址203.178.141.194
和v6地址2001:200:dff:fff1:216:3eff:feb1:44d7
。
要成功使用IPv6,您需要从您的ISP(不寻常,不幸)或者为您提供隧道服务的设备提供支持。 后者是build立在Windows 7,Mac OS X和一些其他操作系统:ES。
或者可能是因为我的服务器或ISP不支持IPv6?
是的,一点没错。 您的ISP必须本地支持IPv6,或者使用其中一个已知的隧道代理(例如http://tunnelbroker.net/ )设置6in4隧道。
您尝试使用的前缀(:: ffff:0:0/96)是IPv4映射的地址。 这是一种API机制,可让软件打开单个套接字并接受IPv4和IPv6请求。 在OpenSSH中支持IPv6的主机地址上,vsftp和lighttpd以这种格式logging,例如
auth.log.0:Aug 20 07:01:18 my_host sshd[19411]: refused connect from ::ffff:60.190.31.214 (::ffff:60.190.31.214)
你不应该在任何实时stream量中看到这个前缀 。 它将作为IPv4显示在电线上。 有一个类似的前缀(:: ffff:0:0:0/96,注意额外的“0”),这是build议用于6to4翻译的forms。 我不知道它是否在使用中。 我在任何实时networkingstream量中都没有看到任何“:: ffff”地址。
正如其他一些人所指出的那样,IPv6不是IPv4的后向兼容超集。 这是人们最大的抱怨之一。 您可以通过双堆栈或隧道来独立运行它,也可以翻译它 。
我开始通过创build隧道来尝试IPv6。 一旦我感到舒服,我将双面堆叠我的面向公众的服务器。 幸运的是我的主机提供商使用本地IPv6。