it-swarm-ru.tech

CIDR для чайников

Я понимаю, что такое CIDR и для чего он используется, но я все еще не могу понять, как рассчитать его в своей голове. Может кто-нибудь дать объяснение типа "для чайников" с примерами?

46
Bob

CIDR (бесклассовая междоменная маршрутизация, произносится как "kidder" или "cider" - добавьте свой собственный локальный вариант в комментарии!) - это система определения сетевой части IP-адреса (обычно люди думают об этом как о маске подсети) , Причина, по которой он "бесклассовый", заключается в том, что он позволяет более гибко разбивать IP-сети, чем их базовый класс.

Когда IP-сети были впервые определены, IP-адреса имели классы на основе их двоичного префикса:

Class    Binary Prefix    Range                       Network Bits
A        0*               0.0.0.0-127.255.255.255     8
B        10*              128.0.0.0-191.255.255.255   16
C        110*             192.0.0.0-223.255.255.255   24
D        1110*            224.0.0.0-239.255.255.255
E        1111*            240.0.0.0-255.255.255.255

(Обратите внимание, что это источник людей, называющих/24 "классом С", хотя это не совсем точное сравнение, потому что класс С должен иметь конкретный префикс)

Эти двоичные префиксы использовались для маршрутизации больших кусков пространства IP вокруг. Это было неэффективно, потому что это приводило к тому, что большие блоки назначались организациям, которые не обязательно в них нуждались, а также потому, что классы C могли назначаться только с 24-битными приращениями, а это означало, что таблицы маршрутизации могли становиться излишне большими, так как несколько классов C были направлены в в том же месте.

CIDR был определен, чтобы позволить маскам подсети переменной длины (VLSM) применяться к сетям. Как следует из названия, группы адресов или сети могут быть разбиты на группы, которые не имеют прямого отношения к естественному "классу", к которому они принадлежат.

Основная предпосылка VLSM состоит в том, чтобы обеспечить подсчет количества сетевых битов в сети. Поскольку IPv4-адрес представляет собой 32-разрядное целое число, VLSM всегда будет в диапазоне от 0 до 32 (хотя я не уверен, в каком случае у вас может быть маска 0-длины).

Самый простой способ начать вычисление VLSM/CIDR в вашей голове - это понять "естественные" 8-битные границы:

CIDR    Dotted Quad
/8      255.0.0.0
/16     255.255.0.0
/24     255.255.255.0
/32     255.255.255.255

(Кстати, вполне допустимо и довольно часто в ACL использовать маску/32. Это просто означает, что вы ссылаетесь на один IP)

Как только вы поймете это, это простая двоичная арифметика для перемещения вверх или вниз, чтобы получить количество хостов. Например, если/24 имеет 256 IP-адресов (давайте пока не будем указывать сетевые и широковещательные адреса, это другой вопрос теории сетей), увеличение подсети на один бит (до/25) уменьшит пространство хоста на один бит (до 7), то есть будет 128 IP-адресов.

Вот таблица последнего октета. Эта таблица может быть сдвинута на любой октет, чтобы получить точечный четырехугольный эквивалент.

CIDR    Dotted Quad
/24     255.255.255.0
/25     255.255.255.128
/26     255.255.255.192
/27     255.255.255.224
/28     255.255.255.240
/29     255.255.255.248
/30     255.255.255.252
/31     255.255.255.254
/32     255.255.255.255

В качестве примера смещения их на другой октет,/18 (то есть/26 минус 8 бит, поэтому смещенный октет) будет 255.255.192.0.

78
jj33

Каждый октет стоит 8.

  • 255.0.0.0/8
  • 255.255.0.0/16
  • 255.255.255.0/24
  • 255.255.255.255/32

Таким образом, вы можете быстро сузить свою подсеть, а затем вы просто беспокоитесь о последних 8 битах.

128, 192, 224, 240, 248, 252, 254, 255

+1  , +2 , +3 , +4 , +5 , +6 , +7 , +8
  • 255.128.0.0 =/9
  • 255.192.0.0 =/10
  • 255.224.0.0 =/11
  • 255.240.0.0 =/12
  • 255.248.0.0 =/13
  • 255.252.0.0 =/14
  • 255.254.0.0 =/15

Надеюсь, это достаточно ясно

8
sclarson

Поздний день (так), надеюсь, не за доллар. CIDR - это количество непрерывных битов в маске IPv4 (32 бита), начиная с самого старшего бита.

10000000 00000000 00000000 00000000 где 1 = старший значащий бит

Общими масками являются/8,/16,/24, которые находятся на 8-битной (октетной) границе.

11111111 00000000 00000000 00000000 =/8 = 255.0.0.0

11111111 11111111 00000000 00000000 =/16 = 255,255.0,0

11111111 11111111 11111111 00000000 =/24 = 255.255.255.0

Это не очень сложно, когда он не выровнен по октету, но требует некоторой простой математики и понимания того, что такое октет.

11111111 11111111 11100000 00000000 =/19

Первые два октета маски - 255.255 (/ 16 меньше/19). Последний октет равен 0 (/ 19 меньше/24). Пока мы знаем

11111111 11111111 11100000 00000000 =/19 = 255,255.?.0

При взгляде на каждый октет помните, что это 8-битное значение, 0 - 255.

0 0 0 0 0 0 0 0 
1
2 6 3 1
8 4 2 6 8 4 2 1

Таким образом, третий октет (?) 11100000 равен 128 + 64 + 32 = 224. Это означает

11111111 11111111 11100000 00000000 =/19 = 255,255,224,0

6
dbasnett

Очень легко вычислять нетривиальные сети вручную. Вместо этого попробуйте CIDR Calculator .

4
hayalci

Напротив, я думаю, что это хорошо, чтобы полностью понять [~ # ~] cidr [~ # ~] и уметь делать вычисления в своем мозгу. ... но иногда вы хотите перепроверить ваши расчеты. Мне нравится использовать калькулятор подсети PHP : http://share-foo.com/ SubnetCalc.php

alt text

2
l0c0b0x

Еще один хороший документ, если вам нужна только настольная ссылка, это RFC 1878 - Таблица подсети переменной длины для IPv4 .

1
Gavin McTaggart