虚拟局域网(VLAN)是一组逻辑上的设备和用户,这些设备不受物理位置限制,可以根据功能、部门或应用等因素灵活组织。同一 VLAN 内的设备通信就像处于同一个物理网段,因此称为虚拟局域网。VLAN 工作在 OSI 模型的第 2 层和第 3 层,一个 VLAN 就是一个广播域,VLAN 之间的通信需要通过第 3 层的路由器完成。与传统局域网相比,VLAN 主要具有以下优势:降低网络设备移动、添加和修改的管理复杂度;可控制广播活动;能提升网络安全性。
在计算机网络中,一个二层网络可被划分为多个不同的广播域,每个广播域对应一个用户组,默认情况下这些广播域相互隔离。要实现不同广播域间的通信,需要借助一个或多个路由器,这样一个广播域就称为 VLAN。
本文介绍如何在 pfSense 中创建并配置 VLAN,完成后既可允许(或阻止)该 VLAN 与其他 VLAN 通信,也能让所有 VLAN 共享同一个互联网连接。配置步骤如下:
- 在 24 端口交换机上创建一个静态 VLAN。
- 将该 VLAN 从交换机中继到 pfSense 的 LAN 接口。
- 为该 VLAN 分配一个 24 位掩码的私有 IP 子网。
前提假设:
- pfSense 已正确安装,并已为现有 LAN 接口提供基本的互联网连接。
- 分配给 LAN 接口的网卡支持 IEEE 802.1Q VLAN 标识。
- 连接到 LAN 接口的交换机能够支持基于端口的 VLAN 的创建、配置和中继。
本文使用的软件版本为 pfSense 2.4.2-RELEASE-P1 (AMD64)。示例交换机是 Cisco SG200-26,千兆以太网端口,提供基于 Web 的管理界面,同时支持 256 个基于端口和 IEEE 802.1Q 标识的 VLAN。各交换机的管理接口可能有所不同,可根据本文说明做相应调整。
交换机配置
静态 VLAN(通常称为“基于端口”的 VLAN)通过将交换机端口分配给预先配置的 VLAN 标识符来创建。本例将在交换机上配置一个静态 VLAN,并指定 VLAN ID 为 50。你也可以使用 2 到 4094 之间的任意正整数作为 VLAN ID,但应避免使用 VLAN ID 1 和 4095,因为大多数交换机默认将所有端口分配给 VLAN ID 1,而将 VLAN ID 4095 视为“丢弃” VLAN。
首先,导航到“VLAN Management -> Create VLAN”并选择“Add”。在“VLAN ID”字段输入 50,在“VLAN Name”字段输入一个名称以标识该 VLAN,本例中使用“vlan50”。完成后点击“Apply”。

在为端口分配新 VLAN 成员资格之前,需要先将端口配置为“Access”端口或“Trunk”端口。Access 端口是只属于一个 VLAN 的成员端口,通常用于连接不具备 VLAN 标记能力的终端设备(如未配置 VLAN 的 PC),因为 Access 端口会在向设备发送以太网帧前移除所有 VLAN 信息。Trunk 端口可以承载多个 VLAN 的流量,一般用于交换机之间或交换机与路由器的连接。小型企业级交换机(如 Cisco SG200)通常默认将每个端口指定为 Trunk 端口。
为简化演示,假设连接到交换机的设备未做额外配置。本例中将端口 19 配置为 Access 端口,并分配给新创建的 VLAN;端口 25 用于将交换机连接到 pfSense LAN 接口,将其配置为 Trunk 端口,也加入新创建 VLAN 的成员资格。
导航到“VLAN Management -> Interface Settings”,选择端口 19,然后选择“EDIT”。将接口 VLAN 模式从“Trunk”更改为“Access”,然后点击“Apply”。

类似步骤,将端口 25 配置为 Trunk 端口。
接下来,导航到“VLAN Management -> Port VLAN Membership”,选择端口 19,然后选择“Join VLAN”。由于 Access 端口只能以 Untagged 方式加入单个 VLAN,需要先删除交换机自动分配给端口的默认 VLAN(通常是 VLAN 1)。左键单击选中 VLAN 1,点击箭头图标将其从接口移出。再选中 VLAN 50,点击箭头图标将其加入接口,并在“Tagged”选项下选择“Untagged”。完成后点击“Apply”。

