Virtualizing PFSense With The Seeed Studio Odyssey
# Article: Transforming the Odyssey Board into a Router and Home Server Using Proxmox and pfSense
## Introduction to the Odyssey Board
In today's video, we are exploring the potential of a small yet powerful device known as the **Odyssey** from Seed Studio. This single-board computer (SBC) is not new to the market but continues to impress with its capabilities. Designed in Singapore, the Odyssey features an Intel J4125 quad-core CPU clocked at 2 GHz, paired with 8 GB of LPDDR4 memory. It boasts a wide array of I/O options, including dual gigabit Ethernet ports, onboard Bluetooth and Wi-Fi, two M.2 slots, a SATA port, a USB-C 3.1 port, HDMI, and even Raspberry Pi-compatible GPIO pins along with an integrated ARM co-processor for Arduino compatibility.
The version reviewed comes with a 128 GB m.2 SATA SSD and Seed Studio's Re or RE computer case—a sleek aluminum enclosure with an acrylic top cover. This setup makes the Odyssey a versatile Workhorse capable of handling multiple tasks, which is both its strength and limitation since it can sometimes feel underutilized due to its wide range of features.
## Hardware Overview and Performance
The Odyssey is marketed as a Mini PC option and comes pre-installed with Windows 10. Initial testing showed decent performance for basic tasks, including smooth handling of 1080p 60fps YouTube playback with minimal frame drops. In cinebench R15, it achieved a three-run average of 166, which is impressive when compared to older CPUs like the Intel J2900 and AMD A65200. Despite its modest power consumption of about 16.5 watts under load, the J4125 CPU offers better performance than these predecessors.
## Initial Thoughts on Using pfSense
While the Odyssey performs well with Windows, this video explores alternative uses beyond running a traditional operating system. The focus is on setting up the device as a router using **pfSense**, an open-source firewall and router solution known for its web-based management interface and enterprise-grade features.
The user acknowledges that installing pfSense on the Odyssey is straightforward, thanks to Seed Studio's provided guide. However, they express some reservations about this approach. The device costs $270 and only offers two gigabit Ethernet ports, which limits its functionality as a router. They suggest alternatives, such as using a used small-form-factor (SFF) PC with an added Ethernet PCIe card or opting for a dedicated Netgate device that includes a third Ethernet interface.
## Alternative Options for a Router Setup
The discussion then shifts to the idea of repurposing the Odyssey beyond just running pfSense. The goal is to leverage its quad-core CPU, 8 GB RAM, and storage options to host additional services like Home Assistant, a NAS (Network-Attached Storage), or a WireGuard server. This approach aims to maximize the device's potential while addressing its limitations as a standalone router.
## The Decision to Use Proxmox with pfSense and Debian VMs
To achieve this multi-service setup, the user decides to install **Proxmox**, a popular open-source hypervisor, on the Odyssey. With Proxmox, they plan to run two virtual machines (VMs): one for pfSense as the router and another for Debian Linux, which will host Docker containers for services like Home Assistant.
The user emphasizes that this process is not without challenges. Running a router in a VM can be unstable, with issues like loss of internet access during reboots or updates. Additionally, having only two Ethernet ports limits flexibility when assigning network interfaces to VMs.
## Detailed Setup Process (Proxmox Installation, Network Configuration, pfSense VM Setup)
1. **Proxmox Installation:**
- The user starts by downloading the latest Proxmox VE ISO and installing it on a USB drive.
- Booting from this drive initiates an easy-to-follow installation process. After completing the setup, Proxmox boots up, displaying the web UI address.
- Navigating to the UI reveals the active node (the Odyssey), with network settings showing the two physical NICs and a Linux Bridge.
2. **Network Configuration:**
- To free up the onboard NICs for pfSense, the user plugs in a USB network adapter for Proxmox control and the Debian VM.
- They disable the default network device in the pfSense VM settings to ensure it uses only the physical NICs passed through via PCIe passthrough.
3. **Enabling IOMMU:**
- Before adding PCIe devices, IOMMU (Input/Output Memory Management Unit) must be enabled. This involves enabling virtualization and VTD (Virtualization Technology for Directed I/O) in the BIOS.
- After rebooting, the user verifies that IOMMU is functioning properly.
4. **pfSense VM Setup:**
- The latest pfSense ISO is downloaded and uploaded to Proxmox's local storage.
- A new VM is created with two CPU cores, 3 GB of RAM, and the pfSense ISO attached as the boot device.
- Under hardware settings, the two PCIe NICs are added to the VM.
5. **pfSense Installation:**
- Upon starting the VM, the pfSense installation process begins. After setup, the user assigns LAN and WAN interfaces, configures a subnet (192.168.100.1/24), and enables DHCP.
- Testing shows successful internet access for devices connected to the LAN port.
## Setting Up the Second Virtual Machine (Debian for Docker Containers)
The second VM is set up using a Debian ISO, configured with four virtual CPU cores and 3 GB of RAM. After installation, Docker and Portainer are installed to manage containers. Home Assistant is then deployed using a Linux server.io image.
Testing confirms that the setup works as expected, with the router providing internet access to devices on the LAN network.
## Conclusion and Future Plans
The user concludes that while the current setup works, there are areas for improvement. They plan to revisit the project to add more network interfaces, eliminate the USB adapter, and replace their existing router once satisfied with the new configuration.
They express enthusiasm about exploring Proxmox virtualization further and highlight the potential of the Odyssey board when utilized effectively. The user thanks Seed Studio for providing the device and encourages viewers to explore their products.
## Final Thoughts
This article provides a detailed walkthrough of transforming the Odyssey into a functional router and home server using Proxmox and pfSense. While challenges exist, such as network configuration complexities and potential VM instability, the setup offers a cost-effective and powerful solution for those willing to experiment with virtualization and open-source software.