WiFi fast roaming with OpenWRT

Having trouble with your home WiFi network when moving between access points? I did. After spending several days debugging, I found that my network was working fine with ‘psk2’ (WPA2) mode, but failing with ‘sae-mixed’ (WPA2/WPA3).

Here’s the recipe that works for me:

  1. Install the dawn and wpad-openssl packages on your OpenWRT router.

  2. Modify the dawn configuration to specify broadcast_ip, shared_key and kicking options.

  3. Add the following options to the relevant WiFi interfaces on all access points:

config wifi-iface 'wifinet1'
	option ssid 'OpenWRT'
	option device 'radio0'
	option key 'mysecretpassword'
	option network 'lan'
	option mode 'ap'
	option encryption 'psk2'
	option ieee80211w '1'
	option ieee80211k '1'
	option ieee80211r '1'
	option bss_transition '1'
	option wnm_sleep_mode '1'
	option ft_over_ds '1'
	option ft_psk_generate_local '1'
	option time_advertisement '2'
	option time_zone 'GMT0'

P.S. When you want to debug roaming with your Android phone the one of the most powerful solutions is WiFiman app.