T Techclick ← All lessons
Zscaler · Batch 11 · Lesson 2 · ZIA architecture

ZIA architecture — every hop from device to internet

Monday after a Pune ISP swap, YouTube is suddenly allowed and intranet keeps re-prompting. https://ip.zscaler.com says Location: Road Warrior. ZIA is not “down.” The Public Service Edge no longer matches the branch, so the wrong policy bundle is running. This lesson is the hop map, then a Location you can ship.

~20 min read · L2 primary · Quiz at end

⚡ Quick Answer

Walk every ZIA hop: user → forwarding → Public Service Edge → SSL and SSMA engines → internet. Name Central Authority, Nanolog, Log Routers, Feed Central, and subclouds — then prove Location + Activate.

After this page you can

Quick answer (say this out loud)

The Central Authority (CA) is the control plane: policy, config, software, threat feeds. It is not on the live data path. The Public Service Edge (PSE) is the data plane: it identifies the Location or user, decrypts if SSL Inspection says so, runs Single-Scan, Multi-Action (SSMA), then opens its own connection to the destination. A compressed log copy leaves over TLS to a Log Router, then a Nanolog cluster. A subcloud is a named subset of PSEs — use it when residency says “only these edges.” Saved Admin changes stay PENDING until Activation → Activate.

1. Why the hop map matters

Lesson 1 placed Zscaler on the map. This page opens the box. Every “YouTube should be blocked” ticket is the same sentence: is the right activated policy on the Service Edge that actually received this user?

If you put the CA on the wire, you will reboot laptops while a staged URL rule sits unactivated. If you treat Nanolog as enforcement, you will chase a logging gap while the user is already on the internet. If you ignore Location, an ISP swap turns the branch into an unknown / Road Warrior source with the default bundle.

Hero · who talks to whom
User device connecting through a cloud security edge to the internet
Notice: the user never opens a socket to github.com. The Service Edge does. The CA is off this picture on purpose.
Interview line

ZIA is a full proxy, not a router with an ACL. The client’s next hop is a Service Edge selected by forwarding + geo-IP (and any subcloud). The destination sees a Zscaler egress IP, not the laptop.

2. Mental model — three planes

Official Help names three cloud components: Central Authority, Public Service Edges for Internet & SaaS, and Nanolog clusters. Everything else either feeds those planes or constrains which edge you may land on.

Feel · three planes
Three stacked architecture planes
Caption in words, not in the art: write-plane (CA), run-plane (PSE), log-plane (Log Router → Nanolog). Traffic stays on the middle layer.

Central Authority — write plane

Brain and nervous system of the cloud. Holds policy, config, software updates, and threat intel. One active node plus two passive standbys in separate sites. Accepts Admin / API writes. Never inspects the user session.

Public Service Edge — run plane

Full-featured secure internet gateway in a Zscaler data center. Identifies Location or user, runs SSL Inspection + SSMA, egresses to the destination. Customer traffic stays on the edge — it is not forwarded to the CA or Nanolog. Nothing written to disk on the edge.

Nanolog — log plane

Stores compressed, tokenized transaction logs and serves Insights / reports. Topology mirrors the ZIA CA: one active + two standbys. NSS / Cloud NSS streams from here to your SIEM. A Nanolog outage does not stop enforcement.

Log Router + Feed Central

Log Routers take the TLS log export from the edge and land it on the Nanolog for that tenant’s geography. Feed Central is a separate Zscaler cloud: intel and URL classification → each cloud’s CA → every Service Edge. Classroom decks that say “SMC” for the reporting cluster map here — official Help name is Nanolog (store) and Log Router (hop).

Flow 1 · mental model — write / run / log
The CA pushes policy. The PSE inspects. Nanolog is a copy, not a hop. Central Authority policy · config · feeds · Activate User / device browser · app · ZCC Forwarding ZCC · PAC · GRE · IPSec Public Service Edge SSL + SSMA in one pass Location / user match Internet / SaaS PSE opens the socket push (not inline) Log Router → Nanolog cluster async TLS copy · Insights / NSS · not in the allow path

