HOTSPOT Problem : External AP, External DHCP, External Radius

Dear All.

My Scenario is :

  1. RB-metal set as just a plain AP (bridged, No Auth) pluged to RB-4501 (MAC: 00:0C:42:CF:16:54 )
  2. RB 450 set as Hotspot, Use External DHCP and External Radius. DHCP Relay named ‘djfrad’ work at hotspot interface
  3. DHCP and Radius is based on FreeRadius,
  4. FreeRadius use rlm_rest to my backend system. This way I can dump all Radius Request in JSON format.
  5. My Hotspot client test device have MAC : 08:8C:2C:0D:84:67

A. my Hotspot Log is :

Nov/17/2016 04:05:24 dhcp,debug,packet     secs = 1
Nov/17/2016 04:05:24 dhcp,debug,packet     ciaddr = 0.0.0.0
Nov/17/2016 04:05:24 dhcp,debug,packet     chaddr = 08:8C:2C:0D:84:67
Nov/17/2016 04:05:24 dhcp,debug,packet     Msg-Type = request
Nov/17/2016 04:05:24 dhcp,debug,packet     Client-Id = 01-08-8C-2C-0D-84-67
Nov/17/2016 04:05:24 dhcp,debug,packet     Address-Request = 192.168.100.8
Nov/17/2016 04:05:24 dhcp,debug,packet     Unknown(57) = 05-DC
Nov/17/2016 04:05:24 dhcp,debug,packet     Class-Id = "dhcpcd-5.5.6"
Nov/17/2016 04:05:24 dhcp,debug,packet     Host-Name = "android-694e6e0b1dc4c3a9"
Nov/17/2016 04:05:24 dhcp,debug,packet     Parameter-List = Subnet-Mask,Static-Route,Router,Domain-Server,Domain-Name,Unknown(26),Unknown(28),Address-Time,Renewal-Time,Unknown(59)
Nov/17/2016 04:05:24 dhcp,debug,packet djfrad sending request with id 3527119059 to 10.255.255.14
Nov/17/2016 04:05:24 dhcp,debug,packet     hops = 1
Nov/17/2016 04:05:24 dhcp,debug,packet     secs = 1
Nov/17/2016 04:05:24 dhcp,debug,packet     ciaddr = 0.0.0.0
Nov/17/2016 04:05:24 dhcp,debug,packet     giaddr = 10.255.3.1
Nov/17/2016 04:05:24 dhcp,debug,packet     chaddr = 08:8C:2C:0D:84:67
Nov/17/2016 04:05:24 dhcp,debug,packet     Msg-Type = request
Nov/17/2016 04:05:24 dhcp,debug,packet     Client-Id = 01-08-8C-2C-0D-84-67
Nov/17/2016 04:05:24 dhcp,debug,packet     Address-Request = 192.168.100.8
Nov/17/2016 04:05:24 dhcp,debug,packet     Unknown(57) = 05-DC
Nov/17/2016 04:05:24 dhcp,debug,packet     Class-Id = "dhcpcd-5.5.6"
Nov/17/2016 04:05:24 dhcp,debug,packet     Host-Name = "android-694e6e0b1dc4c3a9"
Nov/17/2016 04:05:24 dhcp,debug,packet     Parameter-List = Subnet-Mask,Static-Route,Router,Domain-Server,Domain-Name,Unknown(26),Unknown(28),Address-Time,Renewal-Time,Unknown(59)
Nov/17/2016 04:05:25 dhcp,debug,packet djfrad received nak with id 3527119059 from 10.255.255.14
Nov/17/2016 04:05:25 dhcp,debug,packet     hops = 1
Nov/17/2016 04:05:25 dhcp,debug,packet     ciaddr = 0.0.0.0
Nov/17/2016 04:05:25 dhcp,debug,packet     giaddr = 10.255.3.1
Nov/17/2016 04:05:25 dhcp,debug,packet     chaddr = 08:8C:2C:0D:84:67
Nov/17/2016 04:05:25 dhcp,debug,packet     Msg-Type = nak
Nov/17/2016 04:05:25 dhcp,debug,packet     Server-Id = 10.255.3.1
Nov/17/2016 04:05:25 dhcp,debug,packet     Unknown(57) = 05-DC
Nov/17/2016 04:05:25 dhcp,debug,packet djfrad sending nak with id 3527119059 to 255.255.255.255
Nov/17/2016 04:05:25 dhcp,debug,packet     hops = 1
Nov/17/2016 04:05:25 dhcp,debug,packet     ciaddr = 0.0.0.0
Nov/17/2016 04:05:25 dhcp,debug,packet     chaddr = 08:8C:2C:0D:84:67
Nov/17/2016 04:05:25 dhcp,debug,packet     Msg-Type = nak
Nov/17/2016 04:05:25 dhcp,debug,packet     Server-Id = 10.255.3.1
Nov/17/2016 04:05:25 dhcp,debug,packet     Unknown(57) = 05-DC
Nov/17/2016 04:05:26 dhcp,debug,packet djfrad received discover with id 1775024873 from 0.0.0.0
Nov/17/2016 04:05:26 dhcp,debug,packet     secs = 4
Nov/17/2016 04:05:26 dhcp,debug,packet     ciaddr = 0.0.0.0
Nov/17/2016 04:05:26 dhcp,debug,packet     chaddr = 08:8C:2C:0D:84:67
Nov/17/2016 04:05:26 dhcp,debug,packet     Msg-Type = discover
Nov/17/2016 04:05:26 dhcp,debug,packet     Client-Id = 01-08-8C-2C-0D-84-67
Nov/17/2016 04:05:26 dhcp,debug,packet     Unknown(57) = 05-DC
Nov/17/2016 04:05:26 dhcp,debug,packet     Class-Id = "dhcpcd-5.5.6"
Nov/17/2016 04:05:26 dhcp,debug,packet     Host-Name = "android-694e6e0b1dc4c3a9"
Nov/17/2016 04:05:26 dhcp,debug,packet     Parameter-List = Subnet-Mask,Static-Route,Router,Domain-Server,Domain-Name,Unknown(26),Unknown(28),Address-Time,Renewal-Time,Unknown(59)
Nov/17/2016 04:05:26 dhcp,debug,packet djfrad sending discover with id 1775024873 to 10.255.255.14
Nov/17/2016 04:05:26 dhcp,debug,packet     hops = 1
Nov/17/2016 04:05:26 dhcp,debug,packet     secs = 4
Nov/17/2016 04:05:26 dhcp,debug,packet     ciaddr = 0.0.0.0
Nov/17/2016 04:05:26 dhcp,debug,packet     giaddr = 10.255.3.1
Nov/17/2016 04:05:26 dhcp,debug,packet     chaddr = 08:8C:2C:0D:84:67
Nov/17/2016 04:05:26 dhcp,debug,packet     Msg-Type = discover
Nov/17/2016 04:05:26 dhcp,debug,packet     Client-Id = 01-08-8C-2C-0D-84-67
Nov/17/2016 04:05:26 dhcp,debug,packet     Unknown(57) = 05-DC
Nov/17/2016 04:05:26 dhcp,debug,packet     Class-Id = "dhcpcd-5.5.6"
Nov/17/2016 04:05:26 dhcp,debug,packet     Host-Name = "android-694e6e0b1dc4c3a9"
Nov/17/2016 04:05:26 dhcp,debug,packet     Parameter-List = Subnet-Mask,Static-Route,Router,Domain-Server,Domain-Name,Unknown(26),Unknown(28),Address-Time,Renewal-Time,Unknown(59)
Nov/17/2016 04:05:27 dhcp,debug,packet djfrad received offer with id 1775024873 from 10.255.255.14
Nov/17/2016 04:05:27 dhcp,debug,packet     hops = 1
Nov/17/2016 04:05:27 dhcp,debug,packet     ciaddr = 255.255.255.255
Nov/17/2016 04:05:27 dhcp,debug,packet     yiaddr = 10.254.1.112
Nov/17/2016 04:05:27 dhcp,debug,packet     giaddr = 10.255.3.1
Nov/17/2016 04:05:27 dhcp,debug,packet     chaddr = 08:8C:2C:0D:84:67
Nov/17/2016 04:05:27 dhcp,debug,packet     Msg-Type = offer
Nov/17/2016 04:05:27 dhcp,debug,packet     Subnet-Mask = 255.255.255.0
Nov/17/2016 04:05:27 dhcp,debug,packet     Router = 10.254.1.254
Nov/17/2016 04:05:27 dhcp,debug,packet     Domain-Server = 10.255.3.1
Nov/17/2016 04:05:27 dhcp,debug,packet     Address-Time = 7200
Nov/17/2016 04:05:27 dhcp,debug,packet     Server-Id = 10.255.3.1
Nov/17/2016 04:05:27 dhcp,debug,packet     Unknown(57) = 05-DC
Nov/17/2016 04:05:27 dhcp,debug,packet djfrad sending offer with id 1775024873 to 255.255.255.255
Nov/17/2016 04:05:27 dhcp,debug,packet     hops = 1
Nov/17/2016 04:05:27 dhcp,debug,packet     ciaddr = 255.255.255.255
Nov/17/2016 04:05:27 dhcp,debug,packet     yiaddr = 10.254.1.112
Nov/17/2016 04:05:27 dhcp,debug,packet     chaddr = 08:8C:2C:0D:84:67
Nov/17/2016 04:05:27 dhcp,debug,packet     Msg-Type = offer
Nov/17/2016 04:05:27 dhcp,debug,packet     Subnet-Mask = 255.255.255.0
Nov/17/2016 04:05:27 dhcp,debug,packet     Router = 10.254.1.254
Nov/17/2016 04:05:27 dhcp,debug,packet     Domain-Server = 10.255.3.1
Nov/17/2016 04:05:27 dhcp,debug,packet     Address-Time = 7200
Nov/17/2016 04:05:27 dhcp,debug,packet     Server-Id = 10.255.3.1
Nov/17/2016 04:05:27 dhcp,debug,packet     Unknown(57) = 05-DC
Nov/17/2016 04:05:27 dhcp,debug,packet djfrad received request with id 1775024873 from 0.0.0.0
Nov/17/2016 04:05:27 dhcp,debug,packet     secs = 5
Nov/17/2016 04:05:27 dhcp,debug,packet     ciaddr = 0.0.0.0
Nov/17/2016 04:05:27 dhcp,debug,packet     chaddr = 08:8C:2C:0D:84:67
Nov/17/2016 04:05:27 dhcp,debug,packet     Msg-Type = request
Nov/17/2016 04:05:27 dhcp,debug,packet     Client-Id = 01-08-8C-2C-0D-84-67
Nov/17/2016 04:05:27 dhcp,debug,packet     Address-Request = 10.254.1.112
Nov/17/2016 04:05:27 dhcp,debug,packet     Server-Id = 10.255.3.1
Nov/17/2016 04:05:27 dhcp,debug,packet     Unknown(57) = 05-DC
Nov/17/2016 04:05:27 dhcp,debug,packet     Class-Id = "dhcpcd-5.5.6"
Nov/17/2016 04:05:27 dhcp,debug,packet     Host-Name = "android-694e6e0b1dc4c3a9"
Nov/17/2016 04:05:27 dhcp,debug,packet     Parameter-List = Subnet-Mask,Static-Route,Router,Domain-Server,Domain-Name,Unknown(26),Unknown(28),Address-Time,Renewal-Time,Unknown(59)
Nov/17/2016 04:05:27 dhcp,debug,packet djfrad sending request with id 1775024873 to 10.255.255.14
Nov/17/2016 04:05:27 dhcp,debug,packet     hops = 1
Nov/17/2016 04:05:27 dhcp,debug,packet     secs = 5
Nov/17/2016 04:05:27 dhcp,debug,packet     ciaddr = 0.0.0.0
Nov/17/2016 04:05:27 dhcp,debug,packet     giaddr = 10.255.3.1
Nov/17/2016 04:05:27 dhcp,debug,packet     chaddr = 08:8C:2C:0D:84:67
Nov/17/2016 04:05:27 dhcp,debug,packet     Msg-Type = request
Nov/17/2016 04:05:27 dhcp,debug,packet     Client-Id = 01-08-8C-2C-0D-84-67
Nov/17/2016 04:05:27 dhcp,debug,packet     Address-Request = 10.254.1.112
Nov/17/2016 04:05:27 dhcp,debug,packet     Server-Id = 10.255.3.1
Nov/17/2016 04:05:27 dhcp,debug,packet     Unknown(57) = 05-DC
Nov/17/2016 04:05:27 dhcp,debug,packet     Class-Id = "dhcpcd-5.5.6"
Nov/17/2016 04:05:27 dhcp,debug,packet     Host-Name = "android-694e6e0b1dc4c3a9"
Nov/17/2016 04:05:27 dhcp,debug,packet     Parameter-List = Subnet-Mask,Static-Route,Router,Domain-Server,Domain-Name,Unknown(26),Unknown(28),Address-Time,Renewal-Time,Unknown(59)
Nov/17/2016 04:05:29 dhcp,debug,packet djfrad received ack with id 1775024873 from 10.255.255.14
Nov/17/2016 04:05:29 dhcp,debug,packet     hops = 1
Nov/17/2016 04:05:29 dhcp,debug,packet     ciaddr = 255.255.255.255
Nov/17/2016 04:05:29 dhcp,debug,packet     yiaddr = 10.254.1.112
Nov/17/2016 04:05:29 dhcp,debug,packet     giaddr = 10.255.3.1
Nov/17/2016 04:05:29 dhcp,debug,packet     chaddr = 08:8C:2C:0D:84:67
Nov/17/2016 04:05:29 dhcp,debug,packet     Msg-Type = ack
Nov/17/2016 04:05:29 dhcp,debug,packet     Subnet-Mask = 255.255.255.0
Nov/17/2016 04:05:29 dhcp,debug,packet     Router = 10.254.1.254
Nov/17/2016 04:05:29 dhcp,debug,packet     Domain-Server = 10.255.3.1
Nov/17/2016 04:05:29 dhcp,debug,packet     Address-Time = 7200
Nov/17/2016 04:05:29 dhcp,debug,packet     Server-Id = 10.255.3.1
Nov/17/2016 04:05:29 dhcp,debug,packet     Unknown(57) = 05-DC
Nov/17/2016 04:05:29 dhcp,debug,packet djfrad sending ack with id 1775024873 to 255.255.255.255
Nov/17/2016 04:05:29 dhcp,debug,packet     hops = 1
Nov/17/2016 04:05:29 dhcp,debug,packet     ciaddr = 255.255.255.255
Nov/17/2016 04:05:29 dhcp,debug,packet     yiaddr = 10.254.1.112
Nov/17/2016 04:05:29 dhcp,debug,packet     chaddr = 08:8C:2C:0D:84:67
Nov/17/2016 04:05:29 dhcp,debug,packet     Msg-Type = ack
Nov/17/2016 04:05:29 dhcp,debug,packet     Subnet-Mask = 255.255.255.0
Nov/17/2016 04:05:29 dhcp,debug,packet     Router = 10.254.1.254
Nov/17/2016 04:05:29 dhcp,debug,packet     Domain-Server = 10.255.3.1
Nov/17/2016 04:05:29 dhcp,debug,packet     Address-Time = 7200
Nov/17/2016 04:05:29 dhcp,debug,packet     Server-Id = 10.255.3.1
Nov/17/2016 04:05:29 dhcp,debug,packet     Unknown(57) = 05-DC
Nov/17/2016 04:05:29 hotspot,debug hotspot1: new host detected 00:0C:42:CF:16:54/10.254.1.112 by UDP :39260 -> 10.255.3.1:53
Nov/17/2016 04:05:29 hotspot,debug hotspot1: dynamic host 00:0C:42:CF:16:54/10.254.1.112 added, ip 10.254.1.112
Nov/17/2016 04:07:21 hotspot,debug hotspot1: new host detected 08:8C:2C:0D:84:67/10.254.1.112 by UDP :16065 -> 10.255.3.1:53
Nov/17/2016 04:07:21 hotspot,debug hotspot1: failed to add dynamic host 08:8C:2C:0D:84:67/10.254.1.112, ip 10.254.1.112: to-address is already used
Nov/17/2016 04:08:23 hotspot,debug hotspot1: new host detected 08:8C:2C:0D:84:67/10.254.1.112 by TCP :42758 -> 10.255.3.1:80
Nov/17/2016 04:08:23 hotspot,debug hotspot1: failed to add dynamic host 08:8C:2C:0D:84:67/10.254.1.112, ip 10.254.1.112: to-address is already used
Nov/17/2016 04:09:26 hotspot,debug hotspot1: new host detected 08:8C:2C:0D:84:67/10.254.1.112 by UDP :36968 -> 10.255.3.1:53
Nov/17/2016 04:09:26 hotspot,debug hotspot1: failed to add dynamic host 08:8C:2C:0D:84:67/10.254.1.112, ip 10.254.1.112: to-address is already used

