From 49631bbabcfe3682e56e12bd2ec426b04cfec54d Mon Sep 17 00:00:00 2001 From: Gitea Actions Date: Sun, 24 May 2026 13:31:24 +0000 Subject: [PATCH] Auto-update blog content from Obsidian: 2026-05-24 13:31:24 --- ...update-dnsmasq-override-truenas-bridge.png | Bin 86959 -> 0 bytes ...s-network-bridge-switch-static-to-dhcp.png | Bin 47771 -> 0 bytes .../images/truenas-vm-add-nic.png | Bin 0 -> 54175 bytes .../index.md | 451 +++++++++--------- .../old.md | 298 ++++++++++++ .../temp.md | 316 ------------ 6 files changed, 535 insertions(+), 530 deletions(-) delete mode 100644 content/post/19-migrate-passive-opnsense-node-to-truenas/images/opnsense-update-dnsmasq-override-truenas-bridge.png delete mode 100644 content/post/19-migrate-passive-opnsense-node-to-truenas/images/truenas-network-bridge-switch-static-to-dhcp.png create mode 100644 content/post/19-migrate-passive-opnsense-node-to-truenas/images/truenas-vm-add-nic.png create mode 100644 content/post/19-migrate-passive-opnsense-node-to-truenas/old.md delete mode 100644 content/post/19-migrate-passive-opnsense-node-to-truenas/temp.md diff --git a/content/post/19-migrate-passive-opnsense-node-to-truenas/images/opnsense-update-dnsmasq-override-truenas-bridge.png b/content/post/19-migrate-passive-opnsense-node-to-truenas/images/opnsense-update-dnsmasq-override-truenas-bridge.png deleted file mode 100644 index 418b7b75ce3a49dc44d2059901130935b080efe2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 86959 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

