Как вычислить маску подсети по IP


Для определения сетевой маски удобно использовать так называемый декодер. Рассмотрим как вычислить маску подсети по 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

Сказать спасибо