<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>📋 Operational Runbook on Deevnet Infrastructure Platform</title><link>https://deevnet.github.io/deevnet-docs/docs/runbook/</link><description>Recent content in 📋 Operational Runbook on Deevnet Infrastructure Platform</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://deevnet.github.io/deevnet-docs/docs/runbook/index.xml" rel="self" type="application/rss+xml"/><item><title>Authority Transition</title><link>https://deevnet.github.io/deevnet-docs/docs/runbook/authority-transition/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deevnet.github.io/deevnet-docs/docs/runbook/authority-transition/</guid><description>&lt;h1 id="authority-transition-runbook">
 Authority Transition Runbook
 &lt;a class="anchor" href="#authority-transition-runbook">#&lt;/a>
&lt;/h1>
&lt;p>Procedures for transitioning DNS/DHCP authority between the builder and production network infrastructure.&lt;/p>
&lt;p>For the architectural model, see &lt;a href="https://deevnet.github.io/deevnet-docs/docs/architecture/substrate/management-plane/core-services/">Core Services Architecture&lt;/a>.&lt;/p>
&lt;blockquote class="book-hint info">
 
**Build context:** During a greenfield build, these transitions happen as part of the [Building Infrastructure](/docs/runbook/building-recovery/) sequence — [Configure PXE](/docs/runbook/building-recovery/build-sequence/) enters bootstrap-authoritative mode, and [Build Network](/docs/runbook/building-recovery/build-network/) transitions to core-authoritative mode. This page is the standalone reference for both directions.

&lt;/blockquote>

&lt;hr>
&lt;h2 id="overview">
 Overview
 &lt;a class="anchor" href="#overview">#&lt;/a>
&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Transition&lt;/th>
 &lt;th>From&lt;/th>
 &lt;th>To&lt;/th>
 &lt;th>When&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;strong>Promote to production&lt;/strong>&lt;/td>
 &lt;td>Builder-authoritative&lt;/td>
 &lt;td>Router-authoritative&lt;/td>
 &lt;td>After network infrastructure is configured and validated&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Revert to bootstrap&lt;/strong>&lt;/td>
 &lt;td>Router-authoritative&lt;/td>
 &lt;td>Builder-authoritative&lt;/td>
 &lt;td>Before substrate rebuild or recovery&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>Both transitions are automated via playbooks in &lt;code>deevnet.builder&lt;/code> and &lt;code>deevnet.net&lt;/code>. The IP swap is the final step in each playbook and drops the SSH connection — reconnect at the new IP to verify.&lt;/p></description></item><item><title>Patching</title><link>https://deevnet.github.io/deevnet-docs/docs/runbook/patching/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deevnet.github.io/deevnet-docs/docs/runbook/patching/</guid><description>&lt;h1 id="patching">
 Patching
 &lt;a class="anchor" href="#patching">#&lt;/a>
&lt;/h1>
&lt;p>Day 2 maintenance and security updates for substrate hosts.&lt;/p>
&lt;hr>
&lt;h2 id="status-planned">
 Status: Planned
 &lt;a class="anchor" href="#status-planned">#&lt;/a>
&lt;/h2>
&lt;p>This section will document:&lt;/p>
&lt;ul>
&lt;li>Online patching (hosts with internet access)&lt;/li>
&lt;li>Offline patching (air-gapped site)&lt;/li>
&lt;li>Local dnf mirror setup for full air-gap&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="decision-required">
 Decision Required
 &lt;a class="anchor" href="#decision-required">#&lt;/a>
&lt;/h2>
&lt;p>Post-install updates currently require internet access. Options:&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Option&lt;/th>
 &lt;th>Pros&lt;/th>
 &lt;th>Cons&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>Accept internet required&lt;/td>
 &lt;td>Simple, no extra storage&lt;/td>
 &lt;td>Not true air-gap&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Full local dnf mirror&lt;/td>
 &lt;td>True air-gap&lt;/td>
 &lt;td>~200GB per Fedora release&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Hybrid (security only)&lt;/td>
 &lt;td>Balanced&lt;/td>
 &lt;td>Complex to maintain&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="current-state">
 Current State
 &lt;a class="anchor" href="#current-state">#&lt;/a>
