Can you check the users file about the vlan ist contents?
cat /usr/local/opnsense/service/templates/OPNsense/Freeradius/users
{% if helpers.exists('OPNsense.freeradius.general.enabled') and OPNsense.freeradius.general.enabled == '1' %}{% if helpers.exists('OPNsense.freeradius.user.users.user') %}{% for user_list in helpers.toList('OPNsense.freeradius.user.users.user') %}{% if user_list.enabled == '1' %}{{ user_list.username }} Cleartext-Password := "{{ user_list.password }}"{% if helpers.exists('OPNsense.freeradius.general.sessionlimit') and OPNsense.freeradius.general.sessionlimit == '1' %}{% if user_list.sessionlimit_max_session_limit is defined %}, Max-Daily-Session := {{ user_list.sessionlimit_max_session_limit }}{% endif %}{% endif %}{% if user_list.simuse is defined %}, Simultaneous-Use := "{{ user_list.simuse }}"{% endif %}{% if user_list.logintime is defined %}, Login-Time := "{{ user_list.logintime }}"{% endif %}{% if user_list.ip is defined %} Framed-IP-Address = {{ user_list.ip }},{% endif %}{% if user_list.subnet is defined %} Framed-IP-Netmask = {{ user_list.subnet }},{% endif %}{% if user_list.route is defined %}{% for network in user_list.route.split(',') %} Framed-Route += "{{ network }}",{% endfor %}{% endif %}{% if user_list.ip6 is defined %} Framed-IPv6-Address = {{ user_list.ip6 }},{% endif %}{% if user_list.servicetype is defined %}{% for servicelist in user_list.servicetype.split(',') %} Service-Type = {{ servicelist }},{% endfor %}{% endif %}{% if helpers.exists('OPNsense.freeradius.general.vlanassign') and OPNsense.freeradius.general.vlanassign == '1' %}{% if user_list.vlan is defined %} Tunnel-Type = VLAN, Tunnel-Medium-Type = IEEE-802, Tunnel-Private-Group-Id = {{ user_list.vlan }},{% endif %}{% endif %}{% if helpers.exists('OPNsense.freeradius.general.wispr') and OPNsense.freeradius.general.wispr == '1' %}{% if user_list.wispr_bw_min_up is defined %} WISPr-Bandwidth-Min-Up = {{ user_list.wispr_bw_min_up }},{% endif %}{% if user_list.wispr_bw_max_up is defined %} WISPr-Bandwidth-Max-Up = {{ user_list.wispr_bw_max_up }},{% endif %}{% if user_list.wispr_bw_min_down is defined %} WISPr-Bandwidth-Min-Down = {{ user_list.wispr_bw_min_down }},{% endif %}{% if user_list.wispr_bw_max_down is defined %} WISPr-Bandwidth-Max-Down = {{ user_list.wispr_bw_max_down }},{% endif %}{% endif %}{% if helpers.exists('OPNsense.freeradius.general.chillispot') and OPNsense.freeradius.general.chillispot == '1' %}{% if user_list.chillispot_bw_max_up is defined %} ChilliSpot-Bandwidth-Max-Up = {{ user_list.chillispot_bw_max_up }},{% endif %}{% if user_list.chillispot_bw_max_down is defined %} ChilliSpot-Bandwidth-Max-Down = {{ user_list.chillispot_bw_max_down }},{% endif %}{% endif %}{% if helpers.exists('OPNsense.freeradius.general.mikrotik') and OPNsense.freeradius.general.mikrotik == '1' %}{% if user_list.mikrotik_vlan_id_number is defined %} Mikrotik-Wireless-VLANID = {{ user_list.mikrotik_vlan_id_number }},{% endif %}{% if user_list.mikrotik_vlan_id_type is defined %} Mikrotik-Wireless-VLANID-Type = {{ user_list.mikrotik_vlan_id_type }},{% endif %}{% endif %}{% if user_list.linkedAVPair|default("") != "" %}{% for avlist in user_list.linkedAVPair.split(",") %}{% set avlistdetail = helpers.getUUID(avlist) %}{% if avlistdetail != {} and avlistdetail.enabled == '1' %} {{ avlistdetail.name }} {{ avlistdetail.operator }} {{ avlistdetail.value }},{% endif %}{% endfor %}{% endif %} Framed-Protocol = PPP{% endif %}{% endfor %}{% endif %}DEFAULT Framed-Protocol == PPP Framed-Protocol = PPP, Framed-Compression = Van-Jacobson-TCP-IPDEFAULT Hint == "CSLIP" Framed-Protocol = SLIP, Framed-Compression = Van-Jacobson-TCP-IPDEFAULT Hint == "SLIP" Framed-Protocol = SLIP{% endif %}
cat /usr/local/etc/raddb/users
bob Cleartext-Password := "bob" Framed-IP-Address = 1.2.3.4, Tunnel-Type = VLAN, Tunnel-Medium-Type = IEEE-802, Tunnel-Private-Group-Id = 200, Mikrotik-Wireless-VLANID = 200, Framed-Protocol = PPPxxx1@xxx.yyy.zzz Cleartext-Password := "xxx" Framed-IP-Address = 9.9.9.9, Tunnel-Type = VLAN, Tunnel-Medium-Type = IEEE-802, Tunnel-Private-Group-Id = 255, Mikrotik-Wireless-VLANID = 255, Framed-Protocol = PPPxxx2@xxx.yyy.zzz Cleartext-Password := "xxx" Framed-IP-Address = 10.10.10.10, Tunnel-Type = VLAN, Tunnel-Medium-Type = IEEE-802, Tunnel-Private-Group-Id = 2121, Mikrotik-Wireless-VLANID = 2121, Framed-Protocol = PPPxxx3@xxx.yyy.zzz Cleartext-Password := "xxx" Framed-IP-Address = 111.111.111.111, Tunnel-Type = VLAN, Tunnel-Medium-Type = IEEE-802, Tunnel-Private-Group-Id = 111, Mikrotik-Wireless-VLANID = 111, Framed-Protocol = PPPlan Cleartext-Password := "lan" Tunnel-Type = VLAN, Tunnel-Medium-Type = IEEE-802, Tunnel-Private-Group-Id = 50, Framed-Protocol = PPPDEFAULT Framed-Protocol == PPP Framed-Protocol = PPP, Framed-Compression = Van-Jacobson-TCP-IPDEFAULT Hint == "CSLIP" Framed-Protocol = SLIP, Framed-Compression = Van-Jacobson-TCP-IPDEFAULT Hint == "SLIP" Framed-Protocol = SLIP
OK, next 2 q:- You have a Mikrotik WiFi solution?- What is the use case for vlan in WiFi? Usually they are set per ssid?
Thx for clarification, now I understand the use case. Did you check only setting Mikrotik Vlan? I'm not sure about the syntax templated. Do you have a Mikrotik doc link about their Radius attributes?