Files
vps/docs/archive/lan-rb5009-upgrade.md
T
windyboy 27fe9c078e docs: archive historical planning documents and fix references
Move self-described historical/upstream docs to docs/archive/:
- agent-runbook-guide.md
- lan-core-switch-upgrade-plan.md
- lan-rb5009-upgrade.md
- se5420-review-claim-verification-2026-08.md

Update archive/README.md manifest and fix relative links in active docs
and archived docs. Update AGENTS.md docs/ layout description.
2026-08-22 19:34:05 +08:00

21 KiB
Raw Blame History

ER-X → RB5009 网关升级:网络形态与实施计划

状态: 规划文档(未采购、未接线、未改生产配置)。 重要变更(2026-08-09): SE5420 已采购,网络升级改为「保留 ER-X + SE5420 核心」路径—— 实施与验证以 lan-se5420-deployment-guide.md 为准。 本文保留为「ER-X 网关未来替换为 RB5009」的备选方案;其中 PVE 透传调研与 VLAN10 实现方法仍适用。


1. 一句话架构

公网 ← RB5009(主网关:PPPoE / NAT / 防火墙 / DHCP / IPv6 / VLAN 66+55 三层)
          ↑ 全部终端 / AP / PVE 直连其 8×1G 端口
    (SFP+ 空槽,为未来 10G 核心预留)
  • RB5009 兼任路由与 LAN 二层交换:所有接入设备直插 RB5009 端口。
  • 客户端默认网关仍是 .254RB5009 沿用 ER-X 地址,客户端零感知)。
  • gfw 仍为旁路由(默认网关 .254);OpenClash 行为不变。
  • ER-X 升级后下电闲置,作为已配置的备件保存(回滚路径)。
  • 2.5G/10G 同 VLAN 交换目标放弃(无 SE5420);LAN 二层为 1G。

2. 已确认的设计决策

决策 结论
角色 RB5009 单机:路由 + LAN 交换 + 双 VLAN 三层
WAN PPPoE,走 ether12.5G 铜口接 ONT/光猫)MTU 1492
LAN 模型 单 bridge + VLAN 过滤VLAN 66(多数端口)+ VLAN 55VLAN 10 预留
网关地址 沿用 192.168.66.254 / 192.168.55.254;重编址另立项目
IPv6 保留对等PPPoE 上 DHCPv6-PD /60 + 双 LAN SLAAC /64 + IPv6 防火墙
端口转发 4 条 原样迁入hass / transmission / ssh / openvpn+ hairpin NAT
LAN55 成员 保持现状AC-Lite、Aqara 及原 LAN55 设备)不迁到 VLAN66
管理面 SSH 仅密钥zhiqiang);禁用默认 admin禁 Winbox/API/WebFig 或仅限 LAN
迁移方式 台面预配置(临时 .253)→ 维护窗(30–60 分钟)→ 验证 → ER-X 留作备件
固件/备份 当前稳定 RouterOS 7.x;上线前 .backup + 文本导出存离线
时区/NTP Asia/Shanghai + 现有 NTP 服务器
安全 PPPoE 口令、SSH 私钥、zhiqiang 口令只存设备上,不落本仓库

3. 升级后的网络形态(拓扑图)

