Какой алгоритм разбиения сети на подсети указанного размера? Собственно получилось написать свой "велосипед" разбиения сети на заданное количество сегментов. Но уперся в стену, когда нужно ещё учитывать размер подсети. Например исходная сеть: 192.168.0.0/24 (256 адресов) Нужно например разбить её на: 5 сегментов: 30, 30, 30, 2, 2 Натыкался на алгоритм разбиения "квадратами". Это когда делишь сеть на 2 части и пока не найдется подсеть для самого маленького сегмента. Но этим методом я например не смогу разбить по примеру на 4 подсети, где 4-ую разбиваю на более мелкие. Там получиться что 30 уйдет в сеть с /25 маской, вторые 30 уйдет с /26 маской, третьи 30 уйдут с /27 маской, 2 с /28 и ещё 2 с /29. Что собственно не "экономично", тем более если указывать большую исходную сеть (например /16), имеет свой предел по количеству сегментов. И запас неиспользуемых адресов слишком большой. Кто подскажет как подобное можно реализовать?
Для разбиения сети на подсети указанного размера, вы можете воспользоваться следующим алгоритмом:
Определите необходимое количество подсетей и их размеры.Переведите каждый размер подсети из количества адресов в соответствующую маску подсети. Например, для подсети из 30 адресов это будет маска /27 (32 адреса).Найдите наибольшую маску подсети, которая вмещает в себя указанные размеры подсетей. Например, если у вас есть подсети из 30 адресов, то наибольшая маска, вмещающая все эти подсети, будет /27.Разбейте исходную сеть на подсети с найденной маской. При этом убедитесь, что каждая подсеть соответствует заданному размеру.Повторите этот процесс для каждой новой подсети из разбитой сети.
Таким образом, вы сможете разбить исходную сеть на указанное количество подсетей нужного размера, учитывая ее структуру и размеры подсетей.
Для разбиения сети на подсети указанного размера, вы можете воспользоваться следующим алгоритмом:
Определите необходимое количество подсетей и их размеры.Переведите каждый размер подсети из количества адресов в соответствующую маску подсети. Например, для подсети из 30 адресов это будет маска /27 (32 адреса).Найдите наибольшую маску подсети, которая вмещает в себя указанные размеры подсетей. Например, если у вас есть подсети из 30 адресов, то наибольшая маска, вмещающая все эти подсети, будет /27.Разбейте исходную сеть на подсети с найденной маской. При этом убедитесь, что каждая подсеть соответствует заданному размеру.Повторите этот процесс для каждой новой подсети из разбитой сети.Таким образом, вы сможете разбить исходную сеть на указанное количество подсетей нужного размера, учитывая ее структуру и размеры подсетей.