Для определения сетевой маски удобно использовать так называемый декодер. Рассмотрим как вычислить маску подсети по IP. Но начнем с объяснения того как человек воспринимает числа записанные в десятичной системе счисления:
Возьмем число 4921 и разложим его на разряды десятичной системы счисления, т.е. 4 раза возьмем по 1000, 9 раз по 100, 2 раза по 10 и 1 раз по 1.
1000 100 10 1
4 9 2 1
Очевидно, что чтобы получить изначальное число нужно перемножить значение на разрядность и сложить все разряды
1000*4 + 100*9 + 10*2 + 1*1 = 4921
Вычисление маски подсети по заданному адресу
Прежде всего, вычислить сетевую маску зная только IP адрес нельзя. Вопрос актуален при делении сети на подсети если исходная маска известна и требуется задать новую.
Перейдем к декодеру. Имеется IPv4 адрес, который представляет собой 4 октета, в каждом из которых 256 бита. Для октета, который рассматриваем или для каждого октета адреса записываем сам декодер:
128 64 32 16 8 4 2 1
Для примера запишем в двоичном виде адрес localhost 127.0.0.1. Декодер приведен 4 раза для каждого из 4х октетов. Под каждым октетом в соответствие значениям ставятся значения для взятого ip адреса.
128 64 32 16 8 4 2 1 128 64 32 16 8 4 2 1 128 64 32 16 8 4 2 1 128 64 32 16 8 4 2 1
0 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
127.0.0.1 является исключением, по нему хорошо видно как выставлять значения 1 и 0 в декодере.
Для демонстрации разделения на подсети 127.0.0.1 не подходит, при его использовании не останется бит под хост, все биты были бы отданы под маску сети.
Адрес относится к классу А, т.е. под сеть выделяется 8 первых бит, остальное под хост — вычислять здесь ничего не требуется.
Для других адресов может оказаться полезным соотношение двух числовых рядов:
Декодер:
128 64 32 16 8 4 2 1
Маска:
128 192 224 240 248 252 254 255
Как вычислить маску подсети по IP
Стандартные значения классов А,В и С известны, но на практике часто возникает необходимость дробить сети на более мелкие диапазоны. Делать это проще всего также используя декодер — возьмем, например, адрес в котором первый пять бит последнего октета отданы под сеть.
Прежде всего запишем декодер
Декодер
128 64 32 16 8 4 2 1
Фактически имеем следующее значение, которое хотим отдать под сеть:
1 1 1 1 1 0 0 0
Перемножаем 1 и 0 со значениями декодера и складываем то, что получилось
128+64+32+16+8+0+0+0=248 — это искомая нестандартная маска (ее можно взять из стандартного ряда — 248 соответствует последней единице в ряде бит октета)
Биты для маски могут выделяться только слева направо непрерывно, в другой репрезентации 255.255.255.0 будет /8, что означает последовательные 8 бит отданные под маску.
Для адресов класса В стандартная маска /16 или 255.255.0.0, для класса С — /24 255.0.0.0
Если под сеть отданы все биты в октете — маска 255
Мы разобрали как вычислить маску подсети по IP. Читайте также про классовую и бесклассовую адресацию ipv4