3.1 目标物理拓扑(升级完成后)

                        Internet
                           │  PPPoE (ether1 2.5G, MTU 1492, IPv6 PD /60)
                           ▼
        ┌──────────────────────────────────────────────┐
        │        RB5009  (gw)   RouterOS 7.x           │
        │  ether1 = WAN (PPPoE)                         │
        │  bridge + vlan-filtering=yes                  │
        │    vlan66 = 192.168.66.254/24  (pvid 66)      │
        │    vlan55 = 192.168.55.254/24  (pvid 55)      │
        │  SFP+ = 空槽(未来 10G                       │
        │  SSH-only 管理(仅 LAN                       │
        └─────┬─────────┬──────────┬──────────┬────────┘
              │ pvid66  │ pvid66   │ pvid66   │ pvid55
              │         │          │          │
         gfw  (.1)   dns  (.36)  ubnt (.46)  UAP-AC-Lite (.55.5)
         PVE  (.26)    NAS/PC…      U6 Lite    Aqara (.55.248)
                                 (.66.6)

端口角色以面板为准;下表是建议预留:

RB5009 端口 对端 模式
ether1 ONT/光猫 WANPPPoE
ether2ether8 PVE/gfw、dns、ubnt、U6 Lite、NAS、PC、杂项 accesspvid 66
ether9 原 LAN55 成员(AC-Lite、Aqara…) accesspvid 55
SFP+ sfp-sfpplus1 未来 10G 核心 空槽

禁止双上行: 任一设备不得同时接旧 ER-X 与 RB5009(环路 / 双默认网关)。

3.2 逻辑网络

VLAN 子网 网关 / DHCP 形态 成员
66 192.168.66.0/24 RB5009 vlan66 .254 多数端口 access gfw、dns、ubnt、U6、PVE、NAS、PC…
55 192.168.55.0/24 RB5009 vlan55 .254 ether9 access AC-Lite、Aqara…(原 LAN55 全量)
10(预留) 192.168.10.0/24 未来(gfw 暂不配业务 升级专用 SSID(后续项目)
  • 客户端 DNSDHCP 仍下发 192.168.66.36AdGuard Home)。
  • UniFi Inform 仍为 http://192.168.66.46:9080/inform
  • LAN66 ↔ LAN55 互通由 RB5009 三层转发(沿用现网默认可达语义,防火墙不设隔离边界)。

3.3 流量怎么走

同 VLANNAS ↔ PC):  客户端 → RB5009 端口 → bridge(二层交换,1G
跨 VLAN(66 ↔ 55):   客户端 → RB5009 路由(vlan66 ↔ vlan551G
上网:                 客户端 → RB5009 → PPPoE → Internet(限速 = 线路;RB5009 fasttrack 去掉 ER-X ~900M 天花板)
旁路由:               默认网关仍 `.254`;显式代理走 gfw(不变)
未来 VLAN10          U6 trunk → RB5009 →(转发 VLAN10)→ gfw(后续项目)

3.4 性能预期(诚实边界)

场景 预期
WAN / PPPoE 线路速率以内;若线路 >1GRB5009 fasttrack 可跑满(ER-X 受 900M 限制)
同 VLAN 交换 1G(无 SE5420RB5009 8×1G
跨 VLAN 1G 级三层
SFP+ 空槽 不等于已是 10G

4. 分阶段实施计划

阶段 0:采购前核验

  1. 确认 RB5009 revision、保修、零售渠道、RouterOS 当前稳定版本号(建议 7.x 最新 stable)。
  2. 确认硬件:1× 2.5G PoE-inether1)、8× 1G、1× SFP+、1GB RAM。SFP+ 模块本次不买。
  3. 盘点线缆与对端:ONT ↔ ether1;原 LAN55 设备清单(AC-Lite、Aqara…)及原 ER-X switch0 接线。

阶段 1:离线初始化(台面)

  1. 仅电源 + 隔离管理本。设置身份、时区 Asia/Shanghai、NTP。
  2. zhiqiang 管理用户(密钥登录,禁密码);删除/禁用默认 admin
  3. 建 bridge + VLAN 66/55 + 端口模板(ether28 pvid66ether9 pvid55);临时地址 .253(不与 ER-X .254 冲突)。
  4. 配 WAN PPPoEether1)、默认路由、NAT masquerade、4 条端口转发 + hairpin、防火墙(input/forward)、MSS clamp、IPv6 PD + SLAAC + IPv6 防火墙。
  5. 配 DHCP 池 .38.243、24h 租约、DNS .36、UniFi Inform 选项、静态映射全量照搬
  6. 管理面收口:禁 Winbox8291/ API8728/ WebFig80/443SSH 仅限 LAN66/55。
  7. system backup save + /export,导出到离线存储(不落仓库)。

参考 RouterOS 配置骨架(口令/密钥用占位符;落地前逐一核对):

# 身份 / 时区 / NTP
/system identity set name=gw
/system clock set time-zone-name=Asia/Shanghai

# WAN
/interface ethernet set ether1 name=wan
/interface pppoe-client add name=pppoe0 interface=wan user=<PPPoE_USER> \
    password=<PPPoE_PASS> add-default-route=yes use-peer-dns=no \
    mtu=1492 mru=1492

# bridge + VLAN
/interface bridge add name=bridge66 vlan-filtering=yes
/interface bridge port add bridge=bridge66 interface=ether2 pvid=66
...  # ether3..ether8 同 pvid 66
/interface bridge port add bridge=bridge66 interface=ether9 pvid=55
/interface bridge vlan add bridge=bridge66 vlan-ids=66 tagged=bridge66
/interface bridge vlan add bridge=bridge66 vlan-ids=55 tagged=bridge66
/interface vlan add name=vlan66 interface=bridge66 vlan-id=66
/interface vlan add name=vlan55 interface=bridge66 vlan-id=55

# 地址(台面先用 .253,维护窗切 .254
/ip address add address=192.168.66.254/24 interface=vlan66
/ip address add address=192.168.55.254/24 interface=vlan55

# NAT masquerade + 端口转发 + hairpin
/ip firewall nat add chain=srcnat out-interface=pppoe0 action=masquerade
/ip firewall nat add chain=dstnat in-interface=pppoe0 protocol=tcp dst-port=8123 \
    action=dst-nat to-addresses=192.168.55.11 to-ports=8123
/ip firewall nat add chain=dstnat in-interface=pppoe0 protocol=tcp dst-port=51413 \
    action=dst-nat to-addresses=192.168.66.51 to-ports=51413
/ip firewall nat add chain=dstnat in-interface=pppoe0 protocol=udp dst-port=51413 \
    action=dst-nat to-addresses=192.168.66.51 to-ports=51413
/ip firewall nat add chain=dstnat in-interface=pppoe0 protocol=tcp dst-port=5822 \
    action=dst-nat to-addresses=192.168.66.36 to-ports=22
/ip firewall nat add chain=dstnat in-interface=pppoe0 protocol=udp dst-port=5822 \
    action=dst-nat to-addresses=192.168.66.36 to-ports=22
/ip firewall nat add chain=dstnat in-interface=pppoe0 protocol=tcp dst-port=1194 \
    action=dst-nat to-addresses=192.168.66.32 to-ports=1194
/ip firewall nat add chain=dstnat in-interface=pppoe0 protocol=udp dst-port=1194 \
    action=dst-nat to-addresses=192.168.66.32 to-ports=1194
/ip firewall nat add chain=srcnat connection-nat-state=dstnat action=masquerade  # hairpin

# 防火墙(input / forward),顺序很重要:SSH 放行必须早于默认 drop
/ip firewall filter add chain=input connection-state=established,related action=accept
/ip firewall filter add chain=input connection-state=invalid action=drop
/ip firewall filter add chain=input protocol=icmp action=accept
/ip firewall filter add chain=input in-interface=pppoe0 action=drop comment="drop WAN in"
/ip firewall filter add chain=input protocol=tcp dst-port=22 \
    src-address=192.168.66.0/24,192.168.55.0/24 action=accept comment="mgmt SSH"
/ip firewall filter add chain=input action=drop comment="drop other input"
/ip firewall filter add chain=forward connection-state=established,related action=fasttrack-connection \
    hw-offload=yes
/ip firewall filter add chain=forward connection-state=established,related action=accept
/ip firewall filter add chain=forward connection-state=invalid action=drop
/ip firewall filter add chain=forward in-interface=pppoe0 action=drop comment="drop WAN fwd"
/ip firewall filter add chain=forward action=accept comment="accept LAN fwd"

# MSS clampPPPoE MTU 1492 → 1452ER-X 旧值 1412 偏小,验证后按标准值收敛)
/ip firewall mangle add chain=forward protocol=tcp tcp-flags=syn \
    tcp-mss=1400-65535 action=change-mss new-mss=1452 passthrough=yes

# IPv6PD /60 + SLAAC /64
/ipv6 dhcp-client add interface=pppoe0 request=prefix pool-name=pd6 \
    pool-prefix-length=60 add-default-route=yes
/ipv6 address add from-pool=pd6 interface=vlan66 address=::1 adverts=yes
/ipv6 address add from-pool=pd6 interface=vlan55 address=::1 adverts=yes
# /ipv6 firewall filter 参照 IPv4established/related accept、invalid drop、
# icmpv6 accept、pppoe0 in drop、默认 dropforward 同构

# DHCP(池 / DNS / Inform / 静态映射全量照搬 ER-X
/ip pool add name=pool66 ranges=192.168.66.38-192.168.66.243
/ip pool add name=pool55 ranges=192.168.55.38-192.168.55.243
/ip dhcp-server add name=dhcp66 interface=vlan66 address-pool=pool66 lease-time=1d
/ip dhcp-server add name=dhcp55 interface=vlan55 address-pool=pool55 lease-time=1d
/ip dhcp-server network add address=192.168.66.0/24 gateway=192.168.66.254 \
    dns-server=192.168.66.36
/ip dhcp-server network add address=192.168.55.0/24 gateway=192.168.55.254 \
    dns-server=192.168.66.36
# 静态映射:从 ER-X 导出后逐条 /ip dhcp-server lease add ...
# UniFi InformDHCP option 43hex 编码为 http://192.168.66.46:9080/inform),
#   或依赖已 adopt AP 的 set-inform;与现网 ER-X 行为保持一致。

阶段 2:上台预验证(ER-X 仍在线)

  1. 将 RB5009 ether2 接入现有 LAN66 网段(管理本同网段),SSH 登录 .253
  2. 全配置复查:VLAN 表、防火墙规则顺序(SSH 在 drop 前)、NAT、路由、IPv6。
  3. 暂不启用 RA/DHCP(避免与 ER-X 冲突)。预验证 .253 可达、SSH 密钥生效、zhiqiang 无密码。
  4. 确认 ER-X 当前配置已备份并保存(作为回滚依据;show configuration commands 过滤敏感行)。

阶段 3:维护窗切换(约 30–60 分钟)

  1. 变更 RB5009 vlan66/vlan55 地址 .253 → .254
  2. 下电 ER-X(保留原接线与配置,不作任何改动)。
  3. ONT 线从 ER-X eth4 移到 RB5009 ether1
  4. 观察 PPPoE 拨号:/interface pppoe-client monitor pppoe0 直至 status=established;确认 WAN IP 与默认路由。
  5. 验证清单(见第 5 节),全绿才算完成。

阶段 4:上线收口

  1. 再确认管理面:禁 Winbox/API/WebFig、SSH 仅密钥、默认 admin 已除。
  2. 更新固件/补丁至已核定的稳定版;重新导出备份(.backup + 文本)存离线。
  3. ER-X 下电收纳为已配置备件,把其接线与角色记录到 hosts/gw.md 备份节。

阶段 5(后续,另立项目)

时序确认: VLAN10 升级专用 Wi-Fi 是 RB5009 上线稳定之后的独立项目,不并入本次维护窗。

  • 4 条端口转发是否仍需的审计。
  • 网关重编址(.254 → 其它)决策。
  • VLAN10 升级专用 SSID → gfw(可行性审查,2026-08-09
  • 迁移后同步本仓库事实文档:hosts/gw.mddocs/lan-overview.mdinventory/hosts.mdAGENTS.md 快速地图。

阶段 5 附:VLAN10 可行性审查

结论: 换 RB5009 后物理上可行,但 RB5009 只解决「交换机侧」路径;PVE 宿主机到 gfw 虚拟机这一段(此前判定为不可行的关键缺口)仍必须单独打通。

为什么当前不能在 AP 上启用 VLAN10:

U6 接的是 ER-X eth0 的普通 untagged LAN66 路径,尚无已验证的 VLAN10 端到端二层通道。给 SSID 选择 VLAN10 后,客户端不会获得可由 gfw 服务的预期 VLAN10 网络;帧究竟被丢弃、被设备错误处理,还是 SSID 实际没有打 tag,必须以 AP/交换机/gfw 抓包和配置核验判断。不得将“tagged 帧必然自动去标签并泄漏到 LAN66”作为实施前提。

RB5009 下实现需要 3 个前提:

  1. RB5009 bridge 增加 VLAN10 转发: /interface bridge vlan add bridge=bridge66 vlan-ids=10 tagged=<U6口>,<PVE口> 只在这两个口 tagged。不要在 RB5009 上给 VLAN10 配 IP / DHCPgfw 才是网关与唯一 DHCP)。
  2. PVE 宿主机路径(必须做,RB5009 解决不了这一段): PVE 物理上联口透传 tagged VLAN10gfw 虚拟机有一块 VLAN10 可达的网卡 (如 vmbr0 开 vlan_filtering + 给 gfw 加第二块 pvid 10 的 NIC,或 VM 内 eth0.10)。 这是此前「无法实现」的同一处缺口,需在 PVE/vSwitch 层单独验证。
  3. gfw 侧: VLAN10 网卡 192.168.10.1/24 + DHCP192.168.10.0/24+ 出 66 口 masquerade。RB5009 无需到 192.168.10.0/24 的路由(gfw SNAT 后源地址即 66 网段)。

两个注意点:

  • 单 DHCP 原则: VLAN10 上唯一 DHCP 是 gfwRB5009 不得在 VLAN10 提供 DHCP。
  • 设计确认: 升级 SSID 客户端走 gfw 网关后,DNS 为 gfw 的 dnsmasq→clash7874), 不是 AdGuard .36——这是「被代理网络」的预期行为,需接受。

阶段 5 附:PVE 上 VLAN10 透传实现(调研 2026-08-09

官方 wiki + 多个社区案例支持两种模型,核心原则是 「一层只拥有一个 tag」——要么 PVE 拥有 access VLAN,要么 OpenWrt 拥有 trunk不能在同一张 NIC 上两层都做

方案 A(推荐):PVE 拥有 access VLANgfw 加第二块 virtio 网卡

  1. vmbr0 开 vlan-aware/etc/network/interfaces):

    auto vmbr0
    iface vmbr0 inet static
            address 192.168.66.26/24
            gateway 192.168.66.254
            bridge-ports eno1
            bridge-stp off
            bridge-fd 0
            bridge-vlan-aware yes
            bridge-vids 10        # 至少含 10;常见默认 2-4094
    
  2. gfw VM 添加 net1: virtio,bridge=vmbr0,tag=10。VM 内该网卡是无标记接口 (已落在 VLAN10 广播域),不要再建同名 8021q 子接口

  3. 现有 eth0native/untagged = VLAN66)不动,gfw 原有角色不变。

  4. PVE 物理上联口(PVE→RB5009)改为 trunknative 66 + tagged 10

  5. OpenWrt 内:新网卡 192.168.10.1/24 + DHCP192.168.10.0/24+ 独立 firewall zone→wan masq。