Solid arrows = user session. Dashed arrows = control or log. If you draw the CA or Nanolog on the solid line, the interview is already lost.

Say this out loud

The CA writes. The Public Service Edge runs. Nanolog records. A subcloud only changes which edges are legal — it does not inspect a packet.

Hard words before the hop list

TermMeaning on a ticket
Zscaler cloudYour org is provisioned on one production cloud: zscaler.net, zscalerone.net, zscalertwo.net, zscalerthree.net, or zscloud.net. Admin is admin.<that-cloud>. There is no tenant-level failover to a different numbered cloud.
SSMASingle-Scan, Multi-Action. Packets sit in shared memory on the PSE. Dedicated CPUs for URL, malware, DLP, firewall, IPS, CASB, sandbox run at once — not a chain of appliances.
SubcloudA named subset of Public Service Edges. Constrains where ZCC / PAC / geo-IP may land (residency, a bad DC, a beta ring). PAC form: gateway.<subcloud>.<cloud>.
LocationNamed source the PSE can match — typically a public IP, GRE/IPSec tunnel, or ZCC-enrolled roaming user. Wrong IP → unknown / Road Warrior policy.
Sub-LocationInternal IP (or XFF) range inside a Location, usually inside a GRE/IPSec tunnel. Guest Wi-Fi vs LAN behind one public IP. Ranges inside one Location must not overlap.
ActivateZIA writes are staged (PENDING) until Activation → Activate (ACTIVE / INPROGRESS). ZPA has no equivalent step.
Log RouterOfficial hop from the Service Edge log export to the regional Nanolog. If a classroom slide says SMC for “the reporting cluster,” map it here + Nanolog — do not invent a fourth enforcement plane.
Feed CentralSeparate Zscaler cloud. Threat intel and URL classes go Feed Central → CA → Service Edges. Stale feeds ≠ dropped sessions.
MCLSMulti-Cluster Load Sharing. Several clusters can sit behind one VIP so Zscaler adds capacity without you rebuilding GRE. Published at config.zscaler.com/<cloud>/cenr.

3. Every hop — flowchart first

Do not start the whiteboard in the Admin sidebar. Start with the click. The CA already pushed an activated policy bundle to the edges. The click only meets the edge that forwarding selected.

Path · device → inspect → egress → log
Five-step journey from device through inspect to log
Feel the order: Device, Forward, Inspect, Egress, Log. Policy was already on the edge. The log copy is last and optional for the user’s success.
Flow 2 · hop diagram (flowchart first)
Mumbai laptop opens github.com — CA is already off-path 1 · Device browser / app 2 · Forward ZCC / PAC / GRE 3 · Select PSE geo-IP + subcloud 4 · Identify Location / user 5 · SSL inspect? Decrypt? SSL policy Tunnel only still SSMA on metadata NO 6 · SSMA engines URL · malware · DLP · FW · IPS · CASB YES Allow? activated policy Block / isolate user sees Zscaler page 7 · PSE egresses to destination own outbound TCP · re-encrypts response to client 8 · Async: compressed log → Log Router → Nanolog → Web Insights / NSS. Not on the allow path.

Diamond = decision. Wrong Location is decided at hop 4. Forgot-Activate dies at hop 6 with the old bundle. Nanolog never sits between 6 and 7.

On a managed laptop the usual hop list is:

  1. Device — Chrome (or any app) requests github.com.
  2. Forwarding — Zscaler Client Connector (Z-Tunnel 1.0 or 2.0), a PAC file, GRE, or IPSec sends the session toward ZIA. Lesson 3 is the method choice; this page only needs “traffic left the laptop toward a Service Edge.”
  3. Edge selection — advanced geo-IP aims at the nearest healthy Public Service Edge. A subcloud (if attached) shrinks that set. Private / Virtual Service Edges are the same software, different host.
  4. Identify — the PSE matches source IP / tunnel / ZCC enrollment to a Location or Sub-Location, then the user if authentication is required.
  5. SSL/TLS Inspection — if policy says inspect, the edge presents the Zscaler (or custom) intermediate CA and a short-lived server cert. Bypass still leaves metadata for later engines.
  6. SSMA — one parse, many engines, the activated policy bundle.
  7. Egress — on allow, the PSE opens its connection to the destination. The laptop never owns that socket.
  8. Log — a compressed, tokenized copy goes TLS to a Log Router, then Nanolog. Web Insights and NSS read Nanolog. This hop can lag or fail while the user is already reading the page.
