fix(NetworkConfigManager): enhance validation for /30 networks by ensuring local and remote IPs do not conflict with network and broadcast addresses, improving IP generation accuracy
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 1m41s
Publish Fast Tabler Docker image / build-and-push-fast (push) Successful in 1m41s
This commit is contained in:
@@ -1003,6 +1003,13 @@ function NetworkConfigManager() {
|
||||
if (dVal % 4 !== 0) continue; // Базовый адрес должен быть кратен 4
|
||||
if (dVal + 2 > 255) continue; // Проверяем, что remoteIp не превышает 255
|
||||
// Для /30 dVal + 1 и dVal + 2 всегда валидны (не сетевой и не broadcast)
|
||||
// Но нужно проверить, что эти IP не являются сетевыми или broadcast для других сетей /30
|
||||
const localLastOctet = dVal + 1;
|
||||
const remoteLastOctet = dVal + 2;
|
||||
// Проверяем, что Local IP не является сетевым адресом (кратен 4) или broadcast (кратен 4 + 3)
|
||||
if (localLastOctet % 4 === 0 || localLastOctet % 4 === 3) continue;
|
||||
// Проверяем, что Remote IP не является сетевым адресом (кратен 4) или broadcast (кратен 4 + 3)
|
||||
if (remoteLastOctet % 4 === 0 || remoteLastOctet % 4 === 3) continue;
|
||||
}
|
||||
|
||||
// Проверяем, что IP входят в диапазон пула
|
||||
@@ -1037,6 +1044,13 @@ function NetworkConfigManager() {
|
||||
// Для /30 dVal + 1 и dVal + 2 всегда валидны (не сетевой и не broadcast)
|
||||
if (prefix >= 30) {
|
||||
if (dVal + 2 > 255) continue; // Проверяем, что remoteIp не превышает 255
|
||||
// Дополнительно проверяем, что IP не являются сетевыми или broadcast для других сетей /30
|
||||
const localLastOctet = dVal + 1;
|
||||
const remoteLastOctet = dVal + 2;
|
||||
// Проверяем, что Local IP не является сетевым адресом (кратен 4) или broadcast (кратен 4 + 3)
|
||||
if (localLastOctet % 4 === 0 || localLastOctet % 4 === 3) continue;
|
||||
// Проверяем, что Remote IP не является сетевым адресом (кратен 4) или broadcast (кратен 4 + 3)
|
||||
if (remoteLastOctet % 4 === 0 || remoteLastOctet % 4 === 3) continue;
|
||||
}
|
||||
|
||||
// Проверяем, что IP входят в диапазон пула и отличаются
|
||||
|
||||
Reference in New Issue
Block a user