Тридцать два бита под маской
Адрес IPv4 — это единственное 32-битное число. Мы почти никогда не записываем его так, потому что 32 единицы и нуля трудно читать, так что его разбивают на четыре 8-битные группы, называемые октетами, каждый показан в десятичном виде от 0 до 255 и соединён точками. 192.168.1.10 — это просто более дружелюбный способ записать одно конкретное 32-битное значение.
Поскольку каждый октет — 8 бит, всё пространство — это 2³² адресов, около 4,3 миллиарда. Это звучало огромным в 1980-х и есть причина, по которой исчерпание адресов IPv4 стало реальной проблемой десятилетия спустя, и почему приватная адресация и IPv6 существуют.
Сетевая часть и хостовая часть
Ни один адрес не стоит сам по себе, он принадлежит блоку, и внутри того блока биты делятся на сетевую часть (какой это блок) и хостовую часть (какая машина внутри блока). Длина префикса, записанная в стиле как /24, отмечает, где это деление приходится. Всё слева от линии — это сеть; всё справа идентифицирует хост. Это та же идея, исследуемая в нотации CIDR, увиденная со стороны адреса.
Диапазоны с особым значением
Не каждый адрес — это обычный хостовый адрес. Несколько диапазонов зарезервированы для конкретных целей, и их распознавание — часть чтения любой сетевой конфигурации:
-
Приватные диапазоны (RFC 1918) зарезервированы для использования внутри приватных сетей и никогда не маршрутизируются в публичном интернете:
10.0.0.0/8172.16.0.0/12192.168.0.0/16
Вот почему домашние и офисные сети так часто используют
192.168.x.xили10.x.x.x, эти адреса свободны для повторного использования везде, потому что никогда не появляются в открытом интернете. -
Loopback (
127.0.0.0/8) всегда ссылается на саму локальную машину.127.0.0.1— это адрес, который компьютер использует, чтобы говорить с самим собой. -
Адреса link-local (
169.254.0.0/16) самоназначаются, когда устройство не может достичь сервера . Увидеть такой обычно означает «никакого адреса не было роздано». -
Неуказанный адрес (
0.0.0.0) и маршрут по умолчанию (0.0.0.0/0) особые: последний — это всеохватный маршрут, который соответствует любому назначению, не покрытому более специфичным маршрутом.
Почему специальные диапазоны важны для безопасности
Эти зарезервированные диапазоны — не просто мелочь. Инструмент, который извлекает поставленный пользователем адрес, должен отказываться достигать приватных, loopback- и link-local-диапазонов, иначе его можно обмануть, чтобы он делал запросы к внутренним системам, которых он никогда не должен касаться, класс атаки, называемый server-side request forgery (подделка запроса со стороны сервера). Знание того, какие диапазоны внутренние, — первый шаг к защите от неё. Именно поэтому сетевые инструменты на этом сайте проверяют разрешённый адрес против этих диапазонов прежде, чем вообще подключиться.
Чтобы увидеть, как любой адрес сидит внутри своего блока, его адрес сети, широковещательный адрес, и используемый диапазон вокруг него, попробуйте калькулятор CIDR, который вычисляет всё это локально в вашем браузере.