Unsafe path

Drawing Chrome → CA → GitHub or Chrome → Nanolog → PSE. The CA pushed earlier. Nanolog is a copy. Putting either inline is how juniors “reboot the CA” on a policy ticket.

4. How to choose the edge

Most tenants only ever use Public Service Edges. Reach for the other rows when residency, an air-gap, or a region with no nearby public DC is the actual constraint — not because “private sounds safer.”

If this is trueChooseDo not choose
Default internet / SaaS inspection. Users should follow geo-IP to the nearest Zscaler DC.Public Service Edge — Zscaler-hosted, multi-tenant, same software everywhere.A Private box “just in case.” Extra subscription, extra ops, no extra engines.
German (or other) traffic must be inspected only in a listed set of public DCs. Rest of the company can land anywhere.Subcloud attached to that Location (or Department, if the tenant still offers it). Ask Zscaler to provision the subset if it is not already there.A second tenant, or a Private Service Edge, unless the auditor forbids any public DC.
User traffic must not leave the building, but you still want ZIA engines and the same CA policy.Private Service Edge — hardware form factor Zscaler uses in its own DCs, customer-hosted, single-tenant. Policy still comes from the CA.Public PSE (leaves the premises). App Connector (that is ZPA).
Same local-inspection idea, but you want a VM in VMware / AWS / Azure / GCP.Virtual Service Edge. Forward with GRE or ZCC. Official constraint: VSE does not terminate IPSec.IPSec into that VSE. Build GRE or send users through Client Connector instead.
You need more GRE capacity on an existing VIP, not a new destination.Stay on the VIP. MCLS lets Zscaler add clusters behind it. Check config.zscaler.com/<cloud>/cenr.Rebuilding every GRE peer because “the DC is full.”
The whole numbered cloud is unreachable and you bought Business Continuity.Business Continuity Cloud (Private Policy Cache + Private PAC). Supports Z-Tunnel 1.0, PAC, GRE. Z-Tunnel 2.0 is not supported in BC mode — clients fall back to 1.0.Treating BC Cloud as “Z-Tunnel 2.0 continues.” That is a different outage story.
Primary source

Form factors and “traffic never leaves the Service Edge”: Understanding the Zscaler Cloud Architecture and Understanding Public Service Edges for Internet & SaaS. Subcloud: Understanding Subclouds. VSE / IPSec: Traffic Forwarding in ZIA reference architecture.

5. Runbook Side A → B → C

Architecture is useless if you cannot make the PSE name the branch. Side A is evidence. Side B is the object. Side C is Activate + proof. Primary source for the clicks: Configuring Locations and Configuring Sublocations.

Side A — identify the source (before you click Add)

  1. Get the public IP the PSE will see

    From a machine on the branch, open https://ip.zscaler.com. Record Cloud, Service Edge, current Location, and the public IP. If Location already says the right name, stop — this is not a Location ticket.

  2. Decide how traffic arrives

    GRE or IPSec: the Location binds to that tunnel (and you can carve Sub-Locations from inner IPs). PAC or explicit proxy: the public IP of the egress. ZCC roaming: there is no stable public IP — do not invent one; identity is the enrolled user, not a /32.

  3. List the inner ranges that need different policy

    Example: employees 192.168.0.0/16, guest Wi-Fi 10.20.30.0/24, both behind 203.0.113.10. That is one Location and two Sub-Locations — not two Locations with the same public IP.

Side B — ZIA objects (Location, then Sub-Location)

Official path (current Help): Infrastructure → Locations → Location Management → Legacy Locations → Add Location. Some tenants still show an older Administration tree. Trust the breadcrumb that ends in Add Location.

