Initial commit

This commit is contained in:
2026-06-30 15:14:37 +08:00
commit 15dab96872
311 changed files with 95639 additions and 0 deletions
+394
View File
@@ -0,0 +1,394 @@
# DDNS 双场景区分说明
**问题时间**: 2026-03-26
**核心问题**: 用户混淆了"DDNS 服务配置"和"组网 DDNS 同步"两个不同的使用场景
---
## 🎯 两种 DDNS 使用场景
### **场景 1: DDNS 服务配置(服务市场)**
**入口**: 服务市场 → DNS 服务 → 添加 DDNS
**用途**:
- 配置通用的 DDNS 服务
- 支持 A/AAAA/TXT 多种记录类型
- 可用于各种用途:
- IP 动态解析(A/AAAA 记录)
- MeshSeed 同步(TXT 记录)
- 其他自定义用途
**表单内容**:
```
服务商:Cloudflare / 阿里云 / 腾讯云
记录类型:A / AAAA / TXT
域名:example.com
如果是 A/AAAA 记录:
├─ 主机记录:@ 或 www
├─ 目标 IP: 1.2.3.4
└─ 检测端口:80
如果是 TXT 记录:
├─ TXT 记录名称:_meshray._mesh
└─ TXT 记录值:v=spf1 ...
```
**特点**:
- ✅ 功能完整(支持所有记录类型)
- ✅ 灵活多用(不仅限于 MeshSeed)
- ✅ 可配置多个(不同域名、不同用途)
- ⚠️ 不直接绑定到具体网络
**示例配置**:
```
配置 1: Cloudflare DDNS (用于 MeshSeed 同步)
├─ 记录类型:TXT
├─ 域名:mesh.example.com
└─ TXT 记录名称:_meshray._mesh
配置 2: 阿里云 DDNS (用于 NAS 动态域名)
├─ 记录类型:A
├─ 域名:nas.example.com
├─ 主机记录:@
└─ 目标 IP: 自动检测
配置 3: 腾讯云 DDNS (用于监控设备)
├─ 记录类型:A
├─ 域名:camera.example.com
├─ 主机记录:device1
└─ 目标 IP: 自动检测
```
---
### **场景 2: 组网 DDNS 同步(组网创建时)**
**入口**: 组网管理 → 创建组网 → 启用 DDNS 同步
**用途**:
- 将特定组网的 MeshSeed 同步到 DNS
- 必须选择已配置的 DDNS 服务
- 只能使用 TXT 记录类型
- 自动绑定到具体网络
**表单内容**:
```
启用 DDNS 同步:✅ ON
选择 DDNS 服务:
└─ 下拉框显示已在"服务市场"配置的 DDNS 服务
└─ 示例:Cloudflare DDNS (mesh.example.com)
前缀模式:
├─ ✨ 自动生成(默认)
│ └─ 预览:_meshray.{短 ID}.mesh.example.com
└─ 🔧 自定义
└─ 输入:office
└─ 检测:是否被占用
```
**特点**:
- ✅ 简单直观(只需选择服务)
- ✅ 自动处理(自动生成 TXT 记录名)
- ✅ 绑定到具体网络
- ⚠️ 只能用 TXT 记录
- ⚠️ 依赖场景 1 的配置
**示例流程**:
```
1. 在"服务市场"配置 DDNS
└─ Cloudflare + mesh.example.com + TXT 记录
2. 创建组网"办公网络"
├─ 启用 DDNS 同步:✅ ON
├─ 选择 DDNS 服务:Cloudflare (mesh.example.com)
├─ 前缀模式:自动生成
└─ 结果:_meshray.EjRWeJyt5uU.mesh.example.com
3. 系统自动:
├─ 生成 Usage 记录
├─ 绑定 Network 和 DDNS 服务
└─ 准备同步 MeshSeed 到 DNS TXT
```
---
## 🔄 两种场景的关系
```
场景 1(服务市场)→ 配置 DDNS 服务
提供可用的 DDNS 服务列表
场景 2(组网创建)→ 选择 DDNS 服务并绑定到网络
创建 Usage 和绑定关系
后续:DDNSService 自动同步 MeshSeed 到 DNS
```
### **类比理解**
```
场景 1 就像"购买云服务"
└─ 你购买了 AWS S3 存储桶
└─ 配置好 AccessKey、Bucket 名称等
场景 2 就像"应用使用云存储"
└─ 某个应用要备份数据到 S3
└─ 选择已配置的 S3 Bucket
└─ 开始备份数据
```
---
## 📋 用户常见问题解答
### **Q1: 为什么服务市场的 DDNS 表单有 A/AAAA/TXT 选项?**
**A**: 因为这是**通用 DDNS 服务配置**,不仅用于 MeshSeed 同步,还可以:
- 动态解析家庭宽带 IPA 记录)
- 为 NAS 配置动态域名(A 记录)
- 为监控设备配置动态域名(A 记录)
- MeshSeed 同步(TXT 记录)
- SPF/DKIM 邮件验证(TXT 记录)
- 其他自定义用途
**示例**:
```
用户在服务市场配置了 3 个 DDNS:
├─ DDNS #1: Cloudflare + mesh.example.com (TXT) ← 用于 MeshSeed 同步
├─ DDNS #2: 阿里云 + nas.example.com (A) ← 用于 NAS 动态域名
└─ DDNS #3: 腾讯云 + camera.example.com (A) ← 用于监控设备
然后在不同场景选择使用:
├─ 创建组网 → 选择 DDNS #1 同步 MeshSeed
├─ 配置 NAS → 选择 DDNS #2 同步 IP
└─ 配置监控 → 选择 DDNS #3 同步 IP
```
---
### **Q2: 为什么组网创建时只能选择 DDNS 服务,不能新建?**
**A**: 因为:
1. **职责分离**: 服务配置和服务使用应该分开
2. **复用性**: 一个 DDNS 服务可以被多个组网使用
3. **安全性**: 避免在组网创建时暴露复杂的 DDNS 配置
4. **简洁性**: 组网创建流程已经复杂,不应再增加负担
**好处**:
```
✅ 一次配置,多次使用
✅ 集中管理所有 DDNS 服务
✅ 组网创建时只需简单选择
✅ 便于权限控制(配置 vs 使用)
```
---
### **Q3: 如果我只想用 DDNS 同步 MeshSeed,该怎么配置?**
**推荐步骤**:
#### **步骤 1: 配置 DDNS 服务**
```
访问:服务市场 → DNS 服务 → 添加 DDNS
填写:
├─ 服务类型:DDNS
├─ 服务商:Cloudflare
├─ 记录类型:TXT
├─ 域名:mesh.example.com
├─ TXT 记录名称:_meshray._mesh (固定前缀)
└─ API Token: cf_xxxxx
保存后,这个 DDNS 服务就可用了
```
#### **步骤 2: 创建组网并启用同步**
```
访问:组网管理 → 创建组网
基础信息:
├─ 组网名称:办公网络
├─ 子网:10.0.0.0/24
├─ 启用 DDNS 同步:✅ ON
├─ 选择 DDNS 服务:Cloudflare (mesh.example.com)
└─ 前缀模式:自动生成(默认)
提交后:
├─ 系统自动创建 Usage 记录
├─ 绑定 Network 和 DDNS 服务
└─ 准备同步 MeshSeed 到 _meshray.{短 ID}.mesh.example.com
```
---
### **Q4: 同一个 DDNS 服务可以给多个组网使用吗?**
**可以!** 这正是设计的优势:
```
DDNS 服务:Cloudflare + mesh.example.com
├─ 组网 A(办公网络)→ _meshray.ID_A.mesh.example.com
├─ 组网 B(测试环境)→ _meshray.ID_B.mesh.example.com
└─ 组网 C(生产环境)→ _meshray.ID_C.mesh.example.com
每个组网自动生成不同的 TXT 记录名,互不冲突
```
**原理**:
```
虽然使用同一个 DDNS 服务(同一个域名、同一个 API Token)
但每个组网会生成不同的 TXT 记录名:
├─ _meshray.{NetworkID_A}.mesh.example.com
├─ _meshray.{NetworkID_B}.mesh.example.com
└─ _meshray.{NetworkID_C}.mesh.example.com
DNS 提供商(如 Cloudflare)会把这些当作不同的 DNS 记录处理
```
---
### **Q5: 如果我不想用服务市场,只想快速配置 DDNS 同步怎么办?**
**快速入门流程**:
```
方案 1(推荐): 先配置后使用
├─ 步骤 1: 花 2 分钟在服务市场配置 DDNS
└─ 步骤 2: 创建组网时选择已配置的服务
方案 2(未来优化): 一键配置
└─ 在组网创建页面点击"暂无 DDNS 服务?立即配置"
→ 跳转到服务市场,预填基本信息
→ 配置完成后自动返回继续创建组网
```
---
## 🎯 架构设计优势
### **配置与使用解耦** 🏆
```
传统设计(耦合):
┌─────────────────────────────┐
│ 创建组网时配置 DDNS │
│ ├─ 选择服务商 │
│ ├─ 填写 Token │
│ ├─ 填写域名 │
│ └─ 立即使用 │
└─────────────────────────────┘
问题:
❌ 每次创建组网都要重复配置
❌ 无法复用已有配置
❌ 配置分散难以管理
❌ 组网创建流程复杂
新设计(解耦):
┌─────────────────────────────┐
│ 服务市场:配置 DDNS 服务 │
│ └─ 集中管理所有配置 │
└─────────────────────────────┘
┌─────────────────────────────┐
│ 组网创建:选择 DDNS 服务 │
│ └─ 简单选择,无需重复配置 │
└─────────────────────────────┘
优势:
✅ 一次配置,多次使用
✅ 集中管理,清晰明了
✅ 组网创建流程简化
✅ 便于扩展(未来可增加更多用途)
```
---
### **灵活性和扩展性** 🚀
```
当前用途:
└─ MeshSeed 同步(TXT 记录)
未来可扩展:
├─ IP 动态解析(A/AAAA 记录)
├─ 设备注册(TXT 记录)
├─ 配置同步(TXT 记录)
├─ 日志投递(TXT 记录)
└─ 其他自定义用途
```
**示例场景**:
```
公司有多个业务需要 DDNS:
├─ 组网 A → 同步 MeshSeed 到 DNS TXT
├─ NAS → 同步公网 IP 到 DNS A 记录
├─ 监控 → 同步公网 IP 到 DNS A 记录
└─ 邮件服务器 → 同步 SPF 记录到 DNS TXT
全部可以在服务市场统一配置和管理
```
---
## 📊 对比表格
| 特性 | 服务市场-DDNS 配置 | 组网创建-DDNS 同步 |
|------|------------------|------------------|
| **入口** | 服务市场 → DNS 服务 | 组网管理 → 创建组网 |
| **用途** | 配置通用 DDNS 服务 | 绑定组网到 DDNS 服务 |
| **记录类型** | A/AAAA/TXT 全选 | 仅 TXT |
| **配置复杂度** | 高(填写所有参数) | 低(只需选择) |
| **复用性** | 可被多个组网复用 | 一次性绑定 |
| **管理方式** | 集中管理 | 分散在各组网 |
| **典型用户** | 管理员 | 普通用户 |
---
## ✅ 最佳实践建议
### **对于管理员**
1. **统一配置**: 由管理员在服务市场统一配置 DDNS 服务
2. **命名规范**: 使用清晰的命名(如"公司主域名-MeshSeed 同步"
3. **分类管理**: 不同用途使用不同的 DDNS 配置(MeshSeed、NAS、监控等)
### **对于普通用户**
1. **直接使用**: 创建组网时直接选择已配置的 DDNS 服务
2. **推荐模式**: 使用"自动生成"前缀模式,无需思考
3. **隐私保护**: TXT 记录不包含网络名称,安全放心
---
## 🎉 总结
### **两种场景,各司其职**
```
服务市场-DDNS 配置:
└─ 定位:基础设施配置
└─ 用户:管理员
└─ 频率:低频(配置一次,长期使用)
└─ 功能:完整、强大、灵活
组网创建-DDNS 同步:
└─ 定位:应用层使用
└─ 用户:所有人
└─ 频率:中频(每次创建组网时使用)
└─ 功能:简单、直观、易用
```
### **设计原则**
1.**配置与使用分离** - 专业的人做专业的事
2.**一次配置,多次使用** - 避免重复劳动
3.**灵活性 + 易用性兼顾** - 管理员灵活配置,用户简单使用
4.**面向未来扩展** - 支持更多 DDNS 应用场景
理解了这两种场景的区别和联系,就能正确使用 DDNS 功能了!🎯