powerox
Goto Top

Dynamische V-LANs für Wifi (Capsman) und LAN auf Mikrotik mit RADIUS

Hallo ...
ich benötige mal Eure Hilfe bei dem oben genannten Thema dass ich nicht final zum Laufen bekomme.
Habe nach der Anleitung gearbeitet >> Dynamische VLAN Zuweisung für WLAN (u. LAN) Clients mit Mikrotik

Hardware / Layout wie folgt >>
INTERNET <-> OPNSENSE <-> CRS354-48P [CAPSMAN] <-> 4x CAP XL

screenshot 2024-08-19 at 21.45.36
screenshot 2024-08-19 at 21.46.18

Status ist - dass ich mich egal was im RADIUS hinterlegt ist, über die APs anmelden kann,
und dann im V-LAN-1 lande - dort aber trotz IP/DNS/GATEWAY nicht ins Internet komme.

Zum einen ist wohl das RADIUS/AUTH-Setup nicht korrekt, und zum anderen komme
ich wohl nicht durch zur OPNSENSE ... was grundsätzlich vom Switch aus funktioniert,
denn ich konnte das ROS updaten ...

Vielen Dank für Eure Hilfe !!!


CONFIG >>
# 2024-08-19 21:41:04 by RouterOS 7.15.3
# software id = M4DD-K394
#
# model = CRS354-48P-4S+2Q+
# serial number = F3160F97580C
/caps-man channel
add band=2ghz-g/n control-channel-width=20mhz extension-channel=disabled \
    frequency=2412 name=2ghz-CH3
add band=2ghz-g/n control-channel-width=20mhz extension-channel=disabled \
    frequency=2432 name=2ghz-CH5
add band=2ghz-g/n control-channel-width=20mhz extension-channel=disabled \
    frequency=2452 name=2ghz-CH7
add band=2ghz-g/n control-channel-width=20mhz extension-channel=disabled \
    frequency=2472 name=2ghz-CH9
/interface bridge
add igmp-snooping=yes ingress-filtering=no name=bridge port-cost-mode=short \
    vlan-filtering=yes
/interface ethernet
set [ find default-name=ether1 ] name=01-Kitchen-01
set [ find default-name=ether2 ] name=02-Kitchen-02
set [ find default-name=ether3 ] name=03-Maja-Office-01
set [ find default-name=ether4 ] name=04-Maja-Office-04
set [ find default-name=ether5 ] name=05-Aisle-01
set [ find default-name=ether6 ] name=06-Aisle-02
set [ find default-name=ether7 ] name=07-Lenn-01
set [ find default-name=ether8 ] name=08-Lenn-02
set [ find default-name=ether9 ] name=09-Tuuli-01
set [ find default-name=ether10 ] name=10-Tuuli-02
set [ find default-name=ether11 ] name=11-Ralf-Office-01
set [ find default-name=ether12 ] name=12-Ralf-Office-02
set [ find default-name=ether13 ] name=13-Master-Bedroom-01
set [ find default-name=ether14 ] name=14-Master-Bedroom-02
set [ find default-name=ether15 ] name=15-Dining-01
set [ find default-name=ether16 ] name=16-Dining-02
set [ find default-name=ether17 ] name=17-Living-01
set [ find default-name=ether18 ] name=18-Living-02
set [ find default-name=ether19 ] name=19-Front-Door
set [ find default-name=ether20 ] name=20-1stFloor-Tablet
set [ find default-name=ether21 ] name=21-Kitchen-Tablet
set [ find default-name=ether22 ] name=22-HWR-Heating
set [ find default-name=ether23 ] name=23-Garden-House-01
set [ find default-name=ether24 ] name=24-Garden-House-02
set [ find default-name=ether25 ] name=25-Garden-House-03
set [ find default-name=ether26 ] name=26-Garden-House-04
set [ find default-name=ether27 ] name=27-Garden-House-05
set [ find default-name=ether34 ] name=34-CapsMan-01
set [ find default-name=ether48 ] name=48-Uplink-Opnsens
/caps-man interface
add disabled=no l2mtu=1600 mac-address=18:FD:74:92:79:E3 master-interface=\
    none name=cap2 radio-mac=18:FD:74:92:79:E3 radio-name=18FD749279E3
add disabled=no l2mtu=1600 mac-address=18:FD:74:92:7E:9F master-interface=\
    none name=cap4 radio-mac=18:FD:74:92:7E:9F radio-name=18FD74927E9F
add disabled=no l2mtu=1600 mac-address=18:FD:74:94:F2:33 master-interface=\
    none name=cap6 radio-mac=18:FD:74:94:F2:33 radio-name=18FD7494F233
add disabled=no l2mtu=1600 mac-address=18:FD:74:92:76:B1 master-interface=\
    none name=cap8 radio-mac=18:FD:74:92:76:B1 radio-name=18FD749276B1
/interface vlan
add interface=bridge name=vlan1 vlan-id=1
add interface=bridge name=vlan10-Server vlan-id=10
add interface=bridge name=vlan20-Private vlan-id=20
add interface=bridge name=vlan30-Guest vlan-id=30
add interface=bridge name=vlan40-IoT vlan-id=40
/caps-man datapath
add bridge=bridge local-forwarding=yes name=datapath1
/caps-man configuration
add country=germany datapath=datapath1 mode=ap multicast-helper=full name=\
    dynamic-VLANs ssid=HONEYPOT
/caps-man security
add authentication-types=wpa2-psk encryption=aes-ccm group-encryption=aes-ccm \
    group-key-update=1h name=WPA2
/caps-man interface
add channel=2ghz-CH3 configuration=dynamic-VLANs datapath=datapath1 disabled=\
    no l2mtu=1600 mac-address=18:FD:74:92:79:E2 master-interface=none name=\
    cap1 radio-mac=18:FD:74:92:79:E2 radio-name=18FD749279E2 security=WPA2
add channel=2ghz-CH5 channel.frequency=2432 configuration=dynamic-VLANs \
    datapath=datapath1 disabled=no l2mtu=1600 mac-address=18:FD:74:92:7E:9E \
    master-interface=none name=cap3 radio-mac=18:FD:74:92:7E:9E radio-name=\
    18FD74927E9E security=WPA2
add channel=2ghz-CH7 configuration=dynamic-VLANs datapath=datapath1 disabled=\
    no l2mtu=1600 mac-address=18:FD:74:94:F2:32 master-interface=none name=\
    cap5 radio-mac=18:FD:74:94:F2:32 radio-name=18FD7494F232 security=WPA2
add channel=2ghz-CH9 channel.frequency=2472 configuration=dynamic-VLANs \
    datapath=datapath1 disabled=no l2mtu=1600 mac-address=18:FD:74:92:76:B0 \
    master-interface=none name=cap7 radio-mac=18:FD:74:92:76:B0 radio-name=\
    18FD749276B0 security=WPA2