B. My Backend System dump said :

Request Body: {"DHCP-Opcode":{"type":"byte","value":[1]},"DHCP-Hardware-Type":{"type":"byte","value":[1]},"DHCP-Hardware-Address-Length":{"type":"byte","value":[6]},"DHCP-Hop-Count":{"type":"byte","value":[1]},"DHCP-Transaction-Id":{"type":"integer","value":[3549445074]},"DHCP-Number-of-Seconds":{"type":"short","value":[1]},"DHCP-Flags":{"type":"short","value":[0]},"DHCP-Client-IP-Address":{"type":"ipaddr","value":["0.0.0.0"]},"DHCP-Your-IP-Address":{"type":"ipaddr","value":["0.0.0.0"]},"DHCP-Server-IP-Address":{"type":"ipaddr","value":["0.0.0.0"]},"DHCP-Gateway-IP-Address":{"type":"ipaddr","value":["10.255.3.1"]},"DHCP-Client-Hardware-Address":{"type":"ether","value":["08:8c:2c:0d:84:67"]},"DHCP-Hostname":{"type":"string","value":["android-694e6e0b1dc4c3a9"]},"DHCP-Requested-IP-Address":{"type":"ipaddr","value":["192.168.100.8"]},"DHCP-Message-Type":{"type":"byte","value":[3]},"DHCP-Parameter-Request-List":{"type":"byte","value":[1,33,3,6,15,26,28,51,58,59]},"DHCP-DHCP-Maximum-Msg-Size":{"type":"short","value":[1500]},"DHCP-Vendor-Class-Identifier":{"type":"octets","value":["0x6468637063642d352e352e36"]},"DHCP-Client-Identifier":{"type":"octets","value":["0x01088c2c0d8467"]}}
ReturnJSON--> {'reply:DHCP-Gateway-IP-Address': u'10.255.3.1', 'reply:DHCP-DHCP-Server-Identifier': u'10.255.3.1', 'reply:DHCP-Message-Type': 'DHCP-Nak'}
Request Body: {"DHCP-Opcode":{"type":"byte","value":[1]},"DHCP-Hardware-Type":{"type":"byte","value":[1]},"DHCP-Hardware-Address-Length":{"type":"byte","value":[6]},"DHCP-Hop-Count":{"type":"byte","value":[1]},"DHCP-Transaction-Id":{"type":"integer","value":[3921333353]},"DHCP-Number-of-Seconds":{"type":"short","value":[4]},"DHCP-Flags":{"type":"short","value":[0]},"DHCP-Client-IP-Address":{"type":"ipaddr","value":["0.0.0.0"]},"DHCP-Your-IP-Address":{"type":"ipaddr","value":["0.0.0.0"]},"DHCP-Server-IP-Address":{"type":"ipaddr","value":["0.0.0.0"]},"DHCP-Gateway-IP-Address":{"type":"ipaddr","value":["10.255.3.1"]},"DHCP-Client-Hardware-Address":{"type":"ether","value":["08:8c:2c:0d:84:67"]},"DHCP-Hostname":{"type":"string","value":["android-694e6e0b1dc4c3a9"]},"DHCP-Message-Type":{"type":"byte","value":[1]},"DHCP-Parameter-Request-List":{"type":"byte","value":[1,33,3,6,15,26,28,51,58,59]},"DHCP-DHCP-Maximum-Msg-Size":{"type":"short","value":[1500]},"DHCP-Vendor-Class-Identifier":{"type":"octets","value":["0x6468637063642d352e352e36"]},"DHCP-Client-Identifier":{"type":"octets","value":["0x01088c2c0d8467"]}}
ReturnJSON--> {u'reply:DHCP-IP-Address-Lease-Time': 7200, u'reply:DHCP-Subnet-Mask': '255.255.255.0', u'reply:DHCP-Router-Address': '10.254.1.254', u'reply:DHCP-Your-IP-Address': '10.254.1.112', u'reply:DHCP-Client-IP-Address': u'255.255.255.255', u'reply:DHCP-Domain-Name-Server': '10.255.3.1', u'reply:DHCP-DHCP-Server-Identifier': u'10.255.3.1', u'reply:DHCP-Gateway-IP-Address': u'10.255.3.1', u'reply:DHCP-Message-Type': 'DHCP-Offer'}
Request Body: {"DHCP-Opcode":{"type":"byte","value":[1]},"DHCP-Hardware-Type":{"type":"byte","value":[1]},"DHCP-Hardware-Address-Length":{"type":"byte","value":[6]},"DHCP-Hop-Count":{"type":"byte","value":[1]},"DHCP-Transaction-Id":{"type":"integer","value":[3921333353]},"DHCP-Number-of-Seconds":{"type":"short","value":[5]},"DHCP-Flags":{"type":"short","value":[0]},"DHCP-Client-IP-Address":{"type":"ipaddr","value":["0.0.0.0"]},"DHCP-Your-IP-Address":{"type":"ipaddr","value":["0.0.0.0"]},"DHCP-Server-IP-Address":{"type":"ipaddr","value":["0.0.0.0"]},"DHCP-Gateway-IP-Address":{"type":"ipaddr","value":["10.255.3.1"]},"DHCP-Client-Hardware-Address":{"type":"ether","value":["08:8c:2c:0d:84:67"]},"DHCP-Hostname":{"type":"string","value":["android-694e6e0b1dc4c3a9"]},"DHCP-Requested-IP-Address":{"type":"ipaddr","value":["10.254.1.112"]},"DHCP-Message-Type":{"type":"byte","value":[3]},"DHCP-DHCP-Server-Identifier":{"type":"ipaddr","value":["10.255.3.1"]},"DHCP-Parameter-Request-List":{"type":"byte","value":[1,33,3,6,15,26,28,51,58,59]},"DHCP-DHCP-Maximum-Msg-Size":{"type":"short","value":[1500]},"DHCP-Vendor-Class-Identifier":{"type":"octets","value":["0x6468637063642d352e352e36"]},"DHCP-Client-Identifier":{"type":"octets","value":["0x01088c2c0d8467"]}}
ReturnJSON--> {u'reply:DHCP-IP-Address-Lease-Time': 7200, u'reply:DHCP-Subnet-Mask': '255.255.255.0', u'reply:DHCP-Router-Address': '10.254.1.254', u'reply:DHCP-Your-IP-Address': '10.254.1.112', u'reply:DHCP-Client-IP-Address': u'255.255.255.255', u'reply:DHCP-Domain-Name-Server': '10.255.3.1', u'reply:DHCP-DHCP-Server-Identifier': u'10.255.3.1', u'reply:DHCP-Gateway-IP-Address': u'10.255.3.1', u'reply:DHCP-Message-Type': 'DHCP-Ack'}

