Skip to main content

How to Set Up a Captive Portal on Starlink for Guest WiFi

This technical guide explains how to bypass Starlink's native CGNAT limitations to deploy a secure, CCPA/CPRA-compliant captive portal for guest WiFi. It covers the required architecture, VLAN segmentation, and bandwidth management strategies essential for remote venues, maritime operators, and event spaces.

📖 4 min read📝 919 words🔧 2 worked examples3 practice questions📚 8 key definitions

Listen to this guide

View podcast transcript
Welcome to the Purple Technical Briefing. Today we are covering a question that comes up more and more often as Starlink reaches venues that fiber simply cannot. How do you set up a proper captive portal for guest WiFi on a Starlink connection? I am going to walk you through the architecture, the constraints you need to understand before you touch a single config file, and the implementation steps that actually work in production. We will cover two real-world scenarios, the five pitfalls I see most often, and finish with rapid-fire answers to the questions IT teams ask us every week. Let us start with why this is not a trivial problem. Starlink has genuinely changed the connectivity picture for venues that were previously stuck with slow, expensive satellite links or patchy 4G. A remote mountain hotel, a cruise vessel, a festival site in a field, a construction welfare unit - all of these can now get between 100 and 220 megabits per second from a dish the size of a large pizza. That is remarkable. But raw connectivity is only half the job. The moment you put that connection in front of guests, you need authentication, access control, CCPA/CPRA-compliant consent capture, and bandwidth management. Starlink does not give you any of that out of the box. That is where a captive portal comes in. Section one: understanding the Starlink network constraints. Before you touch a router, you need to understand what Starlink actually gives you at the WAN interface. The standard Starlink dish connects to a proprietary router that handles DHCP and NAT. By default, you are behind Carrier Grade NAT - what engineers call CGNAT. Your WAN IP address sits in the 100.64 to 100.127 range. It is not a public IP. You cannot receive inbound connections from the internet. And that matters enormously for captive portal architecture. Starlink's residential and Roam plans cap concurrent sessions at 1,200. For a busy hotel or event venue with hundreds of devices, that limit becomes a real constraint. The fix is bypass mode. You enable this in the Starlink app under Settings, then toggle Bypass Starlink WiFi router. Once enabled, the Starlink dish passes the CGNAT address directly to your enterprise router's WAN port. The Starlink router stops doing DHCP and NAT. Your router takes over. You are still behind CGNAT, but now you have full control of the routing layer. One critical point: if the Starlink dish is factory reset for any reason, bypass mode is disabled. You will need to re-enable it. Build that into your site runbook. Now, Starlink offers three plan tiers relevant to venue operators. Residential and Roam give you up to 100 megabits down, best-effort priority, and no static IP option. Starlink for Business gives you up to 220 megabits, priority data allocation, and a static IP add-on. Starlink Maritime gives you the same speeds with global portability - essential if the vessel moves between ocean regions. For any multi-user venue, I would recommend Business or Maritime as a minimum. Best-effort data on the residential plan means your guests get deprioritized whenever the satellite cell is congested. Section two: the architecture stack. Here is the four-layer stack you are building. Layer one is the Starlink uplink in bypass mode. Layer two is your enterprise router or firewall. Layer three is VLAN segmentation at the switch or access point level. Layer four is the cloud captive portal, which handles authentication, consent, and analytics. Let me spend a moment on VLAN segmentation because it is non-negotiable. You need at minimum three VLANs. VLAN 10 for staff - this carries your point-of-sale systems, back-office applications, and management traffic. VLAN 20 for guests - this is the internet-only segment that hits the captive portal. VLAN 30 for IoT - cameras, smart thermostats, building management systems. These three networks must not be able to talk to each other. Inter-VLAN routing should be blocked at the firewall. A guest on VLAN 20 must never be able to reach your POS terminal on VLAN 10. That is not just good practice - it is a PCI DSS requirement if you are processing card payments anywhere on the same physical infrastructure. The captive portal itself sits in the cloud. When a guest connects to your guest SSID and opens a browser, the router intercepts the HTTP request and redirects it to the portal login page. The guest authenticates - via email, social login, or a voucher code - accepts your terms of service, and the portal signals the router to grant that MAC address internet access. The whole flow should complete in under 10 seconds on a cell phone. Purple's cloud portal integrates directly with Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme, and Fortinet. You configure the RADIUS or API integration once, and Purple handles the authentication handshake. No on-premises authentication server required. That is critical for remote venues where you cannot run a local RADIUS server. Section three: the CGNAT problem and how to solve it. Here is the challenge that catches most IT teams out. Standard captive portal architectures assume the cloud portal can reach back into your network. With CGNAT, that is impossible. Inbound connections are blocked. The solution is a reverse tunnel. Your router establishes an outbound connection to the cloud portal and keeps it open persistently. All authentication traffic flows through that tunnel. The cloud never needs to initiate an inbound connection. Purple cloud overlay architecture handles this natively. If you do need a static IP, Starlink Business and Maritime offer a static IP as an add-on. Check Starlink current plan pages for your specific territory. Section four: CCPA/CPRA and data compliance. This is where remote venues often get caught out. The fact that your venue is in a remote location does not exempt you from CCPA/CPRA if you are collecting data from California residents. Your captive portal must present a specific, unchecked consent checkbox for marketing communications. It must clearly state what data you are collecting, why, and how long you will retain it. The terms of service must be accessible before the guest authenticates. Purple is ISO 27001 certified, GDPR compliant, CCPA compliant, and Cyber Essentials certified. Every login event is logged with a timestamp, IP address, and consent record. That audit trail is what protects you if a regulator asks questions. Section five: bandwidth management. On Starlink, bandwidth is your most constrained resource. A single guest streaming 4K video can consume 25 megabits per second continuously. On a venue with 50 guests and a 220 megabit connection, that is one person taking 11% of total capacity. You address this at the captive portal and router level. Set per-device bandwidth limits. Implement fair-use policies that throttle after a daily data allowance. Use traffic shaping to prioritize web browsing over video streaming. And consider tiered access: a free tier for basic connectivity, a paid premium tier for streaming. That converts your WiFi from a cost line into a revenue stream. Now let me give you two real-world scenarios. Scenario one: a remote mountain resort with 40 rooms and no fiber. They run Starlink for Business at an average of 150 megabits. HPE Aruba access points cover the main building and three outbuildings. Guests authenticate via email on Purple portal. Guest WiFi complaints dropped by 60% compared to their previous 4G bonding setup. The portal also captures first-party email data, which feeds directly into their post-stay marketing campaigns. Scenario two: a 120-cabin cruise vessel running Starlink Maritime at 220 megabits. The operator deploys Cisco Meraki access points throughout the vessel with three VLANs - crew, passenger, and ship systems. Purple captive portal handles passenger authentication via email or a cabin number lookup integrated with the property management system. WiFi revenue covers the Starlink subscription cost, and the operator has a growing direct marketing list. Implementation pitfalls. Let me run through the five I see most often. One: forgetting to re-enable bypass mode after a dish reset. Document this in your runbook. Two: not blocking inter-VLAN routing. Every deployment I have reviewed that had a security incident had this misconfigured. Check it twice. Three: using HTTP redirect on a network where guests are using HTTPS-first browsers. Modern browsers default to HTTPS. Your router needs to handle the HTTPS intercept correctly, or guests will see certificate errors before they reach the portal. Four: not testing on iOS and Android separately. Apple Captive Network Assistant and Android network probe behave differently. Test both before go-live. Five: ignoring latency. Starlink low-Earth orbit constellation delivers 20 to 40 millisecond latency. But during handoffs between satellites, you can see brief spikes. Set session keepalive intervals to 60 seconds or less. Rapid-fire questions. Do I need a static IP for a captive portal on Starlink? No, if your portal uses a cloud-hosted architecture with reverse tunneling. Yes, if you are running on-premises RADIUS. Can I run multiple SSIDs on Starlink? Yes. Your enterprise access points handle SSID creation. Starlink in bypass mode just provides the uplink. Does Purple work with Starlink out of the box? Yes. You configure bypass mode on the Starlink dish, connect your supported access points, and point the RADIUS or API integration at Purple cloud. The portal is live within the hour. What happens if the Starlink connection drops? Purple portal caches active sessions locally on the router for a configurable period - typically 24 hours. Guests who are already authenticated stay online. To summarize. Starlink gives you the pipe. Your enterprise router in bypass mode gives you control of the routing layer. VLAN segmentation isolates your guest, staff, and IoT traffic. A cloud captive portal handles authentication, CCPA/CPRA consent, bandwidth policy, and first-party data collection. The CGNAT constraint is solved by reverse tunnel architecture, not by static IP. Purple operates across 80,000 live venues in over 90 countries and processed 440 million logins in 2024. The platform is hardware-agnostic, cloud-native, and deploys as a layer on top of your existing infrastructure. No rip and replace required. If you want to see how this works in your specific environment, visit purple.ai and book a technical consultation. The team will map the architecture to your hardware and have a proof of concept running within a day. Thanks for listening. I will see you in the next briefing.

