Zyxel Nebula Cloud and USG Integration with Purple WiFi
This technical reference guide covers the end-to-end integration of Zyxel Nebula Cloud and USG Flex Firewalls with the Purple WiFi platform. It provides step-by-step configuration instructions for guest captive portal redirection, RADIUS authentication, Walled Garden setup, secure Staff WiFi using 802.1X, and multi-tenant network segmentation using Zyxel Private Pre-Shared Keys (PPSK) with dynamic VLAN assignment. IT managers, MSPs, and network architects deploying WiFi across hospitality, retail, and multi-tenant venues will find actionable guidance grounded in industry standards including PCI DSS, IEEE 802.1X, and GDPR.
Listen to this guide
View podcast transcript
- Executive summary
- Technical deep-dive
- Integration architecture
- RADIUS parameters
- Walled Garden configuration
- Secure Staff WiFi using IEEE 802.1X
- PPSK and dynamic VLAN assignment for multi-tenant venues
- Implementation guide
- Step 1: Prepare the network infrastructure
- Step 2: Configure the guest SSID in Nebula Control Center
- Step 3: Configure the external captive portal
- Step 4: Configure RADIUS in Nebula
- Step 5: Configure DPPSK for multi-tenant segmentation
- Step 6: Validate the deployment
- Best practices
- Troubleshooting & risk mitigation
- Splash page fails to load
- Guests authenticate but do not get internet access
- RADIUS accounting data missing from Purple dashboard
- DPPSK users assigned to wrong VLAN
- ROI & business impact

Executive summary
Zyxel Nebula Cloud and USG Flex Firewalls are deployed across thousands of enterprise venues, from hotel chains to retail estates. When you integrate this hardware with Purple, you add a compliant, data-capturing guest authentication layer that transforms a standard wireless network into a first-party data asset. This guide covers four deployment scenarios: guest captive portal redirection via an external splash page, RADIUS-based authentication and accounting, secure Staff WiFi using IEEE 802.1X, and multi-tenant network segmentation using Zyxel Dynamic Personal Pre-Shared Keys (DPPSK). Purple operates across 80,000+ live venues and processed 440 million logins in 2024 (Purple internal data). It holds ISO 27001, GDPR, CCPA, and Cyber Essentials certifications. The integration architecture described here is hardware-agnostic at the platform level, but the specific configuration paths and parameters in this guide apply to Zyxel Nebula Control Center (NCC) and USG Flex Firewalls running current firmware.
For a broader view of enterprise WiFi security architecture, see our Enterprise WiFi Security: A Complete Guide for 2026 .
Technical deep-dive
Integration architecture
The Zyxel and Purple integration relies on three standard protocols working in sequence: HTTP redirect (captive portal detection), RADIUS Authentication (UDP 1812), and RADIUS Accounting (UDP 1813). When a guest device connects to the Guest WiFi SSID, the Zyxel access point intercepts the first HTTP request and issues an HTTP 302 redirect to the Purple external captive portal URL. The guest authenticates on the Purple splash page - via email, social login, or SMS - and Purple sends a RADIUS Access-Accept message back to the Zyxel controller. The controller grants internet access and begins sending RADIUS Accounting Start packets to record session data.

The Zyxel USG Flex Firewall sits between the wireless segments and the WAN. It enforces zone-based security policies that isolate Guest, Staff, and Multi-Tenant VLANs from each other and from the corporate LAN. Nebula Control Center manages the access points and SSID configurations centrally via HTTPS on port 443 to the Nebula cloud.
RADIUS parameters
The following table summarises the RADIUS configuration parameters you will need from your Purple admin console.
| Parameter | Value |
|---|---|
| Primary RADIUS IP | Provided in Purple admin console |
| Secondary RADIUS IP | Provided in Purple admin console |
| Authentication port | UDP 1812 |
| Accounting port | UDP 1813 |
| Shared secret | Provided in Purple admin console |
| NAS identifier | Set to AP MAC address or site name |
| Called Station ID | AP MAC address |
Always configure both primary and secondary RADIUS servers. A single RADIUS endpoint is a single point of failure that will lock guests out if the server is unreachable.
Walled Garden configuration
The Walled Garden (also called the whitelist) defines the domains and IP ranges a device can reach before completing authentication. In Zyxel Nebula, you configure this under Site-wide > Configure > Access points > Captive portal customisation > Captive portal advance setting.
You must include the following categories of entries:
- The Purple portal domain and all subdomains (use wildcard format:
*.purple.ai) - CDN domains serving the portal's CSS, JavaScript, and image assets
- Social login provider domains if you enable Facebook, Google, or Microsoft sign-in
- Apple captive portal detection:
captive.apple.com - Google connectivity check:
connectivitycheck.gstatic.com - Microsoft NCSI:
www.msftconnecttest.com
Missing any of these entries will cause the splash page to fail to render on specific device types. iOS devices in particular will display a blank mini-browser if the Apple CNA endpoint is not handled correctly.
Secure Staff WiFi using IEEE 802.1X
For staff networks, you should not use a shared PSK. IEEE 802.1X (defined in the IEEE 802.1X-2020 standard) provides port-based network access control using individual credentials per user. In Nebula, you configure this by setting the SSID security to WPA2-Enterprise and pointing the authentication to either the Nebula Cloud Authentication Server (NCAS) or an external RADIUS server such as Microsoft Entra ID or Okta via a RADIUS proxy.
For WPA3-Enterprise deployments, the configuration path is identical but you select WPA3 in the security options. WPA3 mandates Protected Management Frames (PMF) and uses Simultaneous Authentication of Equals (SAE) for improved resistance to offline dictionary attacks.
PPSK and dynamic VLAN assignment for multi-tenant venues

