I've got a RouterBOARD 951Ui 2HnD (RouterOS v6.38) set up as a VPN server (SSTP). Everything works fine when the VPN clients (Windows 10 workstations) use local authentication from the RouterBOARD (that is, they login using ID+password from /ppp secret).
However, I've recently turned on the RADIUS client on the RouterBOARD to forward authentication to a Windows Server 2012R2 Active Directory Domain Controller, so that it is not necessary to manually maintain /ppp secret on the RouterBOARD, and so that Windows clients can both connect to the RouterBOARD VPN and authenticate to the Windows Domain at the same time.
The MikroTik is 192.168.255.3 and the Windows server is 192.168.255.8.
It works, except:
The problem is that whereas local auth on the RouterBOARD respects the IP-Pool setting (/ppp profile remote-address=VPNpool1), the Windows NPS RADIUS server is returning an IP addresse from ... I can't even figure out where, and sends that IP address in a Framed-IP-Address RADIUS response attribute, despite that I've configured these RADIUS attributes in the Windows server's Network Policy:
Framed-Protocol: PPP
Service-Type: Framed
Framed-Pool: VPNpool1
The only DHCP server on the whole network is the Windows Server's DHCP server. It has two ranges configured:
192.168.255.10-192.168.255.62
192.168.255.64-79
Here is the MikroTik's IP pool VPNpool1:
Code: Select all
> /ip pool print det
0 name="VPNpool1" ranges=192.168.255.80-192.168.255.89
The IP address 192.168.255.32 does not appear in the Windows Server's DHCP server's list of Address Reservations nor Leases.
Packet capturing on port 67 or port 68 on the MikroTik and on the Windows Server sees no DHCP messages.
Packet capturing the RADIUS dialogue between the MikroTik and the Windows Server clearly shows Framed-IP-Pool: 192.168.255.32 being returned by the Windows Server's RADIUS server to the MikroTik's RADIUS client, and packet capturing on the MikroTik itself then clearly shows that 192.168.255.32 being returned to the SSTP VPN client, and I see the SSTP VPN client settings its IP address on the SSTP VPN connection to 192.168.255.32.
But I simply cannot figure out where the Windows Server is deciding on this 192.168.255.32 address!
I'm sure I'm missing something obvious and I'll feel quite silly once it's found... Anyone please want to help me figure out what I'm being blind to here?
Configuration details below.
thanks!
Code: Select all
> /ppp secret print
Flags: X - disabled
# NAME SERVICE CALLER-ID PASSWORD PROFILE REMOTE-ADDRESS
0 X user1.local any ********** default-encryption
1 X user2.local any ********** default-encryption
Code: Select all
> /ppp profile print
Flags: * - default
0 * name="default" use-mpls=default use-compression=default use-encryption=default only-one=default change-tcp-mss=yes use-upnp=default address-list=""
on-up="" on-down=""
1 * name="default-encryption" local-address=192.168.255.125 remote-address=VPNpool1 use-mpls=default use-compression=default use-encryption=yes
only-one=default change-tcp-mss=yes use-upnp=default address-list="" dns-server=192.168.255.8 on-up="" on-down=""
Code: Select all
> /ppp aaa print
use-radius: yes
accounting: yes
use-circuit-id-in-nas-port-id: no
interim-update: 0s
Code: Select all
> /ip dhcp-server print
Flags: X - disabled, I - invalid
# NAME INTERFACE RELAY ADDRESS-POOL LEASE-TIME ADD-ARP
0 X default ether2-master-local VPNpool1 10m
Code: Select all
> /radius print det
Flags: X - disabled
0 service=ppp called-id="" domain="AD3.felines.org" address=192.168.255.8 secret="***********************************************"
authentication-port=1812 accounting-port=1813 timeout=300ms accounting-backup=no realm=""
Here's a /log print of a MikroTik SSTP VPN session, RADIUS access request and accept:
Code: Select all
11:16:58 radius,debug new request 1b:38 code=Access-Request service=ppp called-id=0.0.0.0 domain=ad3.felines.org
11:16:58 radius,debug sending 1b:38 to 192.168.255.8:1812
11:16:58 radius,debug,packet sending Access-Request with id 49 to 192.168.255.8:1812
11:16:58 radius,debug,packet Signature = 0x********
11:16:58 radius,debug,packet Service-Type = 2
11:16:58 radius,debug,packet Framed-Protocol = 1
11:16:58 radius,debug,packet NAS-Port = 9
11:16:58 radius,debug,packet NAS-Port-Type = 0
11:16:58 radius,debug,packet User-Name = "user1"
11:16:58 radius,debug,packet Calling-Station-Id = "74.130.23.57"
11:16:58 radius,debug,packet Called-Station-Id = "0.0.0.0"
11:16:58 radius,debug,packet MS-CHAP-Domain = "ad3.felines.org"
11:16:58 radius,debug,packet MS-CHAP-Challenge = 0x********
11:16:58 radius,debug,packet MS-CHAP2-Response = 0x********
11:16:58 radius,debug,packet ********
11:16:58 radius,debug,packet ********
11:16:58 radius,debug,packet ****
11:16:58 radius,debug,packet NAS-Identifier = "MikroTik1"
11:16:58 radius,debug,packet MT-Realm = 0x********
11:16:58 radius,debug,packet NAS-IP-Address = 192.168.255.3
11:16:58 radius,debug,packet received Access-Accept with id 49 from 192.168.255.8:1812
11:16:58 radius,debug,packet Signature = 0x********
11:16:58 radius,debug,packet Framed-Protocol = 1
11:16:58 radius,debug,packet Service-Type = 2
11:16:58 radius,debug,packet Framed-IP-Address = 192.168.255.32
11:16:58 radius,debug,packet Class = 0x********
11:16:58 radius,debug,packet ********
11:16:58 radius,debug,packet ********
11:16:58 radius,debug,packet MS-MPPE-Recv-Key = 0x********
11:16:58 radius,debug,packet ********
11:16:58 radius,debug,packet ****
11:16:58 radius,debug,packet MS-MPPE-Send-Key = 0x********
11:16:58 radius,debug,packet ********
11:16:58 radius,debug,packet ****
11:16:58 radius,debug,packet MS-CHAP2-Success = 0x********
11:16:58 radius,debug,packet ********
11:16:58 radius,debug,packet ********
11:16:58 radius,debug,packet MS-CHAP-Domain = 0x********
11:16:58 radius,debug received reply for 1b:38
11:16:58 radius,debug new request 1b:00 code=Accounting-Request service=ppp called-id=0.0.0.0 domain=ad3.felines.org
11:16:58 radius,debug sending 1b:00 to 192.168.255.8:1813
11:16:58 radius,debug,packet sending Accounting-Request with id 50 to 192.168.255.8:1813
11:16:58 radius,debug,packet Signature = 0x********
11:16:58 radius,debug,packet Service-Type = 2
11:16:58 radius,debug,packet Framed-Protocol = 1
11:16:58 radius,debug,packet NAS-Port = 9
11:16:58 radius,debug,packet NAS-Port-Type = 0
11:16:58 radius,debug,packet User-Name = "user1"
11:16:58 radius,debug,packet Calling-Station-Id = "74.130.23.57"
11:16:58 radius,debug,packet Called-Station-Id = "0.0.0.0"
11:16:58 radius,debug,packet MS-CHAP-Domain = "ad3.felines.org"
11:16:58 radius,debug,packet Class = 0x********
11:16:58 radius,debug,packet ********
11:16:58 radius,debug,packet ********
11:16:58 radius,debug,packet Acct-Session-Id = "********"
11:16:58 radius,debug,packet Framed-IP-Address = 192.168.255.32
11:16:58 radius,debug,packet Acct-Authentic = 1
11:16:58 radius,debug,packet Event-Timestamp = 1484561818
11:16:58 radius,debug,packet Acct-Status-Type = 1
11:16:58 radius,debug,packet NAS-Identifier = "MikroTik1"
11:16:58 radius,debug,packet Acct-Delay-Time = 0
11:16:58 radius,debug,packet MT-Realm = 0x********
11:16:58 radius,debug,packet NAS-IP-Address = 192.168.255.3
11:16:58 radius,debug,packet received Accounting-Response with id 50 from 192.168.255.8:1813
11:16:58 radius,debug,packet Signature = 0x********
11:16:58 radius,debug received reply for 1b:00
11:16:58 radius,debug request 1b:00 processed
11:16:58 sstp,ppp,info,account user1 logged in, 192.168.255.32
11:16:58 sstp,ppp,info SSTP1: authenticated
11:16:59 sstp,ppp,info SSTP1: connected
Help much appreciated.
thanks!
-Jay