See, From A and B there is no DHCP rquest with chaddr 00:0C:42:CF:16:54
But at the end part of A, the first ‘hotspot,debug hotspot1’ line said ‘new host detected 00:0C:42:CF:16:54/10.254.1.112’ and that caused error on the proceeding lines.

So, How is RouterOS Hotspot handling External AP-Bridge ?


C. My configurastions (ROS Version 5.26):

/ip hotspot profile
set [ find default=yes ] dns-name="" hotspot-address=0.0.0.0 html-directory=\
    hotspot http-cookie-lifetime=3d http-proxy=0.0.0.0:0 login-by=\
    cookie,http-chap name=default rate-limit="" smtp-server=0.0.0.0 \
    split-user-domain=no use-radius=no
add dns-name=hs1.mtik01 hotspot-address=10.255.3.1 html-directory=hotspot \
    http-proxy=0.0.0.0:0 login-by=http-pap name=hsprof1 nas-port-type=\
    wireless-802.11 radius-accounting=yes radius-default-domain="" \
    radius-interim-update=received radius-location-id=metal \
    radius-location-name=hs1.metal radius-mac-format=XX:XX:XX:XX:XX:XX \
    rate-limit="" smtp-server=0.0.0.0 split-user-domain=no use-radius=yes
/ip hotspot
add disabled=no idle-timeout=5m interface=ether3 keepalive-timeout=none name=\
    hotspot1 profile=hsprof1
/ip hotspot user profile
set [ find default=yes ] idle-timeout=none keepalive-timeout=2m name=default \
    shared-users=1 status-autorefresh=1m transparent-proxy=no
/ip hotspot ip-binding
add address=10.254.1.110 comment="AP Metal" disabled=no mac-address=\
    00:0C:42:CF:16:54 server=hotspot1 to-address=10.254.1.110
/ip hotspot service-port
set ftp disabled=no ports=21
/ip hotspot user
add disabled=yes name=admin password=VERYSECRET profile=default
/ip hotspot walled-garden
add action=allow comment="place hotspot rules here" disabled=yes dst-port=""
add action=allow comment="for dns and login page" disabled=no dst-host=\
    10.255.3.1 dst-port="" server=hotspot1 src-address=10.254.1.0/24
/ip hotspot walled-garden ip
add action=accept comment="to raddhcp network" disabled=no dst-address=\
    10.255.255.0/24 server=hotspot1

Sincerely
-bino-