按你确认的设计(docs/ipv6-design.md)做完 V6.1 到 V6.4。本机有了 IPv6:自动拿地址(SLAAC)或手动配置,也能当 Hurricane Electric 6in4 隧道的客户端;管理服务、ping、curl 走 IPv6;进程能用 AF_INET6 套接字;能转发 IPv6、在局域网发路由器通告;防火墙、智能流控、CAKE 都认 IPv6。容器各有一个 ULA 地址,经 NAT66 出网(按你的决定:有 HE 也一样),也能用 IPv6 端口映射。IPv4 的转发路径没动。
net6_key 第一次开机时生成,存在启动状态里)、DNS 服务器(RDNSS)、收发分片、路径 MTU(“包太大”后 TCP 自动缩小分段)。TCP、UDP、套接字里的地址统一成 128 位(IPv4 映射成 ::ffff:a.b.c.d)。ip6 看运行中的 IPv6;ip6 [nicN] off|auto|static、add|del 地址/n、gw 地址|none;默认主网卡 auto,其它网卡关。和 IPv4 一样走候选 / apply / 确认 / 超时回滚,save 存进启动状态(net_ip6、net<n>_ip6)。ip6 tunnel add <服务器 IPv4> <客户端 IPv6/64> <服务器 IPv6> [local 本机 IPv4] [mtu n],填 HE 隧道页上的三项;在云的 1:1 NAT 后面时 local 用内网地址。隧道算一条默认路由(网卡自己没有 IPv6 时用它);存成 net_tunnels。从隧道出来的包放回包路径(新的 Link::inject),所以防火墙、NAT66、路由器都能看到。ping 认 IPv6 地址,curl -6 查 AAAA,也支持 http://[v6地址]:端口/。IPV6_V6ONLY、IPV6_ADDRFORM;地址族不对时的错误码和 Linux 一致。curl -6 能用;apt 在只有站点本地 IPv6 时照样优先 IPv4(glibc 的地址排序),不受影响。LTP 结果和之前一样(connect02 因为现在能走更远而用到了 IPV6_ADDRFORM,已补上)。ip6 nicN ra on 在这个局域网上把本机公告成路由器,配的 /64 前缀给设备做 SLAAC,回应路由器请求。net6_key 算出的 40 位,重启后不变);容器地址的最后一段和它的 IPv4 地址相同,网关是 ::1。地址由内核按 ctnet 的 IPv4 分配推出,ctnet 模块没改。docker inspect 显示 GlobalIPv6Address。nat-core::nat66):换成本机朝目的地方向的地址,端口尽量不变,只放行容器发过包的远端;ICMPv6 错误连里面引用的包一起换回;替换 nat 时会话交接。-p 80:80 同时发布到本机所有 IPv4 和 IPv6 地址(和 Docker 默认一样);-p [v6地址]:80:80 只发布这一个。net6_key、内核日志直接打印协议栈的行、IPv6 转发的几个转接、Link::inject、容器的 IPv6 地址和防伪造检查、实例信息的 addr6。其余 20 KiB 是启动镜像里的启动用协议栈:它不带 IPv6 功能(编译开关 ipv6),但地址改成 128 位后变大了。1 MiB 镜像的槽位上限约 440 KiB,还剩约 10 KiB;再长就要给启动栈减肥,或者默认镜像改大(已装的机器能就地扩大 EFI 分区)。Ip6、If6Conf、TunConf,NetConf 加 tunnels、key6,IfConf 加 v6,ConnInfo 加 local6,PeerIf 加 IPv6 地址,InstanceInfo 加 addr6;NetStack 加 ip6_status、route6_from、neighbor6、send_packet6、is_ours6、src6_for、addrs6;Packet 加对应的 IPv6 调用;Link::inject;Admin::ip6_status;协议栈状态格式 3;nat 交接多一部分(旧版本照读)。1. 是否发布:内核改了,部署时重启一次,所有模块、netstack、linux、docker 程序重装。部署后两台机器默认在主网卡上 SLAAC;没有路由器通告的话只有链路本地地址,没有别的变化。
2. 生产机器的 HE 隧道:要在 RustROS 里开起来,请给我每台机器的 HE 隧道信息(Server IPv4、Client IPv6、Server IPv6,有的话还有 Routed /64),或者你自己在控制台用 ip6 tunnel add ... 配好再 save。阿里云在 1:1 NAT 后面:HE 上登记公网 IPv4,local 用内网地址。