<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Homelab on Frank&#39;s Blog</title>
    <link>https://frankblogs.com/tags/homelab/</link>
    <description>Recent content in Homelab on Frank&#39;s Blog</description>
    <generator>Hugo -- 0.150.0</generator>
    <language>en-us</language>
    <lastBuildDate>Wed, 01 Oct 2025 21:30:18 +0800</lastBuildDate>
    <atom:link href="https://frankblogs.com/tags/homelab/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Proxmox VE Initiation: Taming the Virtualization Hypervisor</title>
      <link>https://frankblogs.com/posts/article-4/</link>
      <pubDate>Wed, 01 Oct 2025 21:30:18 +0800</pubDate>
      <guid>https://frankblogs.com/posts/article-4/</guid>
      <description>With my N100 soft router hardware assembled, the next step was installing Proxmox VE (PVE). This post covers the installation process and my first major challenge: configuring PVE networking without losing access.</description>
      <content:encoded><![CDATA[<p>The N100 hardware for my new soft router/home server was assembled and ready. The grand vision involved virtualization, allowing this single machine to run my router, NAS, and potentially other services simultaneously. The chosen foundation for this was <strong>Proxmox Virtual Environment (PVE)</strong>, a powerful, open-source hypervisor based on Debian Linux.</p>
<h2 id="installing-pve-the-first-hurdle">Installing PVE: The First Hurdle</h2>
<p>Installing PVE itself is relatively straightforward, similar to installing any Linux distribution:</p>
<ol>
<li><strong>Create Installation Media:</strong> Download the PVE ISO image. On my Mac, I used <strong>Balena Etcher</strong> to write the ISO to a USB drive. My first attempt failed – turns out the old USB drive I grabbed was faulty. A newer drive worked perfectly.</li>
<li><strong>Boot from USB:</strong> Connect a monitor and keyboard to the N100 box, plug in the USB drive, and boot into the BIOS/UEFI settings (usually by pressing DEL or F2 during startup). Set the USB drive as the primary boot device.</li>
<li><strong>PVE Installer:</strong> Follow the graphical installer prompts. Key settings during installation:
<ul>
<li>Target Hard Disk: Select the Fanxiang NVMe SSD.</li>
<li>Location/Timezone: Set appropriately.</li>
<li>Hostname: Set to something memorable, like <code>pve.local</code>.</li>
<li>Network Configuration: <strong>Crucially</strong>, assign a <strong>static IP address</strong> for PVE&rsquo;s management interface (e.g., <code>10.0.0.2</code>), along with the gateway (<code>10.0.0.1</code> - my eventual router VM&rsquo;s address) and DNS servers. I chose one of the four physical ports (e.g., <code>enp1s0</code>) for this initial management access.</li>
</ul>
</li>
</ol>
<p>The installation completed smoothly, and PVE rebooted. I could access the command line directly on the N100, and more importantly, access the web UI from my Mac at <code>https://10.0.0.2:8006</code>. Stage one complete!</p>
<h2 id="the-networking-nightmare-reconfiguring-for-vms">The Networking Nightmare: Reconfiguring for VMs</h2>
<p>PVE&rsquo;s default network setup uses one physical port (<code>enp1s0</code> in my case) solely for its own management. However, to allow my <em>virtual machines</em> (like the router VM) to connect to both the internet (WAN) and my home network (LAN), I needed to create <strong>Linux Bridges</strong>.</p>
<p>My plan:</p>
<ul>
<li><code>vmbr0</code>: Use a different physical port (e.g., <code>enp2s0</code>) for the <strong>WAN</strong> connection (connecting to my ISP modem).</li>
<li><code>vmbr1</code>: Use the remaining two physical ports (e.g., <code>enp3s0</code>, <code>enp4s0</code>) bridged together for the <strong>LAN</strong> connection (connecting to my home switch).</li>
<li><strong>Crucially:</strong> Move PVE&rsquo;s <em>own</em> management interface from the physical port <code>enp1s0</code> onto the newly created <strong>LAN bridge (<code>vmbr1</code>)</strong>. This way, I could manage PVE from any computer on my home network using the <code>10.0.0.2</code> address, freeing up <code>enp1s0</code> perhaps for other uses.</li>
</ul>
<p>This reconfiguration is done by editing the <code>/etc/network/interfaces</code> file directly via the PVE console (or SSH). I carefully modified the file, creating the bridge definitions and changing the management interface settings.</p>
<p>I applied the changes (<code>systemctl restart networking</code> or a reboot). And then&hellip; disaster.</p>
<p>I could no longer access the PVE web UI at <code>10.0.0.2</code>. Pings failed. It seemed I had completely locked myself out.</p>
<h2 id="troubleshooting-in-the-dark">Troubleshooting in the Dark</h2>
<p>Panic set in. Had I made a typo in the config file? Did the bridge fail to come up? I had to go back to the &ldquo;direct connection&rdquo; method: plug a monitor and keyboard directly into the N100 box.</p>
<p>Logging into the PVE console, I ran <code>ip a</code> to check the network interface status. The output revealed the problem: <code>vmbr1</code> (my intended LAN bridge and new management interface) <strong>had no IP address</strong>. My configuration changes hadn&rsquo;t been applied correctly, or something had gone wrong during the network restart.</p>
<p>Carefully re-examining <code>/etc/network/interfaces</code> line by line, I eventually spotted the error – perhaps a typo, a missing <code>auto vmbr1</code>, or incorrect bridge port settings. I corrected the file using the <code>nano</code> editor (a bit friendlier than <code>vi</code> for quick edits).</p>
<p>After saving the corrected file and restarting the networking service again (<code>systemctl restart networking</code>), I ran <code>ip a</code> one more time. Success! <code>vmbr1</code> now showed the correct <code>10.0.0.2</code> address.</p>
<p>Back on my Mac, I refreshed <code>https://10.0.0.2:8006</code>, and the Proxmox login screen reappeared. Access restored!</p>
<p>This harrowing experience was my first real taste of configuring Linux networking and the importance of meticulousness when editing critical system files. With the PVE host networking finally stable, I was ready for the main event: creating the virtual machine that would become my new home router.</p>
]]></content:encoded>
    </item>
    <item>
      <title>Entering the World of x86 Soft Routers: Choosing the N100 Beast</title>
      <link>https://frankblogs.com/posts/article-3/</link>
      <pubDate>Thu, 25 Sep 2025 21:21:37 +0800</pubDate>
      <guid>https://frankblogs.com/posts/article-3/</guid>
      <description>After failed attempts with consumer routers, I decided to take the plunge into the world of x86 soft routers. This post covers the decision process, comparing platforms like N5105 and N100, and my final hardware selection.</description>
      <content:encoded><![CDATA[<p>My journey to achieve reliable home networking, particularly stable IPv6, had hit roadblocks with both my ISP&rsquo;s modem and a powerful-but-faulty Netgear R8000 running OpenWrt. It became clear that consumer-grade hardware, even with custom firmware, might not offer the raw power, flexibility, and reliability I craved. It was time to explore the next level: <strong>x86 Soft Routers</strong>.</p>
<h2 id="what-is-a-soft-router">What is a Soft Router?</h2>
<p>Unlike traditional &ldquo;hard&rdquo; routers with proprietary hardware and software, a soft router is essentially a small, dedicated PC running a specialized router operating system (like OpenWrt, pfSense, OPNsense, or RouterOS). The &ldquo;x86&rdquo; refers to the standard PC processor architecture (Intel/AMD), offering significantly more power and flexibility than the ARM or MIPS chips found in most consumer routers.</p>
<h2 id="the-allure-of-x86">The Allure of x86</h2>
<p>The potential benefits were immense:</p>
<ul>
<li><strong>Raw Performance:</strong> Capable of handling gigabit+ speeds with complex firewall rules, VPNs, and traffic shaping without breaking a sweat.</li>
<li><strong>Flexibility:</strong> Run virtually any router OS or even standard Linux distributions.</li>
<li><strong>Expandability:</strong> Add more RAM, faster storage, or even specialized network cards.</li>
<li><strong>Virtualization:</strong> This was the game-changer. An x86 platform could potentially run <em>multiple</em> operating systems simultaneously using a hypervisor like Proxmox VE (PVE). I could have my router, a NAS, a media server, and more, all running on one efficient box.</li>
</ul>
<h2 id="choosing-the-platform-n5105j4125-vs-n100">Choosing the Platform: N5105/J4125 vs. N100</h2>
<p>My research focused on popular low-power x86 chips commonly used in mini PCs and soft routers:</p>
<ul>
<li><strong>Older Generation (Jasper Lake N5105, Celeron J4125):</strong> Widely available, often cheaper, proven platforms. Decent performance for routing and light server tasks.</li>
<li><strong>New Generation (Alder Lake-N N100):</strong> Significant performance uplift (especially single-core, crucial for routing), much better integrated graphics (useful for PVE console/light desktop tasks), generally more power-efficient, supports faster DDR5 RAM. Often comes paired with newer <strong>Intel i226-V 2.5GbE</strong> network controllers, known for better driver support and stability compared to the sometimes-problematic Realtek chips found in cheaper units.</li>
</ul>
<p>Given the relatively small price difference for new units and the significant performance and efficiency gains, the <strong>Intel N100</strong> quickly became the clear winner for future-proofing.</p>
<h2 id="navigating-the-hardware-maze">Navigating the Hardware Maze</h2>
<p>Choosing the N100 platform opened up a dizzying array of options, mostly from Chinese manufacturers like Beikong (Topton/Kingnovy), CWWK, etc., often sold as barebones systems (no RAM/SSD). Key considerations:</p>
<ul>
<li><strong>Ports:</strong> How many? What speed? The standard was 4x 2.5GbE Intel i226-V ports, perfect for high-speed LAN and future ISP upgrades. Some offered 2x 2.5GbE + 2x 10GbE SFP+ (fiber) – tempting, but overkill and more expensive for my current needs.</li>
<li><strong>Cooling:</strong> Passive (fanless) is preferred for silent operation, requiring a well-designed chassis.</li>
<li><strong>RAM/SSD:</strong> DDR5 SO-DIMM and NVMe M.2 slots were standard.</li>
<li><strong>Price:</strong> Barebones N100 boxes with 4x 2.5GbE ports were readily available.</li>
<li><strong>Used Market:</strong> While tempting for cost savings, diagnosing potential issues on used hardware felt risky after my R8000 experience.</li>
</ul>
<h2 id="my-final-choice-beikong-h30w-n100">My Final Choice: Beikong H30W (N100)</h2>
<p>After much comparison, I settled on a brand new <strong>Beikong H30W N100 barebones</strong> unit featuring:</p>
<ul>
<li>Intel N100 Processor</li>
<li>4x Intel i226-V 2.5GbE ports</li>
<li>Passive cooling chassis</li>
<li>DDR5 SO-DIMM slot</li>
<li>NVMe M.2 slot</li>
</ul>
<p>To complete the build with maximum cost-effectiveness:</p>
<ul>
<li><strong>RAM:</strong> I salvaged a compatible 16GB DDR5 stick from an old laptop – a huge saving!</li>
<li><strong>SSD:</strong> I purchased a new, budget-friendly but well-regarded <strong>Fanxiang S500 Pro 256GB NVMe SSD</strong>. Plenty of space for PVE and multiple VMs.</li>
</ul>
<h2 id="the-grand-vision-virtualization">The Grand Vision: Virtualization</h2>
<p>With the hardware assembled, the real excitement began. This N100 wasn&rsquo;t just going to be a router. It was going to be the heart of my home lab. The plan: install <strong>Proxmox VE (PVE)</strong> as the bare-metal hypervisor, then create virtual machines for:</p>
<ol>
<li><strong>OpenWrt/iStoreOS:</strong> My primary router, firewall, and network manager.</li>
<li><strong>OpenMediaVault (OMV):</strong> A NAS for file storage and backups.</li>
<li><strong>Future Possibilities:</strong> Home Assistant, AdGuard Home, a web server, maybe even AI experiments?</li>
</ol>
<p>This N100 box represented a convergence of all my needs and aspirations. The hardware was ready. Now came the software challenge: installing and taming the Proxmox hypervisor.</p>
]]></content:encoded>
    </item>
  </channel>
</rss>
