Files
vps/docs/lan-se5420-deployment-guide.md
T
windyboy e5819eeba3 docs: correct hass hardware to x88 Pro physical box; sync CSG v1.3.2
- hass.windy.lan is a physical x88 Pro box (HAOS bare-metal, machine: green,
  CPE x88pro20, virtualization empty) — not PVE VM 180 (verified live 2026-08-18)
- Record CSG v1.3.2 (934f58c, W1N-118) deploy in maintenance runbook verify
  section and hosts live-tree section (backups now include w1n118)
2026-08-18 13:32:33 +08:00

33 KiB
Raw Blame History

SE5420 核心交换机升级操作指导(细粒度版)

目标: 把 LAN66/LAN55 有线接入从 ER-X 内置交换迁到 TL-SE5420;稳定后再启用 VLAN10 升级专用 SSID。

全程三条(不再重复):

  1. 先断旧、后接新,一次一根线;同一设备不得同时接旧路径与新核心。
  2. 全程保持 SE5420 Type-C Console38400 8N1)连接——SSH 会话移动其承载链路即断,不是回滚保障。
  3. 任一步「预期」不符 → 停止,执行 §16 对应回滚;故障中不动 ER-X 的 WAN/DHCP/SSH。

关于命令的真实性: SE5420 的 GUI 菜单路径来自官方 Omada VLAN/管理指南;CLI 语法仅采用官方手册出现过的(enabletelnet disablecopy running-config startup-configshow vlan)。PVE/gfw 的每步先有只读快照命令,改动均以你实际看到的输出为准,不套用写死的模板。


第一阶段:主网 55/66 迁移

1. 开工前准备

1.1 备份(4 个动作,全部留档到 /tmp/opencode/baseline-YYYYMMDD/,不进仓库)

  1. ER-X 配置快照(滤敏感行):
    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 配置:
    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 配置:
    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_natubunt_upg_to_lan
  4. 检查备份文件存在且可读:ls -la /tmp/opencode/baseline-$(date +%Y%m%d)/

1.2 记录现网状态(迁移后比对用)

  1. ER-X 状态:
    ssh -4 zhiqiang@192.168.66.254 'show interfaces; show ip route; show dhcp server leases'
    
    • 预期:eth0/switch0 up;两条直连路由 + pppoe0 默认路由;DHCP lease 正常。
  2. PVE 地址:
    ssh -4 root@192.168.66.26 'ip -br addr'
    
    • 预期:vmbr0=192.168.66.26、vmbr1=192.168.55.26。
  3. gfw 关键状态:
    ssh -4 root@192.168.66.1 'uci show firewall | grep -E "ubunt_upg|wan.*masq"; ip -4 route'
    
    • 预期:wan.masq=1ubunt_upg_natubunt_upg_to_lan 在位;默认路由 default via 192.168.66.254
  4. 两台 AP:打开 UniFi 控制台 → Devices,记录 U6 Lite 与 UAP-AC-Lite 的 IP、Connected 状态、Inform URL。

1.3 SSID 与标签

  1. 禁用不可用 SSIDUniFi → WiFi → 找到 ubnt-upg → 关闭 Enabled 开关。
    • 预期:开关变灰/显示 Disabled。
    • 记录原设置(第二步回滚要用)。
  2. 给现网每根线缆贴标签:旧设备端接口名 + 目标 SE5420 口,如 NAS→SE5420口4ERX-eth0→SE5420口1
  3. 打印 §2 端口表放在操作位。

1.4 物料与带外

  1. 确认有:SE5420(核对 V1.0 型号)、原装电源线、Type-C 串口线、Cat5e 以上网线数根、标签贴。
  2. 管理本装「TP-LINK USB 串口驱动」(官网下载或随机光盘)。
  3. 终端仿真软件准备(PuTTY/串口助手/Windows Terminal),预填参数 38400 / 8 / 无校验 / 1 / 无流控

