Introduction

We are a national Wi-Fi provider in Luxembourg and we provide public Wi-Fi 
hostpots all around the country (~20K users / day).
Few weeks ago, we tried to activate Capport RFC on our Wi-Fi infrastructure and 
we faced some issues with iOS users. 
These one complained about seeing the captive portal to much times. 
After analysing our logs, it seems that the devices launches the captive portal 
pop-up for no reasons (see logs below)

Logs analysis

# The device requests capport API that was provided by DHCP attribute
Jun 30 12:31:35 2a0b:c700:xxx nginx: 100.81.162.155 - - [30/Jun/2022:12:31:35 
+0200] "GET 
https://portal.hotcity.lu/wifi/api/capport/a10d07a5-9258-4fb9-8b4f-3276deab4970 
HTTP/2.0" 200 102 "-" "CaptiveNetworkSupport-428.120.3" 
"TLSv1.2/ECDHE-RSA-AES256-GCM-SHA384" "portal.hotcity.lu" 
"application/captive+json" "0.029" "0.029" 
# As the result of the API gives "captive=true", the device decides to open the 
captive portal pop-up
Jun 30 12:31:35 2a0b:c700:xxx nginx: 100.81.162.155 - - [30/Jun/2022:12:31:35 
+0200] "GET 
https://portal.hotcity.lu/wifi/api/portals/a10d07a5-9258-4fb9-8b4f-3276deab4970 
HTTP/2.0" 200 1094 
"https://portal.hotcity.lu/a10d07a5-9258-4fb9-8b4f-3276deab4970"; "Mozilla/5.0 
(iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like 
Gecko) Mobile/15E148" "TLSv1.2/ECDHE-RSA-AES256-GCM-SHA384" "portal.hotcity.lu" 
"application/json" "0.022" "0.022" 
Jun 30 12:31:49 2a0b:c700:xxx nginx: 100.81.162.155 - - [30/Jun/2022:12:31:49 
+0200] "GET https://portal.hotcity.lu/a10d07a5-9258-4fb9-8b4f-3276deab4970 
HTTP/1.0" 200 1996 "-" "CaptiveNetworkSupport-428.120.3 wispr" 
"TLSv1.2/ECDHE-RSA-AES256-GCM-SHA384" "portal.hotcity.lu" "text/html" "0.002" 
"0.001" 
# The user activates his Wi-Fi session on the captive portal
Jun 30 12:31:54 2a0b:c700:xxx nginx: 100.81.162.155 - - [30/Jun/2022:12:31:54 
+0200] "POST https://portal.hotcity.lu/auth/api/configurations/wifi/tokens 
HTTP/2.0" 201 989 
"https://portal.hotcity.lu/a10d07a5-9258-4fb9-8b4f-3276deab4970"; "Mozilla/5.0 
(iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like 
Gecko) Mobile/15E148" "TLSv1.2/ECDHE-RSA-AES256-GCM-SHA384" "portal.hotcity.lu" 
"application/json" "0.039" "0.038" 
Jun 30 12:31:54 2a0b:c700:xxx nginx: 100.81.162.155 - - [30/Jun/2022:12:31:54 
+0200] "POST 
https://portal.hotcity.lu/wifi/api/portals/a10d07a5-9258-4fb9-8b4f-3276deab4970/users/xxxxxxx...@citywifi.lu/connections
 HTTP/2.0" 201 109 