/interface list
add name=WAN
add name=LAN
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
/ip pool
add name=vlan1-pool ranges=192.168.1.100-192.168.1.200
add name=vlan10-pool ranges=192.168.10.100-192.168.10.200
add name=vlan20-pool ranges=192.168.20.100-192.168.20.200
add name=vlan30-pool ranges=192.168.30.100-192.168.30.200
add name=vlan40-pool ranges=192.168.40.100-192.168.40.200
/ip dhcp-server
add address-pool=vlan1-pool interface=vlan1 lease-script="# DNS TTL to set for\  
    \_DNS entries\r\
    \n:local dnsttl \"00:15:00\";\r\  
    \n\r\
    \n###\r\
    \n# Script entry point\r\
    \n#\r\
    \n# Expected environment variables:\r\
    \n# leaseBound         1 = lease bound, 0 = lease removed\r\
    \n# leaseServerName    Name of DHCP server\r\
    \n# leaseActIP         IP address of DHCP client\r\
    \n# leaseActMAC        MAC address of DHCP client\r\
    \n###\r\
    \n\r\
    \n:local scriptName \"dhcp2dns\"\r\  
    \n:do {\r\
    \n  :local scriptObj [:parse [/system script get \$scriptName source]]\r\
    \n  \$scriptObj leaseBound=\$leaseBound leaseServerName=\$leaseServerName \
    leaseActIP=\$leaseActIP leaseActMAC=\$leaseActMAC\r\
    \n} on-error={ :log warning \"DHCP server '\$leaseServerName' lease script\  
    \_error\" };\r\  
    \n\r\
    \n# \"a.b.c.d\" -> \"a-b-c-d\" for IP addresses used as replacement for mi\  
    ssing host names\r\
    \n:local ip2Host do=\\\r\
    \n{\r\
    \n  :local outStr\r\
    \n  :for i from=0 to=([:len \$inStr] - 1) do=\\\r\
    \n  {\r\
    \n    :local tmp [:pick \$inStr \$i];\r\
    \n    :if (\$tmp =\".\") do=\\\r\  
    \n    {\r\
    \n      :set tmp \"-\"\r\  
    \n    }\r\
    \n    :set outStr (\$outStr . \$tmp)\r\
    \n  }\r\
    \n  :return \$outStr\r\
    \n}\r\
    \n\r\
    \n:local mapHostName do={\r\
    \n# param: name\r\
    \n# max length = 63\r\
    \n# allowed chars a-z,0-9,-\r\
    \n  :local allowedChars \"abcdefghijklmnopqrstuvwxyz0123456789-\";\r\  
    \n  :local numChars [:len \$name];\r\
    \n  :if (\$numChars > 63) do={:set numChars 63};\r\
    \n  :local result \"\";\r\  
    \n\r\
    \n  :for i from=0 to=(\$numChars - 1) do={\r\
    \n    :local char [:pick \$name \$i];\r\
    \n    :if ([:find \$allowedChars \$char] < 0) do={:set char \"-\"};\r\  
    \n    :set result (\$result . \$char);\r\
    \n  }\r\
    \n  :return \$result;\r\
    \n}\r\
    \n\r\
    \n:local lowerCase do={\r\
    \n# param: entry\r\
    \n  :local lower \"abcdefghijklmnopqrstuvwxyz\";\r\  
    \n  :local upper \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\r\  
    \n  :local result \"\";\r\  
    \n  :for i from=0 to=([:len \$entry] - 1) do={\r\
    \n    :local char [:pick \$entry \$i];\r\
    \n    :local pos [:find \$upper \$char];\r\
    \n    :if (\$pos > -1) do={:set char [:pick \$lower \$pos]};\r\
    \n    :set result (\$result . \$char);\r\
    \n  }\r\
    \n  :return \$result;\r\
    \n}\r\
    \n\r\
    \n:local token \"\$leaseServerName-\$leaseActMAC\";\r\  
    \n:local LogPrefix \"DHCP2DNS (\$leaseServerName)\"\r\  
    \n\r\
    \n:if ( [ :len \$leaseActIP ] <= 0 ) do=\\\r\
    \n{\r\
    \n  :log error \"\$LogPrefix: empty lease address\"\r\  
    \n  :error \"empty lease address\"\r\  
    \n}\r\
    \n\r\
    \n:if ( \$leaseBound = 1 ) do=\\\r\
    \n{\r\
    \n  # new DHCP lease added\r\
    \n  /ip dhcp-server\r\
    \n  #:local dnsttl [ get [ find name=\$leaseServerName ] lease-time ]\r\
    \n  network\r\
    \n  :local domain [ get [ find \$leaseActIP in address ] domain ]\r\
    \n  #:log info \"\$LogPrefix: DNS domain is \$domain\"\r\  
    \n\r\
    \n  :local hostname [/ip dhcp-server lease get [:pick [find mac-address=\$\
    leaseActMAC and server=\$leaseServerName] 0] value-name=host-name]\r\
    \n  #:log info \"\$LogPrefix: DHCP hostname is \$hostname\"\r\  
    \n\r\
    \n #Hostname cleanup\r\
    \n  :if ( [ :len \$hostname ] <= 0 ) do=\\\r\
    \n  {\r\
    \n    :set hostname [ \$ip2Host inStr=\$leaseActIP ]\r\
    \n    :log info \"\$LogPrefix: Empty hostname for '\$leaseActIP', using ge\  
    nerated host name '\$hostname'\"\r\  
    \n  }\r\
    \n  :set hostname [\$lowerCase entry=\$hostname]\r\
    \n  :set hostname [\$mapHostName name=\$hostname]\r\
    \n  #:log info \"\$LogPrefix: Clean hostname for FQDN is \$hostname\";\r\  
    \n\r\
    \n  :if ( [ :len \$domain ] <= 0 ) do=\\\r\
    \n  {\r\
    \n    :log warning \"\$LogPrefix: Empty domainname for '\$leaseActIP', can\  
    not create static DNS name\"\r\  
    \n    :error \"Empty domainname for '\$leaseActIP'\"\r\  
    \n  }\r\
    \n\r\
    \n  :local fqdn (\$hostname . \".\" .  \$domain)\r\  
    \n  #:log info \"\$LogPrefix: FQDN for DNS is \$fqdn\"\r\  
    \n\r\
    \n    :if ([/ip dhcp-server lease get [:pick [find mac-address=\$leaseActM\
    AC and server=\$leaseServerName] 0] ]) do={\r\
    \n      # :log info message=\"\$LogPrefix: \$leaseActMAC -> \$hostname\"\r\  
    \n      :do {\r\
    \n        /ip dns static add address=\$leaseActIP name=\$fqdn ttl=\$dnsttl\
    \_comment=\$token;\r\
    \n      } on-error={:log error message=\"\$LogPrefix: Failure during dns r\  
    egistration of \$fqdn with \$leaseActIP\"}\r\  
    \n    }\r\
    \n\r\
    \n} else={\r\
    \n# DHCP lease removed\r\
    \n  /ip dns static remove [find comment=\$token];\r\
    \n} " name=dhcp-vlan1  
add address-pool=vlan10-pool interface=vlan10-Server lease-script="# DNS TTL t\  
    o set for DNS entries\r\
    \n:local dnsttl \"00:15:00\";\r\  
    \n\r\
    \n###\r\
    \n# Script entry point\r\
    \n#\r\
    \n# Expected environment variables:\r\
    \n# leaseBound         1 = lease bound, 0 = lease removed\r\
    \n# leaseServerName    Name of DHCP server\r\
    \n# leaseActIP         IP address of DHCP client\r\
    \n# leaseActMAC        MAC address of DHCP client\r\
    \n###\r\
    \n\r\
    \n:local scriptName \"dhcp2dns\"\r\  
    \n:do {\r\
    \n  :local scriptObj [:parse [/system script get \$scriptName source]]\r\
    \n  \$scriptObj leaseBound=\$leaseBound leaseServerName=\$leaseServerName \
    leaseActIP=\$leaseActIP leaseActMAC=\$leaseActMAC\r\
    \n} on-error={ :log warning \"DHCP server '\$leaseServerName' lease script\  
    \_error\" };\r\  
    \n\r\
    \n# \"a.b.c.d\" -> \"a-b-c-d\" for IP addresses used as replacement for mi\  
    ssing host names\r\
    \n:local ip2Host do=\\\r\
    \n{\r\
    \n  :local outStr\r\
    \n  :for i from=0 to=([:len \$inStr] - 1) do=\\\r\
    \n  {\r\
    \n    :local tmp [:pick \$inStr \$i];\r\
    \n    :if (\$tmp =\".\") do=\\\r\  
    \n    {\r\
    \n      :set tmp \"-\"\r\  
    \n    }\r\
    \n    :set outStr (\$outStr . \$tmp)\r\
    \n  }\r\
    \n  :return \$outStr\r\
    \n}\r\
    \n\r\
    \n:local mapHostName do={\r\
    \n# param: name\r\
    \n# max length = 63\r\
    \n# allowed chars a-z,0-9,-\r\
    \n  :local allowedChars \"abcdefghijklmnopqrstuvwxyz0123456789-\";\r\  
    \n  :local numChars [:len \$name];\r\
    \n  :if (\$numChars > 63) do={:set numChars 63};\r\
    \n  :local result \"\";\r\  
    \n\r\
    \n  :for i from=0 to=(\$numChars - 1) do={\r\
    \n    :local char [:pick \$name \$i];\r\
    \n    :if ([:find \$allowedChars \$char] < 0) do={:set char \"-\"};\r\  
    \n    :set result (\$result . \$char);\r\
    \n  }\r\
    \n  :return \$result;\r\
    \n}\r\
    \n\r\
    \n:local lowerCase do={\r\
    \n# param: entry\r\
    \n  :local lower \"abcdefghijklmnopqrstuvwxyz\";\r\  
    \n  :local upper \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\r\  
    \n  :local result \"\";\r\  
    \n  :for i from=0 to=([:len \$entry] - 1) do={\r\
    \n    :local char [:pick \$entry \$i];\r\
    \n    :local pos [:find \$upper \$char];\r\
    \n    :if (\$pos > -1) do={:set char [:pick \$lower \$pos]};\r\
    \n    :set result (\$result . \$char);\r\
    \n  }\r\
    \n  :return \$result;\r\
    \n}\r\
    \n\r\
    \n:local token \"\$leaseServerName-\$leaseActMAC\";\r\  
    \n:local LogPrefix \"DHCP2DNS (\$leaseServerName)\"\r\  
    \n\r\
    \n:if ( [ :len \$leaseActIP ] <= 0 ) do=\\\r\
    \n{\r\
    \n  :log error \"\$LogPrefix: empty lease address\"\r\  
    \n  :error \"empty lease address\"\r\  
    \n}\r\
    \n\r\
    \n:if ( \$leaseBound = 1 ) do=\\\r\
    \n{\r\
    \n  # new DHCP lease added\r\
    \n  /ip dhcp-server\r\
    \n  #:local dnsttl [ get [ find name=\$leaseServerName ] lease-time ]\r\
    \n  network\r\
    \n  :local domain [ get [ find \$leaseActIP in address ] domain ]\r\
    \n  #:log info \"\$LogPrefix: DNS domain is \$domain\"\r\  
    \n\r\
    \n  :local hostname [/ip dhcp-server lease get [:pick [find mac-address=\$\
    leaseActMAC and server=\$leaseServerName] 0] value-name=host-name]\r\
    \n  #:log info \"\$LogPrefix: DHCP hostname is \$hostname\"\r\  
    \n\r\
    \n #Hostname cleanup\r\
    \n  :if ( [ :len \$hostname ] <= 0 ) do=\\\r\
    \n  {\r\
    \n    :set hostname [ \$ip2Host inStr=\$leaseActIP ]\r\
    \n    :log info \"\$LogPrefix: Empty hostname for '\$leaseActIP', using ge\  
    nerated host name '\$hostname'\"\r\  
    \n  }\r\
    \n  :set hostname [\$lowerCase entry=\$hostname]\r\
    \n  :set hostname [\$mapHostName name=\$hostname]\r\
    \n  #:log info \"\$LogPrefix: Clean hostname for FQDN is \$hostname\";\r\  
    \n\r\
    \n  :if ( [ :len \$domain ] <= 0 ) do=\\\r\
    \n  {\r\
    \n    :log warning \"\$LogPrefix: Empty domainname for '\$leaseActIP', can\  
    not create static DNS name\"\r\  
    \n    :error \"Empty domainname for '\$leaseActIP'\"\r\  
    \n  }\r\
    \n\r\
    \n  :local fqdn (\$hostname . \".\" .  \$domain)\r\  
    \n  #:log info \"\$LogPrefix: FQDN for DNS is \$fqdn\"\r\  
    \n\r\
    \n    :if ([/ip dhcp-server lease get [:pick [find mac-address=\$leaseActM\
    AC and server=\$leaseServerName] 0] ]) do={\r\
    \n      # :log info message=\"\$LogPrefix: \$leaseActMAC -> \$hostname\"\r\  
    \n      :do {\r\
    \n        /ip dns static add address=\$leaseActIP name=\$fqdn ttl=\$dnsttl\
    \_comment=\$token;\r\
    \n      } on-error={:log error message=\"\$LogPrefix: Failure during dns r\  
    egistration of \$fqdn with \$leaseActIP\"}\r\  
    \n    }\r\
    \n\r\
    \n} else={\r\
    \n# DHCP lease removed\r\
    \n  /ip dns static remove [find comment=\$token];\r\
    \n} " name=dhcp-vlan10  
add address-pool=vlan20-pool interface=vlan20-Private lease-script="# DNS TTL \  
    to set for DNS entries\r\
    \n:local dnsttl \"00:15:00\";\r\  
    \n\r\
    \n###\r\
    \n# Script entry point\r\
    \n#\r\
    \n# Expected environment variables:\r\
    \n# leaseBound         1 = lease bound, 0 = lease removed\r\
    \n# leaseServerName    Name of DHCP server\r\
    \n# leaseActIP         IP address of DHCP client\r\
    \n# leaseActMAC        MAC address of DHCP client\r\
    \n###\r\
    \n\r\
    \n:local scriptName \"dhcp2dns\"\r\  
    \n:do {\r\
    \n  :local scriptObj [:parse [/system script get \$scriptName source]]\r\
    \n  \$scriptObj leaseBound=\$leaseBound leaseServerName=\$leaseServerName \
    leaseActIP=\$leaseActIP leaseActMAC=\$leaseActMAC\r\
    \n} on-error={ :log warning \"DHCP server '\$leaseServerName' lease script\  
    \_error\" };\r\  
    \n\r\
    \n# \"a.b.c.d\" -> \"a-b-c-d\" for IP addresses used as replacement for mi\  
    ssing host names\r\
    \n:local ip2Host do=\\\r\
    \n{\r\
    \n  :local outStr\r\
    \n  :for i from=0 to=([:len \$inStr] - 1) do=\\\r\
    \n  {\r\
    \n    :local tmp [:pick \$inStr \$i];\r\
    \n    :if (\$tmp =\".\") do=\\\r\  
    \n    {\r\
    \n      :set tmp \"-\"\r\  
    \n    }\r\
    \n    :set outStr (\$outStr . \$tmp)\r\
    \n  }\r\
    \n  :return \$outStr\r\
    \n}\r\
    \n\r\
    \n:local mapHostName do={\r\
    \n# param: name\r\
    \n# max length = 63\r\
    \n# allowed chars a-z,0-9,-\r\
    \n  :local allowedChars \"abcdefghijklmnopqrstuvwxyz0123456789-\";\r\  
    \n  :local numChars [:len \$name];\r\
    \n  :if (\$numChars > 63) do={:set numChars 63};\r\
    \n  :local result \"\";\r\  
    \n\r\
    \n  :for i from=0 to=(\$numChars - 1) do={\r\
    \n    :local char [:pick \$name \$i];\r\
    \n    :if ([:find \$allowedChars \$char] < 0) do={:set char \"-\"};\r\  
    \n    :set result (\$result . \$char);\r\
    \n  }\r\
    \n  :return \$result;\r\
    \n}\r\
    \n\r\
    \n:local lowerCase do={\r\
    \n# param: entry\r\
    \n  :local lower \"abcdefghijklmnopqrstuvwxyz\";\r\  
    \n  :local upper \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\r\  
    \n  :local result \"\";\r\  
    \n  :for i from=0 to=([:len \$entry] - 1) do={\r\
    \n    :local char [:pick \$entry \$i];\r\
    \n    :local pos [:find \$upper \$char];\r\
    \n    :if (\$pos > -1) do={:set char [:pick \$lower \$pos]};\r\
    \n    :set result (\$result . \$char);\r\
    \n  }\r\
    \n  :return \$result;\r\
    \n}\r\
    \n\r\
    \n:local token \"\$leaseServerName-\$leaseActMAC\";\r\  
    \n:local LogPrefix \"DHCP2DNS (\$leaseServerName)\"\r\  
    \n\r\
    \n:if ( [ :len \$leaseActIP ] <= 0 ) do=\\\r\
    \n{\r\
    \n  :log error \"\$LogPrefix: empty lease address\"\r\  
    \n  :error \"empty lease address\"\r\  
    \n}\r\
    \n\r\
    \n:if ( \$leaseBound = 1 ) do=\\\r\
    \n{\r\
    \n  # new DHCP lease added\r\
    \n  /ip dhcp-server\r\
    \n  #:local dnsttl [ get [ find name=\$leaseServerName ] lease-time ]\r\
    \n  network\r\
    \n  :local domain [ get [ find \$leaseActIP in address ] domain ]\r\
    \n  #:log info \"\$LogPrefix: DNS domain is \$domain\"\r\  
    \n\r\
    \n  :local hostname [/ip dhcp-server lease get [:pick [find mac-address=\$\
    leaseActMAC and server=\$leaseServerName] 0] value-name=host-name]\r\
    \n  #:log info \"\$LogPrefix: DHCP hostname is \$hostname\"\r\  
    \n\r\
    \n #Hostname cleanup\r\
    \n  :if ( [ :len \$hostname ] <= 0 ) do=\\\r\
    \n  {\r\
    \n    :set hostname [ \$ip2Host inStr=\$leaseActIP ]\r\
    \n    :log info \"\$LogPrefix: Empty hostname for '\$leaseActIP', using ge\  
    nerated host name '\$hostname'\"\r\  
    \n  }\r\
    \n  :set hostname [\$lowerCase entry=\$hostname]\r\
    \n  :set hostname [\$mapHostName name=\$hostname]\r\
    \n  #:log info \"\$LogPrefix: Clean hostname for FQDN is \$hostname\";\r\  
    \n\r\
    \n  :if ( [ :len \$domain ] <= 0 ) do=\\\r\
    \n  {\r\
    \n    :log warning \"\$LogPrefix: Empty domainname for '\$leaseActIP', can\  
    not create static DNS name\"\r\  
    \n    :error \"Empty domainname for '\$leaseActIP'\"\r\  
    \n  }\r\
    \n\r\
    \n  :local fqdn (\$hostname . \".\" .  \$domain)\r\  
    \n  #:log info \"\$LogPrefix: FQDN for DNS is \$fqdn\"\r\  
    \n\r\
    \n    :if ([/ip dhcp-server lease get [:pick [find mac-address=\$leaseActM\
    AC and server=\$leaseServerName] 0] ]) do={\r\
    \n      # :log info message=\"\$LogPrefix: \$leaseActMAC -> \$hostname\"\r\  
    \n      :do {\r\
    \n        /ip dns static add address=\$leaseActIP name=\$fqdn ttl=\$dnsttl\
    \_comment=\$token;\r\
    \n      } on-error={:log error message=\"\$LogPrefix: Failure during dns r\  
    egistration of \$fqdn with \$leaseActIP\"}\r\  
    \n    }\r\
    \n\r\
    \n} else={\r\
    \n# DHCP lease removed\r\
    \n  /ip dns static remove [find comment=\$token];\r\
    \n} " name=dhcp-vlan20  
add address-pool=vlan30-pool interface=vlan30-Guest lease-script="# DNS TTL to\  
    \_set for DNS entries\r\
    \n:local dnsttl \"00:15:00\";\r\  
    \n\r\
    \n###\r\
    \n# Script entry point\r\
    \n#\r\
    \n# Expected environment variables:\r\
    \n# leaseBound         1 = lease bound, 0 = lease removed\r\
    \n# leaseServerName    Name of DHCP server\r\
    \n# leaseActIP         IP address of DHCP client\r\
    \n# leaseActMAC        MAC address of DHCP client\r\
    \n###\r\
    \n\r\
    \n:local scriptName \"dhcp2dns\"\r\  
    \n:do {\r\
    \n  :local scriptObj [:parse [/system script get \$scriptName source]]\r\
    \n  \$scriptObj leaseBound=\$leaseBound leaseServerName=\$leaseServerName \
    leaseActIP=\$leaseActIP leaseActMAC=\$leaseActMAC\r\
    \n} on-error={ :log warning \"DHCP server '\$leaseServerName' lease script\  
    \_error\" };\r\  
    \n\r\
    \n# \"a.b.c.d\" -> \"a-b-c-d\" for IP addresses used as replacement for mi\  
    ssing host names\r\
    \n:local ip2Host do=\\\r\
    \n{\r\
    \n  :local outStr\r\
    \n  :for i from=0 to=([:len \$inStr] - 1) do=\\\r\
    \n  {\r\
    \n    :local tmp [:pick \$inStr \$i];\r\
    \n    :if (\$tmp =\".\") do=\\\r\  
    \n    {\r\
    \n      :set tmp \"-\"\r\  
    \n    }\r\
    \n    :set outStr (\$outStr . \$tmp)\r\
    \n  }\r\
    \n  :return \$outStr\r\
    \n}\r\
    \n\r\
    \n:local mapHostName do={\r\
    \n# param: name\r\
    \n# max length = 63\r\
    \n# allowed chars a-z,0-9,-\r\
    \n  :local allowedChars \"abcdefghijklmnopqrstuvwxyz0123456789-\";\r\  
    \n  :local numChars [:len \$name];\r\
    \n  :if (\$numChars > 63) do={:set numChars 63};\r\
    \n  :local result \"\";\r\  
    \n\r\
    \n  :for i from=0 to=(\$numChars - 1) do={\r\
    \n    :local char [:pick \$name \$i];\r\
    \n    :if ([:find \$allowedChars \$char] < 0) do={:set char \"-\"};\r\  
    \n    :set result (\$result . \$char);\r\
    \n  }\r\
    \n  :return \$result;\r\
    \n}\r\
    \n\r\
    \n:local lowerCase do={\r\
    \n# param: entry\r\
    \n  :local lower \"abcdefghijklmnopqrstuvwxyz\";\r\  
    \n  :local upper \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\r\  
    \n  :local result \"\";\r\  
    \n  :for i from=0 to=([:len \$entry] - 1) do={\r\
    \n    :local char [:pick \$entry \$i];\r\
    \n    :local pos [:find \$upper \$char];\r\
    \n    :if (\$pos > -1) do={:set char [:pick \$lower \$pos]};\r\
    \n    :set result (\$result . \$char);\r\
    \n  }\r\
    \n  :return \$result;\r\
    \n}\r\
    \n\r\
    \n:local token \"\$leaseServerName-\$leaseActMAC\";\r\  
    \n:local LogPrefix \"DHCP2DNS (\$leaseServerName)\"\r\  
    \n\r\
    \n:if ( [ :len \$leaseActIP ] <= 0 ) do=\\\r\
    \n{\r\
    \n  :log error \"\$LogPrefix: empty lease address\"\r\  
    \n  :error \"empty lease address\"\r\  
    \n}\r\
    \n\r\
    \n:if ( \$leaseBound = 1 ) do=\\\r\
    \n{\r\
    \n  # new DHCP lease added\r\
    \n  /ip dhcp-server\r\
    \n  #:local dnsttl [ get [ find name=\$leaseServerName ] lease-time ]\r\
    \n  network\r\
    \n  :local domain [ get [ find \$leaseActIP in address ] domain ]\r\
    \n  #:log info \"\$LogPrefix: DNS domain is \$domain\"\r\  
    \n\r\
    \n  :local hostname [/ip dhcp-server lease get [:pick [find mac-address=\$\
    leaseActMAC and server=\$leaseServerName] 0] value-name=host-name]\r\
    \n  #:log info \"\$LogPrefix: DHCP hostname is \$hostname\"\r\  
    \n\r\
    \n #Hostname cleanup\r\
    \n  :if ( [ :len \$hostname ] <= 0 ) do=\\\r\
    \n  {\r\
    \n    :set hostname [ \$ip2Host inStr=\$leaseActIP ]\r\
    \n    :log info \"\$LogPrefix: Empty hostname for '\$leaseActIP', using ge\  
    nerated host name '\$hostname'\"\r\  
    \n  }\r\
    \n  :set hostname [\$lowerCase entry=\$hostname]\r\
    \n  :set hostname [\$mapHostName name=\$hostname]\r\
    \n  #:log info \"\$LogPrefix: Clean hostname for FQDN is \$hostname\";\r\  
    \n\r\
    \n  :if ( [ :len \$domain ] <= 0 ) do=\\\r\
    \n  {\r\
    \n    :log warning \"\$LogPrefix: Empty domainname for '\$leaseActIP', can\  
    not create static DNS name\"\r\  
    \n    :error \"Empty domainname for '\$leaseActIP'\"\r\  
    \n  }\r\
    \n\r\
    \n  :local fqdn (\$hostname . \".\" .  \$domain)\r\  
    \n  #:log info \"\$LogPrefix: FQDN for DNS is \$fqdn\"\r\  
    \n\r\
    \n    :if ([/ip dhcp-server lease get [:pick [find mac-address=\$leaseActM\
    AC and server=\$leaseServerName] 0] ]) do={\r\
    \n      # :log info message=\"\$LogPrefix: \$leaseActMAC -> \$hostname\"\r\  
    \n      :do {\r\
    \n        /ip dns static add address=\$leaseActIP name=\$fqdn ttl=\$dnsttl\
    \_comment=\$token;\r\
    \n      } on-error={:log error message=\"\$LogPrefix: Failure during dns r\  
    egistration of \$fqdn with \$leaseActIP\"}\r\  
    \n    }\r\
    \n\r\
    \n} else={\r\
    \n# DHCP lease removed\r\
    \n  /ip dns static remove [find comment=\$token];\r\
    \n} " name=dhcp-vlan30  
add address-pool=vlan40-pool interface=vlan40-IoT lease-script="# DNS TTL to s\  
    et for DNS entries\r\
    \n:local dnsttl \"00:15:00\";\r\  
    \n\r\
    \n###\r\
    \n# Script entry point\r\
    \n#\r\
    \n# Expected environment variables:\r\
    \n# leaseBound         1 = lease bound, 0 = lease removed\r\
    \n# leaseServerName    Name of DHCP server\r\
    \n# leaseActIP         IP address of DHCP client\r\
    \n# leaseActMAC        MAC address of DHCP client\r\
    \n###\r\
    \n\r\
    \n:local scriptName \"dhcp2dns\"\r\  
    \n:do {\r\
    \n  :local scriptObj [:parse [/system script get \$scriptName source]]\r\
    \n  \$scriptObj leaseBound=\$leaseBound leaseServerName=\$leaseServerName \
    leaseActIP=\$leaseActIP leaseActMAC=\$leaseActMAC\r\
    \n} on-error={ :log warning \"DHCP server '\$leaseServerName' lease script\  
    \_error\" };\r\  
    \n\r\
    \n# \"a.b.c.d\" -> \"a-b-c-d\" for IP addresses used as replacement for mi\  
    ssing host names\r\
    \n:local ip2Host do=\\\r\
    \n{\r\
    \n  :local outStr\r\
    \n  :for i from=0 to=([:len \$inStr] - 1) do=\\\r\
    \n  {\r\
    \n    :local tmp [:pick \$inStr \$i];\r\
    \n    :if (\$tmp =\".\") do=\\\r\  
    \n    {\r\
    \n      :set tmp \"-\"\r\  
    \n    }\r\
    \n    :set outStr (\$outStr . \$tmp)\r\
    \n  }\r\
    \n  :return \$outStr\r\
    \n}\r\
    \n\r\
    \n:local mapHostName do={\r\
    \n# param: name\r\
    \n# max length = 63\r\
    \n# allowed chars a-z,0-9,-\r\
    \n  :local allowedChars \"abcdefghijklmnopqrstuvwxyz0123456789-\";\r\  
    \n  :local numChars [:len \$name];\r\
    \n  :if (\$numChars > 63) do={:set numChars 63};\r\
    \n  :local result \"\";\r\  
    \n\r\
    \n  :for i from=0 to=(\$numChars - 1) do={\r\
    \n    :local char [:pick \$name \$i];\r\
    \n    :if ([:find \$allowedChars \$char] < 0) do={:set char \"-\"};\r\  
    \n    :set result (\$result . \$char);\r\
    \n  }\r\
    \n  :return \$result;\r\
    \n}\r\
    \n\r\
    \n:local lowerCase do={\r\
    \n# param: entry\r\
    \n  :local lower \"abcdefghijklmnopqrstuvwxyz\";\r\  
    \n  :local upper \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\r\  
    \n  :local result \"\";\r\  
    \n  :for i from=0 to=([:len \$entry] - 1) do={\r\
    \n    :local char [:pick \$entry \$i];\r\
    \n    :local pos [:find \$upper \$char];\r\
    \n    :if (\$pos > -1) do={:set char [:pick \$lower \$pos]};\r\
    \n    :set result (\$result . \$char);\r\
    \n  }\r\
    \n  :return \$result;\r\
    \n}\r\
    \n\r\
    \n:local token \"\$leaseServerName-\$leaseActMAC\";\r\  
    \n:local LogPrefix \"DHCP2DNS (\$leaseServerName)\"\r\  
    \n\r\
    \n:if ( [ :len \$leaseActIP ] <= 0 ) do=\\\r\
    \n{\r\
    \n  :log error \"\$LogPrefix: empty lease address\"\r\  
    \n  :error \"empty lease address\"\r\  
    \n}\r\
    \n\r\
    \n:if ( \$leaseBound = 1 ) do=\\\r\
    \n{\r\
    \n  # new DHCP lease added\r\
    \n  /ip dhcp-server\r\
    \n  #:local dnsttl [ get [ find name=\$leaseServerName ] lease-time ]\r\
    \n  network\r\
    \n  :local domain [ get [ find \$leaseActIP in address ] domain ]\r\
    \n  #:log info \"\$LogPrefix: DNS domain is \$domain\"\r\  
    \n\r\
    \n  :local hostname [/ip dhcp-server lease get [:pick [find mac-address=\$\
    leaseActMAC and server=\$leaseServerName] 0] value-name=host-name]\r\
    \n  #:log info \"\$LogPrefix: DHCP hostname is \$hostname\"\r\  
    \n\r\
    \n #Hostname cleanup\r\
    \n  :if ( [ :len \$hostname ] <= 0 ) do=\\\r\
    \n  {\r\
    \n    :set hostname [ \$ip2Host inStr=\$leaseActIP ]\r\
    \n    :log info \"\$LogPrefix: Empty hostname for '\$leaseActIP', using ge\  
    nerated host name '\$hostname'\"\r\  
    \n  }\r\
    \n  :set hostname [\$lowerCase entry=\$hostname]\r\
    \n  :set hostname [\$mapHostName name=\$hostname]\r\
    \n  #:log info \"\$LogPrefix: Clean hostname for FQDN is \$hostname\";\r\  
    \n\r\
    \n  :if ( [ :len \$domain ] <= 0 ) do=\\\r\
    \n  {\r\
    \n    :log warning \"\$LogPrefix: Empty domainname for '\$leaseActIP', can\  
    not create static DNS name\"\r\  
    \n    :error \"Empty domainname for '\$leaseActIP'\"\r\  
    \n  }\r\
    \n\r\
    \n  :local fqdn (\$hostname . \".\" .  \$domain)\r\  
    \n  #:log info \"\$LogPrefix: FQDN for DNS is \$fqdn\"\r\  
    \n\r\
    \n    :if ([/ip dhcp-server lease get [:pick [find mac-address=\$leaseActM\
    AC and server=\$leaseServerName] 0] ]) do={\r\
    \n      # :log info message=\"\$LogPrefix: \$leaseActMAC -> \$hostname\"\r\  
    \n      :do {\r\
    \n        /ip dns static add address=\$leaseActIP name=\$fqdn ttl=\$dnsttl\
    \_comment=\$token;\r\
    \n      } on-error={:log error message=\"\$LogPrefix: Failure during dns r\  
    egistration of \$fqdn with \$leaseActIP\"}\r\  
    \n    }\r\
    \n\r\
    \n} else={\r\
    \n# DHCP lease removed\r\
    \n  /ip dns static remove [find comment=\$token];\r\
    \n} " name=dhcp-vlan40  
/port
set 0 name=serial0
/user-manager user
add name=ladmin
add attributes=Tunnel-Medium-Type:6,Tunnel-Type:13,Tunnel-Private-Group-ID:20 \
    name=D2:67:63:73:61:12
add attributes=Tunnel-Medium-Type:6,Tunnel-Type:13,Tunnel-Private-Group-ID:20 \
    name=50:B1:27:81:CC:05
/caps-man aaa
set called-format=mac mac-mode=as-username-and-password
/caps-man access-list
add action=query-radius allow-signal-out-of-range=10s disabled=no \
    mac-address=00:00:00:00:00:00 ssid-regexp=""  
/caps-man manager
set ca-certificate=auto certificate=auto enabled=yes
/interface bridge port
add bridge=bridge ingress-filtering=no interface=34-CapsMan-01 \
    internal-path-cost=10 path-cost=10
add bridge=bridge ingress-filtering=no interface=12-Ralf-Office-02
add bridge=bridge ingress-filtering=no interface=16-Dining-02
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged \
    ingress-filtering=no interface=17-Living-01 pvid=20
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged \
    ingress-filtering=no interface=18-Living-02 pvid=20
add bridge=bridge ingress-filtering=no interface=24-Garden-House-02
/ip firewall connection tracking
set udp-timeout=10s
/interface bridge vlan
# vlan1 not a bridge port
add bridge=bridge tagged=bridge,vlan1 untagged=\
    12-Ralf-Office-02,16-Dining-02,34-CapsMan-01,24-Garden-House-02 vlan-ids=\
    1
# vlan10-Server not a bridge port
add bridge=bridge tagged="bridge,vlan10-Server,12-Ralf-Office-02,16-Dining-02,\  
    34-CapsMan-01,24-Garden-House-02" vlan-ids=10  
# vlan20-Private not a bridge port
add bridge=bridge tagged="bridge,vlan20-Private,12-Ralf-Office-02,16-Dining-02\  
    ,34-CapsMan-01,24-Garden-House-02" untagged=17-Living-01,18-Living-02 \  
    vlan-ids=20
# vlan30-Guest not a bridge port
add bridge=bridge tagged="bridge,vlan30-Guest,12-Ralf-Office-02,16-Dining-02,3\  
    4-CapsMan-01,24-Garden-House-02" vlan-ids=30  
# vlan40-IoT not a bridge port
add bridge=bridge tagged="bridge,vlan40-IoT,12-Ralf-Office-02,16-Dining-02,34-\  
    CapsMan-01,24-Garden-House-02" vlan-ids=40  
/interface list member
add interface=bridge list=LAN
add interface=vlan1 list=LAN
add interface=vlan10-Server list=LAN
add interface=vlan20-Private list=LAN
add interface=vlan30-Guest list=LAN
add interface=vlan40-IoT list=LAN
add interface=48-Uplink-Opnsens list=LAN
add interface=12-Ralf-Office-02 list=LAN
add interface=16-Dining-02 list=LAN
add interface=24-Garden-House-02 list=LAN
add interface=34-CapsMan-01 list=LAN
/ip address
add address=192.168.1.1/24 interface=vlan1 network=192.168.1.0
add address=192.168.10.1/24 interface=vlan10-Server network=192.168.10.0
add address=192.168.20.1/24 interface=vlan20-Private network=192.168.20.0
add address=192.168.30.1/24 interface=vlan30-Guest network=192.168.30.0
add address=192.168.40.1/24 interface=vlan40-IoT network=192.168.40.0
add address=192.168.0.11/24 interface=ether49 network=192.168.0.0
add address=10.99.1.1/24 interface=48-Uplink-Opnsens network=10.99.1.0
/ip dhcp-server network
add address=192.168.1.0/24 dns-server=192.168.1.1 gateway=192.168.1.1 \
    netmask=24 ntp-server=10.99.1.254
add address=192.168.10.0/24 dns-server=192.168.10.1 gateway=192.168.10.1 \
    netmask=24 ntp-server=10.99.1.254
add address=192.168.20.0/24 dns-server=192.168.20.1 gateway=192.168.20.1 \
    netmask=24 ntp-server=10.99.1.254
add address=192.168.30.0/24 dns-server=192.168.30.1 gateway=192.168.30.1 \
    netmask=24 ntp-server=10.99.1.254
add address=192.168.40.0/24 dns-server=192.168.40.1 gateway=192.168.40.1 \
    netmask=24 ntp-server=10.99.1.254
/ip dns
set allow-remote-requests=yes servers=10.99.1.254,9.9.9.9,1.1.1.1
/ip hotspot profile
set [ find default=yes ] html-directory=hotspot
/ip route
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=10.99.1.254 \
    pref-src="" routing-table=main scope=30 suppress-hw-offload=no \  
    target-scope=10
/radius
add address=127.0.0.1 service=wireless,dot1x src-address=127.0.0.1
/radius incoming
set accept=yes
/system clock
set time-zone-name=Europe/Berlin
/system identity
set name=DC-RACK
/system note
set show-at-login=no
/system routerboard settings
set boot-os=router-os
/user-manager
set certificate=CAPsMAN-DC2C6EB2684C enabled=yes
/user-manager router
add address=127.0.0.1 name=Radius-Router

Content-ID: 32847450851

Url: https://administrator.de/contentid/32847450851

Ausgedruckt am: 23.11.2024 um 07:11 Uhr

Pjordorf
Pjordorf 19.08.2024 um 23:08:58 Uhr
Goto Top
Hallo,

Zitat von @PowerOx:
Zum einen ist wohl das RADIUS/AUTH-Setup nicht korrekt,
Auch das und vieles mehr zeigt dir ein Kabelhai. Wer will wohin, bekommt welche Antwort usw. Dann siehst du auch wer wo falsch abbiegt oder in Sackgassen oder Einbahnstrassen gerät.

Gruss,
Peter
aqui
aqui 20.08.2024 aktualisiert um 08:04:02 Uhr
Goto Top
Zum einen ist wohl das RADIUS/AUTH-Setup nicht korrekt
Wäre es dann nicht für alle hilfreich gewesen dann auch einmal deinen Radius Setup als Winbox Screenshot zu posten? Wir müssen jetzt sogar raten ob du den Mikrotik Radius verwendest oder z.B. den auf der OPNsense. face-sad
Zudem gibt es mit dem NTRadPing Tool ein Testtool für Windows mit dem du den Radius Server auf korrekte Funktion überprüfen kannst. (Siehe dazu auch hier)
Hilfreich wäre auch das Security Profil des WLANs um zu checken ob du hier überhaupt WPA2-EAP (Radius Auth.) aktiviert hast.
Dieser Thread zeigt dir im Detail das korrekte Setup des Mikrotik Radius Servers (sofern du den verwendest?!) das du mit deinem vergleichen ob du das richtig gemacht hast.
14135584197
14135584197 20.08.2024 aktualisiert um 09:15:27 Uhr
Goto Top
Zitat von @aqui:

Wir müssen jetzt sogar raten ob du den Mikrotik Radius verwendest oder z.B. den auf der OPNsense. face-sad

Einfach die Config mal lesen dann musst du nicht raten !
/radius add address=127.0.0.1 service=wireless,dot1x src-address=127.0.0.1

Im Setup wurde auch das Tagging der VLANs auf den Ethernet interfaces in der Bridge vollkommen vergessen, der DataPath ist fehlerhaft, die CAPsMAN Security steht auf WPA2-PSK statt EAP und es fehlt das EAP-Passthru wenn man WPA Enterprise möchte und die auch die RadiusAttribute für das Mikrotik WLAN stimmen nicht weil fürs LAN und nicht fürs Wireless gedacht, "Setzen Sechs!" würde Meister Lempel jetzt wohl sagen, da ist so ziemlich alles falsch 🫠.

Gruß
aqui
aqui 20.08.2024 aktualisiert um 09:05:14 Uhr
Goto Top
Einfach die Config mal lesen dann musst du nicht raten !
Ooops! Ist noch zu früh am Morgen! 😉
Wobei man aber fairerweise sagen muss das der 127.0.0.1 Eintrag nur dann erforderlich ist wenn der TO auch auf seinem CRS354-48P lokal eine 802.1x oder Mac Port Authentisierung machen will (Kupferports) denn das ist dann die Radius Server IP. Zusätzlich müssen in den Router Clients des UM auch noch die Management IPs der 4 cAP XL definiert sein ansonsten verweigert der Radius auf dem CRS354-48P deren Anfragen. (Siehe o.a. Setup Tutorial)
Zum Rest des chaotischen Setups hast du ja schon alles gesagt.
PowerOx
PowerOx 20.08.2024 um 10:03:02 Uhr
Goto Top
Guten Morgen Schön ...
danke für den Warm-UP hier und die Quick-Response - macht Spaß
ich hatte halt vorher ein standard V-LAN-Setup ohne RADIUS, das lief soweit, aber jetzt habe ich wohl eine ordentliche Lernkurve um von der 6 runter zu kommen.

@all - ja, es sollte der interne RADIUS genutzt werden, dass dieser ein Zertifikat braucht war mir so aus den verlinkten Beiträgen nicht ersichtlich - ist jetzt drin
@14135584197 >> WPA2-PSK statt EAP - ich habe leider ohne weiteres KnowHow die Anleitung umgesetzt, und der Screenshot zeigt halt die PSK-Variante,
den Rest werde ich dann mal in der Mittagspause angehen und schauen wie weit ich komme ...

Zum DataPath - wie sollte der denn aussehen, wenn er nicht auf die Bridge zeigen soll?

Zum RADIUS - wenn ich sowohl Wireless als auch LAN abfrühstücken will und Euch jetzt richtig verstehe, dann muss es zwei getrennte RADIUS-Instanzen geben, mit unterschiedlichen Attributen für die beiden Varianten - richtig?

Zum Tagging der V-LANs im Bridge-Setup, das sieht aktuell so aus - oder welchen Teil habe ich da vergessen
screenshot 2024-08-20 at 10.01.21

happy Tuesday
aqui
aqui 20.08.2024 aktualisiert um 11:02:20 Uhr
Goto Top
dass dieser ein Zertifikat braucht war mir so aus den verlinkten Beiträgen nicht ersichtlich
(Zitat im Tutorial): "Das Tutorial beschreibt aber dennoch eine FreeRadius Installation um ein Design mit externem Radius Server aufzuzeigen.")
Das Tutorial also in aller Ruhe genau lesen! Es geht deshalb von einem externen Radius Server (NPS, Freeradius etc.) aus.
Wie es mit dem Mikrotik onboard Radius Server (User Manager) arbeitet wird im Verlaufe des Tutorials beschrieben bzw. in den weiterführenden Links". face-wink
wenn ich sowohl Wireless als auch LAN abfrühstücken will und Euch jetzt richtig verstehe, dann muss es zwei getrennte RADIUS-Instanzen geben
Nein, natürlich nicht. Das wäre ja auch technischer Blödsinn! Der Radius Server ist ja genau DIE zentrale Instanz mit der man eine zentrale Benutzerverwaltung im Netzwerk umsetzt. Vergiss den Unsinn also... face-sad
Zum Tagging der V-LANs im Bridge-Setup, das sieht aktuell so aus
Das da etwas Rotes zu sehen ist zeugt eher von gravierenden Setup Fehlern in der VLAN Bridge! face-sad
Für die Details dazu siehe auch Mikrotik VLAN Tutorial.
14135584197
14135584197 20.08.2024 aktualisiert um 12:30:22 Uhr
Goto Top
Zitat von @PowerOx:
Zum DataPath - wie sollte der denn aussehen, wenn er nicht auf die Bridge zeigen soll?
/caps-man datapath
add client-to-client-forwarding=yes local-forwarding=yes name=datapath1 vlan-mode=use-tag
Den VLAN-Tag bekommt der dann vom Radius und wird dem User zugewiesen.
Zum RADIUS - wenn ich sowohl Wireless als auch LAN abfrühstücken will und Euch jetzt richtig verstehe, dann muss es zwei getrennte RADIUS-Instanzen geben, mit unterschiedlichen Attributen für die beiden Varianten - richtig?
Nein, einfach beide Attribute im User angeben, der Mikrotik zieht sich dann die passenden.
/user-manager user add name=ladmin add attributes=Tunnel-Medium-Type:6,Tunnel-Type:13,Tunnel-Private-Group-ID:20,Mikrotik-Wireless-VLANID:20,Mikrotik-Wireless-VLANIDtype:0 name=D2:67:63:73:61:12
https://help.mikrotik.com/docs/display/ROS/User+Manager#UserManager-Attr ...
Zum Tagging der V-LANs im Bridge-Setup, das sieht aktuell so aus - oder welchen Teil habe ich da vergessen
screenshot 2024-08-20 at 10.01.21
Die getaggten "VLAN-Interfaces" selbst aus dem Tagging raus nehmen, die gehören da nicht rein. Steht ja eigentlich auch schon rot in der Fehlermeldung face-smile. das ist übrigens im Tutorial auch falsch.

Und das dauernde Wiederholen der DHCP-Skripte ist auch vollkommen überflüssig. Die legt man einmal an und verweist dann im DHCP-Server auf das Skript.
Der TO hier hat den selben Mist gemacht, wieso machen das alle nach, arghhh :D?
14135584197
14135584197 20.08.2024 aktualisiert um 12:44:47 Uhr
Goto Top
Übrigens ist im Tutorial von @aqui auch noch ein Fehler den der TO leider nachgemacht hat, die VLAN-Interfaces selbst gehören nicht in die getaggte Portliste, die sind sowieso immer getagged. Bei älteren RouterOS Versionen ging das noch nicht als Fehler durch war aber auch damals schon falsch, jetzt wird das korrekterweise auch angemeckert.

Hier der Screenshot aus dem Tutorial

screenshot
aqui
aqui 20.08.2024, aktualisiert am 30.10.2024 um 15:27:21 Uhr
Goto Top
das ist übrigens im Tutorial auch falsch.
Ooops, hab' ich da was übersehen?? face-sad
Hier der Abschnitt dazu
Dort steht es schon immer und prominent in ROT damit es auch der Letze wirklich liest und entsprechend umsetzt. 🧐
Keine Ahnung wo du diesen Screenshot ausgegraben hast aber aus dem aktuellen Mikrotik VLAN Tutorial kommt er de facto nicht!
14135584197
14135584197 20.08.2024 aktualisiert um 13:20:01 Uhr
Goto Top
Zitat von @aqui:

das ist übrigens im Tutorial auch falsch.
Zeigt das du es leider nicht wirklich gelesen hast!! face-sad
Doch eben wohl aber das Tut welches der TO von dir verlinkt hat face-smile.
Hier der Abschnitt dazu
Dort steht es schon immer und prominent in ROT damit es auch der Letze wirklich liest und entsprechend umsetzt. 🧐
Keine Ahnung wo du diesen Screenshot ausgegraben hast aber aus dem aktuellen Mikrotik Tutorial kommt er de facto nicht!

Der ist aber aus diesem Tutorial welches der TO ja ganz oben verlinkt und genutzt hat, ich habe auf diesem nur das rote Schildchen ergänzt, welches zeigt, welche Interfaces da nicht rein gehören ...
aqui
aqui 20.08.2024, aktualisiert am 30.10.2024 um 15:27:55 Uhr
Goto Top
Böses Faul! OK, wo du Recht hast hast du Recht! Der Fauxpas ist beim Erstellen des Tutorials passiert und bei der Korrektur übersehen worden. face-wink
Die VLAN Interfaces sind auch da jetzt rausgelöscht und richten kein Unheil mehr an! 😉
Der wichtige Scripting Hinweis wurde, dein Einverständnis vorausgesetzt, auch im VLAN Tutorial auf den o.a. Link ergänzt!
PowerOx
PowerOx 21.08.2024 um 19:08:24 Uhr
Goto Top
Guten Abend ...
leider bin ich nicht viel weiter gekommen >>
Status aktuell - Wireless komme ich jetzt nicht mehr ran, da ich nach User / Password gefragt werde, dabei sollte die Zuweisung der VLANs ja über die MAC Adresse erfolgen.
Im LAN (aktuell ohne dynamische Zuweisung - VLAN via Port) bekomme ich zwar IP/Gateway/DNS sauber zugewiesen, DNS Auflösung geht auch - aber ich komme nicht über die OPNSENSE ins Internet.

Vielleicht eins nach dem anderen - könntet Ihr mal schauen was ich vergessen habe, damit ich im LAN ohne dynamische Zuweisung ins Internet komme?

Wie wird denn dann eigentlich den LAN-Ports zugewiesen, dass die VLAN-ID vom RADIUS/USERMANAGER kommt ... ?

aktuelle Config wäre die hier
# 2024-08-21 18:56:19 by RouterOS 7.15.3
# software id = M4DD-K394
#
# model = CRS354-48P-4S+2Q+
# serial number = F3160F97580C
/caps-man channel
add band=2ghz-g/n control-channel-width=20mhz extension-channel=disabled \
    frequency=2412 name=2ghz-CH3
add band=2ghz-g/n control-channel-width=20mhz extension-channel=disabled \
    frequency=2432 name=2ghz-CH5
add band=2ghz-g/n control-channel-width=20mhz extension-channel=disabled \
    frequency=2452 name=2ghz-CH7
add band=2ghz-g/n control-channel-width=20mhz extension-channel=disabled \
    frequency=2472 name=2ghz-CH9
/interface bridge
add igmp-snooping=yes ingress-filtering=no name=bridge port-cost-mode=short \
    vlan-filtering=yes
/interface ethernet
set [ find default-name=ether1 ] name=01-Uplink-OPNSENSE
set [ find default-name=ether2 ] name=02-Kitchen-02
set [ find default-name=ether3 ] name=03-Maja-Office-01
set [ find default-name=ether4 ] name=04-Maja-Office-04
set [ find default-name=ether5 ] name=05-Aisle-01
set [ find default-name=ether6 ] name=06-Aisle-02
set [ find default-name=ether7 ] name=07-Lenn-01
set [ find default-name=ether8 ] name=08-Lenn-02
set [ find default-name=ether9 ] name=09-Tuuli-01
set [ find default-name=ether10 ] name=10-Tuuli-02
set [ find default-name=ether11 ] name=11-Ralf-Office-01
set [ find default-name=ether12 ] name=12-Ralf-Office-02
set [ find default-name=ether13 ] name=13-Master-Bedroom-01
set [ find default-name=ether14 ] name=14-Master-Bedroom-02
set [ find default-name=ether15 ] name=15-Dining-01
set [ find default-name=ether16 ] name=16-Dining-02
set [ find default-name=ether17 ] name=17-Living-01
set [ find default-name=ether18 ] name=18-Living-02
set [ find default-name=ether19 ] name=19-Front-Door
set [ find default-name=ether20 ] name=20-1stFloor-Tablet
set [ find default-name=ether21 ] name=21-Kitchen-Tablet
set [ find default-name=ether22 ] name=22-HWR-Heating
set [ find default-name=ether23 ] name=23-Garden-House-01
set [ find default-name=ether24 ] name=24-Garden-House-02
set [ find default-name=ether25 ] name=25-Garden-House-03
set [ find default-name=ether26 ] name=26-Garden-House-04
set [ find default-name=ether27 ] name=27-Garden-House-05
set [ find default-name=ether34 ] name=34-CapsMan-01
set [ find default-name=ether48 ] name=48-Uplink-Opnsens
set [ find default-name=ether49 ] name=49-Mgmnt.Port
/caps-man interface
add disabled=no l2mtu=1600 mac-address=18:FD:74:92:79:E3 master-interface=\
    none name=cap1-2 radio-mac=18:FD:74:92:79:E3 radio-name=18FD749279E3
add disabled=no l2mtu=1600 mac-address=18:FD:74:92:7E:9F master-interface=\
    none name=cap2-2 radio-mac=18:FD:74:92:7E:9F radio-name=18FD74927E9F
add disabled=no l2mtu=1600 mac-address=18:FD:74:94:F2:33 master-interface=\
    none name=cap3-2 radio-mac=18:FD:74:94:F2:33 radio-name=18FD7494F233
add disabled=no l2mtu=1600 mac-address=18:FD:74:92:76:B1 master-interface=\
    none name=cap4-2 radio-mac=18:FD:74:92:76:B1 radio-name=18FD749276B1
/interface vlan
add interface=bridge name=vlan1-Mgmnt vlan-id=1
add interface=bridge name=vlan10-Server vlan-id=10
add interface=bridge name=vlan20-Private vlan-id=20
add interface=bridge name=vlan30-Guest vlan-id=30
add interface=bridge name=vlan40-IoT vlan-id=40
add interface=bridge name=vlan99-honeypot vlan-id=99
/caps-man datapath
add bridge=bridge client-to-client-forwarding=yes local-forwarding=yes name=\
    datapath1 vlan-mode=use-tag
/caps-man security
add authentication-types=wpa2-eap eap-methods=passthrough \
    eap-radius-accounting=yes encryption=aes-ccm group-encryption=aes-ccm \
    group-key-update=1h name=WPA2-EAP
/caps-man configuration
add country=germany datapath=datapath1 mode=ap multicast-helper=full name=\
    dynamic-VLANs security=WPA2-EAP ssid=HONEYPOT
/caps-man interface
add channel=2ghz-CH3 configuration=dynamic-VLANs datapath=datapath1 disabled=\
    no l2mtu=1600 mac-address=18:FD:74:92:79:E2 master-interface=none name=\
    cap1-1 radio-mac=18:FD:74:92:79:E2 radio-name=18FD749279E2 security=\
    WPA2-EAP
add channel=2ghz-CH5 channel.frequency=2432 configuration=dynamic-VLANs \
    datapath=datapath1 disabled=no l2mtu=1600 mac-address=18:FD:74:92:7E:9E \
    master-interface=none name=cap2-1 radio-mac=18:FD:74:92:7E:9E radio-name=\
    18FD74927E9E security=WPA2-EAP
add channel=2ghz-CH7 configuration=dynamic-VLANs datapath=datapath1 disabled=\
    no l2mtu=1600 mac-address=18:FD:74:94:F2:32 master-interface=none name=\
    cap3-1 radio-mac=18:FD:74:94:F2:32 radio-name=18FD7494F232 security=\
    WPA2-EAP
add channel=2ghz-CH9 channel.frequency=2472 configuration=dynamic-VLANs \
    datapath=datapath1 disabled=no l2mtu=1600 mac-address=18:FD:74:92:76:B0 \
    master-interface=none name=cap4-1 radio-mac=18:FD:74:92:76:B0 radio-name=\
    18FD749276B0 security=WPA2-EAP
/interface list
add name=WAN
add name=LAN
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
/ip hotspot profile
set [ find default=yes ] login-by=cookie,http-chap,https
/ip pool
add name=vlan99-pool ranges=192.168.99.100-192.168.99.200
add name=vlan10-pool ranges=192.168.10.100-192.168.10.200
add name=vlan20-pool ranges=192.168.20.100-192.168.20.200
add name=vlan30-pool ranges=192.168.30.100-192.168.30.200
add name=vlan40-pool ranges=192.168.40.100-192.168.40.200
add name=vlan1-pool ranges=192.168.1.100-192.168.1.200
add name=Mgmnt.Port ranges=192.168.11.100-192.168.11.200
/ip dhcp-server
add address-pool=vlan99-pool interface=vlan99-honeypot lease-script=\
    "/system script run \"lease-local\"" name=dhcp-vlan99  
add address-pool=vlan10-pool interface=vlan10-Server lease-script=\
    "/system script run \"lease-local\"" name=dhcp-vlan10  
add address-pool=vlan20-pool interface=vlan20-Private lease-script=\
    "/system script run \"lease-local\"" name=dhcp-vlan20  
add address-pool=vlan30-pool interface=vlan30-Guest lease-script=\
    "/system script run \"lease-local\"" name=dhcp-vlan30  
add address-pool=vlan40-pool interface=vlan40-IoT lease-script=\
    "/system script run \"lease-local\"" name=dhcp-vlan40  
add address-pool=vlan1-pool interface=vlan1-Mgmnt lease-script=\
    "/system script run \"lease-local\"" name=dhcp-vlan1  
add address-pool=Mgmnt.Port interface=49-Mgmnt.Port name=Mgmnt.Port
/ip hotspot
add address-pool=vlan99-pool disabled=no interface=vlan99-honeypot name=\
    HONEYPOT-99
/ip hotspot user profile
set [ find default=yes ] address-pool=vlan99-pool idle-timeout=30m \
    session-timeout=8h
/port
set 0 name=serial0
/user-manager user group
set [ find default-name=default ] inner-auths=peap-mschap2 outer-auths=\
    mschap2,eap-tls,eap-peap,eap-mschap2
add attributes="Tunnel-Type:13,Tunnel-Medium-Type:6,Tunnel-Private-Group-ID:99\  
    ,Mikrotik-Wireless-VLANIDtype:2,Mikrotik-Wireless-VLANID:99" inner-auths=\  
    peap-mschap2 name=Group-VLAN-99 outer-auths=\
    eap-tls,eap-ttls,eap-peap,eap-mschap2
add attributes="Tunnel-Type:13,Tunnel-Medium-Type:6,Tunnel-Private-Group-ID:10\  
    ,Mikrotik-Wireless-VLANIDtype:2,Mikrotik-Wireless-VLANID:10" inner-auths=\  
    peap-mschap2 name=Group-VLAN-10 outer-auths=\
    eap-tls,eap-ttls,eap-peap,eap-mschap2
add attributes="Tunnel-Type:13,Tunnel-Medium-Type:6,Tunnel-Private-Group-ID:20\  
    ,Mikrotik-Wireless-VLANIDtype:2,Mikrotik-Wireless-VLANID:20" inner-auths=\  
    peap-mschap2 name=Group-VLAN-20 outer-auths=\
    eap-tls,eap-ttls,eap-peap,eap-mschap2
add attributes="Tunnel-Type:13,Tunnel-Medium-Type:6,Tunnel-Private-Group-ID:30\  
    ,Mikrotik-Wireless-VLANIDtype:2,Mikrotik-Wireless-VLANID:30" inner-auths=\  
    peap-mschap2 name=Group-VLAN-30 outer-auths=\
    eap-tls,eap-ttls,eap-peap,eap-mschap2
add attributes="Tunnel-Type:13,Tunnel-Medium-Type:6,Tunnel-Private-Group-ID:40\  
    ,Mikrotik-Wireless-VLANIDtype:2,Mikrotik-Wireless-VLANID:40" inner-auths=\  
    peap-mschap2 name=Group-VLAN-40 outer-auths=\
    eap-tls,eap-ttls,eap-peap,eap-mschap2
/user-manager user
add group=Group-VLAN-20 name=ladmin
add group=Group-VLAN-20 name=D2:67:63:73:61:12
add group=Group-VLAN-20 name=0E:88:08:DB:74:4C
add group=Group-VLAN-30 name=F8:4d:89:78:FD:FF
add group=Group-VLAN-30 name=f8:4d:89:78:fd:ff
/caps-man aaa
set called-format=mac mac-mode=as-username-and-password
/caps-man access-list
add action=query-radius allow-signal-out-of-range=10s disabled=no \
    mac-address=00:00:00:00:00:00 ssid-regexp=""  
/caps-man manager
set ca-certificate=auto certificate=auto enabled=yes
/interface bridge port
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged \
    ingress-filtering=no interface=34-CapsMan-01 internal-path-cost=10 \
    path-cost=10
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged \
    ingress-filtering=no interface=12-Ralf-Office-02 internal-path-cost=10 \
    path-cost=10
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged \
    ingress-filtering=no interface=16-Dining-02 internal-path-cost=10 \
    path-cost=10
add bridge=bridge frame-types=admit-only-untagged-and-priority-tagged \
    ingress-filtering=no interface=24-Garden-House-02
add bridge=bridge interface=11-Ralf-Office-01 pvid=20
add bridge=bridge interface=cap1-1
add bridge=bridge interface=cap1-2
add bridge=bridge interface=cap2-2
add bridge=bridge interface=cap2-1
add bridge=bridge interface=cap3-1
add bridge=bridge interface=cap3-2
add bridge=bridge interface=cap4-1
add bridge=bridge interface=cap4-2
add bridge=bridge interface=17-Living-01 pvid=30
add bridge=bridge interface=18-Living-02 pvid=30
add bridge=bridge frame-types=admit-only-vlan-tagged interface=02-Kitchen-02
/ip firewall connection tracking
set udp-timeout=10s
/interface bridge vlan
add bridge=bridge tagged=bridge untagged=02-Kitchen-02 vlan-ids=1
add bridge=bridge tagged="bridge,12-Ralf-Office-02,16-Dining-02,34-CapsMan-01,\  
    24-Garden-House-02,cap1-1,cap1-2,cap2-1,cap2-2,cap3-1,cap3-2,cap4-1,cap4-2\
    " vlan-ids=10  
add bridge=bridge tagged=\
    bridge,12-Ralf-Office-02,16-Dining-02,34-CapsMan-01,24-Garden-House-02 \
    untagged=17-Living-01,18-Living-02 vlan-ids=20
add bridge=bridge tagged=\
    bridge,12-Ralf-Office-02,16-Dining-02,34-CapsMan-01,24-Garden-House-02 \
    vlan-ids=30
add bridge=bridge tagged=\
    bridge,12-Ralf-Office-02,16-Dining-02,34-CapsMan-01,24-Garden-House-02 \
    vlan-ids=40
add bridge=bridge tagged=\
    bridge,12-Ralf-Office-02,16-Dining-02,34-CapsMan-01,24-Garden-House-02 \
    vlan-ids=99
/interface list member
add interface=vlan1-Mgmnt list=LAN
add interface=vlan10-Server list=LAN
add interface=vlan20-Private list=LAN
add interface=vlan30-Guest list=LAN
add interface=vlan40-IoT list=LAN
add interface=01-Uplink-OPNSENSE list=WAN
add interface=49-Mgmnt.Port list=LAN
add interface=vlan99-honeypot list=LAN
add interface=11-Ralf-Office-01 list=LAN
add interface=12-Ralf-Office-02 list=LAN
add interface=17-Living-01 list=LAN
add interface=18-Living-02 list=LAN
add interface=02-Kitchen-02 list=LAN
/ip address
add address=192.168.1.1/24 interface=vlan1-Mgmnt network=192.168.1.0
add address=192.168.10.1/24 interface=vlan10-Server network=192.168.10.0
add address=192.168.20.1/24 interface=vlan20-Private network=192.168.20.0
add address=192.168.30.1/24 interface=vlan30-Guest network=192.168.30.0
add address=192.168.40.1/24 interface=vlan40-IoT network=192.168.40.0
add address=10.99.1.1/24 interface=01-Uplink-OPNSENSE network=10.99.1.0
add address=192.168.99.1/24 interface=vlan99-honeypot network=192.168.99.0
add address=192.168.11.11/24 interface=49-Mgmnt.Port network=192.168.11.0
/ip dhcp-server network
add address=192.168.1.0/24 dns-server=192.168.1.1 gateway=192.168.1.1 \
    netmask=24 ntp-server=10.99.1.254
add address=192.168.10.0/24 dns-server=192.168.10.1 gateway=192.168.10.1 \
    netmask=24 ntp-server=10.99.1.254
add address=192.168.11.0/24 dns-server=192.168.11.11,1.1.1.1,9.9.9.9 gateway=\
    192.168.11.1 netmask=24
add address=192.168.20.0/24 dns-server=192.168.20.1 gateway=192.168.20.1 \
    netmask=24 ntp-server=10.99.1.254
add address=192.168.30.0/24 dns-server=192.168.30.1 gateway=192.168.30.1 \
    netmask=24 ntp-server=10.99.1.254
add address=192.168.40.0/24 dns-server=192.168.40.1 gateway=192.168.40.1 \
    netmask=24 ntp-server=10.99.1.254
/ip dns
set allow-remote-requests=yes servers=10.99.1.254,9.9.9.9,1.1.1.1
/ip firewall filter
add action=passthrough chain=unused-hs-chain comment=\
    "place hotspot rules here" disabled=yes  
/ip firewall nat
add action=passthrough chain=unused-hs-chain comment=\
    "place hotspot rules here" disabled=yes  
/ip route
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=10.99.1.254 \
    pref-src="" routing-table=main scope=30 suppress-hw-offload=no \  
    target-scope=10
/radius
add address=127.0.0.1 require-message-auth=no service=wireless
/radius incoming
set accept=yes
/system clock
set time-zone-name=Europe/Berlin
/system identity
set name=DC-RACK
/system note
set show-at-login=no
/system routerboard settings
set boot-os=router-os
/system script
add dont-require-permissions=yes name=lease-local owner=admin policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\  
    \_DNS TTL to set for DNS entries\r\
    \n:local dnsttl \"00:15:00\";\r\  
    \n\r\
    \n###\r\
    \n# Script entry point\r\
    \n#\r\
    \n# Expected environment variables:\r\
    \n# leaseBound         1 = lease bound, 0 = lease removed\r\
    \n# leaseServerName    Name of DHCP server\r\
    \n# leaseActIP         IP address of DHCP client\r\
    \n# leaseActMAC        MAC address of DHCP client\r\
    \n###\r\
    \n\r\
    \n:local scriptName \"dhcp2dns\"\r\  
    \n:do {\r\
    \n  :local scriptObj [:parse [/system script get \$scriptName source]]\r\
    \n  \$scriptObj leaseBound=\$leaseBound leaseServerName=\$leaseServerName \
    leaseActIP=\$leaseActIP leaseActMAC=\$leaseActMAC\r\
    \n} on-error={ :log warning \"DHCP server '\$leaseServerName' lease script\  
    \_error\" };\r\  
    \n\r\
    \n# \"a.b.c.d\" -> \"a-b-c-d\" for IP addresses used as replacement for mi\  
    ssing host names\r\
    \n:local ip2Host do=\\\r\
    \n{\r\
    \n  :local outStr\r\
    \n  :for i from=0 to=([:len \$inStr] - 1) do=\\\r\
    \n  {\r\
    \n    :local tmp [:pick \$inStr \$i];\r\
    \n    :if (\$tmp =\".\") do=\\\r\  
    \n    {\r\
    \n      :set tmp \"-\"\r\  
    \n    }\r\
    \n    :set outStr (\$outStr . \$tmp)\r\
    \n  }\r\
    \n  :return \$outStr\r\
    \n}\r\
    \n\r\
    \n:local mapHostName do={\r\
    \n# param: name\r\
    \n# max length = 63\r\
    \n# allowed chars a-z,0-9,-\r\
    \n  :local allowedChars \"abcdefghijklmnopqrstuvwxyz0123456789-\";\r\  
    \n  :local numChars [:len \$name];\r\
    \n  :if (\$numChars > 63) do={:set numChars 63};\r\
    \n  :local result \"\";\r\  
    \n\r\
    \n  :for i from=0 to=(\$numChars - 1) do={\r\
    \n    :local char [:pick \$name \$i];\r\
    \n    :if ([:find \$allowedChars \$char] < 0) do={:set char \"-\"};\r\  
    \n    :set result (\$result . \$char);\r\
    \n  }\r\
    \n  :return \$result;\r\
    \n}\r\
    \n\r\
    \n:local lowerCase do={\r\
    \n# param: entry\r\
    \n  :local lower \"abcdefghijklmnopqrstuvwxyz\";\r\  
    \n  :local upper \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\r\  
    \n  :local result \"\";\r\  
    \n  :for i from=0 to=([:len \$entry] - 1) do={\r\
    \n    :local char [:pick \$entry \$i];\r\
    \n    :local pos [:find \$upper \$char];\r\
    \n    :if (\$pos > -1) do={:set char [:pick \$lower \$pos]};\r\
    \n    :set result (\$result . \$char);\r\
    \n  }\r\
    \n  :return \$result;\r\
    \n}\r\
    \n\r\
    \n:local token \"\$leaseServerName-\$leaseActMAC\";\r\  
    \n:local LogPrefix \"DHCP2DNS (\$leaseServerName)\"\r\  
    \n\r\
    \n:if ( [ :len \$leaseActIP ] <= 0 ) do=\\\r\
    \n{\r\
    \n  :log error \"\$LogPrefix: empty lease address\"\r\  
    \n  :error \"empty lease address\"\r\  
    \n}\r\
    \n\r\
    \n:if ( \$leaseBound = 1 ) do=\\\r\
    \n{\r\
    \n  # new DHCP lease added\r\
    \n  /ip dhcp-server\r\
    \n  #:local dnsttl [ get [ find name=\$leaseServerName ] lease-time ]\r\
    \n  network\r\
    \n  :local domain [ get [ find \$leaseActIP in address ] domain ]\r\
    \n  #:log info \"\$LogPrefix: DNS domain is \$domain\"\r\  
    \n\r\
    \n  :local hostname [/ip dhcp-server lease get [:pick [find mac-address=\$\
    leaseActMAC and server=\$leaseServerName] 0] value-name=host-name]\r\
    \n  #:log info \"\$LogPrefix: DHCP hostname is \$hostname\"\r\  
    \n\r\
    \n #Hostname cleanup\r\
    \n  :if ( [ :len \$hostname ] <= 0 ) do=\\\r\
    \n  {\r\
    \n    :set hostname [ \$ip2Host inStr=\$leaseActIP ]\r\
    \n    :log info \"\$LogPrefix: Empty hostname for '\$leaseActIP', using ge\  
    nerated host name '\$hostname'\"\r\  
    \n  }\r\
    \n  :set hostname [\$lowerCase entry=\$hostname]\r\
    \n  :set hostname [\$mapHostName name=\$hostname]\r\
    \n  #:log info \"\$LogPrefix: Clean hostname for FQDN is \$hostname\";\r\  
    \n\r\
    \n  :if ( [ :len \$domain ] <= 0 ) do=\\\r\
    \n  {\r\
    \n    :log warning \"\$LogPrefix: Empty domainname for '\$leaseActIP', can\  
    not create static DNS name\"\r\  
    \n    :error \"Empty domainname for '\$leaseActIP'\"\r\  
    \n  }\r\
    \n\r\
    \n  :local fqdn (\$hostname . \".\" .  \$domain)\r\  
    \n  #:log info \"\$LogPrefix: FQDN for DNS is \$fqdn\"\r\  
    \n\r\
    \n    :if ([/ip dhcp-server lease get [:pick [find mac-address=\$leaseActM\
    AC and server=\$leaseServerName] 0] ]) do={\r\
    \n      # :log info message=\"\$LogPrefix: \$leaseActMAC -> \$hostname\"\r\  
    \n      :do {\r\
    \n        /ip dns static add address=\$leaseActIP name=\$fqdn ttl=\$dnsttl\
    \_comment=\$token;\r\
    \n      } on-error={:log error message=\"\$LogPrefix: Failure during dns r\  
    egistration of \$fqdn with \$leaseActIP\"}\r\  
    \n    }\r\
    \n\r\
    \n} else={\r\
    \n# DHCP lease removed\r\
    \n  /ip dns static remove [find comment=\$token];\r\
    \n} "  
/user-manager
set certificate=Userman-Certificate enabled=yes require-message-auth=no \
    use-profiles=yes
/user-manager router
add address=127.0.0.1 name=Internal-Radius
add address=192.168.11.200 name=test-router
PowerOx
PowerOx 21.08.2024 um 19:28:23 Uhr
Goto Top
kleiner Nachtrag noch - wenn ich einen Eintrag mit User/Password im Usermanager anlege - komme ich auch nicht an die Wireless Verbindung dran ...
NTRADPING lässt mich von "außen" Anfragen an den RADIUS/USERMANAGER stellen,

screenshot 2024-08-21 at 19.25.04
aqui
aqui 22.08.2024 aktualisiert um 17:57:30 Uhr
Goto Top
Wireless komme ich jetzt nicht mehr ran, da ich nach User / Password gefragt werde
Dann hast du hier vergessen MAB, also die Mac Authentisierung, im WLAN Security Profil zu aktivieren! face-sad
Bedenke das du nicht "WPA2-EAP" im Security Profil dazu setzen darfst, denn das erzwingt immer die 802.1x Authentisierung mit User/Pass oder Zertifikat. Das hast du vermutlich falsch gemacht?!

aber ich komme nicht über die OPNSENSE ins Internet.
Wenn du ein separates VLAN Routing auf dem Mikrotik machst denke daran das du diese IP Netze auf der OPNsense zwingend im NAT aktivieren musst ansonsten scheitert die IP Translation dieser IP Netze und damit der Internet Zugang auf der OPNsense. Vermutlich hast du auch das übersehen und vergessen?! 🤔 Guckst du zu dieser Thematik auch HIER!!

Wie wird denn dann eigentlich den LAN-Ports zugewiesen
Am LAN Port muss man da gar nichts machen außer das der LAN Port generell für die 802.1x oder MAB (Mac) Authentisierung aktiviert wird! Das passiert im Winbox Menüpunkt: Dot1x
Hier wählst du den Modus:
  • Server = Das Gerät agiert als Authenticator, sprich authentisiert seine Ports gegenüber Client Endgeräten (Supplicants) wie PCs, Drucker usw.
  • Client = Der Port ist selber 802.1x Client. Diesen Mode benötigt man nur dann wenn der Mikrotik Router oder Switchport selber an einen bestehenden Port mit Dot1x Port Authentisierung gesteckt wird und er sich dort authentisieren muss.
Da du hier deine Ports authentisieren willst gegenüber deinen Clients, was auch der übliche Mode ist, wählst du also den "Server Mode".
Du siehst dann hier für die beiden Ports ether 2 und 4 einmal eine reine Mac Adress Authentisierung und einmal eine reine 802.1x Authentisierung (User/Pass, Zertifikat). (Auch eine Kombination von beidem ist möglich)
Beachte das bei Windows Endgeräten im Falle von Dot1x der LAN Client erst aktiviert werden muss. (Details dazu hier!). Für eine reine Mac Authentisierung ist das natürlich nicht erforderlich.
dot1xport2
Wenn der Radius Server das VLAN Attribut (ID) zu dem User sei es über die Mac oder .1x mit User/Pass liefert, reagiert der Port entsprechend und setzt die PVID immer automatisch auf die VLAN ID die der Radius Server für diesen User mitgibt. Global muss dafür natürlich das VLAN selber in der VLAN Bridge vorhanden sein.

Der Mikrotik loggt dieses Radius Verhalten im Log mit, so das du das live verfolgen kannst. Dazu musst du am Gerät das den User-Manager bedient das Logging für Radius (Manager) aktivieren:
logneu.
Mit der Einstellungen kannst du dann im Log genau die Radius Authentisierung überwachen und sehen wenn dort irgendwelche Fehler passieren. Gerade beim Troubleshooting ist das also sehr sinnvoll dieses Logging zu aktivieren.

Im folgenden Screenshot siehst du das einmal exemplarisch an einer User-Manager VLAN Konfig für das VLAN 20.
Es wurde eine User Group für das VLAN 20 erstellt der global die VLAN Parameter für VLAN 20 mitgegeben wurden. Alle Radiususer die man dieser Usergroup zuweist bekommen dann diese Radius Attribute mit.
Ob man das über eine Usergroup macht oder für jeden User einzeln ist wie immer persönliche Geschmackssache.
⚠️ ACHTUNG: Hier lautert der Teufel im Detail bei der "Tunnel-Private-GroupID"!!
Dieses Radius Attribut das die VLAN ID enthält ist weltweit standartisiert und gilt bei Mikrotik aber NUR für LAN Ports!!
Bei WLAN APs mit Mikrotik Hardware Komponenten hingegen verwendet Mikrotik das proprietäre Radius Attribut Mikrotik-Wireless-VLANID dafür!! Siehe zu der Thematik auch HIER!

Du musst bei Mikrotik Hardware also bei diesem Attribut im User-Manager sehr genau unterscheiden ob du das VLAN dynamisch auf einem LAN Port oder einem WLAN mit Mikrotik Hardware zuweisen willst! Warum Mikrotik das so gelöst hat ist unverständlich.
WLANs mit anderer Hardware arbeiten natürlich auch bei WiFi mit diesem standardisierten Attribut wie du z.B. HIER bei einer Praxislösung mit Cisco APs sehen kannst!
dot1x.

NTRADPING lässt mich von "außen" Anfragen an den RADIUS/USERMANAGER stellen,
Hier musst du eine wichtige Sache beachten:
  • Der NTRadPing Test PC muss natürlich am Radius Server auch in die "Router Clients" als Authenticator mit seiner IP eingetragen sein um ihn zu authorisieren. Ansonsten nimmt der Mikrotik User-Manager (Radius Server) keine Radius Requests vom Test PC an (Security)!
Da unterscheidet er sich natürlich nicht von anderen Radius Servern! Der Test PC arbeitet ja wie ein Switch oder AP als Authenticator den man über seine IP authorisieren muss. (Grundlagen dazu auch hier!
Vermutlich hast du diesen Punkt übersehen so das die Test PC Radius Requests abgelehnt werden?! Leider fehlen auch da wieder detailierter Angaben deines Setups wie Winbox Screenshots usw. so das du hier zum Raten zwingst. face-sad
14135584197
14135584197 22.08.2024, aktualisiert am 23.08.2024 um 16:59:43 Uhr
Goto Top
Wireless komme ich jetzt nicht mehr ran, da ich nach User / Password gefragt werde, dabei sollte die Zuweisung der VLANs ja über die MAC Adresse erfolgen.
Da du leider nicht angegeben hattest ob du über PresharedKey oder Username/Password(EAP) authentisieren willst, war das ein Missverständnis. Unten die Variante über PS und MAC Auth.

Da leider jegliche Angabe fehlt an welchem Ports was angeschlossen ist bis auf ein paar dessen Bezeichnung klar war musste ich bei den Bridge-Ports raten ... Eine kleine Zeichnung wäre dazu hilfreich gewesen.

Für Portbasierte Auth s. @aqui wenn die MACs richtig im Usermanager hinterlegt sind und du auf dem gewünschten Interface den dot1x Server mit MAC-Auth aktivierst klappt das out of the box sobald Traffic von der MAC an dem Ports ankommt. Beachte bitte das du im User-Manager Profile in den Settings aktiviert hast. Dies solltest du erst einmal deaktivieren (habe ich in der Config berücksichtigt!) bis es läuft, denn ansonsten musst du hier nämlich zusätzlich für jeden User einen aktiven Profil-Eintrag anlegen damit der User überhaupt rein darf face-wink.
# 2024-08-21 18:56:19 by RouterOS 7.15.3
# software id = M4DD-K394
#
# model = CRS354-48P-4S+2Q+
# serial number = F3160F97580C
/caps-man channel
add band=2ghz-g/n control-channel-width=20mhz extension-channel=disabled \
    frequency=2412 name=2ghz-CH3
add band=2ghz-g/n control-channel-width=20mhz extension-channel=disabled \
    frequency=2432 name=2ghz-CH5
add band=2ghz-g/n control-channel-width=20mhz extension-channel=disabled \
    frequency=2452 name=2ghz-CH7
add band=2ghz-g/n control-channel-width=20mhz extension-channel=disabled \
    frequency=2472 name=2ghz-CH9
/interface bridge
add igmp-snooping=yes ingress-filtering=no name=bridge port-cost-mode=short \
    vlan-filtering=yes
/interface ethernet
set [ find default-name=ether1 ] name=01-Uplink-OPNSENSE
set [ find default-name=ether2 ] name=02-Kitchen-02
set [ find default-name=ether3 ] name=03-Maja-Office-01
set [ find default-name=ether4 ] name=04-Maja-Office-04
set [ find default-name=ether5 ] name=05-Aisle-01
set [ find default-name=ether6 ] name=06-Aisle-02
set [ find default-name=ether7 ] name=07-Lenn-01
set [ find default-name=ether8 ] name=08-Lenn-02
set [ find default-name=ether9 ] name=09-Tuuli-01
set [ find default-name=ether10 ] name=10-Tuuli-02
set [ find default-name=ether11 ] name=11-Ralf-Office-01
set [ find default-name=ether12 ] name=12-Ralf-Office-02
set [ find default-name=ether13 ] name=13-Master-Bedroom-01
set [ find default-name=ether14 ] name=14-Master-Bedroom-02
set [ find default-name=ether15 ] name=15-Dining-01
set [ find default-name=ether16 ] name=16-Dining-02
set [ find default-name=ether17 ] name=17-Living-01
set [ find default-name=ether18 ] name=18-Living-02
set [ find default-name=ether19 ] name=19-Front-Door
set [ find default-name=ether20 ] name=20-1stFloor-Tablet
set [ find default-name=ether21 ] name=21-Kitchen-Tablet
set [ find default-name=ether22 ] name=22-HWR-Heating
set [ find default-name=ether23 ] name=23-Garden-House-01
set [ find default-name=ether24 ] name=24-Garden-House-02
set [ find default-name=ether25 ] name=25-Garden-House-03
set [ find default-name=ether26 ] name=26-Garden-House-04
set [ find default-name=ether27 ] name=27-Garden-House-05
set [ find default-name=ether34 ] name=34-CapsMan-01
set [ find default-name=ether48 ] name=48-Uplink-Opnsens
set [ find default-name=ether49 ] name=49-Mgmnt.Port
/interface vlan
add interface=bridge name=vlan1-Mgmnt vlan-id=1
add interface=bridge name=vlan10-Server vlan-id=10
add interface=bridge name=vlan20-Private vlan-id=20
add interface=bridge name=vlan30-Guest vlan-id=30
add interface=bridge name=vlan40-IoT vlan-id=40
add interface=bridge name=vlan99-honeypot vlan-id=99
/caps-man datapath
add bridge=bridge client-to-client-forwarding=yes local-forwarding=yes name=\
    datapath1 vlan-mode=use-tag
/caps-man security
add authentication-types=wpa2-psk encryption=aes-ccm group-encryption=aes-ccm \
    group-key-update=1d name=WPA2-PSK
/caps-man configuration
add country=germany datapath=datapath1 mode=ap multicast-helper=full name=\
    dynamic-VLANs security=WPA2-PSK ssid=HONEYPOT
/caps-man interface
add channel=2ghz-CH3 configuration=dynamic-VLANs datapath=datapath1 disabled=\
    no l2mtu=1600 mac-address=18:FD:74:92:79:E2 master-interface=none name=\
    cap1-1 radio-mac=18:FD:74:92:79:E2 radio-name=18FD749279E2 security=\
    WPA2-PSK
add channel=2ghz-CH5 channel.frequency=2432 configuration=dynamic-VLANs \
    datapath=datapath1 disabled=no l2mtu=1600 mac-address=18:FD:74:92:7E:9E \
    master-interface=none name=cap2-1 radio-mac=18:FD:74:92:7E:9E radio-name=\
    18FD74927E9E security=WPA2-PSK
add channel=2ghz-CH7 configuration=dynamic-VLANs datapath=datapath1 disabled=\
    no l2mtu=1600 mac-address=18:FD:74:94:F2:32 master-interface=none name=\
    cap3-1 radio-mac=18:FD:74:94:F2:32 radio-name=18FD7494F232 security=\
    WPA2-PSK
add channel=2ghz-CH9 channel.frequency=2472 configuration=dynamic-VLANs \
    datapath=datapath1 disabled=no l2mtu=1600 mac-address=18:FD:74:92:76:B0 \
    master-interface=none name=cap4-1 radio-mac=18:FD:74:92:76:B0 radio-name=\
    18FD749276B0 security=WPA2-PSK
/interface list
add name=WAN
add name=LAN
/ip hotspot profile
set [ find default=yes ] login-by=cookie,http-chap,https
/ip pool
add name=vlan99-pool ranges=192.168.99.100-192.168.99.200
add name=vlan10-pool ranges=192.168.10.100-192.168.10.200
add name=vlan20-pool ranges=192.168.20.100-192.168.20.200
add name=vlan30-pool ranges=192.168.30.100-192.168.30.200
add name=vlan40-pool ranges=192.168.40.100-192.168.40.200
add name=vlan1-pool ranges=192.168.1.100-192.168.1.200
add name=Mgmnt.Port ranges=192.168.11.100-192.168.11.200
/ip dhcp-server
add address-pool=vlan99-pool interface=vlan99-honeypot lease-script=\
    "/system script run \"lease-local\"" name=dhcp-vlan99    
add address-pool=vlan10-pool interface=vlan10-Server lease-script=\
    "/system script run \"lease-local\"" name=dhcp-vlan10    
add address-pool=vlan20-pool interface=vlan20-Private lease-script=\
    "/system script run \"lease-local\"" name=dhcp-vlan20    
add address-pool=vlan30-pool interface=vlan30-Guest lease-script=\
    "/system script run \"lease-local\"" name=dhcp-vlan30    
add address-pool=vlan40-pool interface=vlan40-IoT lease-script=\
    "/system script run \"lease-local\"" name=dhcp-vlan40    
add address-pool=vlan1-pool interface=vlan1-Mgmnt lease-script=\
    "/system script run \"lease-local\"" name=dhcp-vlan1    
add address-pool=Mgmnt.Port interface=49-Mgmnt.Port name=Mgmnt.Port
/ip hotspot
add address-pool=vlan99-pool disabled=no interface=vlan99-honeypot name=\
    HONEYPOT-99
/ip hotspot user profile
set [ find default=yes ] address-pool=vlan99-pool idle-timeout=30m \
    session-timeout=8h
/user-manager user group
add attributes="Tunnel-Type:13,Tunnel-Medium-Type:6,Tunnel-Private-Group-ID:99\    
    ,Mikrotik-Wireless-VLANIDtype:0,Mikrotik-Wireless-VLANID:99" name=Group-VLAN-99 outer-auths=pap  
add attributes="Tunnel-Type:13,Tunnel-Medium-Type:6,Tunnel-Private-Group-ID:10\    
    ,Mikrotik-Wireless-VLANIDtype:0,Mikrotik-Wireless-VLANID:10" name=Group-VLAN-10  outer-auths=pap  
add attributes="Tunnel-Type:13,Tunnel-Medium-Type:6,Tunnel-Private-Group-ID:20\    
    ,Mikrotik-Wireless-VLANIDtype:0,Mikrotik-Wireless-VLANID:20" name=Group-VLAN-20  outer-auths=pap  
add attributes="Tunnel-Type:13,Tunnel-Medium-Type:6,Tunnel-Private-Group-ID:30\    
    ,Mikrotik-Wireless-VLANIDtype:0,Mikrotik-Wireless-VLANID:30" name=Group-VLAN-30  outer-auths=pap  
add attributes="Tunnel-Type:13,Tunnel-Medium-Type:6,Tunnel-Private-Group-ID:40\    
    ,Mikrotik-Wireless-VLANIDtype:0,Mikrotik-Wireless-VLANID:40" name=Group-VLAN-40  outer-auths=pap  
/user-manager user
add group=Group-VLAN-20 name=ladmin
add group=Group-VLAN-20 name=D2:67:63:73:61:12 password=D2:67:63:73:61:12
add group=Group-VLAN-20 name=0E:88:08:DB:74:4C password=0E:88:08:DB:74:4C
add group=Group-VLAN-30 name=F8:4d:89:78:FD:FF password=F8:4d:89:78:FD:FF
add group=Group-VLAN-30 name=f8:4d:89:78:fd:ff password=f8:4d:89:78:fd:ff
/caps-man aaa
set called-format=mac mac-mode=as-username-and-password
/caps-man access-list
add action=query-radius allow-signal-out-of-range=10s disabled=no ssid-regexp="^HONEYPOT$" vlan-mode=use-tag  
/caps-man manager
set ca-certificate=auto certificate=auto enabled=yes
/interface bridge port
add bridge=bridge frame-types=admit-all interface=34-CapsMan-01
add bridge=bridge frame-types=admit-all interface=12-Ralf-Office-02
add bridge=bridge frame-types=admit-all interface=16-Dining-02
add bridge=bridge frame-types=admit-all interface=24-Garden-House-02
add bridge=bridge interface=11-Ralf-Office-01 pvid=20
add bridge=bridge interface=17-Living-01 pvid=30
add bridge=bridge interface=18-Living-02 pvid=30
add bridge=bridge frame-types=admit-all interface=02-Kitchen-02
/interface bridge vlan
add bridge=bridge tagged=bridge vlan-ids=1
add bridge=bridge tagged=bridge,12-Ralf-Office-02,16-Dining-02,34-CapsMan-01,24-Garden-House-02 vlan-ids=10  
add bridge=bridge tagged=bridge,12-Ralf-Office-02,16-Dining-02,34-CapsMan-01,24-Garden-House-02 vlan-ids=20
add bridge=bridge tagged=bridge,12-Ralf-Office-02,16-Dining-02,34-CapsMan-01,24-Garden-House-02 vlan-ids=30
add bridge=bridge tagged=bridge,12-Ralf-Office-02,16-Dining-02,34-CapsMan-01,24-Garden-House-02 vlan-ids=40
add bridge=bridge tagged=bridge,12-Ralf-Office-02,16-Dining-02,34-CapsMan-01,24-Garden-House-02 vlan-ids=99
/interface list member
add interface=vlan1-Mgmnt list=LAN
add interface=vlan10-Server list=LAN
add interface=vlan20-Private list=LAN
add interface=vlan30-Guest list=LAN
add interface=vlan40-IoT list=LAN
add interface=01-Uplink-OPNSENSE list=WAN
add interface=49-Mgmnt.Port list=LAN
add interface=vlan99-honeypot list=LAN
add interface=11-Ralf-Office-01 list=LAN
add interface=12-Ralf-Office-02 list=LAN
add interface=17-Living-01 list=LAN
add interface=18-Living-02 list=LAN
add interface=02-Kitchen-02 list=LAN
/ip address
add address=192.168.1.1/24 interface=vlan1-Mgmnt network=192.168.1.0
add address=192.168.10.1/24 interface=vlan10-Server network=192.168.10.0
add address=192.168.20.1/24 interface=vlan20-Private network=192.168.20.0
add address=192.168.30.1/24 interface=vlan30-Guest network=192.168.30.0
add address=192.168.40.1/24 interface=vlan40-IoT network=192.168.40.0
add address=10.99.1.1/24 interface=01-Uplink-OPNSENSE network=10.99.1.0
add address=192.168.99.1/24 interface=vlan99-honeypot network=192.168.99.0
add address=192.168.11.11/24 interface=49-Mgmnt.Port network=192.168.11.0
/ip dhcp-server network
add address=192.168.1.0/24 dns-server=192.168.1.1 gateway=192.168.1.1 \
    netmask=24 ntp-server=10.99.1.254
add address=192.168.10.0/24 dns-server=192.168.10.1 gateway=192.168.10.1 \
    netmask=24 ntp-server=10.99.1.254
add address=192.168.11.0/24 dns-server=192.168.11.11,1.1.1.1,9.9.9.9 gateway=\
    192.168.11.1 netmask=24
add address=192.168.20.0/24 dns-server=192.168.20.1 gateway=192.168.20.1 \
    netmask=24 ntp-server=10.99.1.254
add address=192.168.30.0/24 dns-server=192.168.30.1 gateway=192.168.30.1 \
    netmask=24 ntp-server=10.99.1.254
add address=192.168.40.0/24 dns-server=192.168.40.1 gateway=192.168.40.1 \
    netmask=24 ntp-server=10.99.1.254
/ip dns
set allow-remote-requests=yes servers=10.99.1.254,9.9.9.9,1.1.1.1
/ip route
add disabled=no distance=1 dst-address=0.0.0.0/0 gateway=10.99.1.254
/radius
add address=127.0.0.1 require-message-auth=no service=wireless,dot1x
/radius incoming
set accept=yes
/system clock
set time-zone-name=Europe/Berlin
/system identity
set name=DC-RACK
/system note
set show-at-login=no
/system routerboard settings
set boot-os=router-os
/system script
add dont-require-permissions=yes name=lease-local owner=admin policy=\
    ftp,reboot,read,write,policy,test,password,sniff,sensitive,romon source="#\    
    \_DNS TTL to set for DNS entries\r\
    \n:local dnsttl \"00:15:00\";\r\    
    \n\r\
    \n###\r\
    \n# Script entry point\r\
    \n#\r\
    \n# Expected environment variables:\r\
    \n# leaseBound         1 = lease bound, 0 = lease removed\r\
    \n# leaseServerName    Name of DHCP server\r\
    \n# leaseActIP         IP address of DHCP client\r\
    \n# leaseActMAC        MAC address of DHCP client\r\
    \n###\r\
    \n\r\
    \n:local scriptName \"dhcp2dns\"\r\    
    \n:do {\r\
    \n  :local scriptObj [:parse [/system script get \$scriptName source]]\r\
    \n  \$scriptObj leaseBound=\$leaseBound leaseServerName=\$leaseServerName \
    leaseActIP=\$leaseActIP leaseActMAC=\$leaseActMAC\r\
    \n} on-error={ :log warning \"DHCP server '\$leaseServerName' lease script\    
    \_error\" };\r\    
    \n\r\
    \n# \"a.b.c.d\" -> \"a-b-c-d\" for IP addresses used as replacement for mi\    
    ssing host names\r\
    \n:local ip2Host do=\\\r\
    \n{\r\
    \n  :local outStr\r\
    \n  :for i from=0 to=([:len \$inStr] - 1) do=\\\r\
    \n  {\r\
    \n    :local tmp [:pick \$inStr \$i];\r\
    \n    :if (\$tmp =\".\") do=\\\r\    
    \n    {\r\
    \n      :set tmp \"-\"\r\    
    \n    }\r\
    \n    :set outStr (\$outStr . \$tmp)\r\
    \n  }\r\
    \n  :return \$outStr\r\
    \n}\r\
    \n\r\
    \n:local mapHostName do={\r\
    \n# param: name\r\
    \n# max length = 63\r\
    \n# allowed chars a-z,0-9,-\r\
    \n  :local allowedChars \"abcdefghijklmnopqrstuvwxyz0123456789-\";\r\    
    \n  :local numChars [:len \$name];\r\
    \n  :if (\$numChars > 63) do={:set numChars 63};\r\
    \n  :local result \"\";\r\    
    \n\r\
    \n  :for i from=0 to=(\$numChars - 1) do={\r\
    \n    :local char [:pick \$name \$i];\r\
    \n    :if ([:find \$allowedChars \$char] < 0) do={:set char \"-\"};\r\    
    \n    :set result (\$result . \$char);\r\
    \n  }\r\
    \n  :return \$result;\r\
    \n}\r\
    \n\r\
    \n:local lowerCase do={\r\
    \n# param: entry\r\
    \n  :local lower \"abcdefghijklmnopqrstuvwxyz\";\r\    
    \n  :local upper \"ABCDEFGHIJKLMNOPQRSTUVWXYZ\";\r\    
    \n  :local result \"\";\r\    
    \n  :for i from=0 to=([:len \$entry] - 1) do={\r\
    \n    :local char [:pick \$entry \$i];\r\
    \n    :local pos [:find \$upper \$char];\r\
    \n    :if (\$pos > -1) do={:set char [:pick \$lower \$pos]};\r\
    \n    :set result (\$result . \$char);\r\
    \n  }\r\
    \n  :return \$result;\r\
    \n}\r\
    \n\r\
    \n:local token \"\$leaseServerName-\$leaseActMAC\";\r\    
    \n:local LogPrefix \"DHCP2DNS (\$leaseServerName)\"\r\    
    \n\r\
    \n:if ( [ :len \$leaseActIP ] <= 0 ) do=\\\r\
    \n{\r\
    \n  :log error \"\$LogPrefix: empty lease address\"\r\    
    \n  :error \"empty lease address\"\r\    
    \n}\r\
    \n\r\
    \n:if ( \$leaseBound = 1 ) do=\\\r\
    \n{\r\
    \n  # new DHCP lease added\r\
    \n  /ip dhcp-server\r\
    \n  #:local dnsttl [ get [ find name=\$leaseServerName ] lease-time ]\r\
    \n  network\r\
    \n  :local domain [ get [ find \$leaseActIP in address ] domain ]\r\
    \n  #:log info \"\$LogPrefix: DNS domain is \$domain\"\r\    
    \n\r\
    \n  :local hostname [/ip dhcp-server lease get [:pick [find mac-address=\$\
    leaseActMAC and server=\$leaseServerName] 0] value-name=host-name]\r\
    \n  #:log info \"\$LogPrefix: DHCP hostname is \$hostname\"\r\    
    \n\r\
    \n #Hostname cleanup\r\
    \n  :if ( [ :len \$hostname ] <= 0 ) do=\\\r\
    \n  {\r\
    \n    :set hostname [ \$ip2Host inStr=\$leaseActIP ]\r\
    \n    :log info \"\$LogPrefix: Empty hostname for '\$leaseActIP', using ge\    
    nerated host name '\$hostname'\"\r\    
    \n  }\r\
    \n  :set hostname [\$lowerCase entry=\$hostname]\r\
    \n  :set hostname [\$mapHostName name=\$hostname]\r\
    \n  #:log info \"\$LogPrefix: Clean hostname for FQDN is \$hostname\";\r\    
    \n\r\
    \n  :if ( [ :len \$domain ] <= 0 ) do=\\\r\
    \n  {\r\
    \n    :log warning \"\$LogPrefix: Empty domainname for '\$leaseActIP', can\    
    not create static DNS name\"\r\    
    \n    :error \"Empty domainname for '\$leaseActIP'\"\r\    
    \n  }\r\
    \n\r\
    \n  :local fqdn (\$hostname . \".\" .  \$domain)\r\    
    \n  #:log info \"\$LogPrefix: FQDN for DNS is \$fqdn\"\r\    
    \n\r\
    \n    :if ([/ip dhcp-server lease get [:pick [find mac-address=\$leaseActM\
    AC and server=\$leaseServerName] 0] ]) do={\r\
    \n      # :log info message=\"\$LogPrefix: \$leaseActMAC -> \$hostname\"\r\    
    \n      :do {\r\
    \n        /ip dns static add address=\$leaseActIP name=\$fqdn ttl=\$dnsttl\
    \_comment=\$token;\r\
    \n      } on-error={:log error message=\"\$LogPrefix: Failure during dns r\    
    egistration of \$fqdn with \$leaseActIP\"}\r\    
    \n    }\r\
    \n\r\
    \n} else={\r\
    \n# DHCP lease removed\r\
    \n  /ip dns static remove [find comment=\$token];\r\
    \n} "    
/user-manager
set certificate=Userman-Certificate enabled=yes require-message-auth=no
/user-manager router
add address=127.0.0.1 name=Internal-Radius
add address=192.168.11.200 name=test-router
PowerOx
PowerOx 23.08.2024 um 12:19:40 Uhr
Goto Top
Hallo Zusammen ...

danke erst einmal dass Ihr noch mit dabei seid - trotz meiner "Ausbildungsmängel".

Aktuell sieht sieht es so aus, als ob das ganze daran scheitert dass die Requests zur Authentifizierung nicht beim UserManager ankommen.

Mache ich einen Test mit NTRadPing von meinem "Service-PC" [hängt direkt am Management Port] geht der auch sauber durch - bekommt die Attribute geliefert - das wird auch brav ins Log geschrieben. Die Nutzung der Profile ist deaktiviert.
screenshot 2024-08-23 at 12.06.39

Ich sehe aber keine weiteren Requests - also dass was die Clients im Wifi oder via LAN anfragen, scheint irgendwo noch zu hängen.

Habe die Konfig RADIUS / ZERTIFIKATE / USERMANAGER noch einmal
überprüft - aber nix gefunden face-sad - die Router sehen für Service-PC und dem internen auf der 127.0.0.1 identisch aus, da ist ja eh nicht so viel einzustellen.

Die Clients erhalten aktuell auch keine IPs vom DHCP mehr - aber wohl auch logisch, denn sie können ja nicht authentifiziert werden.

Wenn der "Service-PC" mit NTRadPing da dran kommt, dann dürfte die Firewall im Mikrotik ja auch nicht das Problem sein - oder?

Zur OPNSENSE vielleicht noch - die lief hier vorher auch schon, und sollte eigentlich nicht das Problem sein ... wenn ich von der aus Pings absetze, komme ich bis zu den AccessPoints durch - das würde mir suggerieren, dass das Setup hier erst einmal sauber ist.
screenshot 2024-08-23 at 12.03.39

Eine Variante könnte sein, einfach den Radius auf der OPNSENSE zu nehmen, und schauen ob das geht ...
Eine Info vielleicht noch - die CAPs laufen noch mit einer älteren Version ... aber das dürfte ja dann trotzdem nicht die LAN-Anfragen beeinträchtigen.

Hier mal ein erster Versuch das zu dokumentieren ...
screenshot 2024-08-23 at 11.56.51
14135584197
14135584197 23.08.2024 aktualisiert um 13:41:42 Uhr
Goto Top
Das war eben nicht klar das du die die VLANs über einen Trunk an die OPNSense schieben willst. Wieso erstellst du dann die DHCP-Server etc. auf dem Mikrotik und nicht schon auf der OPNSense wenn die VLANs dort bereits als Interfaces vorliegen? Für dein Szenario kann der Mikrotik nämlich als reiner Switch konfiguriert werden und muss dann auch nicht routen.
Du musst dich schon mal entscheiden welche Variante du fahren willst sonst fangen wir hier x mal neu an.
Also OPNSense soll die VLANs zentral routen DHCP etc. bereitstellen, oder der Mikrotik und dann die OPNSense nur als Default Route mit statischen Routen zum Mikrotik?
PowerOx
PowerOx 23.08.2024 um 13:44:38 Uhr
Goto Top
nun - ich bin für die aus meiner Sicht einfachere Variante - sprich, der Mikrotik soll auch das Routing machen ...
ist die OPNSENSE mal nicht da, funktioniert es wenigstens noch intern
aqui
aqui 23.08.2024 aktualisiert um 16:40:50 Uhr
Goto Top
daran scheitert dass die Requests zur Authentifizierung nicht beim UserManager ankommen.
Wie gesagt: Dazu ist der NTRadPing Test PC das ideale Test Tool!
Stecke den erstmal lokal auf die Maschine auf der auch der User-Manager rennt und mache dann einen Request. Idealerweise in einen LAN Port im Management VLAN! Bei dir also VLAN 1.
Bedenke das du die IP dieses Test PCs in die Liste der Authenticators = "Routers" Karteireiter im User-Manager eintragen musst damit der User-Manager Radius Requests davon akzeptiert! Welche das ist zeigt dir die "Lease" Liste im DHCP Server Menü.
Dann aktivierst du dort das Radius Logging wie oben beschrieben.
Jetzt sendest du von dem Test PC einen Radius Request. Idealerweise verwendest du dafür als Ziel IP die User-Manager Switch IP aus dem Management VLAN das nachher auch deine AP Komponenten benutzen.
Also das VLAN in dem sie wie auch der Test PC ihre Management IP ziehen (VLAN 1 bei dir) die man dann idealerweise im DHCP Server auf "make static" klickt damit diese sich NICHT ändern!!
Das ist wichtig, denn diese Management IPs von den APs werden ja auch in die Liste der Authenticators = "Routers" Karteireiter im User-Manager eingetragen. Würde sich deren IP einmal ändern, kommen deren Authentication Requests nicht mehr durch. Es ist also wichtig das diese Komponenten feste Absender IP Adressen erhalten! Nur das du das auf dem Radar hast....
Ein Ping von diesen Komponenten auf die Radius Server IP im Management VLAN 1 sollte im Ping Tool Menü dieser Komponenten natürlich auch klappen! Überprüfe das also auch!

ist die OPNSENSE mal nicht da, funktioniert es wenigstens noch intern
Das ist auch der richtige Weg und das klassische Setup bei einem Layer 3 VLAN Konzept wie du es umgesetzt hast! Es entspricht ja auch genau dem aus dem hiesigen Tutorial.
Wichtig bei der OPNsense ist dann nur das du deine VLAN IP Netze auf dem Switch auch im Outbound-NAT Setup der OPNsense konfigurierst wie HIER beschrieben. (Letzter Screenshot) Das dortige Design entspricht exakt deinem Setup! Dann klappt das auch sofort mit dem Internet.

Das sind deine ToDos fürs Wochenende! 😉
14135584197
14135584197 23.08.2024 aktualisiert um 14:48:12 Uhr
Goto Top
Außerdem stimmen die IP-Netze in der Grafik überhaupt nicht mit der Config überein da solltest du auch mal aufräumen...
Ansonsten läuft die Config hier im Test problemlos mit dem CAPsMAN und dem Usermanager, hast du dann wohl nicht alles genau durchgelesen oder überlesen was ich geändert habe.
aqui
aqui 23.08.2024 aktualisiert um 17:04:00 Uhr
Goto Top
Außerdem stimmen die IP-Netze in der Grafik überhaupt nicht mit der Config überein
Absolut richtig! Das ist für ein vernünftiges und zielführendes Troubleshooting wenig hilfreich. face-sad
  • Deine APs haben alle eine 10er Adresse im Management VLAN 1 obwohl das in der IP Adressübersicht alles 192.168.1.er IPs sein müssten!
  • Das Transfer Netz OPNsense-Mikrotik ist ebenfalls ein 10.99er Netz was sich niemals mit dem VLAN 1 (Management) überschneiden darf, denn dann wären diese Netze doppelt! Das Managemen VLAN 1 darf keinesfalls im Transfer Netz Firewall-Switch liegen! Der ether 1 Port des Switches (FW Koppelnetz) darf nicht Memberport der VLAN-Bridge sein sondern ist ein dedizierter Routingport. Darauf wird im Mikrotik Tutorial explizit und in rot hingewiesen!
  • Desweiteren ist die statische OPNsense Route zu den Mikrotik VLANs falsch bzw. hat einen falschen Prefix mit 18 Bit. Das inkludiert nur Netze bis 192.168.63.0 und damit fällt das 99er IoT Netz hinten runter und bleibt unereichbar! Das muss auch auf einen 17er Prefix geändert werden.

Wenn du schon richtigerweise und auch vorbildlich ein IP Adresskonzept machst, dann halte dich auch strikt daran!
Sehr viel IP Adress Kuddelmuddel also den du am Wochenende auch fixen musst. Insbesondere darf das AP Management nie auf dem 10er Koppelnetz liegen!!
PowerOx
PowerOx 27.08.2024 um 14:39:13 Uhr
Goto Top
Hallo Zusammen ...

ich entschuldige mich schon mal dass das Bild noch nicht ganz aktuell war - die APs sind natürlich im VLAN1 gelandet, und haben 192.168.1.'er Adressen.
Diese IPs sind auch jetzt via DHCP-Static eingerichtet, sowie auch die passenden Router dazu im UserManager hinterlegt.

@aqui
Der Hinweis zu dem erweiterten NAT-Setup in der OPNSENSE für die entfernten VLANs war goldwert - damit klappt auch der Weg bis ins Internet aus den Subnetzen/VLANs heraus.

Zum Thema "statische OPNsense Route zu den Mikrotik VLANs falsch"
das habe ich auf dem Radar - kann es nur noch nicht umsetzen, da ich meine alte Welt die noch produktiv läuft im 192.168.100'er Netz habe >> ergo, ich habe da jetzt den "HONEYPOT" hingelegt, damit ist das auch nicht so wichtig aktuell.
Wenn das Setup hier steht, dann ziehen meine Server um und ich baue meine alte DSL-Welt ab ...

So - zum Stand der Dinge ...
Die Authentifizierungsanfragen der APs laufen leider trotzdem noch nicht UserManager auf - NTRADPING kann dagegen Anfragen stellen - der läuft auf meinen Admin-PC der am Management-Port hängt ... direkt, kein VLAN, IP auf dem Port. Stecke ich den PC um - auf Port 2 / Management VLAN 1 - mit passendem Router im UserManager >> geht das auch. Wird alles brav im LOG mitgeplottet.

Die Anfragen für die Vergabe der VLANs an die LAN-Ports klappt auch ...

Wie auch immer - ich habe jetzt hier >> Mikrotik - dyn-vLAN und MAC-auth in ROS 7.2
gelesen, dass die Mikrotik-interne Radius/UserManager-Implementierung,
noch nicht genutzt werden kann um auch nicht authentifizierte User in ein
VLAN zu schieben ...
hat das noch Bestand?
Wenn ja, würde ich es dann so wie Tutorial beschrieben auf die Variante "RADIUS auf OPNSENSE"
umbauen, denn das wäre schon wünschenswert dass das Verhalten für LAN und Wifi gleich ist.


screenshot 2024-08-27 at 14.37.07
aqui
aqui 27.08.2024 aktualisiert um 18:23:05 Uhr
Goto Top
Glückwunsch! 👏 80% rennen dann und es bleiben nur die APs.
hat das noch Bestand?
Bei dir kommen ja noch nicht einmal die Radius Requests der APs am Server an! Du hast also irgendwo noch ein gravierendes Problem deines AP/CapsManager Setups, da die APs scheinbar die Radius Server IP nicht kennen.
Zumindestens DAS solltest du also als Dringenstes fixen und zum Test kannst du ja erstmal eine klassische, einfache User Auth machen ohne dyn. VLAN. Die klappt fehlerlos sowohl mit MAB als auch Dot1x. Das deine Radius Server Umgebung sauber funktioniert kannst du am NTRadPing und an den Kupferports ja sehen.
Die fehlende Radius Server IP an den APs ist also der größte Kinken den du fixen musst, denn die eingehenden Requests von den APs muss man sehen ansonsten findet doch per se schon gar keine Radius Auth statt!!
Ggf. würden ein paar Screenshots des AP Radis Setups hier helfen. Zumindestens der Teil wo die Radius Server Ziel IP gesetzt wird!
Wichtig ist das auf allen 4 APs der Radius Server mit seiner IP gesetzt ist und im Access List Profile das CapsMan query radius.
rad
Sieht das bei dir so aus? 🤔
PowerOx
PowerOx 28.08.2024 um 08:30:11 Uhr
Goto Top
HI …
das sieht jetzt erst einmal gut aus - also so wie in den Screenshots
Der RADIUS Eintrag auf den APs selbst, ist ja wurscht - oder?
da ich davon ausgehe, dass der Traffic ja vom CAPSMAN „ausgeleitet“ wird …

screenshot 2024-08-28 at 08.02.07
screenshot 2024-08-28 at 08.12.37
aqui
aqui 28.08.2024 aktualisiert um 08:57:50 Uhr
Goto Top
Der RADIUS Eintrag auf den APs selbst, ist ja wurscht - oder?
Nein keineswegs!
Normalerweise machst du im Datapath immer ein local Forwarding, sprich der WLAN Traffic wird lokal aus jedem AP ausgekoppelt und direkt auf die Switch Infrastruktur gesendet ohne zum Controller zu gehen. Der Traffic wird bzw. sollte also niemals zentral vom CapsMan Controlelr ausgeleitet werden!
Ein zentrales Tunneling auf den Controller ist absolute WLAN Steinzeit und wegen der miesen Skalierbarkeit und Performance macht das kein Mensch mehr heutzutage.
Die APs müssen also logischerweise die Radius IP kennen und das Radius Server Passwort! Wenn du dort fälschlicherweise die 127.0.0.1 einträgst suchen sie den Radius Server logischerweise auf ihrer lokalen Hardware wo der natürlich nicht ist.
Bei den APs muss also immer zwingend die IP des Gerätes rein was den Radius Server betreibt also den User-Manager. Bei dir also die Management IP deines Switches auf dem der UM rennt, sprich die 192.168.1.1.
Vermutlich ist das der grobe Fehler warum bei dir keinerlei Radius Pakete von den APs am UM ankommen?!
14260433693
14260433693 28.08.2024 aktualisiert um 13:29:29 Uhr
Goto Top
Zitat von @aqui:

Der RADIUS Eintrag auf den APs selbst, ist ja wurscht - oder?
Nein keineswegs!
Normalerweise machst du im Datapath immer ein local Forwarding, sprich der WLAN Traffic wird lokal aus jedem AP ausgekoppelt und direkt auf die Switch Infrastruktur gesendet ohne zum Controller zu gehen. Der Traffic wird bzw. sollte also niemals zentral vom CapsMan Controlelr ausgeleitet werden!
Ein zentrales Tunneling auf den Controller ist absolute WLAN Steinzeit und wegen der miesen Skalierbarkeit und Performance macht das kein Mensch mehr heutzutage.
Die APs müssen also logischerweise die Radius IP kennen und das Radius Server Passwort! Wenn du dort fälschlicherweise die 127.0.0.1 einträgst suchen sie den Radius Server logischerweise auf ihrer lokalen Hardware wo der natürlich nicht ist.
Bei den APs muss also immer zwingend die IP des Gerätes rein was den Radius Server betreibt also den User-Manager. Bei dir also die Management IP deines Switches auf dem der UM rennt, sprich die 192.168.1.1.
Vermutlich ist das der grobe Fehler warum bei dir keinerlei Radius Pakete von den APs am UM ankommen?!

Das ist bei der Nutzung von CAPsMan leider absolut falsch , denn der übernimmt zentral die Wifi-Autorisierung für die CAPs das local Forwarding hat damit nichts zu tun denn das greift erst nach der Autorisierung, deswegen ist es legitim wenn hier der Radius Client des CAPsMAN auf 127.0.0.1 steht wenn man den lokalen Usermanager auf dem CAPsMan als Radius Server nutzt!

Nur wenn man die APs ohne CAPsMAN betreibt dann müsste man jeweils separate Radius Clients auf ihnen anlegen, so jedoch nicht!


Ich zitiere
https://help.mikrotik.com/docs/display/ROS/CAPsMAN
CAPsMAN Access-list
Access list on CAPsMAN is an ordered list of rules that is used to allow/deny clients to connect to any CAP under CAPsMAN control. When a client attempts to connect to a CAP that is controlled by CAPsMAN, CAP forwards that request to CAPsMAN. As a part of the registration process, CAPsMAN consults an access list to determine if a client should be allowed to connect. The default behavior of the access list is to allow a connection

Gruß
PowerOx
PowerOx 28.08.2024 um 12:17:27 Uhr
Goto Top
Ok - wie könnte ich da noch weiter ein troubleshooting machen …
Wenn es über den Kupferport vom PC aus geht, der AP aber Nix schickt, oder es nicht ankommt …
Ideen?
14260433693
14260433693 28.08.2024 aktualisiert um 13:38:42 Uhr
Goto Top
Zitat von @PowerOx:

Ok - wie könnte ich da noch weiter ein troubleshooting machen …
Wenn es über den Kupferport vom PC aus geht, der AP aber Nix schickt, oder es nicht ankommt …
Ideen?

Deine Config hat ja auch einen Fehler in der Accesslist.

Nutze die Config bzw. den Filter der Accesslist wie er oben schon mal gepostet wurde, damit klappt das auch 100% :
Dynamische V-LANs für Wifi (Capsman) und LAN auf Mikrotik mit RADIUS

Lösche also den bestehenden Accesslist Eintrag und erstelle ihn so neu
/caps-man access-list
add action=query-radius disabled=no ssid-regexp="^HONEYPOT$" vlan-mode=use-tag    

SSID entsprechend anpassen aber beachten das hier Regex zum Einsatz kommt, also das ^ und $ spezielle Bedeutung haben und so die komplette SSID auf Übereinstimmung getestet wird.
aqui
aqui 28.08.2024, aktualisiert am 03.09.2024 um 16:00:21 Uhr
Goto Top
das kann ohne Maske niemals klappen
"00:00:00:00:00:00" ist ein Wildcard Filter die MT per Default so setzt. Die bedeutet das alle Mac Adressen passieren dürfen sofern der Radius ein Access Accept schickt! Ist im Tutorial auch so gesetzt.
Mit dem neuen RouterOS sollte man sie aber leer (grau) lassen. (WinBox)
Siehe zum Setup der ACL auch HIER.
14260433693
14260433693 28.08.2024 aktualisiert um 15:11:07 Uhr
Goto Top
Dein Auszug aus der CapsMan Filterliste sagt übrigens kein Wort zu der Tatsache WIE die APs also die Radius Supplicants an die Radius Server Ziel IP kommen. Dynamisch über CapsMan geht das wenigstens nicht.
Müssen sie nicht denn ....
When a client attempts to connect to a CAP that is controlled by CAPsMAN, CAP forwards that request to CAPsMAN. As a part of the registration process, CAPsMAN consults an access list to determine if a client should be allowed to connect

Der CAPsMAN selbst leitet die Anfrage an den Radius weiter, der CAP muss also rein gar nix vom Radius Server selbst wissen ...
aqui
Lösung aqui 31.08.2024 aktualisiert um 17:30:32 Uhr
Goto Top
Hier kommt nochmal ein funktionierendes Live Setup aus der Praxis um dir noch etwas Orientierung zu geben...


back-to-top1.) CapsMan: Globales Configuration Setup


⚠️ Datapath global mit "Local Forwarding"!
(Beispiel der Übersicht halber nur für das 2,4 GHz Radio)
capsdyn1

back-to-top2.) CapsMan: Security, Accesslist und Interface


⚠️ Man achte hier auf das "Query Radius"!
capsdyn2

back-to-top3.) Bridge Setup, AP Port und Radius Check


  • ether 9 und 10 sind hier die AP Anschlussports am Switch. Diese müssen "Tagged" sein für die MSSID VLANs! PVID VLAN ist 1 (Management), Port Mode: Admit all
  • Radius Attribute entsprechend für Wireless richtig setzen. Hier über die User Gruppenzugehörigkeit.
  • Check mit NTRadPing zeigt das der Radius Server mit der Client Mac sauber funktioniert! (Den Unknown Vendor Error kannst du ignorieren weil der NTRadping das Mikrotik Wireless Attribut nicht im Dictionary hat. Zeigt aber das es korrekt übertragen wird!)
  • Das Mikrotik Radius Log zeigt erwartungsgemäß die erfolgreiche Authentisierung, sowohl beim Live WLAN Client als auch beim NTRadPing Check mit der Client Mac Adresse. (Logging entsprechend für den User Manager aktivieren!)
capsdyn3

back-to-top4. Fazit

Works as designed!! 😉👍
14260433693
14260433693 31.08.2024 aktualisiert um 12:48:23 Uhr
Goto Top
Nur als Ergänzung: Im DataPath die "Bridge" einzutragen hat bei der Nutzung von "Local Forwarding" keinen Effekt, das muss am CAP selbst in den CAP Settings festgelegt werden, denn dort werden die Wifi-Ports ja in dessen Bridge hinzugefügt und nicht am CAPsMan.

screenshot

Gruß
aqui
aqui 31.08.2024 aktualisiert um 17:36:10 Uhr
Goto Top
Stimmt. 👍 Ist korrigiert oben.
Stört aber auch nicht, denn der CAP wird eh automatisch auf die Bridge gesetzt wenn man im CAPS Mode bootet.. face-wink
capinfo
PowerOx
PowerOx 02.09.2024 um 10:45:12 Uhr
Goto Top
Guten Morgen ...
aktuell bin ich jetzt mit dem lokal RADIUS vom Mikrotik (UserManager) online - es funktioniert also.
Noch einmal danke für die Hilfe!!!
Solange der UserManager/Capsman noch nicht zusammen die Funktion des Default-VLANs bei nicht vorhandenem Eintrag im UserManager liefern, würde ich glaube ich noch auf den externen RADIUS auf der OPNSENSE umsteigen.
Damit ich da auch mein eigenes Verständnis noch ein wenig weiter bringe ... ein paar Nachfragen:
A >> wenn der CAPSMAN die RADIUS Anfragen ausleitet - sind dann die Router-Einträge für die CAPs überflüssig?
B >> bei den Kupfer-Porst, steht ja einem "Mischbetrieb" von dynamischen VLAN-Zuweisungen und "festen" (standard VLAN-Tutorial) nichts im Wege - oder spricht da aus Eurer Erfahrung was dagegen?
Gruß 🖖
14260433693
14260433693 02.09.2024 aktualisiert um 11:04:34 Uhr
Goto Top
Zitat von @PowerOx:

Damit ich da auch mein eigenes Verständnis noch ein wenig weiter bringe ... ein paar Nachfragen:
A >> wenn der CAPSMAN die RADIUS Anfragen ausleitet - sind dann die Router-Einträge für die CAPs überflüssig?
Was für "Router Einträge"? Auf dem CAP? Dort muss gar kein Radius Client vorhanden sein ... Authorization macht der CAPsMAN für die CAPs. Der Usermanager ist dann auch komplett aus dem Spiel, da kann dann alles weg, einfach nur auf dem CAPsMan unter "Radius" einen Radius Client anlegen der auf die OPNSense als Radius_Server zeigt.
B >> bei den Kupfer-Porst, steht ja einem "Mischbetrieb" von dynamischen VLAN-Zuweisungen und "festen" (standard VLAN-Tutorial) nichts im Wege - oder spricht da aus Eurer Erfahrung was dagegen?
Nein.
aqui
aqui 02.09.2024 aktualisiert um 11:08:20 Uhr
Goto Top
Solange der UserManager/Capsman noch nicht zusammen die Funktion des Default-VLANs bei nicht vorhandenem Eintrag im UserManager liefern
Trotz 3maligem Lesen bleibt der Sinn (oder Unsinn) dieses Satzes unverständlich?! Was sollen uns diese wirren und kryptischen Worte sagen??

Zu deinen Fragen:
A.)
Du meinst sicher die "Radius" (Server) Einträge, oder?? Wenn ja: Ja, sind sie. Kollege @14260433693 hat oben Recht. Ich hatte die überflüssigerweise mit eingetragen, sorry. Übrigens hättest du das einfach auch mal selber testen können indem du sie testweise bei einem CAP einmal weglässt. face-wink
Mit anderen Worten: Du kannst den CAP im Menü "System -> Reset Konfiguration"komplett nackt in den CAPS Mode rebooten und die Teile lernen dann alles automatisch vom CapsMan wie es sein soll.
"Router" Einträge gibt es bekanntlich NUR im Radius Server Setup (UM) als solchem. Diese sind natürlich NICHT obsolet! Die Supplicants (APs, Switches etc.) müssen sich ja beim Radius authentisieren damit er ihre Requests überhaupt annimmt und bearbeitet. Wenn du diese Einträge löschst scheitert doch logischerweise die Authentisierung der Supplicants selber am Radius Server (UM).
Die CAPs haben prinzipbedingt keine "Router" Einträge. Es gibt sie ausschliesslich nur am Server (UM)! Fragt sich also zu Recht von was du hier redest?! Du solltest wohl besser nochmal die Grundlagen zur Radius Authentisierung HIER und auch HIER in aller Ruhe nachlesen. 🧐
B.)
Dem steht in der Tat nichts im Wege. Warum sollte es das auch?? Ob du dort VLANs dynamisch zuweist oder nicht ist doch immer eine Frage der Radius Attribute!
Idealerweise weist man die einer User Gruppe zu und kann so später mit einem simplen Mausklick über die Gruppenzuordnung der User entscheiden ob diesem ein dynamisches VLAN zugeordnet werden soll oder eben nicht. Übrigens ist das beim WLAN nicht anders! face-wink
aqui
aqui 06.09.2024 um 11:01:41 Uhr
Goto Top
Wenn es das denn nun war bitte nicht vergessen deinen Thread dann als erledigt zu schliessen!!
Wie kann ich einen Beitrag als gelöst markieren?
PowerOx
PowerOx 18.09.2024 um 22:33:12 Uhr
Goto Top
@aqui
nur noch einmal zur Erklärung was ich damit meinte

"Solange der UserManager/Capsman noch nicht zusammen die Funktion des Default-VLANs bei nicht vorhandenem Eintrag im UserManager liefern"

mir ging es um die Funktion, dass ein Client der sich im W-LAN über die CAPs anmeldet, aber keinen gültigen MAC-Adressen-Eintrag im User-Manager hat, dann in eine "Gummizelle" geschoben wird - sprich die Option der Default-Config vom RADIUS ...
das wurde ja hier schon einmal diskutiert >>
Mikrotik - dyn-vLAN und MAC-auth in ROS 7.2

wenn das eben nur mit dem externen Radius Server der OPNSENSE geht, dann steige ich erst einmal auf die um
aqui
aqui 19.09.2024 um 09:27:35 Uhr
Goto Top
Kollege @colinardo hat ja diesbezüglich schon geantwortet. face-wink
Geht also bis dato erstmal nur der Workaround über die Mac Accessliste mit Wildcards oder der externe Radius Server ob auf Firewall oder externer HW.
PowerOx
PowerOx 19.09.2024 um 10:11:19 Uhr
Goto Top
super - und Danke noch einmal für Eure erstklassige Unterstützung
ich lege mir dann mal die Karten wie ich das umsetze
Gefühlt fände ich es immer noch einfacher mal eben einen User über WINBOX anzulegen,
als das jedes Mal die MAC-Address in der config-Datei vom FreeRadius einzutragen
wie siehst Du das?
"MARK AS SOLUTION" ist gesetzt
aqui
aqui 19.09.2024 aktualisiert um 10:29:17 Uhr
Goto Top
Kommt, wie immer, darauf an...
Die Mac Adressen sind bekanntlich ja im ersten Bereich immer nach Hersteller kodiert.
Wenn du dort nun z.B. den Vendor Code für Apple einträgst mit einer Wildcard erfasst du also schonmal alle iPads und iPhones usw. Gleiches kann man dann mit Google, Xiaomi usw. machen.
Die Frage ist ob man sich diese Mühe machen möchte oder nicht... face-wink
Deine Denke oben ist ja auch grundsätzlich falsch was den Freeradius anbetrifft. Dem sagst du ja ganz einfach: "Alles was du nicht kennst ins Gäste WLAN!" Sprich jede Mac die du nicht explizit erlaubt hast landet in einem Gäste oder Gummizellen Netz mit einem Captive Portal und Einmalpasswort.
Letztlich ist das natürlich einfacher umzusetzen. Da da aber immer persönliche Geschmackssache mitschwingt ist diese Frage als Externer schwer zu beantworten. Solltest du also immer selber nach deinen eigenen Vorgaben entscheiden.
PowerOx
PowerOx 03.10.2024 aktualisiert um 11:39:43 Uhr
Goto Top
Hi ...
ich habe das Setup jetzt versucht zu erweitern - sprich ich wollte einen ersten Switch hinter den CRS bringen, und den dann auch dynamisch über die MAC-Adressen die LAN Ports mit einem VLAN bestücken lassen.
Das Standard-VLAN-Setup funktioniert auch, nur die dynamische Variante nicht.
Es scheitert daran, dass der kaskadierte Switch nicht mit dem UserManager (RADIUS) kommunizieren kann.
Im Log kann ich sehen dass er es im MGMNT-VLAN (1) versucht, aber auf dem CRS sehe ich im LOG gar nix.
Zur Erinnerung - ein Test-PC mit NTRadPing kann das, ebenfalls im MGMNT-VLAN.
Ziel IP auf dem entfernten Switch ist 192.168.1.1 - damit kann der Test-PC auch arbeiten.

irgendeine Idee woran es noch liegen könnte, dass der da nicht an den RADIUS Server kommt -

picture 1

# 2024-10-03 11:21:52 by RouterOS 7.16
# software id = GCTS-7LD9
#
# model = L009UiGS
# serial number = HGD09GDS5FB
/interface bridge
add admin-mac=D4:01:C3:94:1F:A5 auto-mac=no name=bridge vlan-filtering=yes
/interface ethernet
set [ find default-name=ether1 ] name=1-Uplink-DC-Switch
set [ find default-name=ether2 ] name=2-local
set [ find default-name=ether3 ] name=3-local
set [ find default-name=ether4 ] name=4-local
set [ find default-name=ether5 ] name=5-local
set [ find default-name=ether6 ] name=6-local
set [ find default-name=ether7 ] name=7-local
set [ find default-name=ether8 ] name=8-mgmnt-backup
/interface vlan
add interface=bridge name=Mgmnt-VLAN vlan-id=1
/interface list
add comment=defconf name=WAN
add comment=defconf name=LAN
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
/ip pool
add name=default-dhcp ranges=192.168.88.10-192.168.88.254
/port
set 0 name=serial0
/disk settings
set auto-media-interface=bridge auto-media-sharing=yes auto-smb-sharing=yes
/interface bridge port
add bridge=bridge comment=defconf interface=2-local
add bridge=bridge comment=defconf interface=3-local
add bridge=bridge comment=defconf interface=4-local
add bridge=bridge comment=defconf interface=5-local
add bridge=bridge comment=defconf interface=6-local
add bridge=bridge comment=defconf interface=7-local
add bridge=bridge interface=sfp1
add bridge=bridge interface=1-Uplink-DC-Switch
/ip neighbor discovery-settings
set discover-interface-list=LAN
/ip settings
set max-neighbor-entries=14336
/ipv6 settings
set max-neighbor-entries=7168
/interface bridge vlan
add bridge=bridge comment=Mgmnt-VLAN tagged=1-Uplink-DC-Switch,bridge \
    vlan-ids=1
add bridge=bridge comment=Server-VLAN tagged=1-Uplink-DC-Switch vlan-ids=10
add bridge=bridge comment=Private-VLAN tagged=1-Uplink-DC-Switch vlan-ids=20
add bridge=bridge comment=GUEST-VLAN tagged=1-Uplink-DC-Switch vlan-ids=30
add bridge=bridge comment=IoT-VLAN tagged=1-Uplink-DC-Switch vlan-ids=40
add bridge=bridge comment=HONEYPOT tagged=1-Uplink-DC-Switch vlan-ids=99
/interface dot1x server
add auth-types=mac-auth interface=6-local reject-vlan-id=99
/interface list member
add interface=2-local list=LAN
add interface=3-local list=LAN
add interface=4-local list=LAN
add interface=5-local list=LAN
add interface=6-local list=LAN
add interface=7-local list=LAN
add interface=8-mgmnt-backup list=LAN
add interface=sfp1 list=LAN
add interface=Mgmnt-VLAN list=LAN
add interface=1-Uplink-DC-Switch list=WAN
/ip address
add address=192.168.1.20/24 interface=Mgmnt-VLAN network=192.168.1.0
/ip dhcp-client
add comment=defconf disabled=yes interface=bridge
/ip dhcp-server
# DHCP server can not run on slave interface!
add address-pool=default-dhcp interface=2-local name=defconf
/ip dhcp-server network
add address=0.0.0.0/24 comment=defconf dns-server=0.0.0.0 gateway=0.0.0.0 \
    netmask=24
/ip dns
set allow-remote-requests=yes servers=8.8.8.8
/ip dns static
add address=192.168.1.20 comment=defconf name=router.lan type=A
/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" \  
    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
add action=masquerade chain=srcnat src-address=!127.0.0.1
/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" \  
    dst-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
/radius
add address=192.168.1.1 require-message-auth=no service=login,dot1x \
    src-address=192.168.1.1 timeout=3s
/system clock
set time-zone-name=Europe/Berlin
/system identity
set name="MikroTik-Switch-Office-Ralf Wall"  
/system logging
add topics=debug
add topics=radius
add topics=firewall
add topics=manager
/system note
set show-at-login=no
/system routerboard settings
set enter-setup-on=delete-key
/tool mac-server
set allowed-interface-list=LAN
/tool mac-server mac-winbox
set allowed-interface-list=LAN
aqui
aqui 03.10.2024 aktualisiert um 15:58:44 Uhr
Goto Top
Es scheitert daran, dass der kaskadierte Switch nicht mit dem UserManager (RADIUS) kommunizieren kann.
Das ist dann klar das es nicht klappt!!
Du musst zuallererst natürlich sicherstellen das die Management IP dieses Switches mit dem Router Manager kommunizieren kann. Pingcheck reicht da.
Je nachdem in welchem VLAN du die Switch Mgmt IP Adresse hast pingst du von einem Endgerät in diesem VLAN den UM oder sofern der Switch eine Ping Funktion hat auch über die.
Auch andersrum muss es klappen also der UM sollte über seine Ping Funktion die Switch Management IP pingen können.
Das muss natürlich klappen ansonsten musst du mit dem Radius erstmal gar nicht weitermachen.
irgendeine Idee woran es noch liegen könnte
  • Default Route auf dem Switch auf das Gateway hast du eingetragen?? Das ist aber nur dann relevant wenn sich die Management IP des Switches und der UM in unterschiedlichen IP Netzen befinden.
Hier wäre hilfreich zu wissen mit welchem Port jeweils der Switch und der UM verbunden sind?
  • IP Adresse des Switches hast du unter "Router" im UM eingetragen? Ansonsten nimmt der UM keine eingehenden Radius Pakete an vom Switch.
PowerOx
PowerOx 03.10.2024 um 18:34:55 Uhr
Goto Top
Ein troubleshooting per Ping hatte ich schon gemacht / hätte ich sagen können - sorry
Der Link am CRS hängt am Port 43 - die andere Seite am Port 1 / beide sind im Management VLAN 1 drin - das wird auch brav im Standard VLAN setup inkl DHCP durchgereicht
Mit welchem Interface will der kaskadierte Switch denn den Connect für den Radius-Client machen???
Standard Ping im Terminal geht …
Der Router im UM auf dem CRS ist drin - 192.168.1.20
aqui
aqui 04.10.2024 aktualisiert um 10:50:42 Uhr
Goto Top
beide sind im Management VLAN 1 drin -
Und da sieht man auch gleich den Kardinalsfehler den du begangen hast indem du am Uplink das VLAN 1 Interface fälschlicherweise taggst! face-sad (comment=Mgmnt-VLAN tagged=1-Uplink-DC-Switch vlan-ids=1)
Das ist ein Fehler.
Hier reicht es den Port lediglich als Bridge Memberport einzustellen, Mode: accept all und PVID 1. Im VLAN Setting der Bridge setzt man dann lediglich NUR die Bridge als Interface.
VLAN 1 sollte man immer als PVID VLAN auf Uplink Trunks setzen weil das auch immer der Default aller VLAN Switches ist.
Du kannst es hier an einem funktionierenden Beispiel im Tutorial auch explizit sehen. "Ether 5" ist hier der Uplink auf den angeschlossenen VLAN Switch:
mtvlan
Der an ether 5 angeschlossene VLAN Switch hat eine identische Konfig dieses Ports.
Im Screenshot offenbart sich gleich auch noch ein weiterer Fehler das du vergessen hast die VLAN Bridge selber als Interface für alle VLANs einzustellen.
Das da dann die Weitergabe der VLANs scheitert liegt auf der Hand.
Bitte wirklich noch einmal in aller Ruhe am Wochenende das VLAN Tutorial lesen und auch genau so umsetzen! Dann passieren auch solche Fehler nicht. face-wink

Mit welchem Interface will der kaskadierte Switch denn den Connect für den Radius-Client machen???
Der an Port 1 bzw. 43 kaskadierte VLAN Switch arbeitet ja rein nur als L2 VLAN Switch, hat also nur ein einziges IP Interface und das ist das im Management VLAN 1. Folglich kann er also einzig NUR mit dieser Absender IP den Radius Request an die UM IP Adresse im VLAN 1 senden die ihm ja auch konfiguriert ist bzw. umgekehrt im UM unter "Router"!
Diese Requests landet dann am UM auch auf dem VLAN 1, was man im Radius Debugger ja auch sehen kann weil die Absender IP dort mitprotokolliert wird wenn man das Logging entsprechend anpasst.
Dein UM arbeitet ja sicher auch im VLAN 1 bzw. ist auf das VLAN 1 IP Interface gemappt. So bleibt die Radius Authentisierung rein im VLAN 1 Management Netz...was sie ja auch soll.
Dein Problem ist sehr wahrscheinlich die falsche Konfiguration des Trunk/Uplink Ports zw. Router und Switch am Port 1 bzw. 43, denn daraus resultieren die Connectivity Probleme.
PowerOx
PowerOx 08.10.2024 um 15:47:04 Uhr
Goto Top
Hi ...
ich habe jetzt noch einmal neu gestartet und mit einem sauberen Setup begonnen.
im Ergebnis bin ich leider nicht weiter ...
ein Ping vom "entfernten" Mikrotik Switch funktioniert - aber der RADIUS Request geht immer noch ins leere.
Folgenden Eintrag kann ich im log sehen [bei beiden Versuchen, gegen den CRS und die OPNSENSE] ->
error01

zum Troubleshooting habe ich parallel noch einmal den FREERADIUS der OPNSENSE konfiguriert und mit NTRADPING sowie dem entfernten Switch angesprochen - NTRADPING kann den Request sauber absetzen,
der Switch kommt ebenfalls nicht durch - das Log auf der OPNSENSE bleibt leer
Was könnte dem Switch noch fehlen, wenn er doch IP-connectivity hat - pings gehen ja
aqui
aqui 08.10.2024 um 16:39:40 Uhr
Goto Top
ein Ping vom "entfernten" Mikrotik Switch funktioniert
Das ist wieder so Wischiwaschi. face-sad
  • WAS pingst du?
  • Mit welcher Absender IP pingst du? (Reiter "Advanced" im Winbox Ping Tool)

Es gibt nur wenige wichtige Regeln dafür die einzuhalten sind:
  • Der Ping muss mit der Absender IP gesendet werden die der Switch zum Senden des Radius Requests benutzt.
  • Das Ziel muss das Interface sein bzw. dessen IP das der Radius Server (User Manager) benutzt. Hast du den auf ein festes Interface gebunden muss es dieses sein. Ist es ungebunden ist es egal welche IP es ist sie muss nur routingtechnisch beidseitig erreichbar sein
  • Der sendende Switch (Authenticator) MUSS im Radius Server mit seiner Absender IP konfiguriert sein (Reiter "Routers"). Ist er das nicht oder sendet der Switch mit einer dazu nicht korrespondierenden Absender IP rennt der Request ins Nirwana.

Leider hast du es wieder versäumt zu diesen Punkten die entsprechenden Screenshots zu schicken so das man wieder Kristallkugel spielen muss... face-sad

Mit OPNsense und Freeradius musst du gar nicht extra fummeln. NTRadPing arbeitet auch wunderbar mit dem Usermanager.
Du musst den NTRadPing PC bzw. seine IP nur auch als Authenticator (den er ja simuliert) unter "Routers" um UM eintragen. Dann geht das ebenso problemlos.
Es hört sich aber eher an das du ein IP Connectivity Problem hast?
Hast du irgendwelche Firewall Regeln aktiv zwischen den Netzen?!
PowerOx
PowerOx 08.10.2024 um 17:11:59 Uhr
Goto Top
Hi ....

der Ping läuft vom kaskadierten Switch auf den zentralen Switch im Management-VLAN [ID1]
Quelle - IP 192.168.1.30 / Management-VLAN-Interface kaskadierter Switch
Ziel - IP 192.168.1.1 / Management-VLAN-Interface zentraler Switch

Die Ziel IP ist auch die, gegen die der NTRADPING auch sauber arbeitet
screenshot 2024-10-08 at 16.57.10
screenshot 2024-10-08 at 16.55.06

der Router-Eintrag ist vorhanden ...
screenshot 2024-10-08 at 16.57.40

Die Übung mit der OPNSENSE habe ich nur gemacht, um sicher zu gehen dass es nicht doch irgendwie am zentralen Switch oder dem Uplink-Port hängt ...

Firewall und Co ist auf dem kaskadiertem Switch nicht konfiguriert ...
auf dem zentralen Switch - standard / aber den habe ich als "sauber" eingestuft, denn der NTRADPING vom Test-PC geht da ja sauber durch

Flags: X - disabled, I - invalid; D - dynamic 
 0  D chain=forward action=jump jump-target=hs-unauth hotspot=from-client,!auth 

 1  D chain=forward action=jump jump-target=hs-unauth-to hotspot=to-client,!aut>

 2  D chain=input action=jump jump-target=hs-input hotspot=from-client 

 3  D chain=input action=drop protocol=tcp hotspot=!from-client 
      dst-port=64872-64875 

 4  D chain=hs-input action=jump jump-target=pre-hs-input 

 5  D chain=hs-input action=accept protocol=udp dst-port=64872 

 6  D chain=hs-input action=accept protocol=tcp dst-port=64872-64875 

 7  D chain=hs-input action=jump jump-target=hs-unauth hotspot=!auth 

 8  D chain=hs-unauth action=reject reject-with=tcp-reset protocol=tcp 

 9  D chain=hs-unauth action=reject reject-with=icmp-net-prohibited 

10  D chain=hs-unauth-to action=reject reject-with=icmp-host-prohibited 

11 X  ;;; place hotspot rules here
      chain=unused-hs-chain action=passthrough 
aqui
aqui 08.10.2024 aktualisiert um 17:35:37 Uhr
Goto Top
Fang doch erstmal am gleichen Switch an wo auch der UM rennt. Packe da den NTRadPing ins Management VLAN und teste damit zuallerst wasserdicht das die Radius Authentisierung mit dem NTRadPing fehlerlos klappt:
ntradp
Ist das sichergestellt, dann setzt du den NTRadPing PC an den abgesetzten Switch und auch dort ins Management VLAN. Dabei behält er ja seine IP und du musst nichts am Radius Setup ändern.
Dann wiederholst du die obige Prozedur.
Klappt das, dann kannst du sicher sein das grundsätzlich die Radius Auth auch über den Tagged Uplink zwischen den Switches zum UM sauber funktioniert.
Ist dem so musst du nur noch rausfinden was dann an diesem betreffenden Switch falsch konfiguriert ist und warum der keine Authentication Frames an den UM sendet.
Da gibts nur 2 mögliche Fehlerquellen:
  • Die Switch IP fehlt als Authenticator in der "Routers" Definition des UM
  • Die Port Authentisierung der Ports an denen Endgeräte authentisiert werden sollen ist falsch oder fehlerhaft an diesem Switch konfiguriert so das schon erst gar keine Radius Request getriggert werden. Leider fehlt auch hier wieder ein Screenhsot oder eine entspr. Konfig um das verifizieren zu können. face-sad
Immer strategisch vorgehen! face-wink
aqui
aqui 08.10.2024 aktualisiert um 19:07:46 Uhr
Goto Top
Sofern dein abgesetzter Switch mit der Port Authentisierung ein Mikrotik Switch ist findest du hier ein entsprechends Banalsetup für eine einfache Mac Authentisierung an den Switchports ether2 und ether3.
switch

Ein parallel auch auf den Mikrotik UM arbeitender Cisco Catalyst Switch sieht so aus von der Port/Radius Konfig:
aaa new-model
aaa authentication login default local
aaa authentication dot1x default group radius
aaa authorization exec default local
aaa authorization network default group radius
aaa accounting dot1x default start-stop group radius
!
interface GigabitEthernet0/1
 description Authentication Mac only
 switchport mode access
 switchport nonegotiate
 authentication port-control auto
 authentication periodic
 mab
 spanning-tree portfast
!
ip radius source-interface Vlan1
radius-server attribute 8 include-in-access-req
radius-server host 10.1.10.254 auth-port 1812 acct-port 1813 key testing123
radius-server vsa send authentication 

Ein weiterer paralleler Cisco SG300 Switch mit Mac Auth im gleichen Netz:
cirad
Alle 3 Switches authentisiert der Mikrotik UM problemlos und ohne jeglichen Fehler.
Works as designed!!! 👍 😉
Viel mehr "Silbertablett" geht jetzt nicht... face-wink
PowerOx
PowerOx 08.10.2024 um 18:31:15 Uhr
Goto Top
lokal - also alles innerhalb vom CRS bzw. auch was direkt angeschlossen ist ... da geht ja die Radius-Kommunikation ...
ich habe jetzt auch den Test-PC mal an den kaskadierten Switch gesteckt - und auch hier geht der NTRADPING sauber durch ... 😫
nur der Switch selbst schafft es nicht für einen Port einen Request abzuschicken ...


screenshot 2024-10-08 at 18.00.58
screenshot 2024-10-08 at 18.30.26

# 2024-10-08 18:26:19 by RouterOS 7.12.1
# software id = PRBV-A80F
#
# model = RB960PGS
# serial number = HGA09Q4HF4B
/interface bridge
add igmp-snooping=yes ingress-filtering=no name=Bridge vlan-filtering=yes
/interface ethernet
set [ find default-name=ether1 ] name=1-local
set [ find default-name=ether2 ] name=2-local
set [ find default-name=ether3 ] name=3-local
set [ find default-name=ether4 ] name=4-local
set [ find default-name=ether5 ] name=5-local
/interface vlan
add interface=Bridge name=Mgmnt-VLAN vlan-id=1
/interface lte apn
set [ find default=yes ] ip-type=ipv4 use-network-apn=no
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
/interface bridge port
add bridge=Bridge ingress-filtering=no interface=1-local
add bridge=Bridge ingress-filtering=no interface=2-local
add bridge=Bridge ingress-filtering=no interface=3-local
add bridge=Bridge ingress-filtering=no interface=4-local
add bridge=Bridge ingress-filtering=no interface=5-local
/ip settings
set max-neighbor-entries=8192
/ipv6 settings
set disable-ipv6=yes max-neighbor-entries=8192
/interface bridge vlan
add bridge=Bridge comment=Mgmnt-VLAN tagged=Bridge vlan-ids=1
add bridge=Bridge comment=Server-VLAN tagged=Bridge,1-local vlan-ids=10
add bridge=Bridge comment=User-VLAN tagged=Bridge,1-local vlan-ids=20
add bridge=Bridge comment=Guest-VLAN tagged=Bridge,1-local vlan-ids=30
add bridge=Bridge comment=IoT-VLAN tagged=Bridge,1-local vlan-ids=40
add bridge=Bridge comment=HONEYPOT tagged=Bridge,1-local vlan-ids=99
/interface dot1x server
add auth-types=mac-auth interface=5-local
/interface ovpn-server server
set auth=sha1,md5
/ip address
add address=192.168.1.30/24 interface=Mgmnt-VLAN network=192.168.1.0
/ip dns
set servers=192.168.1.1,8.8.8.8,1.1.1.1
/ip route
add disabled=no dst-address=0.0.0.0/0 gateway=192.168.1.1
/radius
add address=192.168.1.1 service=login,dot1x src-address=192.168.1.1 timeout=\
    3s
add address=10.99.1.254 disabled=yes service=login,dot1x src-address=\
    192.168.1.1 timeout=3s
/radius incoming
set accept=yes
/routing bfd configuration
add disabled=no interfaces=all min-rx=200ms min-tx=200ms multiplier=5
/system clock
set time-zone-name=Europe/Berlin
/system identity
set name=SW-Office-Ralf-Table
/system logging
add topics=radius
add topics=manager
add topics=firewall
/system note
set show-at-login=no
aqui
aqui 08.10.2024 aktualisiert um 19:06:31 Uhr
Goto Top
nur der Switch selbst schafft es nicht für einen Port einen Request abzuschicken ...
Vergleiche dein Radius Setup an dem Switch mit dem dir geposteten Setup von oben!!!
Irgendwo hast du da einen Fehler gemacht.... 🧐

Auf den ersten, flüchtigen Blick fehlen dort vollständig:
  • Das Radius Server Setup so das der Switch überhaupt weiss wo und für welche Dienste er den Radius erreichen kann.
  • Unter "Dot1x" der Mode (Server) und die Aktivierung der LAN Ports auf denen er authentisieren soll.
Da muss man sich dann auch nicht wundern das der Switch stumm bleibt! face-wink
PowerOx
PowerOx 09.10.2024 um 13:50:41 Uhr
Goto Top
Hi ...
so - läuft, heute nacht um 01:20 war es dann mal soweit / sorry dass ich Dich da noch so lange mit behelligt habe.
Das Problem war im Radius Server/Client Eintrag auf dem kaskadiertem Switch muss auch das Src. Address im Bereich mit der dementsprechenden IP gefüllt sein - sprich die 192.168.1.30
ansonsten scheint er nur rein über die Ziel-Adresse nicht zu wissen wie die Verbindung aufzubauen ist.

screenshot 2024-10-09 at 13.44.29
aqui
aqui 09.10.2024 aktualisiert um 14:06:31 Uhr
Goto Top
👏 👍 Glückwunsch! War ja ne schwere Geburt mit dir!
im Radius Server/Client Eintrag
Einen "Client" Eintrag hat der Switch in der Regel niemals. Den braucht er nur in ganz seltenen Fällen wenn der Switch sich selber als Dot1x Client (und nur bei .1x nie aber bei MAB!!) an einem gesicherten Port authentisieren muss. Sowas kommt in einer Netz Infrastruktur nie oder nur sehr sehr selten vor. Die "Client" Settings unter "Dot1x" sind also immer LEER.
muss auch das Src. Address im Bereich mit der dementsprechenden IP gefüllt sein
Nicht zwingend!
Muss es nur wenn man auch Accounting machen will, was aber niemand wirklich an MAB oder Dot1x Ports im LAN macht. Wozu sollte das auch gut sein?! Genau deshalb hakt man ja auch kein Accounting an im Setup an solchen Ports! face-wink
acc
Damit wird dann auch dieser Eintrag irrelevant für die eigentliche Radius Funktion.
So richtig kann das also nicht die Ursache gewesen sein, es sei denn du wolltest wirklich zwingend ein Accounting machen?! 🤔
HoLaHey
HoLaHey 16.10.2024 um 11:19:03 Uhr
Goto Top
Ich bekomm es nicht ans laufen. Über LAN klappt die dynamische Zuweisung der VLAN´s via Radius( interner Radius (UM)des Mikrotik ) , aber über WLAN nicht.

Hier mal mein Setup:

Meine Interfaces:
eth1 ist mein Uplink ins Internet
eth2 geht direkt zum AP ohne Switch
2024-10-16 10_21_29-admin@6c_3b_6b_29_31_c2 (labor) - winbox (64bit) v7.15.3 on hex (mipsbe)

Ich habe eine Bridge
2024-10-16 10_25_37-admin@6c_3b_6b_29_31_c2 (labor) - winbox (64bit) v7.15.3 on hex (mipsbe)

Folgende Ports sind in der Bridge
ports bridge

VLAN´s auf der Bridge
2024-10-16 10_28_18-admin@6c_3b_6b_29_31_c2 (labor) - winbox (64bit) v7.15.3 on hex (mipsbe)
2024-10-16 10_30_31-admin@6c_3b_6b_29_31_c2 (labor) - winbox (64bit) v7.15.3 on hex (mipsbe)
2024-10-16 10_30_10-admin@6c_3b_6b_29_31_c2 (labor) - winbox (64bit) v7.15.3 on hex (mipsbe)
2024-10-16 10_30_19-admin@6c_3b_6b_29_31_c2 (labor) - winbox (64bit) v7.15.3 on hex (mipsbe)

Der Radius ist wie folgt konfiguriert:
2024-10-16 10_32_59-admin@6c_3b_6b_29_31_c2 (labor) - winbox (64bit) v7.15.3 on hex (mipsbe)
2024-10-16 10_34_11-admin@6c_3b_6b_29_31_c2 (labor) - winbox (64bit) v7.15.3 on hex (mipsbe)

Der UserManger sieht so aus:
2024-10-16 10_37_02-admin@6c_3b_6b_29_31_c2 (labor) - winbox (64bit) v7.15.3 on hex (mipsbe)

Der WLAN User im UM sieht so aus:
wlan user

Das WLAN Setup im Capsman sieht so aus:
cap konfig 1
cap konfig 2
cap konfig 3

Im Log sehe ich dann immer refected , forbidden by RADIUS
radius

Kann mir jemand helfen ? Ich blicks grad nicht
cap2
cap1
cap3
150704
150704 16.10.2024 aktualisiert um 11:50:24 Uhr
Goto Top
Wenn der Haken hier bei "Use Profiles" gesetzt ist musst du im User-Manager ein "User-Profil" für den User anlegen sonst wird der nicht zugelassen, ansonsten Haken entfernen ...

screenshot
aqui
aqui 16.10.2024 aktualisiert um 12:19:43 Uhr
Goto Top
Oben ist doch ein funktionierndes, wasserdichtes Live Setup was du mit deinem vergleichen kannst:
Dynamische V-LANs für Wifi (Capsman) und LAN auf Mikrotik mit RADIUS

Die Angabe des "Tunnel-Private-Group-ID" Attributes bei WiFi Adressen in der User Definition des Radius oben ist übrigens völlig sinnfrei, denn Mikrotik ignoriert bekanntlich dieses Radius Attribut bei WiFi vollständig und reagiert nur auf sein Vendor spezifisches Attribut "Mikrotik-Wireless-VLANID"!
Die "Tunnel-Private-Group-ID" sollte man allso deshalb bei WiFi Usern intelligenterweise gleich weglassen!
mtrad

Es macht zusätzlich sehr wenig Sinn das bei jedem User immer und immer wieder neu anzugeben.
Idealerweise legt man hierfür IMMER eine User-Group z.B. "WiFi-VLANx" an, die diese Attribute beinhaltet und weist dann den angelegten Usern einfach diese Gruppe zu.
So ist man einfach und schnell in der Lage den Usern per Mausklick ihre richtige Gruppe zuzuweisen!
Gewusst wie...! face-wink
HoLaHey
HoLaHey 16.10.2024 um 12:02:35 Uhr
Goto Top
Selbst wenn ich den Haken raus nehmen bekomm ich die gleiche Fehlermeldung
HoLaHey
HoLaHey 16.10.2024 um 12:05:00 Uhr
Goto Top
Ich hab die Defalut genutz. Attribute sollten passen
2024-10-16 12_03_38-admin@6c_3b_6b_29_31_c2 (labor) - winbox (64bit) v7.15.3 on hex (mipsbe)
150704
150704 16.10.2024 aktualisiert um 12:10:12 Uhr
Goto Top
Zitat von @HoLaHey:

Ich hab die Defalut genutz. Attribute sollten passen
2024-10-16 12_03_38-admin@6c_3b_6b_29_31_c2 (labor) - winbox (64bit) v7.15.3 on hex (mipsbe)

Nein um die geht es dabei nicht !!!! Sonder um die User-Profiles

screenshot

Bei gesetztem Haken müssen hier dem User ein angelegtes Profil zugeordnet sein!
HoLaHey
HoLaHey 16.10.2024 um 12:08:11 Uhr
Goto Top
Zitat von @aqui:

Oben ist doch ein funktionierndes, wasserdichtes Live Setup was du mit deinem vergleichen kannst:
Dynamische V-LANs für Wifi (Capsman) und LAN auf Mikrotik mit RADIUS

Die Angabe des "Tunnel-Private-Group-ID" Attributes bei WiFi Adressen in der User Definition des Radius oben ist übrigens völlig sinnfrei, denn Mikrotik ignoriert bekanntlich dieses Radius Attribut vollständig und reagiert nur auf sein Vendor spezifisches Attribut "Mikrotik-Wireless-VLANID"! Sollte man allso deshalb intelligenterweise gleich weglassen!
mtrad

Es macht zusätzlich sehr wenig Sinn das bei jedem User immer und immer wieder neu anzugeben.
Idealerweise legt man hierfür IMMER eine User-Group z.B. "WiFi-VLANx" an, die diese Attribute beinhaltet und weist dann den angelegten Usern einfach diese Gruppe zu.
So ist man einfach und schnell in der Lage den Usern per Mausklick ihre richtige Gruppe zuzuweisen!
Gewusst wie...! face-wink


Hab ich ja gemacht, nur leider gehts nicht und ich blick nicht warum nicht
aqui
aqui 16.10.2024 aktualisiert um 12:13:41 Uhr
Goto Top
Hast du denn den User mit der Mac Adresse 8E:89:69:12:B6:A6 auch als User in den UM eingetragen?? Dein Screenshot oben zeigt ja einen anderen User! face-sad
Fakt ist ja das dieser User durch den Radius abgelehnt wird was bedeutet das er entweder gar nicht konfiguriert wurde oder fehlerhaft konfiguriert wurde. (Tippfehler)
Hast du diesen User einmal mit dem NTRadPing Testtool getestet und vorab verifiziert?
150704
150704 16.10.2024 aktualisiert um 12:19:42 Uhr
Goto Top
Manager Log Topics aktivieren, dann siehst du warum der UM den User rejected, Passende MAC und richtiges AAA Profile im CAPsMAN natürlich vorausgesetzt ...

screenshot

Und für eine reine MAC-Auth ist rein die PAP Methode im Gruppen-Profil ausreichend, da braucht man nicht alles anhaken.
HoLaHey
HoLaHey 16.10.2024 um 13:02:29 Uhr
Goto Top
Benutzer und Profil sind angelegt
benutzer
group
HoLaHey
HoLaHey 16.10.2024 um 13:04:44 Uhr
Goto Top
Zitat von @150704:

Manager Log Topics aktivieren, dann siehst du warum der UM den User rejected, Passende MAC und richtiges AAA Profile im CAPsMAN natürlich vorausgesetzt ...

screenshot

Und für eine reine MAC-Auth ist rein die PAP Methode im Gruppen-Profil ausreichend, da braucht man nicht alles anhaken.

Da steht nur tx Access Reject to ...
log
HoLaHey
HoLaHey 16.10.2024 um 13:18:42 Uhr
Goto Top
Mist Profil Haken war noch drin, hat er nicht gespeichert. Jetzt sehe ich das er zugelassen wird, lauft sich aber dann ins leere weil er keine IP Adresse bekommt.
log2
150704
150704 16.10.2024 aktualisiert um 13:32:15 Uhr
Goto Top
Das Attribut Mikrotik-Wireless-VLANIDtype sollte man auch noch mit dem Wert 0 übermitteln :

https://help.mikrotik.com/docs/display/ROS/User+Manager#UserManager-Attr ...

Und der DHCP-Server natürlich auf dem VLAN-Interface laufen.
HoLaHey
HoLaHey 16.10.2024 um 13:32:31 Uhr
Goto Top
Zitat von @150704:

Das Attribut Mikrotik-Wireless-VLANIDtype sollte man auch noch mit dem Wert 0 übermitteln :

https://help.mikrotik.com/docs/display/ROS/User+Manager#UserManager-Attr ...

Hab ich hinzugefügt, keine Änderung, User wird zugelassen jedoch seh ich im Log keine DHCP Anfrage von der MAC Addresse
150704
150704 16.10.2024 aktualisiert um 13:39:29 Uhr
Goto Top
Dann ist das tagging am CAP fehlerhaft. Welche da im Einsatz sind steht nirgendwo. Am besten einfach nur die Plaintext config posten sowohl vom Capsman als auch vom CAP, von Bildchen wird man ja kirre und es fehlt immer die Hälfte ...
HoLaHey
HoLaHey 16.10.2024 aktualisiert um 13:45:34 Uhr
Goto Top
Zitat von @150704:

Dann ist das tagging am CAP fehlerhaft. Welche da im Einsatz sind steht nirgendwo. Am besten einfach nur die Plaintext config posten sowohl vom Capsman als auch vom CAP, von Bildchen wird man ja kirre und es fehlt immer die Hälfte ...

# 2024-10-16 13:40:18 by RouterOS 7.15.3
# software id = VFXP-GQ9S
#
# model = RB750Gr2
# serial number = 64FB06BB920C
/interface bridge
add name=br-vlan vlan-filtering=yes
/interface ethernet
set [ find default-name=ether1 ] name="eth1-uplink WAN"  
set [ find default-name=ether2 ] name=eth2-zum_AP1
/caps-man interface
add channel.band=2ghz-b .control-channel-width=20mhz .extension-channel=\
    disabled .frequency=2442 configuration.country=germany .installation=any \
    .mode=ap .multicast-helper=full .ssid=Labor datapath.local-forwarding=yes \
    disabled=no l2mtu=1600 mac-address=CC:2D:E0:1E:D6:C6 master-interface=\
    none name=AP-WLAN-2Ghz radio-mac=CC:2D:E0:1E:D6:C6 radio-name=\
    CC2DE01ED6C6 security.authentication-types=wpa2-psk .disable-pmkid=yes \
    .encryption=aes-ccm .group-encryption=aes-ccm
add disabled=no l2mtu=1600 mac-address=CC:2D:E0:1E:D6:C7 master-interface=\
    none name=AP-WLAN-5Ghz radio-mac=CC:2D:E0:1E:D6:C7 radio-name=\
    CC2DE01ED6C7
/interface vlan
add interface=br-vlan name=vlan1 vlan-id=1
add interface=br-vlan name=vlan2 vlan-id=2
add interface=br-vlan name=vlan3 vlan-id=3
/interface wireless security-profiles
set [ find default=yes ] supplicant-identity=MikroTik
/ip pool
add name=dhcp_pool0 ranges=172.10.1.1-172.10.1.253
add name=dhcp_pool1 ranges=172.10.2.1-172.10.2.253
add name=dhcp_pool2 ranges=172.10.3.1-172.10.3.253
add name=dhcp_pool3 ranges=172.10.99.1-172.10.99.253
/ip dhcp-server
add address-pool=dhcp_pool0 always-broadcast=yes interface=vlan1 lease-time=\
    1m name=dhcp1
add add-arp=yes address-pool=dhcp_pool1 interface=vlan2 lease-time=1m name=\
    dhcp2
add address-pool=dhcp_pool2 interface=vlan3 name=dhcp3
add address-pool=dhcp_pool3 interface=br-vlan name=dhcp4
/user-manager limitation
add name=1Day rate-limit-rx=10000000B rate-limit-tx=10000000B uptime-limit=1d
/user-manager profile
add name=prof1 name-for-users=prof1 validity=unlimited
/user-manager user
add attributes=Tunnel-Medium-Type:6,Tunnel-Private-Group-ID:2,Tunnel-Type:13 \
    name=00:E0:4C:36:03:A0
add attributes="Tunnel-Medium-Type:6,Tunnel-Private-Group-ID:2,Tunnel-Type:13,\  
    Mikrotik-Wireless-VLANID:2,Mikrotik-Wireless-VLANIDtype:0" name=\  
    92:4D:86:5F:F3:1D
add attributes="Tunnel-Medium-Type:6,Tunnel-Private-Group-ID:2,Tunnel-Type:13,\  
    Mikrotik-Wireless-VLANID:2" name=C6:C9:FA:FE:53:E2  
add attributes="Tunnel-Medium-Type:6,Tunnel-Private-Group-ID:2,Tunnel-Type:13,\  
    Mikrotik-Wireless-VLANID:2,Mikrotik-Wireless-VLANIDtype:0" name=\  
    BE:CC:F4:B7:1B:36
add attributes="Tunnel-Medium-Type:6,Tunnel-Private-Group-ID:1,Tunnel-Type:13,\  
    Mikrotik-Wireless-VLANID:1" name=2E:8C:0D:8A:CA:A5  
add attributes=Tunnel-Medium-Type:6,Tunnel-Private-Group-ID:1,Tunnel-Type:13 \
    name=2D:E0:1E:D6:C4:00
/user-manager user group
set [ find default-name=default ] attributes="Tunnel-Medium-Type:6,Tunnel-Priv\  
    ate-Group-ID:2,Tunnel-Type:13,Mikrotik-Wireless-VLANID:2"  
add attributes=\
    Tunnel-Medium-Type:13,Tunnel-Medium-Type:6,Tunnel-Private-Group-ID:3 \
    inner-auths=ttls-pap,ttls-chap,ttls-mschap1,ttls-mschap2,peap-mschap2 \
    name=vlan3-User outer-auths=\
    pap,chap,mschap1,mschap2,eap-tls,eap-ttls,eap-peap,eap-mschap2
add attributes="Tunnel-Type:13,Tunnel-Medium-Type:6,Mikrotik-Wireless-VLANID:2\  
    ,Mikrotik-Wireless-VLANIDtype:0" inner-auths=ttls-mschap2,peap-mschap2 \  
    name="WiFi(VLAN2)" outer-auths=\  
    pap,mschap2,eap-tls,eap-ttls,eap-peap,eap-mschap2
/user-manager user
add attributes="Tunnel-Type:13,Tunnel-Medium-Type:6,Mikrotik-Wireless-VLANID:2\  
    ,Mikrotik-Wireless-VLANIDtype:0" group="WiFi(VLAN2)" name=\  
    8E:89:69:12:B6:A6
add attributes="Tunnel-Type:13,Tunnel-Medium-Type:6,Mikrotik-Wireless-VLANID:2\  
    ,Mikrotik-Wireless-VLANIDtype:0" group="WiFi(VLAN2)" name=\  
    48:43:DD:E8:8C:BF
/caps-man aaa
set called-format=mac mac-mode=as-username-and-password
/caps-man access-list
add action=query-radius allow-signal-out-of-range=10s disabled=no \
    ssid-regexp=""  
/caps-man manager
set ca-certificate=auto certificate=auto enabled=yes
/interface bridge port
add bridge=br-vlan interface=eth2-zum_AP1
add bridge=br-vlan interface=ether3
add bridge=br-vlan frame-types=admit-only-vlan-tagged ingress-filtering=no \
    interface=ether4
add bridge=br-vlan interface=ether5
add bridge=br-vlan interface=AP-WLAN-2Ghz
/interface bridge vlan
add bridge=br-vlan tagged=br-vlan,eth2-zum_AP1,ether3,ether4,ether5 vlan-ids=\
    2
add bridge=br-vlan tagged=br-vlan,eth2-zum_AP1,ether3,ether4,ether5 vlan-ids=\
    3
add bridge=br-vlan tagged=br-vlan untagged=eth2-zum_AP1,ether3,ether4,ether5 \
    vlan-ids=1
/interface dot1x server
add accounting=no auth-types=mac-auth interface=eth2-zum_AP1 mac-auth-mode=\
    mac-as-username-and-password reject-vlan-id=1 server-fail-vlan-id=1
add accounting=no auth-types=mac-auth interface=ether3 mac-auth-mode=\
    mac-as-username-and-password
add accounting=no auth-types=mac-auth interface=ether4 mac-auth-mode=\
    mac-as-username-and-password
add accounting=no auth-types=mac-auth interface=ether5 mac-auth-mode=\
    mac-as-username-and-password
add accounting=no auth-types=mac-auth interface=dynamic mac-auth-mode=\
    mac-as-username-and-password
/ip address
add address=172.10.1.254/24 interface=vlan1 network=172.10.1.0
add address=172.10.3.254/24 interface=vlan3 network=172.10.3.0
add address=172.10.2.254/24 interface=vlan2 network=172.10.2.0
add address=172.10.99.254/24 interface=br-vlan network=172.10.99.0
/ip dhcp-client
add interface="eth1-uplink WAN"  
/ip dhcp-server lease
add address=172.10.1.252 client-id=1:cc:2d:e0:1e:d6:c4 mac-address=\
    CC:2D:E0:1E:D6:C4 server=dhcp1
/ip dhcp-server network
add address=172.10.1.0/24 gateway=172.10.1.254
add address=172.10.2.0/24 gateway=172.10.2.254
add address=172.10.3.0/24 gateway=172.10.3.254
add address=172.10.99.0/24 gateway=172.10.99.254
/ip dns
set allow-remote-requests=yes
/ip firewall filter
add action=passthrough chain=unused-hs-chain comment=\
    "place hotspot rules here" disabled=yes  
add action=accept chain=input in-interface=all-vlan
add action=accept chain=input in-interface=br-vlan
add action=accept chain=forward in-interface=all-vlan out-interface=\
    "eth1-uplink WAN"  
/ip firewall nat
add action=passthrough chain=unused-hs-chain comment=\
    "place hotspot rules here" disabled=yes  
add action=masquerade chain=srcnat comment="masquerade hotspot network" \  
    src-address=172.10.1.0/24
/ip hotspot profile
set [ find default=yes ] html-directory=hotspot
add dns-name=asAS.djdhs hotspot-address=172.10.1.254 html-directory=\
    flash/hotspot name=hsprof1
/ip hotspot user
add name=admin
/radius
add address=127.0.0.1 require-message-auth=no service=\
    login,hotspot,wireless,dhcp,dot1x src-address=127.0.0.1
/radius incoming
set accept=yes
/system clock
set time-zone-name=Europe/Berlin
/system identity
set name=Labor
/system logging
add topics=dot1x
add topics=radius
add topics=manager
add topics=dhcp
/system note
set show-at-login=no
/system ntp client
set enabled=yes
/system ntp client servers
add address=pool.ntp.org
/user-manager
set certificate=CAPsMAN-6C3B6B2931C2 enabled=yes require-message-auth=no
/user-manager router
add address=127.0.0.1 name=router5


Muss ich auf dem CAP auch was machen? Ich dachte nur CAPS Mode aktivieren und gut ? Davon steht doch oben gar nix oder hab ich das übersehen ?
150704
150704 16.10.2024 aktualisiert um 14:02:00 Uhr
Goto Top
add address-pool=dhcp_pool3 interface=br-vlan name=dhcp4
Der DHCP-Server gehört schon mal in die Tonne getreten, der wird Probleme machen. Management läuft ja über vlan1 und nicht über das Bridge-Interface selbst! Golden rule: Never use the bridge-interface itself when using vlan-filtering!
Muss ich auf dem CAP auch was machen? Ich dachte nur CAPS Mode aktivieren und gut ? Davon steht doch oben gar nix oder hab ich das übersehen ?
Ja bitte posten, wenn da die falsche Bridge oder keine eingetragen ist läuft der Client ins leere.
HoLaHey
HoLaHey 16.10.2024 um 14:02:17 Uhr
Goto Top
Zitat von @150704:

add address-pool=dhcp_pool3 interface=br-vlan name=dhcp4
Der DHCP-Server gehört schon mal in die Tonne getreten, der wird Probleme machen. Management läuft ja über vlan1 und nicht über das Bridge-Interface selbst! Never use the bridge-interface itself when using vlan-filtering!
Muss ich auf dem CAP auch was machen? Ich dachte nur CAPS Mode aktivieren und gut ? Davon steht doch oben gar nix oder hab ich das übersehen ?
Ja bitte posten, wenn da die falsche Bridge oder keine eingetragen ist läuft der Client ins leere.

Auf dem CAP hab ich noch nichts gemacht. Was muss man denn da machen ?
150704
150704 16.10.2024 aktualisiert um 14:16:41 Uhr
Goto Top
Bei der Verwendung von LocalForwarding:
Unter "/interface/wireless/cap" unter "Bridge" das lokale Bridge Interface eintragen in das die durch den CAP dynamischen generierten Wifi interfaces hinzugefügt werden sollen.
150704
150704 16.10.2024 aktualisiert um 14:15:20 Uhr
Goto Top
screenshot

screenshot

Das obige gilt für das alte Wireless Modul das du ja zu nutzen scheinst. Im neuen Wifi-Modul wird das über die Angabe der Bridge in einem Datapaths auf dem CAP abgefackelt.
HoLaHey
HoLaHey 16.10.2024 um 14:28:30 Uhr
Goto Top
Zitat von @150704:

screenshot

screenshot

DANKE DANKE DANKE. jetzt geht es im WLAN.
HoLaHey
HoLaHey 16.10.2024 um 15:02:17 Uhr
Goto Top
ich brech ins Essen face-sad( jeztzt gehts im LAN nicht mehr. Arggg
150704
150704 16.10.2024 aktualisiert um 15:14:31 Uhr
Goto Top
Naja wenn du AccessPorts mit den VLANIDs in der Bridge taggst kein Wunder das das nicht läuft ... AccessPort sind immer untagged und deren VLAN-Mitgliedschaft wird nur durch die PVID des Ports bestimmt! Da bringt das 🤮 nichts, riecht nur streng und schmeckt komisch face-big-smile.
aqui
aqui 16.10.2024 aktualisiert um 15:48:47 Uhr
Goto Top
Benutzer und Profil sind angelegt
Was du prompt FALSCH gemacht hast!
Logischerweise werden in der User-Group die VLAN Attribute definiert und NICHT am User selber! 🙄
Damit hast du doch rein gar nix gewonnen, da die VLAN Attribute logischerweise immer über die Gruppe kommen wenn man dem User diese Gruppe zuweist. So muss man das nur ein einziges Mal machen statt es immer und immer pro User zu wiederholen. Der tiefere Sinn von Usergruppen...
Wenn du dem User wieder dedizierte Attribute zuweist überschreiben diese die der Gruppe was dann denn Sinn einer Gruppenzuordnung logischerweise ad absurdum führt.
Einmal etwas logisch nachdenken kann helfen... face-wink

Naja wenn du AccessPorts mit den VLANIDs in der Bridge taggst kein Wunder das das nicht läuft ...
Passiert wenn, wie leider so oft, das Tutorial nicht gelesen wird!
Vermutlich muss man diese Passage noch 3mal so dick in rot mit mindestens 10 Warnhinweisen versehen. Ebenso den Part das die Bridge im VLAN Umfeld iptechnisch Tabu ist...

jeztzt gehts im LAN nicht mehr. Arggg
Bedenke das hier für die LAN Adressen die VLAN Attribut Geschichte vom WiFi nicht greift sondern hier wieder das Standard Attribut "Tunnel-Private-Group-ID" eingetragen werden muss.
Macht also Sinn sich hier auch wieder eine entsprechende Gruppe mit den Attributen anzulegen für die LAN User!
HoLaHey
HoLaHey 16.10.2024 um 15:22:51 Uhr
Goto Top
Zitat von @150704:

Naja wenn du AccessPorts mit den VLANIDs in der Bridge taggst kein Wunder das das nicht läuft ... AccessPort sind immer untagged und deren VLAN-Mitgliedschaft wird nur durch die PVID des Ports bestimmt! Da bringt das 🤮 nichts, riecht nur streng und schmeckt komisch face-big-smile.

Ahhh, Danke