Что означает сетевой префикс

IP адрес протокола IPv4 состоит из 32 бит, но не все биты в адресе имеют одинаковое значение. Биты делятся на две части: слева некоторое количество бит обозначают сеть, к которой относится данный адрес, оставшиеся биты справа идентифицируют устройство внутри сети. Подробнее об этом можно прочесть в статье про IPv4-адресацию. Граница между этими двумя группами бит может проходить в разных местах, например, для 32-битного адреса, первые 16 бит могут обозначать сеть, вторые – хост внутри сети, возможны любые другие сочетания (10 и 22, 8 и 24, 30 и 2) – в принципе, любые два числа, дающие в сумме 32 подойдут.

Для описания того, где проходит эта граница используется сетевой префикс. Он записывается обычно после адреса в виде десятичного числа через слеш, например 10.0.0.0/8 или 192.168.10.123/19 (8 и 19 – префиксы). Префикс обозначает, сколько бит в приведённом адресе хранят информацию о сети. Например, если префикс /24, это означает, что в адресе из 32-х бит 24 бита хранят информацию о сети, а оставшиеся 8 – информацию о хосте.

Предположим, что имеется такая задача: найти широковещательный адрес для адреса 172.20.35.123/20. Запишем адрес в двоичном виде 10101100.00010100.00100011.01111011, как мы помним из определения, чтобы получить широковещательный адрес, надо взять ту часть адреса, где хранится информация о хосте и заполнить её единицами. Так как префикс 20 – отсчитываем первые 20 бит и оставляем их без изменений (виде 10101100.00010100.0010), оставшиеся 12 бит заполняем единицами, так как там хранится хостовая часть адреса (1111.11111111), получится адрес 10101100.00010100.00101111.11111111, в десятичной системе это выглядит как 172.20.47.255.

Перевод префикса в маску подсети

Префикс и маска подсети обозначают одно и то же, только разными способами. Если надо найти маску подсети по префиксу, то надо просто написать столько единиц, сколько указано в префиксе, оставшуюся часть дополнить нулями (чтобы всего получилось 32 двоичные цифры) и дальше группами по 8 бит перевести в десятичную систему.

Например, стоит задача найти маску, соответствующую префиксу /19. Для этого запишем 19 единиц и дополним их 13 нулями, чтобы всего получилось 32 цифры:

11111111.11111111.11100000.00000000, то что получилось надо перевести в десятичный вид и получим маску подсети 255.255.224.0.

Сетевой префикс в IPv6

В IPv6 адрес состоит из 128 бит, и маски подсети не используются, так как пришлось бы иметь очень длинные маски — тоже по 128 бит. Вместо этого используется только префикс. Смысл префикса в IPv6 такой же как и для IPv4 — отделение части адреса, хранящей информацию о сети от части адреса, хранящей информацию о хосте. Правая часть, хранящая информацию о хосте имеет специальное название — «Идентификатор интерфейса» (Interface ID). В IPv6 клиенту выделяются сети с префиксом /64, что означает ещё 64 бита на хосты внутри сети. Таким образом, внутри сети моэет существовать 264 различных хостов.

Относится к теме: 

Добавить комментарий