方案 BOpenWrt 拥有 trunk(单 NIC 多 VLAN

  • vmbr0 vlan-awareVM NIC 不加 tagtrunk 原样进 VMOpenWrt 内建 8021q 设备 eth0.10x86/virtio 用 option type '8021q',不要套用 DSA 教程)。物理上联 trunk。
  • 更灵活(一块网卡多 VLAN),是 router VM 的常见做法,但需要 OpenWrt 8021q 配置, 且方案 A 对现有单网卡 gfw 改动更小。

RB5009 侧配套(U6 口 + PVE 口都做成 trunk):

/interface bridge port add bridge=bridge66 interface=<U6口>  pvid=66
/interface bridge port add bridge=bridge66 interface=<PVE口> pvid=66
/interface bridge vlan add bridge=bridge66 vlan-ids=66 tagged=bridge66 untagged=<U6口>,<PVE口>,<其余66口>
/interface bridge vlan add bridge=bridge66 vlan-ids=55 tagged=bridge66 untagged=<ether9>
/interface bridge vlan add bridge=bridge66 vlan-ids=10 tagged=<U6口>,<PVE口>

VLAN10 在 RB5009 上纯二层桥接(U6 ↔ PVE),三层由 gfw 承担;RB5009 无 VLAN10 IP/DHCP。

