Marvell Prestera switch chip features

采用 Marvell Prestera 交换芯片的 MikroTik 设备提供高性能的二层和三层功能,包括高级转发、路由卸载、VLAN 支持、QoS、镜像以及用于精确计时的 PTP 同步。

Marvell Prestera 交换芯片功能


一些 MikroTik 设备使用高性能且功能丰富的 Marvell Prestera 以太网交换机。这些设备可设计用于各种以太网应用,包括非管理型交换机、二层管理型交换机、运营商交换机、VLAN 间路由器以及有线统一数据包处理器。

警告

本文仅适用于搭载 Marvell Prestera 交换机的 MikroTik 设备,不适用于 CRS1xx/CRS2xx 系列交换机。

功能

FeaturesDescription
转发可配置端口用于交换或路由完整的无阻塞线速交换用于二层单播转发的大型单播 FDB转发数据库基于 IVL 工作巨型帧支持IGMP/MLD Snooping 支持支持 DHCP Snooping 及自定义 Option 82(Circuit ID、Remote ID)支持 DHCPv6 Snooping 及自定义 Option 18(Interface ID)和 Option 37(Remote ID)RA Guard 支持
路由三层硬件卸载:IPv4、IPv6 单播路由支持在 Ethernet、Bridge、Bonding 和 VLAN 接口上支持ECMP黑洞卸载的 Fasttrack 连接 <sup>1</sup>针对 Fasttrack 连接的卸载 NAT <sup>1</sup>硬件卸载的 VRF <sup>1</sup>多个 MTU 配置文件重要: 1. 仅适用于特定交换机型号
生成树协议STPRSTPMSTP边缘端口、BPDU Guard、Root Guard
镜像各种类型的镜像:基于端口的镜像基于 VLAN 的镜像基于 MAC 的镜像远程交换机端口分析器(RSPAN)
VLAN完全兼容 IEEE802.1Q 和 IEEE802.1ad VLAN4k 活动 VLAN灵活的 VLAN 分配:基于端口的 VLAN基于协议的 VLAN基于 MAC 的 VLANVLAN 过滤入口 VLAN 转换多 VLAN 注册协议(MVRP)
绑定支持 802.3ad(LACP)、balance-xor 和 active-backup 模式每个绑定接口最多 8 个成员端口硬件自动故障转移和负载均衡MLAG
服务质量(QoS)每个端口八个输出队列DSCP 和 802.1p PCP 映射基于端口的二层和三层信任设置基于端口和队列的出站速率限制器通过 ACL 规则实现基于策略的 QoS严格优先级(SP)和整形差额加权轮询(SDWRR)排队增强传输选择(ETS)调度加权随机早期检测(WRED) <sup>1</sup>显式拥塞通知(ECN) <sup>1</sup>基于优先级的流控制(PFC) <sup>1</sup>资源分配控制(基于队列、共享池和多播)以及丰富的监控能力兼容 Dante 环境兼容融合以太网 RDMA(RoCE)环境 <sup>1</sup>入站流量限制(基于端口或通过 ACL 规则)流量风暴控制重要: 1. 仅适用于特定交换机型号
端口隔离适用于 Private VLAN 实现
访问控制列表入口 ACL 表基于端口、L2、L3、L4 协议头字段的分类ACL 操作包括过滤、转发以及修改协议头字段
PTP两步普通时钟和边界时钟。硬件时间戳,确保时钟同步达到纳秒(ns)级。IPv4 和二层(L2)多播传输模式。端到端(E2E)和对等(P2P)延迟机制。IEEE 1588-2008(PTPv2)。配置文件支持:802.1AS:音视频桥接(AVB)和时间敏感网络(TSN)的定时与同步。AES67:高性能 IP 音频互操作性。G.8275.1:PTP 感知网络中的频率和相位同步。SMPTE:专业广播环境中的音频/视频同步。重要: PTP 支持取决于硬件,请参阅支持的设备 列表。

信息

有关三层硬件卸载功能支持和硬件限制,请参阅功能支持用户手册。 说明

有关 QoS 硬件卸载功能支持和硬件限制,请参阅服务质量(QoS)用户手册。

型号

此表说明了 Cloud Router Switch 型号与 CCR 路由器之间的主要区别。

型号交换芯片CPU内存大小以太网PoE outACL 规则单播 FDB 条目巨型帧(字节)
CRS318-1Fi-15Fr-2S-OUT (netPower 15FR)Marvell-98DX224SARM 2-core 800MHz256 MB16x 10/100M Ethernet 2x 1G SFP1x passive128最多 16K10218
CRS318-16P-2S+OUT (netPower 16P)Marvell-98DX226SARM 2-core 800MHz256 MB16x 10/100/1000M Ethernet 2x 10G SFP+16x 802.3af/at128最多 16K10218
CRS310-1G-5S-4S+ (netFiber 9/IN)Marvell-98DX226SARM 2-core 800MHz256 MB1x 10/100/1000M Ethernet 5x 1G SFP 4x 10G SFP+128最多 16K10218
CRS310-8G+2S+INMarvell-98DX226SARM 2-core 800MHz256 MB8x 2.5G Ethernet 2x 10G SFP+128最多 16K10218
CRS320-8P-8B-4S+RMMarvell-98DX226SARM 2-core 800MHz256 MB16x 10/100/1000M Ethernet 4x 10G SFP+8x 802.3af/at 8x 802.3bt128最多 16K10218
CRS304-4XG-INMarvell-98DX2528ARM64 2-core 1200MHz512 MB4x 1/2.5/5/10G Ethernet128最多 16K10218
CRS326-24G-2S+ (RM/IN)Marvell-98DX3236ARM 2-core 800MHz512 MB24x 10/100/1000M Ethernet 2x 10G SFP+128最多 16K10218
CRS328-24P-4S+RMMarvell-98DX3236ARM 1-core 800MHz512 MB24x 10/100/1000M Ethernet 4x 10G SFP+24x 802.3af/at128最多 16K10218
CRS328-4C-20S-4S+RMMarvell-98DX3236ARM 2-core 800MHz512 MB20x 1G SFP 4x 1G combo 4x 10G SFP+128最多 16K10218
CRS305-1G-4S+INMarvell-98DX3236ARM 2-core 800MHz512 MB1x 10/100/1000M Ethernet 4x 10G SFP+128最多 16K10218
CRS305-1G-4S+OUT (FiberBox Plus)Marvell-98DX226SARM 2-core 800MHz256 MB1x 10/100/1000M Ethernet 4x 10G SFP+128最多 16K10218
CRS309-1G-8S+INMarvell-98DX8208ARM 2-core 800MHz512 MB1x 10/100/1000M Ethernet 8x 10G SFP+1024最多 32K10218
CRS317-1G-16S+RMMarvell-98DX8216ARM 2-core 800MHz1 GB1x 10/100/1000M Ethernet 16x 10G SFP+1024最多 128K10218
CRS312-4C+8XG-RMMarvell-98DX8212MIPSBE 1-core 650MHz64 MB4x 10G combo 8x 1/2.5/5/10G Ethernet512最多 32K10218
CRS326-24S+2Q+RMMarvell-98DX8332MIPSBE 1-core 650MHz128 MB24x 10G SFP+ 2x 40G QSFP+256最多 32K10218
CRS326-4C+20G+2Q+RMMarvell-98DX8332MIPSBE 1-core 650MHz128 MB4x 2.5G Ethernet/10G SFP+ combo 20x 2.5G Ethernet 2x 40G QSFP+256最多 32K10218
CRS354-48G-4S+2Q+RMMarvell-98DX3257MIPSBE 1-core 650MHz128 MB48x 10/100/1000M Ethernet 4x 10G SFP+ 2x 40G QSFP+170最多 32K10218
CRS354-48P-4S+2Q+RMMarvell-98DX3257MIPSBE 1-core 650MHz128 MB48x 10/100/1000M Ethernet 4x 10G SFP+ 2x 40G QSFP+48x 802.3af/at170最多 32K10218
CRS418-8P-8G-2S+RM CRS418-8P-8G-2S+5axQ2axQ-RMMarvell-98DX226SARM64 4-core 2208MHz1 GB16x 10/100/1000M Ethernet 2x 10G SFP+8x 802.3af/at128最多 16K10218
CRS504-4XQ (IN/OUT)Marvell-98DX4310MIPSBE 1-core 650MHz64 MB4x 100G QSFP281024最多 128K10218
CRS510-8XS-2XQ-INMarvell-98DX4310MIPSBE 1-core 650MHz128 MB8x 25G SFP28 2x 100G QSFP281024最多 128K10218
CRS518-16XS-2XQ-RMMarvell-98DX8525MIPSBE 1-core 650MHz64 MB16x 25G SFP28 2x 100G QSFP281024最多 128K10218
CRS520-4XS-16XQ-RMMarvell-98CX8410ARM64 4-core 2000MHz4 GB4x 25G SFP28 16x 100G QSFP28682最多 256K9570
CRS812-8DS-2DQ-2DDQ-RMMarvell-98DX7335ARM64 4-core 2000MHz4 GB8x 50G SFP56 2x 200G QSFP56 2x 400G QSFP56-DD1365最多 128K9570
CRS804-4DDQ-hRMMarvell-98DX7335ARM64 4-core 2000MHz4 GB4x 400G QSFP56-DD1365最多 128K9570
CCR2116-12G-4S+Marvell-98DX3255ARM64 16-core 2000MHz16 GB12x 10/100/1000M Ethernet 4x 10G SFP+512最多 32K9570
CCR2216-1G-12XS-2XQMarvell-98DX8525ARM64 16-core 2000MHz16 GB12x 25G SFP28 2x 100G QSFP281024最多 128K9570
RDS2216-2XG-4S+4XS-2XQMarvell-98DX4310ARM64 16-core 2000MHz32 GB2x 1/2.5/5/10G Ethernet 4x 10G SFP+ 4x 25G SFP28 2x 100G QSFP281024最多 128K9570

