Project

General

Profile

Actions

Feature #15904

open

Built-in Captive Portal Support for RFC8910, DHCP option 114 in Kea.

Added by Dale Harron 16 days ago. Updated 5 days ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
DHCP (IPv4)
Target version:
-
Start date:
Due date:
% Done:

0%

Estimated time:
Plus Target Version:
Release Notes:
Default

Description

Add an option in Kea to automatically support RFC8910, DHCP Option 114 through a GUI option for all Captive Portals. This DHCP 114 option is now a default option in KEA, "v4-captive-portal". This would take the form of a simple checkbox (something like "send DHCP114 default string for Captive Portals") that would enable index.php to send the required JSON information for the Device to load the Captive Portal Logon, Logout page as applicable if this box was checked in Kea Setup GUI. There is also a Vendor URL option in RFC8910 that should default to the logout page for the "automatic" checkbox.

I assume Kea will be supporting the entry of string(s) for both logon and vendor url and this is an option to simplify support for the captive portal on smart phones. The JSON simply contains the login url and for the "Captive Portal Page" in iOS it is the logout page or a custom page if desired.

Currently all iOS and many smart devices can not log into the captive portal because they do not support html until after they have internet access. Internet access can only be obtained by launching the login page within the internal temporary browser which obtains the URL from the JSDON string values sent in DHCP option 114. They also do not permit an https:// url until internet access is provided. The only option for them to work with captive portal is through RFC8910 and it can be complex for many pfSense users to understand. This would simplify Captive Portal and make it work with all devices. Thus, it is a logical upgrade.

I have attached a file from the user support forum that implements this currently with ISC (and KEA thru Redmine #15321 for Plus 24.11) and is commonly used to solve this problem. It is derived from index.php which has changed for Plus 24.11 and this implementation would ensure compatibility with future releases of pfSense as index.php evolves over time.


Files

RFC8910-w-allowed-MAC-IP-fix.php (2.74 KB) RFC8910-w-allowed-MAC-IP-fix.php RFC8910 implementation CE 2.7.2 and later. Dale Harron, 12/05/2024 10:48 PM
RFC8910-Dec10.php (3.79 KB) RFC8910-Dec10.php Check MAC instead of IP to verify T/F in RFC8910 JSON Dale Harron, 12/11/2024 10:36 AM
index-2411-Dec10.php (21.5 KB) index-2411-Dec10.php associate MAC instead of IP for CP database verification Dale Harron, 12/11/2024 10:36 AM
index-2411-Dec11.php (21.5 KB) index-2411-Dec11.php Dale Harron, 12/12/2024 12:54 AM
index-2411-Dec11.php (21.5 KB) index-2411-Dec11.php Dale Harron, 12/12/2024 12:55 AM
RFC8910-Dec11.php (3.86 KB) RFC8910-Dec11.php Dale Harron, 12/12/2024 11:09 AM
index-2411-Dec17.php (19.8 KB) index-2411-Dec17.php Dale Harron, 12/17/2024 11:10 AM
Actions

Also available in: Atom PDF