&lt;/h2>
&lt;p>Install-time packages come from ISO/cdrom (air-gap ready).&lt;/p></description></item><item><title>Authority Transition Gap Analysis</title><link>https://deevnet.github.io/deevnet-docs/docs/runbook/authority-transition-gap-analysis/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deevnet.github.io/deevnet-docs/docs/runbook/authority-transition-gap-analysis/</guid><description>&lt;h1 id="authority-transition-gap-analysis">
 Authority Transition Gap Analysis
 &lt;a class="anchor" href="#authority-transition-gap-analysis">#&lt;/a>
&lt;/h1>
&lt;p>Analysis of gaps between the &lt;a href="https://deevnet.github.io/deevnet-docs/docs/runbook/authority-transition/">authority transition runbook&lt;/a> and the actual state of automation, performed 2026-03-26 against the segmented 10-space (10.20.x.x with per-VLAN subnets).&lt;/p>
&lt;p>&lt;strong>Scope:&lt;/strong> &lt;code>bootstrap-authoritative.yml&lt;/code>, &lt;code>core-authoritative.yml&lt;/code>, the &lt;code>bootstrap&lt;/code> role, inventory group_vars, dnsmasq templates, and the OPNsense DNS/DHCP roles in &lt;code>deevnet.net&lt;/code>.&lt;/p>
&lt;hr>
&lt;h2 id="critical-gaps">
 Critical Gaps
 &lt;a class="anchor" href="#critical-gaps">#&lt;/a>
&lt;/h2>
&lt;h3 id="gap-1-bootstrap-authoritativeyml-doesnt-enable-dhcp">
 GAP 1: &lt;code>bootstrap-authoritative.yml&lt;/code> doesn&amp;rsquo;t enable DHCP
 &lt;a class="anchor" href="#gap-1-bootstrap-authoritativeyml-doesnt-enable-dhcp">#&lt;/a>
&lt;/h3>
&lt;p>&lt;strong>Runbook says:&lt;/strong> &lt;code>make bootstrap-auth&lt;/code> enables DNS/DHCP/gateway on the builder.&lt;/p>
&lt;p>&lt;strong>Reality:&lt;/strong> The playbook calls &lt;code>include_role: bootstrap&lt;/code> without overriding &lt;code>bootstrap_tftp_backend&lt;/code> or &lt;code>bootstrap_dnsmasq_dhcp_enabled&lt;/code>. Inventory has both set to their production values (&lt;code>tftpd&lt;/code> / &lt;code>false&lt;/code>), so running the playbook installs standalone tftpd with DHCP off.&lt;/p></description></item><item><title>Security</title><link>https://deevnet.github.io/deevnet-docs/docs/runbook/security/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deevnet.github.io/deevnet-docs/docs/runbook/security/</guid><description>&lt;h1 id="security--vulnerability-management">
 Security &amp;amp; Vulnerability Management
 &lt;a class="anchor" href="#security--vulnerability-management">#&lt;/a>
&lt;/h1>
&lt;p>Documents &lt;strong>security posture, assumptions, and lifecycle practices&lt;/strong>.&lt;/p>
&lt;hr>
&lt;h2 id="scope">
 Scope
 &lt;a class="anchor" href="#scope">#&lt;/a>
&lt;/h2>
&lt;p>This section includes:&lt;/p>
&lt;ul>
&lt;li>Trust boundaries and threat assumptions&lt;/li>
&lt;li>Credential and key management philosophy&lt;/li>
&lt;li>Vulnerability monitoring and response expectations&lt;/li>
&lt;li>Patch and upgrade responsibility by layer&lt;/li>
&lt;li>Security-related guardrails and invariants&lt;/li>
&lt;/ul>
&lt;p>This section defines what &amp;ldquo;secure enough&amp;rdquo; means for Deevnet.&lt;/p>
&lt;hr>
&lt;h2 id="status-planned">
 Status: Planned
 &lt;a class="anchor" href="#status-planned">#&lt;/a>
&lt;/h2>
&lt;p>Detailed security documentation is planned. Key areas to document:&lt;/p>
&lt;h3 id="trust-boundaries">
 Trust Boundaries
 &lt;a class="anchor" href="#trust-boundaries">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Substrate network is trusted&lt;/li>
&lt;li>Upstream/WAN is untrusted&lt;/li>
&lt;li>Tenant isolation requirements&lt;/li>
&lt;/ul>
&lt;h3 id="credential-management">
 Credential Management
 &lt;a class="anchor" href="#credential-management">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>SSH key distribution via artifact server&lt;/li>
