“路由”在这里的含义
该前缀被路由到您的实例,而不是与其他客户共享在同一个网段上。网络上没有其他设备应答这些地址,中间没有邻居发现代理,您可以绑定 /64 内的任何地址而无需事先询问。这也意味着路由器通告不是机制:地址和网关是静态的,等待 SLAAC 将一无所获。
面板为每个实例显示三个值——前缀、我们预先分配的地址以及网关。从那里获取这三个值。网关因站点而异。
Debian 13
镜像使用 systemd-networkd。编写您自己的单元,并保留自带的单元:
cat > /etc/systemd/network/20-wan-v6.network <<EOF
[Match]
Name=enp1s0
[Network]
Address=<ipv6>/64
Gateway=<gateway6>
IPv6AcceptRA=no
EOF
networkctl reload
networkctl status enp1s0当网关是链路本地地址时,必须知道它所在的接口。该小节已由 [Match] 限定在一个接口上,因此无需其他操作。
AlmaLinux 10
不再有 ifcfg- 文件。AlmaLinux 10 将连接保存为 NetworkManager 密钥文件,支持的方式是通过 nmcli 编辑它们:
nmcli -f NAME,DEVICE connection show
nmcli connection modify "System eth0" ipv6.method manual ipv6.addresses <ipv6>/64 ipv6.gateway <gateway6> ipv6.may-fail no
nmcli connection up "System eth0"ipv6.may-fail no 阻止引导在 v6 配置完成之前声明网络就绪。这对任何在启动时绑定 v6 地址并因地址不存在而放弃的服务都很重要。
检查
ip -6 addr show dev enp1s0
ip -6 route show
ping -6 -c 3 paragonvps.com地址存在,默认路由存在,但没有任何响应?防火墙是常见的罪魁祸首,而 ICMPv6 是常见原因。邻居发现和数据包过大两者都位于 ICMPv6 中;选择性过滤它们会破坏 IPv6,看起来就像是一天半应用程序的 bug。小数据包正常工作,大的则消失。nftables 文章有一条规则不会这样做。
使用前缀的其余部分
在同一接口上添加额外的地址:
ip -6 addr add <ipv6-2>/64 dev enp1s0 nodad通过另一行 Address= 或在 ipv6.addresses 中添加第二个条目,使其在重启后仍然有效。对于容器,从 /64 中划分一个切片,将其分配给桥接器,并在宿主机上路由它。/80 对于任何桥接器来说都绰绰有余。没有 NAT 步骤,也没有代理步骤,因为整个前缀已经指向您。
如果您需要多个路由子网,多个桥接器或嵌套虚拟机监控程序,请订购 /48 附加服务。它是委派的而非代理的,因此您这边的路由设计是真正属于您的。
两个会悄悄破坏它的事情
- 某些东西重新启用了 RA 接受。通常“修复”网络的工具会这样做,您最终会得到一条在两个之间摇摆的默认路由。固定
IPv6AcceptRA=no。 - 启用转发。设置
net.ipv6.conf.all.forwarding=1会使内核停止在每个接口上处理路由器通告。在这里无害,因为 RA 已经关闭,但在您责怪站点之前了解一下是值得的。
完整的按站点详细信息,包括哪些位置将 v6 传递到边缘,请参阅网络页面。