Solution | Diagram:
 The diagram represents the scenario in which a FortiClient connects via IPSec IKEv2 to a FortiGate (FortiAuthenticator handles authentication). Upon a successful authentication, FortiAuthenticator returns an AVP containing the Framed-IP-Address that FortiClient should use.
FortiGate configuration.
VPN IPsec:
config vpn ipsec phase1-interface
edit "RA_USERS"
set type dynamic
set interface "port1"
set ike-version 2
set peertype one
set net-device disable
set mode-cfg enable
set ipv4-dns-server1 192.168.200.23
set proposal aes128-sha256 aes256-sha256 aes128gcm-prfsha256 aes256gcm-prfsha384 chacha20poly1305-prfsha256
set dpd on-idle
set dhgrp 20
set eap enable
set eap-identity send-request
set transport udp-fallback-tcp
set assign-ip-from usrgrp
set psksecret ENC
set dpd-retryinterval 60
next
end
 RADIUS:
config user radius
   edit "FAC"
     set server "192.168.200.144"
     set secret ENC
   next
 end
 Group:
config user group
   edit "RA_Users"
     set member "FAC"
     config match
       edit 1
         set server-name "FAC"
         set group-name "SSLVPN_INTERNAL_USERS"
       next
     end
   next
 end
 FortiAuthenticator configuration:
User:

Group:
 In FortiGate, the policy that allows the traffic is configured as follows:
 When FortiClient connects, the tunnel is established. However, there is no IP address assigned.

In the fnbamd and ike debug commands, the following is visible:
Commands:
diagnose debug app fnbamd -1
diagnose debug app ike -1
Output:
2026-05-31 19:44:37 [595] __create_access_request-Created RADIUS Access-Request. Len: 258.
2026-05-31 19:44:37 [1175] fnbamd_socket_update_interface-vfid is 0, intf mode is 0, intf name is , server address is 127.0.0.1:1812, source address is null, protocol number is 17, oif id is 0
2026-05-31 19:44:37 [403] __rad_udp_send-oif=0, intf_sel.mode=0, intf_sel.name=
2026-05-31 19:44:37 [965] __rad_rxtx-Sent radius req to server 'EAP_PROXY': fd=12, IP=127.0.0.1(127.0.0.1:1812) code=1 id=32 len=258
2026-05-31 19:44:37 [974] __rad_rxtx-Start rad conn timer.
2026-05-31 19:44:37 [934] __rad_rxtx-fd 12, state 2(Challenged)
2026-05-31 19:44:37 [936] __rad_rxtx-Stop rad conn timer.
2026-05-31 19:44:37 [977] __rad_rxtx-
2026-05-31 19:44:37 [485] __rad_udp_recv-Recved 196 bytes. Buf sz 262144
2026-05-31 19:44:37 [1133] __rad_chk_resp_authenticator-The Message Authenticator validation is optional now
2026-05-31 19:44:37 [1156] __rad_chk_resp_authenticator-ret=0
2026-05-31 19:44:37 [1231] fnbamd_rad_validate_pkt-RADIUS resp code 2
2026-05-31 19:44:37 [1003] __rad_rxtx-
2026-05-31 19:44:37 [1301] fnbamd_rad_process-Result from radius svr 'EAP_PROXY' is 0, req 979371565061
2026-05-31 19:44:37 [549] fnbamd_rad_get_vsas-FORTINET group complete, val SSLVPN_INTERNAL_USERS
2026-05-31 19:44:37 [597] fnbamd_rad_get_vsas-FORTINET attr, type 255, val FAC
2026-05-31 19:44:37 [597] fnbamd_rad_get_vsas-FORTINET attr, type 253, val ipsec
2026-05-31 19:44:37 [931] fnbamd_radius_parse_mschapv2_attr-Decoding TYPE_MS_MPPE_Send_Key
2026-05-31 19:44:37 [843] __radius_decode_mppe_key-Key len after decode 16
2026-05-31 19:44:37 [920] fnbamd_radius_parse_mschapv2_attr-Decoding TYPE_MS_MPPE_Recv_Key
2026-05-31 19:44:37 [843] __radius_decode_mppe_key-Key len after decode 16
2026-05-31 19:44:37 fnbamd_dbg_hex_pnt[49] EAP msg from server (4)-03 6B 00 04
2026-05-31 19:44:37 [1437] fnbamd_rad_process-RADIUS auth succeeds with server 'FAC'
2026-05-31 19:44:37 [1503] fnbamd_rad_process-Challenged: 0, FTK_Challenge: 0, CHG_PWD: 0, Invaid_Digest: 0, No_Message_Authenticator_Attr: 0, State_Len: 0
2026-05-31 19:44:37 [631] fnbam_user_auth_group_match-req id: 979371565061, server: FAC, local auth: 0, dn match: 0
2026-05-31 19:44:37 [585] __group_match-Check if FAC is a group member
2026-05-31 19:44:37 [591] __group_match-Group 'RA-VPN_INTERNAL' passed group matching
2026-05-31 19:44:37 [594] __group_match-Add matched group 'RA-VPN_INTERNAL'(2)
2026-05-31 19:44:37 [585] __group_match-Check if FAC is a group member
2026-05-31 19:44:37 [585] __group_match-Check if FAC is a group member
2026-05-31 19:44:37 [585] __group_match-Check if FAC is a group member
2026-05-31 19:44:37 [585] __group_match-Check if FAC is a group member
2026-05-31 19:44:37 [206] find_matched_usr_grps-Passed group matching
2026-05-31 19:44:37 [912] update_auth_token_session-config does not require 2fa
2026-05-31 19:44:37 [239] fnbamd_comm_send_result-Sending result 0 (nid 0) for req 979371565061, len=2623
2026-05-31 19:44:37 2026-05-31 19:44:37.591766 ike V=DMZ:2:RA_USERS:167 EAP 979371565061 result FNBAM_SUCCESS
2026-05-31 19:44:37.591787 ike V=DMZ:2:RA_USERS: user 'ipsec' authenticated group 'RA-VPN_INTERNAL' 2
2026-05-31 19:44:37.591803 ike V=DMZ:2:RA_USERS: 0.0.0.0 is not an acceptable client IP address
Analyzing the capture between the FortiAuthenticator and the FortiGate, the AVPs are returned correctly:
 This issue happens because the policy has a RADIUS and LDAP group in it.