&lt;li>No passwords in playbooks or inventory&lt;/li>
&lt;li>API tokens for service accounts&lt;/li>
&lt;/ul>
&lt;h3 id="vulnerability-response">
 Vulnerability Response
 &lt;a class="anchor" href="#vulnerability-response">#&lt;/a>
&lt;/h3>
&lt;ul>
&lt;li>Monitoring sources (CVE feeds, vendor advisories)&lt;/li>
&lt;li>Patch timelines by severity&lt;/li>
&lt;li>Emergency response procedures&lt;/li>
&lt;/ul></description></item><item><title>Inventory Lifecycle</title><link>https://deevnet.github.io/deevnet-docs/docs/runbook/inventory-lifecycle/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deevnet.github.io/deevnet-docs/docs/runbook/inventory-lifecycle/</guid><description>&lt;h1 id="inventory--lifecycle-management">
 Inventory &amp;amp; Lifecycle Management
 &lt;a class="anchor" href="#inventory--lifecycle-management">#&lt;/a>
&lt;/h1>
&lt;p>Documents how &lt;strong>infrastructure assets are tracked, managed, and retired&lt;/strong>.&lt;/p>
&lt;hr>
&lt;h2 id="scope">
 Scope
 &lt;a class="anchor" href="#scope">#&lt;/a>
&lt;/h2>
&lt;p>This section includes:&lt;/p>
&lt;ul>
&lt;li>Host identity and inventory sources of truth&lt;/li>
&lt;li>Hardware lifecycle stages (active, standby, retired)&lt;/li>
&lt;li>Image and configuration lifecycle expectations&lt;/li>
&lt;li>Decommissioning and cleanup principles&lt;/li>
&lt;/ul>
&lt;p>This section ensures infrastructure ages intentionally, not accidentally.&lt;/p>
&lt;hr>
&lt;h2 id="lifecycle-stages">
 Lifecycle Stages
 &lt;a class="anchor" href="#lifecycle-stages">#&lt;/a>
&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Stage&lt;/th>
 &lt;th>Description&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;strong>Provisioning&lt;/strong>&lt;/td>
 &lt;td>Host being set up, not yet in service&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Active&lt;/strong>&lt;/td>
 &lt;td>In production use&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Standby&lt;/strong>&lt;/td>
 &lt;td>Available but not currently assigned&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Maintenance&lt;/strong>&lt;/td>
 &lt;td>Temporarily offline for updates/repairs&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Retired&lt;/strong>&lt;/td>
 &lt;td>Decommissioned, removed from inventory&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="inventory-sources-of-truth">
 Inventory Sources of Truth
 &lt;a class="anchor" href="#inventory-sources-of-truth">#&lt;/a>
&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>ansible-inventory-deevnet&lt;/strong> - Canonical host identity&lt;/li>
&lt;li>&lt;strong>OPNsense&lt;/strong> - Authoritative DNS/DHCP (production)&lt;/li>
&lt;li>&lt;strong>Bootstrap node&lt;/strong> - Authoritative DNS/DHCP (during provisioning)&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="decommissioning">
 Decommissioning
 &lt;a class="anchor" href="#decommissioning">#&lt;/a>
&lt;/h2>
&lt;p>When retiring a host:&lt;/p></description></item><item><title>Change Management</title><link>https://deevnet.github.io/deevnet-docs/docs/runbook/change-management/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deevnet.github.io/deevnet-docs/docs/runbook/change-management/</guid><description>&lt;h1 id="change-management--cicd">
 Change Management &amp;amp; CI/CD
 &lt;a class="anchor" href="#change-management--cicd">#&lt;/a>
&lt;/h1>
&lt;p>Defines how &lt;strong>change is introduced safely&lt;/strong> into the Deevnet ecosystem.&lt;/p>
&lt;hr>
&lt;h2 id="scope">
 Scope
 &lt;a class="anchor" href="#scope">#&lt;/a>
&lt;/h2>
&lt;p>This section includes:&lt;/p>
&lt;ul>
&lt;li>Change classification (routine vs disruptive)&lt;/li>
&lt;li>Required validation before changes are applied&lt;/li>
&lt;li>Automated testing expectations by layer&lt;/li>
&lt;li>CI/CD pipeline responsibilities&lt;/li>
&lt;li>Guardrails that prevent unsafe changes from reaching production sites&lt;/li>
&lt;/ul>
&lt;hr>
&lt;h2 id="principles">
 Principles
 &lt;a class="anchor" href="#principles">#&lt;/a>