常见坑(社区高复发):

  • 双标签: PVE 设了 tag=10 又在 OpenWrt 里建 eth1.10 → 一帧被两层改两次。
  • native VLAN 不一致: trunk 上无标记帧被两端当成不同 VLAN → DHCP 消失 / 拿到错网段 (正是你之前在 AP 上打 VLAN10 坏 66 网的同类故障)。
  • bridge 未 vlan-aware tagged 帧进 host 后在 bridge 过滤层消失。

诊断命令:

# PVE host
bridge vlan show
ip -br link
tcpdump -eni <上联口>          # 帧是否到物理口
tcpdump -eni vmtapXXXXXX       # 帧是否到 VM tap
# OpenWrt guest
ip -d link show
logread -e netifd

参考案例:

PVE host 改动风险:vmbr0 开 vlan-aware 是对宿主机网络栈的修改,有管理面断连风险; 需在维护窗内用控制台/独立带外通道进行,先 ifreload -aPVE7+ 的 ifupdown2 支持热应用), 保留原配置作回滚。


5. 验收清单(「网络算正常」的样子)

  1. 管理面:zhiqiang 密钥 SSH 可从 LAN66/55 登录;默认 admin 禁用;Winbox/API 不可达;.254 管理可达。
  2. VLAN:客户端取得正确网段(.66.x / .55.x),默认网关 .254DNS .36 可用。
  3. 互联网:PPPoE 已建立;IPv4 外网通;端口转发逐条从公网验证(hass 8123、transmission 51413、ssh 5822→.36:22、openvpn 1194)。
  4. IPv6:两 VLAN 拿到 SLAAC /64,默认路由存在,外部 IPv6 可达;IPv6 防火墙未阻断必要 ICMPv6/DHCPv6。
  5. 本地服务:跨 VLAN.55.x.66.x)互通;AdGuard Home、UniFi 控制器、gfw 旁路由行为与升级前一致。
  6. UniFiU6 Lite.66.6)与 UAP-AC-Lite.55.5)在控制器显示 ConnectedInform 未变 :9080
  7. 无环路、无双默认网关;端口协商与错误计数正常。
  8. 备份(.backup + 文本导出)已离线保存;ER-X 已下电收纳。

6. 回滚语义

任一阶段失败:停手

  • 维护窗内失败(PPPoE 未起 / 客户端不通 / 防火墙锁死):
    1. 下电 RB5009。
    2. ONT 线插回 ER-X eth4
    3. 给 ER-X 上电 → 服务在数分钟内恢复。
    4. 不要在故障中改 ER-X 的 WAN、DHCP、网关地址或 SSH 策略。
  • 维护窗成功后 ER-X 只是备件;后续 VLAN10 失败只撤 SSID/VLAN 绑定,主 SSID 与 .254 路径不动。

7. 安全与记录

  • 本仓库永不记录PPPoE 口令、zhiqiang 口令、SSH 私钥、RouterOS 备份(含口令/密钥)。
  • 每次实质性变更(切换、回滚、加固)完成后,在 Linear vps 项目记录 scope / action / verification / 遗留 follow-up(本次先不建 issue,待执行时补)。
  • SSH 与访问策略变更遵循仓库「SSH access safety」流程:ER-X 会话保持为回滚路径,新密钥登录验证成功前不关闭旧通道。

8. 参考