Zyxel DPPSK (Dynamic Personal Pre-Shared Key) allows a single SSID to serve multiple isolated network segments. Each user or device receives a unique passphrase. When they authenticate, the Nebula controller maps that passphrase to a VLAN ID defined in the DPPSK database. This is the correct approach for coworking spaces, student accommodation, build-to-rent (BTR) developments, and multi-dwelling units (MDUs) where you need tenant isolation without broadcasting dozens of SSIDs.
DPPSK requires the Nebula Pro Pack licence and access point firmware version 6.00 or later. You configure the DPPSK database under Configure > Cloud authentication > DPPSK in Nebula Control Center. Each entry includes the passphrase, an optional expiry date, an email address for delivery, and the target VLAN ID.
The maximum number of simultaneously authorised DPPSK entries is 2,048. For deployments with more than 2,048 concurrent users, you will need to manage expiry dates carefully to ensure active credentials remain within this limit.
Implementation guide
Step 1: Prepare the network infrastructure
Before touching the Nebula Control Center, configure your VLANs on the USG Flex Firewall and downstream switches.
- Create a Guest VLAN (example: VLAN 10) with a dedicated subnet (example: 192.168.10.0/24). Configure a DHCP server on this interface.
- Create a Staff VLAN (example: VLAN 20) with a dedicated subnet (example: 192.168.20.0/24).
- For multi-tenant deployments, create additional VLANs per tenant (example: VLAN 30, 40, 50).
- On the USG Flex, create a Guest Zone mapped to VLAN 10. Create a security policy allowing traffic from the Guest Zone to the WAN zone. Create a deny-all policy blocking traffic from the Guest Zone to the LAN zone.
- Ensure switch ports connecting Zyxel APs are configured as 802.1Q trunks carrying all required VLAN tags.
Step 2: Configure the guest SSID in Nebula Control Center
- Log in to Nebula Control Center at
ncc.nebula.zyxel.com. - Navigate to Site-wide > Configure > Access points > SSID settings.
- Enable the guest SSID and toggle Advanced mode.
- Enable Guest network to activate Layer 2 client isolation. This prevents guest devices from communicating directly with each other on the same SSID.
- Save.
Step 3: Configure the external captive portal
- Navigate to Site-wide > Configure > Access points > SSID advanced settings.
- Select your guest SSID from the dropdown.
- Under Sign-in method, select Click-to-continue for the initial redirect, or select My RADIUS server if you are using Purple's RADIUS-based MAC authentication.
- Navigate to Site-wide > Configure > Access points > Captive portal customisation.
- Under External captive portal URL, enter the Purple redirect URL from your Purple admin console. The format is
https://[your-purple-domain]/[venue-id]. - Under Captive portal advance setting, enter all required Walled Garden domains.
- Set Strict policy to Block all access until sign-on to prevent guests from bypassing the portal.
- Set Reauth time to match your venue's session policy (typically 24 hours for hospitality, 30 days for retail loyalty programmes).
- Save.
Step 4: Configure RADIUS in Nebula
- In SSID advanced settings, under Network access, select My RADIUS server.
- Enter the Primary RADIUS server IP from your Purple admin console.
- Set Authentication port to
1812. - Enter the Shared secret.
- Repeat for the secondary RADIUS server.
- Enable RADIUS accounting and set the accounting port to
1813. - Save.
Step 5: Configure DPPSK for multi-tenant segmentation
- Navigate to Configure > Access points > SSID advanced settings.
- Select the multi-tenant SSID and set Network access to Dynamic personal PSK.
- Navigate to Configure > Cloud authentication > DPPSK.
- Click Add and select Batch create DPPSK.
- Set the number of credentials, the expiry date, and the target VLAN ID for each tenant group.
- Enter the email address to receive the credential batch.
- Save and distribute credentials to tenants.
Step 6: Validate the deployment
- Connect a test device to the Guest WiFi SSID.
- Confirm the device is redirected to the Purple splash page.
- Complete authentication and confirm internet access is granted.
- In the Purple admin console, verify the session appears in the analytics dashboard.
- In Nebula, navigate to Access point > Monitor > Clients to confirm the client is associated and assigned to the correct VLAN.
- Test DPPSK by connecting with a tenant credential and confirming the correct VLAN assignment.
Best practices
Segment every traffic type. Guest, Staff, and IoT traffic must each occupy a dedicated VLAN. This is not optional if your venue processes card payments on the same physical infrastructure - PCI DSS v4.0 requires network segmentation between cardholder data environments and guest networks.
Use RADIUS redundancy. Configure both primary and secondary Purple RADIUS IPs in Nebula. A single RADIUS server failure will prevent all guest authentication until resolved.
Audit the Walled Garden regularly. Portal vendors update their CDN configurations. A domain that worked at deployment may break six months later if the vendor migrates assets to a new CDN. Schedule a quarterly review of your Walled Garden entries.
Enable RADIUS accounting. Without accounting, Purple cannot track session duration, data usage, or enforce time-based access limits. Accounting data also feeds the WiFi Analytics dashboard.
Apply WPA3 where hardware supports it. Zyxel access points released from 2021 onwards support WPA3. For Staff WiFi, WPA3-Enterprise with 192-bit security mode aligns with NIST SP 800-187 recommendations for enterprise wireless security.
Test the CNA behaviour before go-live. On iOS, the Captive Network Assistant (CNA) mini-browser has limited functionality compared to a full browser. Test your Purple splash page in the CNA environment - particularly social login flows and custom JavaScript - before deploying to guests.
For hospitality deployments, see also our guidance on segmenting guest and back-of-house networks. For retail environments, the same PPSK approach applies to isolating point-of-sale systems from shopper WiFi.
Troubleshooting & risk mitigation
Splash page fails to load
Symptom: Guest connects to the SSID but sees a blank page or a browser error in the CNA.
Cause: One or more domains required by the splash page are not in the Walled Garden.
Resolution: Connect a test device to the Guest SSID. Open a browser (not the CNA) and navigate to any HTTP URL. When redirected to the portal, open the browser's developer tools and inspect the Network tab. Identify any requests returning 403 or connection-refused errors. Add these domains to the Nebula Walled Garden.
Guests authenticate but do not get internet access
Symptom: Guest completes the portal form and sees a success page, but internet browsing fails.
Cause: The Zyxel controller is not receiving the RADIUS Access-Accept from Purple, or the USG Flex firewall is blocking the RADIUS response.
Resolution: Verify that outbound UDP ports 1812 and 1813 are permitted from the Zyxel AP management IP to the Purple RADIUS server IP. Check the USG Flex security policy logs for blocked traffic.
RADIUS accounting data missing from Purple dashboard
Symptom: Sessions appear in Nebula but the Purple analytics dashboard shows no session duration data.
Cause: RADIUS Accounting is not enabled in the Nebula SSID configuration, or UDP port 1813 is blocked.
Resolution: Confirm RADIUS accounting is enabled in the SSID advanced settings. Verify the accounting port is set to 1813 and the shared secret matches the Purple configuration.
DPPSK users assigned to wrong VLAN
Symptom: A tenant connects with their PPSK but is placed on the wrong network segment.
Cause: The VLAN ID in the DPPSK database entry does not match the VLAN configured on the switch trunk or the USG Flex interface.
Resolution: Cross-reference the VLAN ID in the Nebula DPPSK database with the VLAN configuration on the upstream switch and USG Flex. Ensure the AP switch port is a trunk carrying all tenant VLANs.
ROI & business impact
Integrating Zyxel infrastructure with Purple converts a cost-centre wireless network into a revenue-generating data asset. For a 200-room hotel, capturing guest email addresses and marketing consent at WiFi login builds a CRM database that drives direct booking campaigns - reducing dependence on OTA commissions. For a retail chain, Purple's Guest WiFi platform provides foot traffic analytics, dwell time data, and repeat visit rates that inform staffing and merchandising decisions.
For multi-tenant operators - BTR developments, student accommodation, coworking spaces - deploying Zyxel DPPSK with Purple eliminates the operational overhead of managing separate SSIDs and credentials per tenant. A single SSID with dynamic VLAN assignment reduces RF interference, simplifies onboarding, and scales to hundreds of residents without additional infrastructure.
Purple's 99.999% uptime SLA ensures the authentication layer does not become a bottleneck for guest access. With 29 billion data points collected across the platform (Purple internal data), the analytics delivered through the Purple admin console provide venue operators with actionable intelligence that justifies the integration investment within the first quarter of deployment.
For healthcare and transport environments where visitor WiFi is a regulated service, the GDPR-compliant data capture and consent management built into Purple's captive portal removes the compliance risk associated with unmanaged open networks.
See also: Arista Cognitive Wi-Fi Integration with Purple WiFi for a comparable integration pattern on a different hardware platform.
Key Definitions
Captive portal
A web page that intercepts unauthenticated HTTP traffic from a connected device and requires the user to interact or authenticate before internet access is granted.
The primary mechanism Purple uses to capture guest data and enforce terms of service on Zyxel Guest WiFi networks.
Walled Garden
A list of IP addresses and domain names that a device can access before completing captive portal authentication.
Configured in Nebula under Captive portal advance setting. Must include all Purple portal domains, CDN endpoints, and OS connectivity check URLs.
RADIUS
Remote Authentication Dial-In User Service. A networking protocol providing centralised Authentication, Authorisation, and Accounting (AAA) management for network access.
Purple acts as the RADIUS server. Zyxel APs send authentication requests on UDP 1812 and accounting data on UDP 1813.
DPPSK
Dynamic Personal Pre-Shared Key. A Zyxel Nebula feature that issues unique WiFi passphrases on a single SSID, mapping each passphrase to a specific VLAN.
Used in multi-tenant venues to isolate resident or tenant traffic without broadcasting multiple SSIDs. Requires Nebula Pro Pack.
VLAN
Virtual Local Area Network. A logical network segment that isolates traffic at Layer 2, regardless of the physical switch or AP infrastructure.
Mandatory for separating Guest, Staff, and Multi-Tenant traffic. Required for PCI DSS compliance in venues that process card payments.
IEEE 802.1X
An IEEE standard for port-based network access control that uses the Extensible Authentication Protocol (EAP) to authenticate individual users or devices before granting network access.
Used for Staff WiFi in Nebula by selecting WPA2-Enterprise or WPA3-Enterprise with either the Nebula Cloud Authentication Server or an external RADIUS server.
CNA
Captive Network Assistant. The pseudo-browser that iOS and macOS devices automatically open when they detect a captive portal on a WiFi network.
Has limited JavaScript and cookie support compared to a full browser. Purple splash pages must be tested in the CNA environment before deployment.
Identity-Based Networks
A network architecture where access policies, VLAN assignments, and bandwidth limits are dynamically applied based on the authenticated identity of the user or device.
The outcome of combining Zyxel DPPSK with Purple's RADIUS platform. Each user gets the right network segment automatically at connection time.
NCC
Nebula Control Center. Zyxel's cloud-based network management platform for centrally configuring and monitoring Zyxel access points, switches, and firewalls.
All SSID, captive portal, RADIUS, and DPPSK configurations described in this guide are performed within NCC.
Worked Examples
A 200-room hotel is deploying Zyxel Nebula access points and a USG Flex 500 firewall. They need guest WiFi with a branded splash page, a separate staff network with individual credentials, and an IoT network for smart TVs and thermostats - all without broadcasting more than three SSIDs.
The IT team configures three SSIDs. The first is 'Hotel-Guest', an open SSID with the Purple external captive portal URL configured in Nebula. Guests are redirected to a branded Purple splash page where they submit their email and accept marketing consent. RADIUS authentication and accounting point to the Purple cloud platform on ports 1812 and 1813. The second SSID is 'Hotel-Staff', configured with WPA2-Enterprise and the Nebula Cloud Authentication Server. Each staff member has a unique username and password in the NCAS database, mapped to VLAN 20. The third SSID is 'Hotel-IoT', configured with DPPSK. Each smart TV and thermostat receives a unique passphrase mapped to VLAN 30. The USG Flex enforces zone policies: Guest (VLAN 10) can only reach the WAN. Staff (VLAN 20) can reach the WAN and internal management systems. IoT (VLAN 30) is restricted to specific local services only.
A coworking space operator manages 12 tenants across three floors. Each tenant needs isolated internet access and must not be able to reach other tenants' devices. The operator wants to issue WiFi credentials at move-in and revoke them at move-out, without changing the SSID or reconfiguring the APs.
The operator deploys a single 'CoWork-Connect' SSID with DPPSK enabled in Nebula. At move-in, they log in to the Nebula Control Center, navigate to Configure > Cloud authentication > DPPSK, and create a new credential for the tenant with the target VLAN ID matching that tenant's network segment. They set an expiry date matching the lease end date and email the credential to the tenant. At move-out, they delete the DPPSK entry. The credential immediately becomes invalid and the tenant's devices can no longer associate. Layer 2 isolation is enabled on the SSID to prevent cross-tenant communication even within the same VLAN.
Practice Questions
Q1. You have configured the Purple captive portal URL in Zyxel Nebula and enabled the external portal. Guests connect to the SSID but report that the splash page takes over 30 seconds to load and appears visually broken - missing images and layout. What is the most likely cause and how do you resolve it?
Hint: Consider what controls access to external resources before a guest has authenticated.
View model answer
The Walled Garden configuration is incomplete. The Purple splash page loads CSS, JavaScript, and image assets from CDN domains. If these domains are not whitelisted in the Nebula Captive portal advance setting, the AP blocks those requests before authentication is complete. Resolution: connect a test device to the Guest SSID, open a browser (not the CNA mini-browser), navigate to any HTTP URL to trigger the redirect, then open developer tools and inspect the Network tab. Identify any requests returning 403 or connection errors. Add those domains to the Nebula Walled Garden and retest.
Q2. A venue operator wants to provide isolated networks for 15 different retail tenants in a shopping centre. Their initial plan is to broadcast 15 separate SSIDs from their Zyxel APs. Why is this approach problematic, and what should they deploy instead?
Hint: Think about RF airtime and the Zyxel feature designed specifically for this use case.
View model answer
Broadcasting 15 SSIDs generates 15 sets of beacon frames per access point per second. In a dense retail environment with multiple APs, this beacon overhead consumes significant airtime and degrades throughput for all connected devices. The correct approach is to broadcast a single SSID and enable Zyxel DPPSK. Each tenant receives a unique passphrase mapped to their dedicated VLAN ID. When a tenant device connects, the Nebula controller dynamically assigns it to the correct VLAN. This achieves full traffic isolation with a single SSID and minimal RF overhead.
Q3. After deploying the Zyxel and Purple integration, guests can authenticate successfully and browse the internet. However, the Purple analytics dashboard shows zero session duration data and the time-based access limit feature is not working. What is missing from the configuration?
Hint: Authentication and session tracking use different ports and protocols.
View model answer
RADIUS Accounting is either not enabled in the Nebula SSID configuration or UDP port 1813 is blocked by the upstream firewall. Authentication (UDP 1812) is succeeding, which is why guests can connect. But without Accounting packets (Start, Interim-Update, Stop), Purple cannot track session duration, enforce time limits, or populate the analytics dashboard. Resolution: confirm RADIUS accounting is enabled in SSID advanced settings with the accounting port set to 1813 and the correct shared secret. Then verify the upstream firewall permits outbound UDP 1813 from the Zyxel AP management IP to the Purple RADIUS server IP.
Continue reading in this series
MikroTik RouterOS Captive Portal and Purple WiFi Integration Guide
This technical guide provides step-by-step instructions for integrating MikroTik RouterOS with Purple's WiFi platform. It covers Guest WiFi captive portal configuration, Staff WiFi 802.1X authentication, and Multi-Tenant WiFi using Private PSKs for dynamic VLAN segmentation.
MikroTik RouterOS Captive Portal and Purple WiFi Integration Guide
This technical guide provides step-by-step instructions for integrating MikroTik RouterOS with Purple's WiFi platform. It covers Guest WiFi captive portal configuration, Staff WiFi 802.1X authentication, and Multi-Tenant WiFi using Private PSKs for dynamic VLAN segmentation.
Sophos Firewall and Access Points Integration with Purple WiFi
This guide details the technical integration of Sophos Firewall (XG/XGS) and Sophos AP6/APX access points with Purple WiFi. It covers external captive portal redirection, RADIUS authentication and accounting configuration, Walled Garden setup, 802.1X for Staff WiFi, and dynamic VLAN assignment using Sophos PPSK for secure Multi-Tenant network segregation across hospitality, retail, and public-sector venues.