2. 端口表(SE5420

面板端口为上下交错排列:下排 = 1、3、5、7、9、11、13、15;上排 = 2、4、6、8、10、12、14、16(口 1 最左下,口 2 在其正上方)。 分组原则:上排全 = LAN66,下排全 = LAN55(55 在 66 下一排);ER-X 两条上联在最左相邻(口 2=66、口 1=55)。

上排 = VLAN66(口 2、4、6、8、10、12、14、16

SE5420 口 对端 模式 PVID 成员 VLAN
2 ER-X eth066 上联) access 66 untagged 66
4 PVE enp1s0 access 66 untagged 66
6 U6 Lite access 66 untagged 66
8 NAS/FreeNAS 第 1 口 access 66 untagged 66
10 windy-pc.99)或 hp-nas.32)二选一 access 66 untagged 66
12 NAS 第 2 口(后续 LACP 窗用) 物理断开
14 LAN66 预留 admin down
16 LAN66 预留 admin down

下排 = VLAN55(口 1、3、5、7、9、11、13、15

SE5420 口 对端 模式 PVID 成员 VLAN
1 ER-X switch0 成员口(55 上联) access 55 untagged 55
3 PVE enp2s0 access 55 untagged 55
5 UAP-AC-Lite access 55 untagged 55
7 隔壁房间上联(IoT access 55 untagged 55
9 打印机(未来) admin down
11 LAN55 预留 admin down
13 LAN55 预留 admin down
15 LAN55 预留 admin down
SFP+ 14 最右侧 4 个 空槽
  • 第一步不建 VLAN10、不向 ER-X 送任何 tag、口 4/6PVE、U6)不做 trunk。
  • NAS 只接口 8,口 12 断开(LACP 是独立维护窗)。
  • 不占口的 VMdns(.36=VM120)、ubnt(.46=VM160)、gfw(.1=VM140)haos(.55.11) 是物理 x88 Pro 盒子(非 VM);transmission(.51) 是 NAS jail。

3. 开箱与固件升级

  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 登录 → 改强口令:系统管理 → 用户管理 → 用户配置 → 修改用户名/密码 → 保存。
  2. 设时区与 NTP系统管理 → 系统配置 → 系统时间 → 时区 Asia/Shanghai → NTP 服务器填 ntp.aliyun.com(或 pool.ntp.org)→ 保存。
  3. 关 Telnet系统管理 → 安全管理 → Telnet配置 → 关闭 Enable。
    • CLI 替代:telnet disable
  4. 关 HTTP系统管理 → 安全管理 → HTTP配置 → 关闭 HTTP 服务(保留 HTTPS)。
  5. 开 SSH系统管理 → 安全管理 → SSH配置 → 启用 SSH(端口 22)。
  6. 关云管理:系统管理 → 云管理 → 全局配置 → 全局开关保持关闭(不绑定 smbcloud.tp-link.com.cn)。
  7. 保存: 顶部/右上角保存按钮,或 配置保存 → 保存配置
  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。

端口成员在 VLAN 配置界面的 Untagged/Tagged 选择器里直接勾选,无独立端口配置页。Untagged = 该 VLAN 的 access 口;PVID 随之对应(以界面为准)。

  1. 建 VLAN66VLAN → 802.1Q VLAN → VLAN配置 → 新建 → VLAN ID 填 66Untagged 勾选:口 2、4、6、8、10Tagged 不选)→ 保存。
  2. 建 VLAN55:新建 → VLAN ID 填 55Untagged 勾选:口 1、3、5、7Tagged 不选)→ 保存。
  3. 验证: VLAN 列表出现 66、55;VLAN1 仍在(暂不动)。
  4. 建管理 SVI路由功能 → 接口 → 接口设置 → 创建接口 → 接口 ID VLAN 66 → IP 地址模式 Static → IP 192.168.66.253、掩码 255.255.255.0 → 管理状态开启 → 保存。默认网关:路由功能 → 静态路由 → IPv4静态路由条目 → 新建:目的 0.0.0.0、掩码 0.0.0.0、下一跳 192.168.66.254、管理距离 1
  5. 管理本改静态 IP 192.168.66.10/24,网线接 SE5420 口 6(口 6 已在 VLAN66)。
  6. 验证管理路径:
    • ping 192.168.66.253 → 通;
    • 浏览器 https://192.168.66.253 → 登录成功;
    • (可选)SSHssh -o KexAlgorithms=+diffie-hellman-group1-sha1 -o HostKeyAlgorithms=+ssh-rsa admin@192.168.66.253 → 成功。
    • 全通后再进行下一步;否则停手排查(查 Untagged 勾选/PVID/接线),保持 Console 兜底。
  7. 保存配置(右上角保存或 配置保存 → 保存配置)。
  8. 验证: show vlan:口 2/4/6/8/10 属 VLAN66,口 1/3/5/7 属 VLAN55,口 9/11/12/13/14/15/16 无成员;VLAN1 暂时还有全口成员(下一步清理)。
  9. 清理 VLAN1VLAN → 802.1Q VLAN → VLAN配置 → 编辑 VLAN1 → 把口 1–16 从 Untagged 勾选中移除(保留 66 或 55 的勾选不变)→ 保存。改 PVID 不等于移除成员。

    VLAN1 不可删除属正常TP-Link 默认 VLAN),且 access 口必须属于某 untagged VLANGUI 会拒绝把口从 VLAN1 剔除——不必强求。做法改为:先把未用口 Disabled(第 13 步)再清 VLAN1 IP(第 10 步)disabled 口不转发流量,VLAN1 剩下无管理 IP + 全 disabled 成员 = 无管理面、无转发路径,目标达成。

  10. 删 VLAN1 管理 IP路由功能 → 接口 → 接口设置 → VLAN1 → 清空 IPv4。
  11. 保存配置
  12. 验证: show vlan VLAN1 无任何成员、无管理 IPVLAN66 管理路径仍通(SSH/HTTPS 不断)。
  13. 关未用端口:二层交换 → 端口管理 → 端口配置 → 口 9、11、12、13、14、15、16 及 SFP+ 1720 → 端口状态 Disabled;并确认这些口不在任何 VLAN 的 Untagged/Tagged 勾选中。口 12 是 NAS LACP 预留口,未来 LACP 维护窗需在此重新启用。
  14. 配管理面源限制:系统管理 → 安全管理 → 安全配置(管理主机/管理访问,以界面为准)→ 只允许源 192.168.66.0/24 访问 HTTPS/SSH(启用 SNMP 则一并限制)→ 其余拒绝 → 保存。

    ⚠️ 不要访问控制 菜单配——那是数据面 ACL(MAC/IP ACL),管不到管理面;管理面限制在 安全管理 → 安全配置

  15. 配生成树:
    • 全局配置(生成树 → 基本配置):功能启用、模式RSTPCIST优先级 4096(让本机当根桥);联络时间 2 / 老化 20 / 时延 15 / 流量限制 5 / 最大跳数 20 保持默认。
    • 端口配置(生成树 → 端口配置):终端口 5、6、8、10 的「边缘端口」设启用= PortFast);上联口 1、2、3、4、7 保持禁用。状态列显示禁用是链路未接/未启用,属正常。
    • 端口保护(生成树 → 安全配置 → 端口保护):终端口 5、6、8、10 的「BPDU保护」设启用;上联口 1、2、3、4、7 保持禁用。环路保护/根桥保护/TC保护/BPDU过滤全部保持禁用
    • 保存。
  16. L3 明确边界检查: 路由功能 确认只有 VLAN66 有接口(路由功能 → 接口 → 接口设置 仅 VLAN66 有 IPv4);路由功能 → 静态路由 → IPv4静态路由条目 只有默认路由一条(0.0.0.0→.254);路由功能 → DHCP服务器DHCP中继 未启用;路由功能 → RIP 未启用。
  17. 保存 + 导出备份: 配置保存 → 保存配置系统管理 → 系统工具 → 配置导出 → 导出配置文件到管理本(离线保存,不进仓库)。
  18. 断电重启验证: 拔电源 10 秒 → 插回 → 重启完成后 ping 192.168.66.253 通、HTTPS/SSH 可登录 → 证明保存生效。