header_image.png

Executive Summary

Starlink provides exceptional raw connectivity for remote venues, but its native hardware lacks the authentication, access control, and bandwidth management required for public access. Deploying Guest WiFi on Starlink requires bypassing the proprietary router, overcoming Carrier Grade NAT (CGNAT) constraints, and implementing a cloud-managed captive portal.

This guide details the exact architecture required to build a secure, compliant Guest WiFi network over a Starlink connection. We cover the transition to bypass mode, the reverse-tunnel architecture needed to solve the CGNAT problem, and the VLAN segmentation required to isolate guest traffic from point-of-sale systems. Whether you operate a remote hotel, a cruise vessel, or a remote retail site, this framework ensures you deliver consistent connectivity while capturing first-party data and maintaining regulatory compliance.

Technical Deep-Dive

The CGNAT Constraint

Starlink issues WAN IP addresses in the 100.64.0.0/10 range, placing your network behind Carrier Grade NAT (CGNAT). This means your venue does not have a public IP address, and inbound connections from the internet are blocked.

Standard captive portal architectures often assume the cloud authentication server can initiate a connection back to your local network controller. On Starlink, this fails. Furthermore, Starlink's Residential and Roam plans enforce a hard limit of 1,200 concurrent sessions, which a busy venue will exhaust rapidly.