缩写

  • FDB - 转发数据库。
  • MDB - 多播数据库。
  • SVL - 共享 VLAN 学习(Shared VLAN Learning)。
  • IVL - 独立 VLAN 学习(Independent VLAN Learning)。
  • PVID - 端口 VLAN ID。
  • ACL - 访问控制列表。
  • CVID - 客户 VLAN ID。
  • SVID - 服务 VLAN ID。

端口交换


要设置端口交换,请查看网桥硬件卸载页面。

危险

目前,只能创建一个启用硬件卸载的网桥。使用 hw=yes/no 参数选择哪个网桥将使用硬件卸载。 警告

网桥 STP/RSTP/MSTP、IGMP Snooping 和 VLAN 过滤设置不会影响硬件卸载。自 RouterOS v6.42 起,Bonding 接口也会进行硬件卸载。

VLAN


自 RouterOS 6.41 版本起,网桥在网桥内部提供 VLAN 感知的二层转发和 VLAN 标签修改。这组功能使网桥操作更像传统以太网交换机,并且相比将隧道式 VLAN 接口桥接的配置,可以克服生成树兼容性问题。强烈建议使用网桥 VLAN 过滤配置以符合 STP(802.1D)、RSTP(802.1w)标准,并且在 RouterOS 中必须启用 MSTP(802.1s)支持。

VLAN 过滤

详细的架构概念和配置步骤在主网桥 VLAN 过滤章节中介绍。

支持的 VLAN 实现

根据你的网络设计,你可以实现几种硬件卸载的 VLAN 拓扑:

  • 基于端口的 VLAN: 请参阅网桥 VLAN 过滤章节中的分步配置指南。
  • 基于协议的 VLAN: 通过交换规则表配置以映射特定的网络协议。
  • 基于 MAC 的 VLAN: 将特定的源 MAC 地址映射到指定的 VLAN ID。

基于 MAC 的 VLAN 配置

:::warning 硬件与转发限制

  • 规则容量: 此功能使用硬件交换规则表。请参阅交换机芯片型号容量表以确认你的特定设备支持多少条规则。
  • CPU 转发限制: 基于 MAC 的 VLAN 严格适用于在硬件端口之间交换的流量。如果数据包被路由或转发到 CPU,则会强制使用网桥端口的默认 pvid,而不是 ACL 规则中定义的 new-vlan-id 操作。
  • DHCP 冲突: 如果在网桥上启用了 dhcp-snooping=yes,基于 MAC 的 VLAN 匹配将无法处理 DHCP 数据包。 :::

配置示例

通过创建启用 hw-offloading 的网桥来启用端口交换:

/interface/bridge
add name=bridge1 vlan-filtering=yes
/interface/bridge/port
add bridge=bridge1 interface=ether2 hw=yes
add bridge=bridge1 interface=ether7 hw=yes

在网桥 VLAN 表中添加 VLAN 并指定端口:

/interface/bridge/vlan
add bridge=bridge1 tagged=ether2 untagged=ether7 vlan-ids=200,300,400

添加根据 MAC 地址分配 VLAN id 的交换规则:

/interface/ethernet/switch/rule
add switch=switch1 ports=ether7 src-mac-address=A4:12:6D:77:94:43/FF:FF:FF:FF:FF:FF new-vlan-id=200
add switch=switch1 ports=ether7 src-mac-address=84:37:62:DF:04:20/FF:FF:FF:FF:FF:FF new-vlan-id=300
add switch=switch1 ports=ether7 src-mac-address=E7:16:34:A1:CD:18/FF:FF:FF:FF:FF:FF new-vlan-id=400

基于协议的 VLAN

警告

  • Switch Rule 表用于基于协议的 VLAN 功能,请参阅此表了解每个设备支持多少条规则。
  • 基于协议的 VLAN 只会在交换机端口之间正常工作,在交换机端口与 CPU 之间则不会。当数据包被转发到 CPU 时,将始终使用网桥端口的 pvid 属性,而不是 ACL 规则中的 new-vlan-id。
  • 当启用 DHCP snooping 时,基于协议的 VLAN 将无法处理 DHCP 数据包。

通过创建启用 hw-offloading 的网桥来启用端口交换:

/interface/bridge
add name=bridge1 vlan-filtering=yes
/interface/bridge/port
add bridge=bridge1 interface=ether2 hw=yes
add bridge=bridge1 interface=ether6 hw=yes
add bridge=bridge1 interface=ether7 hw=yes
add bridge=bridge1 interface=ether8 hw=yes

在网桥 VLAN 表中添加 VLAN 并指定端口:

/interface/bridge/vlan
add bridge=bridge1 tagged=ether2 untagged=ether6 vlan-ids=200
add bridge=bridge1 tagged=ether2 untagged=ether7 vlan-ids=300
add bridge=bridge1 tagged=ether2 untagged=ether8 vlan-ids=400

