add: gateway change
This commit is contained in:
@@ -38,6 +38,9 @@ if ($vhid !== $primary_vhid) {
|
|||||||
|
|
||||||
// Interface key to manage
|
// Interface key to manage
|
||||||
$ifkey = 'wan';
|
$ifkey = 'wan';
|
||||||
|
$real_if = get_real_interface('wan');
|
||||||
|
// Fallback gateway name
|
||||||
|
$gw_name = 'LAN_GW';
|
||||||
// Determine whether WAN interface is currently enabled
|
// Determine whether WAN interface is currently enabled
|
||||||
$ifkey_enabled = !empty($config['interfaces'][$ifkey]['enable']) ? true : false;
|
$ifkey_enabled = !empty($config['interfaces'][$ifkey]['enable']) ? true : false;
|
||||||
// Lock file to prevent interface flapping
|
// Lock file to prevent interface flapping
|
||||||
@@ -80,6 +83,18 @@ if ($type === "MASTER") {
|
|||||||
unset($config['interfaces'][$ifkey]['enable']);
|
unset($config['interfaces'][$ifkey]['enable']);
|
||||||
write_config("disable interface '$ifkey' due CARP event '$type'", false);
|
write_config("disable interface '$ifkey' due CARP event '$type'", false);
|
||||||
interface_configure(false, $ifkey, false, 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
|
// Create lock file
|
||||||
file_put_contents($lock_file, time());
|
file_put_contents($lock_file, time());
|
||||||
sleep($lock_default_age);
|
sleep($lock_default_age);
|
||||||
|
|||||||
Reference in New Issue
Block a user