The Reverse Tunnel Solution

To solve the CGNAT problem without requiring a static IP, you must use a captive portal that supports a reverse-tunnel architecture.

In this model, your enterprise router initiates an outbound connection to the cloud portal and holds it open persistently. When a guest authenticates, the cloud portal sends the authorization signal back through this established tunnel. Purple's cloud overlay architecture handles this natively, integrating directly with hardware from Cisco Meraki, HPE Aruba, Ruckus, Juniper Mist, Ubiquiti UniFi, Cambium, Extreme, and Fortinet.

Plan Selection

starlink_plan_comparison.png

For multi-user environments, the Starlink for Business or Starlink Maritime plans are essential. These tiers provide priority data allocation, higher bandwidth limits (up to 220 Mbps), and the option to purchase a static IP add-on if you require on-premises RADIUS or strict IP allowlisting.

Implementation Guide

1. Enable Bypass Mode

To use an enterprise router, you must disable the Starlink router's DHCP and NAT functions.

  1. Open the Starlink app and navigate to Settings.
  2. Select Bypass Mode and slide the toggle to enable it.
  3. Connect your enterprise router's WAN port directly to the Starlink ethernet adapter.

Note: If the Starlink dish loses power abruptly or is factory reset, bypass mode will be disabled. Your router will receive a private 192.168.1.x address instead of the 100.64.x.x CGNAT address. You must re-enable bypass mode via the app.

2. Configure VLAN Segmentation

architecture_overview.png

You must isolate guest traffic from your operational systems. Configure at least three VLANs on your switch and access points:

  • VLAN 10 (Staff/Operations): POS terminals, back-office PCs, and property management systems.
  • VLAN 20 (Guest WiFi): Internet-only access for visitors. Apply client isolation here so guest devices cannot see each other.
  • VLAN 30 (IoT): Cameras, smart thermostats, and building management systems.

