Skip to content

文档中心

dn42-control-backend 的全部文档都在这里,按读者要做什么分四层,遵循 Diátaxis 框架。

目录回答的问题形态
教程tutorials/第一次接触,怎么从零跑起来?手把手、可照做
操作手册guides/要完成某个具体任务,步骤是什么?任务导向、面向目标
参考reference/这个接口、配置、字段、表到底是什么?查得到、求精确
内部原理internals/系统为什么这样设计、怎么运转?解释、配图

按场景选读

场景从这里开始
完全没接触过本项目系统概览快速上手
要把系统部署到生产部署
要接入一个新节点节点接入
要建立 eBGP / iBGP 互联建立互联
要开放或调整自助对等自动对等运维
要配 DNS 与任播DNS 与任播
要 renumber 地址、看寻址分配寻址与 renumber
要升级 agent、控制面或跑数据库迁移升级与迁移
节点不健康、iBGP 缺路由、要拨测健康与状态
对端或前缀在抖,要看榜、定位、处置抖动处置
想理解 flap 检测怎么算flap 检测
要配管理员账号与登录账号与登录
registry 名称富化缺数据、要手动同步registry 副本
要调用或对接 APIAPI 参考
要查某个配置项或环境变量配置参考
要查 DesiredState 字段DesiredState 参考
要查数据库表数据层参考
要查 Redis / Valkey 里存了什么KV 与缓存键空间
要知道哪里慢、怎么压测性能画像
要知道库有多大、写热点在哪数据层性能与容量
想理解系统怎么运转架构
要改代码、写测试贡献指南

全部文档

概览

文档内容
系统概览系统是什么、解决什么问题、组成部分、核心概念词汇表
隐私政策身份服务隐私政策(面向终端用户)
贡献指南开发环境、测试分层、golden 回归、文档维护约定、PR 流程

教程

文档内容
快速上手本地从零跑通:装依赖 → 起控制面 → 起 Node Agent → 接上 Web 界面

操作手册

部署

文档内容
部署部署形态总览与拓扑
控制面部署控制面整栈:compose、配置载体、nginx 前置、生产必做项
节点 Agent 部署节点 agent:systemd 单元、安装、自更新器、加固

升级与迁移

文档内容
升级与迁移一次典型全量升级的顺序
Agent 滚动升级wheel 构建、控制面驱动的自更新、手工滚动、回退与验收
控制面升级控制面整栈重建与验收
数据库迁移Alembic 操作、create_all 库接入、已知的坑
锁步契约协议 schema 与连通性契约的锁步规则、发布前检查清单

日常运维

文档内容
健康与状态健康五态、路由观测、指标、抖动观测入口
主动拨测主动拨测与 agent 日志查看
故障排查现象对照表、几类需展开的故障、路由调优三件套

网络与业务

文档内容
节点接入节点接入全流程:enrollment token → register → 审批闸门 → provision → token 生命周期
建立互联建立 eBGP / iBGP 互联、internal_topology 不变量、route collector
自动对等运维自助对等的运维侧:供给策略、容量、配额、处置、排查
DNS 与任播DNS 组、zone、记录、bind_addresses 任播、rDNS、CoreDNS
寻址与 renumberfleet 寻址分配与 renumber 操作的同步点
抖动处置抖动一线操作:榜单与时序、根因区解读、处置与撤销、常见判例

身份与外部数据

文档内容
账号与登录管理端鉴权:静态 token 与账号会话双凭据、Cap 人机验证、限速
ASN 归属验证ASN 归属验证:PGP / SSH 签名与邮箱验证的操作步骤
密钥托管与恢复WireGuard 私钥托管模型与离线恢复流程
registry 副本DN42 registry 副本:同步机制、token 配置、手动触发、排错

参考

API

文档内容
API 参考服务与基址、鉴权模型、通用约定
管理面 API管理面:节点、Peering、接口、BGP、DNS、token、审批、provision、健康、路由、审计、发布、处置、fleet 收权
控制台 BFF API控制台 BFF:聚合视图、趋势、榜单、registry 代理、拨测与日志
自动对等 API用户面:门户登录闭环、对等请求、只读网络态势
节点面 API节点面:注册、拉取、上报、自更新分发、三条 WebSocket 通道
公开 API公开只读端点与健康探针
认证服务 API认证服务:归属验证、Passkey、OAuth 2.0 / OIDC Provider
Registry 服务 APIRegistry 副本服务全部端点

配置

文档内容
配置参考分层构造纪律与解析助手
Control Server 配置Control Server 全部配置项
Auth Server 配置Auth Server 全部配置项
Registry Server 配置Registry Server 全部配置项
Node Agent 配置Node Agent 三来源优先级、全部配置项、状态目录布局