https://admin.zscaler.net · Infrastructure → Locations → Location Management → Legacy Locations
Training mock · not live

Infrastructure / Locations / Location Management / Legacy Locations / Add Location

Add Location

Mumbai-HQ
India
Asia/Kolkata
203.0.113.10
Enabled
Enabled
None — use any Public Service Edge in this cloud

Next: Save, then do not close the laptop. The red badge on Activation is the real commit. Source: Configuring Locations. IP is RFC 5737 documentation space.

  1. Add the Location

    Name, country, time zone, IP addresses (or the GRE/IPSec binding). Turn Authentication Required on if this site must identify users. Turn X-Forwarded-For (XFF) Forwarding on if downstream apps or an on-prem proxy must still see the client IP. Attach a subcloud only if this site is not allowed to use the full public edge set.

  2. Add Sub-Locations for inner ranges

    Open the parent Location → Add Sub-Location. Give the guest SSID 10.20.30.0/24 its own URL / bandwidth rules. Do not overlap ranges inside the same parent — Help forbids it.

  3. If this is an ISP swap, edit the existing Location

    Do not create a second Location with the new /32. Edit IP Addresses on Pune-HQ (or Mumbai-HQ) to the new public IP. Two Locations with one public IP collide on PSE lookup.

Side C — Activate and prove

https://admin.zscaler.net · Activation
Training mock · not live

Activation / Activate pending configuration

Activate pending changes

PENDING — 1 staged change (Location Mumbai-HQ)
INPROGRESS → ACTIVE. Edges pull the new Location IP. Traffic is not queued behind other tenants.

Next: wait for status ACTIVE, then re-hit ip.zscaler.com from the branch. Source: Help Activation + partner guides “Go to Activation and click Activate.” Session-end can also auto-activate — do not rely on that in a change window.

  1. Activation → Activate

    API surface if you automate: GET /status then POST /status/activate. Enum you will see: ACTIVE / PENDING / INPROGRESS. Saving a Location is not the same as edges enforcing it.

  2. Prove on the user path

    https://ip.zscaler.com must show the Location name you just saved, the expected cloud, and a Service Edge that is inside any attached subcloud. Then Analytics → Web Insights (some tenants still say Insights): filter user + last 15 minutes. You want Location, policy action, and a username if auth is on.

Pilot proof — what “green” looks like
1. ip.zscaler.com
   Cloud:        zscalerthree.net          (example — use YOUR cloud)
   Location:     Mumbai-HQ                 (not Road Warrior / Unknown)
   Service Edge: a name inside the subcloud, if one is attached

2. Analytics → Web Insights
   User:         ada@example.com
   Location:     Mumbai-HQ
   URL:          github.com
   Action:       Allowed (or the rule you expected)
   SSL:          Inspected | Not Inspected — matches Policy → SSL/TLS Inspection

3. Internal app / SIEM (if XFF is on)
   X-Forwarded-For includes the client (e.g. 10.20.30.45), not only the PSE egress

6. Runtime after Activate

Once the Location is live, a weekday request does not walk the Admin tree. It walks the hop diagram. Keep this order in your head when the ticket says “it worked yesterday.”

  1. Forwarding still delivers the session to a Service Edge (ZCC connected, GRE up, PAC not bypassed).
  2. That edge is in the subcloud, if one is attached. A US user pinned to an EU-only subcloud will look “broken” even though ZIA is healthy.
  3. Source IP still matches the Location. Sunday ISP swaps fail here first.
  4. Activated policy is what SSMA evaluates — not the draft in your browser tab.
  5. SSL Inspection still trusts the intermediate CA on the device. A new laptop without the cert is an SSL ticket, not an architecture ticket.
  6. Nanolog / NSS can be minutes behind. Do not declare “ZIA dropped the session” because Insights is empty at T+30s.

Policy follows the user: if Ada leaves Mumbai-HQ and ZCC lands her on another Public Service Edge, that edge downloads the right bundle from the CA. You do not “steer her back to the Mumbai node” to make policy work.