添加根据 MAC 协议分配 VLAN ID 的交换规则:

/interface/ethernet/switch/rule
add mac-protocol=ip new-vlan-id=200 ports=ether6 switch=switch1
add mac-protocol=ipx new-vlan-id=300 ports=ether7 switch=switch1
add mac-protocol=0x80F3 new-vlan-id=400 ports=ether8 switch=switch1

VLAN 隧道(Q-in-Q)

自 RouterOS v6.43 起,可以同时使用提供商网桥(IEEE 802.1ad)和标签堆叠 VLAN 过滤以及硬件卸载。配置在网桥 VLAN 隧道(Q-in-Q)章节中描述。

危险

搭载 Marvell-98DX3257 交换芯片的设备(例如 CRS354 系列)不支持在 1Gbps 以太网接口上对其他 VLAN 类型(0x88a8 和 0x9100)进行 VLAN 过滤。

入口 VLAN 转换

可以使用入口端口上的 ACL 规则将某个 VLAN ID 转换为不同的 VLAN ID。在此示例中,我们创建两条 ACL 规则以实现双向通信。可以通过以下方式完成。

创建新网桥并向其添加启用硬件卸载的端口:

/interface/bridge
add name=bridge1 vlan-filtering=no
/interface/bridge/port
add interface=ether1 bridge=bridge1 hw=yes
add interface=ether2 bridge=bridge1 hw=yes

添加 ACL 规则以转换每个方向的 VLAN ID:

/interface/ethernet/switch/rule
add new-dst-ports=ether2 new-vlan-id=20 ports=ether1 switch=switch1 vlan-id=10
add new-dst-ports=ether1 new-vlan-id=10 ports=ether2 switch=switch1 vlan-id=20

将两个 VLAN ID 都添加到网桥 VLAN 表:

/interface/bridge/vlan
add bridge=bridge1 tagged=ether1 vlan-ids=10
add bridge=bridge1 tagged=ether2 vlan-ids=20

启用网桥 VLAN 过滤:

/interface/bridge/set bridge1 vlan-filtering=yes

警告

双向通信仅限于两个交换机端口之间。在更多端口之间转换 VLAN ID 可能导致流量泛洪或同一 VLAN 端口之间的错误转发。

注意: 启用 vlan-filtering 会过滤掉目的地为 CPU 的流量。在启用 VLAN 过滤之前,应确保已设置管理端口。

(R/M)STP


搭载 Marvell Prestera 交换机的 MikroTik 设备能够在硬件级别运行 STP、RSTP 和 MSTP。有关更详细的信息,请查看生成树协议手册页;有关相关配置/监控选项,请参阅网桥和交换页面。

绑定


搭载 Marvell Prestera 交换机的 MikroTik 设备支持 Bonding 接口的硬件卸载。只有 802.3ad(LACP)、balance-xor(静态 LAG)和 active-backup 绑定模式会被硬件卸载;其他绑定模式将使用 CPU 资源。你可以在绑定接口章节中找到有关 Bonding 接口的更多信息。

要创建硬件卸载的绑定接口,你必须创建具有受支持绑定模式的绑定接口:

/interface/bonding
add mode=802.3ad name=bond1 slaves=ether1,ether2

此接口可以与其他接口一起添加到网桥:

/interface/bridge
add name=bridge
/interface/bridge/port
add bridge=bridge interface=bond1 hw=yes
add bridge=bridge interface=ether3 hw=yes
add bridge=bridge interface=ether4 hw=yes

警告

不要将已位于绑定中的接口添加到网桥,RouterOS 不允许你将已经是绑定从属端口的接口添加到网桥。 通过检查 "H" 标志确保绑定接口已进行硬件卸载:

/interface/bridge/port/print 
Flags: X - disabled, I - inactive, D - dynamic, H - hw-offload 
 #     INTERFACE                                 BRIDGE                                 HW
 0   H bond1                                     bridge                                 yes
 1   H ether3                                    bridge                                 yes
 2   H ether4                                    bridge                                 yes

警告

对于硬件卸载的绑定接口,内置交换机芯片在发送哈希策略中将始终使用 Layer2+Layer3+Layer4;手动更改发送哈希策略不会产生任何效果。

配置示例 - 带绑定的 VLAN

本节将展示如何配置多台交换机以使用绑定接口和基于端口的 VLAN,还将展示一个包含 DHCP 服务器、VLAN 间路由、管理 IP 和无效 VLAN 过滤配置的工作示例。

对于此网络拓扑,我们将使用两台 CRS326-24G-2S+、一台 CRS317-1G-16S+ 和一台 CCR1072-1G-8S+。

CRS3xx VLANs with Bonds

在此设置中,SwitchA 和 SwitchC 将把来自端口 ether1-ether8 的所有流量标记为 VLAN ID 10,ether9-ether16 标记为 VLAN ID 20,ether17-ether24 标记为 VLAN ID 30。只有当用户从 SwitchA 或 SwitchB 上的 ether1 使用 VLAN ID 99 的带标签流量连接时,才能进行管理。也可以从路由器使用 VLAN ID 99 的带标签流量连接到所有设备。此设置中的 SFP+ 端口将用作 VLAN 中继端口,同时处于绑定中以创建 LAG 接口。

配置绑定

当需要更大带宽时使用绑定接口。这是通过创建链路聚合组来实现的,该组还为交换机提供硬件自动故障转移和负载均衡。通过将两个 10Gbps 接口添加到绑定,你可以将理论带宽限制提高到 20Gbps。确保所有绑定接口的链路速率相同。

信息

使用硬件卸载网桥时,交换机会使用内置交换机芯片聚合流量,而不使用 CPU 资源。 要在 SwitchA 与 SwitchB 之间以及 SwitchC 与 SwitchB 之间从 sfp-sfpplus1 和 sfp-sfpplus2 创建 20Gbps 绑定接口,请在 SwitchA 和 SwitchC 上使用以下命令:

/interface/bonding
add mode=802.3ad name=bond_1-2 slaves=sfp-sfpplus1,sfp-sfpplus2

要在 SwitchB 与路由器之间创建 40Gbps 绑定接口并在 SwitchA 与 SwitchC 之间创建 20Gbps 绑定接口,请在 SwitchB 上使用以下命令:

/interface/bonding
add mode=802.3ad name=bond_1-2 slaves=sfp-sfpplus1,sfp-sfpplus2
add mode=802.3ad name=bond_3-4 slaves=sfp-sfpplus3,sfp-sfpplus4
add mode=802.3ad name=bond_5-6-7-8 slaves=sfp-sfpplus5,sfp-sfpplus6,sfp-sfpplus7,sfp-sfpplus8

在我们的场景中,路由器需要基于软件的绑定接口。请在路由器上使用以下命令:

/interface/bonding
add mode=802.3ad name=bond_1-2-3-4 slaves=sfp-sfpplus1,sfp-sfpplus2,sfp-sfpplus3,sfp-sfpplus4

信息

接口绑定不会创建具有更大链路速度的接口。接口绑定会创建一个虚拟接口,可以在多个接口上对流量进行负载均衡。更多详细信息可以在 LAG 接口与负载均衡页面中找到。

配置端口交换

此设置中的所有交换机都要求将所有使用的端口一起交换。对于绑定,你应该将绑定接口添加为网桥端口,而不是单独的绑定端口。请在 SwitchA 和 SwitchC 上使用以下命令:

