Why this matters — the office-building rule
Picture a six-floor office building in Hinjewadi, Pune. Same address (one physical FortiGate). Different floors house different companies — floor 2 is a bank, floor 3 a retail chain, floor 4 an insurance broker. Each tenant has its own door (interfaces), its own lift (routing table), its own keys (admin scope), and the ground-floor lobby (the management VDOM) handles shared utilities — internet uplink, FortiGuard updates, monitoring. VDOMs are that office building, made out of firewall.
Get this metaphor and the next 11 minutes are easy. Miss it and an MSP interview at an Indian enterprise, an Indian IT services firm, an Indian IT services firm, an Indian MSP or an Indian security firm ends in the first 90 seconds — because their entire managed-security business runs on shared FortiGate iron.
Anil runs the Managed Security pod for an an MSP serving 12 customer VDOMs client. One FortiGate-200F HA pair hosts 12 customer tenants — a banking client, a retail chain, an insurance broker, plus 9 mid-sized SMBs. Each tenant insists on its own SOC dashboard, its own internet break-out, zero visibility into the others.
The client's compliance auditor walks in. Question one: "Can a junior engineer accidentally see banking customer logs while troubleshooting the retail tenant?" Anil's answer hinges on three things — VDOM admin scope, inter-VDOM link isolation, and resource quotas. We'll walk through exactly how he answers all three.
The three modes — what your interviewer is testing
FortiOS gives you three operating modes, set globally per device. Single VDOM is the default — one implicit `root` VDOM, no multi-tenant separation. Split-task VDOM mode locks the box into exactly two VDOMs — `root` (management-only, no traffic processing) and `FG-traffic` (production policies). It's a security-hardening play, not a multi-tenant play. Multi-VDOM mode is what Anil uses — up to 10 VDOMs free on FortiGate-200F, more with a license uplift, each a complete virtual firewall.
Virtual Domain — full firewall inside the box. Own interfaces, routes, policies, NAT, admins, resource quota. Default root is the first VDOM on every device.
The lobby — VDOM that owns the FortiGuard licensing pull, NTP, SNMP, log forwarding. Set once globally with set management-vdom <name>. Defaults to root.
2-VDOM mode: root handles mgmt only (no traffic), FG-traffic handles all production policies. Cleanly separates device admin from policy admin. Hardening pattern.
A virtual point-to-point cable between two VDOMs. Created as a pair (one end in VDOM-A, the other in mgmt). Traffic flows through it like a physical inter-router link — including a normal policy lookup at each end.
An admin user can be tied to one or more VDOMs via accprofile. A scoped VDOM admin cannot see global settings — common interview trap. Only a super_admin in mgmt VDOM sees everything.
Per-VDOM CAP (not reserve) on sessions, dial-up users, policies, addresses, IPsec tunnels, etc. Limits worst-case impact one noisy tenant has on the rest. Caps are ceilings, not guarantees.
Watch a packet hop across an inter-VDOM link
This is where most candidates get tripped. The interviewer says: "User on Customer-A wants google.com — walk me through the packet path." The right answer names two policy lookups, two routing decisions, and one NAT — all inside the same box. The infographic below summarises the 5 hops as boxes — the visualizer underneath steps through each with narration.
5 stages — see how the packet enters Customer-A VDOM, crosses the inter-VDOM link, hits mgmt VDOM, gets NAT'd, and egresses wan1.
src=10.71.1.50 dst=142.250.183.78 (Google)
v-cust-a0.
NAT pool here would be local — but Anil chose to NAT at mgmt instead. Action: ACCEPT no NAT.
src=10.71.1.50 → 203.0.113.62 (SNAT on mgmt-public)
Anil powers up a freshly-cabled Customer-D VDOM and adds a default route inside that VDOM pointing to 203.0.113.57 (the upstream ISP gateway, reachable only from mgmt VDOM). The route shows as up. Pings to 8.8.8.8 fail. Why?
203.0.113.57 is reachable from mgmt VDOM (which owns wan1), not from Customer-D. A default route in Customer-D can only point to one of its own interfaces — typically an inter-VDOM link with mgmt. Without that link in place, the customer VDOM has no path to FortiGuard either. Fix: config global → config system vdom-link → edit cust-d-link0 creates the pair; then default route in Customer-D points to the link's mgmt-side IP.
Priya at an Indian IT services firm Bengaluru is a new VDOM admin scoped to Customer-B (retail). She logs in via SSH and tries config system interface → edit wan1 to change the wan1 IP. The CLI returns "command parse error". Why?
accprofile with multiple VDOMs or super_admin. Option a and c are red herrings — the error happens at parse time, before any interface state is queried.Inter-VDOM link — software path vs NPU offload
The single biggest senior-interview drill is "when does an inter-VDOM link get NPU offload?" because it directly impacts CPU usage on busy MSPs. Default inter-VDOM links are software-only — every packet between VDOMs walks the CPU. On a 12-customer FortiGate-200F at peak hours that adds up fast. NPU-accelerated inter-VDOM links bypass the CPU for established sessions — but require specific hardware conditions.
The CLI config system vdom-link looks like one object, but it expands to two virtual interfaces — one each side. If you only configure one end (e.g. add an IP to cust-a-link0 in Customer-A but forget cust-a-link1 in mgmt), packets enter the link and die. Always assign IPs on both ends before testing.
Karthik at an Indian enterprise Chennai sees CPU on a FortiGate-200F MSP box hit 92% during evening peak. diag sys top shows ipsengine on top, but UTM is off on inter-VDOM links. Anil suspects software-path inter-VDOM links. What's the BEST first verification step?
Decision tree — which VDOM mode for your use case?
Most candidates instinctively pick multi-VDOM mode for everything. That's wrong. The right answer depends on whether you need multi-tenancy, security separation, or just neat defaults. Use this tree.
Configuration walkthrough — Anil enabling multi-VDOM
Anil's clean-room build, sized for the 12-customer MSP load. Note the reboot in the middle.
FG200F # config system global FG200F (global) # set vdom-mode multi-vdom FG200F (global) # end This will disconnect any current sessions. The system will reboot. Continue? (y/n) y FG200F login: admin FG200F # config global FG200F (global) # config system vdom FG200F (vdom) # edit cust-a FG200F (cust-a) # next FG200F (cust-a) # edit cust-b FG200F (cust-b) # next FG200F (cust-b) # edit cust-c FG200F (cust-c) # end
name=root/root index=0 enabled uses_global_route=0 uses_global_arp=0 name=cust-a/cust-a index=1 enabled name=cust-b/cust-b index=2 enabled name=cust-c/cust-c index=3 enabled 4 vdoms exist; 1 mgmt-vdom; max-vdoms=10 (license: base)
Then Anil creates the inter-VDOM link pair between mgmt (root) and cust-a:
FG200F (global) # config system vdom-link FG200F (vdom-link) # edit cust-a-vlink FG200F (cust-a-vlink) # set type ppp FG200F (cust-a-vlink) # next FG200F (vdom-link) # end FG200F (global) # config system interface FG200F (interface) # edit cust-a-vlink0 FG200F (cust-a-vlink0) # set vdom root FG200F (cust-a-vlink0) # set ip 10.255.71.1 255.255.255.252 FG200F (cust-a-vlink0) # next FG200F (interface) # edit cust-a-vlink1 FG200F (cust-a-vlink1) # set vdom cust-a FG200F (cust-a-vlink1) # set ip 10.255.71.2 255.255.255.252 FG200F (cust-a-vlink1) # end
diag sys vd list — confirms VDOMs are up, shows mgmt VDOM, surfaces the active VDOM count vs max.
diag sys resource vdom usage — shows current sessions / policies / addresses / IPsec tunnels per VDOM, and compares against the per-VDOM quota. Use this in audits, capacity planning, and noisy-neighbour debugging.
Overlapping subnets — three banks, one 192.168.1.0/24
This is the question every MSP architect dreads in an interview. Three customers, all using 192.168.1.0/24 internally (because everyone copies the same Cisco router default). On a shared FortiGate the answer is "yes, perfectly fine — each VDOM has its own routing table." But routing isn't enough — return traffic needs unique source IPs. The trick is NAT on the mgmt-side of each inter-VDOM link.
Same private subnet inside three customer VDOMs. NAT on each inter-VDOM link gives each customer a distinct public-facing source — return traffic finds its way home.
Same time, 192.168.1.50 in Cust-B and Cust-C are doing the same thing.
No collision — VDOM-scoped FIB.
Cust-B traffic SNAT → 203.0.113.72
Cust-C traffic SNAT → 203.0.113.73
Anil sets per-VDOM session quota = 50,000 on Customer-B (default would be unlimited). Customer-B's WhatsApp Web traffic surges past 50K sessions. What happens to Customer-A and Customer-C?
diag sys resource vdom usage — shows current usage and configured cap per VDOM.
The mgmt-VDOM route trap (#1 senior question)
Every senior round at an Indian MSP and an Indian security firm asks some variant of this: "A customer VDOM can't reach FortiGuard for updates — what's the first place you check?" The answer is the default route.
Symptom: Customer-A VDOM shows IPS signatures stale, AV definitions not updating. Internet egress for end-users works fine.
Cause: FortiGuard pulls are initiated from the mgmt VDOM only. A default route inside Customer-A points to the inter-VDOM link, which is correct for user traffic, but Customer-A itself is not the entity making the FortiGuard call — mgmt is. Without a working default route in mgmt VDOM, FortiGuard fails everywhere.
Fix: Confirm get system global | grep management-vdom shows mgmt VDOM (root). Then verify get router info routing-table all inside mgmt VDOM shows a default route. The customer's view never matters for FortiGuard — only mgmt VDOM does.
Sneha at an Indian IT services firm Pune asks: "Can Customer-A and Customer-B use the exact same private subnet 192.168.1.0/24 on the same FortiGate?"
SVG cheat-sheet — the 9 commands you'll use weekly
Print this. Tape it next to your console.
License uplift — 10 free vs paid bump
Every FortiGate (except low-end "F" models which lock at 1) ships with 10 VDOMs included. Adding more requires a VDOM license uplift purchased from Fortinet. The license tier comes in packs (e.g. 25, 50, 100, 250, 500). Anil's FG-200F is on the base tier — sufficient for 12 customers with room. If he wins three more customers, he applies a 25-VDOM uplift before commissioning.
FortiManager is the central manager for FortiGate fleets. Its equivalent of a VDOM is the ADOM (Administrative Domain) — same isolation concept, but for managed devices. In late 2024, Mandiant + Fortinet disclosed CVE-2024-47575 (FortiJump) — attackers (cluster UNC5820) abused the FortiManager device-registration interface to push rogue config from a compromised FortiManager into all managed FortiGates inside the same ADOM.
The lesson for VDOM/ADOM admins: isolation only works if administrative scoping is enforced. A single over-privileged super_admin token compromised at the FMG level can write across every ADOM. Mirror this on FortiGate: keep VDOM admins scoped, audit accprofile assignments quarterly, and never let a single SSO account hold super_admin in mgmt VDOM without MFA + dedicated jumphost.
Mode change is disruptive — Anil's change-window discipline
Three mode changes — single → multi-VDOM, single → split-task, split-task → multi-VDOM — all trigger an automatic reboot after set vdom-mode commits. Worse, config does NOT auto-migrate. A single-VDOM box switched to multi-VDOM loses all interface assignments to "root" by default, and you must manually re-home each interface, route, and policy. Anil's rule: backup config, document interface bindings, schedule a 90-minute window, never do this in business hours.
If your fleet is centrally managed by FortiManager, every VDOM you create on a FortiGate is reflected as a sub-device under the FMG ADOM. Add VDOMs at the FortiGate first, then re-sync the FMG ADOM. Mismatched VDOM lists between FortiGate and FMG = config drift = silent policy failures the next time FMG pushes a template.
Tap a question. The tutor explains in plain Hinglish with the exact CLI you'd run.
Runs on Cloudflare Workers AI · Llama 3.3 70B Instruct · scoped to this blog's context.
📝 Assessment · 10 scenario-based questions
Bloom mix: 1 Remember · 3 Apply · 4 Analyze · 2 Evaluate. Pass = 70% (7/10). Reasoning appears after submit.
Self-explanation prompt
In 2-3 sentences, explain to a hypothetical batchmate: "Why can a scoped VDOM admin not see global system settings, and is that a feature or a bug?" Writing this out cements the multi-tenancy mental model fast.
📖 Mini-glossary — terms used in this blog
- VDOM
- Virtual Domain — full firewall instance inside one physical FortiGate.
- mgmt-VDOM
- The VDOM that owns FortiGuard, NTP, SNMP and global system services.
- Split-task VDOM
- 2-VDOM mode — root (mgmt only) + FG-traffic (data plane). Hardening pattern.
- Inter-VDOM link
- Virtual point-to-point cable between two VDOMs. Always created as a pair.
- VDOM admin
- Administrator account scoped to one or more VDOMs via accprofile.
- Resource quota
- Per-VDOM CAP (not reserve) on sessions, policies, addresses, tunnels.
- ADOM
- FortiManager's Administrative Domain — FMG-side equivalent of a VDOM.
- NPU offload
- NP6/NP7 chip's ability to fast-path established sessions, bypassing CPU.
- Traffic VDOM
- The data-plane VDOM in split-task mode (named FG-traffic by default).
- accprofile
- FortiOS access-profile object — defines which trees a CLI/GUI admin can see.
What's next?
Blog 8 unpacks FortiGate HA — FGCP active-passive and active-active, the heartbeat link, override settings, plus the override-flap incident that takes down half a data centre.
📚 Sources
- Network Interview — Virtual Domain and Administrative Domain in Fortinet. networkinterview.com/virtual-domain-and-administrative-domain
- Fortinet Docs — VDOM Overview (FortiOS 7.6 Administration Guide). docs.fortinet.com/document/fortigate/7.6.6/administration-guide/597696/vdom-overview
- NWKings — Top 20 Fortinet Firewall Interview Questions and Answers (2025). nwkings.com/fortinet-firewall-interview-questions-and-answers
- Tenable Blog — CVE-2024-47575 FAQ: FortiJump Zero-Day in FortiManager. tenable.com/blog/cve-2024-47575-faq-about-fortijump-zero-day-in-fortimanager-fortimanager-cloud
- Fortinet Community — Technical Tip: Inter-VDOM link configuration and NPU acceleration. community.fortinet.com (MSP-VDOM thread, FortiGate 7.4 / 7.6)
- Fortinet Training — NSE 4 Network Security Professional curriculum. training.fortinet.com (Module: VDOM)
- Hirist — Top 25+ Firewall Interview Questions 2026. hirist.tech/blog/top-25-firewall-interview-questions-and-answers-for-2025