Configure your firewall to block all inter-VLAN routing. A device on the Guest WiFi VLAN must never be able to reach the Staff VLAN.

3. Configure the Captive Portal

Set up your cloud captive portal to handle the authentication handshake. When deploying Purple, you configure the RADIUS or API integration on your network controller to point to Purple's cloud servers.

Ensure you use a valid SSL/TLS certificate for the captive portal redirect. Modern browsers expect HTTPS; if your router intercepts an HTTPS request using an HTTP redirect, the user will see a security warning. For example, when configuring a Cisco WLC, ensure the Virtual IPv4 Hostname matches the Common Name (CN) specified in the SSL certificate.

Best Practices

Bandwidth Management

Bandwidth is finite. A single user streaming 4K video can consume 25 Mbps. Implement strict bandwidth controls at the router and portal level:

  • Per-Device Limits: Cap individual guest speeds (e.g., 5 Mbps download, 2 Mbps upload).
  • Data Quotas: Enforce a daily allowance (e.g., 1 GB per 24 hours) to prevent abuse.
  • Tiered Access: Offer a free tier for browsing and a paid premium tier for streaming.

Captive Network Assistant (CNA) Handling

Apple and Android devices use a Captive Network Assistant (CNA) to detect captive portals. The CNA opens a limited browser window for login.

Because the CNA environment restricts cookies, ensure your portal architecture supports MAC-based authentication after the initial login. If a user closes the CNA prematurely, advise them to open their standard browser and navigate to neverssl.com to force the redirect.

Troubleshooting & Risk Mitigation

  • Certificate Errors: If users see "Your connection is not private," your router is likely attempting an HTTP redirect for an HTTPS request. Install a valid public certificate on your controller.
  • Session Timeouts: Starlink's low-Earth orbit constellation has low latency (20 - 40 ms), but handoffs between satellites can cause brief micro-drops. Set your RADIUS timeout and session keepalive intervals to handle these brief interruptions without forcing the user to log in again.
  • Compliance Failures: Operating in a remote location does not exempt you from data privacy laws. Ensure your portal includes explicit, unchecked consent boxes for marketing, in line with CCPA/CPRA requirements.

ROI & Business Impact

Deploying a managed captive portal transforms Starlink from a cost center into a data acquisition tool. By capturing first-party data (email addresses, demographics) during the login process, venues can build direct marketing lists.

For example, Purple processed 440 million logins in 2024 across 80,000 live venues. Integrating this identity data with your CRM allows for targeted post-visit campaigns, driving repeat visits and direct bookings while maintaining strict ISO 27001 and GDPR compliance.

Key Definitions

Bypass Mode

A configuration setting that disables the Starlink router's internal DHCP and NAT functions, passing the WAN IP address directly to a connected third-party enterprise router.

Required whenever you need to use an enterprise firewall or network controller to manage traffic and VLANs on a Starlink connection.

CGNAT (Carrier Grade NAT)

A method used by ISPs to share a single public IP address among multiple customers. Starlink assigns private IP addresses in the 100.64.0.0/10 range to the dish.

CGNAT prevents inbound connections from the internet, which breaks traditional captive portal architectures that require the authentication server to reach into the local network.

Reverse Tunnel

A network architecture where the local router initiates an outbound connection to a cloud server and keeps it open, allowing the server to send data back through the established tunnel.

The necessary solution for integrating a cloud captive portal with a CGNAT-restricted Starlink connection without requiring a static IP.

VLAN Segmentation

The practice of dividing a single physical network into multiple isolated logical networks.

Mandatory for security. Guest WiFi traffic must be isolated on its own VLAN, separate from staff, POS, and IoT devices.

Captive Network Assistant (CNA)

A mini-browser embedded in iOS and Android operating systems designed specifically to detect and display captive portal login pages when connecting to public WiFi.

IT teams must ensure their portal design functions correctly within the restricted CNA environment, which often limits cookie storage and background scripts.

First-Party Data