When this configuration is used, 'EAP_PROXY'Â is used (FortiGate acts as an EAP proxy between the client and the RADIUS server).
This causes an issue with the AVP, specifically the Framed-IP-Address. Changing the policy by removing the LDAP group results in this.
Policy:

FortiClient:


2026-05-31 19:42:21 [334] __create_access_request-Compose RADIUS request
2026-05-31 19:42:21 fnbamd_dbg_hex_pnt[49] EAP msg from client (6)-02 6E 00 06 1A 03
2026-05-31 19:42:21 [595] __create_access_request-Created RADIUS Access-Request. Len: 157.
2026-05-31 19:42:21 [1175] fnbamd_socket_update_interface-vfid is 2, intf mode is 0, intf name is , server address is 192.168.200.144:1812, source address is null, protocol number is 17, oif id is 0
2026-05-31 19:42:21 [403] __rad_udp_send-oif=0, intf_sel.mode=0, intf_sel.name=
2026-05-31 19:42:21 [965] __rad_rxtx-Sent radius req to server 'FAC': fd=10, IP=192.168.200.144(192.168.200.144:1812) code=1 id=22 len=157
2026-05-31 19:42:21 [974] __rad_rxtx-Start rad conn timer.
2026-05-31 19:42:21 [934] __rad_rxtx-fd 10, state 2(Challenged)
2026-05-31 19:42:21 [936] __rad_rxtx-Stop rad conn timer.
2026-05-31 19:42:21 [977] __rad_rxtx-
2026-05-31 19:42:21 [485] __rad_udp_recv-Recved 200 bytes. Buf sz 262144
2026-05-31 19:42:21 [1133] __rad_chk_resp_authenticator-The Message Authenticator validation is mandatory now
2026-05-31 19:42:21 [1156] __rad_chk_resp_authenticator-ret=0
2026-05-31 19:42:21 [1231] fnbamd_rad_validate_pkt-RADIUS resp code 2
2026-05-31 19:42:21 [1003] __rad_rxtx-
2026-05-31 19:42:21 [1301] fnbamd_rad_process-Result from radius svr 'FAC' is 0, req 979371565059
2026-05-31 19:42:21 [530] fnbamd_rad_get_vsas-FORTINET attr, type 1, val SSLVPN_INTERNAL_USERS
2026-05-31 19:42:21 [931] fnbamd_radius_parse_mschapv2_attr-Decoding TYPE_MS_MPPE_Send_Key
2026-05-31 19:42:21 [843] __radius_decode_mppe_key-Key len after decode 16
2026-05-31 19:42:21 [920] fnbamd_radius_parse_mschapv2_attr-Decoding TYPE_MS_MPPE_Recv_Key
2026-05-31 19:42:21 [843] __radius_decode_mppe_key-Key len after decode 16
2026-05-31 19:42:21 fnbamd_dbg_hex_pnt[49] EAP msg from server (4)-03 6E 00 04
2026-05-31 19:42:21 [1503] fnbamd_rad_process-Challenged: 0, FTK_Challenge: 0, CHG_PWD: 0, Invaid_Digest: 0, No_Message_Authenticator_Attr: 0, State_Len: 0
2026-05-31 19:42:21 [631] fnbam_user_auth_group_match-req id: 979371565059, server: FAC, local auth: 0, dn match: 0
2026-05-31 19:42:21 [585] __group_match-Check if FAC is a group member
2026-05-31 19:42:21 [591] __group_match-Group 'RA-VPN_INTERNAL' passed group matching
2026-05-31 19:42:21 [594] __group_match-Add matched group 'RA-VPN_INTERNAL'(2)
2026-05-31 19:42:21 [585] __group_match-Check if FAC is a group member
2026-05-31 19:42:21 [585] __group_match-Check if FAC is a group member
2026-05-31 19:42:21 [585] __group_match-Check if FAC is a group member
2026-05-31 19:42:21 [206] find_matched_usr_grps-Passed group matching
2026-05-31 19:42:21 [912] update_auth_token_session-config does not require 2fa
2026-05-31 19:42:21 [239] fnbamd_comm_send_result-Sending result 0 (nid 0) for req 979371565059, len=2628
2026-05-31 19:42:21 2026-05-31 19:42:21.522909 ike V=DMZ:2:RA_USERS:165 EAP 979371565059 result FNBAM_SUCCESS
2026-05-31 19:42:21.522930 ike V=DMZ:2:RA_USERS: user 'ipsec' authenticated group 'RA-VPN_INTERNAL' 2
2026-05-31 19:42:21.522948 ike V=DMZ:2:RA_USERS: assigned IP 192.178.238.210
By removing the LDAP group, fnbamd passthrough via the EAP goes directly to the FortiAuthenticator instead of passing through the 'EAP_PROXY', and the Framed-IP-Address is assigned correctly to the FortiClient. |