Skip to the content.

📘 系统设置功能下的网络模块技术设计说明

(嵌入式设备 · 局域网环境 · Linux 内核 · Windows 行为兼容版)


1. 文档目的

本技术设计说明用于指导嵌入式边缘计算设备中网络配置与静态路由模块的系统设计、架构实现、功能边界与验证策略,重点解决以下问题:


2. 设计目标

目标项 技术要求
行为一致性 网络行为与 Windows 网络管理模型一致
跨平台兼容 支持多 Linux 网络管理机制
稳定可靠 网络变更不影响系统长期运行
可回滚 错误配置可自动恢复
可持久化 重启后配置自动恢复
易运维 运维人员无需掌握 Linux 命令

3. 设计范围

本模块包含以下子系统:

  1. 网络接口管理模块
  2. IP 地址配置模块
  3. 网关与默认路由管理模块
  4. 静态路由管理模块
  5. 配置持久化与恢复模块
  6. 网络变更事务与回滚模块
  7. 系统服务协同模块(NTP、mDNS、HA、时间同步等接口协作)

4. 架构设计

4.1 系统分层架构

┌────────────────────────────┐
│        前端管理界面         │
└──────────────┬─────────────┘
               │ REST / RPC
┌──────────────▼─────────────┐
│      网络管理服务层          │
│  - 接口管理服务             │
│  - IP配置服务               │
│  - 网关管理服务             │
│  - 路由管理服务             │
│  - 事务与回滚服务           │
│  - 持久化服务               │
└──────────────┬─────────────┘
               │ 适配器层
┌──────────────▼─────────────┐
│   网络系统适配层(Adapter) │
│  - systemd-networkd        │
│  - NetworkManager          │
│  - netplan                 │
│  - ifupdown                │
│  - 原生 netlink            │
└──────────────┬─────────────┘
               │
┌──────────────▼─────────────┐
│         Linux 内核网络栈     │
└────────────────────────────┘

4.2 组件职责划分

组件 职责
网络管理服务 接收前端配置请求,统一调度网络变更
接口管理服务 管理网卡状态、接口 Metric、多 IP
路由管理服务 管理静态路由、默认路由、Metric
事务管理服务 保证配置变更原子性与可回滚
持久化服务 将配置写入 bbolt 并生成系统配置文件
适配器层 屏蔽不同 Linux 网络管理机制差异

5. 数据模型设计

5.1 网络接口模型(NetworkInterface)

字段 类型 说明
Name string 接口名(eth0 / wlan0)
MAC string MAC 地址
Status enum UP / DOWN
InterfaceMetric int 接口优先级(Windows Interface Metric 语义)
IPConfigs []IPConfig IP 配置列表
Gateways []GatewayConfig 网关配置列表
Enabled bool 接口启用状态

5.2 IP 配置模型(IPConfig)

字段 类型 说明
Address string IP 地址
Prefix int 前缀长度
Version enum IPv4 / IPv6
Source enum DHCP / Static
Enabled bool 是否启用

5.3 网关模型(GatewayConfig)

字段 类型 说明
Gateway string 网关地址
Metric int 网关优先级
Interface string 所属接口
Scope enum Default / Specific
Enabled bool 是否启用

5.4 静态路由模型(StaticRoute)

字段 类型 说明
Destination string 目标网络
Prefix int 前缀长度
Gateway string 网关地址
Interface string 出接口
Metric int 路由优先级
Enabled bool 是否启用

5.5 配置事务模型(NetworkTransaction)

字段 类型 说明
ID string 事务ID
Changes []ChangeSet 变更集合
Status enum Pending / Applied / RolledBack
Timestamp time 创建时间
RollbackPoint string 回滚点

6. 行为逻辑设计(Windows 语义对齐)

6.1 默认路由选择逻辑

优先级计算顺序:

  1. 路由最长前缀匹配
  2. Route Metric 最小
  3. Interface Metric 最小
  4. Gateway Metric 最小

行为与 Windows 路由选择逻辑一致。


6.2 多 IP 行为


6.3 多网关行为


7. 网络配置执行流程

7.1 标准变更流程

  1. 前端提交网络配置变更请求;
  2. 后端生成 NetworkTransaction;
  3. 校验配置合法性与冲突;
  4. 持久化配置至 bbolt;
  5. 调用适配器层生成系统配置文件;
  6. 热更新网络配置(不中断系统服务);
  7. 验证网络连通性;
  8. 标记事务完成或触发回滚。

7.2 回滚机制

触发条件:

回滚策略:


8. 适配器层设计(多 Linux 网络机制兼容)

8.1 支持机制

网络管理机制 支持方式
systemd-networkd 原生配置生成
NetworkManager nmcli 接口适配
netplan YAML 文件生成
ifupdown /etc/network/interfaces 生成
BusyBox / 嵌入式 netlink + iproute2

8.2 适配器接口规范

所有适配器需实现统一接口:


9. 持久化与恢复设计

9.1 存储方案


9.2 启动恢复流程

  1. 系统启动;
  2. 从 bbolt 加载最新有效配置;
  3. 调用适配器层生成系统配置;
  4. 应用网络配置;
  5. 验证网络状态;
  6. 标记系统网络为“已就绪”。

10. 安全设计

风险点 对策
错误配置导致失联 事务机制 + 自动回滚
非授权修改 配置接口鉴权
路由冲突 冲突检测与阻断
DHCP 伪造 可选 DHCP 白名单

11. 性能与资源约束设计

项目 设计约束
内存占用 网络服务常驻 ≤ 20MB
CPU 占用 配置变更时峰值 ≤ 10%
配置写入 bbolt 写入 ≤ 5ms
热更新 网络变更 ≤ 2s 内完成

12. 验证与验收标准(技术层面)

12.1 功能验证项

模块 验证点
多 IP 多 IP 并存且可通信
多网关 Metric 控制正确
默认路由 路由选择符合 Windows 行为
静态路由 路由生效且持久化
回滚机制 错误配置自动回滚
重启恢复 网络配置重启保持

12.2 可靠性验证


13. 与其他系统模块协作关系

模块 协作方式
时间同步模块 依赖网络稳定性
mDNS 模块 依赖接口 IP 正确配置
双主机备份 依赖多接口与路由优先级
南向采集模块 依赖网络连通性
北向上报模块 依赖默认路由选择