知识库

配置路由的 IPv6 /64

在 Debian 13 和 AlmaLinux 10 下将包含的 /64 放到接口上,检查路由,并将前缀的其余部分用于容器。

这里的“路由”是什么意思

前缀被路由到您的实例,而不是与其他客户共享在某个网段上。网络上没有其他设备响应这些地址,中间也没有邻居发现代理,您可以在 /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 keyfile,支持编辑它们的方式是 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 中;有选择地过滤它们会以看起来完全像应用程序 bug 的方式破坏 IPv6,持续一天半。小数据包有效,大数据包消失。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 带到边缘,请参见网络页面

随时恭候

选择城市,选择大小,用加密货币支付。

无需填写关于您的身份信息的表格,无需等待人工审批,无需电话验证。账单结清后,凭证将发送到您的邮箱。