/interface/bridge
add name=bridge vlan-filtering=no
/interface/bridge/port
add bridge=bridge interface=ether1 pvid=10
add bridge=bridge interface=ether2 pvid=10
add bridge=bridge interface=ether3 pvid=10
add bridge=bridge interface=ether4 pvid=10
add bridge=bridge interface=ether5 pvid=10
add bridge=bridge interface=ether6 pvid=10
add bridge=bridge interface=ether7 pvid=10
add bridge=bridge interface=ether8 pvid=10
add bridge=bridge interface=ether9 pvid=20
add bridge=bridge interface=ether10 pvid=20
add bridge=bridge interface=ether11 pvid=20
add bridge=bridge interface=ether12 pvid=20
add bridge=bridge interface=ether13 pvid=20
add bridge=bridge interface=ether14 pvid=20
add bridge=bridge interface=ether15 pvid=20
add bridge=bridge interface=ether16 pvid=20
add bridge=bridge interface=ether17 pvid=30
add bridge=bridge interface=ether18 pvid=30
add bridge=bridge interface=ether19 pvid=30
add bridge=bridge interface=ether20 pvid=30
add bridge=bridge interface=ether21 pvid=30
add bridge=bridge interface=ether22 pvid=30
add bridge=bridge interface=ether23 pvid=30
add bridge=bridge interface=ether24 pvid=30
add bridge=bridge interface=bond_1-2

使用以下命令在 SwitchB 上将所有绑定接口添加到一个网桥:

/interface/bridge
add name=bridge vlan-filtering=no
/interface/bridge/port
add bridge=bridge interface=bond_1-2
add bridge=bridge interface=bond_3-4
add bridge=bridge interface=bond_5-6-7-8

配置管理 IP

创建管理接口并为其分配 IP 地址以保留对交换机的访问非常有用。在更新交换机时这也非常有用,因为启用无效 VLAN 过滤后,发往交换机的此类流量将被阻止。

在 SwitchA、SwitchB 和 SwitchC 上创建可路由的 VLAN 接口:

/interface/vlan
add interface=bridge name=MGMT vlan-id=99

路由器需要在绑定接口上创建可路由的 VLAN 接口。使用以下命令在路由器上创建 VLAN 接口:

/interface/vlan
add interface=bond_1-2-3-4 name=MGMT vlan-id=99

对于本指南,我们将为每台设备使用以下地址:

DeviceAddress
Router192.168.99.1
SwitchA192.168.99.2
SwitchB192.168.99.3
SwitchC192.168.99.4

在 VLAN 接口上为每个交换机设备添加 IP 地址(将 X 改为相应的数字):

/ip/address
add address=192.168.99.X/24 interface=MGMT

不要忘记在交换机设备上添加默认网关并指定 DNS 服务器:

/ip/route
add gateway=192.168.99.1
/ip/dns
set servers=192.168.99.1

在路由器上添加 IP 地址:

/ip/address
add address=192.168.99.1/24 interface=MGMT

配置无效 VLAN 过滤

由于 SwitchA 和 SwitchC 上的大多数端口将是接入端口,你可以将所有端口设置为只接受特定类型的数据包,在本例中,我们希望 SwitchA 和 SwitchC 只接受未标记的数据包。请在 SwitchA 和 SwitchC 上使用以下命令:

/interface/bridge/port
set [ find ] frame-types=admit-only-untagged-and-priority-tagged

SwitchA 和 SwitchC 上的帧类型有一个例外。在此设置中,需要从 ether1 和 bonding 接口访问管理。它们要求可以转发带标签的流量。请在 SwitchA 和 SwitchC 上使用以下命令:

/interface/bridge/port
set [find where interface=ether1] frame-types=admit-all
set [find where interface=bond_1-2] frame-types=admit-only-vlan-tagged

在 SwitchB 上只应转发带标签的数据包,请在 SwitchB 上使用以下命令:

/interface/bridge/port
set [ find ] frame-types=admit-only-vlan-tagged

可选步骤是在网桥接口上设置 frame-types=admit-only-vlan-tagged 以禁用默认的未标记 VLAN 1(pvid=1)。我们使用网桥上的带标签 VLAN 进行管理访问,因此无需在网桥上接受未标记流量。请在 SwitchA、SwitchB 和 SwitchC 上使用以下命令:

/interface/bridge/set [find name=bridge] frame-types=admit-only-vlan-tagged

需要设置网桥 VLAN 表。在此网络设置中,我们需要允许 ether1-ether8 上的 VLAN 10、ether9-ether16 上的 VLAN 20、ether17-ether24 上的 VLAN 30、bond_1-2 上的 VLAN 10,20,30,99,以及 ether1 上的特殊情况以允许在 SwitchA 和 SwitchC 上转发 VLAN 99。请在 SwitchA 和 SwitchC 上使用以下命令:

/interface/bridge/vlan
add bridge=bridge tagged=bond_1-2 vlan-ids=10
add bridge=bridge tagged=bond_1-2 vlan-ids=20
add bridge=bridge tagged=bond_1-2 vlan-ids=30
add bridge=bridge tagged=bridge,bond_1-2,ether1 vlan-ids=99

警告

将 frame-types 设置为 admit-all 或 admit-only-untagged-and-priority-tagged 的网桥端口将被自动添加为 pvid VLAN 的未标记端口。 类似地,需要为 SwitchB 设置网桥 VLAN 表。请在 SwitchB 上使用以下命令:

/interface/bridge/vlan
add bridge=bridge tagged=bond_1-2,bond_3-4,bond_5-6-7-8 vlan-ids=10,20,30
add bridge=bridge tagged=bond_1-2,bond_3-4,bond_5-6-7-8,bridge vlan-ids=99

当一切配置完成后,即可启用 VLAN 过滤。请在 SwitchA、SwitchB 和 SwitchC 上使用以下命令:

/interface/bridge
set bridge vlan-filtering=yes

危险

请再次检查基于端口的 VLAN 是否设置正确。如果出错,你可能会失去对交换机的访问,只能通过重置配置或使用串口控制台来恢复连接。 说明

VLAN 过滤在网桥 VLAN 过滤章节中有更详细的描述。

配置 VLAN 间路由

要创建 VLAN 间路由,必须在路由器上为每个客户 VLAN ID 创建 VLAN 接口,并为其分配 IP 地址。VLAN 接口必须在之前创建的绑定接口上创建。

请在路由器上使用以下命令:

/interface/vlan
add interface=bond_1-2-3-4 name=VLAN10 vlan-id=10
add interface=bond_1-2-3-4 name=VLAN20 vlan-id=20
add interface=bond_1-2-3-4 name=VLAN30 vlan-id=30
/ip/address
add address=192.168.10.1/24 interface=VLAN10
add address=192.168.20.1/24 interface=VLAN20
add address=192.168.30.1/24 interface=VLAN30

信息

这些命令是 DHCP 服务器设置所必需的。如果不希望进行 VLAN 间路由,但需要在单个路由器上运行 DHCP 服务器,请使用防火墙过滤规则阻止不同子网之间的通信。 说明

自 RouterOS v7 起,可以在支持的硬件上使用三层硬件卸载来路由流量。更多详细信息请参阅三层硬件卸载章节。

配置 DHCP 服务器