4.4 台面完成判定

  • show vlan 结果与 §2 端口表一致;VLAN1 空;管理仅 LAN66 可达;配置已导出。

5. 建立上联(维护窗开始)

  1. 找到 ER-X eth0 当前所连的旧设备/旧交换线,先拔掉旧线(避免 eth0 同时连两条路径形成环路)。
  2. 新线一端插 SE5420 口 2,另一端插 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 口 2:Link up、速率协商正常、错误计数 0。
  4. 找到 ER-X switch0 某成员口(eth1–eth3 任一口)的旧接线,先拔。
  5. 新线一端插 SE5420 口 1,另一端插该 switch0 成员口。
  6. 验证:
    • 从 55 网段设备(或临时给管理本加 .55.x 地址)ping 192.168.55.254 → 通;
    • ping 192.168.66.46(控制器,跨网段)→ 通;
    • SE5420 show interface 口 1:Link up、错误计数 0。

6. 迁移 PVE

  1. 拔 PVE enp1s0 旧线 → 插 SE5420 口 4
  2. 验证:
    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 口 3
  4. 验证:
    • ip -br addrvmbr1 = 192.168.55.26/24
    • ping -c3 192.168.55.254 → 通。
  5. 逐台验证(顺序:gfw → dns → ubnt → haos;前三个是 VMhaos 是物理盒子):
    ssh -4 root@192.168.66.26 'qm list'
    
    • gfwping -c3 192.168.66.1 → 通;
    • dnsping -c3 192.168.66.36 → 通;
    • ubntping -c3 192.168.66.46 → 通;
    • haosping -c3 192.168.55.11 → 通(注意是 55 网段)。
  6. 每台再验业务:gfw 的 OpenClash 面板/DNS 正常、dns 的 AdGuard UI 能开、ubnt 控制器 Connected、haos 界面能开。不以"宿主开机"代替。

