如何使用 Mac OS X 远程登录到 IPv6 主机?

如何使用 Mac OS X 远程登录到 IPv6 主机?

我正在公司网络上测试 IPv6,但在 OS X 上遇到了问题。使用大多数 IPv6 命令(例如telnet -6或 )traceroute6时,都会出现错误:

connect: No route to host

例如,我有一个 Web 服务器。以下代码失败:

$ telnet -6 fe80::… 80    # this fails

我知道服务器是可以访问的,因为ping6它可以工作(请注意,我必须使用参数-I):

$ ping6 -I en1 fe80::…    # this works

而且我知道 Web 服务器正在运行,因为我可以从 Windows 远程登录到它:

C:\> telnet fe80::… 80  # this works

我怀疑我遗漏了一些配置标志或命令行参数。

答案1

fe80::/16 前缀用于链路本地地址,它们很特殊。尝试运行

netstat -nr

在 OS X 和

netsh int ipv6 show routes

在 Windows 上。在 OS X 上,您很可能会看到每个接口都有单独的 fe80:: 路由,例如 lo0 和 en1。Windows(至少是 XP)似乎没有这样做。由于 OS X 有多个到同一前缀的路由,因此您必须使用区域索引引导交通往正确的方向:

$ telnet -6 fe80::…%en1 80

答案2

一个接口可以并且通常会有多个 IPv6 地址。链路本地地址是从 fe80::/16 范围自动创建的,并且不进行路由(点对点连接)。Gerald Combs 提到,如果您无法指定要使用的接口,则需要指定区域索引。

对于常规使用以及本地链路以外的连接,您需要向接口添加可路由地址。这可以通过从 ISP(或从隧道提供商,如 SixXS 或 he.net)获取您自己的 IPv6 范围,并通过路由器通告、DHCPv6 或手动将其分发到您的设备来实现。

如果您只是进行测试,您也可以使用特殊的“唯一单播”IP 范围 fc00::/7,该范围应按照 RFC4193 用于此目的:

本文档定义了 IPv6 单播地址格式,该格式是全球唯一的,用于本地通信(通常在站点内部)。这些地址预计不会在全球互联网上路由

查看本网站,它会为您生成一个范围,帮助您入门。

答案3

我相信您发现了链接本地 fe80:: 地址中的一个错误。它对我使用公共地址有效,即使它们是链接本地的。

$ telnet -6 2001::xxx:: 80
Trying 2001::xxx::...
Connected to 2001::xxx::
Escape character is '^]'.
HEAD / HTTP/1.0

HTTP/1.1 200 OK
Date: Thu, 30 Dec 2010 01:18:00 GMT
Server: Apache
Last-Modified: Sun, 30 May 2010 20:11:06 GMT
Accept-Ranges: bytes
Content-Length: 44
Connection: close
Content-Type: text/html

Connection closed by foreign host.

尝试获取真实的 v6 地址。

相关内容