数据库

文档内容
数据层文档分三段:model/(为什么这样建模)· tables/(有哪些表,按子系统分册)· mechanics/(怎么运转)。
文档内容
数据层参考入口:三段导航 + 41 张表的全表速查(表 → 层 → 保留 → 实测 → 册)
分层与存储角色五层数据模型、三个存储实例的判据、db 分配、准入决策、备份边界
聚合根与关系三个聚合根、全部外键关系树、ER 图
时序建模通则桶口径、sum+count 形态、差分基准、保留与分区门控
全局约定命名、引擎与连接池、类型纪律、spec JSON + 索引列双层
节点与网络节点、密钥、端口池、接入凭据、世代、Peering 聚合
共享 DNSDNS 三级模型与组装规则
账号、门户与自动对等两个信任域、审计、自动对等策略与请求
健康与自观测对账健康、上报历史、agent 自观测存档
路由观测路由全表、逐路由明细、差分基准、churn 时间线
流量热窗口 + 5min 存档 + 差分 prev,跨 L2/L3/L5
Flap 检测两级打分热态、转移历史、告警事件、速率与活跃度存档
写入路径materialize 与上报摄入两条路径、差分写、预提取、写入方一览
KV 与缓存键索引Valkey 与 Redis 的每一个键:TTL、写入方、丢失后果、降级行为
性能与容量实测规模、写热点、索引行为、vacuum、扩展阈值
迁移与演进create_all 与 Alembic、生产实况、已知偏差、分区化、迁移链

DesiredState

文档内容
DesiredState 参考StrictModel 不变量、顶层字段、跨字段校验
节点与接口 specNodeSpecInterfaceSpecWireGuardPeerSpec
Runtime specruntime 与其全部嵌套 spec
BIRD 与路由 specBIRD 配置、BGP 会话、内部拓扑、large community
DNS specDNS 相关 spec
Normalize 钩子四个 normalize 钩子、模板集、枚举、完整示例

其它参考

文档内容
渲染产物agent 渲染出的每个文件:产出什么、被谁消费、由哪部分 schema 驱动
地址模型地址概念模型:所有地址按源 / 派生 / 副本分类,副本清单速查
CLI 与脚本Node Agent CLI 全参数、运维工具、开发脚本、离线恢复工具

内部原理

文档内容
架构组件、边界、四条数据流、最小扰动设计、并发一致性、变更闭环
Control Server 内部控制面装配:materialize、健康推导、token 与注册、门铃、拨测过境
Node Agent 内部运行模式、守护双任务与门铃、planner 与收敛、采集上报、自愈与旁路任务
认证服务内部认证服务:归属验证挑战、会话 JWT 与 JWKS、OAuth / OIDC Provider、服务边界
registry-server 内部Registry 副本:唯一同步与落库点、查询 API、消费方与失败语义
自动对等内部自动对等:OIDC 依赖方、门户会话与前后端交接、与管理面分离的信任域
fleet 供给收权节点密钥单一事实源、端口池入库与统一分配
内部互联内部互联合成机制、internal_topology 一致性不变量、加节点 checklist
路由策略BIRD 过滤器语义:导入 / 导出的判定顺序、cold potato、社区清洗、iBGP 与 OSPF 闸门
flap 检测抖动检测总览:定义、三条设计原则、端点一览、参数速查
观测与数据源观测与数据源、存储分层
flap 打分算法衰减打分、计分规则、归因、告警边沿、速率时序
根因定位根因定位算法与准确度验证
flap 处置处置动作与事务纪律
共享包共享包分层、依赖方向、各包职责、锁步约束
安全模型鉴权边界、token 哈希模型、审批闸门、禁止的控制模型、信任域隔离

文档维护约定

  1. 单一事实源——每个主题只在一处详细展开,其它地方用链接:
  2. 分层放置——手把手入门放 tutorials/;任务步骤放 guides/;查得到的事实放 reference/;为什么与怎么运转放 internals/
  3. 与代码同步——改了接口、配置、表结构、运行模式或 schema,必须同步对应参考文档;schema 与模板变化要刷新 golden。
  4. 写当前状态,不写演进过程——文档描述系统现在是什么样,不叙述它曾经是什么样。历史只在解释「为什么是现在这样」时出现,且要说清约束而非编年。
  5. 示例可执行——命令应当能在仓库根目录直接复制运行,且已脱敏。
  6. 中立表述——不用第一与第二人称,不按开发批次组织内容。
  7. 链接用相对路径,新增文档记得加进本页导航表。

详细约定见 贡献指南