我的 VPS 大多来自同一提供商,但位于不同的地方。它们带有一个 IPv4 和一个 /112 IPv6 子网。我正在尝试使用 Linux 的 AnyIP 功能,如所述这里使我的 vps 响应对 IPv6 子网中任何 IP 的全局 ping,而不必将子网中的每个单独的 IP(超过 65000 个 IP)分配给我的接口。
考虑两个全新安装 Ubuntu 20.04 的 VPS,我的配置方式如下:
首先,我添加本地路线:
ip -6 route add local aa:bb:cc:dd:ee:ff:11::/112 dev lo
在两个 VPS 上,我都可以从 VPS 内部本地 ping 子网中的任何 IP。到目前为止一切顺利。然后我在两台服务器上安装 ndppd 作为邻居发现协议工具:
apt-get install ndppd -y
然后我将创建如下配置文件/etc/ndppd.conf
:
proxy eth0 {
router no
rule aa:bb:cc:dd:ee:ff:11::/112 {
static
}
}
然后重新启动 ndppd 守护进程:
systemctl restart ndppd
执行此操作后,我可以从任何支持全局 IPv6 的服务器 ping 通 VPS1 的所有子网 IP,但执行过相同过程的 VPS2 只能 ping 通直接分配给其接口的单个 IPv6。
ip -6 route show
两个服务器上的和的输出sysctl -a | grep ipv6
相同。
这可能是因为 VPS2 连接的路由器吗?这是否意味着我无法在 VPS2 上使用 AnyIP?
我该如何进一步探究这个问题?也许检查一下 VPS2,看看为什么 ping 数据包没有到达或没有响应?
提供商本身说您必须为 VPS1 和 VPS2 的接口分配 IP。他们不知道 Linux 的 AnyIP 功能吗?
更新: 在 VPS2 上,如果将子网中的任何候选 IP 添加到接口并快速将其删除,则该单个候选 IP 变得可用。奇怪!
ip -6 addr add aa:bb:cc:dd:ee:ff:22:1234 dev eth0
ip -6 addr del aa:bb:cc:dd:ee:ff:22:1234 dev eth0
然后 IPaa:bb:cc:dd:ee:ff:22:1234
就可用了,并且可以全局 ping 通。执行此添加/删除操作后,我发现路由没有变化。