7. Traps + proof

Ops · prove it before you close
Operations desk verifying health checks and logs
Close the ticket with ip.zscaler.com + a Web Insights row. A green VPN icon on the laptop is not evidence of the right Location.
SymptomLikely missFirst proof
You saved a URL rule at 09:05. At 09:30 the old action still fires.Change is still PENDING. You never clicked Activation → Activate.Activation badge / GET /status. Then Insights after ACTIVE.
ip.zscaler.com shows Location: Road Warrior after a circuit swap.Location IP Addresses still has yesterday’s /32. PSE cannot match the source.Compare the page’s public IP to the Location object. Edit, Activate, re-test.
Guest Wi-Fi and LAN get the same URL policy behind one public IP.No Sub-Location (or overlapping inner ranges). You cannot create two Locations with that same public IP.Sub-Location list on the parent. Test from each VLAN; Insights Location field must split.
German users land on a US Service Edge and the auditor is unhappy.No subcloud, or the subcloud is attached to the wrong Location.Edge name on ip.zscaler.com vs the subcloud’s allowed DC list (Help: Editing a Subcloud).
Internal Splunk shows one source IP — the PSE egress — for every employee.XFF Forwarding off on the Location. NSS will not fix app logs that never received the header.Enable XFF on the Location, Activate, confirm X-Forwarded-For on a test app.
Insights empty, users say “internet works.”Log plane (Log Router / Nanolog / NSS), not the data plane.ip.zscaler.com still shows an edge + Location. Fix logging separately. Do not reboot ZCC.
IPSec to a Virtual Service Edge never comes up.Documented constraint: VSE does not terminate IPSec.Rebuild as GRE or move those users to Client Connector.
BC event: Z-Tunnel 2.0 users fail open or look different.Business Continuity Cloud supports Z-Tunnel 1.0, PAC, GRE — not 2.0.Confirm BC design assumed a 1.0 fallback before the outage.
Pilot checklist

Knowledge check

Six judgment items. Same tickets as the hop map. Check answers, read the reason, retry the weak ones.

Q1

You edited a URL Filtering rule at 09:05. At 09:30 users still hit the old action. What do you check first?

Correct: c. ZIA stages writes until Activation → Activate. Re-read the runbook Side C. Nanolog does not enforce. The CA push is per tenant after Activate — it is not a multi-tenant queue in the data path.
Q2

A Pune user opens https://ip.zscaler.com and sees Location: Road Warrior instead of Pune-HQ. What is the most likely cause?

Correct: a. Location match is a PSE data-plane lookup on source / tunnel. Subclouds pick which edges are legal. SSL certs do not name Locations. Nanolog is not in the diagnostic path. Re-read traps.
Q3

Mumbai-HQ has employees on 192.168.0.0/16 and guest Wi-Fi on 10.20.30.0/24, both behind one public IP. You need different URL rules. What do you build?

Correct: b. Sub-Locations exist to refine inside a GRE/IPSec (or XFF) Location. Two Locations cannot share one public IP. Subclouds constrain edges, not VLANs. App Connectors are ZPA. Re-read Side B.
Q4

A Mumbai user opens github.com over Z-Tunnel 2.0. Which hop list is correct?

Correct: b. CA pushed earlier; it is not inline. Nanolog is an async copy via the Log Router. Re-read the hop flowchart.
Q5

A German subsidiary must be inspected only on EU Public Service Edges. The rest of the company can use any edge. What do you configure?

Correct: c. That is what a subcloud is for. SSL CAs do not pick DCs. VSE / a second tenant is heavier than the requirement. Re-read How to choose.
Q6

SOC cannot see Web Insights for the last ten minutes, but users are browsing. What is the strong read?

Correct: d. Official architecture: traffic stays on the Service Edge; logs are an export. There is no tenant-level failover to another numbered cloud. Re-read mental model + traps.

Sources

Related: Batch 11 · Lesson 1 — foundation · Lesson 3 — traffic forwarding · Zscaler authentication · ZIA traffic flow · GRE & IPSec tunnels · ZPA architecture