2026-08-09 21:22:02 +08:00
# 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 mm( 1U)。
**架构:** ER-X **保留**为唯一网关(PPPoE/NAT/防火墙/DHCP/双网段三层);SE5420 纯 L2 核心;
2026-08-10 11:00:28 +08:00
`gfw` 旁路由(OpenClash);后续 VLAN10 升级专用 SSID走 gfw 网关。SE5420 的用户数据平面只做二层;唯一 L3 例外为 LAN66 管理 SVI 与交换机自身默认网关。
2026-08-09 21:22:02 +08:00
---
## ⚠️ 两步实施总览(2026-08-09 确认)
**第一步(本次):只做 55/66 主网。** SE5420 初始化、ER-X 上联、PVE/AP/设备迁移、
2026-08-10 11:00:28 +08:00
验收稳定。除**禁用不可用的** `ubnt-upg` SSID 外,不修改其 VLAN、网络或 AP 配置;全程不建 VLAN10、不给口 2/3 加 tagged 10、不改 gfw。
2026-08-09 21:22:02 +08:00
2026-08-10 11:00:28 +08:00
**第二步(第一步稳定 ≥1 天后,多个独立维护窗):整体做 VLAN10。**
2026-08-09 21:22:02 +08:00
SE5420 加 VLAN10 + 口 2/3 tagged 10 → gfw 补齐 → UniFi 改 Third-party Gateway → 启用 SSID → 验证。
2026-08-10 11:00:28 +08:00
> 分离原则:第一步完成后网络与升级前语义一致(仅同 VLAN 交换变 2.5G)。唯一例外是先禁用不可用的 `ubnt-upg` SSID;第二步才完成 VLAN10 配置并重新启用该 SSID。VLAN10 的 PVE、交换机、gfw 与 UniFi 动作分属多个维护窗,回滚互不牵连。
2026-08-09 21:22:02 +08:00
| 步骤 | 范围 | Done 判定 |
|---|---|---|
2026-08-10 11:00:28 +08:00
| **第一步** | SE5420 台面配置(66/55) → ER-X 上联 → 迁移 → 稳定 | 第 10 节第一阶段验收项全绿 |
| **第二步** | VLAN10( SE5420 + gfw + UniFi + SSID) | 第 10 节第二阶段验收项 + 验证链全通 |
2026-08-09 21:22:02 +08:00
---
## 0. 已验证的现状事实(2026-08-09 只读核实)
> 以下事实已通过 SSH/UniFi API 实测确认,直接决定下文步骤:
| 项 | 实测结果 |
|---|---|
| PVE 物理网卡 | **双网卡** : `enp1s0` →vmbr0(LAN66 .26), `enp2s0` →vmbr1(LAN55 .26) |
2026-08-10 11:00:28 +08:00
| PVE bridge | `vmbr0` **非 vlan-aware( flat bridge) ** → 可在共享 bridge 上透传 tagged 帧给连接的 VM(含 gfw eth0);这不是严格隔离,其他 VM 理论上也可配置 VLAN10 接口 |
2026-08-09 21:22:02 +08:00
| PVE VM 清单 | 120 `pihole` =**dns/.36**( AdGuard+Mihomo, vmbr0)、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 在 |
2026-08-10 11:00:28 +08:00
| 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( **第二步才改**) |
2026-08-09 21:22:02 +08:00
| U6 Lite | `.66.6` ,有线上联,接 ER-X eth0( untagged 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 核心(纯 L2, VLAN-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 分排**:
**上排(口 1– 8) = 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 |
2026-08-10 11:00:28 +08:00
| 5 | NAS/FreeNAS 第 2 口(仅后续 LACP 维护窗使用) | **物理断开/禁用** | — | — |
| 6 | windy-pc( `.99` ) **或** hp-nas( `.32` ),二选一 | access | 66 | untagged 66 |
| 7– 8 | LAN66 预留 | **administratively down** | — | — |
2026-08-09 21:22:02 +08:00
| **下排 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 |
2026-08-10 11:00:28 +08:00
| 13 | 打印机(未来) | **administratively down** | — | — |
| 14– 16 | LAN55 预留 | **administratively down** | — | — |
2026-08-09 21:22:02 +08:00
| SFP+ 1– 4 | 未来 10G | 空槽 | — | — |
> **第二步才变更(本步不动)**:口 2、口 3 从 access 66 改为 **trunk( untagged 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 160( vmbr0)
> - **gfw( `.1`) ** = PVE VM 140( vmbr0 + vmbr1)
> - **haos / Home Assistant( `.55.11`) ** = PVE VM 180( vmbr1/LAN55)
> - **transmission( `.51`) ** = NAS(FreeNAS) 内 jail,走 NAS 网口
> **第一步关键约束:**
2026-08-10 11:00:28 +08:00
> - 所有**启用的**业务口为 66/55 access;未使用口 administratively down; **不建 VLAN10**。
2026-08-09 21:22:02 +08:00
> - **不要**向 ER-X 送任何 VLAN10 tag(本步根本没有 VLAN10)。
2026-08-10 11:00:28 +08:00
> - NAS 本步只接**一个**网口至口 4;口 5 保持物理断开或 administratively down。LACP 是独立维护窗:先在 TrueNAS 与交换机建立同一 802.3ad LAG,将 VLAN66 配到逻辑 LAG 而非成员口,再插第二根线。LACP 提升多客户端/多连接聚合吞吐,单个 TCP 流通常仍受一条链路限制。
> - 口 5、7、8、13– 16 和未使用 SFP+ 全部 administratively down;未来接入设备时,再显式配置 VLAN 并启用端口。
2026-08-09 21:22:02 +08:00
> - 禁止同一设备同时接旧路径与新核心(环路)。
---
## 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 网)。
2026-08-10 11:00:28 +08:00
4. **禁用 `ubnt-upg` SSID** ( UniFi 控制台 → WiFi → `ubnt-upg` → 关 enable)。当前没有已验证的 VLAN10 端到端路径;不要把“tagged 帧会自动进入 LAN66”当作事实。记录原设置以便第二步回滚。
> 这是第一步唯一涉及 VLAN10 的动作,目的是移除不可用入口,而不是处置未经证实的 LAN66 泄漏。
2026-08-09 21:22:02 +08:00
5. 备份当前 ER-X 配置(过滤敏感行),并给 `hosts/gw.md` 、`docs/lan-overview.md` 留改前快照。
2026-08-10 11:00:28 +08:00
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 口。
2026-08-09 21:22:02 +08:00
---
## 3. 第一步·阶段 1:离线初始化 SE5420(台面,不接生产)
> 本阶段细节来自官方《TL-SE5420 安装手册》V1.0( 2023)与 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:
- 关 Telnet: GUI `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 \
2026-08-10 11:00:28 +08:00
-o HostKeyAlgorithms = +ssh-rsa \
2026-08-09 21:22:02 +08:00
admin@192.168.66.253
# 输入口令后进 User EXEC 模式,再输入 enable 进特权模式
```
2026-08-10 11:00:28 +08:00
> ⚠️ **旧 SSH 算法兼容性**:若交换机只支持旧算法,仅对这一次到 `192.168.66.253` 的连接使用命令行 `-o` 选项;**不要**写入全局 `~/.ssh/config`,也不要对其他主机放宽算法。将交换机管理服务限制在 LAN66,并优先使用支持现代算法的固件。
2026-08-09 21:22:02 +08:00
**关 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。**
2026-08-10 11:00:28 +08:00
> **顺序原则:必须先创建二层 VLAN,才能创建/启用对应的 VLAN Interface( SVI);VLAN1 的默认管理 IP 与成员关系只能在 VLAN66 管理路径验证通过后删除。**
2026-08-09 21:22:02 +08:00
2026-08-10 11:00:28 +08:00
**1. 保持 Type-C Console 全程连接** :本流程先建二层 VLAN、后建 VLAN66 管理 SVI;全程保留 Console 与默认 VLAN1 管理路径作为兜底。SSH 会话不是回滚保障。
2026-08-09 21:22:02 +08:00
2026-08-10 11:00:28 +08:00
**2. 创建 VLAN66、VLAN55** ( `L2 Features → VLAN → 802.1Q VLAN → VLAN Config` , **只建 66 / 55**):
- 先创建二层 VLAN66、VLAN55(成员端口在步骤 3 / 7 配置);**暂时保留默认 VLAN1 及其管理 IP**,在 VLAN66 管理路径验证前不要改动 VLAN1。
2026-08-09 21:22:02 +08:00
2026-08-10 11:00:28 +08:00
**3. 选择临时验证口(例如口 6)** ( `L2 Features → VLAN → 802.1Q VLAN → Port Config` ):
- untagged VLAN66;
- PVID **66** 。
- 该口仅用于本阶段验证 VLAN66 管理路径;其余口先不动。
2026-08-09 21:22:02 +08:00
2026-08-10 11:00:28 +08:00
**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 连接。
2026-08-09 21:22:02 +08:00
2026-08-10 11:00:28 +08:00
**5. 管理本接临时验证口** :管理本网线接到口 6,静态 IP 设为 ** `192.168.66.10/24` **。
2026-08-09 21:22:02 +08:00
2026-08-10 11:00:28 +08:00
**6. 验证 VLAN66 管理路径** :
- ping `192.168.66.253` ;
- HTTPS 登录 WEB 管理;
- SSH 登录(若启用 CLI 远程管理);
- **保存配置后**(GUI 保存按钮或 CLI `copy running-config startup-config` )再次确认管理仍正常。
2026-08-09 21:22:02 +08:00
2026-08-10 11:00:28 +08:00
**7. 配置其余 VLAN66/VLAN55 端口及 PVID** ( `L2 Features → VLAN → 802.1Q VLAN → Port Config` ):
- VLAN66: untagged 口 1、2、3、4、6; VLAN55: untagged 口 9– 12。
- 口 1、2、3、4、6: PVID **66** ;口 9– 12: PVID **55** 。
- access 口仅允许其 untagged VLAN,开启 ingress filtering,并拒收 tagged 入站帧(以该机型可用选项为准)。
**8. 确认 VLAN66 管理路径稳定后,再清理默认 VLAN1** :
- 把口 1– 16 从 **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 Guard; ER-X、PVE、AP 或下级交换机上联口不要启用 BPDU Guard。
- **保存配置**: `System → Save Config` 或右上角保存按钮,否则断电丢失。
- **导出配置备份**(离线保存,**不进本仓库**)。
2026-08-09 21:22:02 +08:00
### 3.4 台面验证(未接生产)
2026-08-10 11:00:28 +08:00
1. 管理本接一个已经启用的 VLAN66 access 口,例如口 6:应能访问 `192.168.66.253` ,且仅限 LAN66 管理源。
2. 用 `show vlan` / 对应 CLI 确认:业务口只有预期的 untagged VLAN66 或 VLAN55; VLAN1 没有意外成员或管理 IP;未接线端口显示 down 属正常。
3. 确认没有 VLAN10、VLAN55 没有 SVI、也没有启用全局 IP routing/RIP/DHCP Server/Relay。
2026-08-09 21:22:02 +08:00
---
## 4. 第一步·阶段 2:维护窗迁移(30–60 分钟)
2026-08-10 11:00:28 +08:00
> 原则:**先断旧、后接新**;每次移动一根线后立即验证 MAC 地址表、协商速率、错误计数和业务。全程保持 SE5420 Console; SSH 会话不是回滚保障。
2026-08-09 21:22:02 +08:00
> **本步所有口都是 66/55 access,不涉及 VLAN10。**
### 4.0 准备
- 打印第 1 节端口表;给所有现网线缆贴标签。
2026-08-10 11:00:28 +08:00
- 为每根线记录旧端口、目标端口和明确的回插位置。
- 通知中断窗口;确认 Console 可用且可物理接触 ER-X、PVE、SE5420。SSH 可用于诊断,但不作为带外回滚。
2026-08-09 21:22:02 +08:00
### 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 **口 2( access 66) ** 。
2. PVE `enp2s0` → SE5420 **口 10( access 55) ** 。
2026-08-10 11:00:28 +08:00
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 和实际业务,不以“宿主仍开机”代替验证。
2026-08-09 21:22:02 +08:00
### 4.3 迁移 AP 与接入设备
1. U6 Lite → SE5420 **口 3( access 66) ** 。本地取电,网线只走数据。
2026-08-10 11:00:28 +08:00
- 验证:U6 拿到 `.66.6` , UniFi 控制器显示 Connected;其实际 Controller/Inform URL 与迁移前只读记录一致。
2026-08-09 21:22:02 +08:00
2. UAP-AC-Lite → SE5420 **口 11( access 55) ** 。
- 验证:`.55.5` Connected。
3. **隔壁房间上联 → SE5420 口 12( access 55) ** 。
2026-08-10 11:00:28 +08:00
- 对端是 **IoT 设备** (未来会有打印机)。迁移前确认那端是单台设备还是小交换机;若是下级交换机,记录型号并确认:只有一条上联、只承载 untagged LAN55、没有 VLAN trunk,且没有第二条路径返回 ER-X 或 SE5420。未满足任一项不得迁移。
2026-08-09 21:22:02 +08:00
- 验证:隔壁房间 IoT 设备恢复地址(LAN55 网段)、网关 `.254` 、可达 DNS `.36` 。
2026-08-10 11:00:28 +08:00
4. NAS/FreeNAS(含 transmission jail)→ **仅口 4** ;口 5 继续物理断开。口 6 **只接一台明确设备** ( windy-pc 或 hp-nas);若改为接下级交换机,必须记录其型号、确认其只有一条上联且仅承载 LAN66。逐个验证地址/DNS/业务。
2026-08-09 21:22:02 +08:00
- dns/.36、ubnt/.46、gfw/.1、haos 均随 PVE 网卡迁移,**不单独插口**——只验证 PVE 后这些 VM 的 IP 与业务即可。
2026-08-10 11:00:28 +08:00
5. 旧交换/旧接线仅在确认不形成并行二层路径后下电。单个终端保留 ER-X 直连不是环路;禁止的是同一下级交换机双上联、桥接双网口或同 VLAN 的并行二层路径。
2026-08-09 21:22:02 +08:00
### 4.4 全局验证(第一步 Done 判定)
2026-08-10 11:00:28 +08:00
见第 10 节第一阶段验收项全绿。**VLAN10 完全不在本步范围。**
2026-08-09 21:22:02 +08:00
---
2026-08-10 11:00:28 +08:00
# 第二步:VLAN10 升级专用 SSID(第一步稳定 ≥1 天后,多个独立维护窗)
2026-08-09 21:22:02 +08:00
2026-08-10 11:00:28 +08:00
> **放行门槛:**第一步验收前 7 条全绿、网络稳定运行 ≥1 天,且已完成本节的 PVE 边界、gfw 防火墙/NAT、IPv6 设计与只读核验。**SSID 是最后才启用的组件。** 任一步失败均不改变 LAN55/LAN66 的主网语义。
2026-08-09 21:22:02 +08:00
2026-08-10 11:00:28 +08:00
## 5. 第二步·阶段 1:PVE VLAN10 边界(独立维护窗)
2026-08-09 21:22:02 +08:00
2026-08-10 11:00:28 +08:00
当前 `vmbr0` 是非 VLAN-aware 的共享 bridge。它可形成 VLAN10 路径,但不能证明 VLAN10 只会交付给 gfw;同 bridge 的其他 VM 理论上可消费 tagged 帧。
2026-08-09 21:22:02 +08:00
2026-08-10 11:00:28 +08:00
**目标模型:**SE5420 口2为 external native/untagged VLAN66 + tagged VLAN10; PVE 的既有管理接口和普通 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 仍在 LAN66; gfw 有唯一 VLAN10 接口;` bridge vlan show`、VM NIC 配置和抓包都证明其他 VM 无 VLAN10 可达性。
6. 未通过本节不得继续 VLAN10 项目;不得将 flat bridge 共享 trunk 描述为严格隔离。
## 6. 第二步·阶段 2: SE5420 增加 VLAN10( PVE 边界通过后)
1. **建 VLAN10**( ` L2 Features → VLAN → 802.1Q VLAN → VLAN Config`):仅 **tagged 口 2、口 3**。
2. 将口 2(PVE)和口 3( U6)改为严格 trunk: native/untagged VLAN66 + tagged VLAN10;只允许 VLAN66、VLAN10,并开启 ingress filtering。
3. 其余端口不允许 VLAN10; VLAN10 不创建 SVI、DHCP 或路由功能。
4. 保存配置后用 ` show vlan`、端口状态、MAC 表验证 VLAN10 仅出现在口 2/3,且 VLAN66 管理流量不受影响。
## 7. 第二步·阶段 3: gfw 防火墙、NAT 与 IPv6( SSH ` root@192 .168.66.1`)
**先只读确认,禁止直接复制旧片段:**
2026-08-09 21:22:02 +08:00
` ``sh
2026-08-10 11:00:28 +08:00
uci show network
uci show firewall
uci show dhcp
ip -4 route
ip -6 addr
ip -6 route
fw4 print
nft list ruleset
2026-08-09 21:22:02 +08:00
` ``
2026-08-10 11:00:28 +08:00
确认 ` wan` zone 的实际接口和 NAT 状态、现有命名/匿名 forwarding、` ubunt_upg` 的 DHCP 绑定,以及 IPv6/RA/DHCPv6 状态。依据实际 section 名称创建**命名、可重复执行**的规则,不使用会重复累积的匿名 ` uci add`。
2026-08-09 21:22:02 +08:00
2026-08-10 11:00:28 +08:00
### IPv4 目标策略
2026-08-09 21:22:02 +08:00
2026-08-10 11:00:28 +08:00
| 流量 | 动作 |
|---|---|
| VLAN10 → gfw DHCP、DNS | 允许 |
| VLAN10 → gfw SSH/LuCI/SNMP/其他管理服务 | 拒绝 |
| VLAN10 → LAN66、LAN55、其他 RFC1918 内网 | 拒绝 |
| VLAN10 → Internet | 允许 |
| established/related 回包 | 允许 |
2026-08-09 21:22:02 +08:00
2026-08-10 11:00:28 +08:00
- 保持 ` 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 文本。
2026-08-09 21:22:02 +08:00
2026-08-10 11:00:28 +08:00
### IPv6 决策:本阶段明确不提供 VLAN10 IPv6
2026-08-09 21:22:02 +08:00
2026-08-10 11:00:28 +08:00
- 在 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. 第二步·阶段 4: UniFi 改网络 + 启用 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. 回滚语义
2026-08-09 21:22:02 +08:00
| 步骤/阶段 | 失败动作 |
|---|---|
| 第一步·阶段 1 | 无生产影响;还原 SE5420 台面配置或出厂即可 |
| 第一步·阶段 2(维护窗内) | **停手**;把刚迁的线插回 ER-X 原口;不动 ER-X WAN/DHCP/SSH |
2026-08-10 11:00:28 +08:00
| 第二步·阶段 1( PVE VLAN-aware + VM 140/gfw 迁移) | 按本节完整回滚顺序恢复 PVE、VM 140 与 gfw 配置;停止 VLAN10 项目 |
| 第二步·阶段 2( SE5420 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。
2026-08-09 21:22:02 +08:00
### SE5420 恢复出厂(忘记口令 / 需要重配)
> 官方《安装手册》附录 A「问题1」方法(**需 Console 串口**):
1. 管理本连 SE5420 **Type-C Console 口**(波特率 38400, 8N1,无流控)。
2. 交换机断电重启;终端出现 **` Press CTRL-B to enter the bootUtil`** 时同时按 ` Ctrl+B` 进 bootUtil 菜单。
3. 输入 ` 2`(软件复位),复位后恢复出厂默认;此后首次 WEB 登录为创建新用户名/密码(初始管理 IP 恢复 ` 10.18.18.251`)。
4. 恢复后按第一步·阶段 1 重配,并**重新保存配置**。
---
2026-08-10 11:00:28 +08:00
## 10. 验收清单(「网络算正常」的样子)
2026-08-09 21:22:02 +08:00
**第一步 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)。
2026-08-10 11:00:28 +08:00
5. UniFi: U6(` .66.6`) 与 AC-Lite(` .55.5`) Connected;两台 AP 的实际 Controller/Inform URL 与迁移前只读记录一致。
6. 无环路、无双默认网关;端口协商与错误计数正常;不再使用的旧交换已下电,且所有同 VLAN 并行二层路径均已拆除。
2026-08-09 21:22:02 +08:00
7. ` gfw` 旁路由行为与升级前一致(主网默认网关仍 ` .254`)。
**第二步额外(第 8 条):**
2026-08-10 11:00:28 +08:00
8. ` ubnt-upg` 客户端获得 ` 192.168.10.x`、网关 ` .10.1`、预期的 gfw DNS 地址;普通/国内/海外域名均按预期解析,IPv4 可上网;不可达 LAN66、LAN55、其他内网、gfw 管理面及 LAN66 ` .36` DNS(除非书面允许);gfw 侧 DHCP、拒绝规则、NAT、DNS 与代理路径均能关联到该测试客户端。
2026-08-09 21:22:02 +08:00
**贯穿:**
2026-08-10 11:00:28 +08:00
9. LAN55/LAN66 的 IPv6 行为与迁移前基线一致;VLAN10 已显式关闭并核验 RA、DHCPv6、NDP relay/delegation、IPv6 forwarding 与前缀委派;客户端除可能的 link-local 外没有 GUA/ULA、IPv6 DNS、默认路由或 IPv6 出口。
2026-08-09 21:22:02 +08:00
---
2026-08-10 11:00:28 +08:00
## 11. 安全与记录
2026-08-09 21:22:02 +08:00
- **本仓库永不记录**:SE5420 口令、ER-X 配置快照(含 PPPoE/口令)、gfw 凭据。
- 每次实质变更后,在 Linear ` vps` 项目记录 scope / action / verification / 遗留 follow-up。
- SE5420 配置备份离线保存;不做云管。
- SSH/访问策略变更遵循仓库「SSH access safety」流程。
---
2026-08-10 11:00:28 +08:00
## 12. 参考
2026-08-09 21:22:02 +08:00
- 设计说明:[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/>