<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Opnsense on homelab</title>
    <link>https://homelab.nbkelley.com/tags/opnsense/</link>
    <description>Recent content in Opnsense on homelab</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Fri, 01 May 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://homelab.nbkelley.com/tags/opnsense/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Proxy Management &amp; Cloudflare Tunnels</title>
      <link>https://homelab.nbkelley.com/docs/networking/proxy-management/</link>
      <pubDate>Fri, 01 May 2026 00:00:00 +0000</pubDate>
      <guid>https://homelab.nbkelley.com/docs/networking/proxy-management/</guid>
      <description>&lt;h1 id=&#34;proxy-management--cloudflare-tunnels&#34;&gt;Proxy Management &amp;amp; Cloudflare Tunnels&lt;a class=&#34;anchor&#34; href=&#34;#proxy-management--cloudflare-tunnels&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;what-was-established&#34;&gt;What Was Established&lt;a class=&#34;anchor&#34; href=&#34;#what-was-established&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;There are multiple layers of proxying available in the homelab, ranging from edge protection (Cloudflare) to local routing (OPNsense/Nginx Proxy Manager).&lt;/p&gt;&#xA;&lt;h2 id=&#34;nginx-proxy-manager-npm-troubleshooting&#34;&gt;Nginx Proxy Manager (NPM) Troubleshooting&lt;a class=&#34;anchor&#34; href=&#34;#nginx-proxy-manager-npm-troubleshooting&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Redirect Loops &amp;amp; Timeouts&lt;/strong&gt;: Often caused by misconfigured upstream servers or aggressive timeout settings in NPM&amp;rsquo;s web UI. Resolving a redirect loop may expose underlying connectivity issues that manifest as timeouts.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Docker Compose Pattern&lt;/strong&gt;: NPM is deployed with &lt;code&gt;network_mode: host&lt;/code&gt; to bind directly to host ports (80, 443, 81), bypassing Docker&amp;rsquo;s NAT for direct host network access.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Verification Steps&lt;/strong&gt;:&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Check container health: &lt;code&gt;docker ps | grep nginx-proxy-manager&lt;/code&gt; (ensure &lt;code&gt;healthy&lt;/code&gt; status).&lt;/li&gt;&#xA;&lt;li&gt;Verify port bindings: &lt;code&gt;sudo netstat -tulpn | grep :80&lt;/code&gt; / &lt;code&gt;:443&lt;/code&gt; (requires &lt;code&gt;net-tools&lt;/code&gt; package).&lt;/li&gt;&#xA;&lt;li&gt;Inspect NPM Web UI: Access at &lt;code&gt;http://&amp;lt;host-ip&amp;gt;:81&lt;/code&gt; to review Proxy Host settings, specifically timeout values and upstream server addresses.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Port Conflicts&lt;/strong&gt;: Use &lt;code&gt;netstat&lt;/code&gt; to identify which container owns a specific port (e.g., &lt;code&gt;docker-proxy&lt;/code&gt; vs &lt;code&gt;nginx: master&lt;/code&gt;). In this setup, port 8000 was observed bound to &lt;code&gt;docker-proxy&lt;/code&gt;, indicating another service in the compose stack.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Co-located Services&lt;/strong&gt;: The same Docker Compose stack hosts &lt;code&gt;cloudflare-ddns&lt;/code&gt; (for dynamic IP updates) and &lt;code&gt;netbird&lt;/code&gt; (for mesh networking), requiring careful port management to avoid conflicts.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;key-decisions&#34;&gt;Key Decisions&lt;a class=&#34;anchor&#34; href=&#34;#key-decisions&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Use &lt;code&gt;network_mode: host&lt;/code&gt; for NPM to simplify port mapping and ensure direct access to host network interfaces.&lt;/li&gt;&#xA;&lt;li&gt;Rely on &lt;code&gt;net-tools&lt;/code&gt; (&lt;code&gt;netstat&lt;/code&gt;) for quick port binding verification in host-networked Docker containers.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;current-configuration&#34;&gt;Current Configuration&lt;a class=&#34;anchor&#34; href=&#34;#current-configuration&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Docker Host&lt;/strong&gt;: &lt;code&gt;iluvatar@proxy&lt;/code&gt; (192.168.1.208)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;NPM Web UI&lt;/strong&gt;: &lt;code&gt;http://192.168.1.208:81&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Ports&lt;/strong&gt;: 80 (HTTP), 443 (HTTPS), 81 (NPM Admin UI)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;historical-notes&#34;&gt;Historical Notes&lt;a class=&#34;anchor&#34; href=&#34;#historical-notes&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Troubleshooting session from 2025-11-17 resolved a redirect loop that subsequently turned into a timeout issue.&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;net-tools&lt;/code&gt; installation was required to diagnose port bindings on the host.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;open-questions&#34;&gt;Open Questions&lt;a class=&#34;anchor&#34; href=&#34;#open-questions&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Specific timeout values configured in NPM for upstream services.&lt;/li&gt;&#xA;&lt;li&gt;Whether &lt;code&gt;netbird&lt;/code&gt; or &lt;code&gt;cloudflare-ddns&lt;/code&gt; requires dedicated port exposure or can share the host network.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;related-pages&#34;&gt;Related Pages&lt;a class=&#34;anchor&#34; href=&#34;#related-pages&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://homelab.nbkelley.com/docs/security/cloudflare_integration/&#34;&gt;Cloudflare Integration: SSL &amp;amp; DNS&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://homelab.nbkelley.com/docs/networking/opnsense_dmz_iot_firewall/&#34;&gt;OPNsense DMZ Firewall Rules for IoT&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Docker Host Configuration&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://homelab.nbkelley.com/docs/services/uptime-kuma/&#34;&gt;Uptime Kuma - Configuration &amp;amp; Integrations&lt;/a&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>OPNsense DMZ Firewall Rules for IoT</title>
      <link>https://homelab.nbkelley.com/docs/networking/opnsense_dmz_iot_firewall/</link>
      <pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://homelab.nbkelley.com/docs/networking/opnsense_dmz_iot_firewall/</guid>
      <description>&lt;h1 id=&#34;opnsense-dmz-firewall-rules-for-iot&#34;&gt;OPNsense DMZ Firewall Rules for IoT&lt;a class=&#34;anchor&#34; href=&#34;#opnsense-dmz-firewall-rules-for-iot&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;what-was-established&#34;&gt;What Was Established&lt;a class=&#34;anchor&#34; href=&#34;#what-was-established&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;A structured firewall rule set for isolating IoT devices in a DMZ zone. The rules enforce a &amp;ldquo;high-to-low trust&amp;rdquo; flow, ensuring IoT devices can reach the internet for cloud services while preventing them from initiating connections to the trusted LAN. This pattern is critical for preventing lateral movement from compromised IoT devices.&lt;/p&gt;&#xA;&lt;h2 id=&#34;key-decisions&#34;&gt;Key Decisions&lt;a class=&#34;anchor&#34; href=&#34;#key-decisions&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Explicit Allow / Implicit Deny&lt;/strong&gt;: Only allow necessary outbound traffic (HTTP/HTTPS, DNS, NTP) from DMZ to WAN.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Strict Containment&lt;/strong&gt;: Explicitly block all DMZ-initiated traffic to the LAN zone.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Controlled LAN Access&lt;/strong&gt;: Default deny for LAN-to-DMZ, with specific allow rules only for administration or required services.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;WAN Isolation&lt;/strong&gt;: Block all unsolicited inbound traffic from WAN to DMZ.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;current-configuration&#34;&gt;Current Configuration&lt;a class=&#34;anchor&#34; href=&#34;#current-configuration&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;&lt;em&gt;Note: The homelab currently uses VLANs (Gandalf 192.168.1.x, Mithrandir 192.168.2.x, Tharkûn 192.168.3.x, Rivendell 192.168.4.x) managed by a UniFi Express gateway (&amp;ldquo;Olorín&amp;rdquo;, 192.168.1.1). These OPNsense zone-based rules should be adapted to the homelab&amp;rsquo;s VLAN structure or applied to a dedicated IoT VLAN (e.g., 192.168.50.x).&lt;/em&gt;&lt;/p&gt;</description>
    </item>
    <item>
      <title>OPNsense Interface Reassignment &amp; NIC Troubleshooting</title>
      <link>https://homelab.nbkelley.com/docs/networking/opnsense_interface_reassignment/</link>
      <pubDate>Mon, 27 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://homelab.nbkelley.com/docs/networking/opnsense_interface_reassignment/</guid>
      <description>&lt;h1 id=&#34;opnsense-interface-reassignment--nic-troubleshooting&#34;&gt;OPNsense Interface Reassignment &amp;amp; NIC Troubleshooting&lt;a class=&#34;anchor&#34; href=&#34;#opnsense-interface-reassignment--nic-troubleshooting&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;what-was-established&#34;&gt;What Was Established&lt;a class=&#34;anchor&#34; href=&#34;#what-was-established&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Procedures for reassigning WAN/LAN interfaces via the OPNsense console following a system upgrade, and troubleshooting connectivity loss after a physical NIC replacement.&lt;/p&gt;&#xA;&lt;h2 id=&#34;key-decisions&#34;&gt;Key Decisions&lt;a class=&#34;anchor&#34; href=&#34;#key-decisions&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Console-Based Reassignment&lt;/strong&gt;: Use the OPNsense console menu (&lt;code&gt;1. Assign Interfaces&lt;/code&gt;) to map physical ports to WAN/LAN roles.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Network-Only Reset&lt;/strong&gt;: If configuration is lost, use &lt;code&gt;2. Reset to factory defaults&lt;/code&gt; and select &amp;ldquo;Reset only the network configuration&amp;rdquo; to preserve other settings.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Manual Config Edit&lt;/strong&gt;: Fallback to &lt;code&gt;vi /conf/config.xml&lt;/code&gt; to manually adjust &lt;code&gt;&amp;lt;interfaces&amp;gt;&lt;/code&gt; tags (&lt;code&gt;&amp;lt;wan&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;lan&amp;gt;&lt;/code&gt;) if the menu fails.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;NIC Troubleshooting Workflow&lt;/strong&gt;: Verify driver recognition (&lt;code&gt;vmstat -i&lt;/code&gt;), link status (&lt;code&gt;ifconfig&lt;/code&gt;), and system logs (&lt;code&gt;dmesg&lt;/code&gt;). Check NAT/Outbound and LAN firewall rules. Isolate hardware issues by reverting to the original NIC.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;current-configuration&#34;&gt;Current Configuration&lt;a class=&#34;anchor&#34; href=&#34;#current-configuration&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Gateway&lt;/strong&gt;: UCG Express &amp;ldquo;Olorín&amp;rdquo; (OPNsense) at &lt;code&gt;192.168.1.1&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;VLANs&lt;/strong&gt;: Gandalf (192.168.1.x), Mithrandir (192.168.2.x), Tharkûn (192.168.3.x), Rivendell (192.168.4.x).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Switch&lt;/strong&gt;: Netgear MS308E (trunk/access VLANs managed via OPNsense).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;historical-notes&#34;&gt;Historical Notes&lt;a class=&#34;anchor&#34; href=&#34;#historical-notes&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Procedures documented for OPNsense upgrades where interface assignments reset.&lt;/li&gt;&#xA;&lt;li&gt;Troubleshooting steps refined for scenarios involving physical NIC swaps (e.g., 2.5GbE to 1GbE) causing interface loss.&lt;/li&gt;&#xA;&lt;li&gt;Note: Driver support (Intel &lt;code&gt;igb&lt;/code&gt;/&lt;code&gt;em&lt;/code&gt;, Realtek) and firmware updates may be required for newer NICs.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;open-questions&#34;&gt;Open Questions&lt;a class=&#34;anchor&#34; href=&#34;#open-questions&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Specific driver requirements for the current UCG Express &amp;ldquo;Olorín&amp;rdquo; gateway NICs.&lt;/li&gt;&#xA;&lt;li&gt;Automation of interface reassignment to prevent manual console steps during future upgrades.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;related-pages&#34;&gt;Related Pages&lt;a class=&#34;anchor&#34; href=&#34;#related-pages&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://homelab.nbkelley.com/docs/networking/opnsense_dhcp/&#34;&gt;OPNsense DHCP Configuration&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://homelab.nbkelley.com/docs/networking/vlan_setup/&#34;&gt;VLAN Configuration: OPNsense &amp;amp; Netgear MS308E&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://homelab.nbkelley.com/docs/infrastructure/network_troubleshooting/&#34;&gt;Troubleshooting Network Interface Changes&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://homelab.nbkelley.com/docs/infrastructure/network/&#34;&gt;Network Infrastructure &amp;amp; VLANs&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;Sources&lt;a class=&#34;anchor&#34; href=&#34;#sources&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;ingested/chats/034-Reassign WAN and LAN on OPNsense Post-Upgrade.md&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Historical DeepSeek conversation on OPNsense console interface reassignment and NIC troubleshooting.&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>OPNsense DHCP Configuration</title>
      <link>https://homelab.nbkelley.com/docs/networking/opnsense_dhcp/</link>
      <pubDate>Tue, 25 Mar 2025 00:00:00 +0000</pubDate>
      <guid>https://homelab.nbkelley.com/docs/networking/opnsense_dhcp/</guid>
      <description>&lt;h1 id=&#34;opnsense-dhcp-configuration&#34;&gt;OPNsense DHCP Configuration&lt;a class=&#34;anchor&#34; href=&#34;#opnsense-dhcp-configuration&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;what-was-established&#34;&gt;What Was Established&lt;a class=&#34;anchor&#34; href=&#34;#what-was-established&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Procedures for modifying DHCPv4 ranges and identifying other network segments where IP assignment ranges must be managed to prevent conflicts.&lt;/p&gt;&#xA;&lt;h2 id=&#34;key-decisions&#34;&gt;Key Decisions&lt;a class=&#34;anchor&#34; href=&#34;#key-decisions&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;DHCP Scope Management&lt;/strong&gt;: Always ensure static leases or reserved IPs (like Proxmox) are excluded from the dynamic DHCP range to prevent IP conflicts.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Subnet Alignment&lt;/strong&gt;: DHCP ranges must reside within the defined subnet (e.g., &lt;code&gt;/24&lt;/code&gt; for &lt;code&gt;192.168.0.0/24&lt;/code&gt;).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;current-configuration&#34;&gt;Current Configuration&lt;a class=&#34;anchor&#34; href=&#34;#current-configuration&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;dhcpv4-modification&#34;&gt;DHCPv4 Modification&lt;a class=&#34;anchor&#34; href=&#34;#dhcpv4-modification&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Navigate to &lt;strong&gt;Services → DHCPv4 → [Interface]&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;li&gt;Under &lt;strong&gt;General DHCP Options&lt;/strong&gt;, set the &lt;strong&gt;Range&lt;/strong&gt; (Start and End IP).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Save&lt;/strong&gt; and &lt;strong&gt;Apply&lt;/strong&gt;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;other-assignment-areas-to-monitor&#34;&gt;Other Assignment Areas to Monitor&lt;a class=&#34;anchor&#34; href=&#34;#other-assignment-areas-to-monitor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;DHCPv6&lt;/strong&gt;: Found under &lt;code&gt;Services → DHCPv6 → [Interface]&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;VPNs&lt;/strong&gt;:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;OpenVPN: &lt;code&gt;VPN → Open/IPsec → [Server]&lt;/code&gt; (Tunnel Network).&lt;/li&gt;&#xA;&lt;li&gt;WireGuard: Manual assignment per peer.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;VLANs&lt;/strong&gt;: Each VLAN interface requires its own DHCP scope.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;historical-notes&#34;&gt;Historical Notes&lt;a class=&#34;anchor&#34; href=&#34;#historical-notes&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;As of March 2025, this covers the standard DHCPv4/v6 setup for the LAN and VLAN interfaces.&lt;/p&gt;</description>
    </item>
    <item>
      <title>VLAN Configuration: OPNsense &amp; Netgear MS308E</title>
      <link>https://homelab.nbkelley.com/docs/networking/vlan_setup/</link>
      <pubDate>Tue, 25 Mar 2025 00:00:00 +0000</pubDate>
      <guid>https://homelab.nbkelley.com/docs/networking/vlan_setup/</guid>
      <description>&lt;h1 id=&#34;vlan-configuration-opnsense--netgear-ms308e&#34;&gt;VLAN Configuration: OPNsense &amp;amp; Netgear MS308E&lt;a class=&#34;anchor&#34; href=&#34;#vlan-configuration-opnsense--netgear-ms308e&#34;&gt;#&lt;/a&gt;&lt;/h1&gt;&#xA;&lt;h2 id=&#34;what-was-established&#34;&gt;What Was Established&lt;a class=&#34;anchor&#34; href=&#34;#what-was-established&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Configuration pattern for implementing tagged (trunk) and untagged (access) VLANs using OPNsense as the router and a Netgear MS308E managed switch.&lt;/p&gt;&#xA;&lt;h2 id=&#34;key-decisions&#34;&gt;Key Decisions&lt;a class=&#34;anchor&#34; href=&#34;#key-decisions&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;VLAN Naming/ID&lt;/strong&gt;: Example VLAN &amp;ldquo;Incánus&amp;rdquo; assigned ID &lt;code&gt;20&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Trunking Strategy&lt;/strong&gt;: The port connecting OPNsense to the Netgear switch must be configured as a &lt;strong&gt;Tagged&lt;/strong&gt; port for all active VLANs.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Access Port Strategy&lt;/strong&gt;: Ports for end-devices must be &lt;strong&gt;Untagged&lt;/strong&gt; for the specific VLAN, with the &lt;strong&gt;PVID&lt;/strong&gt; (Port VLAN ID) set to match that VLAN.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;current-configuration&#34;&gt;Current Configuration&lt;a class=&#34;anchor&#34; href=&#34;#current-configuration&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;h3 id=&#34;opnsense-setup&#34;&gt;OPNsense Setup&lt;a class=&#34;anchor&#34; href=&#34;#opnsense-setup&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Create VLAN&lt;/strong&gt;: &lt;code&gt;Interfaces → Other Types → VLAN&lt;/code&gt; (Assign Parent Interface and Tag ID).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Assign Interface&lt;/strong&gt;: &lt;code&gt;Interfaces → Assignments&lt;/code&gt; (Add the new VLAN interface).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Configure IP&lt;/strong&gt;: Set a static IPv4 address (e.g., &lt;code&gt;192.168.20.1/24&lt;/code&gt; for VLAN 20).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;DHCP&lt;/strong&gt;: Enable DHCPv4 under &lt;code&gt;Services → DHCPv4 → [VLAN Interface]&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h3 id=&#34;netgear-ms308e-setup&#34;&gt;Netgear MS308E Setup&lt;a class=&#34;anchor&#34; href=&#34;#netgear-ms308e-setup&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;VLAN Membership&lt;/strong&gt;:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Trunk Port (to OPNsense)&lt;/strong&gt;: Set as &lt;strong&gt;Tagged&lt;/strong&gt; for all VLANs (e.g., VLAN 20, 30).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Access Port (to Device)&lt;/strong&gt;: Set as &lt;strong&gt;Untagged&lt;/strong&gt; for the target VLAN.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;PVID Configuration&lt;/strong&gt;:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;For Access Ports, the &lt;strong&gt;PVID&lt;/strong&gt; must be updated to match the VLAN ID (e.g., Port 1: PVID 20).&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;historical-notes&#34;&gt;Historical Notes&lt;a class=&#34;anchor&#34; href=&#34;#historical-notes&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Configuration established during the rollout of the &amp;ldquo;Incánus&amp;rdquo; network segment.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
