跳转至

v1.1.5-alpha1 升级说明

历史版本说明:本页保留版本迁移背景。当前 dev 的运行模型已经收敛为中心到中心互联;旧无数据库边缘运行时只在 edge 分支维护。

1. 当前版本的端口和互联变化

dev 主站只需要开放:

  • Web/API HTTP 端口。生产环境建议由反向代理提供 HTTPS。
  • System.Port 主 UDP 端口。普通设备和中心间 CPUD 音频共用该端口。

中心互联不再使用独立的 TLS/TCP 控制端口,也不在中心配置中保留旧节点控制面字段。准入通过后台生成邀请 Token,再由对端使用 Token、主站地址、本地群组和收发控制调用 HTTP 准入接口。

2. 升级前检查

  • 备份 MySQL、对象存储、当前二进制和 config.yaml。
  • 记录当前 Web/API 和 UDP 端口、反向代理和防火墙规则。
  • 校验发布包 SHA-256,并执行 ./draarl -v 确认版本。
  • 如果站点此前使用过旧边缘部署,单独保留 edge 分支的边缘配置和 identity 文件;这些文件不应复制到 dev 的中心配置。

3. 数据库迁移

已有数据库升级前先执行:

./draarl -c config.yaml -auto-migrate

升级后检查管理员页面中的中心互联和接入点配置。保存接入点配置时,程序会清理已经废弃的边缘健康有效期配置项。

4. 启用中心互联

在 config.yaml 中只保留中心互联设置:

Interconnect:
  Enabled: true
  CenterID: "center-a"
  RegistrationTokenTTL: 86400
  CredentialRotationGraceSeconds: 600
  SessionRecoveryWindowSeconds: 180

重启主站后,在“群组管理 → 中心互联”完成:

  1. A 选择本地群组和收发权限,生成一次性邀请 Token。
  2. B 填入 Token、A 的 HTTP/HTTPS 地址、B 的本地群组和 B 侧收发权限。
  3. B 提交后等待 UDP 会话建立,在两端检查在线状态和收发包统计。
  4. 使用本地群组中的 Server-* 虚拟设备确认远端音频来源。

邀请按 Interconnect.RegistrationTokenTTL 自动过期。HTTP 准入只交换 HMAC 证明、会话 ID、 策略摘要和 UDP 地址,不返回会话密钥;两端根据 Token verifier 和 session ID 独立派生 UDP 会话密钥,生产环境仍应通过 HTTPS 保护邀请提交和准入元数据。

两端用户、设备、群组和权限始终独立。任一端关闭互联或对应收发开关,该方向的音频立即停止。

5. 回滚

  1. 在两端停用中心互联或删除互联对象。
  2. 将 Interconnect.Enabled 设为 false 并重启主站。
  3. 确认普通设备仍能通过 Web/API 和主 UDP 端口接入。
  4. 只有需要维护旧边缘部署时,才切换到 edge 分支并按该分支的独立文档操作。

6. 验证清单

  • Web/API 端口可以访问后台和准入接口,生产环境的反向代理正确提供 HTTPS。
  • 主 UDP 端口可以同时承载普通设备和中心互联音频。
  • 邀请 Token 只显示一次,重复导入到不同中心或不同群组会被拒绝。
  • 未通过 AES-GCM 验证的 UDP Hello 不能改变会话地址绑定。
  • 断线重连后必须重新认证,旧地址和旧数据包不会继续生效。
  • 中心互联页面的收包、发包、丢弃和最后错误与实际运行一致。

完整的接口和数据面说明见多中心群组互联设计。