diff --git a/frontend/src/NetworkConfigManager.jsx b/frontend/src/NetworkConfigManager.jsx index 9ce166c..7d3fba6 100644 --- a/frontend/src/NetworkConfigManager.jsx +++ b/frontend/src/NetworkConfigManager.jsx @@ -660,9 +660,15 @@ function NetworkConfigManager() { } const newGateways = []; - // Для проверки конфликтов используем только IP из существующих gateways + // Для проверки конфликтов используем только IP из существующих gateways ТОГО ЖЕ СЕРВЕРА // Рекурсивные gateways могут использовать те же IP, что и интерфейсы - это нормально - const usedGatewayIps = new Set(config.gateways.map(g => g.ip).filter(Boolean)); + // Но на одном сервере не должно быть двух gateways с одинаковым IP + const usedGatewayIps = new Set( + config.gateways + .filter(g => g.serverId === templateServerId) // Только gateways того же сервера + .map(g => g.ip) + .filter(Boolean) + ); // Создаем маппинг между ID из шаблона и реальными ID после создания const templateIdToRealId = new Map(); @@ -693,10 +699,11 @@ function NetworkConfigManager() { ip = ip.trim(); - // Проверяем конфликты только с другими gateways + // Проверяем конфликты только с другими gateways ТОГО ЖЕ СЕРВЕРА // Для рекурсивных gateways разрешено использовать IP, которые уже используются в интерфейсах + // Но на одном сервере не должно быть двух gateways с одинаковым IP if (usedGatewayIps.has(ip)) { - notify.warning(`IP ${ip} уже используется в другом gateway, пропущен`); + notify.warning(`IP ${ip} уже используется в другом gateway этого сервера, пропущен`); return; }