近日买了台 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 规则:
- 在 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 没有做通用的支持。
好的, 谢谢!