fix(NetworkConfigManager): refine IP conflict checking logic to ensure uniqueness of gateways on the same server, improving conflict notification accuracy
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:
@@ -660,9 +660,15 @@ function NetworkConfigManager() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const newGateways = [];
|
const newGateways = [];
|
||||||
// Для проверки конфликтов используем только IP из существующих gateways
|
// Для проверки конфликтов используем только IP из существующих gateways ТОГО ЖЕ СЕРВЕРА
|
||||||
// Рекурсивные gateways могут использовать те же IP, что и интерфейсы - это нормально
|
// Рекурсивные 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 после создания
|
// Создаем маппинг между ID из шаблона и реальными ID после создания
|
||||||
const templateIdToRealId = new Map();
|
const templateIdToRealId = new Map();
|
||||||
@@ -693,10 +699,11 @@ function NetworkConfigManager() {
|
|||||||
|
|
||||||
ip = ip.trim();
|
ip = ip.trim();
|
||||||
|
|
||||||
// Проверяем конфликты только с другими gateways
|
// Проверяем конфликты только с другими gateways ТОГО ЖЕ СЕРВЕРА
|
||||||
// Для рекурсивных gateways разрешено использовать IP, которые уже используются в интерфейсах
|
// Для рекурсивных gateways разрешено использовать IP, которые уже используются в интерфейсах
|
||||||
|
// Но на одном сервере не должно быть двух gateways с одинаковым IP
|
||||||
if (usedGatewayIps.has(ip)) {
|
if (usedGatewayIps.has(ip)) {
|
||||||
notify.warning(`IP ${ip} уже используется в другом gateway, пропущен`);
|
notify.warning(`IP ${ip} уже используется в другом gateway этого сервера, пропущен`);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user