"https://portal.hotcity.lu/a10d07a5-9258-4fb9-8b4f-3276deab4970"; "Mozilla/5.0 
(iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like 
Gecko) Mobile/15E148" "TLSv1.2/ECDHE-RSA-AES256-GCM-SHA384" "portal.hotcity.lu" 
"application/json" "0.050" "0.050" 
# The user is redirected on captive portal success page 
Jun 30 12:31:54 2a0b:c700:xxx nginx: 100.81.162.155 - - [30/Jun/2022:12:31:54 
+0200] "GET 
https://portal.hotcity.lu/a10d07a5-9258-4fb9-8b4f-3276deab4970/citywifi 
HTTP/2.0" 200 674 
"https://portal.hotcity.lu/a10d07a5-9258-4fb9-8b4f-3276deab4970"; "Mozilla/5.0 
(iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like 
Gecko) Mobile/15E148" "TLSv1.2/ECDHE-RSA-AES256-GCM-SHA384" "portal.hotcity.lu" 
"text/html" "0.001" "0.002" 
Jun 30 12:31:54 2a0b:c700:xxx nginx: 100.81.162.155 - - [30/Jun/2022:12:31:54 
+0200] "GET 
https://portal.hotcity.lu/wifi/api/portals/a10d07a5-9258-4fb9-8b4f-3276deab4970 
HTTP/2.0" 200 1094 
"https://portal.hotcity.lu/a10d07a5-9258-4fb9-8b4f-3276deab4970/citywifi"; 
"Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 
(KHTML, like Gecko) Mobile/15E148" "TLSv1.2/ECDHE-RSA-AES256-GCM-SHA384" 
"portal.hotcity.lu" "application/json" "0.025" "0.025" 
Jun 30 12:31:54 2a0b:c700:xxx nginx: 100.81.162.155 - - [30/Jun/2022:12:31:54 
+0200] "GET 
https://portal.hotcity.lu/wifi/api/realms/citywifi/users/xxxxxxx...@citywifi.lu 
HTTP/2.0" 200 167 
"https://portal.hotcity.lu/a10d07a5-9258-4fb9-8b4f-3276deab4970/citywifi"; 
"Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 
(KHTML, like Gecko) Mobile/15E148" "TLSv1.2/ECDHE-RSA-AES256-GCM-SHA384" 
"portal.hotcity.lu" "application/json" "0.029" "0.030" 
# The user requested captive portal landing page 
Jun 30 12:31:56 2a0b:c700:xxx nginx: 100.81.162.155 - - [30/Jun/2022:12:31:56 
+0200] "GET https://portal.hotcity.lu/a10d07a5-9258-4fb9-8b4f-3276deab4970 
HTTP/2.0" 200 698 "-" "Mozilla/5.0 (iPhone; CPU iPhone OS 15_5 like Mac OS X) 
AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148" 
"TLSv1.2/ECDHE-RSA-AES256-GCM-SHA384" "portal.hotcity.lu" "text/html" "0.003" 
"0.003" 
# The device requested 2 times the captive portal landing page too
# Notes : 
# * The user has just activated his wi-fi session (his state passes from 
captive=true to captive=false)
# * The device decided to open again the captive portal pop-up without checking 
for the captivity current state
Jun 30 12:31:56 2a0b:c700:xxx nginx: 100.81.162.155 - - [30/Jun/2022:12:31:56 
+0200] "GET https://portal.hotcity.lu/a10d07a5-9258-4fb9-8b4f-3276deab4970 
HTTP/1.0" 200 1996 "-" "CaptiveNetworkSupport-428.120.3 wispr" 
"TLSv1.2/ECDHE-RSA-AES256-GCM-SHA384" "portal.hotcity.lu" "text/html" "0.011" 
"0.010" 
Jun 30 12:31:57 2a0b:c700:xxx nginx: 100.81.162.155 - - [30/Jun/2022:12:31:57 
+0200] "GET 
https://portal.hotcity.lu/wifi/api/portals/a10d07a5-9258-4fb9-8b4f-3276deab4970 
HTTP/2.0" 200 1094 
"https://portal.hotcity.lu/a10d07a5-9258-4fb9-8b4f-3276deab4970"; "Mozilla/5.0 
(iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like 
Gecko) Mobile/15E148" "TLSv1.2/ECDHE-RSA-AES256-GCM-SHA384" "portal.hotcity.lu" 
"application/json" "0.031" "0.032" 
Jun 30 12:31:57 2a0b:c700:xxx nginx: 100.81.162.155 - - [30/Jun/2022:12:31:57 
+0200] "GET https://portal.hotcity.lu/a10d07a5-9258-4fb9-8b4f-3276deab4970 
HTTP/1.0" 200 1996 "-" "CaptiveNetworkSupport-428.120.3 wispr" 
"TLSv1.2/ECDHE-RSA-AES256-GCM-SHA384" "portal.hotcity.lu" "text/html" "0.002" 
"0.001" 
# The user tried again to activate his Wi-Fi session on the captive portal
Jun 30 12:32:14 2a0b:c700:xxx nginx: 100.81.162.155 - - [30/Jun/2022:12:32:14 
+0200] "POST https://portal.hotcity.lu/auth/api/configurations/wifi/tokens 
HTTP/2.0" 201 989 
"https://portal.hotcity.lu/a10d07a5-9258-4fb9-8b4f-3276deab4970"; "Mozilla/5.0 
(iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like 
Gecko) Mobile/15E148" "TLSv1.2/ECDHE-RSA-AES256-GCM-SHA384" "portal.hotcity.lu" 
"application/json" "0.026" "0.027" 
# Session activation failed on captive portal due to "Simultaneous-Use" RADIUS 
settings
Jun 30 12:32:14 2a0b:c700:xxx nginx: 100.81.162.155 - - [30/Jun/2022:12:32:14 
+0200] "POST 
https://portal.hotcity.lu/wifi/api/portals/a10d07a5-9258-4fb9-8b4f-3276deab4970/users/xxxxxxx...@citywifi.lu/connections
 HTTP/2.0" 400 125 
"https://portal.hotcity.lu/a10d07a5-9258-4fb9-8b4f-3276deab4970"; "Mozilla/5.0 
(iPhone; CPU iPhone OS 15_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like 
Gecko) Mobile/15E148" "TLSv1.2/ECDHE-RSA-AES256-GCM-SHA384" "portal.hotcity.lu" 
"application/json" "0.113" "0.113" 
Conclusion

According our logs, it seems that, in some situations, the device does not 
check for the captivity state before opening the captive portal pop-up. 

We have no trace in our logs about device asking what is the status of Capport 
before reloading the popup on the device.

Are there any things to do for avoiding such a situation ?

Unfortunatly we decided to stop support of capport on our national network 
until we are able to fix a workaround about this.


Kind regards,
Xavier
--


        
​Xavier ​Beaudouin | ​System & Network Engineer
11, Avenue Guillaume 
<https://maps.google.com/?q=11,+Avenue+Guillaume&entry=gmail&source=g> | L-1651 
Luxembourg
Phone: (+352) 2663 2661  <>| Fax: (+352) 2663 2665 <>
Facebook <https://www.facebook.com/hotcity.lu> | Twitter 
<https://twitter.com/hotcity_wifi>


_______________________________________________
Captive-portals mailing list
Captive-portals@ietf.org
https://www.ietf.org/mailman/listinfo/captive-portals

Reply via email to