VLAN setup check + dashboard connection to cloud switch gone when connecting via ethernet to HeX PoE

Network design

The network plan below is my intended network. The 4 ‘servers’ in the top left are 4 Raspberry Pi’s. They are connected to the HeX PoE router. This connection is through Ethernet, port 1 on the HeX which connects to port 2 on the CloudSwitch. The CloudSwitch in turn is connected to my FRITZ!Box router with it’s port 1 (this device is not connected yet).

My native (untagged) VLAN is 10, all systems should be able to reach each other via that one. All the other VLANs should be tagged. Only particular workstations should be able to tag VLAN 11. In this case port 7 on the CloudSwitch. The goal is therefore that I should be able to reach the VLAN 11 virtual interfaces on the Raspberry Pi’s, but only from that port. Port 2 on the CloudSwitch is a trunk port and it forwards VLAN 10, 11, 12 to the HeX.

Furthermore, on the HeX is a basic firewall, which isn’t configured properly at the moment. But it will offer some basic protection. The Raspberry Pi hosts will have a firewalld solution and the FRITZ!Box will also have a firewall (NAT).
network design.png
My HeX PoE configuration

[admin@MikroTik] > export hide-sensitive
# 1970-01-02 05:47:51 by RouterOS 7.10.2
# software id = A1GI-TFVF
#
# model = RB960PGS
# serial number = guessit
/interface bridge
add admin-mac=CC:2D:E0:81:0A:BE auto-mac=no comment=defconf name=bridge priority=0x7000 pvid=10 vlan-filtering=yes
/interface list
add comment=defconf name=WAN
add comment=defconf name=LAN
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
/ip hotspot profile
set [ find default=yes ] html-directory=hotspot
/ip pool
add name=dhcp ranges=192.168.88.10-192.168.88.254
/ip dhcp-server
add address-pool=dhcp disabled=yes interface=bridge lease-time=10m name=defconf
/interface bridge port
add bridge=bridge comment=defconf interface=ether2 pvid=10
add bridge=bridge comment=defconf interface=ether3 pvid=10
add bridge=bridge comment=defconf interface=ether4 pvid=10
add bridge=bridge comment=defconf interface=ether5 pvid=10
add bridge=bridge comment=defconf interface=sfp1 pvid=10
add bridge=bridge interface=ether1 pvid=10
/ip neighbor discovery-settings
set discover-interface-list=LAN
/interface bridge vlan
add bridge=bridge untagged=bridge,ether1,ether2,ether3,ether4,ether5,sfp1 vlan-ids=10
add bridge=bridge tagged=ether1,ether2,ether3,ether4,ether5 vlan-ids=11
add bridge=bridge tagged=ether2,ether3,ether4,ether5 vlan-ids=12
/interface list member
add comment=defconf interface=ether1 list=WAN
add interface=ether2 list=LAN
add interface=ether3 list=LAN
add interface=ether4 list=LAN
add interface=ether5 list=LAN
add interface=sfp1 list=LAN
/ip address
add address=192.168.88.1/24 comment=defconf interface=ether2 network=192.168.88.0
/ip dhcp-client
add comment=defconf disabled=yes interface=bridge
/ip dhcp-server network
add address=192.168.88.0/24 comment=defconf dns-server=192.168.88.1 gateway=192.168.88.1
/ip dns
set allow-remote-requests=yes
/ip dns static
add address=192.168.88.1 comment=defconf name=router.lan
/ip firewall filter
add action=accept chain=input comment="defconf: accept established,related,untracked" connection-state=established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=invalid
add action=accept chain=input comment="defconf: accept ICMP" protocol=icmp
add action=accept chain=input comment="defconf: accept to local loopback (for CAPsMAN)" dst-address=127.0.0.1
add action=drop chain=input comment="defconf: drop all not coming from LAN" disabled=yes in-interface-list=!LAN
add action=accept chain=forward comment="defconf: accept in ipsec policy" ipsec-policy=in,ipsec
add action=accept chain=forward comment="defconf: accept out ipsec policy" ipsec-policy=out,ipsec
add action=fasttrack-connection chain=forward comment="defconf: fasttrack" connection-state=established,related hw-offload=yes
add action=accept chain=forward comment="defconf: accept established,related, untracked" connection-state=established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" connection-state=invalid
add action=drop chain=forward comment="defconf: drop all from WAN not DSTNATed" connection-nat-state=!dstnat connection-state=new in-interface-list=WAN
/ip firewall nat
add action=masquerade chain=srcnat comment="defconf: masquerade" ipsec-policy=out,none out-interface-list=WAN
/ipv6 firewall address-list
add address=::/128 comment="defconf: unspecified address" list=bad_ipv6
add address=::1/128 comment="defconf: lo" list=bad_ipv6
add address=fec0::/10 comment="defconf: site-local" list=bad_ipv6
add address=::ffff:0.0.0.0/96 comment="defconf: ipv4-mapped" list=bad_ipv6
add address=::/96 comment="defconf: ipv4 compat" list=bad_ipv6
add address=100::/64 comment="defconf: discard only " list=bad_ipv6
add address=2001:db8::/32 comment="defconf: documentation" list=bad_ipv6
add address=2001:10::/28 comment="defconf: ORCHID" list=bad_ipv6
add address=3ffe::/16 comment="defconf: 6bone" list=bad_ipv6
/ipv6 firewall filter
add action=accept chain=input comment="defconf: accept established,related,untracked" connection-state=established,related,untracked
add action=drop chain=input comment="defconf: drop invalid" connection-state=invalid
add action=accept chain=input comment="defconf: accept ICMPv6" protocol=icmpv6
add action=accept chain=input comment="defconf: accept UDP traceroute" port=33434-33534 protocol=udp
add action=accept chain=input comment="defconf: accept DHCPv6-Client prefix delegation." dst-port=546 protocol=udp src-address=fe80::/10
add action=accept chain=input comment="defconf: accept IKE" dst-port=500,4500 protocol=udp
add action=accept chain=input comment="defconf: accept ipsec AH" protocol=ipsec-ah
add action=accept chain=input comment="defconf: accept ipsec ESP" protocol=ipsec-esp
add action=accept chain=input comment="defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec
add action=drop chain=input comment="defconf: drop everything else not coming from LAN" in-interface-list=!LAN
add action=accept chain=forward comment="defconf: accept established,related,untracked" connection-state=established,related,untracked
add action=drop chain=forward comment="defconf: drop invalid" connection-state=invalid
add action=drop chain=forward comment="defconf: drop packets with bad src ipv6" src-address-list=bad_ipv6
add action=drop chain=forward comment="defconf: drop packets with bad dst ipv6" dst-address-list=bad_ipv6
add action=drop chain=forward comment="defconf: rfc4890 drop hop-limit=1" hop-limit=equal:1 protocol=icmpv6
add action=accept chain=forward comment="defconf: accept ICMPv6" protocol=icmpv6
add action=accept chain=forward comment="defconf: accept HIP" protocol=139
add action=accept chain=forward comment="defconf: accept IKE" dst-port=500,4500 protocol=udp
add action=accept chain=forward comment="defconf: accept ipsec AH" protocol=ipsec-ah
add action=accept chain=forward comment="defconf: accept ipsec ESP" protocol=ipsec-esp
add action=accept chain=forward comment="defconf: accept all that matches ipsec policy" ipsec-policy=in,ipsec
add action=drop chain=forward comment="defconf: drop everything else not coming from LAN" in-interface-list=!LAN
/system note
set show-at-login=no
/tool mac-server
set allowed-interface-list=LAN
/tool mac-server mac-winbox
set allowed-interface-list=LAN

