feat(NetworkConfigManager): add support for local-address parameter in GRE tunnel configuration for home routers, improving network setup clarity
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 1m44s
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 1m44s
This commit is contained in:
@@ -1513,6 +1513,12 @@ function NetworkConfigManager() {
|
||||
// Используем DNS домен для remote-address, если он есть, иначе IP
|
||||
const remoteAddress = iface.server2Info?.dns || iface.server2Info?.ip || iface.server2Name;
|
||||
|
||||
// Проверяем, является ли текущий сервер home роутером
|
||||
const isHomeRouter = server.type === 'home';
|
||||
|
||||
// Если это home роутер, добавляем local-address с IP адресом этого сервера
|
||||
const localAddressParam = isHomeRouter && server.ip ? ` local-address=${server.ip}` : '';
|
||||
|
||||
// Проверяем наличие пароля: ipsecPasswordId должен быть не пустым и пароль должен быть загружен
|
||||
const hasIpsecPassword = iface.ipsecPasswordId &&
|
||||
iface.ipsecPasswordId.trim() !== '' &&
|
||||
@@ -1522,14 +1528,20 @@ function NetworkConfigManager() {
|
||||
if (hasIpsecPassword) {
|
||||
// GRE туннель с IPSec через ipsec-secret (автоматическая настройка)
|
||||
code += `# Создание GRE туннеля с IPSec (автоматическая настройка через ipsec-secret)\n`;
|
||||
if (isHomeRouter) {
|
||||
code += `# Home роутер: используется local-address=${server.ip}\n`;
|
||||
}
|
||||
const mtuParam = iface.mtu ? ` mtu=${iface.mtu}` : '';
|
||||
code += `/interface gre add name="${iface.interfaceName}" remote-address=${remoteAddress} keepalive=10s allow-fast-path=no ipsec-secret="${iface.ipsecPassword}"${mtuParam}\n`;
|
||||
code += `/interface gre add name="${iface.interfaceName}" remote-address=${remoteAddress}${localAddressParam} keepalive=10s allow-fast-path=no ipsec-secret="${iface.ipsecPassword}"${mtuParam}\n`;
|
||||
code += '\n';
|
||||
} else {
|
||||
// GRE туннель без IPSec (голый GRE)
|
||||
code += `# Создание GRE туннеля (без IPSec)\n`;
|
||||
if (isHomeRouter) {
|
||||
code += `# Home роутер: используется local-address=${server.ip}\n`;
|
||||
}
|
||||
const mtuParam = iface.mtu ? ` mtu=${iface.mtu}` : '';
|
||||
code += `/interface gre add name="${iface.interfaceName}" remote-address=${remoteAddress} keepalive=10s allow-fast-path=no${mtuParam}\n`;
|
||||
code += `/interface gre add name="${iface.interfaceName}" remote-address=${remoteAddress}${localAddressParam} keepalive=10s allow-fast-path=no${mtuParam}\n`;
|
||||
code += '\n';
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user