Segments home networks into VLANs for IoT, guest, trusted, and server traffic using UniFi, pfSense/OPNsense, and MikroTik. Covers switch trunk config, firewall rules, and wireless SSID mapping.
How this skill is triggered — by the user, by Claude, or both
Slash command
/everything-claude-code:homelab-vlan-segmentationThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
如何将家庭网络分割为隔离的 VLAN,使 IoT 设备、访客和主 PC 无法相互通信。这是家庭网络最有效的安全升级。
如何将家庭网络分割为隔离的 VLAN,使 IoT 设备、访客和主 PC 无法相互通信。这是家庭网络最有效的安全升级。
此处显示的所有防火墙规则在分段之间添加隔离——它们不会移除现有保护。在维护窗口中应用更改,并在继续之前验证每个步骤后的分段间连接性。
无 VLAN — 扁平网络:
所有设备位于 192.168.1.0/24
智能电视(潜在恶意软件)→ 可以到达您的 NAS、PC、所有设备
使用 VLAN:
VLAN 10 — 可信 192.168.10.0/24 (PC、手机、笔记本电脑)
VLAN 20 — IoT 192.168.20.0/24 (智能电视、灯泡、摄像头)
VLAN 30 — 服务器 192.168.30.0/24 (NAS、Pi、虚拟机)
VLAN 40 — 访客 192.168.40.0/24 (访客 Wi-Fi)
VLAN 99 — 管理 192.168.99.0/24 (交换机/AP Web UI)
智能电视 → 被阻止到达 192.168.10.0/24 和 192.168.30.0/24
访客 → 仅互联网,无法看到任何家庭设备
VLAN 名称 子网 网关 用途
10 trusted 192.168.10.0/24 192.168.10.1 PC、手机、笔记本电脑
20 iot 192.168.20.0/24 192.168.20.1 智能家居设备
30 servers 192.168.30.0/24 192.168.30.1 NAS、Pi、自托管
40 guest 192.168.40.0/24 192.168.40.1 访客 Wi-Fi
99 management 192.168.99.0/24 192.168.99.1 网络设备 Web UI
带有 UniFi AP 和托管交换机的典型家庭实验室:
场景:3卧室住宅,UniFi Dream Machine + UniFi 8端口交换机 + 2个 AP
VLAN 10 — 可信 192.168.10.0/24 MacBook、iPhone、iPad
VLAN 20 — IoT 192.168.20.0/24 Nest 温控器、Philips Hue、Ring 门铃、智能电视
VLAN 30 — 服务器 192.168.30.0/24 Synology NAS (192.168.30.10)、Pi-hole (192.168.30.2)
VLAN 40 — 访客 192.168.40.0/24 访客 Wi-Fi — 仅互联网
SSID → VLAN 映射:
"Home" → VLAN 10 (WPA2、强密码、仅可信设备)
"IoT" → VLAN 20 (WPA2、单独密码、打印在路由器上用于设置)
"Guest" → VLAN 40 (WPA2、简单密码、可自由分享)
交换机端口行为:
端口 1 → 路由器中继(标记 VLAN 10,20,30,40,99)
端口 2 → AP 中继(标记 VLAN 10,20,40;AP 处理每个 SSID 标记)
端口 3 → 接入 VLAN 30 (NAS — 未标记,无需 VLAN 感知)
端口 4 → 接入 VLAN 30 (Pi-hole — 未标记)
端口 5–8 → 接入 VLAN 10 (有线工作站)
应用的防火墙规则(所有规则添加隔离,不移除现有保护):
IoT → 可信:阻止
IoT → 服务器:阻止 192.168.30.2:53 例外 (允许 Pi-hole DNS)
IoT → 互联网:允许
访客 → 本地网络:阻止
访客 → 互联网:允许
可信 → 所有地方:允许
设置 → 网络 → 创建新网络
对于每个 VLAN:
名称:IoT
用途:企业 (提供 DHCP + 路由)
VLAN ID:20
网络:192.168.20.0/24
网关 IP:192.168.20.1
DHCP:启用
DHCP 范围:192.168.20.100 – 192.168.20.254
设置 → WiFi → 创建新 WiFi
名称:IoT-Network
密码:<单独密码>
网络:IoT ← 在此处选择您的 VLAN
# 连接到此 SSID 的所有设备都落在 VLAN 20 中
名称:Guest
密码:<访客密码>
网络:Guest
访客策略:启用 ← 也将访客彼此隔离
设置 → 流量和安全性 → 流量规则
# 阻止 IoT 到达可信 VLAN
操作:阻止
类别:本地网络
源:IoT (192.168.20.0/24)
目标:可信 (192.168.10.0/24)
# 仅允许 IoT 到达互联网
操作:允许
源:IoT
目标:互联网
# 阻止访客访问所有本地网络
操作:阻止
源:访客
目标:本地网络
接口 → 分配 → VLAN → 添加
父接口:em1 (您的 LAN NIC)
VLAN 标签:20
描述:IoT
# 对每个 VLAN 重复,然后将每个 VLAN 分配给接口:
接口 → 分配 → 添加
选择您创建的 VLAN → 点击添加
启用接口,将 IP 设置为网关地址 (192.168.20.1/24)
服务 → DHCP 服务器 → 选择您的 VLAN 接口
启用 DHCP
范围:192.168.20.100 至 192.168.20.254
DNS 服务器:192.168.30.2 ← Pi-hole IP(如果您有)
# 规则从上到下处理,首先匹配的获胜。
# 在 IoT 接口 (VLAN 20) 上:
规则 1:允许 IoT → Pi-hole DNS ← 必须在 RFC1918 阻止规则之前
协议:UDP/TCP
源:IoT 网络
目标:192.168.30.2 端口 53
操作:允许
规则 2:阻止 IoT → RFC1918 (所有私有 IP 范围)
协议:任何
源:IoT 网络
目标:RFC1918 (192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12)
操作:阻止
规则 3:允许 IoT → 互联网
协议:任何
源:IoT 网络
目标:任何
操作:允许
# 在可信接口 (VLAN 10) 上:
允许所有 (可信设备可以到达所有地方)
源:可信网络
目标:任何
操作:允许
# 需要特定本地服务的 IoT 设备的额外例外:
在规则 2 (RFC1918 阻止) 之前插入:
协议:TCP
源:IoT 网络
目标:192.168.30.x 端口 8123 ← Home Assistant
操作:允许
# 步骤 1:创建启用 VLAN 过滤的网桥
/interface bridge
add name=bridge vlan-filtering=yes
# 步骤 2:将物理端口添加到网桥
# 到路由器/上行链路的中继端口(所有 VLAN 标记)
/interface bridge port
add bridge=bridge interface=ether1 frame-types=admit-only-vlan-tagged
# 可信设备的接入端口(未标记 VLAN 10)
/interface bridge port
add bridge=bridge interface=ether2 pvid=10 frame-types=admit-only-untagged-and-priority-tagged
# IoT 设备的接入端口(未标记 VLAN 20)
/interface bridge port
add bridge=bridge interface=ether3 pvid=20 frame-types=admit-only-untagged-and-priority-tagged
# 步骤 3:定义哪些端口上允许哪些 VLAN
/interface bridge vlan
add bridge=bridge tagged=ether1 untagged=ether2 vlan-ids=10
add bridge=bridge tagged=ether1 untagged=ether3 vlan-ids=20
# 步骤 4:在网桥上创建 VLAN 接口(网关 IP)
/interface vlan
add interface=bridge name=vlan10 vlan-id=10
add interface=bridge name=vlan20 vlan-id=20
# 步骤 5:分配网关 IP
/ip address
add interface=vlan10 address=192.168.10.1/24
add interface=vlan20 address=192.168.20.1/24
# 步骤 6:DHCP 池和服务器
/ip pool
add name=pool-trusted ranges=192.168.10.100-192.168.10.254
add name=pool-iot ranges=192.168.20.100-192.168.20.254
/ip dhcp-server
add interface=vlan10 address-pool=pool-trusted name=dhcp-trusted
add interface=vlan20 address-pool=pool-iot name=dhcp-iot
/ip dhcp-server network
add address=192.168.10.0/24 gateway=192.168.10.1
add address=192.168.20.0/24 gateway=192.168.20.1
# 步骤 7:防火墙 — 阻止 IoT 到达可信 VLAN
/ip firewall filter
add chain=forward src-address=192.168.20.0/24 dst-address=192.168.10.0/24 \
action=drop comment="阻止 IoT 到可信"
# 中继端口:承载多个 VLAN(标记)— 连接交换机到交换机、交换机到路由器、交换机到 AP
# 接入端口:承载一个 VLAN(未标记)— 连接到终端设备 (PC、摄像头、NAS)
# 连接到路由器的托管交换机端口应该是中继:
允许的 VLAN:10, 20, 30, 40, 99
# 连接到 PC 的端口应该是接入端口:
VLAN:10 (可信)
无标记 — PC 不知道或不在乎 VLAN
# 连接到 AP 的端口必须是中继:
AP 使用正确的 VLAN ID 标记来自每个 SSID 的流量
允许的 VLAN:10, 20, 40 (AP 提供的任何 SSID)
# 错误:创建 VLAN 而不添加防火墙规则
# 没有防火墙规则的 VLAN 不提供安全性 — VLAN 间路由默认开放
# 正确:创建 VLAN 后立即添加显式阻止规则
# 错误:将 Pi-hole 放在 IoT VLAN 中
# IoT 设备可以到达它,但可信设备无法到达(需要额外规则)
# 正确:Pi-hole 在服务器 VLAN 中,规则允许所有 VLAN 到达端口 53
# 错误:本机 VLAN 等于管理 VLAN
# 未标记流量落在您的管理 VLAN 中启用 VLAN 跳跃攻击
# 正确:使用专用的未使用 VLAN 作为本机 (例如 VLAN 999),保持管理流量标记
# 错误:IoT SSID 和可信 SSID 使用相同的 Wi-Fi 密码
# 任何学习密码的人都可以将 IoT 设备连接到错误的分段
npx claudepluginhub aaione/everything-claude-code-zhSegments home networks into VLANs for IoT, guest, trusted, and server traffic using UniFi, pfSense/OPNsense, and MikroTik.
Designs and configures VLAN-based network segmentation on managed switches like Cisco Catalyst to isolate zones (corporate, servers, DMZ, guest, IoT) and restrict lateral movement.
Checklist for VLAN segmentation, local DNS filtering, and WireGuard remote access in homelab networks. Use before changing router, firewall, DHCP, or VPN config.