refactor(NetworkConfigManager): update GRE tunnel creation to use ipsec-secret for IPSec configuration; streamline code generation for improved clarity
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 1m39s

This commit is contained in:
2026-01-22 19:44:50 +07:00
parent cb0c370c10
commit 999285801d
+4 -19
View File
@@ -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)