docs: refine SE5420 upgrade guide into granular step-by-step ops

This commit is contained in:
windyboy
2026-08-11 11:07:25 +08:00
parent ffb37a916e
commit 7b4c48eb93
+345 -371
View File
@@ -1,296 +1,246 @@
# SE5420 核心交换机升级实践指南(两步实施
# SE5420 核心交换机升级操作指导(细粒度版
**状态** SE5420 **已采购**,待实施。本文是真实可操作、可验证的升级实践文档;
取代早期「规划说明」性质文档中的实施细节([lan-erx-se5420-network.md](lan-erx-se5420-network.md)、
[lan-core-switch-upgrade-plan.md](lan-core-switch-upgrade-plan.md) 保留作拓扑/设计参考)。
**目标** 把 LAN66/LAN55 有线接入从 ER-X 内置交换迁到 TL-SE5420;稳定后再启用 VLAN10 升级专用 SSID。
**硬件:** 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 与交换机自身默认网关
**全程三条(不再重复):**
1. 先断旧、后接新,一次一根线;同一设备不得同时接旧路径与新核心
2. 全程保持 SE5420 Type-C Console38400 8N1)连接——SSH 会话移动其承载链路即断,不是回滚保障
3. 任一步「预期」不符 → 停止,执行 §16 对应回滚;故障中不动 ER-X 的 WAN/DHCP/SSH。
**关于命令的真实性:** SE5420 的 GUI 菜单路径来自官方 Omada VLAN/管理指南;CLI 语法仅采用官方手册出现过的(`enable``telnet disable``copy running-config startup-config``show vlan`)。PVE/gfw 的每步先有只读快照命令,改动均以你实际看到的输出为准,不套用写死的模板。
---
## ⚠️ 两步实施总览(2026-08-09 确认)
# 第一阶段:主网 55/66 迁移
**第一步(本次):只做 55/66 主网。** SE5420 初始化、ER-X 上联、PVE/AP/设备迁移、
验收稳定。除**禁用不可用的** `ubnt-upg` SSID 外,不修改其 VLAN、网络或 AP 配置;全程不建 VLAN10、不给口 2/3 加 tagged 10、不改 gfw。
## 1. 开工前准备
**第二步(第一步稳定 ≥1 天后,多个独立维护窗):整体做 VLAN10。**
SE5420 加 VLAN10 + 口 2/3 tagged 10 → gfw 补齐 → UniFi 改 Third-party Gateway → 启用 SSID → 验证。
### 1.1 备份(4 个动作,全部留档到 `/tmp/opencode/baseline-YYYYMMDD/`,不进仓库)
> 分离原则:第一步完成后网络与升级前语义一致(仅同 VLAN 交换变 2.5G)。唯一例外是先禁用不可用的 `ubnt-upg` SSID;第二步才完成 VLAN10 配置并重新启用该 SSID。VLAN10 的 PVE、交换机、gfw 与 UniFi 动作分属多个维护窗,回滚互不牵连。
1. ER-X 配置快照(滤敏感行):
```bash
mkdir -p /tmp/opencode/baseline-$(date +%Y%m%d)
ssh -4 zhiqiang@192.168.66.254 'show configuration commands' \
| grep -Ev 'pppoe|password|secret|key|pre-shared' \
> /tmp/opencode/baseline-$(date +%Y%m%d)/gw-sanitized.txt
```
- 预期:文件非空,`grep -i 'password\|pppoe' gw-sanitized.txt` 无输出。
2. PVE 配置:
```bash
ssh -4 root@192.168.66.26 'cat /etc/network/interfaces; echo ---; qm config 140' \
> /tmp/opencode/baseline-$(date +%Y%m%d)/pve-interfaces.txt
```
- 预期:能看到 `vmbr0`/`vmbr1` 定义与 VM140 的 `net0`/`net1`。
3. gfw 配置:
```bash
ssh -4 root@192.168.66.1 'cat /etc/config/network /etc/config/dhcp /etc/config/firewall' \
> /tmp/opencode/baseline-$(date +%Y%m%d)/gfw-uci.txt
```
- 预期:三个文件内容都在,且能看到 `ubunt_upg` zone、`ubunt_upg_nat`、`ubunt_upg_to_lan`。
4. 检查备份文件存在且可读:`ls -la /tmp/opencode/baseline-$(date +%Y%m%d)/`。
| 步骤 | 范围 | Done 判定 |
|---|---|---|
| **第一步** | SE5420 台面配置(66/55) → ER-X 上联 → 迁移 → 稳定 | 第 10 节第一阶段验收项全绿 |
| **第二步** | VLAN10SE5420 + gfw + UniFi + SSID | 第 10 节第二阶段验收项 + 验证链全通 |
### 1.2 记录现网状态(迁移后比对用)
---
1. ER-X 状态:
```bash
ssh -4 zhiqiang@192.168.66.254 'show interfaces; show ip route; show dhcp server leases'
```
- 预期:eth0/switch0 up;两条直连路由 + pppoe0 默认路由;DHCP lease 正常。
2. PVE 地址:
```bash
ssh -4 root@192.168.66.26 'ip -br addr'
```
- 预期:`vmbr0`=192.168.66.26、`vmbr1`=192.168.55.26。
3. gfw 关键状态:
```bash
ssh -4 root@192.168.66.1 'uci show firewall | grep -E "ubunt_upg|wan.*masq"; ip -4 route'
```
- 预期:`wan.masq=1`、`ubunt_upg_nat`、`ubunt_upg_to_lan` 在位;默认路由 `default via 192.168.66.254`。
4. 两台 AP:打开 UniFi 控制台 → Devices,记录 U6 Lite 与 UAP-AC-Lite 的 IP、Connected 状态、Inform URL。
## 0. 已验证的现状事实(2026-08-09 只读核实)
### 1.3 SSID 与标签
> 以下事实已通过 SSH/UniFi API 实测确认,直接决定下文步骤:
1. 禁用不可用 SSIDUniFi → WiFi → 找到 `ubnt-upg` → 关闭 Enabled 开关。
- 预期:开关变灰/显示 Disabled。
- 记录原设置(第二步回滚要用)。
2. 给现网每根线缆贴标签:`旧设备端接口名` + `目标 SE5420 口`,如 `NAS→SE5420口4`、`ERX-eth0→SE5420口1`。
3. 打印 §2 端口表放在操作位。
| 项 | 实测结果 |
|---|---|
| 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 帧 |
### 1.4 物料与带外
---
1. 确认有:SE5420(核对 V1.0 型号)、原装电源线、Type-C 串口线、Cat5e 以上网线数根、标签贴。
2. 管理本装「TP-LINK USB 串口驱动」(官网下载或随机光盘)。
3. 终端仿真软件准备(PuTTY/串口助手/Windows Terminal),预填参数 **38400 / 8 / 无校验 / 1 / 无流控**。
# 第一步:SE5420 + 55/66 主网
## 2. 端口表(SE5420
## 1. 目标拓扑与端口规划(第一步范围)
> 面板:上排口 18 = LAN66,下排口 916 = LAN55,每排首位是该 VLAN 的 ER-X 上联。接线前对照实物面板编号。
```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 |
| SE5420 口 | 对端 | 模式 | PVID | 成员 VLAN |
|---|---|---|---|---|
| **上排 1** | ER-X `eth0`66 上联) | access | 66 | untagged 66 |
| 2 | PVE `enp1s0`(承载 gfw/dns/ubnt VM | access | 66 | untagged 66 |
| 2 | PVE `enp1s0` | 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** | — | — |
| 4 | NAS/FreeNAS 第 1 口 | access | 66 | untagged 66 |
| 5 | NAS 第 2 口(后续 LACP 用) | 物理断开 | — | — |
| 6 | windy-pc`.99`)或 hp-nas`.32`二选一 | access | 66 | untagged 66 |
| 78 | LAN66 预留 | admin down | — | — |
| **下排 9** | ER-X `switch0` 成员口(55 上联) | access | 55 | untagged 55 |
| 10 | PVE `enp2s0`(承载 haos VM | access | 55 | untagged 55 |
| 10 | PVE `enp2s0` | 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** | — | — |
| 12 | 隔壁房间上联(IoT | access | 55 | untagged 55 |
| 13 | 打印机(未来) | admin down | — | — |
| 1416 | LAN55 预留 | admin down | — | — |
| SFP+ 14 | 未来 10G | 空槽 | — | — |
> **第二步才变更(本步不动)**:口 2、口 3 从 access 66 改为 **trunkuntagged 66 + tagged 10**
> 并新建 VLAN10。第一步**不要**建 VLAN10、**不要**在任何口上 tagged 10
- 第一步不建 VLAN10、不向 ER-X 送任何 tag、口 2/3 不做 trunk。
- NAS 只接口 4,口 5 断开(LACP 是独立维护窗)
- 不占口的 VMdns(.36=VM120)、ubnt(.46=VM160)、gfw(.1=VM140)、haos(.55.11=VM180)transmission(.51) 是 NAS jail。
> **哪些设备不占 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 网口
## 3. 开箱与固件升级
> **第一步关键约束:**
> - 所有**启用的**业务口为 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 并启用端口
> - 禁止同一设备同时接旧路径与新核心(环路)
1. 核对包装型号 `TL-SE5420`;看设备底部标签硬件版本 `V1.0`。
2. 浏览器打开 `https://www.tp-link.com.cn/product_2899.html?v=download`
3. 页面「升级软件」分类下下载最新固件(已知 `20230908_1.0.0`,以页面为准);解压得到 `.bin` 文件
4. 管理本网线接 SE5420 任意 RJ45 口;管理本设静态 IP `10.18.18.10/24`(网关留空)
5. 浏览器 `http://10.18.18.251`,首次登录创建用户名 + 强密码
6. WEB 里 `系统 → 软件升级 → 选择文件` 选固件 → 升级 → 等待重启,**期间勿断电**
7. **验证:** 升级后 `系统 → 系统信息` 版本号正确;面板 SYS 灯绿色闪烁、Link/Act 闪一下后熄灭。
## 4. 台面初始化 SE5420(不接生产)
### 4.1 登录通道确认
1. Console 线接 SE5420 Type-C Console 口 → 管理本 USB。
2. 打开串口终端(38400/8/无/1/无流控),连按回车。
3. **预期:** 出现 `TL-SE5420>` 提示符。
4. 输入 `enable` 回车,进特权模式(提示符变 `#` 或类似)。
5. 若 WEB 也通(第 3 步已创建账号),记录:WEB + Console 双通道可用。
### 4.2 基础安全
1. WEB 登录 → 改强口令:`Security → Access Security`(或管理账户设置)→ 修改密码 → 保存。
2. 设时区与 NTP`System → System Settings` → Timezone `Asia/Shanghai` → NTP server 填 `ntp.aliyun.com`(或 `pool.ntp.org`)→ 保存。
3. 关 Telnet`Security → Access Security → Telnet Config` → Enable 关闭。
- CLI 替代:`telnet disable`。
4. 关 HTTP`Security → Access Security → HTTP Config` → HTTP server 关闭(保留 HTTPS)。
5. 开 SSH`Security → Access Security → SSH Config` → Enable SSH(端口 22)。
6. 关云管理:`云管理`/`Cloud Management` → 全局开关保持关闭(不绑定 `smbcloud.tp-link.com.cn`)。
7. **保存:** 右上角保存按钮,或 `System → Save Config`。
8. **验证:** CLI `show running-config` 中 Telnet/HTTP 为 disable;管理本 `https://10.18.18.251` 能开、SSH 22 能连(此时管理 IP 仍是默认 10.18.18.25166.253 的 HTTPS 验证在 §4.3 第 7 步做)。
### 4.3 VLAN 与管理地址(本步只建 66/55)
**步骤顺序依据:先建二层 VLAN → 再建 SVI → 验证管理路径 → 才清理 VLAN1。**
1. 建 VLAN66`L2 Features → VLAN → 802.1Q VLAN → VLAN Config` → 新建 → VLAN ID 填 `66` → 保存。
2. 建 VLAN55:同上 → VLAN ID 填 `55` → 保存。
3. **验证:** VLAN 列表出现 66、55;VLAN1 仍在(暂不动)。
4. 配临时验证口 6`VLAN Config` 旁的 `Port Config` → 选口 6 → Port mode `Access` → PVID `66` → 允许 untagged VLAN `66` → 保存。
5. 建管理 SVI`L3 FEATURES → Interface` → 找到 VLAN66 接口 → 编辑 IPv4 → 手动/静态 `192.168.66.253`,掩码 `255.255.255.0` → 默认网关 `192.168.66.254` → 保存。
6. 管理本改静态 IP `192.168.66.10/24`,网线接口 6。
7. **验证管理路径:**
- `ping 192.168.66.253` → 通;
- 浏览器 `https://192.168.66.253` → 登录成功;
- (可选)SSH`ssh -o KexAlgorithms=+diffie-hellman-group1-sha1 -o HostKeyAlgorithms=+ssh-rsa admin@192.168.66.253` → 成功。
- 全通后再进行下一步;否则停手排查(查 PVID/untagged/接线),保持 Console 兜底。
8. 配 66 侧端口:`Port Config` 逐口设:口 1/2/3/4 → Access、PVID `66`、untagged `66`(口 6 上一步已配)。
9. 配 55 侧端口:口 9/10/11/12 → Access、PVID `55`、untagged `55`。
10. 每个 access 口开启 ingress filtering、拒收 tagged 入站帧(该机型对应选项,如 Ingress checking/VLAN filtering → Enable)。
11. **保存配置**(右上角保存或 `System → Save Config`)。
12. **验证:** `show vlan`:口 1/2/3/4/6 属 VLAN66,口 912 属 VLAN55,口 5/7/8/1316 无成员;VLAN1 暂时还有全口成员(下一步清理)。
13. 清理 VLAN1`Port Config` 逐口(口 116)把 `untagged VLAN` 从 VLAN1 移除(保留 66 或 55)。**改 PVID 不等于移除成员。**
14. 删 VLAN1 管理 IP`L3 FEATURES → Interface` → VLAN1 → 清空 IPv4。
15. **保存配置**。
16. **验证:** `show vlan` VLAN1 无任何成员、无管理 IPVLAN66 管理路径仍通(SSH/HTTPS 不断)。
17. 关未用端口:`Port Config` 口 5、7、8、13–16 → 端口状态 `Disabled`/administratively down。
18. 配管理 ACL`Security → Access Security → Management Access Control`(或对应 ACL)→ 允许源网段 `192.168.66.0/24` 访问 HTTPS/SSH(启用 SNMP 则一并限制)→ 其余拒绝 → 保存。
19. 配生成树:`L2 Features → Spanning Tree` → 模式 `RSTP`(或 MSTP)→ 本机优先级 `4096` → 终端 access 口开 `Edge/PortFast` + `BPDU Guard`;口 1/2/3/4/6/9/10/11/12(接 ER-X/PVE/AP/下联)**不开** BPDU Guard → 保存。
20. **L3 明确边界检查:** `L3 FEATURES` 确认只有 VLAN66 有 SVI;无 VLAN55/VLAN10 接口;`Routing`/`Static Route` 无用户路由;`DHCP Server/Relay` 未启用;RIP 未启用。
21. **保存 + 导出备份:** 保存配置;`系统 → 配置备份/导入导出` → 导出配置文件到管理本(离线保存,不进仓库)。
22. **断电重启验证:** 拔电源 10 秒 → 插回 → 重启完成后 `ping 192.168.66.253` 通、HTTPS/SSH 可登录 → 证明保存生效。
### 4.4 台面完成判定
- `show vlan` 结果与 §2 端口表一致;VLAN1 空;管理仅 LAN66 可达;配置已导出。
## 5. 建立上联(维护窗开始)
1. 找到 ER-X `eth0` 当前所连的旧设备/旧交换线,**先拔掉旧线**(避免 eth0 同时连两条路径形成环路)。
2. 新线一端插 SE5420 **口 1**,另一端插 ER-X `eth0`。
3. **验证:**
- 管理本 `ping 192.168.66.253` → 通(SE5420);
- `ping 192.168.66.254` → 通(ER-X);
- `ping 223.5.5.5` → 通(外网);
- SE5420 `show interface` 口 1:Link up、速率协商正常、错误计数 0。
4. 找到 ER-X `switch0` 某成员口(eth1–eth3 任一口)的旧接线,先拔。
5. 新线一端插 SE5420 **口 9**,另一端插该 switch0 成员口。
6. **验证:**
- 从 55 网段设备(或临时给管理本加 `.55.x` 地址)`ping 192.168.55.254` → 通;
- `ping 192.168.66.46`(控制器,跨网段)→ 通;
- SE5420 `show interface` 口 9Link up、错误计数 0。
## 6. 迁移 PVE
1. 拔 PVE `enp1s0` 旧线 → 插 SE5420 **口 2**。
2. **验证:**
```bash
ssh -4 root@192.168.66.26 'ip -br addr'
```
- 预期:`enp1s0`/`vmbr0` = `192.168.66.26/24`
- `ssh -4 root@192.168.66.26 'ping -c3 192.168.66.254'` → 通。
3. 拔 PVE `enp2s0` 旧线 → 插 SE5420 **口 10**。
4. **验证:**
- `ip -br addr``vmbr1` = `192.168.55.26/24`
- `ping -c3 192.168.55.254` → 通。
5. 逐台验证 VM(顺序:gfw → dns → ubnt → haos):
```bash
ssh -4 root@192.168.66.26 'qm list'
```
- gfw`ping -c3 192.168.66.1` → 通;
- dns`ping -c3 192.168.66.36` → 通;
- ubnt`ping -c3 192.168.66.46` → 通;
- haos`ping -c3 192.168.55.11` → 通(注意是 55 网段)。
6. 每个 VM 再验业务:gfw 的 OpenClash 面板/DNS 正常、dns 的 AdGuard UI 能开、ubnt 控制器 Connected、haos 界面能开。不以"宿主开机"代替。
## 7. 迁移 AP 与接入设备
1. U6 Lite:先拔旧线 → 插 SE5420 **口 3**(本地 PoE 注入器不动,网线只走数据)。
2. **验证:** U6 重连后拿回 `192.168.66.6`UniFi 控制台显示 U6 ConnectedInform 与 §1.2 记录一致。
3. UAP-AC-Lite:拔旧线 → 插 SE5420 **口 11**。
4. **验证:** `192.168.55.5`UniFi 显示 Connected。
5. 隔壁房间上联:拔旧线 → 插 SE5420 **口 12**。
- 插之前确认对端:若对端是小交换机,须满足——只有一条上联、只承载 untagged LAN55、无 VLAN trunk、无第二条路径回 ER-X/SE5420。任一项不满足则不迁移。
6. **验证:** 该网段设备拿到 `.55.x`、网关 `192.168.55.254`、DNS `192.168.66.36` 可达。
7. NAS:拔旧线 → 插 SE5420 **仅口 4**(口 5 保持断开)。
8. **验证:** NAS 拿到 `.66.x`(应为原静态 `.51` 或 reservation),`ping 192.168.66.36` 通,transmission jail 可访问。
9. 口 6 只接一台明确设备(windy-pc `.99` 或 hp-nas `.32`):拔旧线 → 插口 6。
10. **验证:** 该设备拿 `.66.x`、上网正常。
11. 确认没有并行二层路径后,旧交换/旧接线下电、收线。
## 8. 第一阶段验收(全绿才进第二阶段)
1. SE5420`ping 192.168.66.253` 通,且从 55 网段**不通**(仅 LAN66 管理);默认口令已改;配置已离线备份。
2. LAN66 客户端:`ip addr` 是 `.66.x`、路由 `default via 192.168.66.254`、DNS `192.168.66.36``ping 223.5.5.5` 通。
3. LAN55 客户端:`.55.x`、`default via 192.168.55.254`LAN55↔LAN66 互通(如 `ping 192.168.66.46`)。
4. 端口转发:从公网(手机流量)逐条验——hass `:8123`、transmission `:51413`、ssh `:5822→.36:22`、openvpn `:1194`。
5. UniFiU6、AC-Lite 均 ConnectedInform 与基线一致。
6. SE5420 `show interface`:所有在用口无 CRC/FCS/错误计数增长;ER-X 无广播风暴/ MAC 漂移日志;旧交换已断电。
7. gfw:主网默认网关仍 `.254``ip route` 里没有默认走 `.1`),OpenClash 行为与升级前一致。
> 可选:两台 2.5G 终端同 VLAN 跑 `iperf3 -s` / `iperf3 -c <对端>`,记结果。同 VLAN 才可能超 1G;跨 55/66 与 Internet 受 ER-X/宽带限制。
---
## 2. 第一步·阶段 0:开工前检查(一次性
# 第二阶段:VLAN10 升级专用 SSID(第一步稳定 ≥1 天后再做
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 口。
> 放行门槛:§8 全绿、稳定 ≥1 天、每步先只读核实现状。SSID 最后才启用。任一步失败只回滚该步
---
## 9. PVE VLAN10 边界
## 3. 第一步·阶段 1:离线初始化 SE5420(台面,不接生产)
### 9.1 快照与备份
> 本阶段细节来自官方《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. **先取得只读快照**,再生成专用变更:
1. 取只读快照(逐条执行并保存输出):
```sh
cat /etc/network/interfaces
qm config 140
@@ -299,37 +249,67 @@ ssh -o KexAlgorithms=+diffie-hellman-group1-sha1 \
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 描述为严格隔离。
2. 备份(同 §1.1 目录):PVE `/etc/network/interfaces`、`/etc/pve/qemu-server/140.conf`gfw `/etc/config/{network,dhcp,firewall}`。
3. 确认本地 Console/带外路径可用;**无完整备份和回滚能力则停止。**
## 6. 第二步·阶段 2SE5420 增加 VLAN10PVE 边界通过后
### 9.2 改造 vmbr0 为 VLAN-aware(以 §9.1 快照为准
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 管理流量不受影响
1. 编辑 `/etc/network/interfaces``nano /etc/network/interfaces`
2. 在 `vmbr0` 定义段加一行:`bridge-vlan-aware yes`
3. 在物理口 `enp1s0` 的配置里,把允许 VLAN 显式列出(典型为 `bridge-vids 2-4094` 或按快照当前值扩展出 10),并确认 untagged/PVID 语义与现状一致。**不得在没看快照的情况下写死。**
4. `systemctl restart networking`(或 `ifreload -a`)应用
5. **验证(关键):** `ssh -4 root@192.168.66.26 'ip -br addr'` 显示 `.66.26` 仍在;`ping 192.168.66.254` 通;dns(.36)/ubnt(.46)/gfw(.1) 仍通。任一断 → 立即回滚 interfaces 文件重启网络。
6. `bridge vlan show` 确认现有 tap 口、物理口的 PVID/untagged 与迁移前一致,只是多出 tag 10 的允许。
## 7. 第二步·阶段 3:gfw 防火墙、NAT 与 IPv6SSH `root@192.168.66.1`
### 9.3 为 gfw 加 tag=10 专用 vNIC
**先只读确认,禁止直接复制旧片段:**
1. PVE 上给 VM140 加网卡(从管理本执行,bus 用下一个空闲值,记下 MAC):
```sh
ssh -4 root@192.168.66.26 'qm set 140 -net2 virtio,bridge=vmbr0,tag=10'
```
2. **验证:** `qm config 140` 出现 `net2 ... tag=10`。
3. gfw 内确认新接口名:
```sh
ssh -4 root@192.168.66.1 'ip -br link'
```
- 预期出现新接口(如 `eth2`),状态 DOWN 正常。
### 9.4 迁移 gfw 的 ubunt_upg 到新接口
1. gfw 先只读确认当前绑定与 DHCP 段名:
```sh
ssh -4 root@192.168.66.1 'uci show dhcp; uci show firewall | grep -A3 ubunt_upg'
```
2. 记录现有 `ubunt_upg` 在 `firewall` 里的 zone/规则段名,以及 DHCP 里对应池段名(下面用占位符 `<zone名>` `<dhcp段名>` 替换为实际值)。
3. 把 VLAN10 地址从 `eth0.10` 迁到新接口(先在 network 里把 `eth0.10` 的 device 改到新接口名,或新增新接口段并保留 `192.168.10.1/24`、DHCP 与 zone 绑定)——**同一时刻同一地址不得同时挂在两个接口**。
4. 确认 firewall 的 `ubunt_upg` zone 的 `device`/`network` 指向新接口。
5. 验证后删除旧 `eth0.10` 段:`uci delete network.eth0_10`(段名以实际为准)→ `uci commit network`。
6. **验证:**
- PVE 管理 IP 仍在 LAN66
- gfw 内 `ip -br addr`VLAN10 地址只在新接口;
- `bridge vlan show` 与 VM NIC 配置证明其他 VM 无 VLAN10 可达性(可用 `tcpdump -ni vmbr0 vlan 10` 抓包确认只有 gfw 的帧)。
7. 未通过 → 按 §16 回滚顺序停止 VLAN10 项目。
## 10. SE5420 增加 VLAN10
1. 建 VLAN10`L2 Features → VLAN → 802.1Q VLAN → VLAN Config` → 新建 VLAN ID `10`,成员选口 2、口 3 为 **tagged** → 保存。
2. 口 2 改 trunk`Port Config` → 口 2 → Port mode `Trunk` → untagged/native VLAN `66` → tagged VLAN 仅 `10` → PVID `66` → ingress filtering 开 → 保存。
3. 口 3 改 trunk:同上(untagged 66 + tagged 10)。
4. 确认其余口不允许 VLAN10(不在 VLAN10 成员列表)。
5. 确认 VLAN10 不建 SVI/DHCP/路由:`L3 FEATURES` 无 VLAN10 接口;`DHCP` 无 10 段。
6. **保存配置。**
7. **验证:** `show vlan` VLAN10 仅在口 2/3`show interface` 口 2/3 状态正常;VLAN66 管理流量不受影响(`ping 192.168.66.253`、`ssh` 均通)。
## 11. gfw 防火墙、NAT 与 IPv6
### 11.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
ssh -4 root@192.168.66.1 '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 的 masq、`ubunt_upg` zone 段名、`ubunt_upg_nat`、`ubunt_upg_to_lan`、DHCP 段名。以下命令全部用具名段,段名以本次输出为准。
确认 `wan` zone 的实际接口和 NAT 状态、现有命名/匿名 forwarding、`ubunt_upg` 的 DHCP 绑定,以及 IPv6/RA/DHCPv6 状态。依据实际 section 名称创建**命名、可重复执行**的规则,不使用会重复累积的匿名 `uci add`。
### IPv4 目标策略
### 11.2 IPv4 策略(目标)
| 流量 | 动作 |
|---|---|
@@ -339,105 +319,99 @@ nft list ruleset
| 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 文本。
### 11.3 执行(段名替换为实际值)
### IPv6 决策:本阶段明确不提供 VLAN10 IPv6
1. 确认 `ubunt_upg` zone 的 `forward` 保持 `REJECT`(不改 ACCEPT)。
2. **NAT 已存在,勿动:** 现场已有 `wan` zone `masq=1` + `ubunt_upg_nat``oifname eth0``192.168.10.0/24 masquerade`)。**不要**给 `ubunt_upg` zone 加 masq,也不要新增 NAT 规则。核对 `nft list ruleset` 该规则在列。
3. 不新增宽泛的 `ubunt_upg→wan` zone forwarding(会经 ER-X 放行 LAN55/其它内网)。
4. 在现有 `ubunt_upg_to_lan` 或新建具名规则里,按顺序加内网前缀拒绝(顺序在允许之前):
```sh
# 以 uci add firewall rule 创建具名段,段名唯一(如 v10_deny_lan66
# dest_ip 依次覆盖:192.168.66.0/24、192.168.55.0/24、192.168.10.0/24、
# 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 中除已列之外
# proto=all, family=ipv4, target=REJECT, src=ubunt_upg
```
5. 加"允许所需外网目的"的具名规则(`target=ACCEPT, src=ubunt_upg`family ipv4),放在拒绝之后。
6. `fw4 reload`(或 `/etc/init.d/firewall reload`)。
7. **验证(看 nft 而非 UCI):** `nft list ruleset` 中拒绝规则先于允许命中;`fw4 print` 顺序正确;`wan` masq 仍在。
- 在 gfw 上对 VLAN10 **显式关闭并核验** RA、DHCPv6、NDP relay/delegation、IPv6 forwarding 与前缀委派;不能仅靠“不配置”推断它们未启动。
- 客户端可以保留 IPv6 link-local`fe80::/64`)地址;但不得获得 GUA/ULA、IPv6 DNS 或 IPv6 默认路由。
- 以后若要支持 IPv6,须另开设计与维护窗,单独定义 IPv6 防火墙、DNS 和代理接管。
### 11.4 IPv6:本阶段不提供 VLAN10 IPv6
### gfw 部署后验证
1. 显式关闭并核验(不能靠"没配"):RA、DHCPv6、NDP relay/delegation、IPv6 forwarding 对 `ubunt_upg` 相关接口、前缀委派。
2. 现场已知:DHCPv6/RA disabled、无 IPv6 默认路由,但全局 `IPv6 forwarding=1`——启用 VLAN10 前复查 `ip -6 addr`、`sysctl net.ipv6.conf.all.forwarding`。
3. 客户端可留 link-local;不得获得 GUA/ULA、IPv6 DNS 或 IPv6 默认路由。
- 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 出口。
### 11.5 部署后验证
## 8. 第二步·阶段 4UniFi 改网络 + 启用 SSID(最后执行)
1. VLAN10 客户端拿 `192.168.10.x``ip route` 默认网关 `192.168.10.1`DNS 正常。
2. gfw 上 `logread`/DHCP 租约出现 VLAN10 客户端。
3. 拒绝规则命中:从测试客户端 `ping 192.168.66.1/.26/.36/.46/.254`、`192.168.55.254`、LAN55 主机 → 全不通;访问 gfw 的 22/80/443 管理口 → 拒绝。
4. NAT 命中:gfw `nft list ruleset` 中 `192.168.10.0/24 masquerade` 有 counter 增长。
5. IPv6`ip -6 addr`(客户端)除 fe80 外无地址;`curl -6` 失败。
6. 抓包工具:`apk add tcpdump`ImmortalWrt 25.12.0;勿用 opkg)。
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 不受影响。
## 12. UniFi 改网络 + 启用 SSID(最后做)
## 9. 回滚语义
1. 在 AP 上核实 InformSSH 进 U6`ssh -4 zhiqiangf@192.168.66.6`)→ `info` → 记录 `inform_url`。不凭文档假定。
2. UniFi → Networks → 编辑 `ubnt-upg`
- Router/网关设置 → 选 **Third-party Gateway**
- VLAN ID`10`
- 子网:`192.168.10.0/24`;网关:`192.168.10.1`
- DHCP:关闭(dhcp 由 gfw 提供)。
3. **验证:** 保存后网络列表 `ubnt-upg` 显示 Third-party Gateway、VLAN 10。
4. UniFi → WiFi → `ubnt-upg` SSID → 分配设备只勾 **U6 Lite**(确保 UAP-AC-Lite 不被勾选)→ 保存。
5. 启用 `ubnt-upg` SSID(最后一步才开)。
6. 单台测试客户端连上后逐项验证:
- `ip addr``192.168.10.100~250``ip route` 默认网关 `192.168.10.1`DNS 为预期 gfw 地址;
- `nslookup` 普通/国内/海外域名均按预期解析(DNS 走 gfw/OpenClash 路径,不能直连 LAN66 `.36` DNS,除非书面允许);
- gfw 出现该客户端 DHCP 租约与 VLAN10 帧;
- `curl -4 https://www.baidu.com` 与 `curl -4 https://www.google.com` 均成功;`curl -6` 失败;
- `ping 192.168.66.1/.26/.36/.46/.254`、`192.168.55.254`、LAN55 主机 → 全不通;gfw 管理口不通;
- 代理路径:在 gfw/OpenClash 日志或按客户端源地址/五元组确认流量走代理,**不以全局 `7892` 计数增长为证明**。
7. 任一验证失败 → 先关 `ubnt-upg` SSID;主 SSID、`.254` 路径、LAN55/LAN66 不受影响。
| 步骤/阶段 | 失败动作 |
## 13. 第二阶段验收
1. `ubnt-upg` 客户端满足 §12 第 6 步全部项。
2. gfw 侧 DHCP、拒绝规则、NAT、DNS、代理路径均关联到该测试客户端。
3. LAN55/LAN66 的 IPv6 行为与迁移前基线一致;VLAN10 无 GUA/ULA、IPv6 DNS、默认路由或 IPv6 出口(除 link-local)。
## 14. 性能实测(可选但建议)
1. 两台 2.5G 终端(如 NAS 与 windy-pc,均接 SE5420):一端 `iperf3 -s`,另一端 `iperf3 -c <对端IP>`。
2. 记录:单流、4 流结果;预期单流约 2.3–2.5Gbps(受 NIC/线材限制)。
3. 跨网段(66↔55)与 Internet 结果如实记录——预期被 ER-X 上联/宽带限制,不要按 2.5G 承诺。
## 15. 记录
- 每次实质变更后在 Linear `vps` 项目记录 scope / action / verification / 遗留 follow-up。
- 本仓库不记录 SE5420 口令、ER-X 配置快照(含 PPPoE/口令)、gfw 凭据。
- 实施前先读 `se5420-review-claim-verification-2026-08.md` 的现场只读复核结论。
## 16. 回滚
| 失败位置 | 回滚动作 |
|---|---|
| 第一步·阶段 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 |
| 第二步·阶段 3gfw | 恢复变更前已备份命名规则/NAT;不触碰 LAN55/LAN66 主网规则 |
| 第二步·阶段 4SSID | 只关 `ubnt-upg` SSID;主 SSID、`.254`、gfw 66 路径不受影响 |
| §4 台面 | 还原台面配置或恢复出厂(见下) |
| §57 上联/迁移 | 停手 → 刚迁的线逐根插回 ER-X 原口 → 逐根验证(IP/服务恢复、AP Connected、MAC 表回旧拓扑) |
| §9 PVE 边界 | 关 `ubnt-upg` SSID → gfw `ubunt_upg` 恢复绑 `eth0.10` → 恢复 gfw network/DHCP/firewall → 移除 VM140 新增 vNIC`qm set 140 -delete net2`)→ 恢复 VM140 配置 → **最后**恢复 PVE `/etc/network/interfaces` 重启网络 → 分别验证 PVE/dns/ubnt/gfw 的 LAN66 |
| §10 SE5420 VLAN10 | 删 VLAN10、口 2/3 恢复严格 access VLAN66 |
| §11 gfw | 恢复已备份命名规则/NAT;不触碰 LAN55/LAN66 主网规则 |
| §12 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 恢复出厂(忘口令/重配):**
1. 管理本连 Type-C Console38400 8N1)。
2. 交换机断电重启;串口出现 **`Press CTRL-B to enter the bootUtil`** 时按 `Ctrl+B`。
3. 输入 **`2`**(软件复位)→ 恢复出厂;此后首次 WEB 登录创建新用户名密码(初始管理 IP 恢复 `10.18.18.251`)。
4. 恢复后按 §4 重配并保存。
### 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)
- 评审核实:[se5420-review-claim-verification-2026-08.md](se5420-review-claim-verification-2026-08.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/>
- 官方安装手册(Markdown 版):[se5420-official-manuals/tl-se5420-install-manual.md](se5420-official-manuals/tl-se5420-install-manual.md)
- 官方 PDF<https://service.tp-link.com.cn/download/202310/TL-SE5420%20V1.0安装手册%201.0.2.pdf>
- 规格 / 固件:<https://www.tp-link.com.cn/product_2899.html?v=specification> · <https://www.tp-link.com.cn/product_2899.html?v=download>
- Omada VLAN 指南:<https://support.omadanetworks.com/en/document/12981/> · <https://support.omadanetworks.com/en/document/13135/>
- ER-X[edgerouter-x-configuration.md](edgerouter-x-configuration.md)gfw[hosts/gfw.windy.lan.md](../hosts/gfw.windy.lan.md)PVE VLAN10[lan-rb5009-upgrade.md#阶段-5-附pve-上-vlan10-透传实现-调研-2026-08-09](lan-rb5009-upgrade.md#阶段-5-附pve-上-vlan10-透传实现-调研-2026-08-09)