RouterBOARD系列(非CRS系列)采用Atheros交换芯片可以实现802.1Q的VLAN配置,该功能支持采用QCA8337, AR8316, AR8327, AR8227和AR7240交换芯片。这样的配置与RouterOS interface下的Bridge和VLAN配置有别,基于Atheros交换芯片是将二层协议交给交换芯片处理,而基于interface下的bridge和VLAN配置则是将二层协议交由路由器的CPU处理,因此两者在效率和性能上是有差别。一个不占用CPU资源,一个消耗CPU资源。

下面我们以RB2011Ui路由器为例,如何在RouterOS里基于交换芯片配置VLAN的trunk和access,在这个实例中,sfp1接口作为trunk口,上联一台管理交换机,ether1-ether4作为access口
1、VLAN配置
首先将各个接口配置到交换组,即设置sfp1为master-port
/interface ethernet
set name=ether1 master-port=sfp1
set name=ether2 master-port=sfp1
set name=ether3 master-port=sfp1
set name=ether4 master-port=sfp1
设置VLAN模式到各个接口,”vlan-mode=secure”将接口加入VLAN列表, “vlan-header=always-strip”用于access口,即去掉数据帧中的VLAN包头。
“vlan-header=add-if-missing” 对应trunk口,即添加VLAN包头到为标记帧中。
“default-vlan-id” 为进入到access口的VLAN
/interface ethernet switch port
set sfp1 vlan-header=add-if-missing vlan-mode=secure
set ether1 default-vlan-id=2 vlan-header=always-strip vlan-mode=secure
set ether2 default-vlan-id=3 vlan-header=always-strip vlan-mode=secure
set ether3 default-vlan-id=4 vlan-header=always-strip vlan-mode=secure
set ether4 default-vlan-id=5 vlan-header=always-strip vlan-mode=secure
添加VLAN列表条目,即指定包含VLAN ID的数据帧在那些接口通信
/interface ethernet switch vlan
add independent-learning=no ports=sfp1,ether1 switch=switch1 vlan-id=2
add independent-learning=no ports=sfp1,ether2 switch=switch1 vlan-id=3
add independent-learning=no ports=sfp1,ether3 switch=switch1 vlan-id=4
add independent-learning=no ports=sfp1,ether4 switch=switch1 vlan-id=5
2、三层管理IP配置
这里我们将介绍如何配置VLAN的三层管理IP地址,管理IP地址将通过trunk口到达路由器,并指定VLAN ID 3为管理接口
配置交换芯片与CPU连接,在RB2011有两组交换芯片,switch1和switch2,switch1管理sfp1,ether1-ether5,switch2管理ether6-ether10。因此这里需要注意,我们配置的是sfp1和ether1-ether4,所以选择的是switch1_cpu,设置 “vlan-header=leave-as-is” 原因是管理IP数据到CPU保持原有的标记(tag)模式。
/interface ethernet switch port
set switch1_cpu vlan-mode=secure vlan-header=leave-as-is
修改VLAN列表条目,允许VLAN ID 3的数据能在sfp1,ether2和switch1_cpu,首先我们查看VLAN列表配置
[admin@MikroTik-J] /interface ethernet switch vlan> print
Flags: X – disabled, I – invalid
 #   SWITCH                             VLAN-ID    PORTS
 0   switch1                                  2      sfp1
                                                       ether1
 1   switch1                                  3      sfp1
                                                       ether2
 2   switch1                                  4      sfp1
                                                       ether3
 3   switch1                                  5      sfp1
                                                       ether4
找到VLAN id 3的对应序列号为#1,将VLAN id 3的配置加入switch1-cpu,注意这里用set命令是设置,而非把switch1-cpu添加入规则,因此我们的命令是所有的接口都要设置一次ports=sfp1,ether2,switch1-cpu如下,当然这winbox下可以直接通过图像界面添加。
[admin@MikroTik] /interface ethernet switch vlan> set 1 ports=sfp1,ether2,switch1-cpu
[admin@MikroTik-J] /interface ethernet switch vlan> print
Flags: X – disabled, I – invalid
 #   SWITCH                              VLAN-ID    PORTS
 0   switch1                                  2      sfp1
                                                       ether1
 1   switch1                                  3      sfp1
                                                       ether2
                                                       switch1-cpu
 2   switch1                                  4      sfp1
                                                       ether3
 3   switch1                                  5      sfp1
                                                       ether4
以上VLAN交换芯片菜单配置完成后,进入interface vlan菜单,添加三层接口的VLAN,这里需注意master-port从switch-cpu接收所有的数据,因此三层VLAN接口配置必须是master-port,即master-port是sfp1,配置管理IP地址192.168.8.2/24到vlan3接口上。
/interface vlan
add name=vlan3 vlan-id=3 interface=sfp1
/ip address
add address=192.168.8.2/24 interface=vlan3 network=192.168.88.0