要使 DHCP 服务器对每个 VLAN ID 生效,必须在之前创建的 VLAN 接口上设置服务器(每个 VLAN ID 一个服务器)。最好每个 VLAN ID 都有自己的子网和自己的 IP 池。可以将 DNS 服务器指定为特定 VLAN ID 的路由器 IP 地址,也可以使用全局 DNS 服务器,但该地址必须可达。

要设置 DHCP 服务器,请在路由器上使用以下命令:

/ip/pool
add name=VLAN10_POOL ranges=192.168.10.100-192.168.10.200
add name=VLAN20_POOL ranges=192.168.20.100-192.168.20.200
add name=VLAN30_POOL ranges=192.168.30.100-192.168.30.200
/ip/dhcp-server
add address-pool=VLAN10_POOL disabled=no interface=VLAN10 name=VLAN10_DHCP
add address-pool=VLAN20_POOL disabled=no interface=VLAN20 name=VLAN20_DHCP
add address-pool=VLAN30_POOL disabled=no interface=VLAN30 name=VLAN30_DHCP
/ip/dhcp-server/network
add address=192.168.10.0/24 dns-server=192.168.10.1 gateway=192.168.10.1
add address=192.168.20.0/24 dns-server=192.168.20.1 gateway=192.168.20.1
add address=192.168.30.0/24 dns-server=192.168.30.1 gateway=192.168.30.1

如果使用路由器的 DNS 服务器,不要忘记允许远程请求并确保在路由器上配置了 DNS 服务器。请在路由器上使用以下命令:

/ip/dns
set allow-remote-requests=yes servers=8.8.8.8

危险

当 allow-remote-requests 设置为 yes 时,请务必使用防火墙从外部保护你的本地 DNS 服务器,因为如果你的 DNS 服务器可被互联网上的任何人访问,它可能会被用于 DDoS 攻击。 不要忘记创建 NAT,假设 sfp-sfpplus8 用作 WAN 端口,请在路由器上使用以下命令:

/ip/firewall/nat
add action=masquerade chain=srcnat out-interface=sfp-sfpplus8

配置巨型帧

在此类设置中,可以通过启用巨型帧来提高总吞吐量。这通过增加最大传输单元(MTU)来减少数据包开销。如果你的网络中的设备不支持巨型帧,那么它将无法从更大的 MTU 中受益。通常整个网络并不支持巨型帧,但在支持巨型帧的设备之间发送数据时(包括路径上的所有交换机),你仍然可以受益。

在这种情况下,如果 SwitchA 后面的客户端和 SwitchC 后面的客户端支持巨型帧,那么启用巨型帧将是有益的。在启用巨型帧之前,使用以下命令确定 MAX-L2MTU:

[admin@SwitchA] > interface print 
Flags: R - RUNNING
Columns: NAME, TYPE, ACTUAL-MTU, L2MTU, MAX-L2MTU, MAC-ADDRESS
 #   NAME           TYPE   ACTUAL-MTU  L2MTU  MAX-L2MTU  MAC-ADDRESS      
 1 R sfp-sfpplus1   ether        1500   1584      10218  64:D1:54:FF:E3:7F

信息

更多信息可以在 MTU 手册页面中找到。 确定 MAX-L2MTU 后,根据网络上的流量选择 MTU 大小,并在 SwitchA、SwitchB 和 SwitchC 上使用以下命令:

/interface/ethernet
set [ find ] l2mtu=10218 mtu=10218

信息

不要忘记也更改客户端设备上的 MTU,否则上述设置将不会产生任何效果。

多机箱链路聚合组


RouterOS 中的 MLAG(多机箱链路聚合组)实现允许在两台独立设备上配置 LACP 绑定,而客户端设备认为它连接到同一台机器。这在交换机故障时提供了物理冗余。搭载 Marvell Prestera 交换机的 MikroTik 设备可以配置为硬件卸载的 MLAG。更多信息请阅读此处。

三层硬件卸载


三层硬件卸载(也称为 IP 交换或硬件路由)允许将部分路由器功能卸载到交换机芯片上。这允许在路由数据包时达到线速,而这仅使用 CPU 是不可能实现的。

卸载的功能集取决于所使用的芯片组。更多信息请阅读此处。

端口隔离


自 RouterOS v6.43 起可以创建 Private VLAN 设置,示例可在交换机芯片端口隔离手册页中找到。硬件卸载的绑定接口不包含在交换机端口隔离菜单中,但仍然可以在绑定的每个辅助接口上单独配置端口隔离。

警告

端口隔离可以与 vlan-filtering 网桥一起使用,并且可以隔离属于同一 VLAN 的端口。隔离是按端口进行的;无法按 VLAN 隔离端口。

IGMP/MLD Snooping


搭载 Marvell Prestera 交换机的 MikroTik 设备能够在硬件级别使用 IGMP/MLD Snooping。要查看更详细的信息,请查看 IGMP/MLD snooping 手册页。

DHCP Snooping 与 DHCP Option 82


搭载 Marvell Prestera 交换机的 MikroTik 设备能够在硬件级别使用带有自定义 Option 82(Circuit ID、Remote ID)的 DHCP Snooping。交换机将创建动态 ACL 规则来捕获 DHCP 数据包并将其重定向到主 CPU 以进行进一步处理。要查看更详细的信息,请访问 DHCP Snooping 与 DHCP Option 82 手册页。

信息

从 RouterOS v7.17 开始,DHCP snooping 支持硬件卸载的绑定接口。

DHCPv6 Snooping 与 DHCP Option 18、Option 37


搭载 Marvell Prestera 交换机的 MikroTik 设备自 RouterOS v7.23 起能够在硬件级别使用带有自定义 Option 18(Interface ID)和 Option 37(Remote ID)的 DHCPv6 Snooping。交换机将创建动态 ACL 规则来捕获 DHCPv6 数据包并将其重定向到主 CPU 以进行进一步处理。要查看更详细的信息,请访问 DHCPv6 Snooping / DHCPv6 Shield 手册页。

RA Guard


搭载 Marvell Prestera 交换机的 MikroTik 设备自 RouterOS v7.22 起能够在硬件级别使用 RA Guard。交换机将创建动态 ACL 规则来捕获相关的 IPv6 数据包并将其重定向到主 CPU 以进行进一步处理。要查看更详细的信息,请访问 RA Guard 手册页。

镜像


镜像是允许网络交换机复制通过它的所有数据并将副本发送到另一个指定端口(称为 mirror-target)的功能。此功能对于设置监听设备很有用,可以使用单独的设备分析网络流量。你可以通过指定源端口(参见 /interface/ethernet/switch/port 中的 mirror-egress 和 mirror-ingress)以简单方式设置镜像,也可以根据不同的条件配置更高级的镜像(参见 /interface/ethernet/switch/rule 中的 mirror)。

需要注意的是,mirror-target 端口必须位于同一交换机上。你可以查看设备框图或导航到 /interface/ethernet 菜单以确定哪些接口连接在哪里。在设置配置时,并不强制要求将 mirror-target 接口添加到设置源端口的同一硬件卸载网桥。mirror-target 端口可以是独立接口(未配置为网桥端口),也可以位于网桥设置中。在网桥中使用 mirror-target 时,请注意数据和镜像流量可能都在同一 LAN 上传输。在这种情况下,考虑使用 RSPAN(远程交换机端口分析器),在通过网络传输之前将镜像流量封装到单独的 VLAN 中。

