Бесклассовая адресация (англ.Classless Inter-Domain Routing, англ.CIDR) — метод IP-адресации, позволяющий гибко управлять пространством IP-адресов, не используя жёсткие рамки классовой адресации. Использование этого метода позволяет экономно использовать ограниченный ресурс IP-адресов, поскольку возможно применение различных масок подсетей к различным подсетям.
IP-адрес является массивом бит. Принцип IP-адресации — выделение множества (диапазона, блока, подсети) IP-адресов, в котором некоторые битовые разряды имеют фиксированные значения, а остальные разряды пробегают все возможные значения. Блок адресов задаётся указанием начального адреса и маски подсети. Бесклассовая адресация основывается на переменной длине маски подсети (англ.variable length subnet mask, VLSM), в то время, как в классовой (традиционной) адресации длина маски строго фиксирована 0, 1, 2 или 3 установленными октетами.
Пример подсети 192.0.2.32/27 с применением бесклассовой адресации:
Октеты IP-адреса
192
0
2
32
Биты IP-адреса
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
0
0
0
1
0
0
0
0
0
Биты маски подсети
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
0
0
0
0
0
Октеты маски подсети
255
255
255
224
В данном примере видно, что в маске подсети 27 бит слева — единицы. В таком случае говорят о длине префикса подсети в 27 бит и указывают через косую черту (знак /) после базового адреса.
Пример записи IP-адреса 172.16.0.1/12 с применением бесклассовой адресации:
Октеты IP-адреса
172
16
0
1
Биты IP-адреса
1
0
1
0
1
1
0
0
0
0
0
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
Биты маски подсети
1
1
1
1
1
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
Октеты маски подсети
255
240
0
0
Множество всех адресов соответствует нулевой маске подсети и обозначается /0, а конкретный адрес IPv4 — маске подсети с длиной префикса в 32 бита, обозначаемой /32.
Для упрощения таблиц маршрутизации можно объединять блоки адресов, указывая один большой блок вместо ряда мелких. Например, 4 смежные сети класса C (4 × 255 адресов, маска 255.255.255.0 или /24) могут быть объединены, с точки зрения далёких от них маршрутизаторов, в одну сеть /22. И напротив, сети можно разбивать на более мелкие подсети, и так далее.
Стандартом принята маска в виде непрерывной последовательности единиц и непрерывной последовательности нулей. Только для таких масок получающиеся множества IP-адресов будут смежными. Однако, также широко распространены обратные маски (inverse mask, wildcard mask), которые не обязаны содержать подряд идущие единицы или нули. Обратная маска используется для формирования правил ACL.
Возможные маски
IPv4 CIDR
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
2
1/64 C
a.b.c.d/29
+0.0.0.7
255.255.255.248
8
6
1/32 C
a.b.c.d/28
+0.0.0.15
255.255.255.240
16
14
1/16 C
a.b.c.d/27
+0.0.0.31
255.255.255.224
32
30
1/8 C
a.b.c.d/26
+0.0.0.63
255.255.255.192
64
62
1/4 C
a.b.c.d/25
+0.0.0.127
255.255.255.128
128
126
1/2 C
a.b.c.0/24
+0.0.0.255
255.255.255.000
256
254
1 C
a.b.c.0/23
+0.0.1.255
255.255.254.000
512
510
2 C
a.b.c.0/22
+0.0.3.255
255.255.252.000
1024
1022
4 C
a.b.c.0/21
+0.0.7.255
255.255.248.000
2048
2046
8 C
a.b.c.0/20
+0.0.15.255
255.255.240.000
4096
4094
16 C
a.b.c.0/19
+0.0.31.255
255.255.224.000
8192
8190
32 C
a.b.c.0/18
+0.0.63.255
255.255.192.000
16 384
16 382
64 C
a.b.c.0/17
+0.0.127.255
255.255.128.000
32 768
32 766
128 C
a.b.0.0/16
+0.0.255.255
255.255.000.000
65 536
65 534
256 C = 1 B
a.b.0.0/15
+0.1.255.255
255.254.000.000
131 072
131 070
2 B
a.b.0.0/14
+0.3.255.255
255.252.000.000
262 144
262 142
4 B
a.b.0.0/13
+0.7.255.255
255.248.000.000
524 288
524 286
8 B
a.b.0.0/12
+0.15.255.255
255.240.000.000
1 048 576
1 048 574
16 B
a.b.0.0/11
+0.31.255.255
255.224.000.000
2 097 152
2 097 150
32 B
a.b.0.0/10
+0.63.255.255
255.192.000.000
4 194 304
4 194 302
64 B
a.b.0.0/9
+0.127.255.255
255.128.000.000
8 388 608
8 388 606
128 B
a.0.0.0/8
+0.255.255.255
255.000.000.000
16 777 216
16 777 214
256 B = 1 A
a.0.0.0/7
+1.255.255.255
254.000.000.000
33 554 432
33 554 430
2 A
a.0.0.0/6
+3.255.255.255
252.000.000.000
67 108 864
67 108 862
4 A
a.0.0.0/5
+7.255.255.255
248.000.000.000
134 217 728
134 217 726
8 A
a.0.0.0/4
+15.255.255.255
240.000.000.000
268 435 456
268 435 454
16 A
a.0.0.0/3
+31.255.255.255
224.000.000.000
536 870 912
536 870 910
32 A
a.0.0.0/2
+63.255.255.255
192.000.000.000
1 073 741 824
1 073 741 822
64 A
a.0.0.0/1
+127.255.255.255
128.000.000.000
2 147 483 648
2 147 483 646
128 A
0.0.0.0/0
+255.255.255.255
000.000.000.000
4 294 967 296
4 294 967 294
256 A
Количество адресов в подсети не равно количеству возможных узлов (хостов). Нулевой адрес IP резервируется для идентификации подсети, последний — в качестве широковещательного адреса, таким образом в реально действующих сетях возможно количество узлов, на два меньшее количества адресов.