<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Network on Deevnet IoTaaS</title><link>https://deevnet.github.io/deevnet-docs/docs/runbook/substrate/network/</link><description>Recent content in Network on Deevnet IoTaaS</description><generator>Hugo</generator><language>en-us</language><atom:link href="https://deevnet.github.io/deevnet-docs/docs/runbook/substrate/network/index.xml" rel="self" type="application/rss+xml"/><item><title>Important URLs</title><link>https://deevnet.github.io/deevnet-docs/docs/runbook/substrate/network/important-urls/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deevnet.github.io/deevnet-docs/docs/runbook/substrate/network/important-urls/</guid><description>&lt;h1 id="important-urls">
 Important URLs
 &lt;a class="anchor" href="#important-urls">#&lt;/a>
&lt;/h1>
&lt;p>Every management interface and service endpoint on the mobile site, by DNS name and by IP.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Names&lt;/strong> are in the &lt;code>mobile.deevnet.net&lt;/code> zone and resolve through the core router,
&lt;code>10.20.99.1&lt;/code>.&lt;/li>
&lt;li>&lt;strong>Use the IP&lt;/strong> when DNS is the thing that is broken, or when you are not using the site&amp;rsquo;s
resolver.&lt;/li>
&lt;li>&lt;strong>Where to reach them from:&lt;/strong> the management segment (VLAN 99) — the builder, or a laptop on
the operator port &lt;code>gi1/0/2&lt;/code>, which gets an address from &lt;code>10.20.99.200–230&lt;/code>. From the travel
router&amp;rsquo;s network, tunnel through the builder instead: see

 &lt;a href="https://deevnet.github.io/deevnet-docs/deevnet-docs/docs/runbook/substrate/network/operator-access/">Operator Access&lt;/a>.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Checked 2026-09-11 from the builder:&lt;/strong> every URL below answered, by name and by IP, except
where the Notes say otherwise.&lt;/p></description></item><item><title>Operator Access</title><link>https://deevnet.github.io/deevnet-docs/docs/runbook/substrate/network/operator-access/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deevnet.github.io/deevnet-docs/docs/runbook/substrate/network/operator-access/</guid><description>&lt;h1 id="operator-access">
 Operator Access
 &lt;a class="anchor" href="#operator-access">#&lt;/a>
&lt;/h1>
&lt;p>Reaching the builder and the management web UIs from an operator laptop. There are three ways
in, and which one to use depends on what is broken.&lt;/p>
&lt;table>
 &lt;thead>
 &lt;tr>
 &lt;th>Path&lt;/th>
 &lt;th>Laptop on&lt;/th>
 &lt;th>Goes through&lt;/th>
 &lt;th>Use it for&lt;/th>
 &lt;/tr>
 &lt;/thead>
 &lt;tbody>
 &lt;tr>
 &lt;td>&lt;strong>Trusted Wi-Fi&lt;/strong>&lt;/td>
 &lt;td>&lt;code>DVNTM&lt;/code> (trusted, &lt;code>10.20.10.0/24&lt;/code>)&lt;/td>
 &lt;td>the AP, the switch and the core router&lt;/td>
 &lt;td>everyday work: SSH to the builder at &lt;code>10.20.99.95&lt;/code>, and the management UIs directly&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Travel router&lt;/strong> (below)&lt;/td>
 &lt;td>&lt;code>192.168.8.0/24&lt;/code>&lt;/td>
 &lt;td>the builder&amp;rsquo;s &lt;code>enp1s0&lt;/code> only&lt;/td>
 &lt;td>work that takes down the switch, the AP or the router&amp;rsquo;s trusted side&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>&lt;strong>Operator port&lt;/strong> (
 &lt;a href="#backup-the-operator-port">below&lt;/a>)&lt;/td>
 &lt;td>&lt;code>gi1/0/2&lt;/code>, untagged VLAN 99&lt;/td>
 &lt;td>the switch only&lt;/td>
 &lt;td>the travel router or &lt;code>enp1s0&lt;/code> is the problem&lt;/td>
 &lt;/tr>
 &lt;/tbody>
