EMAC VLAN
2026/1/7网络管理7.X.X大约 4 分钟
EMAC VLAN
警告
- 在 NP6XLite(SoC4)平台设备(如 60F/80F/100F/200F 等),请勿在 EMAC VLAN 相关流量被 NPU 加速的状态下使用此功能,否则可能会出现业务中断,其他平台设备可正常使用。
- 如必须在 NP6XLite(SoC4)平台设备使用此功能,请关闭 EMAC VLAN 相关的防火墙策略(
config firewall policy)的 NPU 加速功能(set auto-asic-offload disable)。
功能简介
增强型 MAC VLAN(Enhanced MAC VLAN,以下简称 EMAC VLAN)是 FortiGate 设备中实现 VLAN 的一种方式。EMAC VLAN 主要用于需要通过同一物理接口模拟多个 VLAN 接口的情况。与传统的 MAC VLAN 不同,它增加了以下功能:
- 支持多个 MAC 地址:共享同一底层接口的每个 EMAC VLAN 都有一个唯一的 MAC 地址,可以与不同的 IP 地址和网络配置相结合。
- VIP 和 IP Pool 支持:由于每个 EMAC VLAN 都具有唯一的 MAC 地址,每个 EMAC VLAN 接口都可以配置 VIP 和 IP Pool(普通的 VLAN 如果共享同一底层接口,由于多个 VLAN 的 MAC 地址相同,会使邻居路由器的 ARP 表无法区分)。
- SNAT 支持:在策略中,可以选择禁用 SNAT,从而保留源 IP 地址的原始信息(原因与上条一致)。
工作原理
EMAC VLAN 并不会直接将数据包分配到底层交换机。在配置了 VLAN ID 的情况下,数据包会被打上 VLAN Tag,并通过底层接口的驱动程序进行处理。如果 VLAN Tag 不匹配,数据包将不会通过该接口。
使用 VLAN ID 的限制
在 EMAC VLAN 中配置 VLAN ID 时,VLAN ID 和底层接口必须唯一配对。所以即使是不同的 VDOM,也不能使用相同的 VLAN ID。
透明模式的限制
EMAC VLAN 不能在透明模式的 VDOM 中使用。在透明模式下,数据包会携带原始源的 MAC 地址,而不是接口的 MAC 地址,这与 EMAC VLAN 的工作方式冲突。
HA 中的处理
在 HA 配置中,EMAC VLAN 接口被视为物理接口,且有唯一的物理接口 ID。EMAC VLAN 接口的 MAC 表会与 HA 集群中的其他设备同步。在 HA 配置中,每个接口会被分配一个虚拟 MAC 地址。
配置示例
多个 VDOM 共享同一物理接口

- FortiGate 有 4 个 VDOM:root(默认)、VDOM1、VDOM2、VDOM3,port1 接口属于 root VDOM。
- FortiGate 通过 port1 连接到 Router,三个 VDOM 共享 port1。
- 每个 VDOM 配置一个 EMAC VLAN 接口,并且每个接口都有唯一的 MAC 地址,从而使得多个 VDOM 可以共享一个物理接口。
config global
config system interface
edit "port1"
set vdom "root"
set type physical
set snmp-index 9
next
end
config system interface
edit port1.emacvlan1
set vdom VDOM1
set ip 100.1.1.11 255.255.255.0
set type emac-vlan
set interface port1
next
edit port1.emacvlan2
set vdom VDOM2
set ip 100.1.1.12 255.255.255.0
set type emac-vlan
set interface port1
next
edit port1.emacvlan3
set vdom VDOM3
set ip 100.1.1.13 255.255.255.0
set type emac-vlan
set interface port1
next
end
end使用 NPU Vlink 接口进行连接

- FortiGate 有 6 个 VDOM:root(默认)、VDOM1、VDOM2、VDOM3、VDOM4、VDOM5,VDOM1/VDOM3/VDOM5 通过 NPU Vlink 与 VDOM2/VDOM4 互联。
- FortiGate NPU Vlink 为点对点连接,NPU Vlink 接口上的 VLAN 接口使用相同的 MAC 地址。由于 VLAN 接口共享相同 MAC 地址,不建议使用 NPU Vlink 和 VLAN 接口连接超过两个 VDOM。为避免同一 NPU Vlink 上 MAC 地址重叠,需要改用增强型 MAC VLAN。
config global
config system interface
edit npu0_vlink0.emacvlan1
set vdom VDOM1
set ip 100.1.1.11 255.255.255.0
set type emac-vlan
set interface npu0_vlink0
next
edit npu0_vlink0.emacvlan2
set vdom VDOM3
set ip 100.1.1.13 255.255.255.0
set type emac-vlan
set interface npu0_vlink0
next
edit npu0_vlink0.emacvlan3
set vdom VDOM5
set ip 100.1.1.15 255.255.255.0
set type emac-vlan
set interface npu0_vlink0
next
edit npu0_vlink1.emacvlan1
set vdom VDOM2
set ip 100.1.1.12 255.255.255.0
set type emac-vlan
set interface npu0_vlink1
next
edit npu0_vlink1.emacvlan2
set vdom VDOM4
set ip 100.1.1.14 255.255.255.0
set type emac-vlan
set interface npu0_vlink1
next
end
endVLAN 接口使用独立的 MAC 地址
- 某些网络要求当 VLAN 接口共享同一物理端口时,每个 VLAN 接口必须拥有唯一的 MAC 地址。在此情况下,EMAC VLAN 接口的使用方式与普通 VLAN 接口相同。
- 还有一种情况是 FortiGate 做 HA 集群后,业务接口会使用 HA 的虚拟 MAC(如
00:09:0f:09:07:00,实际的物理 MAC 为94:F3:92:53:AE:7A),某些运营商的 PPPoE Server 会对这种虚拟 MAC 地址做限制,导致 FortiGate 的 PPPoE 拨号失败。EMAC VLAN 在 HA 下会使用物理 MAC 地址(如9A:F3:92:53:AE:7A,在 EMAC VLAN 上创建的 PPPoE 也会继承该物理 MAC 地址),从而规避该问题。 - 配置时使用
set vlanid命令设置 VLAN Tag。VLAN ID 与接口必须构成唯一对应关系,即使它们属于不同的 VDOM。
config system interface
edit emacvlan1
set type emac-vlan
set vlanid 10
set interface wan1
next
end
FortiGate # diagnose hardware deviceinfo nic emacvlan1
Description EMacvlan Ethernet driver v1.0
System_Device_Name emacvlan1
Lower_Device_Name wan1
Current_HWaddr 9a:f3:92:53:ae:7a
Permanent_HWaddr 9a:f3:92:53:ae:7a
State up
Link up
npudev_oid 64
macvlan_id 0
vlan_id 10
learn_mac no
mode 2注意事项
- 每个物理接口最多可以创建 512 个增强型 MAC VLAN 接口。
- 所有接口的 MAC 地址总数不能超过 600 个,包括增强型 MAC VLAN 接口的 MAC 地址以及其他接口的 MAC 地址。