7. 迁移 AP 与接入设备

  1. U6 Lite:先拔旧线 → 插 SE5420 口 6(本地 PoE 注入器不动,网线只走数据)。
  2. 验证: U6 重连后拿回 192.168.66.6UniFi 控制台显示 U6 ConnectedInform 与 §1.2 记录一致。
  3. UAP-AC-Lite:拔旧线 → 插 SE5420 口 5
  4. 验证: 192.168.55.5UniFi 显示 Connected。
  5. 隔壁房间上联:拔旧线 → 插 SE5420 口 7
    • 插之前确认对端:若对端是小交换机,须满足——只有一条上联、只承载 untagged LAN55、无 VLAN trunk、无第二条路径回 ER-X/SE5420。任一项不满足则不迁移。
  6. 验证: 该网段设备拿到 .55.x、网关 192.168.55.254、DNS 192.168.66.36 可达。
  7. NAS:拔旧线 → 插 SE5420 仅口 8(口 12 保持断开)。
  8. 验证: NAS 拿到 .66.x(应为原静态 .51 或 reservation),ping 192.168.66.36 通,transmission jail 可访问。
  9. 口 10 只接一台明确设备(windy-pc .99 或 hp-nas .32):拔旧线 → 插口 10。
  10. 验证: 该设备拿 .66.x、上网正常。
  11. 确认没有并行二层路径后,旧交换/旧接线下电、收线。

8. 第一阶段验收(全绿才进第二阶段)

  1. SE5420ping 192.168.66.253 通,且从 55 网段不通(依赖 §4.3 第 14 步管理面源限制已配;若 ACL 未生效,从 55 网段经 ER-X 路由仍可达 .253——此条不通过则回查 ACL);默认口令已改;配置已离线备份。
  2. LAN66 客户端:ip addr.66.x、路由 default via 192.168.66.254、DNS 192.168.66.36ping 223.5.5.5 通。
  3. LAN55 客户端:.55.xdefault via 192.168.55.254LAN55↔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:主网默认网关仍 .254ip route 里没有默认走 .1),OpenClash 行为与升级前一致。

可选:两台 2.5G 终端同 VLAN 跑 iperf3 -s / iperf3 -c <对端>,记结果。同 VLAN 才可能超 1G;跨 55/66 与 Internet 受 ER-X/宽带限制。


第二阶段:VLAN10 升级专用 SSID(第一步稳定 ≥1 天后再做)

