<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Networking on homelab</title>
    <link>https://homelab.nbkelley.com/tags/networking/</link>
    <description>Recent content in Networking 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/networking/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Mobile Hotspot &amp; Proton VPN Troubleshooting</title>
      <link>https://homelab.nbkelley.com/docs/networking/mobile-hotspot-vpn/</link>
      <pubDate>Fri, 01 May 2026 00:00:00 +0000</pubDate>
      <guid>https://homelab.nbkelley.com/docs/networking/mobile-hotspot-vpn/</guid>
      <description>&lt;h1 id=&#34;mobile-hotspot--proton-vpn-troubleshooting&#34;&gt;Mobile Hotspot &amp;amp; Proton VPN Troubleshooting&lt;a class=&#34;anchor&#34; href=&#34;#mobile-hotspot--proton-vpn-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;ul&gt;&#xA;&lt;li&gt;A PC connected to a mobile hotspot will always display a local/private IP address (e.g., &lt;code&gt;192.168.43.x&lt;/code&gt;) to communicate with the phone acting as the gateway/router.&lt;/li&gt;&#xA;&lt;li&gt;Enabling Proton VPN on the mobile device does not automatically extend the encrypted tunnel to connected hotspot devices by default. This is due to app-level vs. system-level routing, separate network interfaces, and carrier/OS restrictions.&lt;/li&gt;&#xA;&lt;li&gt;Public IP verification and DNS leak tests are required to confirm whether hotspot traffic is actually being routed through the VPN tunnel.&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;&lt;strong&gt;Local IP vs Public IP&lt;/strong&gt;: Local IPs are expected and required for LAN communication; privacy and security are determined by the public IP and DNS resolution, not the local address.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;VPN Extension Methods&lt;/strong&gt;:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Enable &amp;ldquo;Always-on VPN&amp;rdquo; and &amp;ldquo;VPN passthrough&amp;rdquo; in the phone&amp;rsquo;s hotspot/tethering settings.&lt;/li&gt;&#xA;&lt;li&gt;Install Proton VPN directly on the PC for guaranteed tunneling, kill switch functionality, and split tunneling control.&lt;/li&gt;&#xA;&lt;li&gt;Use USB tethering instead of Wi-Fi hotspot if Wi-Fi passthrough fails or is blocked by the carrier.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Order of Operations&lt;/strong&gt;: Disabling and re-enabling the hotspot &lt;em&gt;after&lt;/em&gt; establishing the VPN connection can force the routing table to update and apply the tunnel correctly.&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;N/A (General networking troubleshooting pattern applicable to remote management of homelab infrastructure like Isengard (192.168.1.69) or Legolas (192.168.1.45) via mobile data).&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;Conversation dated 2025-12-13.&lt;/li&gt;&#xA;&lt;li&gt;Proton VPN mobile app behavior varies significantly by OS (iOS/Android) and mobile carrier; some devices natively block VPN over hotspot.&lt;/li&gt;&#xA;&lt;li&gt;This pattern is relevant for remote homelab administration or travel scenarios where mobile data serves as the primary internet source.&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;Does the specific mobile carrier or OS version in use support native VPN passthrough for hotspots without third-party apps?&lt;/li&gt;&#xA;&lt;li&gt;Are there specific Proton VPN mobile app settings that consistently bypass carrier restrictions for tethering?&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/unifi-express-vpn/&#34;&gt;UniFi Express VPN &amp;amp; Network Management&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://homelab.nbkelley.com/docs/networking/proxy-management/&#34;&gt;Proxy Management &amp;amp; Cloudflare Tunnels&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/130-PC Local IP While Hotspot with VPN.md&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;DeepSeek conversation: PC Local IP While Hotspot with VPN (2025-12-13)&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <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>SSH Host Key Management &amp; Troubleshooting</title>
      <link>https://homelab.nbkelley.com/docs/infrastructure/ssh_host_key_management/</link>
      <pubDate>Fri, 01 May 2026 00:00:00 +0000</pubDate>
      <guid>https://homelab.nbkelley.com/docs/infrastructure/ssh_host_key_management/</guid>
      <description>&lt;h1 id=&#34;ssh-host-key-management--troubleshooting&#34;&gt;SSH Host Key Management &amp;amp; Troubleshooting&lt;a class=&#34;anchor&#34; href=&#34;#ssh-host-key-management--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;Standard procedures for resolving SSH &lt;code&gt;REMOTE HOST IDENTIFICATION HAS CHANGED&lt;/code&gt; warnings, which occur when a host&amp;rsquo;s SSH fingerprint differs from the locally stored &lt;code&gt;known_hosts&lt;/code&gt; entry. This typically happens after a server reinstall, OS upgrade, or SSH key regeneration.&lt;/p&gt;&#xA;&lt;h2 id=&#34;key-decisions--commands&#34;&gt;Key Decisions &amp;amp; Commands&lt;a class=&#34;anchor&#34; href=&#34;#key-decisions--commands&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Verify Legitimacy&lt;/strong&gt;: Always confirm with a system administrator or check server logs if a key change is unexpected, as it could indicate a man-in-the-middle attack.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Remove Stale Keys&lt;/strong&gt;: Use &lt;code&gt;ssh-keygen -R &amp;lt;hostname&amp;gt;&lt;/code&gt; to safely remove the outdated entry from &lt;code&gt;~/.ssh/known_hosts&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Targeted Removal&lt;/strong&gt;: If the error specifies a line number (e.g., line 9), you can remove it via &lt;code&gt;sed -i &#39;&#39; &#39;9d&#39; ~/.ssh/known_hosts&lt;/code&gt; or manually edit the file.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Pre-populate Keys&lt;/strong&gt;: In managed environments, use &lt;code&gt;ssh-keyscan &amp;lt;host&amp;gt; &amp;gt;&amp;gt; ~/.ssh/known_hosts&lt;/code&gt; to automate key acceptance.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Security Best Practice&lt;/strong&gt;: Prefer certificate-based authentication in sensitive environments to bypass host key checking entirely.&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;Host Encountered&lt;/strong&gt;: &lt;code&gt;proxy&lt;/code&gt; (192.168.1.222, Nginx Proxy Manager)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;User Context&lt;/strong&gt;: Commands executed from macOS (&lt;code&gt;NK---Galadriel&lt;/code&gt;) as user &lt;code&gt;natekelley&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Fingerprint Example&lt;/strong&gt;: &lt;code&gt;SHA256:k5j8V356rpQXapznIs12MeBEWHfZYwfeicXdNNWFyOI&lt;/code&gt; (ED25519)&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;Initial troubleshooting documented on 2025-11-17. The &lt;code&gt;proxy&lt;/code&gt; host likely had its underlying VM/container rebuilt or its SSH configuration reset, triggering the warning.&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;Should SSH host keys be version-controlled or managed via a configuration management tool (e.g., Ansible) to prevent future mismatches?&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/proxy-management/&#34;&gt;Proxy Management &amp;amp; Cloudflare Tunnels&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;/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/111-Check and Install Git, Go, Dart Sass on Ubuntu.md&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;ingested/chats/104-SSH Host Key Change Warning and Fix.md&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;Historical DeepSeek conversation: SSH Host Key Change Warning and Fix (2025-11-17)&lt;/li&gt;&#xA;&lt;/ul&gt;</description>
    </item>
    <item>
      <title>UniFi Express VPN &amp; Network Management</title>
      <link>https://homelab.nbkelley.com/docs/networking/unifi-express-vpn/</link>
      <pubDate>Thu, 30 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://homelab.nbkelley.com/docs/networking/unifi-express-vpn/</guid>
      <description>&lt;h1 id=&#34;unifi-express-vpn--network-management&#34;&gt;UniFi Express VPN &amp;amp; Network Management&lt;a class=&#34;anchor&#34; href=&#34;#unifi-express-vpn--network-management&#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;ul&gt;&#xA;&lt;li&gt;Methodology for configuring ProtonVPN WireGuard on UniFi Express.&lt;/li&gt;&#xA;&lt;li&gt;Kill switch implementation to prevent IP/DNS leaks when the VPN drops.&lt;/li&gt;&#xA;&lt;li&gt;Best practices for managing Netgear managed switches via dedicated subnets and secure ports.&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;&lt;strong&gt;WireGuard Protocol&lt;/strong&gt;: Selected over OpenVPN for superior speed and efficiency on UniFi Express.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Kill Switch Pattern&lt;/strong&gt;: Default-deny WAN traffic; only allow forwarding through the &lt;code&gt;wg0&lt;/code&gt; interface.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Netgear Management&lt;/strong&gt;: Restrict switch web GUI access to a dedicated management VLAN/subnet using HTTPS.&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;VPN Client&lt;/strong&gt;: ProtonVPN (WireGuard)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Endpoint&lt;/strong&gt;: &lt;code&gt;us-123.protonvpn.net:51820&lt;/code&gt; (example high-speed server)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;ProtonVPN DNS&lt;/strong&gt;: &lt;code&gt;10.2.0.1&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Allowed IPs&lt;/strong&gt;: &lt;code&gt;0.0.0.0/0&lt;/code&gt; (full tunnel)&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Netgear Switch Management Ports&lt;/strong&gt;:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;HTTP: &lt;code&gt;80&lt;/code&gt; (insecure, avoid)&lt;/li&gt;&#xA;&lt;li&gt;HTTPS: &lt;code&gt;443&lt;/code&gt; (secure web GUI)&lt;/li&gt;&#xA;&lt;li&gt;SSH: &lt;code&gt;22&lt;/code&gt; (CLI access)&lt;/li&gt;&#xA;&lt;li&gt;SNMP: &lt;code&gt;161&lt;/code&gt; (monitoring)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&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;Conversation dated 2025-04-14.&lt;/li&gt;&#xA;&lt;li&gt;Gateway device referred to as UniFi Express (infrastructure list notes &amp;ldquo;UCG Express &amp;lsquo;Olorín&amp;rsquo; at 192.168.1.1&amp;rdquo;).&lt;/li&gt;&#xA;&lt;li&gt;Netgear MS308E is the managed switch in the homelab.&lt;/li&gt;&#xA;&lt;li&gt;Kill switch and DNS leak prevention rely on &lt;code&gt;iptables&lt;/code&gt;/&lt;code&gt;nftables&lt;/code&gt; or UniFi OS firewall rules.&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;Does UniFi Express support native WireGuard kill switch in the GUI, or is manual CLI firewall configuration required?&lt;/li&gt;&#xA;&lt;li&gt;Specific UniFi OS version and exact GUI paths for VPN/kill switch implementation.&lt;/li&gt;&#xA;&lt;li&gt;Whether split tunneling is needed for specific homelab services.&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/infrastructure/network/&#34;&gt;Network Infrastructure &amp;amp; VLANs&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/security/cloudflare_integration/&#34;&gt;Cloudflare Integration: SSL &amp;amp; DNS&lt;/a&gt;&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 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>Pavilion (AI PC) Configuration</title>
      <link>https://homelab.nbkelley.com/docs/machines/pavilion/</link>
      <pubDate>Sun, 26 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://homelab.nbkelley.com/docs/machines/pavilion/</guid>
      <description>&lt;h1 id=&#34;pavilion-ai-pc-configuration&#34;&gt;Pavilion (AI PC) Configuration&lt;a class=&#34;anchor&#34; href=&#34;#pavilion-ai-pc-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;The Pavilion machine uses a USB-based or specific Ethernet interface (&lt;code&gt;enx6c1f7197a66&lt;/code&gt;) that occasionally fails to bring the link up automatically on boot.&lt;/p&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;netplan-configuration&#34;&gt;Netplan Configuration&lt;a class=&#34;anchor&#34; href=&#34;#netplan-configuration&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Ensure &lt;code&gt;/etc/netplan/01-netcfg.yaml&lt;/code&gt; is correctly configured with the active interface name and permissions are set to &lt;code&gt;600&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;network&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;version&lt;/span&gt;: &lt;span style=&#34;color:#ae81ff&#34;&gt;2&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  &lt;span style=&#34;color:#f92672&#34;&gt;ethernets&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#f92672&#34;&gt;enx6c1f7197a66&lt;/span&gt;:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;      &lt;span style=&#34;color:#f92672&#34;&gt;dhcp4&lt;/span&gt;: &lt;span style=&#34;color:#66d9ef&#34;&gt;true&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Apply with:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo chmod &lt;span style=&#34;color:#ae81ff&#34;&gt;600&lt;/span&gt; /etc/netplan/01-netcfg.yaml&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;sudo netplan apply&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;boot-time-interface-fix&#34;&gt;Boot-time Interface Fix&lt;a class=&#34;anchor&#34; href=&#34;#boot-time-interface-fix&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;p&gt;If the interface remains DOWN after reboot, use a systemd service to force the link up.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Network Infrastructure &amp; VLANs</title>
      <link>https://homelab.nbkelley.com/docs/infrastructure/network/</link>
      <pubDate>Tue, 14 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://homelab.nbkelley.com/docs/infrastructure/network/</guid>
      <description>&lt;h1 id=&#34;network-infrastructure--vlans&#34;&gt;Network Infrastructure &amp;amp; VLANs&lt;a class=&#34;anchor&#34; href=&#34;#network-infrastructure--vlans&#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;The network uses a UniFi UCG Express with a multi-VLAN setup. A recent incident involving a VPN expiry caused a routing failure on specific VLANs due to policy-based routing (PBR) without a fallback mechanism.&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 Segmentation&lt;/strong&gt;:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Gandalf&lt;/strong&gt;: Server network (Always-on, stable, no VPN).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Mithrandir (VLAN 2)&lt;/strong&gt;: Client/AI network. Traffic is routed through ProtonVPN via WireGuard.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Harken (VLAN 3)&lt;/strong&gt;: General usage.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Tharkûn (DMZ)&lt;/strong&gt;: Restricted zone (DMZ $\rightarrow$ Internal is Blocked).&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Rivendell (VLAN 4)&lt;/strong&gt;: Unused.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;VPN Configuration&lt;/strong&gt;: ProtonVPN WireGuard Client 1 is used for Mithrand/VLAN 2. &lt;strong&gt;Critical&lt;/strong&gt;: Ensure &amp;ldquo;Block traffic if WireGuard is down&amp;rdquo; is enabled to prevent IP leaks.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;IP Management&lt;/strong&gt;: Use &lt;strong&gt;DHCP Reservations (Fixed IPs)&lt;/strong&gt; in the UniFi Controller rather than configuring static IPs on individual hosts to prevent port-forward breakage during DHCP lease renewals.&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;strong&gt;Known Fixed IPs (DHCP Reservations)&lt;/strong&gt;:&lt;/p&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>Proxmox Network Troubleshooting</title>
      <link>https://homelab.nbkelley.com/docs/infrastructure/proxmox_networking/</link>
      <pubDate>Tue, 25 Mar 2025 00:00:00 +0000</pubDate>
      <guid>https://homelab.nbkelley.com/docs/infrastructure/proxmox_networking/</guid>
      <description>&lt;h1 id=&#34;proxmox-network-troubleshooting&#34;&gt;Proxmox Network Troubleshooting&lt;a class=&#34;anchor&#34; href=&#34;#proxmox-network-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;Troubleshooting steps for resolving connectivity loss to Proxmox nodes, specifically addressing IP conflicts and subnet mismatches.&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;Static IP Reservation&lt;/strong&gt;: Proxmox nodes should always have a static IP (e.g., &lt;code&gt;192.168.0.69&lt;/code&gt;) that is &lt;strong&gt;excluded&lt;/strong&gt; from the OPNsense DHCP pool.&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;troubleshooting-workflow&#34;&gt;Troubleshooting Workflow&lt;a class=&#34;anchor&#34; href=&#34;#troubleshooting-workflow&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Verify Connectivity&lt;/strong&gt;: &lt;code&gt;ping 192.168.0.69&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Check Local Config&lt;/strong&gt;: Log in via console and verify &lt;code&gt;/etc/network/interfaces&lt;/code&gt;:&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-ini&#34; data-lang=&#34;ini&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;auto vmbr0&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#a6e22e&#34;&gt;iface vmbr0 inet static&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;address 192.168.0.69/24&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;gateway 192.168.0.1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &lt;span style=&#34;color:#a6e22e&#34;&gt;bridge-ports enp3s0&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Check for IP Conflicts&lt;/strong&gt;: Ensure no other device (via DHCP) has been assigned &lt;code&gt;192.168.0.69&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;ARP Cache&lt;/strong&gt;: Clear local ARP cache if IP conflicts are suspected: &lt;code&gt;arp -d 192.168.0.69&lt;/code&gt;.&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;Identified an issue where a DHCP client was assigned &lt;code&gt;192.168.0.69&lt;/code&gt;, conflicting with the Proxmox static IP.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Proxmox Network Configuration</title>
      <link>https://homelab.nbkelley.com/docs/infrastructure/proxmox_network/</link>
      <pubDate>Sun, 23 Mar 2025 00:00:00 +0000</pubDate>
      <guid>https://homelab.nbkelley.com/docs/infrastructure/proxmox_network/</guid>
      <description>&lt;h1 id=&#34;proxmox-network-configuration&#34;&gt;Proxmox Network Configuration&lt;a class=&#34;anchor&#34; href=&#34;#proxmox-network-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 manually updating the IP address and network interface settings on a Proxmox VE host via the command line.&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;p&gt;Network configuration is managed via the &lt;code&gt;/etc/network/interfaces&lt;/code&gt; file. When changing network parameters, the Linux bridge (&lt;code&gt;vmbr0&lt;/code&gt;) must be updated to point to the correct physical interface.&lt;/p&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;To modify the IP, gateway, or interface, edit the configuration file:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;nano /etc/network/interfaces&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Example of a static configuration for a bridge interface:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Troubleshooting Network Interface Changes</title>
      <link>https://homelab.nbkelley.com/docs/infrastructure/network_troubleshooting/</link>
      <pubDate>Sun, 23 Mar 2025 00:00:00 +0000</pubDate>
      <guid>https://homelab.nbkelley.com/docs/infrastructure/network_troubleshooting/</guid>
      <description>&lt;h1 id=&#34;troubleshooting-network-interface-changes&#34;&gt;Troubleshooting Network Interface Changes&lt;a class=&#34;anchor&#34; href=&#34;#troubleshooting-network-interface-changes&#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;When replacing a physical Network Interface Card (NIC)—for example, swapping a 2.5GbE card for a 1GbE card—the system will lose connectivity if the software configuration still references the old interface name.&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;p&gt;Connectivity loss after a hardware swap is usually due to a mismatch in the &lt;code&gt;bridge-ports&lt;/code&gt; setting within the network configuration. The new NIC will likely have a different kernel interface name (e.g., changing from &lt;code&gt;enp0s1&lt;/code&gt; to &lt;code&gt;enp0s2&lt;/code&gt;).&lt;/p&gt;</description>
    </item>
    <item>
      <title>Wi-Fi Performance Optimization (U7 Lite)</title>
      <link>https://homelab.nbkelley.com/docs/infrastructure/wifi_optimization/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://homelab.nbkelley.com/docs/infrastructure/wifi_optimization/</guid>
      <description>&lt;h1 id=&#34;wi-fi-performance-optimization-u7-lite&#34;&gt;Wi-Fi Performance Optimization (U7 Lite)&lt;a class=&#34;anchor&#34; href=&#34;#wi-fi-performance-optimization-u7-lite&#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;Diagnostic steps for addressing throughput discrepancies between wired (1 Gbps) and wireless (300 Mbps) connections on Wi-Fi 6/6E hardware.&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;Channel Width&lt;/strong&gt;: For high-speed Wi-Fi 6/6E, utilize &lt;strong&gt;80 MHz&lt;/strong&gt; or &lt;strong&gt;160 MHz&lt;/strong&gt; channel widths on the 5 GHz/6 GHz bands.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Band Steering&lt;/strong&gt;: Disable Band Steering if it causes frequent client roaming/drops.&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;optimization-steps&#34;&gt;Optimization Steps&lt;a class=&#34;anchor&#34; href=&#34;#optimization-steps&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;Verify Link Speed&lt;/strong&gt;: Check client-side PHY rates (e.g., &lt;code&gt;netsh wlan show interfaces&lt;/code&gt; on Windows) to ensure the client is connecting via 5 GHz/6 GHz.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;AP Settings (Unifi/Ubiquiti)&lt;/strong&gt;:&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;strong&gt;Mode&lt;/strong&gt;: Set to &lt;code&gt;HE (Wi-Fi 6)&lt;/code&gt; or &lt;code&gt;EHT (Wi-Fi 7)&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Channel Width&lt;/strong&gt;: Set to &lt;code&gt;80 MHz&lt;/code&gt; or &lt;code&gt;160 MHz&lt;/code&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Minimum Data Rate&lt;/strong&gt;: Set to &lt;code&gt;24 Mbps&lt;/code&gt; to disable legacy (802.11b/g) rates.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;Client-Side&lt;/strong&gt;: Disable Wi-Fi Power Saving mode on Linux clients:&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;iw dev wlan0 set power_save off&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&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;Addressed a specific case where a U7 Lite was capped at 300 Mbps due to potential client-side or channel width limitations.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
