From 14889058a9de039b7a4facc0ee39e42092150bdf Mon Sep 17 00:00:00 2001 From: Vezpi Date: Fri, 12 Jun 2026 23:03:53 +0000 Subject: [PATCH] add: gateway change --- opnsense/10-wan | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/opnsense/10-wan b/opnsense/10-wan index 0373bb1..97dd098 100644 --- a/opnsense/10-wan +++ b/opnsense/10-wan @@ -38,6 +38,9 @@ if ($vhid !== $primary_vhid) { // Interface key to manage $ifkey = 'wan'; +$real_if = get_real_interface('wan'); +// Fallback gateway name +$gw_name = 'LAN_GW'; // Determine whether WAN interface is currently enabled $ifkey_enabled = !empty($config['interfaces'][$ifkey]['enable']) ? true : false; // Lock file to prevent interface flapping @@ -80,6 +83,18 @@ if ($type === "MASTER") { unset($config['interfaces'][$ifkey]['enable']); write_config("disable interface '$ifkey' due CARP event '$type'", false); interface_configure(false, $ifkey, false, false); + // Remove WAN default gateway + mwexec("/sbin/route delete default"); + foreach ($config['OPNsense']['Gateways']['gateway_item'] as $gw) { + if ($gw['name'] === $gw_name) { + $gw_ip = $gw['gateway']; + break; + } + } + // Shutdown WAN interface + mwexec("/sbin/ifconfig {$real_if} down") + // Add fallback default gateway + mwexec("/sbin/route add default {$gw_ip}"); // Create lock file file_put_contents($lock_file, time()); sleep($lock_default_age);