From 67d23c90ac45a29894b562f72a0e530e06f1669a Mon Sep 17 00:00:00 2001 From: Gitea Actions Date: Sat, 15 Nov 2025 22:19:47 +0000 Subject: [PATCH] Auto-update blog content from Obsidian: 2025-11-15 22:19:47 --- ...ation-opnsense-proxmox-highly-available.md | 70 ++++++++++++++++++ static/img/Pasted_image_20251115225054.png | Bin 0 -> 48102 bytes 2 files changed, 70 insertions(+) create mode 100644 static/img/Pasted_image_20251115225054.png diff --git a/content/post/15-migration-opnsense-proxmox-highly-available.md b/content/post/15-migration-opnsense-proxmox-highly-available.md index 3138e0f..7e191f8 100644 --- a/content/post/15-migration-opnsense-proxmox-highly-available.md +++ b/content/post/15-migration-opnsense-proxmox-highly-available.md @@ -222,6 +222,67 @@ No DNS, it is always DNS no gateway for backup node -> rework script Solution: Enable master node as gateway when backup +New script +```php +#!/usr/local/bin/php +@ +if (!preg_match('/^[a-z0-9_]+@\S+$/i', $subsystem)) { + log_error("Malformed subsystem argument: '{$subsystem}'."); + exit(0); +} + +// Interface key to manage +$ifkey = 'wan'; +// Determine whether WAN interface is currently enabled +$ifkey_enabled = !empty($config['interfaces'][$ifkey]['enable']) ? true : false; + +// MASTER event +if ($type === "MASTER") { + // Enable WAN only if it's currently disabled + if (!$ifkey_enabled) { + log_msg("CARP event: switching to '$type', enabling interface '$ifkey'.", LOG_WARNING); + $config['interfaces'][$ifkey]['enable'] = '1'; + write_config("enable interface '$ifkey' due CARP event '$type'", false); + interface_configure(false, $ifkey, false, false); + } else { + log_msg("CARP event: already '$type' for interface '$ifkey', nothing to do."); + } + +// BACKUP event +} else { + // Disable WAN only if it's currently enabled + if ($ifkey_enabled) { + log_msg("CARP event: switching to '$type', disabling interface '$ifkey'.", LOG_WARNING); + unset($config['interfaces'][$ifkey]['enable']); + write_config("disable interface '$ifkey' due CARP event '$type'", false); + interface_configure(false, $ifkey, false, false); + } else { + log_msg("CARP event: already '$type' for interface '$ifkey', nothing to do."); + } +} +``` ### Packets Drop Problem while pinging bastion from user vlan, some pings are lost (9%) @@ -244,6 +305,15 @@ Warning rtsold vtnet1 is disabled. in the logs (OPNsense) Error dhcp6c transmit failed: Can't assign requested address +## Last Failover + +Everything is fine. +When entering CARP maintenance mode, no packet drop is observed. +For a failover, only one packet is dropped + +![Pasted_image_20251115225054.png](img/Pasted_image_20251115225054.png) + + ## Clean Up diff --git a/static/img/Pasted_image_20251115225054.png b/static/img/Pasted_image_20251115225054.png new file mode 100644 index 0000000000000000000000000000000000000000..894d308a4cd22d1d1d5d45ab087bbb063b8a209a GIT binary patch literal 48102 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