RouterOS在Bridge中支持启用VLAN过滤功能,也就是二层交换机的VLAN设置管理,需要在bridge开启 vlan-filtering

vlan-filtering是用于桥接下全局的VLAN识别和VLAN tags标记处理。如果 vlan-filtering=no, Bridge将忽略VLAN tag标记。只能工作在shared-VLAN-learning (SVL) 模式,也不能修改VLAN数据包的tags。设置为yes,相关的VLAN功能和independent-VLAN-learning (IVL) 模式将启用。当Bridge加入端口,实现二层转发,bridge自身也将会成为一个接口,并拥有自己的PVID(Port VLAN ID) 目前只有CRS3xx系列设备能够支持基于hardware offloading(下发交换芯片处理)使用Bridge VLAN filtering下所有功能,其他设备在启用桥接VLAN过滤时,不能完全使用内置交换芯片处理,大部分需要通过CPU完成。

PS:v7.20版本 bridge网桥中VLAN的动态添加功能,如果需将某个tag(trunk口)的VLAN通过交换芯片发送到CPU处理,可以在bridge port中对应接口关闭Hardware-offload属性,会自动将该端口的tag VLAN创建到bridge VLAN中并传递给CPU处理。例如一些需要软件来处理的接口,WiFi或隧道协议等;另外在interface vlan中创建VLAN ID的接口指定到bridge上,也会在bridge vlan完成动态创建,这样接少了手动配置操作。

VLAN实例1 (不同VLAN配置Access接口)

这个实例介绍常见二层不同VLAN的access接口配置

创建一个bridge接口,在配置完成VLAN之前,先禁用 vlan-filtering ,避免丢失路由器的管理

 /interface bridge add 
name=bridge1 vlan-filtering=no 

添加bridge ports的接口成员,并指定每个access接口的PVID。

/interface bridge port 
add bridge=bridge1 interface=ether2 
add bridge=bridge1 interface=ether6 pvid=300 
add bridge=bridge1 interface=ether7 pvid=300 
add bridge=bridge1 interface=ether8 pvid=400 
add bridge=bridge1 interface=ether9 pvid=400

最后,当VLAN配置完成,启用vlan-filtering

/interface bridge set bridge1 vlan-filtering=yes

VLAN实例2 (配置Trunk和Access接口)

这个实例介绍常见二层VLAN的trunk和access接口配置

创建一个bridge接口,并禁用 vlan-filtering ,在配置完成VLAN之前,避免丢失路由器的管理

 /interface bridge add name=bridge1 vlan-filtering=no 

添加bridge ports的接口成员,并指定每个access接口的PVID,trunk接口不用指定。

 /interface bridge port 
add bridge=bridge1 interface=ether2 
add bridge=bridge1 interface=ether6 pvid=200 
add bridge=bridge1 interface=ether7 pvid=300 
add bridge=bridge1 interface=ether8 pvid=400 

添加bridge VLAN,并指定tagged和untagged接口

 /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 

最后,当VLAN配置完成,启用vlan-filtering

/interface bridge set bridge1 vlan-filtering=yes

VLAN实例3 (配置Trunk和Hybrid接口)

该实例介绍二层VLAN混杂模式的配置

创建一个bridge接口,并禁用 vlan-filtering ,在配置完成VLAN之前,避免丢失路由器的管理

 /interface bridge 
 add name=bridge1 vlan-filtering=no 

添加bridge ports的接口成员,并指定每个access接口的PVID,trunk接口不用指定。

/interface bridge port 
add bridge=bridge1 interface=ether2 
add bridge=bridge1 interface=ether6 pvid=200 
add bridge=bridge1 interface=ether7 pvid=300 
add bridge=bridge1 interface=ether8 pvid=400 

添加Bridge VLAN,并指定tagged and untagged端口,设置ether6.ether7和ether8为Hybrid端口

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

最后,当VLAN配置完成,启用vlan-filtering

/interface bridge set bridge1 vlan-filtering=yes

VLAN实例4(配置VLAN三层接口)

该实例介绍,如何二层VLAN上创建三层接口

创建一个bridge接口,并禁用 vlan-filtering ,在配置完成VLAN之前,避免丢失路由器的管理

/interface bridge 
add name=bridge1 vlan-filtering=no 

添加bridge ports的接口成员,并指定每个access接口的PVID,trunk接口不用指定。

/interface bridge port 
add bridge=bridge1 interface=ether6 pvid=200 
add bridge=bridge1 interface=ether7 pvid=300 
add bridge=bridge1 interface=ether8 pvid=400 

添加bridge VLAN,并指定tagged和untagged接口,在这个实例中设置tagged为bridge1,即将VLAN trunk到路由器内部

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

进入/interface vlan菜单,创建bridge1接口下对应的vlan id,允许处理来之二层的vlan数据

 /interface vlan 
add interface=bridge1 name=vlan200 vlan-id=200 
add interface=bridge1 name=vlan300 vlan-id=300 
add interface=bridge1 name=vlan400 vlan-id=400 

在/ip address菜单下添加对应VLAN的IP地址

/ip address 
add address=20.0.0.1/24 interface=vlan200  
add address=30.0.0.1/24 interface=vlan300  
add address=40.0.0.1/24 interface=vlan400 

最后,当VLAN配置完成,启用vlan-filtering

/interface bridge set bridge1 vlan-filtering=yes

VLAN实例5 (配置VLAN三层管理IP)

该实例如何是二层VLAN配置三层管理IP和网关

创建一个bridge接口,并禁用 vlan-filtering ,在配置完成VLAN之前,避免丢失路由器的管理

 /interface bridge 
add name=bridge1 vlan-filtering=no 

添加bridge ports的接口成员,并指定每个access接口的PVID,trunk接口不用指定。

/interface bridge port 
add bridge=bridge1 interface=ether2 
add bridge=bridge1 interface=ether3 pvid=300 

添加bridge VLAN,并指定tagged和untagged接口,在这个实例中设置tagged为bridge1,即将VLAN trunk到路由器内部

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

进入/interface vlan菜单,创建bridge1接口下对应的vlan id,允许处理来之二层的vlan数据

/interface vlan 
add interface=bridge1 name=vlan200 vlan-id=200 

在/ip address菜单下添加对应VLAN的IP地址

/ip address 
add address=20.0.0.2/24 interface=vlan200 

在/ip route菜单下添加对应网关 /ip route add gateway=20.0.0.1 最后,当VLAN配置完成,启用vlan-filtering

/interface bridge set bridge1 vlan-filtering=yes 

注意:如果你仅仅是通过二层协议(如MAC-telnet)连接CRS设备,那可以跳过添加IP地址的步骤,仅把VLAN传递给CPU。