&lt;/table>
&lt;p>&lt;strong>Trusted reaches management by a declared lab exception&lt;/strong>, the &lt;code>trusted -&amp;gt; management&lt;/code> pass in the
zone policy. The 
 &lt;a href="https://deevnet.github.io/deevnet-docs/deevnet-docs/docs/standards/network-segmentation/">standard&lt;/a> allows it: the trusted segment
&lt;em>&amp;ldquo;MAY access management services for administration purposes&amp;rdquo;&lt;/em>. It is also protected from
deletion (&lt;code>firewall_protected_descriptions&lt;/code>), because it is the operator&amp;rsquo;s own path. A dedicated
jump host would be purer, but it would be one more thing to build and keep running for a lab this
size, and that isn&amp;rsquo;t worth it. No other SSID reaches management;

 &lt;a href="https://deevnet.github.io/deevnet-docs/deevnet-docs/docs/runbook/substrate/network/segment-check/">Segment Check&lt;/a> verifies both from a client.&lt;/p></description></item><item><title>Segment Check</title><link>https://deevnet.github.io/deevnet-docs/docs/runbook/substrate/network/segment-check/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deevnet.github.io/deevnet-docs/docs/runbook/substrate/network/segment-check/</guid><description>&lt;h1 id="segment-check">
 Segment Check
 &lt;a class="anchor" href="#segment-check">#&lt;/a>
&lt;/h1>
&lt;p>Checking from a real client that each Wi-Fi segment reaches what the zone policy allows and nothing
else.&lt;/p>
&lt;p>The firewall role reports what it &lt;strong>wrote&lt;/strong>. It cannot report what a client &lt;strong>gets&lt;/strong>: whether a lease
lands in the right subnet, whether names resolve through the segment&amp;rsquo;s own gateway, or whether a
denied port is really dropped. The only place to see that is a laptop on the SSID.
&lt;code>scripts/segment-check.sh&lt;/code> in

 &lt;a href="https://github.com/deevnet/ansible-collection-deevnet.net/blob/main/scripts/segment-check.sh">&lt;code>ansible-collection-deevnet.net&lt;/code>&lt;/a>
does it in one run per SSID.&lt;/p></description></item><item><title>Network Reference</title><link>https://deevnet.github.io/deevnet-docs/docs/runbook/substrate/network/network-reference/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deevnet.github.io/deevnet-docs/docs/runbook/substrate/network/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="mobile-vlan-assignments">
 mobile VLAN Assignments
 &lt;a class="anchor" href="#mobile-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 Dev&lt;/td>
 &lt;td>45&lt;/td>
 &lt;td>10.20.45.0/24&lt;/td>
 &lt;td>10.20.45.1&lt;/td>
 &lt;td>.50-.250&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Tenant Transit&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>Static only&lt;/td>
 &lt;/tr>
 &lt;tr>
 &lt;td>Tenant Underlay&lt;/td>
 &lt;td>51&lt;/td>
 &lt;td>—&lt;/td>
 &lt;td>—&lt;/td>
 &lt;td>None (unrouted)&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>.200-.230 (temporary; infrastructure is static or reserved)&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;blockquote>
&lt;p>Tenants are &lt;strong>not&lt;/strong> VLANs. Under 
 &lt;a href="https://deevnet.github.io/deevnet-docs/deevnet-docs/docs/architecture/decisions/0001-tenant-network-fabric/">ADR-0001&lt;/a>
a tenant is an EVPN/VXLAN overlay owned by the tenant hypervisor&amp;rsquo;s fabric, addressed from
&lt;code>10.20.128.0/18&lt;/code> by fabric IPAM. The Tenant Transit and Tenant Underlay VLANs are the fabric&amp;rsquo;s
&lt;em>transport&lt;/em>: transit to the perimeter, and the VTEP underlay. Creating a tenant changes neither.
Tenant Dev is not part of the fabric: it is where a tenant&amp;rsquo;s developer sits
(
 &lt;a href="https://deevnet.github.io/deevnet-docs/deevnet-docs/docs/changes/2026/0022-tenant-dev-network/">CHG-0022&lt;/a>).&lt;/p></description></item></channel></rss>