放行门槛:§8 全绿、稳定 ≥1 天、每步先只读核实现状。SSID 最后才启用。任一步失败只回滚该步。

9. PVE VLAN10 边界

9.1 快照与备份(在 PVE 上执行:SSH ssh -4 root@192.168.66.26 进入或本地终端)

  1. 取只读快照(逐条执行并保存输出):
    cat /etc/network/interfaces
    qm config 140
    bridge vlan show
    bridge link
    ip -d link show vmbr0
    pveversion -v
    
  2. 备份(同 §1.1 目录):PVE /etc/network/interfaces/etc/pve/qemu-server/140.confgfw /etc/config/{network,dhcp,firewall}
  3. 确认本地 Console/带外路径可用;无完整备份和回滚能力则停止。

9.2 改造 vmbr0 为 VLAN-aware(以 §9.1 快照为准)

  1. 编辑 /etc/network/interfacesPVE 本机 nano /etc/network/interfaces)。
  2. vmbr0 定义段加两行:
    bridge-vlan-aware yes
    bridge-vids 10 66
    

    bridge-vids 只放行需要的 tagged VLAN10gfw VLAN10 帧)+ 66(显式声明 native)。不要写 2-4094 全放行;将来加 VLAN 再扩展此列表。 ⚠️ bridge-vids 必须加在 vmbr0 段,不是 enp1s0 段——enp1s0 只是 bridge-ports 成员;加错位置 VLAN10 无法上 bridge。

  3. 不要改动 bridge-ports enp1s0、现有 tap 口或 vmbr1;现有 VM 的无标签语义(untagged/PVID)保持不变。
  4. 应用:优先 ifreload -aPVE 用 ifupdown2,只应用变更);不要用 systemctl restart networking(会重载全部接口)。

    ⚠️ ifreload 会断当前 SSH 连接(管理本重连即可),ip -br addr 重新验证。

  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 文件并 ifreload -a
  6. bridge vlan show 确认现有 tap 口、物理口的 PVID/untagged 与迁移前一致,只是多出 tag 10 的允许。

9.3 为 gfw 加 tag=10 专用 vNIC

  1. PVE 上给 VM140 加网卡(从管理本执行,bus 用下一个空闲值,记下 MAC):
    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 内确认新接口名:
    ssh -4 root@192.168.66.1 'ip -br link'
    
    • 预期出现新接口(如 eth2),状态 DOWN 正常。

9.4 迁移 gfw 的 ubunt_upg 到新接口

  1. gfw 先只读确认当前绑定与 DHCP 段名:
    ssh -4 root@192.168.66.1 'uci show network; uci show dhcp'
    
    预期:network.ubunt_upg.device='eth0.10'dhcp.ubunt_upg.interface='ubunt_upg'(按接口名绑定)。
  2. 最小迁移——只改 device 一行gfw 上执行):
    ifdown ubunt_upg
    uci set network.ubunt_upg.device='eth2'
    uci commit network
    ifup ubunt_upg
    

    eth0.10 不再被引用会自动消失,无需手动删段DHCP 池 dhcp.ubunt_upg.interface='ubunt_upg' 按接口名绑定,自动跟着走。

  3. 验证: gfw 内 ip -br addreth2192.168.10.1/24 UP、eth0.10 消失、eth0.66.1
  4. 确认 firewall ubunt_upg zone 按 network='ubunt_upg' 绑定(改 device 后 zone/DHCP/NAT/规则自动跟随)。
  5. 验证:
    • PVE 管理 IP 仍在 LAN66
    • bridge vlan show 确认其他 VM 无 VLAN10 可达性(tap140i2 显示 10 PVID Egress Untaggeddns/ubnt 等 tap 仍只有 PVID 1)。
  6. 未通过 → 按 §16 回滚顺序停止 VLAN10 项目。

10. SE5420 增加 VLAN10

