6

Казалось бы, простой вопрос, с достаточным количеством краевых и угловых случаев, что я не доверяю своей способности рассчитать его. Каково точное количество действительных адресов IPv4, которые потенциально могут использоваться в качестве отдельных пунктов назначения? Другими словами, 2 ^ 32 минус зарезервированные блоки, многоадресные адреса, частные сети и т.д.

Обновление: ответ М.К. превосходен, но ... как насчет верхней границы, предполагающей максимально эффективное использование CIDR?

1 ответ1

17

На это было бы легче ответить двадцать или около того лет назад, до того, как CIDR стал обычным явлением.

Я предполагаю, что под "действительным" вы подразумеваете нечто, что при общей конфигурации маршрутизатора в Интернете будет представлять собой действительный хост конечной точки. Вполне возможно запустить сеть IPv4, которая не имеет абсолютно никакого отношения к Интернету, и в этом случае многие предположения о распределении адресного пространства, сделанные в общедоступном Интернете, не будут выполнены.

Некоторые части адресного пространства просты. У нас есть 2 ^ 32 возможных адресов, и из этого мы можем вычесть такие вещи, как старый класс E (первый октет 240-255), пространство RFC 1918 (10/8, 172.16/12, 192.168/16), диапазоны, зарезервированные для различных целей (100.64/10, 127/8, 169.254/16, ...) и так далее. Существуют также сетевые блоки, с которыми вы вряд ли столкнетесь в общедоступном Интернете, например AMPRNET (сетевой блок 44/8), но которые не зарезервированы сами по себе.

Однако это не дает нам ответа. Распределение IPv4 в наши дни выполняется с использованием CIDR, что означает, что два соседних сетевых блока могут иметь совершенно разные сетевые маски. Вполне возможно, чтобы подсети, такие как 10.0.127.240/28 и 10.0.128.0/17, находились рядом друг с другом и принадлежали к тому же восходящему распределению, скажем, 10.0/9. (Да, это пространство RFC 1918, но я просто не назову чью-то реальную сеть).

Идеально упакованные 16 смежных блоков /28 требуют всего адресного пространства, равного одному /24, так что вы можете подумать, что это позволит использовать такое же количество хостов, что и один /24. Но они не делают; каждый /28 имеет свою собственную сеть и широковещательный адрес, в то время как /24 имеет только один такой набор. Таким образом, вы в некотором смысле "тратите" дополнительные 30 IP-адресов (16 сетевых и 16 широковещательных адресов, а не по одному на каждый). Набор блоков /28 позволяет адресовать всего 16 × 14 = 224 хоста, в то время как один /24 позволяет адресовать 254 хоста. (Для простоты я считаю, что маршрутизатор периметра подсети является хостом в подсети, но в реальной жизни это другое обязательное назначение для каждой подсети.) Этот эффект становится более выраженным, чем меньше выделяются подсети. Выбор: нарезать /29, /28, /24 или даже /20 - это бизнес-выбор, сделанный вышестоящим интернет-провайдером, основанный на продемонстрированных потребностях клиента и, вероятно, также на способности и желании клиента заплатить за адресное пространство. , Я отправил запрос на выделение IPv4 для компании, в которой я работал чуть более десяти лет назад, и даже тогда получение чего-то большего, чем /28, не было тривиальным.

Все это сводится к тому, что невозможно вычислить точное максимальное количество адресуемых хостов в Интернете, потому что даже если мы будем перечислять и учитывать все зарезервированные диапазоны IP-адресов, нам все равно нужно будет знать размеры выделения подсети. чтобы учесть различную сумму потерь по сетевым и широковещательным адресам. До CIDR это было известно; класс A был /8, класс B был /16 и класс C был /24. С CIDR такие предположения не могут быть сделаны.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .