Hoy es un «documental». Este es un proyecto ya implementado en el que, en su momento, me costó conseguir documentación detallada de algunas configuraciones en español.
Uso Ubiquiti UNIFI, Mikrotik o Cisco Routers y Switches HPE 1910, 1920, 1930.
La idea es la siguiente: Tener WiFi distribuidos, un mismo SSID y que cada cliente que se conecte tome la VLAN agendada en un Radius y por supuesto, la IP que le entregue un DHCP.
En la vida real el escenario se me hizo más grande. Acá lo simplifiqué para que simplemente se entienda el concepto y se pueda implementar sin errores.
Router(Mikrotik, Cisco), Switch HPE1920, AP Unifi y su controlador y PCs clientes.

Configuramos el Router
Como idea general debe haber un router que se encargue de «routear». (Obvio).
Necesitamos el rol de DHCP en cada VLAN, para eso configuraremos Router OnStick y un DHCP en cada una de las interfaces virtuales. De más está decir que este ejemplo es funcional, todas las demás configuraciones de seguridad se obvian. Si quieren revisar seguridad se pueden dar una vuelta por acá: https://www.nerdadas.com/blog/protegiendo-nuestro-router-mikrotik-hardening/)
Ahora las configuraciones de acuerdo al router que usemos. Solo les dejo dos ejemplos, Cisco y Mikrotik.
Routers Cisco
#modo config
R2#configure terminal
#Nombramos al router
Router(config)#hostname R1
#Configuramos la wan como dhcp-client(Nos dará ip nuestro proveedor)
R1(config)#interface gigabitEthernet 0/1
R1(config-if)#ip address dhcp
R1(config-if)#no shutdown
R1(config-if)#exit
#Creamos las vlans
R1(config)#interface vlan 10
R1(config-if)#description VLAN10
R1(config-if)#exit
R1(config)#interface vlan 20
R1(config-if)#description VLAN20
R1(config-if)#exit
R1(config)#interface vlan 30
R1(config-if)#description VLAN30
R1(config-if)#exit
R1(config)#interface vlan 99
R1(config-if)#description VLAN99
R1(config-if)#exit
#Configuramos las interfaces para las vlans
R1(config)#interface gigabitEthernet 0/2.10
R1(config-subif)#encapsulation dot1Q 10
R1(config-subif)#ip address 192.168.10.1 255.255.255.0
R1(config-subif)#no shutdown
R1(config-subif)#exit
R1(config)#interface gigabitEthernet 0/2.20
R1(config-subif)#encapsulation dot1Q 20
R1(config-subif)#ip address 192.168.20.1 255.255.255.0
R1(config-subif)#no shutdown
R1(config-subif)#exit
R1(config)#interface gigabitEthernet 0/2.30
R1(config-subif)#encapsulation dot1Q 30
R1(config-subif)#ip address 192.168.30.1 255.255.255.0
R1(config-subif)#no shutdown
R1(config-subif)#exit
R1(config)#interface gigabitEthernet 0/2.99
R1(config-subif)#encapsulation dot1Q 99
R1(config-subif)#ip address 192.168.99.1 255.255.255.0
R1(config-subif)#no shutdown
R1(config-subif)#exit
#Generamos los DHCP
R1(config)#ip dhcp pool 10
R1(dhcp-config)#network 192.168.10.0 255.255.255.0
R1(dhcp-config)#default-router 192.168.10.1
R1(dhcp-config)#exit
R1(config)#ip dhcp pool 20
R1(dhcp-config)#network 192.168.20.0 255.255.255.0
R1(dhcp-config)#default-router 192.168.20.1
R1(dhcp-config)#exit
R1(config)#ip dhcp pool 30
R1(dhcp-config)#network 192.168.30.0 255.255.255.0
R1(dhcp-config)#default-router 192.168.30.1
R1(dhcp-config)#exit
R1(config)#ip dhcp pool 99
R1(dhcp-config)#network 192.168.99.0 255.255.255.0
R1(dhcp-config)#default-router 192.168.99.1
R1(dhcp-config)#exit
Routers Mikrotik
#Nombramos el router
/system identity set name=R1
#Configuramos la wan como dhcp-client(Nos dará ip nuestro proveedor)
/ip dhcp-client add interface=ether1
#Generamos las Interfaces virtuales de VLANs en la ether2
/interface vlan
add comment=VLAN10 interface=ether2 name=vlan1 vlan-id=10
add comment=VLAN20 interface=ether2 name=vlan2 vlan-id=20
add comment=VLAN30 interface=ether2 name=vlan3 vlan-id=30
add comment=VLAN99 interface=ether2 name=vlan4 vlan-id=99
#Asignamos las ips
/ip address
add address=192.168.10.1/24 interface=vlan10 network=192.168.10.0
add address=192.168.20.1/24 interface=vlan20 network=192.168.20.0
add address=192.168.30.1/24 interface=vlan30 network=192.168.30.0
add address=192.168.99.1/24 interface=vlan99 network=192.168.99.0
#Creamos el servicio de DHCP en cada interfaz.
/ip dhcp-server setup #(vlan10, vlan20, vlan30 y vlan99).
Instalación y Configuración Radius
También, en un Linux con Debian o Ubuntu, instalaremos un Freeradius que usaremos para validar las mac de los dispositivos y asignarles las VLANS correspondientes. Así cada equipo, cuando se conecte al WiFi se conectará y tendrá IP de la vlan que le corresponda. En caso de no tener agendado ese equipo en nuestro freeradius crearemos una conexión Default que enviará a estas personas a la VLAN 30 que hará de VLAN de Visitas. (Deberemos en algún momento aislar a esta VLAN del resto).
#La ip de este equipo es: 192.168.99.200/24
#Debian o Ubuntu
sudo apt install freeradius3 freeradius3-common freeradius3-config freeradius3-util
#Editamos el archivo con la Mac del equipo que asignaremos la VLAN20 y sino está en la lista tomará la VLAN30.
nano /etc/freeradius/3.0/mods-config/files/authorize
#Escribir el siguiente contenido
74:c6:38:d9:d2:7f Cleartext-Password := "74:c6:38:d9:d2:7f"
Tunnel-Type = VLAN,
Tunnel-Medium-Type = 6,
Tunnel-Private-Group-Id = 20
DEFAULT Auth-Type := Accept
Tunnel-Type = VLAN,
Tunnel-Medium-Type = 6,
Tunnel-Private-Group-Id = 30
#También deberemos autorizar a nuestros clientes que tienen permitido validar
#Editamos el archivo
nano /etc/freeradius/3.0/mods-config/files/clients.conf
#Escribir el contenido
client vlan1 {
ipaddr = 192.168.99.0/24
secret = passwordradius
}
Configuración de Switches
Configuración de VLANs en los puertos donde conectamos los UNIFI
Obviamente primero creamos las VLANS en el Switch. (VLANS 10,20,30,99).

Cargamos todas las VLANs tagged en el puerto de red donde conectaremos nuestro UniFi AP. Estas VLANS serán distribuidas por nuestro AP según Radius diga a quién corresponden.

Una vez que tenemos como tagged las vlans que va a distribuir el UniFi AP vamos a configurar como Untagged la VLAN de management para administrar nuestros APs con UNIFI. De esta manera nos ahorramos el paso de meter en la vlan de administración a los UniFI, automaticamente obtendran una ip en el mismo rango que el UniFi Controller con solo conectarse. En HPE es un puerto hybrid.

Configuración UniFi
Creamos nuestra red WiFI con lave WPA2.


Luego, en el perfil, vamos a agregar el server radius que configuramos antes.

Tildamos la casilla Wireless Networks y usamos como secret la clave de clientes que generamos antes. En el ejemplo el Radius es 192.168.10.1 pero debería ser 192.168.99.200, por ejemplo, para que esté en la misma vlan de administración.


Ahora configuramos nuestra red Test en forma manual para agregar la validación de vlan con radius para los clientes.


Resumen
El funcionamiento sería el siguiente. Cada vez que un equipo(Laptop, Móvil, etc) se conecte al WiFi tendrá que seleccionar el SSID (Test en este caso) y poner la password. Al validar la conexión, UniFi preguntará al servidor Radius si esa MAC Address tiene una VLAN asignada. Si es así, conectará al dipositivo en esa VLAN. En el caso contrario, le asignará la VLAN 30. (Se aplica en el Radius la sección DEFAULT)
Es muy común aplicar 802.1x o validar las conexiones cableadas con Freeradius pero no tan común aplicarlo al WiFi. Hay varias consideraciones de seguridad al hacer esto yo solo quiero destacar una. La VLAN de management y cualquier otra VLAN que tenga accesos privilegiados no debería ser accesible vía WiFI ya que es posible escuchar y spoofear una MAC address para ganar acceso. También recomiendo calcular los límites de los dispositivos WiFI para que sean accesibles solo desde los recintos de la empresa o lugar donde se pongan y no desde la calle o a la distancia..