Information a company collects directly from its customers with their consent, such as email addresses provided during WiFi login.

Captive portals convert anonymous WiFi users into known contacts, allowing venues to build first-party data assets for marketing.

Client Isolation

A wireless network security feature that prevents devices connected to the same WiFi network from communicating with each other.

Must be enabled on the Guest WiFi VLAN to prevent malicious actors from scanning or attacking other guests' devices.

Static IP Add-on

An optional paid upgrade available on Starlink for Business and Maritime plans that provides a dedicated, publicly routable IP address.

Required only if the venue needs to run an on-premises RADIUS server or requires strict IP allowlisting for corporate VPNs.

Worked Examples

A remote lodge with 40 rooms needs to provide reliable Guest WiFi using a Starlink for Business connection (150 Mbps average). They previously used a cellular bonding router that suffered from severe congestion.

The hotel enabled bypass mode on the Starlink dish and connected an HPE Aruba enterprise router. They configured three VLANs: Staff (VLAN 10), Guest (VLAN 20), and CCTV (VLAN 30). Using Purple's cloud captive portal, they implemented a 5 Mbps per-device speed limit and a 1 GB daily data quota. Guests authenticate via email, accepting the CCPA/CPRA-compliant terms of service.

Examiner's Commentary: This architecture solves the core problem. The VLAN segmentation secures the hotel's operational network. The bandwidth limits prevent a few heavy users from degrading the experience for everyone else. The email authentication provides the hotel with first-party data for their marketing campaigns, delivering measurable ROI on the Starlink investment.

A 120-cabin cruise vessel operating in international waters uses Starlink Maritime (220 Mbps). They need to provide tiered internet access to passengers while ensuring ship systems remain secure.

The operator deployed Cisco Meraki access points across the vessel, connecting back to a Meraki MX firewall with the Starlink dish in bypass mode. They integrated Purple's captive portal via the Meraki API. The portal is configured with a Property Management System (PMS) integration, allowing passengers to log in using their cabin number and last name. Standard passengers receive a 2 GB daily allowance; premium passengers receive 10 GB.

Examiner's Commentary: This approach leverages the reverse-tunnel capability of the cloud portal to overcome the CGNAT limitation of the Starlink Maritime connection. The PMS integration ensures only verified passengers can access the network, and the tiered data allowances protect the finite 220 Mbps satellite link from congestion.

Practice Questions

Q1. A retail chain is deploying Starlink Standard at 50 remote locations. They plan to use the native Starlink router to broadcast a 'Guest' network and point it to a cloud RADIUS server. What is the critical flaw in this plan?

Hint: Consider the capabilities of the native hardware and the IP address type provided by Starlink.

View model answer

The native Starlink router does not support enterprise RADIUS integration or VLAN segmentation. Furthermore, the Standard plan uses CGNAT, meaning inbound connections from the cloud RADIUS server will be blocked. They must use an enterprise router in bypass mode and a captive portal that supports reverse tunneling.

Q2. After a brief power outage, guests at a remote lodge report they can connect to the WiFi but the captive portal does not appear. The IT dashboard shows the enterprise router has a WAN IP of 192.168.1.50. What has happened?

Hint: Look at the IP address range. What does it indicate about the Starlink hardware state?

View model answer

The Starlink dish has reset and disabled bypass mode. It is now acting as a router again, handing out private DHCP addresses (192.168.1.x) and creating a double-NAT situation. The IT team must use the Starlink app to re-enable bypass mode.

Q3. A venue operator wants to collect guest email addresses via the captive portal to send a monthly newsletter. They are located in the US. They ask you to make the marketing consent checkbox pre-checked to increase sign-ups. How should you advise them?

Hint: Consider the regulatory requirements for data collection in this region.

View model answer

You must advise them that while pre-checked consent boxes are standard practice under the TCPA and CAN-SPAM, state-level regulations such as the CCPA/CPRA require clear disclosures and easy opt-out methods. Implementing a pre-checked box is acceptable in the US but they must ensure their privacy policy and opt-out flows are fully compliant with California and other state-level privacy laws.