此外,你可以将 mirror-target 端口设置为特殊值 "cpu",这意味着复制的数据包将被发送到交换机芯片的 CPU 端口。

配置示例


基于端口的镜像

从 RouterOS 7.15 版本开始,可以配置多个源端口,并有选择地选择是镜像入站流量、出站流量还是两者。在此示例中,来自 ether2 接口的入站和出站流量都将被复制并发送到 ether3 接口以供监控或分析。

# Since RouterOS v7.15
/interface/ethernet/switch/port
set ether2 mirror-egress=yes mirror-ingress=yes
/interface/ethernet/switch
set switch1 mirror-target=ether3

# Older RouterOS:
/interface/ethernet/switch
set switch1 mirror-source=ether2 mirror-target=ether3

基于 VLAN 的镜像

使用 ACL 规则,可以通过 ports 设置镜像来自多个接口的数据包。此外,你可以指定更详细的条件,例如 VLAN ID、MAC/IP 地址或 TCP/UDP 端口。只有入站数据包会被镜像到 mirror-target 接口。此示例将镜像来自 ether2 接口的入站 VLAN 11 流量,并将副本发送到 ether3 接口。要使用带有 vlan-id 匹配器的 ACL 规则,需要启用网桥 vlan-filtering。

/interface/bridge
set bridge1 vlan-filtering=yes
/interface/ethernet/switch
set switch1 mirror-target=ether3
/interface/ethernet/switch/rule
add mirror=yes ports=ether1 switch=switch1 vlan-id=11

基于 MAC 的镜像

此示例将镜像来自 ether1 接口且具有 64:D1:54:D9:27:E6 MAC 目标或源地址的入站流量,并将副本发送到 ether3 接口。

/interface/ethernet/switch
set switch1 mirror-target=ether3
/interface/ethernet/switch/rule
add mirror=yes ports=ether1 switch=switch1 dst-mac-address=64:D1:54:D9:27:E6/FF:FF:FF:FF:FF:FF
add mirror=yes ports=ether1 switch=switch1 src-mac-address=64:D1:54:D9:27:E6/FF:FF:FF:FF:FF:FF

基于 IP 的镜像

此示例将镜像来自 ether1 接口且具有 IP 目标或源地址 192.168.88.0/24 的入站流量,并将副本发送到 ether3 接口。

/interface/ethernet/switch
set switch1 mirror-target=ether3 mirror-source=none
/interface/ethernet/switch/rule
add mirror=yes ports=ether1 switch=switch1 src-address=192.168.88.0/24
add mirror=yes ports=ether1 switch=switch1 dst-address=192.168.88.0/24

还有其他选项,请查看 ACL 章节以了解可用于匹配数据包的所有可能参数。

远程交换机端口分析器

此示例将镜像来自 ether2 接口的入站和出站流量,副本将使用 999 作为 VLAN ID 封装在 802.1Q VLAN 中,数据包将被发送到 ether3 接口。如果原始流量已经带有 VLAN 标签,RSPAN 将添加另一层 VLAN 标签作为外部标签。这会导致镜像流量被标记两次。如果 mirror-target 端口包含在 vlan-filtering 网桥中,则无需在 /interface/bridge/vlan 菜单下将该接口设置为 RSPAN 的带标签 VLAN 成员。

/interface/ethernet/switch/port
set ether2 mirror-egress=yes mirror-ingress=yes
/interface/ethernet/switch
set switch1 mirror-target=ether3 rspan=yes rspan-egress-vlan-id=999 rspan-ingress-vlan-id=999

属性参考

子菜单: /interface/ethernet/switch

PropertyDescription
mirror-target (cpu | name | none; 默认: none)选择单个镜像目标端口。来自 mirror-egress 和 mirror-ingress(/interface/ethernet/switch/port)以及 mirror(/interface/ethernet/switch/rule)的数据包将被发送到所选端口。
rspan (no | yes; 默认: no)在 mirror-target 上启用远程交换机端口分析器(RSPAN)功能。标记为入站或出站镜像的流量通过指定的远程分析器 VLAN 传输 - rspan-egress-vlan-id 和 rspan-ingress-vlan-id。
rspan-egress-vlan-id (integer: 1..4095; 默认: 1)选择标记的出站流量的 VLAN ID。仅在启用 rspan 时适用。
rspan-ingress-vlan-id (integer: 1..4095; 默认: 1)选择标记的入站流量的 VLAN ID。仅在启用 rspan 时适用。

子菜单: /interface/ethernet/switch/port

PropertyDescription
mirror-egress (no | yes; 默认: no)是否将出站数据包副本发送到 mirror-target 端口。
mirror-ingress (no | yes; 默认: no)是否将入站数据包副本发送到 mirror-target 端口。

子菜单: /interface/ethernet/switch/rule

PropertyDescription
mirror (no | yes; 默认: no)是否将数据包副本发送到 mirror-target 端口。

流量整形


可以使用 ACL 规则限制匹配特定参数的入站流量,也可以按端口限制入站/出站流量。policer 用于入站流量,shaper 用于出站流量。入站 policer 通过丢包控制接收的流量。超过定义限制的所有内容都将被丢弃。这可能会影响终端主机上的 TCP 拥塞控制机制,实际达到的带宽可能小于定义值。出站 shaper 尝试将超过限制的数据包排队而不是丢弃它们。最终,当输出队列满时它也会丢弃数据包;但是,它应该允许更好地利用定义的吞吐量。

基于端口的流量 policer 与 shaper

/interface/ethernet/switch/port
set ether1 ingress-rate=10M egress-rate=5M

基于 MAC 的流量 policer

/interface/ethernet/switch/rule
add ports=ether1 switch=switch1 src-mac-address=64:D1:54:D9:27:E6/FF:FF:FF:FF:FF:FF rate=10M

基于 VLAN 的流量 policer

/interface/bridge
set bridge1 vlan-filtering=yes
/interface/ethernet/switch/rule
add ports=ether1 switch=switch1 vlan-id=11 rate=10M

危险

启用 vlan-filtering 会过滤掉目的地为 CPU 的流量。在启用 VLAN 过滤之前,应确保已设置管理端口。

基于协议的流量 policer

/interface/ethernet/switch/rule
add ports=ether1 switch=switch1 mac-protocol=ipx rate=10M

还有其他选项,请查看 ACL 章节以了解可用于匹配数据包的所有可能参数。

警告

Switch Rule 表用于 QoS 功能。请参阅此表了解每个设备支持多少条规则。 危险

由于硬件限制,egress-rate 和 storm-rate 设置在 10Gbps 交换机端口以 10/100Mbps、1/2.5/5Gbps 连接时无法正常工作。这适用于 98DX224S、98DX226S、98DX2528、98DX3236 交换芯片。

流量风暴控制


自 RouterOS v6.42 起可以启用流量风暴控制。当某些帧在网络上一再泛洪时,可能会出现流量风暴。风暴控制设置通常配置在非上行端口上,以限制这些特定端口上的入站风暴流量。这有助于通过最小化流量风暴对整个网络的影响来保护整个交换机及其连接的端口。

例如,如果创建了网络环路且未使用环路避免机制(例如生成树协议),广播或多播帧可能很快淹没网络,导致网络性能下降甚至网络完全崩溃。使用搭载 Marvell Prestera 交换机的 MikroTik 设备,可以限制广播、未知多播和未知单播流量。当交换机不包含目标 MAC 地址的主机条目时,会考虑未知单播流量。当交换机在 /interface/bridge/mdb 菜单中不包含多播组条目时,会考虑未知多播流量。风暴控制设置应应用于入站端口;出站流量将受到限制。

