我正在从事的一个项目(基于Linux)只需要一个IPv6网络接口,当连接到网络或直接连接到另一台计算机时,该接口可以通过mDNS访问。该接口提供了一些web服务,也可以用于ssh。在直接连接到另一台无法使用Avahi提供的主机名连接的计算机时,我遇到了一些问题。
我已经做了一些研究,似乎这个问题是由于接口只建立了一个链接本地地址。通过将IPv6地址和接口指定为地址%接口,我可以将ssh输入到单元中。
我的问题是,如何将IPv6接口配置为在连接到路由器时自动配置,并在直接连接时建立非链接本地地址,或者是否有更好的方法支持不需要配置且支持网络或直接连接的Avahi IPv6网络?
发布于 2020-05-14 07:44:52
将链接本地地址指定为address%interface是正常的,在IPv6中是预期的.这就是链接本地IPv6地址应该如何工作的方式。
IPv6的通常方法是配置路由器发送IPv6路由器广告,其中包括要使用的网络地址和前缀的信息,以及要使用的地址自动配置方法(DHCPv6和/或SLAAC)。
如果非链路本地前缀是/64或更宽,并且路由器广告中的信息允许使用SLAAC,则客户端可以自动选择主机地址部分(或者根据EUI-64/RFC 4291基于网卡的MAC地址,根据RFC 3972和7217选择稳定的隐私地址,或者根据RFC 4941选择临时地址)。
如果您需要直接连接上的非链接本地地址,则应该使用ULA地址(即范围fc00::/7内的地址)。它们是相当于RFC 1918地址的IPv6。在IPv6中,一个接口分配了多个IPv6地址是正常的,因此您可以让自动检测像往常一样工作,并将系统配置为始终向网络接口添加一个ULA地址,以便直接连接,作为自动检测到的任何地址的补充。
https://unix.stackexchange.com/questions/586520
复制相似问题