I can’t export a plain text config for my CloudSwitch, so here are some screenshots. Basically the device is running a default config. I only configured the VLANs.
Screenshot 2023-08-27 at 16-28-16 MikroTik SwOS Lite.png
Screenshot 2023-08-27 at 16-27-49 MikroTik SwOS Lite.png
Screenshot 2023-08-27 at 16-30-21 MikroTik SwOS Lite.png
The question/problem

  1. When I connect my HeX PoE to my CloudSwitch (port 1 → port 2), then I cannot reach the dashboard of the CloudSwitch anymore. Both have different IPs. The HeX has 192.168.88.1 and the CloudSwitch has 192.168.88.2. So maybe it has to do with RSTP? That it blocks the port due for some reason? As already explained, my own laptop is directly connected to the CloudSwitch at the moment on port 7. I am still able to ping/ssh onto the Raspberry Pi’s through VLAN 10. I just cannot open the CloudSwitch web dashboard anymore.

Already found the answer for this one, the DHCP was enabled on the HeX bridge, so therefore it got a lease and a different gateway I suppose? In any case, disabling the DHCP server on the HeX solves this issue.

  1. I also would like to know if this VLAN setup is suppose to work as I describe. Specifically it if would really allow VLAN 10 in the entire network, and only allow certain VLANs between the Raspberry Pi’s and any device that’s allowed to tag e.g. VLAN 11 on the CloudSwitch. My testing so far indicates it works as designed, but need to do more testing. Maybe the experienced config guru’s already spot issues.

Any feedback please? :slight_smile:

Well, my tests confirm it works as designed. But if there is any feedback, let me know.

I don’t use SwOS so I can’t comment there. The RouterOS Bridge VLAN Filtering looks incomplete:

/interface bridge vlan
add bridge=bridge tagged=bridge,ether1,ether2,ether3,ether4,ether5 vlan-ids=11
add bridge=bridge tagged=bridge,ether2,ether3,ether4,ether5 vlan-ids=12

Add bridge to every VLAN bearing in my bridge can be untagged in just one VLAN.

One untagged VLAN is enough, right? Can you provide more context and reasoning? Maybe I then understand. VLAN 10 is used as the default VLAN and is set on the access ports. The other VLANs are not meant for access ports.

My devices hAP ax3 CRS309 CRS326 CRS326 all use Bridge VLAN Filtering model: RouterOS https://help.mikrotik.com/docs/display/ROS/Bridging+and+Switching#BridgingandSwitching-BridgeVLANFiltering
But that VLAN model is not universal, see Bridge VLAN filtering on non-CRS3xx: RouterOS https://help.mikrotik.com/docs/display/ROS/Layer2+misconfiguration#Layer2misconfiguration-BridgeVLANfilteringonnon-CRS3xx
Knowing your device well may help performance, see Switch Chip Features: https://help.mikrotik.com/docs/display/ROS/Switch+Chip+Features
I suggest reading all of the above pages and in particular avoid all the cases enumerated the in second page.

Can you please be a little bit more verbose by copying the specific pointers from those pages? Because I don’t understand why I should add extra untagged VLANs while I only have one VLAN for access ports. VLAN filtering is enabled and I’m aware of performance differences based on what’s available on the switch chip.

Can you please elaborate on this? Thanks!