关键:口 4/6 是 access 口时,VLAN10 的 Tagged 选择器里会显示不可选——必须先在本步第 1 步把口 4/6 改成 trunk,才能勾 Tagged。改 trunk 后口 4/6 会从 VLAN66 untagged 成员中被移除,需在第 3 步恢复。

  1. 改口 4/6 为 trunkVLAN → 802.1Q VLAN → 端口配置 → 口 4、口 6 → 端口类型 ACCESSTRUNKPVID 改 66(改 TRUNK 后默认 PVID 变 1,必须改回 66)→ 保存。
  2. 验证: 端口配置页口 4/6 显示 TRUNK + PVID 66
  3. 恢复 VLAN66 成员: 改 trunk 后口 4/6 从 VLAN66 untagged 被移除 → VLAN → 802.1Q VLAN → VLAN配置 → 编辑 VLAN66 → Untagged 重新勾选口 4、口 6 → 保存。确认 VLAN66 = 口 2、4、6、8、10。
  4. 建 VLAN10VLAN → 802.1Q VLAN → VLAN配置 → 新建 VLAN ID 10Tagged 勾选:口 4、口 6(Untagged 不勾)→ 保存。口 4/6 即 trunkuntagged 66 + tagged 10。
  5. 确认其余口不允许 VLAN10(口 4/6 之外不勾选)。
  6. 确认 VLAN10 不建 SVI/DHCP/路由:路由功能 → 接口 → 接口设置 无 VLAN10 接口;路由功能 → DHCP服务器/DHCP中继 无 10 段。
  7. 保存配置: 配置保存 → 保存配置
  8. 验证(静态链路):
    • SE5420 show vlanVLAN10 仅在口 4/6VLAN66 仍是口 2、4、6、8、10。
    • PVE bridge vlan showenp1s0 允许 10 + 66tap140i2 显示 10 PVID Egress Untagged
    • ping 192.168.66.253ssh 均通(VLAN66 管理流量不受影响)。
    • 注:此时抓不到 VLAN10 帧是正常的——还没有客户端(SSID 未启用);真正流量验证在 §12 启用 SSID 后。

11. gfw 防火墙、NAT 与 IPv6

11.1 先只读确认现场

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_natubunt_upg_to_lan、DHCP 段名。以下命令全部用具名段,段名以本次输出为准。

11.1b 现场已核实规则(2026-08 实施时确认存在,无需重建)

