Files
vps/docs/lan-se5420-deployment-guide.md
T
windyboy ffb37a916e 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
2026-08-10 11:00:28 +08:00

444 lines
32 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# SE5420 核心交换机升级实践指南(两步实施)
**状态:** SE5420 **已采购**,待实施。本文是真实可操作、可验证的升级实践文档;
取代早期「规划说明」性质文档中的实施细节([lan-erx-se5420-network.md](lan-erx-se5420-network.md)、
[lan-core-switch-upgrade-plan.md](lan-core-switch-upgrade-plan.md) 保留作拓扑/设计参考)。
**硬件:** TP-Link **TL-SE5420**16× 2.5G RJ45 + 4× 10G SFP+,无 PoE),440×180×44 mm1U)。
**架构:** ER-X **保留**为唯一网关(PPPoE/NAT/防火墙/DHCP/双网段三层);SE5420 纯 L2 核心;
`gfw` 旁路由(OpenClash);后续 VLAN10 升级专用 SSID走 gfw 网关。SE5420 的用户数据平面只做二层;唯一 L3 例外为 LAN66 管理 SVI 与交换机自身默认网关。
---
## ⚠️ 两步实施总览(2026-08-09 确认)
**第一步(本次):只做 55/66 主网。** SE5420 初始化、ER-X 上联、PVE/AP/设备迁移、
验收稳定。除**禁用不可用的** `ubnt-upg` SSID 外,不修改其 VLAN、网络或 AP 配置;全程不建 VLAN10、不给口 2/3 加 tagged 10、不改 gfw。
**第二步(第一步稳定 ≥1 天后,多个独立维护窗):整体做 VLAN10。**
SE5420 加 VLAN10 + 口 2/3 tagged 10 → gfw 补齐 → UniFi 改 Third-party Gateway → 启用 SSID → 验证。
> 分离原则:第一步完成后网络与升级前语义一致(仅同 VLAN 交换变 2.5G)。唯一例外是先禁用不可用的 `ubnt-upg` SSID;第二步才完成 VLAN10 配置并重新启用该 SSID。VLAN10 的 PVE、交换机、gfw 与 UniFi 动作分属多个维护窗,回滚互不牵连。
| 步骤 | 范围 | Done 判定 |
|---|---|---|
| **第一步** | SE5420 台面配置(66/55) → ER-X 上联 → 迁移 → 稳定 | 第 10 节第一阶段验收项全绿 |
| **第二步** | VLAN10SE5420 + gfw + UniFi + SSID | 第 10 节第二阶段验收项 + 验证链全通 |
---
## 0. 已验证的现状事实(2026-08-09 只读核实)
> 以下事实已通过 SSH/UniFi API 实测确认,直接决定下文步骤:
| 项 | 实测结果 |
|---|---|
| PVE 物理网卡 | **双网卡**`enp1s0`→vmbr0(LAN66 .26)`enp2s0`→vmbr1(LAN55 .26) |
| 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`(停) |
| **dns 位置** | **dns`.36`)是 PVE 上 VM 120,非独立物理机** → 不占 SE5420 口 |
| **transmission 位置** | **transmission 是 NAS(FreeNAS) 内 jail`.51`** → 不占 SE5420 口 |
| gfw 虚拟网卡 | `net0`→vmbr0(66)、`net1`→vmbr1(55) |
| gfw 内部 | `eth0.10`=192.168.10.1/24 已配;DHCP(100-250)已配;fw4 `ubunt_upg` 链全建;OpenClash 全局 TPROXY 在 |
| gfw 缺口 | **无经核验的 `ubunt_upg→wan` 转发和出口 NAT**zone `forward=REJECT` → VLAN10 现在上不了网(**第二步才补**) |
| 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 |
| UAP-AC-Lite | `.55.5`,有线上联 |
| PVE 防火墙 | 无任何自定义规则,未拦 tagged 帧 |
---
# 第一步:SE5420 + 55/66 主网
## 1. 目标拓扑与端口规划(第一步范围)
```text
Internet
│ PPPoE (pppoe0)
┌───────────────────────────────────────────┐
│ ER-X (gw) eth0=LAN66 .254 switch0=LAN55 .254 │
└──────┬──────────────────┬─────────────────┘
│ access VLAN66 │ access VLAN55
│ │
▼ ▼
┌──────────────────────────────────────────────────┐
│ TL-SE5420 核心(纯 L2VLAN-aware
│ SFP+ 空槽(未来 10G) │
└─┬──────┬───────┬──────┬──────┬──────┬───────────┘
│ │ │ │ │ │
PVE PVE U6 AC-Lite dns/NAS/PC
enp1s0 enp2s0 Lite (55) (access 66)
access access access
66 55 66
```
### 端口角色表(第一步:全部为 66/55 access**不含 VLAN10**
SE5420 前面板为 **8 口一排、共两排**(每排 8×RJ45,右侧 4×SFP+)。采用**按 VLAN 分排**
**上排(口 18= LAN66****下排(口 9–16= LAN55**。每排首位是该 VLAN 的 ER-X 上联。
> 端口编号假定 TP-Link 常规布局(上排 1–8、下排 9–16);**接线前先对照实物面板标注编号**。
| SE5420 口 | 对端 | 第一步模式 | PVID | 成员 VLAN |
|---|---|---|---|---|
| **上排 1** | ER-X `eth0`66 上联) | access | 66 | untagged 66 |
| 2 | PVE `enp1s0`(承载 gfw/dns/ubnt VM | access | 66 | untagged 66 |
| 3 | U6 Lite | access | 66 | untagged 66 |
| 4 | NAS/FreeNAS(第 1 口,含 transmission jail | access | 66 | untagged 66 |
| 5 | NAS/FreeNAS 第 2 口(仅后续 LACP 维护窗使用) | **物理断开/禁用** | — | — |
| 6 | windy-pc`.99`**或** hp-nas`.32`),二选一 | access | 66 | untagged 66 |
| 78 | LAN66 预留 | **administratively down** | — | — |
| **下排 9** | ER-X `switch0` 成员口(55 上联) | access | 55 | untagged 55 |
| 10 | PVE `enp2s0`(承载 haos VM | access | 55 | untagged 55 |
| 11 | UAP-AC-Lite | access | 55 | untagged 55 |
| 12 | 隔壁房间上联(IoT 设备) | access | 55 | untagged 55 |
| 13 | 打印机(未来) | **administratively down** | — | — |
| 1416 | LAN55 预留 | **administratively down** | — | — |
| SFP+ 14 | 未来 10G | 空槽 | — | — |
> **第二步才变更(本步不动)**:口 2、口 3 从 access 66 改为 **trunkuntagged 66 + tagged 10**
> 并新建 VLAN10。第一步**不要**建 VLAN10、**不要**在任何口上 tagged 10。
> **哪些设备不占 SE5420 口(都是 PVE 上的 VM,走 PVE 物理网卡):**
> - **dns / AdGuard Home / Mihomo`.36`** = PVE VM 120 `pihole`vmbr0
> - **ubnt 控制器(`.46`** = PVE VM 160vmbr0
> - **gfw`.1`** = PVE VM 140vmbr0 + vmbr1
> - **haos / Home Assistant`.55.11`** = PVE VM 180vmbr1/LAN55
> - **transmission`.51`** = NAS(FreeNAS) 内 jail,走 NAS 网口
> **第一步关键约束:**
> - 所有**启用的**业务口为 66/55 access;未使用口 administratively down**不建 VLAN10**。
> - **不要**向 ER-X 送任何 VLAN10 tag(本步根本没有 VLAN10)。
> - NAS 本步只接**一个**网口至口 4;口 5 保持物理断开或 administratively down。LACP 是独立维护窗:先在 TrueNAS 与交换机建立同一 802.3ad LAG,将 VLAN66 配到逻辑 LAG 而非成员口,再插第二根线。LACP 提升多客户端/多连接聚合吞吐,单个 TCP 流通常仍受一条链路限制。
> - 口 5、7、8、1316 和未使用 SFP+ 全部 administratively down;未来接入设备时,再显式配置 VLAN 并启用端口。
> - 禁止同一设备同时接旧路径与新核心(环路)。
---
## 2. 第一步·阶段 0:开工前检查(一次性)
1. SE5420 开箱:核对型号、前面板(模式切换按键 / 指示灯 / **Type-C Console 口** / 16×2.5G RJ45 / 4×SFP+ / 1×USB)。
2. **固件**:下载最新官方固件并升级(V1.0 平台)。操作:
- 下载页:TP-LINK 官网 → TL-SE5420 产品页 → **资源下载** tab → **升级软件** 分类。
- 直达:`https://www.tp-link.com.cn/product_2899.html?v=download`(升级软件区)。
- 已知版本:**TL-SE5420 V1.0 升级软件 20230908_1.0.0**2023-09-08 发布,以页面当前列出的为准)。
- 升级入口:登录 WEB 后 **系统 → 软件升级 → 选择文件 → 升级**(升级期间勿断电)。
- 注意核对设备底部标签的 **硬件版本 V1.0** 与固件配套;V1.x 别刷 V2 版(若后续出现)。
- 升级完确认版本号,再进入后续配置。
3. 准备一条 Type-C 串口线(Console 本地登录)或普通网线(WEB 登录);一台**隔离管理本**(不用接现有 66 网)。
4. **禁用 `ubnt-upg` SSID**UniFi 控制台 → WiFi → `ubnt-upg` → 关 enable)。当前没有已验证的 VLAN10 端到端路径;不要把“tagged 帧会自动进入 LAN66”当作事实。记录原设置以便第二步回滚。
> 这是第一步唯一涉及 VLAN10 的动作,目的是移除不可用入口,而不是处置未经证实的 LAN66 泄漏。
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 口。
---
## 3. 第一步·阶段 1:离线初始化 SE5420(台面,不接生产)
> 本阶段细节来自官方《TL-SE5420 安装手册》V1.02023)与 Omada 官方 VLAN 配置指南。
### 3.1 首次登录
**WEB 登录(推荐,无需串口驱动):**
1. 管理本网线接 SE5420 **任意 RJ45 业务口**;管理本静态 IP 设为 `10.18.18.10/24`,网关暂留空。
> **默认业务口 IP 是 `10.18.18.251`**(非 192.168.0.1,勿凭家用路由经验)。
2. 浏览器访问 `http://10.18.18.251`
3. 首次登录行为:
- **WEB**:要求**设置用户名和密码**(出厂无默认口令,直接创建),创建后进入管理界面。
- **Console/Telnet/SSH**:官方《Accessing the Switch》指出默认账号为 **`admin/admin`**(首次登录后立即改密)。
> 渠道默认值可能不同,以实物为准:若 WEB 已设口令,CLI 用它登录;若尚未设置,尝试 `admin/admin`。
**Console 本地登录(可选,WEB 不可用时兜底):**
1. 电脑装「TP-LINK USB 串口驱动程序」(官网下载或随机光盘)。
2. 终端仿真程序参数:**波特率 38400**、数据位 8、校验无、停止位 1、流控无。
3. 回车出现 `TL-SE5420>` 提示符即登录成功;输入 `enable` 进特权模式。
### 3.2 基础安全设置
1. 改强口令(不落仓库);设时区 `Asia/Shanghai`、NTP。
2. **关 Telnet/HTTP**;保留 HTTPS + SSH
- 关 TelnetGUI `Security → Access Security → Telnet Config`,关闭 Telnet;或 CLI `telnet disable`
- 关 HTTP`Security → Access Security → HTTP Config`,关闭 HTTP server。
- 开 SSH`Security → Access Security → SSH Config`Enable SSH(默认端口 22)。
3. **关云管理**(商云 `smbcloud.tp-link.com.cn` 全局开关不开启;云管后续单独评估)。
4. **保存配置**——安装手册强调「配置实时生效,但断电前必须点保存配置」,每次改完都点保存。
### 3.2b SSH 登录 SE5420(覆盖确认)
> 参考官方《Accessing the Switch》与《OpenSSH 7.0+ 登录》指南。SSH 默认端口 **22**,
> 两种认证:口令模式(默认 `admin/admin`,改后为自定义口令)、密钥模式(PuTTY Key Generator 生成)。
**在 WSL/管理本上 SSH 登录:**
```bash
ssh -o KexAlgorithms=+diffie-hellman-group1-sha1 \
-o HostKeyAlgorithms=+ssh-rsa \
admin@192.168.66.253
# 输入口令后进 User EXEC 模式,再输入 enable 进特权模式
```
> ⚠️ **旧 SSH 算法兼容性**:若交换机只支持旧算法,仅对这一次到 `192.168.66.253` 的连接使用命令行 `-o` 选项;**不要**写入全局 `~/.ssh/config`,也不要对其他主机放宽算法。将交换机管理服务限制在 LAN66,并优先使用支持现代算法的固件。
**关 SSH(如不需 CLI 远程管理)**GUI `SSH Config` 关闭,或 CLI `no ip ssh server`
**保存(CLI**`copy running-config startup-config`
### 3.3 管理地址与 VLAN(第一步:只建 66/55)
> 菜单路径来自 TP-Link 官方《Omada 802.1Q VLAN 配置指南》与《管理 VLAN 指南》(SE5420 同平台)。
> 具体菜单名以设备 WEB 界面为准。**本步不建 VLAN10。**
> **顺序原则:必须先创建二层 VLAN,才能创建/启用对应的 VLAN InterfaceSVI);VLAN1 的默认管理 IP 与成员关系只能在 VLAN66 管理路径验证通过后删除。**
**1. 保持 Type-C Console 全程连接**:本流程先建二层 VLAN、后建 VLAN66 管理 SVI;全程保留 Console 与默认 VLAN1 管理路径作为兜底。SSH 会话不是回滚保障。
**2. 创建 VLAN66、VLAN55**`L2 Features → VLAN → 802.1Q VLAN → VLAN Config`**只建 66 / 55**):
- 先创建二层 VLAN66、VLAN55(成员端口在步骤 3 / 7 配置);**暂时保留默认 VLAN1 及其管理 IP**,在 VLAN66 管理路径验证前不要改动 VLAN1。
**3. 选择临时验证口(例如口 6)**`L2 Features → VLAN → 802.1Q VLAN → Port Config`):
- untagged VLAN66
- PVID **66**
- 该口仅用于本阶段验证 VLAN66 管理路径;其余口先不动。
**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. 管理本接临时验证口**:管理本网线接到口 6,静态 IP 设为 **`192.168.66.10/24`**。
**6. 验证 VLAN66 管理路径**
- ping `192.168.66.253`
- HTTPS 登录 WEB 管理;
- SSH 登录(若启用 CLI 远程管理);
- **保存配置后**(GUI 保存按钮或 CLI `copy running-config startup-config`)再次确认管理仍正常。
**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 台面验证(未接生产)
1. 管理本接一个已经启用的 VLAN66 access 口,例如口 6:应能访问 `192.168.66.253`,且仅限 LAN66 管理源。
2.`show vlan` / 对应 CLI 确认:业务口只有预期的 untagged VLAN66 或 VLAN55VLAN1 没有意外成员或管理 IP;未接线端口显示 down 属正常。
3. 确认没有 VLAN10、VLAN55 没有 SVI、也没有启用全局 IP routing/RIP/DHCP Server/Relay。
---
## 4. 第一步·阶段 2:维护窗迁移(30–60 分钟)
> 原则:**先断旧、后接新**;每次移动一根线后立即验证 MAC 地址表、协商速率、错误计数和业务。全程保持 SE5420 ConsoleSSH 会话不是回滚保障。
> **本步所有口都是 66/55 access,不涉及 VLAN10。**
### 4.0 准备
- 打印第 1 节端口表;给所有现网线缆贴标签。
- 为每根线记录旧端口、目标端口和明确的回插位置。
- 通知中断窗口;确认 Console 可用且可物理接触 ER-X、PVE、SE5420。SSH 可用于诊断,但不作为带外回滚。
### 4.1 建立 ER-X ↔ SE5420 两条上联
1. 接 SE5420 **上排口 1 ↔ ER-X `eth0`**LAN66 上联)。
- 此刻 ER-X eth0 可能还连着旧设备 → **先拔旧设备**,再接口 1(避免 eth0 同时连 SE5420 与旧路径形成环路)。
- 验证:管理本(或从 66 网)ping `192.168.66.253`SE5420)、`192.168.66.254`ER-X)、外网。
2. 接 SE5420 **下排口 9 ↔ ER-X `switch0` 某个成员口**LAN55 上联)。
- 同样先拔该口旧接线。
- 验证:从 55 网 ping `192.168.55.254``192.168.66.46`(控制器)。
### 4.2 迁移 PVE(双网卡)
1. PVE `enp1s0` → SE5420 **口 2access 66**
2. PVE `enp2s0` → SE5420 **口 10access 55**
3. 验证 PVE`ip -br addr` 显示 `.66.26``.55.26`;分别可达 `192.168.66.254``192.168.55.254`
4. PVE 物理网卡迁移会同时影响 vmbr0/vmbr1 上的多台 VM;逐台验证 gfw、dns、ubnt、haos 的 IP、网关、DNS 和实际业务,不以“宿主仍开机”代替验证。
### 4.3 迁移 AP 与接入设备
1. U6 Lite → SE5420 **口 3access 66**。本地取电,网线只走数据。
- 验证:U6 拿到 `.66.6`UniFi 控制器显示 Connected;其实际 Controller/Inform URL 与迁移前只读记录一致。
2. UAP-AC-Lite → SE5420 **口 11access 55**
- 验证:`.55.5` Connected。
3. **隔壁房间上联 → SE5420 口 12access 55**
- 对端是 **IoT 设备**(未来会有打印机)。迁移前确认那端是单台设备还是小交换机;若是下级交换机,记录型号并确认:只有一条上联、只承载 untagged LAN55、没有 VLAN trunk,且没有第二条路径返回 ER-X 或 SE5420。未满足任一项不得迁移。
- 验证:隔壁房间 IoT 设备恢复地址(LAN55 网段)、网关 `.254`、可达 DNS `.36`
4. NAS/FreeNAS(含 transmission jail)→ **仅口 4**;口 5 继续物理断开。口 6 **只接一台明确设备**windy-pc 或 hp-nas);若改为接下级交换机,必须记录其型号、确认其只有一条上联且仅承载 LAN66。逐个验证地址/DNS/业务。
- dns/.36、ubnt/.46、gfw/.1、haos 均随 PVE 网卡迁移,**不单独插口**——只验证 PVE 后这些 VM 的 IP 与业务即可。
5. 旧交换/旧接线仅在确认不形成并行二层路径后下电。单个终端保留 ER-X 直连不是环路;禁止的是同一下级交换机双上联、桥接双网口或同 VLAN 的并行二层路径。
### 4.4 全局验证(第一步 Done 判定)
见第 10 节第一阶段验收项全绿。**VLAN10 完全不在本步范围。**
---
# 第二步:VLAN10 升级专用 SSID(第一步稳定 ≥1 天后,多个独立维护窗)
> **放行门槛:**第一步验收前 7 条全绿、网络稳定运行 ≥1 天,且已完成本节的 PVE 边界、gfw 防火墙/NAT、IPv6 设计与只读核验。**SSID 是最后才启用的组件。** 任一步失败均不改变 LAN55/LAN66 的主网语义。
## 5. 第二步·阶段 1:PVE VLAN10 边界(独立维护窗)
当前 `vmbr0` 是非 VLAN-aware 的共享 bridge。它可形成 VLAN10 路径,但不能证明 VLAN10 只会交付给 gfw;同 bridge 的其他 VM 理论上可消费 tagged 帧。
**目标模型:**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
uci show network
uci show firewall
uci show dhcp
ip -4 route
ip -6 addr
ip -6 route
fw4 print
nft list ruleset
```
确认 `wan` zone 的实际接口和 NAT 状态、现有命名/匿名 forwarding、`ubunt_upg` 的 DHCP 绑定,以及 IPv6/RA/DHCPv6 状态。依据实际 section 名称创建**命名、可重复执行**的规则,不使用会重复累积的匿名 `uci add`。
### IPv4 目标策略
| 流量 | 动作 |
|---|---|
| VLAN10 → gfw DHCP、DNS | 允许 |
| VLAN10 → gfw SSH/LuCI/SNMP/其他管理服务 | 拒绝 |
| VLAN10 → LAN66、LAN55、其他 RFC1918 内网 | 拒绝 |
| VLAN10 → Internet | 允许 |
| established/related 回包 | 允许 |
- 保持 `ubunt_upg` 的默认 forward 策略为拒绝;仅创建明确的、命名的 `ubunt_upg → wan` forwarding。
- **不要**在 `ubunt_upg` 源 zone 设置 masquerade,也不要使用 `forward_policy` 这类非标准 zone 选项。
- 先确认 `wan` 是否已经产生正确的出口 NAT;若没有,为 `192.168.10.0/24` 配置 IPv4 SNAT/MASQUERADE,使其匹配 gfw 出 LAN66 的实际出口接口/zone。
- 拒绝内网的规则必须在生成的 nftables 规则中先于通用允许路径命中;以 `fw4 print` 和 `nft list ruleset` 验证,而非仅看 UCI 文本。
### IPv6 决策:本阶段明确不提供 VLAN10 IPv6
- 在 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 台面配置或出厂即可 |
| 第一步·阶段 2(维护窗内) | **停手**;把刚迁的线插回 ER-X 原口;不动 ER-X WAN/DHCP/SSH |
| 第二步·阶段 1PVE VLAN-aware + VM 140/gfw 迁移) | 按本节完整回滚顺序恢复 PVE、VM 140 与 gfw 配置;停止 VLAN10 项目 |
| 第二步·阶段 2SE5420 VLAN10 | 删 VLAN10、口 2/3 恢复严格 access VLAN66 |
| 第二步·阶段 3(gfw) | 恢复变更前已备份的命名规则/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 恢复出厂(忘记口令 / 需要重配)
> 官方《安装手册》附录 A「问题1」方法(**需 Console 串口**):
1. 管理本连 SE5420 **Type-C Console 口**(波特率 384008N1,无流控)。
2. 交换机断电重启;终端出现 **`Press CTRL-B to enter the bootUtil`** 时同时按 `Ctrl+B` 进 bootUtil 菜单。
3. 输入 `2`(软件复位),复位后恢复出厂默认;此后首次 WEB 登录为创建新用户名/密码(初始管理 IP 恢复 `10.18.18.251`)。
4. 恢复后按第一步·阶段 1 重配,并**重新保存配置**。
---
## 10. 验收清单(「网络算正常」的样子)
**第一步 Done(前 7 条全绿):**
1. SE5420 管理面:`192.168.66.253` 仅 LAN66 可达;默认口令已改;配置已离线备份。
2. LAN66:客户端 DHCP 拿 `.66.x`、网关 `.254`、DNS `.36`;外网通。
3. LAN55:客户端拿 `.55.x`、网关 `.254`、DNS `.36`;跨网段互通(`.55.x ↔ .66.x`)。
4. 端口转发逐条从公网验证(hass 8123 / transmission 51413 / ssh 5822→.36:22 / openvpn 1194)。
5. UniFiU6(`.66.6`) 与 AC-Lite(`.55.5`) Connected;两台 AP 的实际 Controller/Inform URL 与迁移前只读记录一致。
6. 无环路、无双默认网关;端口协商与错误计数正常;不再使用的旧交换已下电,且所有同 VLAN 并行二层路径均已拆除。
7. `gfw` 旁路由行为与升级前一致(主网默认网关仍 `.254`)。
**第二步额外(第 8 条):**
8. `ubnt-upg` 客户端获得 `192.168.10.x`、网关 `.10.1`、预期的 gfw DNS 地址;普通/国内/海外域名均按预期解析,IPv4 可上网;不可达 LAN66、LAN55、其他内网、gfw 管理面及 LAN66 `.36` DNS(除非书面允许);gfw 侧 DHCP、拒绝规则、NAT、DNS 与代理路径均能关联到该测试客户端。
**贯穿:**
9. LAN55/LAN66 的 IPv6 行为与迁移前基线一致;VLAN10 已显式关闭并核验 RA、DHCPv6、NDP relay/delegation、IPv6 forwarding 与前缀委派;客户端除可能的 link-local 外没有 GUA/ULA、IPv6 DNS、默认路由或 IPv6 出口。
---
## 11. 安全与记录
- **本仓库永不记录**:SE5420 口令、ER-X 配置快照(含 PPPoE/口令)、gfw 凭据。
- 每次实质变更后,在 Linear `vps` 项目记录 scope / action / verification / 遗留 follow-up。
- SE5420 配置备份离线保存;不做云管。
- SSH/访问策略变更遵循仓库「SSH access safety」流程。
---
## 12. 参考
- 设计说明:[lan-erx-se5420-network.md](lan-erx-se5420-network.md)
- 早期阶段计划(已细化于本文):[lan-core-switch-upgrade-plan.md](lan-core-switch-upgrade-plan.md)
- 现网地图:[lan-overview.md](lan-overview.md)
- ER-X[edgerouter-x-configuration.md](edgerouter-x-configuration.md)、[hosts/gw.md](../hosts/gw.md)
- UniFi / VLAN10 前置:[unifi-network.md](unifi-network.md)、[unifi-third-party-vlan10-dhcp.md](unifi-third-party-vlan10-dhcp.md)
- `gfw`[hosts/gfw.windy.lan.md](../hosts/gfw.windy.lan.md)
- PVE[PVE 透传方法调研](lan-rb5009-upgrade.md#阶段-5-附pve-上-vlan10-透传实现调研-2026-08-09)
- SE5420 官方安装手册(默认 IP `10.18.18.251`、Console 38400、恢复出厂):<https://service.tp-link.com.cn/download/202310/TL-SE5420%20V1.0安装手册%201.0.2.pdf>
- **SE5420 安装手册(Markdown 整理版)**[se5420-official-manuals/tl-se5420-install-manual.md](se5420-official-manuals/tl-se5420-install-manual.md)
- SE5420 规格:<https://www.tp-link.com.cn/product_2899.html?v=specification>
- SE5420 固件下载:<https://www.tp-link.com.cn/product_2899.html?v=download>
- Omada 802.1Q VLAN 配置指南(`L2 Features → VLAN → 802.1Q VLAN → VLAN Config / Port Config`):<https://support.omadanetworks.com/en/document/12981/>
- Omada 管理 VLAN 配置指南:<https://support.omadanetworks.com/en/document/13135/>
- TP-Link「Accessing the Switch」(WEB/Console/Telnet/SSH 登录、管理 IP 与网关、保存配置):<https://www.tp-link.com/us/configuration-guides/accessing_the_switch/?configurationId=18231>
- TP-Link「OpenSSH 7.0+ 登录交换机」(KexAlgorithms/HostKeyAlgorithms 兼容):<https://support.omadanetworks.com/en/document/12963/>