IPv6直连

IPv6直连

我正在开发的一个项目(基于 Linux)需要一个仅 IPv6 的网络接口,当连接到网络或直接连接到另一台机器时,可以通过 mDNS 访问该接口。该接口提供一些 Web 服务,也可用于 ssh。我在直接连接另一台计算机时遇到了问题,无法使用 Avahi 提供的主机名进行连接。

我做了一些研究,看来问题是由于接口仅建立链接本地地址造成的。我可以通过将 IPv6 地址和接口指定为 address%interface 来 ssh 进入设备。

我的问题是,如何将 IPv6 接口配置为在连接到路由器时自动配置并在直接连接时建立非链接本地地址,或者是否有首选方法来支持无需配置并支持网络或直接连接?

答案1

address%interface按照IPv6 中的正常和预期指定链路本地地址。这就是链路本地 IPv6 地址的工作原理。

IPv6 的正常方法是配置路由器发送 IPv6 路由器通告,其中包括有关要使用的网络地址和前缀以及要使用的地址自动配置方法(DHCPv6 和/或 SLAAC)的信息。

如果非链路本地前缀为 /64 或更宽,并且路由器通告中的信息允许使用 SLAAC,则客户端可以自动选择主机地址部分(或者根据 EUI 基于 NIC 的 MAC 地址) -64/RFC 4291,根据 RFC 3972 和 7217 的稳定隐私地址,或根据 RFC 4941 的临时地址。

如果您需要直接连接上的非链路本地地址,您可能应该使用 ULA 地址(即 range 内的地址fc00::/7)。它们是 RFC 1918 地址的 IPv6 等效项。在 IPv6 中,一个接口分配有多个 IPv6 地址是正常现象,因此您可以让自动检测照常工作,并将您的系统配置为始终将 ULA 地址添加到网络接口以进行直接连接,作为补充到任何可以自动检测到的地址。

相关内容