段名 类型 作用
firewall.ubunt_upg zone network='ubunt_upg'input/forward=REJECT、output=ACCEPT
ubunt_upg_dhcp rule VLAN10 → UDP 67 允许(DHCP
ubunt_upg_dns rule VLAN10 → TCP/UDP 53 允许(DNS
ubunt_upg_block_lan66 rule VLAN10 → 192.168.66.0/24 REJECT
ubunt_upg_to_lan forwarding src=ubunt_upg → dest=lan
ubunt_upg_nat nat src=lansrc_ip=192.168.10.0/24、target MASQUERADE(出口走 lan 即 eth0/LAN66

待补缺口: 只有 192.168.66.0/24 被拒,LAN55 和其余 RFC1918 无显式拒绝——VLAN10 经 ER-X 仍可达 192.168.55.0/24haos/IoT/AP)等内网,必须在 §11.3 补齐。

11.2 IPv4 策略(目标)

流量 动作
VLAN10 → gfw DHCP、DNS 允许
VLAN10 → gfw SSH/LuCI/SNMP/其他管理服务 拒绝
VLAN10 → LAN66、LAN55、其他 RFC1918 内网 拒绝
VLAN10 → Internet 允许
established/related 回包 允许

11.3 执行(段名替换为实际值)

  1. 确认 ubunt_upg zone 的 forward 保持 REJECT(不改 ACCEPT)。
  2. NAT 已存在,勿动: 现场已有 wan zone masq=1 + ubunt_upg_natsrc=lansrc_ip=192.168.10.0/24 masquerade)。不要ubunt_upg zone 加 masq,也不要新增 NAT 规则。核对 nft list ruleset 该规则在列。
  3. 不新增宽泛的 ubunt_upg→wan zone forwarding(会经 ER-X 放行 LAN55/其它内网)。
  4. 补内网前缀拒绝LAN55、10/8、172.16/12192.168.0.0/16 已被 66/55/10 三段覆盖,无需再加)。⚠️ 每条必须写 dest='lan'——否则 fw4 会把规则放进 input_ubunt_upg(进 gfw 本机方向)而非 forward_ubunt_upgVLAN10→其他网段转发),dest_ip 永远不命中、等于没配:
    # LAN55
    uci add firewall rule
    uci set firewall.@rule[-1].name='v10_deny_lan55'
    uci set firewall.@rule[-1].src='ubunt_upg'
    uci set firewall.@rule[-1].dest='lan'
    uci set firewall.@rule[-1].dest_ip='192.168.55.0/24'
    uci set firewall.@rule[-1].target='REJECT'
    uci set firewall.@rule[-1].proto='all'
    uci set firewall.@rule[-1].family='ipv4'
    # 10/8
    uci add firewall rule
    uci set firewall.@rule[-1].name='v10_deny_10net'
    uci set firewall.@rule[-1].src='ubunt_upg'
    uci set firewall.@rule[-1].dest='lan'
    uci set firewall.@rule[-1].dest_ip='10.0.0.0/8'
    uci set firewall.@rule[-1].target='REJECT'
    uci set firewall.@rule[-1].proto='all'
    uci set firewall.@rule[-1].family='ipv4'
    # 172.16/12
    uci add firewall rule
    uci set firewall.@rule[-1].name='v10_deny_172net'
    uci set firewall.@rule[-1].src='ubunt_upg'
    uci set firewall.@rule[-1].dest='lan'
    uci set firewall.@rule[-1].dest_ip='172.16.0.0/12'
    uci set firewall.@rule[-1].target='REJECT'
    uci set firewall.@rule[-1].proto='all'
    uci set firewall.@rule[-1].family='ipv4'
    uci commit firewall
    fw4 reload
    
  5. 验证(看 nft 而非 UCI): nft list ruleset | grep -A6 "chain forward_ubunt_upg" 应显示拒绝规则全部在 forward_ubunt_upg且先于 accept_to_lanwan masq 仍在。若拒绝规则出现在 input_ubunt_upg 链 → 说明漏了 dest='lan',回去补。
  6. IPv6 核验: ip -6 addr show eth2 只有 fe80::dhcp.ubunt_upgra='disabled'dhcpv6='disabled' → VLAN10 无 GUA/ULA、无 IPv6 DNS/路由/出口。

11.4 IPv6:本阶段不提供 VLAN10 IPv6

  1. 显式关闭并核验(不能靠"没配"):RA、DHCPv6、NDP relay/delegation、IPv6 forwarding 对 ubunt_upg 相关接口、前缀委派。
  2. 现场已知:DHCPv6/RA disabled、无 IPv6 默认路由,但全局 IPv6 forwarding=1——启用 VLAN10 前复查 ip -6 addrsysctl net.ipv6.conf.all.forwarding
  3. 客户端可留 link-local;不得获得 GUA/ULA、IPv6 DNS 或 IPv6 默认路由。

11.5 部署后验证

  1. 链归属(已实测): nft list ruleset | grep -A6 "chain forward_ubunt_upg" 确认 66/55/10/172 四条拒绝在 forward 链、先于 accept_to_lan192.168.10.0/24 masquerade 仍在(§11.3 第 5 步已验)。
  2. IPv6(已实测): ip -6 addr show eth2fe80::dhcp.ubunt_upg.ra='disabled' + dhcpv6='disabled'odhcpd 不服务 eth2(§11.4 已验)。
  3. DHCP 租约(已实测): cat /tmp/dhcp.leases 出现 VLAN10 客户端(实测 OnePlus-12 → 192.168.10.168)。
  4. 数据面(已实测): nft list ruleset192.168.10.0/24 masquerade counter 增长(实测 215 pkts / 42KB)、accept_to_ubunt_upg 回包增长、四条 deny 保持 0 → VLAN10 上网走 gfw NAT、隔离生效。
  5. 拒绝规则命中(SSID 启用后验): 从测试客户端 ping 192.168.66.1/.26/.36/.46/.254192.168.55.254、LAN55 主机 → 全不通;访问 gfw 的 22/80/443 管理口 → 拒绝。
  6. 客户端上网(SSID 启用后验):192.168.10.x、网关 .10.1、DNS 正常;curl -4 国内/海外均通、curl -6 失败。
  7. 抓包工具:apk add tcpdumpImmortalWrt 25.12.0;勿用 opkg)。

