docs: finalize SE5420 deployment guide per review

- Reorder §3.3: create VLAN66/55 before SVI; keep VLAN1 until management path verified
- Fix §3.4 verification port wording (enabled VLAN66 access port, e.g. port 6)
- Harden VLAN10 phase: PVE boundary, gfw NAT/IPv6 policy, rollback order, verification chain
This commit is contained in:
windyboy
2026-08-10 11:00:28 +08:00
parent 35577d0c5c
commit ffb37a916e
4 changed files with 174 additions and 138 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
# LAN 核心交换机升级计划(保留 ER-X) # LAN 核心交换机升级计划(保留 ER-X)
**状态:** SE5420 **已采购**2026-08-09)。**实施与验证以 [lan-se5420-deployment-guide.md](lan-se5420-deployment-guide.md) 为准** **状态:** SE5420 **已采购**2026-08-09)。**实施与验证以 [lan-se5420-deployment-guide.md](lan-se5420-deployment-guide.md) 为准**
本文保留为设计/阶段划分参考 本文为历史规划参考,**不得作为现场执行步骤**;所有实际操作均以部署指南为准
**锁定硬件:** TP-Link **`TL-SE5420`**16 × 2.5GbE RJ45 + 4 × 10GbE SFP+)。 **锁定硬件:** TP-Link **`TL-SE5420`**16 × 2.5GbE RJ45 + 4 × 10GbE SFP+)。
**目标:** SE5420 承接全部 LAN 物理接入与二层转发;ER-X 继续承担公网、NAT、防火墙、 **目标:** SE5420 承接全部 LAN 物理接入与二层转发;ER-X 继续承担公网、NAT、防火墙、
LAN66/LAN55 网关与 DHCP。 LAN66/LAN55 网关与 DHCP。
+5 -11
View File
@@ -3,8 +3,8 @@
**状态:** SE5420 **已采购**2026-08-09)。**实施与验证以 [lan-se5420-deployment-guide.md](lan-se5420-deployment-guide.md) 为准** **状态:** SE5420 **已采购**2026-08-09)。**实施与验证以 [lan-se5420-deployment-guide.md](lan-se5420-deployment-guide.md) 为准**
本文保留为拓扑/流量路径/职责边界的设计说明。 本文保留为拓扑/流量路径/职责边界的设计说明。
**锁定硬件:** EdgeRouter X(保留)+ TP-Link `TL-SE5420`(新建核心)。 **锁定硬件:** EdgeRouter X(保留)+ TP-Link `TL-SE5420`(新建核心)。
**本文目的:** 说明升级后物理拓扑、逻辑网络、流量路径与职责边界;实施步骤见 **本文目的:** 说明升级后物理拓扑、逻辑网络、流量路径与职责边界;唯一实施步骤见
[lan-core-switch-upgrade-plan.md](lan-core-switch-upgrade-plan.md)。 [lan-se5420-deployment-guide.md](lan-se5420-deployment-guide.md)。
--- ---
@@ -79,7 +79,7 @@ untagged 帧进 `eth0`VLAN55 的 untagged 帧进 `switch0` 的某个成员口
|---|---|---| |---|---|---|
| PVE 上的 ImmortalWrt VM | 仍挂在 **untagged LAN66** | 可增 VLAN10 接口 | | PVE 上的 ImmortalWrt VM | 仍挂在 **untagged LAN66** | 可增 VLAN10 接口 |
| OpenClash 旁路/透明代理 | 路径不变:客户端默认仍走 `.254` | 升级专用 SSID → 网关 `.1` | | OpenClash 旁路/透明代理 | 路径不变:客户端默认仍走 `.254` | 升级专用 SSID → 网关 `.1` |
| 不能单独「做出」VLAN10 | 需 PVE vSwitch + 核心 trunk + U6 trunk | 见第 7 节 | | 不能单独「做出」VLAN10 | 需 PVE vSwitch + 核心 trunk + U6 trunk | 见部署指南第二步 |
### 3.4 其它现网角色(地址与角色不变) ### 3.4 其它现网角色(地址与角色不变)
@@ -172,15 +172,9 @@ LAN55 ↔ LAN66 互通仍走 ER-X(现网 `LAN_IN`/`LAN_OUT` 未挂到接口时
客人网与升级 SSID **分工到两台 AP**,避免一上来就做「两台 AP 同一客人 VLAN + ER-X trunk」的改造。 客人网与升级 SSID **分工到两台 AP**,避免一上来就做「两台 AP 同一客人 VLAN + ER-X trunk」的改造。
### 5.3 核心上为何仍预配 VLAN10 ### 5.3 VLAN10 的时序与边界
阶段 1 可在 SE5420 上建好 VLAN10 与 trunk 模板,但: 第一阶段**不**在 SE5420 创建 VLAN10,也**不**把 PVE/U6 改为 trunk。VLAN10 必须在 LAN55/LAN66 稳定后,以独立维护窗完成 PVE VLAN-aware 隔离、SE5420 trunk、gfw IPv4 NAT/内网拒绝策略和 IPv6 策略;仅在这些验收通过后才启用专用 SSID。详见部署指南第二步。
- **不接生产终端**
- **不改 UniFi SSID**
- **不在 `gfw` 上启用与 ER-X 冲突的 DHCP**。
这样迁线项目与「专用升级 Wi-Fi」解耦:核心一次配好端口角色,业务另开窗口。
--- ---
+2 -2
View File
@@ -248,9 +248,9 @@
**结论:** 换 RB5009 后**物理上可行**,但 RB5009 只解决「交换机侧」路径;PVE 宿主机到 `gfw` 虚拟机这一段(此前判定为不可行的关键缺口)仍必须单独打通。 **结论:** 换 RB5009 后**物理上可行**,但 RB5009 只解决「交换机侧」路径;PVE 宿主机到 `gfw` 虚拟机这一段(此前判定为不可行的关键缺口)仍必须单独打通。
**为什么今天在 AP 上 VLAN10 会坏 66 网** **为什么当前不能在 AP 上启用 VLAN10**
U6 接的是 ER-X `eth0`untagged access,且 ER-X 交换机 `vlan-aware` 关闭)。给 SSID VLAN10 后,U6 把客户端帧打成 **802.1Q tag 10** 发往 ER-XER-X 端口是普通 access、不处理 tag,VLAN10 帧被当作无标记帧**漏进 66 广播域**;全网只有一个 DHCP(ER-X),VLAN10 客户端拿到 `192.168.66.x`,泄漏的广播/发现干扰 66 网。这是「无 802.1Q 传输路径」的必然结果,不是 AP 配置问题 U6 接的是 ER-X `eth0` 的普通 untagged LAN66 路径,尚无已验证的 VLAN10 端到端二层通道。给 SSID 选择 VLAN10 后,客户端不会获得可由 gfw 服务的预期 VLAN10 网络;帧究竟被丢弃、被设备错误处理,还是 SSID 实际没有打 tag,必须以 AP/交换机/gfw 抓包和配置核验判断。**不得**将“tagged 帧必然自动去标签并泄漏到 LAN66”作为实施前提
**RB5009 下实现需要 3 个前提:** **RB5009 下实现需要 3 个前提:**
+166 -124
View File
@@ -6,25 +6,24 @@
**硬件:** TP-Link **TL-SE5420**16× 2.5G RJ45 + 4× 10G SFP+,无 PoE),440×180×44 mm1U)。 **硬件:** TP-Link **TL-SE5420**16× 2.5G RJ45 + 4× 10G SFP+,无 PoE),440×180×44 mm1U)。
**架构:** ER-X **保留**为唯一网关(PPPoE/NAT/防火墙/DHCP/双网段三层);SE5420 纯 L2 核心; **架构:** ER-X **保留**为唯一网关(PPPoE/NAT/防火墙/DHCP/双网段三层);SE5420 纯 L2 核心;
`gfw` 旁路由(OpenClash);VLAN10 升级专用 SSID 走 gfw 网关。 `gfw` 旁路由(OpenClash);后续 VLAN10 升级专用 SSID走 gfw 网关。SE5420 的用户数据平面只做二层;唯一 L3 例外为 LAN66 管理 SVI 与交换机自身默认网关。
--- ---
## ⚠️ 两步实施总览(2026-08-09 确认) ## ⚠️ 两步实施总览(2026-08-09 确认)
**第一步(本次):只做 55/66 主网。** SE5420 初始化、ER-X 上联、PVE/AP/设备迁移、 **第一步(本次):只做 55/66 主网。** SE5420 初始化、ER-X 上联、PVE/AP/设备迁移、
验收稳定。**全程不建 VLAN10、不给口 2/3 加 tagged 10、不改 gfw、不改 UniFi `ubnt-upg`。** 验收稳定。**禁用不可用的** `ubnt-upg` SSID 外,不修改其 VLAN、网络或 AP 配置;全程不建 VLAN10、不给口 2/3 加 tagged 10、不改 gfw
**第二步(第一步稳定 ≥1 天后,独立窗口):整体做 VLAN10。** **第二步(第一步稳定 ≥1 天后,多个独立维护窗):整体做 VLAN10。**
SE5420 加 VLAN10 + 口 2/3 tagged 10 → gfw 补齐 → UniFi 改 Third-party Gateway → 启用 SSID → 验证。 SE5420 加 VLAN10 + 口 2/3 tagged 10 → gfw 补齐 → UniFi 改 Third-party Gateway → 启用 SSID → 验证。
> 分离原则:**第一步与第二步不共享任何配置动作**,第一步完成后网络与升级前 > 分离原则:第一步完成后网络与升级前语义一致(仅同 VLAN 交换变 2.5G)。唯一例外是先禁用不可用的 `ubnt-upg` SSID;第二步才完成 VLAN10 配置并重新启用该 SSID。VLAN10 的 PVE、交换机、gfw 与 UniFi 动作分属多个维护窗,回滚互不牵连。
> 语义一致(仅同 VLAN 交换变 2.5G);VLAN10 全部动作集中在第二步,回滚互不牵连。
| 步骤 | 范围 | Done 判定 | | 步骤 | 范围 | Done 判定 |
|---|---|---| |---|---|---|
| **第一步** | SE5420 台面配置(66/55) → ER-X 上联 → 迁移 → 稳定 | 第 7 节验收前 7 条全绿 | | **第一步** | SE5420 台面配置(66/55) → ER-X 上联 → 迁移 → 稳定 | 第 10 节第一阶段验收项全绿 |
| **第二步** | VLAN10SE5420 + gfw + UniFi + SSID | 第 7 节第 8 条 + 验证链全通 | | **第二步** | VLAN10SE5420 + gfw + UniFi + SSID | 第 10 节第二阶段验收项 + 验证链全通 |
--- ---
@@ -35,14 +34,14 @@ SE5420 加 VLAN10 + 口 2/3 tagged 10 → gfw 补齐 → UniFi 改 Third-party G
| 项 | 实测结果 | | 项 | 实测结果 |
|---|---| |---|---|
| PVE 物理网卡 | **双网卡**`enp1s0`→vmbr0(LAN66 .26)`enp2s0`→vmbr1(LAN55 .26) | | PVE 物理网卡 | **双网卡**`enp1s0`→vmbr0(LAN66 .26)`enp2s0`→vmbr1(LAN55 .26) |
| PVE bridge | `vmbr0` **非 vlan-awareflat bridge****天然透传 tagged 帧**给所有 VM(含 gfw eth0 | | PVE bridge | `vmbr0` **非 vlan-awareflat bridge**可在共享 bridge 上透传 tagged 帧给连接的 VM(含 gfw eth0;这不是严格隔离,其他 VM 理论上也可配置 VLAN10 接口 |
| PVE VM 清单 | 120 `pihole`=**dns/.36**AdGuard+Mihomovmbr0)、140 `gfw`(vmbr0+vmbr1)、160 `ubnt`(vmbr0)、180 `haos`(vmbr1/LAN55)、100 `gateway`(停) | | PVE VM 清单 | 120 `pihole`=**dns/.36**AdGuard+Mihomovmbr0)、140 `gfw`(vmbr0+vmbr1)、160 `ubnt`(vmbr0)、180 `haos`(vmbr1/LAN55)、100 `gateway`(停) |
| **dns 位置** | **dns`.36`)是 PVE 上 VM 120,非独立物理机** → 不占 SE5420 口 | | **dns 位置** | **dns`.36`)是 PVE 上 VM 120,非独立物理机** → 不占 SE5420 口 |
| **transmission 位置** | **transmission 是 NAS(FreeNAS) 内 jail`.51`** → 不占 SE5420 口 | | **transmission 位置** | **transmission 是 NAS(FreeNAS) 内 jail`.51`** → 不占 SE5420 口 |
| gfw 虚拟网卡 | `net0`→vmbr0(66)、`net1`→vmbr1(55) | | gfw 虚拟网卡 | `net0`→vmbr0(66)、`net1`→vmbr1(55) |
| gfw 内部 | `eth0.10`=192.168.10.1/24 已配;DHCP(100-250)已配;fw4 `ubunt_upg` 链全建;OpenClash 全局 TPROXY 在 | | gfw 内部 | `eth0.10`=192.168.10.1/24 已配;DHCP(100-250)已配;fw4 `ubunt_upg` 链全建;OpenClash 全局 TPROXY 在 |
| gfw 缺口 | **无 `ubunt_upg→wan` 转发、无 masq**zone `forward=REJECT` → VLAN10 现在上不了网(**第二步才补**) | | gfw 缺口 | **无经核验的 `ubunt_upg→wan` 转发和出口 NAT**zone `forward=REJECT` → VLAN10 现在上不了网(**第二步才补**) |
| UniFi | `ubnt-upg` 网络(VLAN10, dhcp 关) + `ubnt-upg` SSID 已存在**且 SSID 当前 enabled(泄漏风险!)**;网络 purpose=corporate,需改 Third-party Gateway**第二步才改** | | UniFi | `ubnt-upg` 网络(VLAN10, dhcp 关) + `ubnt-upg` SSID 已存在且当前 enabled;未经现场抓包,不假定 VLAN10 tagged 帧会自动去标签进入 LAN66;该 SSID 在缺少完整路径时是不可用入口,应先禁用。网络 purpose=corporate,需改 Third-party Gateway**第二步才改** |
| U6 Lite | `.66.6`,有线上联,接 ER-X eth0untagged access | | U6 Lite | `.66.6`,有线上联,接 ER-X eth0untagged access |
| UAP-AC-Lite | `.55.5`,有线上联 | | UAP-AC-Lite | `.55.5`,有线上联 |
| PVE 防火墙 | 无任何自定义规则,未拦 tagged 帧 | | PVE 防火墙 | 无任何自定义规则,未拦 tagged 帧 |
@@ -87,15 +86,15 @@ SE5420 前面板为 **8 口一排、共两排**(每排 8×RJ45,右侧 4×SFP
| 2 | PVE `enp1s0`(承载 gfw/dns/ubnt VM | access | 66 | untagged 66 | | 2 | PVE `enp1s0`(承载 gfw/dns/ubnt VM | access | 66 | untagged 66 |
| 3 | U6 Lite | access | 66 | untagged 66 | | 3 | U6 Lite | access | 66 | untagged 66 |
| 4 | NAS/FreeNAS(第 1 口,含 transmission jail | access | 66 | untagged 66 | | 4 | NAS/FreeNAS(第 1 口,含 transmission jail | access | 66 | untagged 66 |
| 5 | NAS/FreeNAS第 2 口LACP 预留) | access | 66 | untagged 66 | | 5 | NAS/FreeNAS 第 2 口(仅后续 LACP 维护窗使用) | **物理断开/禁用** | | |
| 6 | windy-pc (.99) / hp-nas (.32) | access | 66 | untagged 66 | | 6 | windy-pc`.99`**或** hp-nas`.32`),二选一 | access | 66 | untagged 66 |
| 78 | LAN66 预留 | access | 66 | untagged 66 | | 78 | LAN66 预留 | **administratively down** | | |
| **下排 9** | ER-X `switch0` 成员口(55 上联) | access | 55 | untagged 55 | | **下排 9** | ER-X `switch0` 成员口(55 上联) | access | 55 | untagged 55 |
| 10 | PVE `enp2s0`(承载 haos VM | access | 55 | untagged 55 | | 10 | PVE `enp2s0`(承载 haos VM | access | 55 | untagged 55 |
| 11 | UAP-AC-Lite | access | 55 | untagged 55 | | 11 | UAP-AC-Lite | access | 55 | untagged 55 |
| 12 | 隔壁房间上联(IoT 设备) | access | 55 | untagged 55 | | 12 | 隔壁房间上联(IoT 设备) | access | 55 | untagged 55 |
| 13 | 打印机(未来) | access | 55 | untagged 55 | | 13 | 打印机(未来) | **administratively down** | | |
| 1416 | LAN55 预留 | access | 55 | untagged 55 | | 1416 | LAN55 预留 | **administratively down** | | |
| SFP+ 14 | 未来 10G | 空槽 | — | — | | SFP+ 14 | 未来 10G | 空槽 | — | — |
> **第二步才变更(本步不动)**:口 2、口 3 从 access 66 改为 **trunkuntagged 66 + tagged 10** > **第二步才变更(本步不动)**:口 2、口 3 从 access 66 改为 **trunkuntagged 66 + tagged 10**
@@ -109,9 +108,10 @@ SE5420 前面板为 **8 口一排、共两排**(每排 8×RJ45,右侧 4×SFP
> - **transmission`.51`** = NAS(FreeNAS) 内 jail,走 NAS 网口 > - **transmission`.51`** = NAS(FreeNAS) 内 jail,走 NAS 网口
> **第一步关键约束:** > **第一步关键约束:**
> - 全部口为 66/55 access**不建 VLAN10**。 > - 所有**启用的**业务口为 66/55 access未使用口 administratively down**不建 VLAN10**。
> - **不要**向 ER-X 送任何 VLAN10 tag(本步根本没有 VLAN10)。 > - **不要**向 ER-X 送任何 VLAN10 tag(本步根本没有 VLAN10)。
> - NAS 若启用 **LACP 聚合**:口 4/5 建端口聚合组(802.3ad),PVID 66SE5420 需 `L2 → LAG` 配置 > - NAS 本步只接**一个**网口至口 4;口 5 保持物理断开或 administratively down。LACP 是独立维护窗:先在 TrueNAS 与交换机建立同一 802.3ad LAG,将 VLAN66 配到逻辑 LAG 而非成员口,再插第二根线。LACP 提升多客户端/多连接聚合吞吐,单个 TCP 流通常仍受一条链路限制
> - 口 5、7、8、1316 和未使用 SFP+ 全部 administratively down;未来接入设备时,再显式配置 VLAN 并启用端口。
> - 禁止同一设备同时接旧路径与新核心(环路)。 > - 禁止同一设备同时接旧路径与新核心(环路)。
--- ---
@@ -127,9 +127,12 @@ SE5420 前面板为 **8 口一排、共两排**(每排 8×RJ45,右侧 4×SFP
- 注意核对设备底部标签的 **硬件版本 V1.0** 与固件配套;V1.x 别刷 V2 版(若后续出现)。 - 注意核对设备底部标签的 **硬件版本 V1.0** 与固件配套;V1.x 别刷 V2 版(若后续出现)。
- 升级完确认版本号,再进入后续配置。 - 升级完确认版本号,再进入后续配置。
3. 准备一条 Type-C 串口线(Console 本地登录)或普通网线(WEB 登录);一台**隔离管理本**(不用接现有 66 网)。 3. 准备一条 Type-C 串口线(Console 本地登录)或普通网线(WEB 登录);一台**隔离管理本**(不用接现有 66 网)。
4. **禁用 `ubnt-upg` SSID**UniFi 控制台 → WiFi → `ubnt-upg` → 关 enable)。它在无路径状态下已经泄漏 tag10 到 66 网,先止血。记录 SSID 原设置以便第二步回滚。 4. **禁用 `ubnt-upg` SSID**UniFi 控制台 → WiFi → `ubnt-upg` → 关 enable)。当前没有已验证的 VLAN10 端到端路径;不要把“tagged 帧会自动进入 LAN66”当作事实。记录原设置以便第二步回滚。
> 这是**唯一**在第一步涉及 VLAN10 的动作——目的只是止血,与第二步的实施无关 > 这是第一步唯一涉及 VLAN10 的动作,目的是移除不可用入口,而不是处置未经证实的 LAN66 泄漏
5. 备份当前 ER-X 配置(过滤敏感行),并给 `hosts/gw.md``docs/lan-overview.md` 留改前快照。 5. 备份当前 ER-X 配置(过滤敏感行),并给 `hosts/gw.md``docs/lan-overview.md` 留改前快照。
6. **回滚与现场条件**:全程保持 SE5420 Type-C Console 连接;确认可物理接触 ER-X、PVE 和交换机;逐根记录旧端口、目标端口和回插位置。SSH 会话仅用于诊断,移动其物理链路时可能立即断开,**不构成带外回滚路径**。
7. 记录拟接入 PVE/PC/NAS 的链路能力(例如 `ethtool enp1s0``ethtool enp2s0`),并准备 `iperf3` 基线与验收。
8. 导出全部 WiFi → Network/VLAN → AP group 映射。确认除将被禁用的 `ubnt-upg` 外,U6 Lite 和 UAP-AC-Lite 没有任何需要 tagged VLAN 的 SSID;否则不得把口 3/11 配成严格 access 口。
--- ---
@@ -170,20 +173,12 @@ SE5420 前面板为 **8 口一排、共两排**(每排 8×RJ45,右侧 4×SFP
**在 WSL/管理本上 SSH 登录:** **在 WSL/管理本上 SSH 登录:**
```bash ```bash
ssh -o KexAlgorithms=+diffie-hellman-group1-sha1 \ ssh -o KexAlgorithms=+diffie-hellman-group1-sha1 \
-o HostKeyAlgorithms=+ssh-rsa,ssh-dss \ -o HostKeyAlgorithms=+ssh-rsa \
admin@192.168.66.253 admin@192.168.66.253
# 输入口令后进 User EXEC 模式,再输入 enable 进特权模式 # 输入口令后进 User EXEC 模式,再输入 enable 进特权模式
``` ```
> ⚠️ **OpenSSH 7.0+ 兼容性(官方指南)**:TP-Link 交换机旧算法默认被新版 OpenSSH 禁用, > ⚠️ **旧 SSH 算法兼容性**:若交换机只支持旧算法,仅对这一次到 `192.168.66.253` 的连接使用命令行 `-o` 选项;**不要**写入全局 `~/.ssh/config`,也不要对其他主机放宽算法。将交换机管理服务限制在 LAN66,并优先使用支持现代算法的固件。
> 需在客户端 `~/.ssh/config` 为 `192.168.66.253` 显式启用:
> ```text
> Host 192.168.66.253
> KexAlgorithms +diffie-hellman-group1-sha1
> HostKeyAlgorithms +ssh-rsa
> PubkeyAcceptedAlgorithms +ssh-rsa
> ```
> 若 `ssh` 仍报算法协商失败,用 `-o` 逐项追加;具体以本机 OpenSSH 版本提示为准。
**关 SSH(如不需 CLI 远程管理)**GUI `SSH Config` 关闭,或 CLI `no ip ssh server` **关 SSH(如不需 CLI 远程管理)**GUI `SSH Config` 关闭,或 CLI `no ip ssh server`
@@ -193,49 +188,64 @@ ssh -o KexAlgorithms=+diffie-hellman-group1-sha1 \
> 菜单路径来自 TP-Link 官方《Omada 802.1Q VLAN 配置指南》与《管理 VLAN 指南》(SE5420 同平台)。 > 菜单路径来自 TP-Link 官方《Omada 802.1Q VLAN 配置指南》与《管理 VLAN 指南》(SE5420 同平台)。
> 具体菜单名以设备 WEB 界面为准。**本步不建 VLAN10。** > 具体菜单名以设备 WEB 界面为准。**本步不建 VLAN10。**
> **顺序原则:必须先创建二层 VLAN,才能创建/启用对应的 VLAN InterfaceSVI);VLAN1 的默认管理 IP 与成员关系只能在 VLAN66 管理路径验证通过后删除。**
**1. 管理地址**(官方:`L3 FEATURES → Interface`,编辑 VLAN 接口的 IPv4;不是 System): **1. 保持 Type-C Console 全程连接**:本流程先建二层 VLAN、后建 VLAN66 管理 SVI;全程保留 Console 与默认 VLAN1 管理路径作为兜底。SSH 会话不是回滚保障。
- 改为静态 **`192.168.66.253/24`**,网关 **`192.168.66.254`**(池外地址,无冲突)。
- 默认网关(官方:`L3 FEATURES → Static Routing → IPv4 Static Routing Config`):
目的 `0.0.0.0`、掩码 `0.0.0.0`、下一跳 `192.168.66.254`、距离 `1`
- **管理 VLAN 限制**(官方指南):`Security → Access Security → Access Control` 建 IP 规则,
接口 HTTP/HTTPS,源 `192.168.66.0/24`——仅管理 VLAN 内主机可访问 GUI。
- ⚠️ 改完管理地址后,管理本网卡要改回 `192.168.66.x` 同网段(或 DHCP)才能继续登录。
**2. 建 VLAN**`L2 Features → VLAN → 802.1Q VLAN → VLAN Config`**只建 66 / 55**): **2. 建 VLAN66、VLAN55**`L2 Features → VLAN → 802.1Q VLAN → VLAN Config`**只建 66 / 55**):
- 每个 VLAN 页内把端口按「tagged / untagged」勾选进成员: - 先创建二层 VLAN66、VLAN55(成员端口在步骤 3 / 7 配置);**暂时保留默认 VLAN1 及其管理 IP**,在 VLAN66 管理路径验证前不要改动 VLAN1。
- **66**untagged 口 1、2、3、4、5、6、7、8(本步全为 access
- **55**untagged 口 9、10、11、12、13、14、15、16
**3. 端口 PVID**`L2 Features → VLAN → 802.1Q VLAN → Port Config`,逐口设 PVID): **3. 选择临时验证口(例如口 6**`L2 Features → VLAN → 802.1Q VLAN → Port Config`):
- 口 18PVID **66**access - untagged VLAN66
- 口 916PVID **55**access - PVID **66**
- 逐口核对 tagged/untagged 归属,避免漏配 - 该口仅用于本阶段验证 VLAN66 管理路径;其余口先不动
**4. 关闭一切 L3 能力**:不开三层接口/SVI、不配静态路由、不开 DHCP Server/RelaySE5420 只做二层。 **4. 创建 VLAN66 管理 SVI**(唯一的 L3 例外,`L3 FEATURES → Interface` 编辑 **VLAN66** interface 的 IPv4):
- 用户数据平面只做二层,但交换机自身需要一个 LAN66 管理 SVI。
- 静态 **`192.168.66.253/24`**,默认网关 **`192.168.66.254`**(池外且先确认无冲突)。该默认网关只供交换机自身访问 NTP、SSH、HTTPS 等管理服务,不承担客户端转发。
- 更改地址时保持 Console 连接。
**5. 生成树**`L2 Features → Spanning Tree`):启用 RSTP(或 MSTP),STP 优先级设低(如 4096)——即便拓扑无环也兜底 **5. 管理本接临时验证口**:管理本网线接到口 6,静态 IP 设为 **`192.168.66.10/24`**
**6. 保存配置**:改完立即保存(`System → Save Config` 或右上角保存按钮),否则断电丢失。 **6. 验证 VLAN66 管理路径**
- ping `192.168.66.253`
- HTTPS 登录 WEB 管理;
- SSH 登录(若启用 CLI 远程管理);
- **保存配置后**(GUI 保存按钮或 CLI `copy running-config startup-config`)再次确认管理仍正常。
**7. 导出配置备份**(离线保存,**不进本仓库**)。 **7. 配置其余 VLAN66/VLAN55 端口及 PVID**`L2 Features → VLAN → 802.1Q VLAN → Port Config`):
- VLAN66untagged 口 1、2、3、4、6VLAN55untagged 口 912。
- 口 1、2、3、4、6PVID **66**;口 912PVID **55**
- access 口仅允许其 untagged VLAN,开启 ingress filtering,并拒收 tagged 入站帧(以该机型可用选项为准)。
**8. 确认 VLAN66 管理路径稳定后,再清理默认 VLAN1**
- 把口 116 从 **VLAN1 的 untagged 成员**中移除;VLAN1 不保留管理 IP。不要把“改 PVID”误当成移除 VLAN1 成员。
- VLAN66 管理路径(HTTPS / SSH 均已通过口 6 生效)未稳定前,**不得**删除 VLAN1 管理 IP 与成员关系。
**9. 收尾(关闭未使用端口、管理 ACL、保存导出)**
- 关闭未使用端口:口 5、7、8、13–16 及未使用 SFP+ administratively down。
- 管理 ACL 源限制为 `192.168.66.0/24`,覆盖所有启用的管理服务(至少 HTTPS、SSH;若启用再加 SNMP)。
- **L3 明确边界**:除 VLAN66 管理 SVI 和交换机自身默认网关外,不创建 VLAN55/VLAN10 interface,不启用全局 IP routing、跨 VLAN routing、RIP、DHCP Server 或 DHCP Relay。保存前检查没有其他 SVI、用户路由或 L3 转发功能启用。
- **生成树**`L2 Features → Spanning Tree`):启用 RSTP(或 MSTP),核心优先级设低(如 4096)。终端 access 口启用 edge/PortFast 与 BPDU GuardER-X、PVE、AP 或下级交换机上联口不要启用 BPDU Guard。
- **保存配置**`System → Save Config` 或右上角保存按钮,否则断电丢失。
- **导出配置备份**(离线保存,**不进本仓库**)。
### 3.4 台面验证(未接生产) ### 3.4 台面验证(未接生产)
1. 管理本接上排任意口(access 66:应能访问 `192.168.66.253`,且仅限 66 网段 1. 管理本接一个已经启用的 VLAN66 access 口,例如口 6:应能访问 `192.168.66.253`,且仅限 LAN66 管理源
2. 查看端口状态全 up;确认口 18 PVID=66、口 916 PVID=55`show vlan` / 对应 CLI 2. `show vlan` / 对应 CLI 确认:业务口只有预期的 untagged VLAN66 或 VLAN55VLAN1 没有意外成员或管理 IP;未接线端口显示 down 属正常
3. 确认**没有** VLAN10(本步应无 VLAN10 表项) 3. 确认没有 VLAN10、VLAN55 没有 SVI、也没有启用全局 IP routing/RIP/DHCP Server/Relay
--- ---
## 4. 第一步·阶段 2:维护窗迁移(30–60 分钟) ## 4. 第一步·阶段 2:维护窗迁移(30–60 分钟)
> 原则:**先断旧、后接新**;每次移动一根线后立即验证;全程保留 ER-X 管理会话与 PVE 会话 > 原则:**先断旧、后接新**;每次移动一根线后立即验证 MAC 地址表、协商速率、错误计数和业务。全程保持 SE5420 ConsoleSSH 会话不是回滚保障
> **本步所有口都是 66/55 access,不涉及 VLAN10。** > **本步所有口都是 66/55 access,不涉及 VLAN10。**
### 4.0 准备 ### 4.0 准备
- 打印第 1 节端口表;给所有现网线缆贴标签。 - 打印第 1 节端口表;给所有现网线缆贴标签。
- 保留现有 ER-X 原接线不动(作为回滚路径)**直到最后一步** - 为每根线记录旧端口、目标端口和明确的回插位置
- 通知中断窗口;确认 ER-X 管理 SSH 与 PVE 管理 SSH 两个会话均可用(`BatchMode=yes` 测试) - 通知中断窗口;确认 Console 可用且可物理接触 ER-X、PVE、SE5420。SSH 可用于诊断,但不作为带外回滚
### 4.1 建立 ER-X ↔ SE5420 两条上联 ### 4.1 建立 ER-X ↔ SE5420 两条上联
1. 接 SE5420 **上排口 1 ↔ ER-X `eth0`**LAN66 上联)。 1. 接 SE5420 **上排口 1 ↔ ER-X `eth0`**LAN66 上联)。
@@ -248,100 +258,132 @@ ssh -o KexAlgorithms=+diffie-hellman-group1-sha1 \
### 4.2 迁移 PVE(双网卡) ### 4.2 迁移 PVE(双网卡)
1. PVE `enp1s0` → SE5420 **口 2access 66** 1. PVE `enp1s0` → SE5420 **口 2access 66**
2. PVE `enp2s0` → SE5420 **口 10access 55** 2. PVE `enp2s0` → SE5420 **口 10access 55**
3. 验证SSH PVE`ip -br addr` 显示 `.66.26``.55.26``ping 192.168.66.254``ping 192.168.55.254` 3. 验证 PVE`ip -br addr` 显示 `.66.26``.55.26`分别可达 `192.168.66.254``192.168.55.254`
4. 确认 gfw VM 两块网卡都活着:SSH gfw → `ip -br addr` → eth0(.66.1)、eth1(55) 4. PVE 物理网卡迁移会同时影响 vmbr0/vmbr1 上的多台 VM;逐台验证 gfw、dns、ubnt、haos 的 IP、网关、DNS 和实际业务,不以“宿主仍开机”代替验证
> PVE 是宿主,**只要 PVE 活着,gfw/dns/ubnt 虚拟机就不会断**;这是迁移 PVE 放在最先的原因。
### 4.3 迁移 AP 与接入设备 ### 4.3 迁移 AP 与接入设备
1. U6 Lite → SE5420 **口 3access 66**。本地取电,网线只走数据。 1. U6 Lite → SE5420 **口 3access 66**。本地取电,网线只走数据。
- 验证:U6 拿到 `.66.6`UniFi 控制器显示 ConnectedInform 仍 `:9080` - 验证:U6 拿到 `.66.6`UniFi 控制器显示 Connected其实际 Controller/Inform URL 与迁移前只读记录一致
2. UAP-AC-Lite → SE5420 **口 11access 55** 2. UAP-AC-Lite → SE5420 **口 11access 55**
- 验证:`.55.5` Connected。 - 验证:`.55.5` Connected。
3. **隔壁房间上联 → SE5420 口 12access 55** 3. **隔壁房间上联 → SE5420 口 12access 55**
- 对端是 **IoT 设备**(未来会有打印机)。迁移前确认那端是单台设备还是小交换机;若对端已是一台设备,直接拔 ER-X switch0 旧口、接口 12 即可 - 对端是 **IoT 设备**(未来会有打印机)。迁移前确认那端是单台设备还是小交换机;若是下级交换机,记录型号并确认:只有一条上联、只承载 untagged LAN55、没有 VLAN trunk,且没有第二条路径返回 ER-X 或 SE5420。未满足任一项不得迁移
- 验证:隔壁房间 IoT 设备恢复地址(LAN55 网段)、网关 `.254`、可达 DNS `.36` - 验证:隔壁房间 IoT 设备恢复地址(LAN55 网段)、网关 `.254`、可达 DNS `.36`
4. NAS/FreeNAS(含 transmission jail)→ **口 4/5**windy-pc/hp-nas/杂项 → **口 6**(均为 access 66),逐个验证地址/DNS/业务。 4. NAS/FreeNAS(含 transmission jail)→ **口 4**口 5 继续物理断开。口 6 **只接一台明确设备**windy-pchp-nas);若改为接下级交换机,必须记录其型号、确认其只有一条上联且仅承载 LAN66。逐个验证地址/DNS/业务。
- dns/.36、ubnt/.46、gfw/.1、haos 均随 PVE 网卡迁移,**不单独插口**——只验证 PVE 后这些 VM 的 IP 与业务即可。 - dns/.36、ubnt/.46、gfw/.1、haos 均随 PVE 网卡迁移,**不单独插口**——只验证 PVE 后这些 VM 的 IP 与业务即可。
5. **旧交换/旧接线全部下电**;确认无任何设备仍走 ER-X 直连旧口(双上行=环路) 5. 旧交换/旧接线仅在确认不形成并行二层路径后下电。单个终端保留 ER-X 直连不是环路;禁止的是同一下级交换机双上联、桥接双网口或同 VLAN 的并行二层路径
### 4.4 全局验证(第一步 Done 判定) ### 4.4 全局验证(第一步 Done 判定)
见第 7 节验收清单前 7 条全绿。**VLAN10 完全不在本步范围。** 见第 10 节第一阶段验收项全绿。**VLAN10 完全不在本步范围。**
--- ---
# 第二步:VLAN10 升级专用 SSID(第一步稳定 ≥1 天后,独立窗口 # 第二步:VLAN10 升级专用 SSID(第一步稳定 ≥1 天后,多个独立维护窗
> **时机确认(2026-08-09** 第一步验收前 7 条全绿、网络稳定运行 ≥1 天后,再进入本步 > **放行门槛:**第一步验收前 7 条全绿、网络稳定运行 ≥1 天,且已完成本节的 PVE 边界、gfw 防火墙/NAT、IPv6 设计与只读核验。**SSID 是最后才启用的组件。** 任一步失败均不改变 LAN55/LAN66 的主网语义
> 本步所有动作(SE5420 VLAN10、gfw、UniFi)互相独立但按序执行,任一步失败可单独回滚。
## 5. 第二步·阶段 1SE5420 增加 VLAN10 ## 5. 第二步·阶段 1PVE VLAN10 边界(独立维护窗)
1. **建 VLAN10**`L2 Features → VLAN → 802.1Q VLAN → VLAN Config`): 当前 `vmbr0` 是非 VLAN-aware 的共享 bridge。它可形成 VLAN10 路径,但不能证明 VLAN10 只会交付给 gfw;同 bridge 的其他 VM 理论上可消费 tagged 帧。
- **10****tagged 口 2、口 3**(只这两个,其余口不放)。
2. **口 2、口 3 改为 trunk**`VLAN → Port Config`):
- 口 2PVE enp1s0):PVID **66**untagged 66 + **tagged 10**
- 口 3U6):PVID **66**untagged 66 + **tagged 10**
- 其余口不动(保持第一步的 66/55 access)。
3. **保存配置**`System → Save Config`)。
4. **验证**`show vlan` 确认 VLAN10 仅 tagged 口 2/3;口 2/3 的 66 流量不受影响(66 上联仍通)。
> 此时 VLAN10 无任何客户端流量(SSID 未启用),配置就位但无害。
## 6. 第二步·阶段 2:gfw 补齐 VLAN10 上网能力(SSH `root@192.168.66.1` **目标模型:**SE5420 口2为 external native/untagged VLAN66 + tagged VLAN10PVE 的既有管理接口和普通 VM vNIC 保持其现有的**无标签**语义,只有 gfw 新增的专用 vNIC 使用 `tag=10`。因此 gfw 从该 vNIC 收到的是无标签 VLAN10 流量。
> Linux bridge 内部的 untagged/PVID 语义不天然等于外部 VID 66。不得在不知道现状的情况下直接写 `bridge-vids 10 66`,也不得改变 bridge self、物理口或现有 tap 口的 PVID/untagged 状态;否则可能立即切断 PVE `.66.26`、dns、ubnt 或 gfw 的 LAN66 接口。
1. **先取得只读快照**,再生成专用变更:
```sh
cat /etc/network/interfaces
qm config 140
bridge vlan show
bridge link
ip -d link show vmbr0
pveversion -v
```
2. 操作前在各自主机的安全本地位置备份(不提交仓库):PVE `/etc/network/interfaces`、`/etc/pve/qemu-server/140.conf`gfw `/etc/config/network`、`/etc/config/dhcp`、`/etc/config/firewall`。确认可用的本地 Console/带外路径;没有完整备份和回滚能力则停止。
3. 根据快照,以最小变更启用 VLAN-aware:保留现有 PVE 管理和普通 VM 的无标签连通性,只额外允许 tag 10 经过物理上联,并为 gfw 配置唯一 `tag=10` 的专用 access vNIC。dns、ubnt 和其他 VM 不得加入 VLAN10。
4. VM 140 已有 `eth0.10=192.168.10.1/24`,必须完成显式迁移:新增 vNIC并记录 MAC → 在 gfw 确认新接口名(如 `eth2`)→ 将 `ubunt_upg` 的 device 从 `eth0.10` 改为新接口 → 保留 `192.168.10.1/24`、DHCP 与 firewall zone 绑定 → 验证后删除旧 `eth0.10` device。任何时刻不得让同一 VLAN10 地址同时存在于两个接口。
5. 逐项验证:PVE 管理 IP 仍在 LAN66gfw 有唯一 VLAN10 接口;`bridge vlan show`、VM NIC 配置和抓包都证明其他 VM 无 VLAN10 可达性。
6. 未通过本节不得继续 VLAN10 项目;不得将 flat bridge 共享 trunk 描述为严格隔离。
## 6. 第二步·阶段 2SE5420 增加 VLAN10PVE 边界通过后)
1. **建 VLAN10**`L2 Features → VLAN → 802.1Q VLAN → VLAN Config`):仅 **tagged 口 2、口 3**。
2. 将口 2(PVE)和口 3U6)改为严格 trunknative/untagged VLAN66 + tagged VLAN10;只允许 VLAN66、VLAN10,并开启 ingress filtering。
3. 其余端口不允许 VLAN10VLAN10 不创建 SVI、DHCP 或路由功能。
4. 保存配置后用 `show vlan`、端口状态、MAC 表验证 VLAN10 仅出现在口 2/3,且 VLAN66 管理流量不受影响。
## 7. 第二步·阶段 3gfw 防火墙、NAT 与 IPv6SSH `root@192.168.66.1`
**先只读确认,禁止直接复制旧片段:**
```sh ```sh
# 1) ubunt_upg zone 加 masq + 允许 forward uci show network
uci set firewall.ubunt_upg.masq='1' uci show firewall
uci set firewall.ubunt_upg.forward='ACCEPT' uci show dhcp
uci set firewall.ubunt_upg.forward_policy='ACCEPT' # 若 fw4 版本支持 ip -4 route
# 2) 增加 ubunt_upg -> wan 转发 ip -6 addr
uci add firewall forwarding ip -6 route
uci set firewall.@forwarding[-1].src='ubunt_upg' fw4 print
uci set firewall.@forwarding[-1].dest='wan' nft list ruleset
uci commit firewall
/etc/init.d/firewall reload
# 3) 确认 DHCP 已绑定(应已存在,无则补)
uci show dhcp.ubunt_upg # interface='ubunt_upg', start=100, limit=150
``` ```
> **为什么必须 masq**VLAN10 客户端源地址 `192.168.10.x` 经 gfw 出 eth0 到 ER-X 后, 确认 `wan` zone 的实际接口和 NAT 状态、现有命名/匿名 forwarding、`ubunt_upg` 的 DHCP 绑定,以及 IPv6/RA/DHCPv6 状态。依据实际 section 名称创建**命名、可重复执行**的规则,不使用会重复累积的匿名 `uci add`。
> 若无 masq,ER-X 无法把公网回包路由回 `192.168.10.0/24`。masq 后源地址变成 66 网段。
**验证(gfw 自测,纯本地无副作用):** ### IPv4 目标策略
```sh
nft list chain inet fw4 forward_ubunt_upg # 应有 jump accept_to_wan / wan 处理
uci show firewall | grep -A2 ubunt_upg_to_wan
# 确认 eth0.10 能 ping 通自身(接口 up
ping -c1 192.168.10.1
```
## 7. 第二步·阶段 3UniFi 改网络 + 启用 SSID | 流量 | 动作 |
|---|---|
| VLAN10 → gfw DHCP、DNS | 允许 |
| VLAN10 → gfw SSH/LuCI/SNMP/其他管理服务 | 拒绝 |
| VLAN10 → LAN66、LAN55、其他 RFC1918 内网 | 拒绝 |
| VLAN10 → Internet | 允许 |
| established/related 回包 | 允许 |
1. **UniFi → Networks → `ubnt-upg`** - 保持 `ubunt_upg` 的默认 forward 策略为拒绝;仅创建明确的、命名的 `ubunt_upg → wan` forwarding。
- 网络类型/路由器设为 **Third-party Gateway**(或 equivalent,视 9.5.21 UI),**DHCP 保持关闭** - **不要**在 `ubunt_upg` 源 zone 设置 masquerade,也不要使用 `forward_policy` 这类非标准 zone 选项。
- VLAN ID `10`、子网 `192.168.10.0/24`、网关 `192.168.10.1` - 先确认 `wan` 是否已经产生正确的出口 NAT;若没有,为 `192.168.10.0/24` 配置 IPv4 SNAT/MASQUERADE,使其匹配 gfw 出 LAN66 的实际出口接口/zone。
- **广播范围只选 U6 Lite**(勿让 UAP-AC-Lite 广播,它在 LAN55 无 VLAN10 通道) - 拒绝内网的规则必须在生成的 nftables 规则中先于通用允许路径命中;以 `fw4 print` 和 `nft list ruleset` 验证,而非仅看 UCI 文本
2. **UniFi → WiFi → `ubnt-upg` enable**(广播范围仅 U6 Lite)。
3. **验证链(必须逐级):**
- a. gfw`tcpdump -eni eth0.10` 观察——应看到来自新 SSID 客户端的 DHCP/数据帧
`tcpdump` 若缺用 `apk add tcpdump` / `opkg update && opkg install tcpdump`)。
- b. 客户端连 `ubnt-upg` → 应获 `192.168.10.100~250`,网关 `192.168.10.1`DNS 为 gfw(clash)。
- c. gfw`cat /tmp/dhcp.leases | grep 192.168.10` 出现客户端租约。
- d. gfw`nft list chain inet fw4 dstnat | grep -A1 "7892"` 计数增长 → 证明被 OpenClash 接管。
- e. 客户端能访问外网,且**不能**访问 LAN66(`Block-ubunt-upg-to-LAN66` 规则预期生效)。
4. 失败处理:只撤 SSIDenable off),不动主 SSID 与 `.254` 路径。
--- ### IPv6 决策:本阶段明确不提供 VLAN10 IPv6
## 8. 回滚语义 - 在 gfw 上对 VLAN10 **显式关闭并核验** RA、DHCPv6、NDP relay/delegation、IPv6 forwarding 与前缀委派;不能仅靠“不配置”推断它们未启动。
- 客户端可以保留 IPv6 link-local`fe80::/64`)地址;但不得获得 GUA/ULA、IPv6 DNS 或 IPv6 默认路由。
- 以后若要支持 IPv6,须另开设计与维护窗,单独定义 IPv6 防火墙、DNS 和代理接管。
### gfw 部署后验证
- VLAN10 DHCP 租约与 DNS 正常。
- IPv4 NAT 命中 `192.168.10.0/24` 和正确出口。
- LAN66/LAN55/其他私网拒绝规则、gfw 管理面拒绝规则均有测试命中。
- `ip -6 addr`、`ip -6 route`、`curl -6` 证明 VLAN10 除可能的 link-local 外没有 GUA/ULA、IPv6 DNS、默认路由或可用 IPv6 出口。
## 8. 第二步·阶段 4UniFi 改网络 + 启用 SSID(最后执行)
1. 先在 AP 上用 `info` 核实实际 Controller/Inform URL;不凭文档假定端口。
2. UniFi → Networks → `ubnt-upg`Router 设为 **Third-party Gateway**VLAN ID `10`、子网 `192.168.10.0/24`、网关 `192.168.10.1`DHCP 关闭。
3. `ubnt-upg` 仅选 **U6 Lite** 广播;不得让 UAP-AC-Lite 广播(其 LAN55 上联无 VLAN10 通道)。保留两台 AP 的原 PoE 注入器。
4. 最后才 enable SSID,使用单一测试客户端逐级验证:
- 获得 `192.168.10.100~250`、网关 `192.168.10.1`、预期的 gfw DNS 地址;
- 普通域名、国内域名和海外域名均按预期解析,DNS 流量可关联至 gfw/OpenClash 路径;客户端不能直接访问 LAN66 的 `.36` DNS,除非另有书面允许;
- gfw 上出现对应 DHCP 租约和 VLAN10 数据帧;若需抓包工具,先确认实际包管理器,勿假定 `apk` 或 `opkg`
- `curl -4` 成功;`curl -6` 不应成功;
- 无法访问 `.66.1/.26/.36/.46/.254`、`.55.254` 和选定 LAN55 主机;
- 无法访问 gfw SSH/LuCI 等管理面;
- 以测试客户端的源地址/五元组或日志关联确认代理路径,**不以全局 `7892` 计数增长作为证明**。
5. 失败处理:先关闭 `ubnt-upg` SSID;主 SSID、`.254` 路径和 LAN55/LAN66 不受影响。
## 9. 回滚语义
| 步骤/阶段 | 失败动作 | | 步骤/阶段 | 失败动作 |
|---|---| |---|---|
| 第一步·阶段 1 | 无生产影响;还原 SE5420 台面配置或出厂即可 | | 第一步·阶段 1 | 无生产影响;还原 SE5420 台面配置或出厂即可 |
| 第一步·阶段 2(维护窗内) | **停手**;把刚迁的线插回 ER-X 原口;不动 ER-X WAN/DHCP/SSH | | 第一步·阶段 2(维护窗内) | **停手**;把刚迁的线插回 ER-X 原口;不动 ER-X WAN/DHCP/SSH |
| 第二步·阶段 1SE5420 VLAN10 | 删 VLAN10、口 2/3 恢复 access 66 | | 第二步·阶段 1PVE VLAN-aware + VM 140/gfw 迁移) | 按本节完整回滚顺序恢复 PVE、VM 140 与 gfw 配置;停止 VLAN10 项目 |
| 第二步·阶段 2gfw | 撤 `ubunt_upg` 的 masq/forwarding,恢复原 zone | | 第二步·阶段 2SE5420 VLAN10 | 删 VLAN10、口 2/3 恢复严格 access VLAN66 |
| 第二步·阶段 3SSID | 只关 `ubnt-upg` SSID;主 SSID、`.254`、gfw 66 路径不受影响 | | 第二步·阶段 3gfw) | 恢复变更前已备份的命名规则/NAT;不触碰 LAN55/LAN66 主网规则 |
| 第二步·阶段 4(SSID) | 只关 `ubnt-upg` SSID;主 SSID、`.254`、gfw 66 路径不受影响 |
**第二步阶段 1 回滚顺序:**(1)关闭 `ubnt-upg` SSID;(2)将 gfw `ubunt_upg` 恢复绑定到 `eth0.10`;(3)恢复 gfw network/DHCP/firewall 配置;(4)从 VM 140 移除新增 VLAN10 vNIC;(5)恢复 VM 140 配置;(6)最后恢复 PVE `/etc/network/interfaces`;(7)分别验证 PVE、dns、ubnt、gfw 的 LAN66 连通性。不得只恢复 PVE bridge 而留下无接口的 DHCP 或 firewall zone。
### SE5420 恢复出厂(忘记口令 / 需要重配) ### SE5420 恢复出厂(忘记口令 / 需要重配)
@@ -354,26 +396,26 @@ ping -c1 192.168.10.1
--- ---
## 9. 验收清单(「网络算正常」的样子) ## 10. 验收清单(「网络算正常」的样子)
**第一步 Done(前 7 条全绿):** **第一步 Done(前 7 条全绿):**
1. SE5420 管理面:`192.168.66.253` 仅 LAN66 可达;默认口令已改;配置已离线备份。 1. SE5420 管理面:`192.168.66.253` 仅 LAN66 可达;默认口令已改;配置已离线备份。
2. LAN66:客户端 DHCP 拿 `.66.x`、网关 `.254`、DNS `.36`;外网通。 2. LAN66:客户端 DHCP 拿 `.66.x`、网关 `.254`、DNS `.36`;外网通。
3. LAN55:客户端拿 `.55.x`、网关 `.254`、DNS `.36`;跨网段互通(`.55.x ↔ .66.x`)。 3. LAN55:客户端拿 `.55.x`、网关 `.254`、DNS `.36`;跨网段互通(`.55.x ↔ .66.x`)。
4. 端口转发逐条从公网验证(hass 8123 / transmission 51413 / ssh 5822→.36:22 / openvpn 1194)。 4. 端口转发逐条从公网验证(hass 8123 / transmission 51413 / ssh 5822→.36:22 / openvpn 1194)。
5. UniFiU6(`.66.6`) 与 AC-Lite(`.55.5`) ConnectedInform `:9080` 未变 5. UniFiU6(`.66.6`) 与 AC-Lite(`.55.5`) Connected两台 AP 的实际 Controller/Inform URL 与迁移前只读记录一致
6. 无环路、无双默认网关;端口协商与错误计数正常;旧交换已下电。 6. 无环路、无双默认网关;端口协商与错误计数正常;不再使用的旧交换已下电,且所有同 VLAN 并行二层路径均已拆除
7. `gfw` 旁路由行为与升级前一致(主网默认网关仍 `.254`)。 7. `gfw` 旁路由行为与升级前一致(主网默认网关仍 `.254`)。
**第二步额外(第 8 条):** **第二步额外(第 8 条):**
8. `ubnt-upg` 客户端 `192.168.10.x`、网关 `.10.1`可上网不可达 LAN66gfw 侧 DHCP 租约与 OpenClash 计数可查 8. `ubnt-upg` 客户端获得 `192.168.10.x`、网关 `.10.1`、预期的 gfw DNS 地址;普通/国内/海外域名均按预期解析,IPv4 可上网不可达 LAN66、LAN55、其他内网、gfw 管理面及 LAN66 `.36` DNS(除非书面允许);gfw 侧 DHCP、拒绝规则、NAT、DNS 与代理路径均能关联到该测试客户端
**贯穿:** **贯穿:**
9. IPv6 行为与升级前一致(SE5420 纯二层不碰 IPv6 9. LAN55/LAN66 的 IPv6 行为与迁移前基线一致;VLAN10 已显式关闭并核验 RA、DHCPv6、NDP relay/delegation、IPv6 forwarding 与前缀委派;客户端除可能的 link-local 外没有 GUA/ULA、IPv6 DNS、默认路由或 IPv6 出口
--- ---
## 10. 安全与记录 ## 11. 安全与记录
- **本仓库永不记录**:SE5420 口令、ER-X 配置快照(含 PPPoE/口令)、gfw 凭据。 - **本仓库永不记录**:SE5420 口令、ER-X 配置快照(含 PPPoE/口令)、gfw 凭据。
- 每次实质变更后,在 Linear `vps` 项目记录 scope / action / verification / 遗留 follow-up。 - 每次实质变更后,在 Linear `vps` 项目记录 scope / action / verification / 遗留 follow-up。
@@ -382,7 +424,7 @@ ping -c1 192.168.10.1
--- ---
## 11. 参考 ## 12. 参考
- 设计说明:[lan-erx-se5420-network.md](lan-erx-se5420-network.md) - 设计说明:[lan-erx-se5420-network.md](lan-erx-se5420-network.md)
- 早期阶段计划(已细化于本文):[lan-core-switch-upgrade-plan.md](lan-core-switch-upgrade-plan.md) - 早期阶段计划(已细化于本文):[lan-core-switch-upgrade-plan.md](lan-core-switch-upgrade-plan.md)