Traffic Storm

警告

风暴控制参数指定为链路速度的百分比(%)。如果你的链路速度是 1Gbps,那么将 storm-rate 指定为 10 将只允许 100Mbps 的广播、未知多播和/或未知单播流量被转发。 子菜单: /interface/ethernet/switch/port

PropertyDescription
limit-broadcasts (yes | no; 默认: yes)限制交换机端口上的广播流量。
limit-unknown-multicasts (yes | no; 默认: no)限制交换机端口上的未知多播流量。
limit-unknown-unicasts (yes | no; 默认: no)限制交换机端口上的未知单播流量。
storm-rate (integer 0..100; 默认: 100)广播、未知多播和/或未知单播流量被限制为链路速度的百分比。

危险

搭载 98DX224S、98DX226S、98DX2528、98DX3236 交换芯片的设备无法区分未知多播流量和所有多播流量。例如,当使用 limit-unknown-multicasts 和 storm-rate 时,CRS326-24G-2S+ 将限制所有多播流量。对于其他设备,例如 CRS317-1G-16S+,limit-unknown-multicasts 参数将只限制未知多播流量(/interface/bridge/mdb 中不存在的地址)。 例如,要限制 ether1(1Gbps)上 1%(10Mbps)的广播和未知单播流量,请使用以下命令:

/interface/ethernet/switch/port
set ether1 storm-rate=1 limit-broadcasts=yes limit-unknown-unicasts=yes

警告

由于硬件限制,egress-rate 和 storm-rate 设置在 10Gbps 交换机端口以 10/100Mbps、1/2.5/5Gbps 连接时无法正常工作。这适用于 98DX224S、98DX226S、98DX2528、98DX3236 交换芯片。

MPLS 硬件卸载


自 RouterOS v6.41 起可以将某些 MPLS 功能卸载到交换机芯片。交换机必须是 PE-P-PE 设置中的 (P)rovider 路由器,才能实现硬件卸载。设置示例可以在 LDP 示例设置中找到。只有当 LDP 接口配置为物理交换机接口(例如 Ethernet、SFP、SFP+)时,才会进行硬件卸载。

警告

目前只有使用 RouterOS v6.41 及更新版本的 CRS317-1G-16S+ 和 CRS309-1G-8S+ 能够硬件卸载某些 MPLS 功能。CRS317-1G-16S+ 和 CRS309-1G-8S+ 内置交换机芯片无法从数据包中弹出 MPLS 标签,在 PE-P-PE 设置中,你要么必须使用 explicit null,要么在 MPLS 网络中禁用 TTL 传播以实现硬件卸载。

注意: MPLS 硬件卸载自 RouterOS v7 起已被移除。

交换机规则(ACL)


访问控制列表包含入口策略引擎和出口策略引擎。请参阅此表了解每个设备支持多少条规则。它是一个高级工具,用于基于二层、三层和四层协议头字段条件进行线速数据包过滤、转发和修改。

对每个接收到的数据包检查 ACL 规则,直到找到匹配项。如果有多条规则可以匹配,则只会触发第一条规则。没有任何操作参数的规则是接受数据包的规则。

启用 IGMP snooping、DHCP snooping、RoMON、PTP 或 loop-protect 等功能可以自动创建动态 ACL 规则。在添加新的 ACL 条目时应考虑这些规则。创建新规则时使用 place-before 属性,或使用 move 命令调整 ACL 规则顺序。

警告

使用三层或四层匹配器时,不需要将 mac-protocol 设置为某个 IP 版本,但是,在过滤任何 IP 数据包时,建议设置 mac-protocol=ip 或 mac-protocol=ipv6。 危险

当修改交换 ACL 规则时(例如添加、删除、禁用、启用或移动),现有交换机规则将短暂处于非活动状态。这可能在 ACL 规则修改期间导致一些数据包泄漏。 子菜单: /interface/ethernet/switch/rule

PropertyDescription
copy-to-cpu (no | yes; 默认: no)克隆匹配的数据包并将其发送到 CPU。
disabled (yes | no; 默认: no)启用或禁用 ACL 条目。
dscp (0..63)匹配数据包的 DSCP 字段(仅适用于 IPv4 数据包)。
dst-address (IP address/Mask)匹配目标 IPv4 地址和掩码。如果指定了 mac-protocol=arp,则匹配 ARP 数据包中的目标 IP。未指定 mac-protocol 时,仅匹配 IPv4 数据包。
dst-address6 (IPv6 address/Mask)匹配目标 IPv6 地址和掩码。
dst-mac-address (MAC address/Mask)匹配目标 MAC 地址和掩码。
dst-port (0..65535)匹配目标协议端口号(如果未指定 mac-protocol,则适用于 IPv4 和 IPv6 数据包)。
flow-label (0..1048575)匹配 IPv6 流标签。
mac-protocol (802.2 | arp | capsman | dot1x | homeplug-av | ip | ipv6 | ipx | lacp | lldp | loop-protect | macsec | mpls-multicast | mpls-unicast | mvrp | packing-compr | packing-simple | pppoe | pppoe-discovery | rarp | romon | service-vlan | vlan | or 0..65535 | or 0x0000-0xffff)匹配由协议名称或编号指定的特定 MAC 协议
mirror (no | yes)克隆匹配的数据包并将其发送到 mirror-target 端口。
new-dst-ports (ports | bond | all)将目标端口更改为指定值:如果设置留空(例如 <code>new-dst-ports=""</code>),数据包将被丢弃;如果指定了端口或硬件卸载绑定接口,数据包将被重定向到该端口。仅支持单个端口或绑定接口;如果使用 <code>all</code> 参数,数据包将被允许通过进入出站处理而不被丢弃;如果未使用此参数,数据包将按原样被接受。
new-vlan-id (0..4095)将 VLAN ID 更改为指定值。需要 vlan-filtering=yes。
new-vlan-priority (0..7)更改 VLAN 优先级(优先级代码点)。需要 vlan-filtering=yes。
new-vrf (vrf name)将入站流量分配给指定的 VRF。需要交换机芯片支持硬件卸载 VRF。在 VRF 不感知的交换机(98DX3xxx 和 98DX2xxx 系列)上,将 new-vrf 设置为 main 以外的任何值将被视为 redirect-to-cpu=yes。
ports (ports | bond)匹配规则将应用于入站流量的交换机接口。可以选择多个端口和硬件卸载绑定接口。注意不能选择 switch1-cpu 端口。如果 ports 属性留空,规则将应用于所有交换机接口。
protocol (dccp | ddp | egp | encap | etherip | ggp | gre | hmp | icmp | icmpv6 | idpr-cmtp | igmp | ipencap | ipip | ipsec-ah | ipsec-esp | ipv6 | ipv6-frag | ipv6-nonxt | ipv6-opts | ipv6-route | iso-tp4 | l2tp | ospf | pim | pup | rdp | rspf | rsvp | sctp | st | tcp | udp | udp-lite | vmtp | vrrp | xns-idp | xtp | or 0..255)匹配由协议名称或编号指定的特定 IP 协议。如果未指定 mac-protocol,则仅适用于 IPv4 数据包。要匹配某些 IPv6 协议,请使用 mac-protocol=ipv6 设置。
rate (0..4294967295)为匹配的流量设置入站流量限制(比特每秒)。
redirect-to-cpu (no | yes)将匹配数据包的目标端口更改为 CPU。
src-address (IP address/Mask)匹配源 IPv4 地址和掩码。如果指定了 mac-protocol=arp,则匹配 ARP 数据包中的源 IP。未指定 mac-protocol 时,仅匹配 IPv4 数据包。
src-address6 (IPv6 address/Mask)匹配源 IPv6 地址和掩码。
src-mac-address (MAC address/Mask)匹配源 MAC 地址和掩码。
src-port (0..65535)匹配源协议端口号(如果未指定 mac-protocol,则适用于 IPv4 和 IPv6 数据包)。
switch (switch group)匹配规则将应用于的交换机组。
traffic-class (0..255)匹配 IPv6 流量类别。
vlan-id (0..4095)匹配 VLAN ID。需要 vlan-filtering=yes。
vlan-header (not-present | present)匹配 VLAN 头,无论 VLAN 头是否存在。需要 vlan-filtering=yes。
vlan-priority (0..7)匹配 VLAN 优先级(优先级代码点)。