12. UniFi 改网络 + 启用 SSID(最后做)

  1. 在 AP 上核实 InformSSH 进 U6ssh -4 zhiqiangf@192.168.66.6)→ info → 记录 inform_url。不凭文档假定。
  2. UniFi → Networks → 编辑 ubnt-upg
    • Router/网关设置 → 选 Third-party Gateway
    • VLAN ID10
    • 子网: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 addr192.168.10.100~250ip route 默认网关 192.168.10.1DNS 为预期 gfw 地址;
    • nslookup 普通/国内/海外域名均按预期解析(DNS 走 gfw/OpenClash 路径,不能直连 LAN66 .36 DNS,除非书面允许);
    • gfw 出现该客户端 DHCP 租约与 VLAN10 帧;
    • curl -4 https://www.baidu.comcurl -4 https://www.google.com 均成功;curl -6 失败;
    • ping 192.168.66.1/.26/.36/.46/.254192.168.55.254、LAN55 主机 → 全不通;gfw 管理口不通;
    • 代理路径:在 gfw/OpenClash 日志或按客户端源地址/五元组确认流量走代理,不以全局 7892 计数增长为证明
  7. 任一验证失败 → 先关 ubnt-upg SSID;主 SSID、.254 路径、LAN55/LAN66 不受影响。

实测记录(2026-08-11): OnePlus-12 连 ubnt-upg 拿到 192.168.10.168DHCP 由 gfw 下发,租约见 /tmp/dhcp.leases);gfw 192.168.10.0/24 masquerade counter 增长(215 pkts / 42KB)、accept_to_ubunt_upg 回包 5 pkts、四条内网 deny 保持 0 → 上网走 gfw NAT、VLAN10→内网隔离生效。手机 Wi-Fi 详情不显示网关,以 DHCP 租约 + NAT counter 为证。

13. 第二阶段验收

  1. ubnt-upg 客户端满足 §12 第 6 步全部项。
  2. gfw 侧 DHCP、拒绝规则、NAT、DNS、代理路径均关联到该测试客户端。
  3. LAN55/LAN66 的 IPv6 行为与迁移前基线一致;VLAN10 无 GUA/ULA、IPv6 DNS、默认路由或 IPv6 出口(除 link-local)。

状态(2026-08-11): 第 2 条 DHCP+NAT+隔离已实测通过(见 §12 实测记录);第 1、3 条待补(浏览器 curl 国内/海外、拒绝规则从客户端实测命中、IPv6 curl -6 失败)。

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. 回滚

失败位置 回滚动作
§4 台面 还原台面配置或恢复出厂(见下)
§57 上联/迁移 停手 → 刚迁的线逐根插回 ER-X 原口 → 逐根验证(IP/服务恢复、AP Connected、MAC 表回旧拓扑)
§9 PVE 边界 ubnt-upg SSID → gfw ubunt_upg 恢复绑 eth0.10 → 恢复 gfw network/DHCP/firewall → 移除 VM140 新增 vNICqm set 140 -delete net2)→ 恢复 VM140 配置 → 最后恢复 PVE /etc/network/interfacesifreload -a → 分别验证 PVE/dns/ubnt/gfw 的 LAN66
§10 SE5420 VLAN10 删 VLAN10VLAN → 802.1Q VLAN → VLAN配置 删除 VLAN10),口 4/6 恢复 Untagged 仅 VLAN66、Tagged 清空
§11 gfw 恢复已备份命名规则/NAT;不触碰 LAN55/LAN66 主网规则
§12 SSID 只关 ubnt-upg SSID;主 SSID、.254、gfw 66 路径不受影响

SE5420 恢复出厂(忘口令/重配):

  • WEB 方式: 系统管理 → 系统工具 → 软件复位(若还能登录 GUI)。
  • Console 方式(WEB 不可用/忘口令):
    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 重配并保存。

参考