Скільки є дійсних IPv4-адрес?


6

Питання начебто просте, з достатньою кількістю крайових і кутових випадків, що я не вірю своїй здатності обчислити його. Яка точна кількість дійсних IPv4-адрес, які потенційно можуть використовуватися як окремі напрямки? Іншими словами, 2 ^ 32 мінус зарезервовані блоки, багатоадресна адреса, приватні мережі тощо.

Оновлення: відповідь МК чудова, але ... як щодо верхньої межі, припускаючи максимально ефективне використання CIDR?


3
IP-адреси для приватних мереж є абсолютно дійсними IPv4-адресами.
VMai

2
@VMai Вони насправді не корисні для "окремих напрямків", оскільки одна і та ж IPv4-адреса може використовуватися для будь-якої кількості хостів, якщо вони не знаходяться в одній мережі. Справа в точці: 127.0.0.1.
CVn

1
@VMai VPN сам формує приватну мережу (зрештою, це частина значення цього терміна), але якщо ви підключалися до іншої мережі (через VPN чи іншим чином), то ця сама IPv4-адреса може призвести кудись зовсім інакше. Адреси глобальної маршрутизації не мають цього властивості; дана глобально маршрутизована IPv4-адреса (як призначено в Інтернеті) завжди буде представляти один заданий хост в Інтернеті. Цей хост, в свою чергу, може бути мультиплексором трафіку, NAT-шлюзом, балансиром навантаження або чимось іншим, але це не має значення з точки зору IP.
CVn

1
@VMai Тому що їм не місце в таблицях маршрутизації в DFZ?
CVn

1
@ MichaelKjörling це неправда. Один і той же Інтернет-адреса може здійснювати маршрути до різних хостів залежно від початкової точки. Google DNS робить це.
ali1234

Відповіді:


17

На це було б простіше відповісти двадцять чи більше років тому, перш ніж CIDR стане звичним явищем.

Я припускаю, що під "дійсним" ви маєте на увазі те, що із загальною конфігурацією маршрутизатора в Інтернеті буде представляти собою дійсний хост кінцевої точки. Цілком можливо запустити мережу IPv4, яка не має абсолютно нічого спільного з Інтернетом, і в цьому випадку багато припущень щодо розподілу адресного простору, зроблених у загальнодоступному Інтернеті, не будуть виконані.

Деякі частини адресного простору прості. У нас є 2 ^ 32 можливих адреси, і з цього ми можемо відняти такі речі, як старий клас Е (перший октет 240-255), простір RFC 1918 (10/8, 172.16 / 12, 192.168 / 16), діапазони, зарезервовані для різних цілей ( 100,64 / 10 , 127/8, 169,254 / 16, ...) тощо. Також є мережі, які ви навряд чи зможете зустріти в загальнодоступному Інтернеті, як AMPRNET (netblock 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 або навіть a / 20 - це діловий вибір, який здійснює Інтернет-провайдер, що базується на основі продемонстрованих потреб клієнта та, ймовірно, також здатності та готовності клієнта платити за адресний простір. Я надіслав запит на виділення IPv4 для компанії, над якою працював трохи більше десяти років тому, і навіть тоді отримати щось більше, ніж a / 28не банально.

Це все зводиться до того, що немає можливості обчислити точну максимальну кількість адресних хостів в Інтернеті, тому що навіть якщо ми перерахуємо та врахуємо всі зарезервовані діапазони IP-адрес, нам все одно потрібно знати розміри розподілу підмережі. з метою врахування різної суми втрат для мережевих та широкомовних адрес. До CIDR це було відомо; клас А був / 8, клас В - а / 16, а клас С - а / 24. З CIDR таких припущень не можна робити.


2
Для повноти: 100.64.0.0/10це також спеціальний блок для реалізації NAT в мережах ISP. RFC6598
Сандер Стеффан

@SanderSteffann я спеціально не мав на увазі перераховувати всі такі діапазони, хоча я назвав декілька. Важливою частиною моєї відповіді є (мабуть,) дискусія про різний розмір підмережі та вплив їх на максимальну кількість адресованих хостів. Незважаючи на це, я зміню відповідь, щоб включити і цей діапазон.
CVn

Я почав писати власну відповідь, а потім ваша спливаюча. Ви говорите те саме, але настільки краще, що я не морочусь своїм. Хороша робота !
Тонні

2
@ MichaelKjörling Я не хотів критикувати вашу відповідь. Це добре покладатися. Діапазон 100,64 / 10 - недостатньо відомий, але в наші дні він стає більш актуальним. Ось чому я вважав, що добре згадати це.
Сандер Стеффан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.