操作参数

  • copy-to-cpu
  • redirect-to-cpu
  • mirror
  • new-dst-ports(可用于丢弃数据包)
  • new-vlan-id
  • new-vlan-priority
  • new-vrf
  • rate

二层条件参数

  • dst-mac-address
  • mac-protocol
  • src-mac-address
  • vlan-id
  • vlan-header
  • vlan-priority

三层条件参数

  • dscp
  • protocol
  • IPv4 条件:
    • dst-address
    • src-address
  • IPv6 条件:
    • dst-address6
    • flow-label
    • src-address6
    • traffic-class

四层条件参数

  • dst-port
  • src-port

警告

要使与 VLAN 相关的匹配器或 VLAN 相关的操作参数生效,你需要在网桥接口上启用 vlan-filtering,并确保在这些端口上启用了硬件卸载,否则这些参数将不会有任何效果。 警告

当网桥接口 ether-type 设置为 0x8100 时,与 VLAN 相关的 ACL 规则适用于使用常规/客户 VLAN(TPID 0x8100)标记的帧;这包括 vlan-id 和 new-vlan-id。当网桥接口 ether-type 设置为 0x88a8 时,ACL 规则适用于使用 802.1ad 服务标签(TPID 0x88a8)标记的帧。

端口安全


可以限制单个交换机端口上允许的 MAC 地址。例如,要允许交换机端口上的 64:D1:54:81:EF:8E MAC 地址,首先将多个端口一起交换。在此示例中,64:D1:54:81:EF:8E 将位于 ether1 后面。

创建一条 ACL 规则以允许给定的 MAC 地址并丢弃 ether1 上的所有其他流量(针对入站流量):

/interface/ethernet/switch/rule
add ports=ether1 src-mac-address=64:D1:54:81:EF:8E/FF:FF:FF:FF:FF:FF switch=switch1
add new-dst-ports="" ports=ether1 switch=switch1

出站流量仍可能包含不应到达具有未知 MAC 地址的设备的信息。
假设端口已交换,在 ether1 上禁用 MAC 学习和未知单播泛洪:

/interface/bridge
add name=bridge1
/interface/bridge/port
add bridge=bridge1 interface=ether1 hw=yes learn=no unknown-unicast-flood=no
add bridge=bridge1 interface=ether2 hw=yes

在禁用 MAC 学习的情况下,你需要为 64:D1:54:81:EF:8E 添加静态主机条目(用于出站流量):

/interface/bridge/host
add bridge=bridge1 interface=ether1 mac-address=64:D1:54:81:EF:8E

警告

广播和多播流量仍将从 ether1 发出。你可以使用 broadcast-flood 和 unknown-multicast-flood 参数来阻止它。请注意,某些解决方案可能依赖这些设置,例如流媒体协议和 DHCP。

双启动


"双启动"功能允许你选择在 CRS3xx 系列交换机上使用哪个操作系统,RouterOS 或 SwOS。设备操作系统可以使用以下方式更改:

  • 命令行(/system/routerboard/settings/set boot-os=swos)
  • Winbox
  • Webfig
  • 串口控制台

此处描述了有关 SwOS 的更多详细信息:SwOS 手册。

警告

要检查某个型号是否支持启动到 SwOS,请参阅 SwOS 型号表以及产品页面上 Specifications 下的 "Operating System"。

使用 RouterOS 配置 SwOS


自 RouterOS 6.43 起,可以使用 RouterOS 加载、保存和重置 SwOS 配置,以及升级 SwOS 并为 CRS3xx 系列交换机设置 IP 地址:

  • 使用 /system/swos/save-config 保存配置。

警告

配置将保存在同一设备上,文件名为 swos.config。请确保从你的设备下载该文件,因为配置文件将在重启后被移除。

  • 使用 /system/swos/load-config 加载配置。
  • 使用 /system/swos/password 更改密码。
  • 使用 /system/swos/reset-config 重置配置。
  • 使用 /system/swos/upgrade 从 RouterOS 升级 SwOS。

警告

upgrade 命令将自动安装最新的可用 SwOS 主备份版本,请确保你的设备可以访问互联网,以便升级过程正常工作。当设备启动到 SwOS 时,版本号将包含字母 "p",表示主备份版本。然后你可以从 SwOS 的 "Upgrade" 菜单安装最新的可用 SwOS 辅助主版本。 警告

从 RouterOS 7.17 版本开始,device-mode 限制双启动的 SwOS/RouterOS 切换;要启用:/system/device-mode/update routerboard=yes | Property | Description | | :-- | :-- | | address-acquisition-mode (dhcp-only | dhcp-with-fallback | static; 默认: dhcp-with-fallback) | 更改地址获取方法:dhcp-only - 仅使用 DHCP 客户端获取地址 dhcp-with-fallback - 在前 10 秒内,它将尝试使用 DHCP 客户端获取地址。如果请求不成功,则地址回退到由 static-ip-address 属性定义的静态地址 static - 地址设置为由 static-ip-address 属性定义的值 | | allow-from (IP/Mask; 默认: 0.0.0.0/0) | 可以访问交换机的 IP 地址或网络。默认情况下,交换机可通过任何 IP 地址访问。 | | allow-from-ports (name; 默认: ) | 可以访问设备的交换机端口列表。默认情况下,允许所有端口访问交换机 | | allow-from-vlan (integer: 0..4094; 默认: 0) | 可以访问设备的 VLAN ID。默认情况下,允许所有 VLAN | | identity (name; 默认: Mikrotik) | 交换机名称(用于 Mikrotik Neighbor Discovery 协议) | | static-ip-address (IP; 默认: 192.168.88.1) | 当 address-acquisition-mode 设置为 dhcp-with-fallback 或 static 时的交换机 IP 地址。通过设置静态 IP 地址,地址获取过程不会改变,默认情况下是带回退的 DHCP。这意味着配置的静态 IP 地址只有在同一广播域中没有 DHCP 服务器时才会生效 |

另请参阅

基础 VLAN 交换

网桥硬件卸载

三层硬件路由卸载

服务质量

生成树协议

RouterBOARD 上的 MTU

二层错误配置

网桥 VLAN 表

网桥 IGMP/MLD snooping

多机箱链路聚合组