回到我的 Mac 使用环回接口 IPv6 地址注册服务

bam*_*s53 9 bonjour ipv6 icloud macos

我希望能够通过 IPv6 互联网使用“回到我的 Mac ”。我已经获得了 IPv6 访问权限(即我的机场从我的 ISP 分配了一个 /64 块并发出 RA,因此网络上的每个人都可以自动配置他们自己的公共 IPv6 地址。我的计算机根据其 MAC 地址为自己分配一个地址,和一个临时地址。我可以访问 ipv6.google.com 和所有内容。)但由于某种原因,一个无用的环回 IPv6 地址正在注册到“回到我的 Mac”而不是一个有用的地址。

这是我使用 dns-sd 得到的:

dns-sd -F

Timestamp     Recommended Browsing domain
 0:15:52.133  Added     (More)               local
 0:15:52.134  Added                          icloud.com
                                             - > btmm
                                             - - > members
                                             - - - > 12345678
Run Code Online (Sandbox Code Playgroud)

dns-sd -B _services._dns-sd._udp 12345678.members.btmm.icloud.com

Browsing for _services._dns-sd._udp.12345678.members.btmm.icloud.com
Timestamp     A/R Flags if Domain                    Service Type              Instance Name
 0:23:19.685  Add     3  0 .                         _tcp.local.               _rfb
 0:23:19.686  Add     3  0 .                         _tcp.local.               _ssh
 0:23:19.686  Add     3  0 .                         _tcp.local.               _sftp-ssh
 0:23:19.686  Add     2  0 .                         _tcp.local.               _airvideoserver
Run Code Online (Sandbox Code Playgroud)

dns-sd -B _rfb 12345678.members.btmm.icloud.com

Browsing for _rfb._tcp.12345678.members.btmm.icloud.com
Timestamp     A/R Flags if Domain                    Service Type              Instance Name
 0:25:02.255  Add     2  0 12345678.members.btmm.icloud.com. _rfb._tcp.                Mac
Run Code Online (Sandbox Code Playgroud)

dns-sd -L Mac _rfb 12345678.members.btmm.icloud.com

Lookup Mac._rfb._tcp.12345678.members.btmm.icloud.com
 0:26:33.431  Mac._rfb._tcp.12345678.members.btmm.icloud.com. can be reached at Mac.12345678.members.btmm.icloud.com.:5900 (interface 0)
Run Code Online (Sandbox Code Playgroud)

dns-sd -G v6 Mac.12345678.members.btmm.icloud.com.

Timestamp     A/R Flags if Hostname                  Address                                      TTL
 0:27:45.201  Add     2  0 Mac.12345678.members.btmm.icloud.com. FDDC:DBC8:58A7:8322:021F:5BFF:FE3E:3C44%<0>  152
Run Code Online (Sandbox Code Playgroud)

注册的 IPv6 地址用于 ln0,这是环回接口,除了运行服务的计算机外,对任何东西都没有用。ifconfig 列出了我的 IPv6 地址,包括我系统真实网络接口上的一个自动配置的临时公共 IPv6 地址,这将是完美的。为什么 dns-sd 不使用这个地址注册服务,我该如何做到这一点?

附加说明,我的路由器支持 NAT-PMP,因此即使我的计算机没有直接拥有公共 IPv4 地址,我也希望它使用 NAT-PMP 来确保我启用的服务可通过 IPv4 使用,但这并没有好像不是这样。当我在12345678.members.btmm.icloud.com域中查找服务实例然后使用它dns-sd -G v4来解析给定的主机名时,它说没有 IPv4 记录。

Spi*_*iff 5

听起来您真正要寻找的是广域 Bonjour(以下称为“WAB”),这是一个系统,其中支持 Bonjour 的客户端除了通过多播 DNS 在本地网络上注册服务外,还使用动态 DNS更新(正在由 IETF 在RFC2136 中标准化的方案),不仅要注册其 IP 地址,还要注册传统单播 DNS 服务器的可用服务记录。

有关如何配置 Mac 以使用 WAB 的说明,请参阅dns-sd.org。他们甚至有一个“系统偏好设置”面板,您可以下载并安装以简化操作。我相信他们也有关于如何配置 WAB 以与一些支持它的知名动态 DNS 服务提供商合作的说明,例如dyn.com(又名 dyndns.com)。如果您在某处运行自己的 DNS 服务器,您还可以在 dns-sd.org 上找到有关如何设置 DNS 服务器以充当 WAB 服务器的说明。为了获得最佳结果,它可能需要运行 BIND。

使用支持 WAB 的动态 DNS 服务,或运行您自己的支持 WAB 的 DNS 服务器,是您唯一的选择。iCloud 的 BTMM 服务器不支持完整的 WAB。

Back to My Mac 使用了 Wide-Area Bonjour 的一些软件基础设施,但 iCloud BTMM 服务器不提供完整的 WAB 服务,只提供 BTMM 使用它的特定方式所需的部分。正如您所发现的,BTMM 客户端机器在其环回接口上放置了一个 IPv6“唯一本地地址”(ULA),并将该 ULA 注册到 BTMM 的服务器。这些 ULA 之间的连接由 IPsec 保护的,通常是 IPv6-in-IPv4,BTMM Mac 之间的隧道处理。您无法直接连接到这些服务是有意为之。这会强制连接通过 IPsec 保护的 BTMM 隧道。Mac 上的 BTMM 软件使用 BTMM 对 Mac 进行身份验证,并使用它来确保只有登录到您自己的 BTMM 帐户的机器才能建立 BTMM IPsec 隧道。

更新:还有一些想法:

  • 确保您没有在 AirPort 基站的 IPv6 设置中选中“阻止传入连接”。(请注意,AirPort Utility 6.0 当前没有 IPv6 设置 UI,因此您必须使用 AirPort Utility 5.6 或更早版本来检查这一点。)
  • 您能否从其他站点 ping6 您的家用 Mac 的可公开路由的非临时 IPv6 地址?
  • 典型的 BTMM 连接(即通过 IPv4,从另一台 Mac 登录到您的同一个 iCloud 帐户,启用 BTMM)是否有效?您为什么特别尝试通过 IPv6 实现这一点?如果我更好地了解您的目标和限制,我可能能够更好地帮助您。