近日买了台MikroTik RB260GS。RB260GS/RB260GSP虽然有RB的SKU,但是其实是CSS106系列的小规格交换机,提供一个SFP笼子和五个以太网端口,配合光纤易于走线的特性,非常适用于家里离中心交换机距离较远,需要以太网连接覆盖并且对性能要求不高的场景。RB260GSP带PoE输出,可以用来部署网桥。鉴于SwOS的VLAN设置逻辑比较难懂(什么交换机的VLAN容易懂?),特撰写此文以备考。
SwOS的VLAN设置分别在VLAN和VLANs两处,其中VLANs里的设置会覆盖VLAN的Egress设置。逻辑上来说,VLAN tab里的设置是针对端口的,VLANs tab的设置是针对端口流入桥的流量的。也就是说:
- 从端口进入桥的流量只会经过VLAN tab的Ingress规则;
- VLANs的规则决定桥上的什么流量会流到端口上,然后相应流量经过VLAN tab的Egress规则后从端口流出。
这个设定不是很好理解,以下用我现在的配置做个例子。我这边的网络布局:一台RB260G用光纤连接到上行交换机,management network不加VLAN tag,RB260G的以太网端口会连接多个不同access level的设备,需要给它们的流量加VLAN tag。也就是说,trunk端口会同时具有不加VLAN tag和加VLAN tag的流量。
首先,既然所有端口都参与交换,我们要在Forwarding tab里面配置每个端口转发到除它以外的所有端口(默认设置)。然后对于所有需要交换机识别的VLAN ID,先在VLANs tab添加好。
流量在进入和流出trunk端口时均不添加/删除VLAN tag,因此对于trunk端口,需要做以下配置:
- 在VLAN tab设置Ingress规则:
- VLAN Mode: optional
- VLAN Receive: any
- Default VLAN ID: 1
- Force VLAN ID: 不选
- 在VLAN tab设置Egress规则:
- VLAN Header: leave as is
- 在VLANs tab设置规则:
- 对所有的VLAN ID,设为leave as is
对于每个access port,因为下行设备均非VLAN aware,因此需要在流量流出端口时去掉VLAN tag,流入时加上默认VLAN tag。做以下配置:
- 在VLAN tab设置Ingress规则:
- VLAN Mode: strict
- VLAN Receive: any
- Default VLAN ID: 需要加上的VLAN ID
- Force VLAN ID: 勾选
- 在VLAN tab设置Egress规则:
- VLAN Header: always strip
- 在VLANs tab设置规则:
- 对该端口对应的VLAN ID,设为leave as is
- 对非该端口的VLAN ID,设为not a member
参考:
大佬!不好意思!又打扰您了!请教一下RouterOS或SwOS是否支持vlan mapping?
个别交换芯片有支持,RouterOS/SwOS 没有做通用的支持。
好的,谢谢!