I have a hAP ac3 that I’ve just upgraded to 7.15.1 from 7.12.1. It has three virtual APs, and separate DHCP servers and address pools for each, ex: virtual AP virtap has it’s own /24 and uses DHCP server virtap from pool virtap, virtap2 has a different /24, server, and pool.
After upgrading to 7.15.1, I discovered that the DHCP server screen now has “DHCP server can not run on slave interface!” for the DHCP servers that were configured for the virtual APs:
[master@MikroTik] > ip dhcp print
Flags: I - INVALID
Columns: NAME, INTERFACE, ADDRESS-POOL, LEASE-TIME
# NAME INTERFACE ADDRESS-POOL LEASE-TIME
0 defconf bridge dhcp 8h
;;; DHCP server can not run on slave interface!
1 I virtap2 VIRTAP2 virtap2 4h
;;; DHCP server can not run on slave interface!
2 I virtap3 VIRTAP3 virtap3 12h
;;; DHCP server can not run on slave interface!
3 I virtap VIRTAP virtap 30m
When tested the servers are working despite the error; new clients to the virtual APs are issued addresses from the correct pool, their leases show the correct server name, etc.
This usually happens if such “slave interface” is made a bridge port. In this case bridge interface should be used as anchor interface for DHCP server.
Currently all wifi interfaces (real and virtualAP) are part of the same default bridge “bridge”, with the virtual APs as ports on it. But I’m not sure what you meant by using the bridge interface for the DHCP server? Trying to set the interface to “bridge” for the DHCP server returns an error since there’s already a DHCP server there.
Perhaps you should post full config (run /export file=anynameyouwish from terminal window, fetch the resulting file, open it with text editor, redact any remeining sensitive data such as public IP addresses or serial numbers, and copy-paste it inside [__code] [/code] tag pair). It does seem that there are some more errors in your config which affect the behaviour.
BTW, setting DHCP server (or any other L3 setup, such as IP address) on slave interface (which is bridge port) was always a wrong thing to do … it’s only recent versions of ROS that highlight this fact to users. Behaviour was always on the edge of erratic though.
To maintain my current setup, with three virtual APs, each running a DHCP server that hands out addresses from a IP pool dedicated to that virtual AP. (ex: 192.168.12.0/24 for virtual AP 1, 192.168.14.0/24 for virtual AP 2, etc). That’s the setup I’ve been using for years and have had no issues with. Indeed, it’s working fine right now - except I can’t edit or update the DHCP server config anymore as it has suddenly decided it is invalid (but working!)
OK, so according to configuration all the VIRTAP interfaces should be off-bridge (and thus “eligible” for L3 setup). But you should check if this is indeed so:
I’m wondering if I need to create separate bridges for each virtualAP now? Later edit, that doesn’t work either. Trying to remove the virtualAP from the default bridge through webfig gives an error “can not remove dynamic port (6)”. Trying to edit the bridge port through /interface/bridge/port/edit doesn’t return an error but the change is ignored and it stays bridge=bridge.
Bridge interface to add interface to, as a bridge port.
Virtual (‘slave’) interfaces are by default added to the same bridge, if any, as the corresponding master interface. Master interfaces are not by default added to any bridge.
It doesn’t seem it’s possible to unset the value for virtual interfaces. But what does happen if one tries to set it to inexistent bridge? Does it fail to bring interface up? Or does it get added to master’s bridge? Or it remains unconnected (just like @OP wants it to be)?
I would entirely skip the datapath property. You are already manually adding the master interfaces to the bridge. I think that’s suffice. The slave interfaces will not be part of the bridge.
I am using a dedicated VLAN for each AP/SSID to achieve the same results.
Works with Wifi and wireless (new wifi on ac3 with manual VLAN setup on bridge an qcom-ac drivers)…with or without capsman.
Tried the datapath option, but it won’t accept setting an empty bridge for the virtAP interface. Opened a ticket with Mikrotik support last week, but no replies so far. May have to try reworking around the dedicated VLAN per virtAP method Hominidae suggested, pointers to good docs on that would be appreciated!