&lt;/h2>
&lt;p>Automated testing and CI/CD exist to:&lt;/p>
&lt;ul>
&lt;li>Validate assumptions early&lt;/li>
&lt;li>Prevent regressions&lt;/li>
&lt;li>Ensure changes preserve correctness&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Manual changes without validation are considered defects.&lt;/strong>&lt;/p></description></item><item><title>Network Reference</title><link>https://deevnet.github.io/deevnet-docs/docs/runbook/network-reference/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deevnet.github.io/deevnet-docs/docs/runbook/network-reference/</guid><description>&lt;h1 id="network-reference">
 Network Reference
 &lt;a class="anchor" href="#network-reference">#&lt;/a>
&lt;/h1>
&lt;p>Quick reference for VLAN assignments and network configuration across Deevnet sites.&lt;/p>
&lt;hr>
&lt;h2 id="dvntm-vlan-assignments">
 dvntm VLAN Assignments
 &lt;a class="anchor" href="#dvntm-vlan-assignments">#&lt;/a>
&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Segment&lt;/th>
 &lt;th>VLAN ID&lt;/th>
 &lt;th>Subnet&lt;/th>
 &lt;th>Gateway&lt;/th>
 &lt;th>DHCP&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>Trusted&lt;/td>
 &lt;td>10&lt;/td>
 &lt;td>10.20.10.0/24&lt;/td>
 &lt;td>10.20.10.1&lt;/td>
 &lt;td>.100-.200&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Storage&lt;/td>
 &lt;td>20&lt;/td>
 &lt;td>10.20.20.0/24&lt;/td>
 &lt;td>10.20.20.1&lt;/td>
 &lt;td>Static only&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Platform&lt;/td>
 &lt;td>25&lt;/td>
 &lt;td>10.20.25.0/24&lt;/td>
 &lt;td>10.20.25.1&lt;/td>
 &lt;td>Static only&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>IoT&lt;/td>
 &lt;td>30&lt;/td>
 &lt;td>10.20.30.0/24&lt;/td>
 &lt;td>10.20.30.1&lt;/td>
 &lt;td>.100-.200&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>IoT Vendor&lt;/td>
 &lt;td>31&lt;/td>
 &lt;td>10.20.31.0/24&lt;/td>
 &lt;td>10.20.31.1&lt;/td>
 &lt;td>.100-.200&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>IoT Backend&lt;/td>
 &lt;td>35&lt;/td>
 &lt;td>10.20.35.0/24&lt;/td>
 &lt;td>10.20.35.1&lt;/td>
 &lt;td>Static only&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Guest&lt;/td>
 &lt;td>40&lt;/td>
 &lt;td>10.20.40.0/24&lt;/td>
 &lt;td>10.20.40.1&lt;/td>
 &lt;td>.50-.250&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Tenant 1&lt;/td>
 &lt;td>50&lt;/td>
 &lt;td>10.20.50.0/24&lt;/td>
 &lt;td>10.20.50.1&lt;/td>
 &lt;td>Per-tenant&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Tenant 2&lt;/td>
 &lt;td>51&lt;/td>
 &lt;td>10.20.51.0/24&lt;/td>
 &lt;td>10.20.51.1&lt;/td>
 &lt;td>Per-tenant&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Tenant 3&lt;/td>
 &lt;td>52&lt;/td>
 &lt;td>10.20.52.0/24&lt;/td>
 &lt;td>10.20.52.1&lt;/td>
 &lt;td>Per-tenant&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Management&lt;/td>
 &lt;td>99&lt;/td>
 &lt;td>10.20.99.0/24&lt;/td>
 &lt;td>10.20.99.1&lt;/td>
 &lt;td>Static only&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Blackhole&lt;/td>
 &lt;td>999&lt;/td>
 &lt;td>—&lt;/td>
 &lt;td>—&lt;/td>
 &lt;td>None (unrouted)&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="dvnt-vlan-assignments">
 dvnt VLAN Assignments
 &lt;a class="anchor" href="#dvnt-vlan-assignments">#&lt;/a>