pLIBDyk`w^^M;Drv|uFJq+P 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 jH2zCPv;XUEDrn*C64dWkzpzQ}0Dscr3Sy diff --git a/content/post/19-migrate-passive-opnsense-node-to-truenas/images/truenas-network-bridge-switch-static-to-dhcp.png b/content/post/19-migrate-passive-opnsense-node-to-truenas/images/truenas-network-bridge-switch-static-to-dhcp.png deleted file mode 100644 index 504d86ea40ee649c4bf775ff3b66e5afdfb8e884..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47771 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 KbI<>F@81AlnH~P!L~uX8WMpG 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 Mdv_ImaqP^$0T{vD-~a#s literal 0 HcmV?d00001 diff --git a/content/post/19-migrate-passive-opnsense-node-to-truenas/index.md b/content/post/19-migrate-passive-opnsense-node-to-truenas/index.md index f6849b5..141a43e 100644 --- a/content/post/19-migrate-passive-opnsense-node-to-truenas/index.md +++ b/content/post/19-migrate-passive-opnsense-node-to-truenas/index.md @@ -1,8 +1,8 @@ --- slug: migrate-passive-opnsense-node-to-truenas -title: Migrate my Passive OPNsense Node to TrueNAS +title: Migrate my Passive OPNsense HA Node to TrueNAS description: I migrated my passive OPNsense HA VM from Proxmox to TrueNAS to keep routing and firewalling available even when my Proxmox cluster is down. -date: 2026-03-12 +date: 2026-05-24 draft: true tags: - opnsense @@ -11,137 +11,129 @@ tags: categories: - homelab --- - ## Intro -My router is the heart of my homelab. When it’s down, everything is down: internet, DNS, VLAN firewall, reverse proxy… the whole stack. +My homelab network is handled by an OPNsense cluster composed of two VM nodes. Both of these VMs are running inside my Proxmox VE cluster. -I’m running an [[OPNsense]] HA cluster made of **two virtual machines** inside my [[Proxmox]] VE cluster. It works great… except for one annoying edge case: when the Proxmox cluster is down (rare, but it happens), I suddenly have **no router left**. +This setup works fine most of the time. The issue is more about the rare cases where the Proxmox cluster itself is down. When that happens, both OPNsense nodes are unavailable at the same time, which means I do not have any router left, so no network at all. -Recently I installed a [[TrueNAS]] server ([[Build my NAS with TrueNAS]]), and TrueNAS can host virtual machines. So I decided to move **only the passive OPNsense node** to TrueNAS, so that if Proxmox goes dark, I still have a node alive that can take over and keep the network running. +Recently, I installed a TrueNAS server in the lab. You can find the infos in that [post]({{< ref "post/18-create-nas-server-with-truenas" >}}). It is mainly here to act as a NAS, but it could also host virtual machines. That give me a good opportunity to improve the resilience of my network without changing the whole design. -The objective of this post is simple: explain what I migrated, why I did it, and what configuration choices made it work reliably. +💡 The idea is simple: keep the active OPNsense node on Proxmox, but move the passive node to TrueNAS. + +This way, if the Proxmox cluster goes down, the passive OPNsense node can still take over and keep the network alive. --- +## Preparing the OPNsense nodes -## The Plan: Split the HA Pair Across Two Hypervisors +Before moving anything, I want to make sure the OPNsense VMs could run with less memory. -The goal was: +The TrueNAS server does not have as much RAM available as the Proxmox cluster, so the first step is to reduce the memory allocation of the OPNsense nodes to the minimum. -- Keep the **active** OPNsense node running on Proxmox VE (where it already lives). -- Migrate the **passive** node to TrueNAS. -- Validate that the HA cluster still behaves properly (CARP VIPs, sync, services, failover). +I start with the passive node, `cerbere-head2`: -This way, a Proxmox outage no longer means “no routing at all”. +- Shut down the passive node +- Reduce its memory allocation from 4 to 2GB +- Restart it +- Verify the cluster health +- Swap the service to the passive node +- Run network checks + +Then I repeat the same operation on the active node, `cerbere-head1`. + +Doing it one node at a time allow me to keep the HA cluster healthy while validating that the reduced memory allocation is still enough for my setup. --- +## Preparing the TrueNAS network -## What I Used +The most important part of this migration is not the disk export or the VM creation. It is the network. -Quick overview of the pieces involved: +An OPNsense VM is not a simple server with one management interface. It needs access to several networks, including management, WAN, user networks, IoT, pfSync, DMZ and lab networks. -- **OPNsense**: https://opnsense.org/ -- **Proxmox VE** (current home of both OPNsense VMs): https://www.proxmox.com/en/proxmox-virtual-environment/overview -- **TrueNAS** (new home of the passive node, and storage to transfer the VM disk): https://www.truenas.com/ +On the TrueNAS side, I start from `System` > `Network` and add VLAN interfaces. + +The first one is the User VLAN: + +- Type: `VLAN` +- Name: `vlan13` +- Description: `User` +- Parent interface: `enp1s0` +- VLAN tag: `13` + +![Creating the User VLAN interface in TrueNAS](images/truenas-create-new-vlan-interface.png) + +I then add the other VLANs in the same way. + +TrueNAS does not apply network changes directly. It gives the option to test the changes first, with a short validation window. If the configuration is not confirmed in time, it rolls back automatically. + +This is really convenient when changing the network configuration of the machine you are currently connected to. + +![Confirming the VLAN interfaces before applying the network changes](images/truenas-network-confirm-add-vlans.png) + +For the management network, I created a bridge called `br1`. + +This bridge holds the TrueNAS management IP configuration instead of the physical interface `enp1s0`, because it also needs to be shared with the OPNsense VM. + +![Creating the management bridge for TrueNAS and the OPNsense VM](images/truenas-network-mgmt-bridge.png) + +After that, I remove the IP configuration from the physical interface and keep it on the bridge. + +![Network configuration before applying the bridge changes](images/truenas-network-changes-before-apply.png) + +I initially tried to use DHCP for the management bridge after updating the MAC address in Dnsmasq, but I finally decided to keep a static IP address for TrueNAS. After some network changes, DHCP gave another address from the pool, so static addressing was the safer and simpler option for this server. + +For the OPNsense VM, I create a bridge for each VLAN. For example, `br13` uses `vlan13`, I also move the description, like `User`, from the VLAN interface to the bridge for clarity. + +The final TrueNAS network configuration: + +![Creating one bridge per VLAN for the OPNsense VM](images/truenas-network-bridges-for-vlan.png) --- +## Creating a temporary export dataset -## Step 1 — Make OPNsense Lighter (RAM Reduction) +To move the passive OPNsense VM disk from Proxmox to TrueNAS, I first need a place to export the disk image. -TrueNAS on my side doesn’t have “infinite RAM”, so the first step was to reduce memory usage to something more reasonable. +In TrueNAS, I create a dataset named `disk`, then created an NFS share from it. -I reduced the memory allocation of both OPNsense nodes in Proxmox: +In the advanced options of the NFS share, I configured: -- Shutdown passive node `cerbere-head2` -- Reduce RAM, restart, verify HA -- Swap services to the passive temporarily and test networking -- Shutdown active node `cerbere-head1` -- Reduce RAM, restart, verify HA again +- Maproot user: `root` +- Authorized hosts: + - `192.168.88.21` + - `192.168.88.22` + - `192.168.88.23` -This kept the cluster healthy while ensuring the VM would fit comfortably on the NAS. +These are the Proxmox VE nodes allowed to mount the share. -(Details: [[Reduce the memory allocation of OPNsense nodes]]) +Later, I reorganized the dataset layout. I created a parent dataset called `storage/vm` and renamed the original export dataset from `storage/disk` to `storage/vm/files`. ---- +From the TrueNAS shell, this was done with ZFS commands: -## Step 2 — Prepare Networking on TrueNAS (Trunk + VLAN Strategy) +```zsh +sudo zfs create storage/vm +``` -To host an OPNsense VM properly, TrueNAS must be able to present the right networks to the VM (Mgmt, VLANs, etc.). In my case, I needed a trunk configuration. +```zsh +sudo zfs rename storage/disk storage/vm/files +``` -In TrueNAS, I went to `System` > `Network` and created VLAN interfaces (example with VLAN 13): +I did not manually create a zvol at that point. The VM creation process in TrueNAS handled the disk import and conversion. -![truenas-create-new-vlan-interface.png](images/truenas-create-new-vlan-interface.png) +## Exporting the VM disk from Proxmox -TrueNAS is nice here: changes aren’t applied blindly. You can **test** them and you get a rollback window, which is exactly what you want when you’re touching the network config remotely: +From the Proxmox VE web interface, I located the node hosting the passive OPNsense VM `cerbere-head2`. -![truenas-network-confirm-add-vlans.png](images/truenas-network-confirm-add-vlans.png) +It was running on `Zenith`. -### Management bridge - -I created a bridge `br1` for the management interface, shared between: - -- TrueNAS itself -- the future OPNsense VM - -And moved the IP configuration to the bridge: - -![truenas-network-mgmt-bridge.png](images/truenas-network-mgmt-bridge.png) - -Final view before apply: - -![truenas-network-changes-before-apply.png](images/truenas-network-changes-before-apply.png) - -### Static IP vs DHCP (and why I stayed static) - -I initially tried switching the management bridge to DHCP by updating the MAC address in OPNsense (Dnsmasq override): - -![opnsense-update-dnsmasq-override-truenas-bridge.png](images/opnsense-update-dnsmasq-override-truenas-bridge.png) - -Then I attempted to flip TrueNAS from static to DHCP: - -![truenas-network-bridge-switch-static-to-dhcp.png](images/truenas-network-bridge-switch-static-to-dhcp.png) - -But DHCP didn’t behave as I expected: it kept receiving random IPs from the pool. I suspected existing leases played a role. I even tried manually editing leases and restarting the service, but after another change, it still ended up with a random address again. - -In the end, I gave up and kept **a static IP** for TrueNAS. It’s boring, but it’s predictable. - -### The key decision: bridge VLANs (not just VLAN interfaces) - -This became important later: I originally planned to attach VLAN interfaces directly to the OPNsense VM, but it didn’t behave well. - -So I created **one bridge per VLAN** (ex: `br13` with `vlan13` as the only member), and used those bridges for the VM NICs: - -![truenas-network-bridges-for-vlan.png](images/truenas-network-bridges-for-vlan.png) - -That ended up being the difference between “split-brain chaos” and “stable HA”. - -(Full notes: [[Configure the trunk in TrueNAS]]) - ---- - -## Step 3 — Move the VM Disk From Proxmox to TrueNAS - -To migrate the VM cleanly, I exported the Proxmox disk to TrueNAS. - -### Create a dataset and export it via NFS - -I created a dataset (initially called `disk`) and exported it with NFS, restricting access to my three Proxmox nodes (by IP): - -- 192.168.88.21 -- 192.168.88.22 -- 192.168.88.23 - -(Notes: [[Create a new dataset in TrueNAS to export Proxmox VM disk]]) - -### Export the passive OPNsense disk - -On the Proxmox node hosting the passive VM (`cerbere-head2`), I mounted the NFS share: +I logged into that Proxmox node over SSH and mounted the NFS share from TrueNAS: ```bash mount granite.mgmt.vezpi.com:/mnt/storage/disk /mnt ``` -Then I shut down the VM from Proxmox (HA enabled, so I didn’t do it from inside OPNsense), and converted/exported the main disk (not the EFI disk) from Ceph RBD to a qcow2 file: +Then I shut down the VM from the Proxmox VE interface. I did not shut it down from inside OPNsense because the VM had HA enabled. + +Once the VM was stopped, I exported the main disk to qcow2. I did not export the EFI disk. ```bash qemu-img convert -f raw -O qcow2 -p \ @@ -149,150 +141,181 @@ qemu-img convert -f raw -O qcow2 -p \ /mnt/cerbere-head2.qcow2 ``` -The conversion took around a minute for a 20GB disk. +The conversion took about one minute for a 20 GB disk. -(Notes: [[Export the passive OPNsense VM disk from Proxmox]]) +At this point, the passive OPNsense disk was available on TrueNAS and ready to be imported into a new VM. -### Dataset reorg (cleaner layout) +## Recreating the OPNsense VM in TrueNAS -I reorganized datasets on TrueNAS side to something more VM-oriented: +The next step was to recreate the passive OPNsense VM in TrueNAS with parameters matching the original VM as closely as possible. -- created `storage/vm` -- renamed `storage/disk` to `storage/vm/files` +From the TrueNAS web interface, I went to the `Virtual Machines` section. -Commands used: +![Opening the Virtual Machines section in TrueNAS](images/truenas-vm-menu.png) -```bash -zfs list -sudo zfs create storage/vm -sudo zfs rename storage/disk storage/vm/files +I created a new VM with these settings. + +For the operating system: + +- Guest Operating System: `FreeBSD` +- Name: `cerberehead2` +- System Clock: `Local` +- Boot Method: `UEFI` +- Enable Secure Boot: disabled +- Enable Trusted Platform Module: disabled +- Shutdown Timeout: `90` +- Start on Boot: enabled +- Enable Display VNC: disabled + +The VM name does not use dashes because TrueNAS did not allow them there. + +For CPU and memory: + +- Virtual CPUs: `1` +- Cores: `2` +- Threads: `1` +- CPU Mode: `Custom` +- CPU Model: `qemu64` +- Memory Size: `2 GiB` + +For the disk: + +- Create new disk image +- Import Image: enabled +- Image source: `/mnt/storage/vm/files/cerbere-head2.qcow2` +- Disk Type: `VirtIO` +- Storage Location: `storage/vm` +- Size: `20 GiB` + +For the first network interface: + +- Adapter Type: `VirtIO` +- MAC Address: keep the proposed one +- Attach NIC: `br1: Mgmt` + +I skipped installation media and GPU configuration, then confirmed the summary. + +![Summary before creating the OPNsense VM in TrueNAS](images/truenas-vm-create-new-summary.png) + +After confirmation, TrueNAS converted the imported qcow2 image into a zvol. + +![TrueNAS converting the imported disk image into a zvol](images/truenas-vm-disk-image-conversion.png) + +Once the VM was created, I opened the VM details and added the remaining NICs. + +![Accessing the VM devices in TrueNAS](images/truenas-vm-details.png) + +For each additional NIC, I used VirtIO as the adapter type and attached it to the corresponding bridge. + +For the WAN NIC, I copied the old MAC address because I use a single WAN IP address trick. I also incremented the digit in the MAC address for the following NICs to keep the order clear. + +![Adding an additional VirtIO network interface to the OPNsense VM](images/truenas-vm-add-nic.png) + +After moving the VM NICs to the VLAN bridges, the passive OPNsense VM started correctly in TrueNAS. + +![OPNsense booting successfully as a TrueNAS VM](images/truenas-vm-opnsense-start-shell.png) + +## Validating the HA cluster + +Once the passive node was running on TrueNAS, I needed to validate that the OPNsense HA cluster was still behaving correctly. + +I started with basic checks on the passive node: + +- Management interface ping from the bastion: `192.168.88.3` +- User interface ping from a laptop: `192.168.13.3` +- IoT interface ping: `192.168.37.3` +- pfSync ping from the other node: `192.168.44.2` +- DMZ interface ping: `192.168.55.3` +- Lab interface ping from DockerVM: `192.168.66.3` + +I also checked that the node was accessible over SSH from Termius using `192.168.13.3`, and that the web interface was reachable at: + +```text +https://192.168.13.3:4443 ``` -(Notes: [[Reorganize the dataset in TrueNAS]]) +Then I validated the OPNsense HA state: ---- +- CARP VIP status must be `BACKUP` on all VIPs +- HA status page must show that the active node can log in to the passive node +- Services must be running as expected +- HA service synchronization must work +- Firmware update checks must be accessible -## Step 4 — Create the OPNsense VM on TrueNAS (Import Disk + Rebuild NICs) +From the active node, I used the HA status page and forced a full synchronization with `Synchronize and reconfigure all`. -Now the fun part: recreating the VM on TrueNAS with the same “spirit” as the Proxmox VM. +## Switchover tests -From `Virtual Machines`: +Before testing failover, I started an SSH session to DockerVM to confirm that firewall states were preserved across nodes. I also started a ping from a laptop to `192.168.37.120`. -![truenas-vm-menu.png](images/truenas-vm-menu.png) +For the switchover test, I gracefully enabled maintenance mode on the master node. -### VM settings I used +The passive node became `MASTER`, and I validated the important services: -I created a new VM with: - -**Operating System** -- Guest: FreeBSD -- Name: `cerberehead2` (TrueNAS doesn’t like dashes) -- Boot: UEFI -- Secure Boot: Disabled -- TPM: Disabled -- Start on Boot: Enabled -- VNC: Disabled - -**CPU & Memory** -- Virtual CPUs: 1 -- Cores: 2 -- Threads: 1 -- CPU Mode: Custom -- CPU Model: `qemu64` -- Memory: 2 GiB - -**Disk** -- Import image enabled -- Source: `/mnt/storage/vm/files/cerbere-head2.qcow2` -- Disk Type: VirtIO -- Location: `storage/vm` -- Size: 20 GiB - -**Network** -- Adapter: VirtIO -- Attached to `br1` (Mgmt) -- MAC: kept the generated one here - -Summary screen: - -![truenas-vm-create-new-summary.png](images/truenas-vm-create-new-summary.png) - -After saving, TrueNAS converted the imported image into a Zvol: - -![truenas-vm-disk-image-conversion.png](images/truenas-vm-disk-image-conversion.png) - -### Adding the additional NICs - -After the VM was created, I added the additional NICs in the VM device list: - -![truenas-vm-details.png](images/truenas-vm-details.png) - -At first, I attached VLAN interfaces directly and started the VM… and instantly broke my network (great success). - -The VM itself booted fine though, and seeing OPNsense come up cleanly on TrueNAS was a good sign: - -![truenas-vm-opnsense-start-shell.png](images/truenas-vm-opnsense-start-shell.png) - -But HA-wise, it was a mess: split-brain symptoms, with the TrueNAS-hosted node thinking it was MASTER on almost everything except Mgmt. - -The fix was the VLAN bridging approach mentioned earlier: once I switched the VM NICs to attach to **bridges (`br13`, `br20`, etc.) instead of VLAN interfaces**, the cluster came back to a healthy state. - -Second try: stable. ✅ - -(Notes: [[Create the OPNsense VM in TrueNAS]]) - ---- - -## Step 5 — Validate HA: CARP, Sync, Services, Switchover and Failover - -Once everything was in place, I validated the new setup with a proper checklist. I wanted to be sure the cluster worked exactly as before. - -### Basic checks - -- Ping each interface as relevant (Mgmt/User/IoT/pfSync/DMZ/Lab) -- SSH access -- Web UI access -- CARP VIP status must be `BACKUP` on the passive node -- HA status (active must be able to log into passive) -- Services state + “Synchronize and reconfigure all” -- Check updates availability (`System` > `Firmware` > `Check for updates`) - -### Switchover test (graceful) - -I started: -- a SSH session to DockerVM (to check state keeping) -- a ping to an IoT host from a laptop - -Then tested: -- CARP role switch -- inter-VLAN routing -- WAN ping to `8.8.8.8` -- firewall state (SSH session stays alive) -- DNS resolution (external + internal) -- Caddy reverse proxy + layer4 proxy checks +- Extra VLAN routing with ping to `192.168.37.120` +- WAN access with ping to `8.8.8.8` +- Firewall states by keeping the SSH session alive +- External DNS resolution with `host redhat.com` +- Internal DNS resolution with `host SLZB-06M.mgmt.vezpi.com` +- Access to a random internet page +- Caddy reverse proxy +- Caddy layer4 proxy - Wireguard access from outside -- mDNS discovery (printer visibility) +- mDNS by checking if the printer showed up -✅ Switchover successful. +The switchover was successful. -### Failover test (hard) +I also tested the switchback. It required entering maintenance mode and leaving it again to return to the expected state, but the cluster behavior was validated. -Then I forced power off of the active node and repeated the same functional tests. +## Failover tests -✅ Failover successful. +After the graceful switchover test, I tested a more direct failover scenario by forcing a poweroff of the active node. -At the end: restarted the active VM, and the HA pair returned to normal operation. +I repeated the same validation checklist: -One note: QEMU Guest Agent doesn’t bring value here because TrueNAS doesn’t implement it as a hypervisor (I still left it installed since it’s harmless). +- Extra VLAN routing +- WAN access +- Firewall states +- DNS resolution +- Caddy reverse proxy +- Caddy layer4 proxy +- Wireguard +- mDNS -(Full checklist and validation steps: [[Validate the new OPNsense VM and cluster state]]) +For DNS, I tested an external domain with: ---- +```text +host microsoft.com +``` + +And I also checked the internal host: + +```text +host SLZB-06M.mgmt.vezpi.com +``` + +The failover was successful. + +Finally, I restarted the active OPNsense VM. + +At that point, the OPNsense HA cluster was operational again, with the passive node now running on TrueNAS instead of Proxmox. + +## A note about QEMU Guest Agent + +The OPNsense VM already had the QEMU Guest Agent installed. + +In this setup, it does not seem useful because TrueNAS does not have it implemented as a hypervisor feature in the way I would need here. I kept it installed anyway, because it is harmless. ## Conclusion -This project solved a real weakness in my homelab: my “highly available” router cluster was still depending on a single platform (Proxmox). By moving only the **passive OPNsense node** to **TrueNAS**, I now have a router that can survive a full Proxmox outage. +This migration was a small but important improvement for my homelab. -The biggest takeaway for me was networking on TrueNAS: attaching VLAN interfaces directly to the VM was not reliable in my setup, but bridging each VLAN (`br13`, `br20`, etc.) made the HA behavior stable and predictable. +Before, both OPNsense nodes depended on the Proxmox VE cluster. If the cluster was down, my whole network routing layer was down with it. -Next step is to monitor the cluster for a few days before doing the cleanup of the migration on the Proxmox side. \ No newline at end of file +Now, the active node still runs on Proxmox, but the passive node runs on TrueNAS. This gives me a better separation between the virtualization cluster and the network failover layer. + +The most important part of the project was the TrueNAS networking model. Creating VLAN interfaces was not enough for the VM use case. The working design was to create one bridge per VLAN and attach the OPNsense VM NICs to those bridges. + +After validating CARP, HA sync, routing, DNS, Caddy, Wireguard, mDNS and firewall states, the cluster is working as expected. + +The passive OPNsense node is now outside of Proxmox, and that is exactly what I wanted: keeping network abilities even when the Proxmox VE cluster is unavailable. \ No newline at end of file diff --git a/content/post/19-migrate-passive-opnsense-node-to-truenas/old.md b/content/post/19-migrate-passive-opnsense-node-to-truenas/old.md new file mode 100644 index 0000000..d3e8351 --- /dev/null +++ b/content/post/19-migrate-passive-opnsense-node-to-truenas/old.md @@ -0,0 +1,298 @@ +--- +slug: migrate-passive-opnsense-node-to-truenas +title: +description: +date: 2026-03-12 +draft: true +tags: + - opnsense + - truenas + - proxmox +categories: + - homelab +--- + +## Intro + +My router is the heart of my homelab. When it’s down, everything is down: internet, DNS, VLAN firewall, reverse proxy… the whole stack. + +I’m running an [[OPNsense]] HA cluster made of **two virtual machines** inside my [[Proxmox]] VE cluster. It works great… except for one annoying edge case: when the Proxmox cluster is down (rare, but it happens), I suddenly have **no router left**. + +Recently I installed a [[TrueNAS]] server ([[Build my NAS with TrueNAS]]), and TrueNAS can host virtual machines. So I decided to move **only the passive OPNsense node** to TrueNAS, so that if Proxmox goes dark, I still have a node alive that can take over and keep the network running. + +The objective of this post is simple: explain what I migrated, why I did it, and what configuration choices made it work reliably. + +--- + +## The Plan: Split the HA Pair Across Two Hypervisors + +The goal was: + +- Keep the **active** OPNsense node running on Proxmox VE (where it already lives). +- Migrate the **passive** node to TrueNAS. +- Validate that the HA cluster still behaves properly (CARP VIPs, sync, services, failover). + +This way, a Proxmox outage no longer means “no routing at all”. + +--- + +## What I Used + +Quick overview of the pieces involved: + +- **OPNsense**: https://opnsense.org/ +- **Proxmox VE** (current home of both OPNsense VMs): https://www.proxmox.com/en/proxmox-virtual-environment/overview +- **TrueNAS** (new home of the passive node, and storage to transfer the VM disk): https://www.truenas.com/ + +--- + +## Step 1 — Make OPNsense Lighter (RAM Reduction) + +TrueNAS on my side doesn’t have “infinite RAM”, so the first step was to reduce memory usage to something more reasonable. + +I reduced the memory allocation of both OPNsense nodes in Proxmox: + +- Shutdown passive node `cerbere-head2` +- Reduce RAM, restart, verify HA +- Swap services to the passive temporarily and test networking +- Shutdown active node `cerbere-head1` +- Reduce RAM, restart, verify HA again + +This kept the cluster healthy while ensuring the VM would fit comfortably on the NAS. + +(Details: [[Reduce the memory allocation of OPNsense nodes]]) + +--- + +## Step 2 — Prepare Networking on TrueNAS (Trunk + VLAN Strategy) + +To host an OPNsense VM properly, TrueNAS must be able to present the right networks to the VM (Mgmt, VLANs, etc.). In my case, I needed a trunk configuration. + +In TrueNAS, I went to `System` > `Network` and created VLAN interfaces (example with VLAN 13): + +![[truenas-create-new-vlan-interface.png]] + +TrueNAS is nice here: changes aren’t applied blindly. You can **test** them and you get a rollback window, which is exactly what you want when you’re touching the network config remotely: + +![[truenas-network-confirm-add-vlans.png]] + +### Management bridge + +I created a bridge `br1` for the management interface, shared between: + +- TrueNAS itself +- the future OPNsense VM + +And moved the IP configuration to the bridge: + +![[truenas-network-mgmt-bridge.png]] + +Final view before apply: + +![[truenas-network-changes-before-apply.png]] + +### Static IP vs DHCP (and why I stayed static) + +I initially tried switching the management bridge to DHCP by updating the MAC address in OPNsense (Dnsmasq override): + +![[opnsense-update-dnsmasq-override-truenas-bridge.png]] + +Then I attempted to flip TrueNAS from static to DHCP: + +![[truenas-network-bridge-switch-static-to-dhcp.png]] + +But DHCP didn’t behave as I expected: it kept receiving random IPs from the pool. I suspected existing leases played a role. I even tried manually editing leases and restarting the service, but after another change, it still ended up with a random address again. + +In the end, I gave up and kept **a static IP** for TrueNAS. It’s boring, but it’s predictable. + +### The key decision: bridge VLANs (not just VLAN interfaces) + +This became important later: I originally planned to attach VLAN interfaces directly to the OPNsense VM, but it didn’t behave well. + +So I created **one bridge per VLAN** (ex: `br13` with `vlan13` as the only member), and used those bridges for the VM NICs: + +![[truenas-network-bridges-for-vlan.png]] + +That ended up being the difference between “split-brain chaos” and “stable HA”. + +(Full notes: [[Configure the trunk in TrueNAS]]) + +--- + +## Step 3 — Move the VM Disk From Proxmox to TrueNAS + +To migrate the VM cleanly, I exported the Proxmox disk to TrueNAS. + +### Create a dataset and export it via NFS + +I created a dataset (initially called `disk`) and exported it with NFS, restricting access to my three Proxmox nodes (by IP): + +- 192.168.88.21 +- 192.168.88.22 +- 192.168.88.23 + +(Notes: [[Create a new dataset in TrueNAS to export Proxmox VM disk]]) + +### Export the passive OPNsense disk + +On the Proxmox node hosting the passive VM (`cerbere-head2`), I mounted the NFS share: + +```bash +mount granite.mgmt.vezpi.com:/mnt/storage/disk /mnt +``` + +Then I shut down the VM from Proxmox (HA enabled, so I didn’t do it from inside OPNsense), and converted/exported the main disk (not the EFI disk) from Ceph RBD to a qcow2 file: + +```bash +qemu-img convert -f raw -O qcow2 -p \ + rbd:ceph-workload/vm-123-disk-1 \ + /mnt/cerbere-head2.qcow2 +``` + +The conversion took around a minute for a 20GB disk. + +(Notes: [[Export the passive OPNsense VM disk from Proxmox]]) + +### Dataset reorg (cleaner layout) + +I reorganized datasets on TrueNAS side to something more VM-oriented: + +- created `storage/vm` +- renamed `storage/disk` to `storage/vm/files` + +Commands used: + +```bash +zfs list +sudo zfs create storage/vm +sudo zfs rename storage/disk storage/vm/files +``` + +(Notes: [[Reorganize the dataset in TrueNAS]]) + +--- + +## Step 4 — Create the OPNsense VM on TrueNAS (Import Disk + Rebuild NICs) + +Now the fun part: recreating the VM on TrueNAS with the same “spirit” as the Proxmox VM. + +From `Virtual Machines`: + +![[truenas-vm-menu.png]] + +### VM settings I used + +I created a new VM with: + +**Operating System** +- Guest: FreeBSD +- Name: `cerberehead2` (TrueNAS doesn’t like dashes) +- Boot: UEFI +- Secure Boot: Disabled +- TPM: Disabled +- Start on Boot: Enabled +- VNC: Disabled + +**CPU & Memory** +- Virtual CPUs: 1 +- Cores: 2 +- Threads: 1 +- CPU Mode: Custom +- CPU Model: `qemu64` +- Memory: 2 GiB + +**Disk** +- Import image enabled +- Source: `/mnt/storage/vm/files/cerbere-head2.qcow2` +- Disk Type: VirtIO +- Location: `storage/vm` +- Size: 20 GiB + +**Network** +- Adapter: VirtIO +- Attached to `br1` (Mgmt) +- MAC: kept the generated one here + +Summary screen: + +![[truenas-vm-create-new-summary.png]] + +After saving, TrueNAS converted the imported image into a Zvol: + +![[truenas-vm-disk-image-conversion.png]] + +### Adding the additional NICs + +After the VM was created, I added the additional NICs in the VM device list: + +![[truenas-vm-details.png]] + +At first, I attached VLAN interfaces directly and started the VM… and instantly broke my network (great success). + +The VM itself booted fine though, and seeing OPNsense come up cleanly on TrueNAS was a good sign: + +![[truenas-vm-opnsense-start-shell.png]] + +But HA-wise, it was a mess: split-brain symptoms, with the TrueNAS-hosted node thinking it was MASTER on almost everything except Mgmt. + +The fix was the VLAN bridging approach mentioned earlier: once I switched the VM NICs to attach to **bridges (`br13`, `br20`, etc.) instead of VLAN interfaces**, the cluster came back to a healthy state. + +Second try: stable. ✅ + +(Notes: [[Create the OPNsense VM in TrueNAS]]) + +--- + +## Step 5 — Validate HA: CARP, Sync, Services, Switchover and Failover + +Once everything was in place, I validated the new setup with a proper checklist. I wanted to be sure the cluster worked exactly as before. + +### Basic checks + +- Ping each interface as relevant (Mgmt/User/IoT/pfSync/DMZ/Lab) +- SSH access +- Web UI access +- CARP VIP status must be `BACKUP` on the passive node +- HA status (active must be able to log into passive) +- Services state + “Synchronize and reconfigure all” +- Check updates availability (`System` > `Firmware` > `Check for updates`) + +### Switchover test (graceful) + +I started: +- a SSH session to DockerVM (to check state keeping) +- a ping to an IoT host from a laptop + +Then tested: +- CARP role switch +- inter-VLAN routing +- WAN ping to `8.8.8.8` +- firewall state (SSH session stays alive) +- DNS resolution (external + internal) +- Caddy reverse proxy + layer4 proxy checks +- Wireguard access from outside +- mDNS discovery (printer visibility) + +✅ Switchover successful. + +### Failover test (hard) + +Then I forced power off of the active node and repeated the same functional tests. + +✅ Failover successful. + +At the end: restarted the active VM, and the HA pair returned to normal operation. + +One note: QEMU Guest Agent doesn’t bring value here because TrueNAS doesn’t implement it as a hypervisor (I still left it installed since it’s harmless). + +(Full checklist and validation steps: [[Validate the new OPNsense VM and cluster state]]) + +--- + +## Conclusion + +This project solved a real weakness in my homelab: my “highly available” router cluster was still depending on a single platform (Proxmox). By moving only the **passive OPNsense node** to **TrueNAS**, I now have a router that can survive a full Proxmox outage. + +The biggest takeaway for me was networking on TrueNAS: attaching VLAN interfaces directly to the VM was not reliable in my setup, but bridging each VLAN (`br13`, `br20`, etc.) made the HA behavior stable and predictable. + +Next step is to monitor the cluster for a few days before doing the cleanup of the migration on the Proxmox side. \ No newline at end of file diff --git a/content/post/19-migrate-passive-opnsense-node-to-truenas/temp.md b/content/post/19-migrate-passive-opnsense-node-to-truenas/temp.md deleted file mode 100644 index 6905aff..0000000 --- a/content/post/19-migrate-passive-opnsense-node-to-truenas/temp.md +++ /dev/null @@ -1,316 +0,0 @@ - - -## Intro - -My homelab network is handled by an OPNsense cluster composed of two VM nodes. Both of these VMs were running inside my Proxmox VE cluster. - -This setup works fine most of the time. The issue is more about the rare cases where the Proxmox cluster itself is down. When that happens, both OPNsense nodes are unavailable at the same time, which means I do not have any router left. - -Recently, I installed a TrueNAS server in the lab. It is mainly here to act as a NAS, but it can also host virtual machines. That gave me a good opportunity to improve the resilience of my network without changing the whole design. - -The idea was simple: keep the active OPNsense node on Proxmox, but move the passive node to TrueNAS. - -This way, if the Proxmox cluster goes down, the passive OPNsense node can still take over and keep the network alive. - ---- -## Preparing the OPNsense nodes - -Before moving anything, I wanted to make sure the OPNsense VMs could run with less memory. - -The TrueNAS server does not have as much RAM available as the Proxmox cluster, so the first step was to reduce the memory allocation of the OPNsense nodes to the minimum I wanted to use. - -I started with the passive node, `cerbere-head2`: - -- Shut down the passive node -- Reduced its memory allocation -- Restarted it -- Verified the cluster health -- Swapped the service to the passive node -- Ran network checks - -Then I repeated the same operation on the active node, `cerbere-head1`. - -Doing it one node at a time allowed me to keep the HA cluster healthy while validating that the reduced memory allocation was still enough for my setup. - -When I later recreated the VM in TrueNAS, I used 2 GiB of memory for the passive node. - -## Preparing the TrueNAS network - -The most important part of this migration was not the disk export or the VM creation. It was the network. - -An OPNsense VM is not a simple server with one management interface. It needs access to several networks, including management, WAN, user networks, IoT, pfSync, DMZ and lab networks. - -On the TrueNAS side, I started from `System` > `Network` and added VLAN interfaces. - -The first one was the User VLAN: - -- Type: `VLAN` -- Name: `vlan13` -- Description: `User` -- Parent interface: `enp1s0` -- VLAN tag: `13` - -![[truenas-create-new-vlan-interface.png]]Creating the User VLAN interface in TrueNAS - -I then added the other VLANs in the same way. - -TrueNAS does not apply network changes directly. It gives the option to test the changes first, with a short validation window. If the configuration is not confirmed in time, it rolls back automatically. - -This is really convenient when changing the network configuration of the machine you are currently connected to. - -![[truenas-network-confirm-add-vlans.png]]Confirming the VLAN interfaces before applying the network changes - -For the management network, I created a bridge called `br1`. - -This bridge holds the TrueNAS management IP configuration instead of the physical interface `enp1s0`, because it also needs to be shared with the OPNsense VM. - -![[truenas-network-mgmt-bridge.png]]Creating the management bridge for TrueNAS and the OPNsense VM - -After that, I removed the IP configuration from the physical interface and kept it on the bridge. - -![[truenas-network-changes-before-apply.png]]Network configuration before applying the bridge changes - -I initially tried to use DHCP for the management bridge after updating the MAC address in Dnsmasq, but I finally decided to keep a static IP address for TrueNAS. After some network changes, DHCP gave another address from the pool, so static addressing was the safer and simpler option for this server. - -The final TrueNAS network configuration had the management bridge and the VLAN interfaces. - -![[truenas-network-network-trunk-config.png]]TrueNAS network configuration with VLAN interfaces and the management bridge - -One important lesson from this migration is that attaching VLAN interfaces directly to the VM was not the final design I kept. - -For the OPNsense VM, I created a bridge for each VLAN and attached the VM NICs to these bridges instead. For example, `br13` uses `vlan13` as its only member and has no IP address. I also moved the description, like `User`, from the VLAN interface to the bridge for clarity. - -![[truenas-network-bridges-for-vlan.png]]Creating one bridge per VLAN for the OPNsense VM - -This bridge-per-VLAN design is the configuration that worked correctly for the OPNsense VM in TrueNAS. - -## Creating a temporary export dataset - -To move the passive OPNsense VM disk from Proxmox to TrueNAS, I first needed a place to export the disk image. - -In TrueNAS, I created a dataset named `disk`, then created an NFS share from it. - -In the advanced options of the NFS share, I configured: - -- Maproot user: `root` -- Authorized hosts: - - `192.168.88.21` - - `192.168.88.22` - - `192.168.88.23` - -These are the Proxmox VE nodes allowed to mount the share. - -Later, I reorganized the dataset layout. I created a parent dataset called `storage/vm` and renamed the original export dataset from `storage/disk` to `storage/vm/files`. - -From the TrueNAS shell, this was done with ZFS commands: - -```zsh -sudo zfs create storage/vm -``` - -```zsh -sudo zfs rename storage/disk storage/vm/files -``` - -I did not manually create a zvol at that point. The VM creation process in TrueNAS handled the disk import and conversion. - -## Exporting the VM disk from Proxmox - -From the Proxmox VE web interface, I located the node hosting the passive OPNsense VM `cerbere-head2`. - -It was running on `Zenith`. - -I logged into that Proxmox node over SSH and mounted the NFS share from TrueNAS: - -```bash -mount granite.mgmt.vezpi.com:/mnt/storage/disk /mnt -``` - -Then I shut down the VM from the Proxmox VE interface. I did not shut it down from inside OPNsense because the VM had HA enabled. - -Once the VM was stopped, I exported the main disk to qcow2. I did not export the EFI disk. - -```bash -qemu-img convert -f raw -O qcow2 -p \ - rbd:ceph-workload/vm-123-disk-1 \ - /mnt/cerbere-head2.qcow2 -``` - -The conversion took about one minute for a 20 GB disk. - -At this point, the passive OPNsense disk was available on TrueNAS and ready to be imported into a new VM. - -## Recreating the OPNsense VM in TrueNAS - -The next step was to recreate the passive OPNsense VM in TrueNAS with parameters matching the original VM as closely as possible. - -From the TrueNAS web interface, I went to the `Virtual Machines` section. - -![[truenas-vm-menu.png]]Opening the Virtual Machines section in TrueNAS - -I created a new VM with these settings. - -For the operating system: - -- Guest Operating System: `FreeBSD` -- Name: `cerberehead2` -- System Clock: `Local` -- Boot Method: `UEFI` -- Enable Secure Boot: disabled -- Enable Trusted Platform Module: disabled -- Shutdown Timeout: `90` -- Start on Boot: enabled -- Enable Display VNC: disabled - -The VM name does not use dashes because TrueNAS did not allow them there. - -For CPU and memory: - -- Virtual CPUs: `1` -- Cores: `2` -- Threads: `1` -- CPU Mode: `Custom` -- CPU Model: `qemu64` -- Memory Size: `2 GiB` - -For the disk: - -- Create new disk image -- Import Image: enabled -- Image source: `/mnt/storage/vm/files/cerbere-head2.qcow2` -- Disk Type: `VirtIO` -- Storage Location: `storage/vm` -- Size: `20 GiB` - -For the first network interface: - -- Adapter Type: `VirtIO` -- MAC Address: keep the proposed one -- Attach NIC: `br1: Mgmt` - -I skipped installation media and GPU configuration, then confirmed the summary. - -![[truenas-vm-create-new-summary.png]]Summary before creating the OPNsense VM in TrueNAS - -After confirmation, TrueNAS converted the imported qcow2 image into a zvol. - -![[truenas-vm-disk-image-conversion.png]]TrueNAS converting the imported disk image into a zvol - -Once the VM was created, I opened the VM details and added the remaining NICs. - -![[truenas-vm-details.png]]Accessing the VM devices in TrueNAS - -For each additional NIC, I used VirtIO as the adapter type and attached it to the corresponding bridge. - -For the WAN NIC, I copied the old MAC address because I use a single WAN IP address trick. I also incremented the digit in the MAC address for the following NICs to keep the order clear. - -![[truenas-vm-add-nic.png]]Adding an additional VirtIO network interface to the OPNsense VM - -After moving the VM NICs to the VLAN bridges, the passive OPNsense VM started correctly in TrueNAS. - -![[truenas-vm-opnsense-start-shell.png]]OPNsense booting successfully as a TrueNAS VM - -## Validating the HA cluster - -Once the passive node was running on TrueNAS, I needed to validate that the OPNsense HA cluster was still behaving correctly. - -I started with basic checks on the passive node: - -- Management interface ping from the bastion: `192.168.88.3` -- User interface ping from a laptop: `192.168.13.3` -- IoT interface ping: `192.168.37.3` -- pfSync ping from the other node: `192.168.44.2` -- DMZ interface ping: `192.168.55.3` -- Lab interface ping from DockerVM: `192.168.66.3` - -I also checked that the node was accessible over SSH from Termius using `192.168.13.3`, and that the web interface was reachable at: - -```text -https://192.168.13.3:4443 -``` - -Then I validated the OPNsense HA state: - -- CARP VIP status must be `BACKUP` on all VIPs -- HA status page must show that the active node can log in to the passive node -- Services must be running as expected -- HA service synchronization must work -- Firmware update checks must be accessible - -From the active node, I used the HA status page and forced a full synchronization with `Synchronize and reconfigure all`. - -## Switchover tests - -Before testing failover, I started an SSH session to DockerVM to confirm that firewall states were preserved across nodes. I also started a ping from a laptop to `192.168.37.120`. - -For the switchover test, I gracefully enabled maintenance mode on the master node. - -The passive node became `MASTER`, and I validated the important services: - -- Extra VLAN routing with ping to `192.168.37.120` -- WAN access with ping to `8.8.8.8` -- Firewall states by keeping the SSH session alive -- External DNS resolution with `host redhat.com` -- Internal DNS resolution with `host SLZB-06M.mgmt.vezpi.com` -- Access to a random internet page -- Caddy reverse proxy -- Caddy layer4 proxy -- Wireguard access from outside -- mDNS by checking if the printer showed up - -The switchover was successful. - -I also tested the switchback. It required entering maintenance mode and leaving it again to return to the expected state, but the cluster behavior was validated. - -## Failover tests - -After the graceful switchover test, I tested a more direct failover scenario by forcing a poweroff of the active node. - -I repeated the same validation checklist: - -- Extra VLAN routing -- WAN access -- Firewall states -- DNS resolution -- Caddy reverse proxy -- Caddy layer4 proxy -- Wireguard -- mDNS - -For DNS, I tested an external domain with: - -```text -host microsoft.com -``` - -And I also checked the internal host: - -```text -host SLZB-06M.mgmt.vezpi.com -``` - -The failover was successful. - -Finally, I restarted the active OPNsense VM. - -At that point, the OPNsense HA cluster was operational again, with the passive node now running on TrueNAS instead of Proxmox. - -## A note about QEMU Guest Agent - -The OPNsense VM already had the QEMU Guest Agent installed. - -In this setup, it does not seem useful because TrueNAS does not have it implemented as a hypervisor feature in the way I would need here. I kept it installed anyway, because it is harmless. - -## Conclusion - -This migration was a small but important improvement for my homelab. - -Before, both OPNsense nodes depended on the Proxmox VE cluster. If the cluster was down, my whole network routing layer was down with it. - -Now, the active node still runs on Proxmox, but the passive node runs on TrueNAS. This gives me a better separation between the virtualization cluster and the network failover layer. - -The most important part of the project was the TrueNAS networking model. Creating VLAN interfaces was not enough for the VM use case. The working design was to create one bridge per VLAN and attach the OPNsense VM NICs to those bridges. - -After validating CARP, HA sync, routing, DNS, Caddy, Wireguard, mDNS and firewall states, the cluster is working as expected. - -The passive OPNsense node is now outside of Proxmox, and that is exactly what I wanted: keeping network abilities even when the Proxmox VE cluster is unavailable. \ No newline at end of file