然后配置连接到 pfSense LAN 接口的端口 25:确保端口 25 为 Trunk 端口,导航到“VLAN Management -> Port VLAN Membership”,选择端口 25 并点击“Join VLAN”。选中 VLAN 50,点击箭头图标将其加入接口,在“Tagged”选项下选择“Tagged”。完成后点击“Apply”。

交换机部分配置完毕,请务必将更改保存至启动配置,防止交换机因重启而丢失配置。
pfSense 配置
现在需要在 pfSense 中配置 VLAN 50。导航到“网络接口 -> 接口分配”,记下分配给 LAN 网卡的设备驱动程序名称。本例假设设备驱动程序名为“em1”(见下图),LAN2 接口将作为后续 VLAN 接口的“父接口”。

然后,导航到“网络接口 -> 接口分配 -> VLANs”,点击“+添加”图标。在随后的页面中,从“父接口”下拉列表中选择 LAN2 接口“em1”,在“VLAN 标识”下输入 50,并在“描述”栏填写该 VLAN 的可选说明,最后点击“保存设置”。

创建 VLAN 接口后,返回“网络接口 -> 接口分配”,在可用网络端口中,选择“em1 上的 VLAN 50 – opt1”,点击“+ 添加”图标,然后“保存设置”。

本例中,pfSense 将 VLAN 50 分配为 OPT4。导航到“网络接口 -> OPT4”,并选择“启用接口”。在“描述”栏中将“OPT4”替换为“VLAN 50”,然后从“IPv4 配置类型”下拉列表中选择“静态 IPv4”。为 VLAN 50 使用网络 192.168.50.0/24,在该接口上分配静态 IP 地址 192.168.50.1,并在“静态 IP 配置”部分选择“/24”子网掩码。其他参数保留默认值。完成后点击“保存设置”并“应用更改”。

接下来,为新 VLAN 创建防火墙规则,以使流量能够从 WAN 接口入站/出站,并接入互联网。导航到“防火墙 -> 规则策略”,选择 VLAN 50 接口,点击“添加”图标创建新规则。本例将创建一个类似 LAN 的简单出站放行规则:动作设为“通过”,协议设为“any”,源地址设为“VLAN50 net”,并输入规则描述。其他参数保留默认值,完成后“保存设置”并“应用更改”。

除非计划为所有主机分配静态 IP 地址,否则需要为新 VLAN 配置 DHCP 服务器。导航到“服务 -> DHCP 服务”,选择 VLAN 50 接口。勾选“在接口 VLAN50 上启用 DHCP 服务”,然后输入 IP 地址范围。pfSense 默认使用分配给此接口的 IP 地址作为网关,本例中网关地址为 192.168.50.1;如需其他网关,可在“网关”字段指定。同时输入 DNS 地址,其他参数保持默认,完成后“保存设置”。

如果上一步未指定 DNS 地址,还需要导航到“服务 -> DNS 转发器 -> 接口”,确保 DNS 转发器响应客户端查询的接口列表中包含 VLAN50,然后“保存设置”并“应用更改”。

至此配置完成。
测试时,将主机设备(如台式机或笔记本电脑)连接到交换机的端口 19。如果一切配置正确,主机应从 DHCP 地址池中获取到 192.168.50.0/24 范围内的 IP 地址,默认网关为 192.168.50.1,DNS 为指定地址。若 pfSense 已连通互联网,则主机应能正常访问网络。
需注意,按照当前配置,各 VLAN 之间可以互相路由。若要禁止某 VLAN 的通信,必须创建防火墙规则明确限制路由方向。pfSense 的防火墙规则采用首匹配原则,即第一个匹配数据包的规则将被执行。例如,若要阻止所有来自 VLAN 50 的流量到达 LAN,可在之前创建的放行规则之前添加一条规则,阻止 VLAN 50 与 LAN 通信。

总结
只要交换机和网络接口支持 VLAN 功能,在 pfSense 中配置 VLAN 可归纳为以下步骤:
- 在交换机上创建静态 VLAN,并将该 VLAN 中继到 pfSense 的 LAN 接口。
- 在 pfSense 中创建并添加 VLAN 接口,配置必要的防火墙规则。
- 为 VLAN 分配一个 24 位掩码的私有 IP 子网,使用 DHCP 为主机分配地址。
- 所有 VLAN 可共享 pfSense 的互联网连接。
- 通过 pfSense 防火墙规则,可以控制每个 VLAN 之间的通信。
觉得内容不错?我要