From 999285801d62ab1a5f01b43f97a1e4ff3f0b276c Mon Sep 17 00:00:00 2001 From: shats Date: Thu, 22 Jan 2026 19:44:50 +0700 Subject: [PATCH] refactor(NetworkConfigManager): update GRE tunnel creation to use ipsec-secret for IPSec configuration; streamline code generation for improved clarity --- frontend/src/NetworkConfigManager.jsx | 23 ++++------------------- 1 file changed, 4 insertions(+), 19 deletions(-) diff --git a/frontend/src/NetworkConfigManager.jsx b/frontend/src/NetworkConfigManager.jsx index 0aa2c8a..1036046 100644 --- a/frontend/src/NetworkConfigManager.jsx +++ b/frontend/src/NetworkConfigManager.jsx @@ -1129,7 +1129,7 @@ function NetworkConfigManager() { code += `# Local IP: ${iface.localIp}\n`; code += `# Remote IP: ${iface.remoteIp}\n`; - // Для GRE туннелей - создаем туннель, опционально с IPSec + // Для GRE туннелей - создаем туннель, опционально с IPSec через ipsec-secret if (iface.type === 'GRE') { const remoteServerIp = iface.server2Info?.ip || iface.server2Name; const localServerIp = server.ip || serverName; @@ -1141,24 +1141,9 @@ function NetworkConfigManager() { iface.ipsecPassword.trim() !== ''; if (hasIpsecPassword) { - // GRE туннель с IPSec - code += `# Создание GRE туннеля с IPSec\n`; - code += `/interface gre add name="${iface.interfaceName}" remote-address=${remoteServerIp} local-address=${localServerIp} keepalive=10s\n`; - code += '\n'; - - // Создаем IPSec peer - code += `# Настройка IPSec peer для ${iface.interfaceName}\n`; - code += `/ip ipsec peer add name="${iface.interfaceName}-peer" address=${remoteServerIp}/32 local-address=${localServerIp} exchange-mode=ike2 passive=no\n`; - code += '\n'; - - // Создаем IPSec identity - code += `# Настройка IPSec identity для ${iface.interfaceName}\n`; - code += `/ip ipsec identity add peer="${iface.interfaceName}-peer" auth-method=pre-shared-key secret="${iface.ipsecPassword}"\n`; - code += '\n'; - - // Создаем IPSec policy - code += `# Настройка IPSec policy для ${iface.interfaceName}\n`; - code += `/ip ipsec policy add src-address=${iface.localIp}/30 dst-address=${iface.remoteIp}/30 sa-src-address=${localServerIp} sa-dst-address=${remoteServerIp} peer="${iface.interfaceName}-peer" tunnel=yes\n`; + // GRE туннель с IPSec через ipsec-secret (автоматическая настройка) + code += `# Создание GRE туннеля с IPSec (автоматическая настройка через ipsec-secret)\n`; + code += `/interface gre add name="${iface.interfaceName}" remote-address=${remoteServerIp} local-address=${localServerIp} keepalive=10s ipsec-secret="${iface.ipsecPassword}"\n`; code += '\n'; } else { // GRE туннель без IPSec (голый GRE)