&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Segment&lt;/th>
 &lt;th>VLAN ID&lt;/th>
 &lt;th>Subnet&lt;/th>
 &lt;th>Gateway&lt;/th>
 &lt;th>DHCP&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>Trusted&lt;/td>
 &lt;td>10&lt;/td>
 &lt;td>10.10.10.0/24&lt;/td>
 &lt;td>10.10.10.1&lt;/td>
 &lt;td>.100-.200&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Storage&lt;/td>
 &lt;td>20&lt;/td>
 &lt;td>10.10.20.0/24&lt;/td>
 &lt;td>10.10.20.1&lt;/td>
 &lt;td>Static only&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Platform&lt;/td>
 &lt;td>25&lt;/td>
 &lt;td>10.10.25.0/24&lt;/td>
 &lt;td>10.10.25.1&lt;/td>
 &lt;td>Static only&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>IoT&lt;/td>
 &lt;td>30&lt;/td>
 &lt;td>10.10.30.0/24&lt;/td>
 &lt;td>10.10.30.1&lt;/td>
 &lt;td>.100-.200&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>IoT Vendor&lt;/td>
 &lt;td>31&lt;/td>
 &lt;td>10.10.31.0/24&lt;/td>
 &lt;td>10.10.31.1&lt;/td>
 &lt;td>.100-.200&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>IoT Backend&lt;/td>
 &lt;td>35&lt;/td>
 &lt;td>10.10.35.0/24&lt;/td>
 &lt;td>10.10.35.1&lt;/td>
 &lt;td>Static only&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Guest&lt;/td>
 &lt;td>40&lt;/td>
 &lt;td>10.10.40.0/24&lt;/td>
 &lt;td>10.10.40.1&lt;/td>
 &lt;td>.50-.250&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Tenant 1&lt;/td>
 &lt;td>50&lt;/td>
 &lt;td>10.10.50.0/24&lt;/td>
 &lt;td>10.10.50.1&lt;/td>
 &lt;td>Per-tenant&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Tenant 2&lt;/td>
 &lt;td>51&lt;/td>
 &lt;td>10.10.51.0/24&lt;/td>
 &lt;td>10.10.51.1&lt;/td>
 &lt;td>Per-tenant&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Tenant 3&lt;/td>
 &lt;td>52&lt;/td>
 &lt;td>10.10.52.0/24&lt;/td>
 &lt;td>10.10.52.1&lt;/td>
 &lt;td>Per-tenant&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Management&lt;/td>
 &lt;td>99&lt;/td>
 &lt;td>10.10.99.0/24&lt;/td>
 &lt;td>10.10.99.1&lt;/td>
 &lt;td>Static only&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Blackhole&lt;/td>
 &lt;td>999&lt;/td>
 &lt;td>—&lt;/td>
 &lt;td>—&lt;/td>
 &lt;td>None (unrouted)&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="segment-purpose-summary">
 Segment Purpose Summary
 &lt;a class="anchor" href="#segment-purpose-summary">#&lt;/a>
&lt;/h2>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Segment&lt;/th>
 &lt;th>Trust Level&lt;/th>
 &lt;th>Purpose&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>Management&lt;/td>
 &lt;td>High&lt;/td>
 &lt;td>Infrastructure management plane (provisioners, hypervisor mgmt, switches, IPMI)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Trusted&lt;/td>
 &lt;td>High&lt;/td>
 &lt;td>User devices (workstations, laptops, personal devices)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Storage&lt;/td>
 &lt;td>High&lt;/td>
 &lt;td>Dedicated storage traffic (NAS, backup targets)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Platform&lt;/td>
 &lt;td>High&lt;/td>
 &lt;td>Shared infrastructure services (DNS, NTP, artifact mirrors, reverse proxy)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Tenant&lt;/td>
 &lt;td>Medium&lt;/td>
 &lt;td>Per-tenant workload isolation&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>IoT Backend&lt;/td>
 &lt;td>Medium&lt;/td>
 &lt;td>IoT application backends (MQTT, Home Assistant, data pipelines)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>IoT Vendor&lt;/td>
 &lt;td>Very Low&lt;/td>
 &lt;td>Vendor-managed IoT containment zone (cloud-dependent, unauditable)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>IoT&lt;/td>
 &lt;td>Medium&lt;/td>
 &lt;td>Custom-developed embedded devices with controlled firmware (Pis, sensors)&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Guest&lt;/td>
 &lt;td>Untrusted&lt;/td>
 &lt;td>Transient visitor access (internet only)&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="canonical-source">
 Canonical Source
 &lt;a class="anchor" href="#canonical-source">#&lt;/a>
&lt;/h2>
&lt;p>VLAN definitions are maintained in Ansible inventory:&lt;/p></description></item></channel></rss>