MACsec: EAPOL-MKA is not starting on hostap

Andrejs Aire an_aire at yahoo.com
Thu Nov 11 03:47:55 PST 2021


Hi

I'm facing a problem with MACsec setup on wired connection with the 
latest hostap release v2.9.
My setup is trivial (just for testing) - HOSTAP and RADIUS on the same 
machine,
communicating via RADIUS protocol over 127.0.0.1;
The wpa_supplicant is requesting service from another machine connected 
to HOSTAP via network interface.
EAP frame exchange for authorization between wpa_supplicant and HOSTAP 
takes place via multicast address 01:80:c2:00:00:03.

The problem:
1) The wpa_supplicant is successfully authenticated @RADIUS which is 
indicated by the 'Success' EAP frame sent by the HOSTAP. At this moment 
the MKA should step in.
2) The wpa_supplicant sends an EAPOL-MKA frame which to my understanding 
is kind of heartbeat or indicator.
The HOSTAP does not respond with any EAPOL-MKA frames and does not send 
any EAPOL frame after.
3) The EAPOL-MKA "indicator" is repeated 3 times more by the 
wpa_supplicant and this is the end.

The fragment of debug trace from hostapd at the stage of authentication 
finish:
...
...
EAP: EAP entering state SUCCESS2
enp0s8: CTRL-EVENT-EAP-SUCCESS2 08:00:27:6e:f4:d8
IEEE 802.1X: 08:00:27:6e:f4:d8 BE_AUTH entering state SUCCESS
enp0s8: STA 08:00:27:6e:f4:d8 IEEE 802.1X: Sending EAP Packet 
(identifier 112)
IEEE 802.1X: 08:00:27:6e:f4:d8 AUTH_PAE entering state AUTHENTICATED
enp0s8: STA 08:00:27:6e:f4:d8 IEEE 802.1X: authorizing port
enp0s8: STA 08:00:27:6e:f4:d8 IEEE 802.1X: authenticated - EAP type: 13 
(TLS)
IEEE 802.1X: External notification - Create MKA for 08:00:27:6e:f4:d8
MACsec: Successfully fetched key (len=64)
MSK:  - hexdump(len=64): [REMOVED]
MACsec: Failed to get SessionID from EAPOL state machines
IEEE 802.1X: Could not get EAP Session Id
...
...

The last two lines of the above trace point to a problem I cannot 
explain. Please advise.
My hostapd.conf settings are:
ieee8021x=1
eapol_version=3
eapol_key_index_workaround=0

use_pae_group_addr=1
driver=macsec_linux
macsec_policy=1
eap_server=0
own_ip_addr=127.0.0.1
radius_client_addr=127.0.0.1
auth_server_addr=127.0.0.1
auth_server_port=1812
auth_server_shared_secret=testing123
acct_server_addr=127.0.0.1
acct_server_port=1813
acct_server_shared_secret=testing123

Interesting is that if I use the same hostapd binary but change the 
hostapd.conf for the in-built EAP authenticator
instead of external RADIUS server, then the EAPOL-MKA wakes up and 
MACsec is successfully enabled.

The "Failed to get SessionID..." lines are not observed in the trace 
output and the HOSTAP sends EAPOL-MKA frames.
My hostapd.conf settings for a "good" case differ from above 
configuration only with 'eap_server=1' and paths to the user file and 
certificates.
Of course, the RADIUS related section is entirely commented out.

Please give me a clue what could be a problem in "bad" case. What is the 
root cause for the following trace output?
MACsec: Failed to get SessionID from EAPOL state machines
IEEE 802.1X: Could not get EAP Session Id

Thanks in advance,
Andre





More information about the Hostap mailing list