Многие из вас встречали в интернете записи ip адреса вида 192.168.0.0/24 или нечто подобное. В этой маленькой заметке я опишу как можно из адреса 192.168.0.1 сделать различные маски. Это может пригодится тем, кто хочет забанить IP адрес целой подсети. Это может оказаться полезным для администраторов игровых серверов, к примеру.

Итак, самое главное, ниже приведена таблица, которая меня не раз выручала, когда я забывал как пишется та или иная подсеть:

IP/маска До последнего IPв подсети Маска Количество адресов Класс
a.b.c.d**/32** +0.0.0.0 255.255.255.255 1 1/256 C
a.b.c.d**/31** +0.0.0.1 255.255.255.254 2 1/128 C
a.b.c.d**/30** +0.0.0.3 255.255.255.252 4 1/64 C
a.b.c.d**/29** +0.0.0.7 255.255.255.248 8 1/32 C
a.b.c.d**/28** +0.0.0.15 255.255.255.240 16 1/16 C
a.b.c.d**/27** +0.0.0.31 255.255.255.224 32 1/8 C
a.b.c.d**/26** +0.0.0.63 255.255.255.192 64 1/4 C
a.b.c.d**/25** +0.0.0.127 255.255.255.128 128 1/2 C
a.b.c.0**/24** +0.0.0.255 255.255.255.000 256 1 C
a.b.c.0**/23** +0.0.1.255 255.255.254.000 512 2 C
a.b.c.0**/22** +0.0.3.255 255.255.252.000 1024 4 C
a.b.c.0**/21** +0.0.7.255 255.255.248.000 2048 8 C
a.b.c.0**/20** +0.0.15.255 255.255.240.000 4096 16 C
a.b.c.0**/19** +0.0.31.255 255.255.224.000 8192 32 C
a.b.c.0**/18** +0.0.63.255 255.255.192.000 16 384 64 C
a.b.c.0**/17** +0.0.127.255 255.255.128.000 32 768 128 C
a.b.0.0**/16** +0.0.255.255 255.255.000.000 65 536 256 C = 1 B
a.b.0.0**/15** +0.1.255.255 255.254.000.000 131 072 2 B
a.b.0.0**/14** +0.3.255.255 255.252.000.000 262 144 4 B
a.b.0.0**/13** +0.7.255.255 255.248.000.000 524 288 8 B
a.b.0.0**/12** +0.15.255.255 255.240.000.000 1 048 576 16 B
a.b.0.0**/11** +0.31.255.255 255.224.000.000 2 097 152 32 B
a.b.0.0**/10** +0.63.255.255 255.192.000.000 4 194 304 64 B
a.b.0.0**/9** +0.127.255.255 255.128.000.000 8 388 608 128 B
a.0.0.0**/8** +0.255.255.255 255.000.000.000 16 777 216 256 B = 1 A
a.0.0.0**/7** +1.255.255.255 254.000.000.000 33 554 432 2 A
a.0.0.0**/6** +3.255.255.255 252.000.000.000 67 108 864 4 A
a.0.0.0**/5** +7.255.255.255 248.000.000.000 134 217 728 8 A
a.0.0.0**/4** +15.255.255.255 240.000.000.000 268 435 456 16 A
a.0.0.0**/3** +31.255.255.255 224.000.000.000 536 870 912 32 A
a.0.0.0**/2** +63.255.255.255 192.000.000.000 1 073 741 824 64 A
a.0.0.0**/1** +127.255.255.255 128.000.000.000 2 147 483 648 128 A
0.0.0.0**/0** +255.255.255.255 000.000.000.000 4 294 967 296 256 A

Количество адресов подсети не равно количеству возможных узлов. Нулевой адрес IP резервируется для идентификации подсети, последний — в качестве широковещательного адреса, таким образом в реально действующих сетях возможно количество узлов на два меньшее количества адресов.

В результате если вы встретите запись вида 192.168.0.0/24 или 192.168.0.0/25 вы можете посмотрев на эту таблицу понять, что имеется ввиду диапазон ip адресов от 192.168.0.0 до 192.168.0.255 или, во втором случае, от 192.168.0.0 до 192.168.0.127

Для тех кто хочет углубить свои знания, и понять как это в целом работает добавлю.

Диапазоны адресов

IP-адрес является массивом битов. Принцип IP-адресации — выделение множества (диапазона, блока, подсети) IP-адресов, в котором некоторые битовые разряды имеют фиксированные значения, а остальные разряды пробегают все возможные значения. Блок адресов задаётся указанием начального адреса и маски подсети. Бесклассовая адресация основывается на переменной длине маски подсети (англ. variable length subnet maskVLSM), в то время, как в классовой (традиционной) адресации длина маски строго фиксирована 0, 1, 2 или 3 установленными октетами.

Вот пример записи IP-адреса в бесклассовой нотации: 192.0.2.32/27.

Октеты IP-адреса 192 2 32
Биты IP-адреса 1 1 1 1
Биты маски подсети 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
Октеты маски подсети 255 255 255 224

В данном примере видно, что в маске подсети 27 бит слева выставлены в единицу (значащие биты). В таком случае говорят о длине префикса подсети в 27 бит и указывают через косую черту (знак /) после базового адреса.

Вот ещё один пример записи адреса с применением бесклассовой адресации: 172.16.0.1/12.

Октеты IP-адреса 172 16 1
Биты IP-адреса 1 1 1 1 1 1
Биты маски подсети 1 1 1 1 1 1 1 1 1 1 1 1
Октеты маски подсети 255 240

Множество всех адресов соответствует нулевой маске подсети и обозначается /0, а конкретный адрес IPv4 — маске подсети с длиной префикса в 32 бита, обозначаемой /32.

Для упрощения таблиц маршрутизации можно объединять блоки адресов, указывая один большой блок вместо ряда мелких. Например, 4 смежные сети класса C (4 ? 255 адресов, маска 255.255.255.0 или /24) могут быть объединены, с точки зрения далёких от них маршрутизаторов, в одну сеть /22. И напротив, сети можно разбивать на более мелкие подсети, и так далее.

В Интернете используются только маски следующего вида: n единиц, дальше все нули. Для таких (и только для таких) масок получающиеся множества IP-адресов будут смежными.

Комментарии

comments powered by Disqus