![问题](https://linux22.com/image/172362/%E9%97%AE%E9%A2%98.png)
我可以使用 Ipv6 链路本地地址范围创建对等网络吗?我应该能够从系统 A ping 到系统 B 的本地链路(fe80 地址空间),反之亦然。
换句话说,我想使用明确定义的链接本地地址建立对等 IPv6 网络
如果是的话,那么在 aws 中设置相同的任何指示都会非常有帮助。
答案1
最方便的方法是设置 mDNS(多播 DNS)或 LLMNR(链路本地多播名称解析),它使您能够使用主机名而不是 IP 地址。在这两种机制中,主机本身在网络上报告其名称,因此不需要集中式名称服务器。您可以使用 systemd-networkd 设置 mDNS 或 LLMNR(或两者)。
使用链路本地 IPv6 地址的问题在于它们就是:链路本地地址。没有网络前缀可以告诉您使用哪个网络接口,因此您必须在地址后指定接口索引,例如:
ping fe80::xxxx:xxxx:xxxx:xxxx%3
答案2
这很大程度上取决于您是否希望推出自己的软件。大多数(全部?)对等软件可能会遇到链路本地地址的限制。如果对等软件没有明确编写来处理此限制,那么它很可能无法运行。
问题
与其他 IP 地址类别不同,IPv6 链路本地地址不能单独使用。其他地址类别包含识别地址的信息网段,因此操作系统可以确定使用哪个接口(网卡)来与该地址通信。对于 IPv6 链接本地地址,您必须单独指定要使用的网络接口。例如:ping fe80::1234:5678%3
不ping fe80::1234:5678
。
请注意,接口标识符可能会在重新启动之间发生变化,尤其是在您更改硬件时。
最常见的解决方法(不太可能对点对点有帮助)
解决此问题的最简单方法是避免使用显式 IP 地址并使用主机名。协议的实现如组播DNS能够将主机名解析为 IP和这是各自的界面。例如:
ping mypc.local
无论它连接到哪个接口以及是否位于链路本地地址上,这都应该有效。
为什么这对于点对点软件来说是一个问题?
大多数点对点软件都是基于这样的假设编写的:它将在互联网上使用,并且用户不会拥有或不知道他们的信息。完全限定域名。因此,现有软件不使用主机名或域名,它使用 IP 地址……只是 IP 地址。
理论上,您可以编写一些软件,可以将其显式配置为使用一个特定接口,然后共享 IPv6 链路本地地址。但这听起来确实需要做很多工作来避免替代方案......
替代
对于这个特定问题,您可能最好为每台机器配置一个ULA(额外的 IP 地址)。这可能会避免需要推出自己的软件。