Cameras
Isolate cameras on a VLAN + block internet
Put cameras on their own VLAN the right way — let the NVR reach them, block their internet and LAN access, give internet-blocked cameras local NTP, and pass RTSP/ONVIF across the boundary.
Problem summary
A camera VLAN is about one-way trust: the NVR (or a trusted client) reaches the cameras, but the cameras can't reach the internet or the rest of the LAN. The traps are forgetting that internet-blocked cameras need a local NTP source (or ONVIF auth breaks), that WS-Discovery multicast doesn't cross the VLAN, and getting the stateful rule order wrong.
Confirm the cameras are on their own VLAN/subnet with the NVR's path defined.
From the NVR: ping <camera-ip>; nc -vz <camera-ip> 554; nc -vz <camera-ip> <onvif-port>
Cameras are isolated and the NVR's IP is explicitly allowed to the camera VLAN's RTSP/ONVIF ports.
Don't expose the camera VLAN to the LAN to 'make it work' — fix the NVR allow instead.
Layer path
Step-by-step runbook
Start here. Do each check in order, compare it to the expected result, and stop when the evidence explains the failure or the safe stop point applies.
Create the camera VLAN
Check: Put cameras on a dedicated VLAN/subnet with its own DHCP scope.
Expected result: Cameras get addresses on the isolated VLAN.
If not: Reserve camera IPs so rules can target them precisely.
Allow the NVR (and only it) to the cameras
Check: Add an allow from the NVR IP to the camera VLAN's RTSP/ONVIF ports, above any block.
Expected result: The NVR reaches the cameras; nothing else on the LAN does.
If not: Mind first-match vs last-match order for your firewall platform.
Block the cameras from LAN and internet
Check: Block camera VLAN → other RFC1918 (LAN) above the allow-internet rule, then block/deny internet egress.
Expected result: Cameras can't reach the LAN or the internet.
If not: Allow only what's needed (DNS to the gateway, NTP).
Give cameras local time
Check: Point the cameras at a reachable local NTP server (router/NVR/Pi-hole) or allow UDP 123 out.
Expected result: Camera clocks stay in sync without internet.
If not: Skipping this breaks ONVIF auth and timestamps over time.
Add cameras by IP, then verify isolation
Check: Add each camera to the NVR by static IP + port (not discovery), then test that the NVR streams while the camera has no internet/LAN.
Expected result: Streaming works one-way; egress is blocked.
If not: If discovery is needed, run it from the camera VLAN — multicast won't cross.
Decision tree
If: NVR can't reach the cameras after isolating.
Then: Missing or mis-ordered NVR→camera allow rule.
Action: Add an allow from the NVR IP to the camera VLAN's RTSP/ONVIF ports, above the blocks.
If: Cameras lost time / ONVIF auth fails after blocking internet.
Then: No reachable NTP for internet-isolated cameras.
Action: Point cameras at a local NTP server, or allow UDP 123 out only.
If: NVR can't auto-discover cameras across the VLAN.
Then: Multicast discovery doesn't cross the boundary.
Action: Add cameras by static IP + port; or discover from the camera VLAN.
If: Cameras can still reach the internet/LAN.
Then: Block rules missing or below the allow-internet rule.
Action: Put block-to-RFC1918 and block-to-internet above any broad allow; verify with a test.
Safe stop: Don't expose the camera VLAN to the LAN to 'make it work' — fix the NVR allow instead.
Evidence table
| Symptom | Evidence to collect | Likely layer | Next action |
|---|---|---|---|
| NVR shows cameras offline after segmenting. | Whether an NVR→camera allow exists and its order. | Inter-VLAN allow / order | Add/raise the NVR→camera allow above the blocks. |
| ONVIF auth fails on isolated cameras. | Camera clock vs NVR; NTP reachability. | Time sync / NTP | Local NTP for the camera VLAN; resync clocks. |
| Auto-discovery finds nothing. | Whether discovery host shares the camera VLAN. | Multicast / discovery | Add by static IP+port; discover from the camera VLAN. |
| Camera reaches the internet when it shouldn't. | Position of block rules vs allow-internet. | Rule order / egress | Move blocks above broad allows; re-test egress. |
Commands and settings paths
Test NVR → camera reachability
From the NVR: ping <camera-ip>; nc -vz <camera-ip> 554; nc -vz <camera-ip> <onvif-port>
Where: From the NVR, across the VLAN.
Expected: Ping and the RTSP/ONVIF ports answer from the NVR's vantage point.
Failure means: A blocked port means the inter-VLAN allow is missing or mis-ordered.
Safe next step: Add/raise the NVR→camera allow for those ports.
Verify the camera CANNOT reach the internet
From the camera (or its VLAN): attempt an outbound connection / DNS to a public host
Where: From a device on the camera VLAN (or the camera's own diagnostics).
Expected: Outbound internet is blocked while local NTP/DNS still works.
Failure means: If the camera reaches the internet, the egress block is missing or below an allow.
Safe next step: Tighten egress: allow only NTP/DNS as needed, block the rest.
Confirm time sync
Camera web UI > date/time (NTP status); compare to the NVR clock
Where: On the camera and NVR.
Expected: Both clocks match within a few seconds via the local NTP server.
Failure means: A drifting camera clock breaks ONVIF auth and timestamps.
Safe next step: Set the local NTP server on the camera and resync.
Hardware and platform boundary
Change only when
- Segment cameras onto their own VLAN as soon as you have more than a couple — cameras are a common intrusion vector and isolation limits the blast radius.
Evidence that matters
- A router/firewall with stateful inter-VLAN rules, a managed switch for the VLAN, a local NTP source, and the ability to add cameras by static IP.
Evidence that does not matter
- A second mDNS reflector everywhere — only reflect where a client genuinely needs discovery; cameras can be added by IP.
Avoid
- Adding a manual 'allow established' rule (unnecessary on a stateful firewall) or opening the camera VLAN to the whole LAN to 'make it work'.
Related tool/calculator
Use the linked calculator or tool to turn this runbook into numbers for your exact setup.
Device setup troubleshooterRelated problems
Last reviewed
2026-06-03 · Reviewed by HomeTechOps. Built from June-2026 research verified against ONVIF (WS-Discovery multicast, Profile T) and the stateful inter-VLAN firewall model (UniFi ZBF / OPNsense / pfSense); centers the one-way NVR→camera trust, the local-NTP requirement for internet-blocked cameras, and the rule-order traps, cross-linking the inter-VLAN firewall and ONVIF pages. Stateful firewalls need no manual allow-established rule — stated explicitly.
Sources/assumptions
- Assumes a router/firewall and switch that support VLANs and stateful inter-VLAN rules (UniFi, OPNsense/pfSense, etc.).
- Stateful firewalls track return traffic, so you allow the NVR→camera direction and return packets are handled automatically — no manual 'allow established' rule.
- WS-Discovery multicast (239.255.255.250:3702) is link-local and does not route across VLANs.
Source-backed checks
HomeTechOps turns official docs and conservative safety rules into a shorter runbook. These links are the source trail for the page direction.